From 72f96cc41de0ca13b1d1d84c7898fb28867de2be Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Thu, 26 Oct 2023 09:52:28 -0400 Subject: [PATCH 01/43] Initial slog switch --- gno.land/cmd/gnoland/start.go | 6 +- gno.land/pkg/gnoland/app.go | 7 +- gno.land/pkg/integration/gnoland.go | 6 +- .../pkg/integration/testing_integration.go | 27 ++-- gno.land/pkg/sdk/vm/common_test.go | 3 +- go.mod | 11 +- go.sum | 27 +++- .../example/kvstore/persistent_kvstore.go | 7 +- tm2/pkg/bft/blockchain/pool.go | 11 +- tm2/pkg/bft/blockchain/reactor.go | 4 +- tm2/pkg/bft/blockchain/reactor_test.go | 5 +- tm2/pkg/bft/consensus/common_test.go | 41 +---- tm2/pkg/bft/consensus/reactor.go | 39 ++--- tm2/pkg/bft/consensus/reactor_test.go | 3 +- tm2/pkg/bft/consensus/replay.go | 7 +- tm2/pkg/bft/consensus/replay_test.go | 5 +- tm2/pkg/bft/consensus/state.go | 4 +- tm2/pkg/bft/consensus/ticker.go | 6 +- tm2/pkg/bft/consensus/wal_generator.go | 11 +- tm2/pkg/bft/mempool/clist_mempool.go | 7 +- tm2/pkg/bft/mempool/reactor.go | 8 +- tm2/pkg/bft/mempool/reactor_test.go | 36 +---- tm2/pkg/bft/node/node.go | 26 ++-- tm2/pkg/bft/privval/signer_dialer_endpoint.go | 4 +- .../bft/privval/signer_listener_endpoint.go | 4 +- .../privval/signer_listener_endpoint_test.go | 3 +- tm2/pkg/bft/privval/utils.go | 4 +- tm2/pkg/bft/rpc/client/localclient.go | 8 +- tm2/pkg/bft/rpc/core/pipe.go | 6 +- tm2/pkg/bft/rpc/lib/rpc_test.go | 8 +- tm2/pkg/bft/rpc/lib/server/handlers.go | 13 +- tm2/pkg/bft/rpc/lib/server/handlers_test.go | 10 +- tm2/pkg/bft/rpc/lib/server/http_server.go | 10 +- .../bft/rpc/lib/server/http_server_test.go | 7 +- tm2/pkg/bft/rpc/lib/test/main.go | 5 +- tm2/pkg/bft/rpc/test/helpers.go | 11 +- tm2/pkg/bft/state/execution.go | 20 +-- tm2/pkg/bft/store/store_test.go | 24 ++- tm2/pkg/bft/wal/wal.go | 8 +- tm2/pkg/log/logger.go | 48 ------ tm2/pkg/log/nop_logger.go | 31 ++-- tm2/pkg/log/testing_logger.go | 38 +---- tm2/pkg/log/tm_logger.go | 146 +++++------------- tm2/pkg/log/tm_logger_test.go | 45 ++---- tm2/pkg/p2p/conn/connection.go | 8 +- tm2/pkg/p2p/peer.go | 4 +- tm2/pkg/p2p/upnp/probe.go | 9 +- tm2/pkg/sdk/auth/keeper.go | 4 +- tm2/pkg/sdk/auth/test_common.go | 4 +- tm2/pkg/sdk/bank/common_test.go | 4 +- tm2/pkg/sdk/bank/keeper.go | 6 +- tm2/pkg/sdk/baseapp.go | 13 +- tm2/pkg/sdk/baseapp_test.go | 9 +- tm2/pkg/sdk/context.go | 10 +- tm2/pkg/service/service.go | 11 +- 55 files changed, 345 insertions(+), 497 deletions(-) delete mode 100644 tm2/pkg/log/logger.go diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index a42e1df1bf0..2dac63df02e 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -6,6 +6,7 @@ import ( "errors" "flag" "fmt" + "log/slog" "os" "path/filepath" "strings" @@ -159,7 +160,10 @@ func (c *startCfg) RegisterFlags(fs *flag.FlagSet) { } func execStart(c *startCfg, io *commands.IO) error { - logger := log.NewTMLogger(log.NewSyncWriter(io.Out)) + logger, err := log.NewTMLogger(io.Out, slog.LevelError) + if err != nil { + return err + } rootDir := c.rootDir var ( diff --git a/gno.land/pkg/gnoland/app.go b/gno.land/pkg/gnoland/app.go index 3585f99d7de..4a3bff1786a 100644 --- a/gno.land/pkg/gnoland/app.go +++ b/gno.land/pkg/gnoland/app.go @@ -2,6 +2,7 @@ package gnoland import ( "fmt" + "log/slog" "os" "os/exec" "path/filepath" @@ -28,13 +29,13 @@ type AppOptions struct { // It serves as the gno equivalent of GOROOT. GnoRootDir string SkipFailingGenesisTxs bool - Logger log.Logger + Logger *slog.Logger MaxCycles int64 } func NewAppOptions() *AppOptions { return &AppOptions{ - Logger: log.NewNopLogger(), + Logger: slog.New(log.NewNoopHandler()), DB: dbm.NewMemDB(), GnoRootDir: GuessGnoRootDir(), } @@ -119,7 +120,7 @@ func NewAppWithOptions(cfg *AppOptions) (abci.Application, error) { } // NewApp creates the GnoLand application. -func NewApp(dataRootDir string, skipFailingGenesisTxs bool, logger log.Logger, maxCycles int64) (abci.Application, error) { +func NewApp(dataRootDir string, skipFailingGenesisTxs bool, logger *slog.Logger, maxCycles int64) (abci.Application, error) { var err error cfg := NewAppOptions() diff --git a/gno.land/pkg/integration/gnoland.go b/gno.land/pkg/integration/gnoland.go index 318d76eea86..2add0b774e2 100644 --- a/gno.land/pkg/integration/gnoland.go +++ b/gno.land/pkg/integration/gnoland.go @@ -3,6 +3,7 @@ package integration import ( "flag" "fmt" + "log/slog" "path/filepath" "strings" "testing" @@ -20,7 +21,6 @@ import ( bft "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/crypto" "github.com/gnolang/gno/tm2/pkg/db" - "github.com/gnolang/gno/tm2/pkg/log" osm "github.com/gnolang/gno/tm2/pkg/os" "github.com/gnolang/gno/tm2/pkg/std" "github.com/rogpeppe/go-internal/testscript" @@ -97,7 +97,7 @@ func (c *IntegrationConfig) RegisterFlags(fs *flag.FlagSet) { ) } -func execTestingGnoland(t *testing.T, logger log.Logger, gnoDataDir, gnoRootDir string, args []string) (*node.Node, error) { +func execTestingGnoland(t *testing.T, logger *slog.Logger, gnoDataDir, gnoRootDir string, args []string) (*node.Node, error) { t.Helper() // Setup start config. @@ -240,7 +240,7 @@ func setupTestingGenesis(gnoDataDir string, cfg *config.Config, icfg *Integratio return nil } -func createAppAndNode(cfg *config.Config, logger log.Logger, gnoRootDir string, icfg *IntegrationConfig) (*node.Node, error) { +func createAppAndNode(cfg *config.Config, logger *slog.Logger, gnoRootDir string, icfg *IntegrationConfig) (*node.Node, error) { gnoApp, err := gnoland.NewAppWithOptions(&gnoland.AppOptions{ Logger: logger, GnoRootDir: gnoRootDir, diff --git a/gno.land/pkg/integration/testing_integration.go b/gno.land/pkg/integration/testing_integration.go index f0a696ddd85..1f03c59eb23 100644 --- a/gno.land/pkg/integration/testing_integration.go +++ b/gno.land/pkg/integration/testing_integration.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "hash/crc32" + "log/slog" "os" "path/filepath" "strconv" @@ -31,7 +32,7 @@ const ( type testNode struct { *node.Node - logger log.Logger + logger *slog.Logger nGnoKeyExec uint // Counter for execution of gnokey. } @@ -109,7 +110,7 @@ func SetupGnolandTestScript(t *testing.T, txtarDir string) testscript.Params { break } - logger := log.NewNopLogger() + logger := slog.New(log.NewNoopHandler()) if persistWorkDir || os.Getenv("LOG_DIR") != "" { logname := fmt.Sprintf("gnoland-%s.log", sid) logger = getTestingLogger(ts, logname) @@ -236,7 +237,7 @@ func getSessionID(ts *testscript.TestScript) string { return strconv.FormatUint(uint64(sum), 16) } -func getTestingLogger(ts *testscript.TestScript, logname string) log.Logger { +func getTestingLogger(ts *testscript.TestScript, logname string) *slog.Logger { var path string if logdir := os.Getenv("LOG_DIR"); logdir != "" { if err := os.MkdirAll(logdir, 0o755); err != nil { @@ -250,7 +251,7 @@ func getTestingLogger(ts *testscript.TestScript, logname string) log.Logger { } else if workdir := ts.Getenv("WORK"); workdir != "" { path = filepath.Join(workdir, logname) } else { - return log.NewNopLogger() + return slog.New(log.NewNoopHandler()) } f, err := os.Create(path) @@ -264,19 +265,21 @@ func getTestingLogger(ts *testscript.TestScript, logname string) log.Logger { } }) - logger := log.NewTMLogger(f) - switch level := os.Getenv("LOG_LEVEL"); strings.ToLower(level) { + level := slog.LevelInfo + + switch lvl := os.Getenv("LOG_LEVEL"); strings.ToLower(lvl) { case "error": - logger.SetLevel(log.LevelError) + level = slog.LevelError case "debug": - logger.SetLevel(log.LevelDebug) - case "info": - logger.SetLevel(log.LevelInfo) - case "": + level = slog.LevelDebug + case "warn": + level = slog.LevelWarn default: - ts.Fatalf("invalid log level %q", level) + level = slog.LevelInfo } + logger, _ := log.NewTMLogger(f, level) + ts.Logf("starting logger: %q", path) return logger } diff --git a/gno.land/pkg/sdk/vm/common_test.go b/gno.land/pkg/sdk/vm/common_test.go index 60a92906cb6..50b8fb17785 100644 --- a/gno.land/pkg/sdk/vm/common_test.go +++ b/gno.land/pkg/sdk/vm/common_test.go @@ -3,6 +3,7 @@ package vm // DONTCOVER import ( + "log/slog" "path/filepath" bft "github.com/gnolang/gno/tm2/pkg/bft/types" @@ -35,7 +36,7 @@ func setupTestEnv() testEnv { ms.MountStoreWithDB(iavlCapKey, iavl.StoreConstructor, db) ms.LoadLatestVersion() - ctx := sdk.NewContext(sdk.RunTxModeDeliver, ms, &bft.Header{ChainID: "test-chain-id"}, log.NewNopLogger()) + ctx := sdk.NewContext(sdk.RunTxModeDeliver, ms, &bft.Header{ChainID: "test-chain-id"}, slog.New(log.NewNoopHandler())) acck := authm.NewAccountKeeper(iavlCapKey, std.ProtoBaseAccount) bank := bankm.NewBankKeeper(acck) stdlibsDir := filepath.Join("..", "..", "..", "..", "gnovm", "stdlibs") diff --git a/go.mod b/go.mod index 72c52102547..05c9111a8a0 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/gnolang/gno -go 1.20 +go 1.21 require ( github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c @@ -31,12 +31,14 @@ require ( github.com/stretchr/testify v1.8.4 github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c go.etcd.io/bbolt v1.3.7 - go.uber.org/multierr v1.9.0 + go.uber.org/multierr v1.10.0 + go.uber.org/zap v1.24.0 + go.uber.org/zap/exp v0.2.0 golang.org/x/crypto v0.14.0 golang.org/x/mod v0.13.0 golang.org/x/net v0.17.0 golang.org/x/term v0.13.0 - golang.org/x/tools v0.13.0 + golang.org/x/tools v0.14.0 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -55,6 +57,7 @@ require ( github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/flatbuffers v1.12.1 // indirect + github.com/google/go-cmp v0.5.8 // indirect github.com/gorilla/securecookie v1.1.1 // indirect github.com/gorilla/sessions v1.2.1 // indirect github.com/klauspost/compress v1.12.3 // indirect @@ -65,7 +68,7 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/rivo/uniseg v0.2.0 // indirect go.opencensus.io v0.22.5 // indirect - go.uber.org/atomic v1.7.0 // indirect + go.uber.org/atomic v1.10.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect diff --git a/go.sum b/go.sum index 67e2a190feb..3bd1b7ea650 100644 --- a/go.sum +++ b/go.sum @@ -4,6 +4,8 @@ github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c h1:lnAMg3ra/Gw4AkRMxrxYs8nrprWsHowg8H9zaYsJOo4= github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= @@ -80,8 +82,9 @@ github.com/google/flatbuffers v1.12.1 h1:MVlul7pQNoDzWRLTw5imwYsl+usrS1TXG2H4jg6 github.com/google/flatbuffers v1.12.1/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/gorilla/csrf v1.7.0/go.mod h1:+a/4tCmqhG6/w4oafeAZ9pEa3/NZOWYVbD9fV0FwIQA= @@ -135,8 +138,10 @@ github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= @@ -164,7 +169,6 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= @@ -179,10 +183,16 @@ go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= -go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= +go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= +go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go.uber.org/zap/exp v0.2.0 h1:FtGenNNeCATRB3CmB/yEUnjEFeJWpB/pMcy7e2bKPYs= +go.uber.org/zap/exp v0.2.0/go.mod h1:t0gqAIdh1MfKv9EwN/dLwfZnJxe9ITAZN78HEWPFWDQ= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -242,8 +252,8 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -269,6 +279,7 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/tm2/pkg/bft/abci/example/kvstore/persistent_kvstore.go b/tm2/pkg/bft/abci/example/kvstore/persistent_kvstore.go index 2e0adb5656f..035f927859b 100644 --- a/tm2/pkg/bft/abci/example/kvstore/persistent_kvstore.go +++ b/tm2/pkg/bft/abci/example/kvstore/persistent_kvstore.go @@ -3,6 +3,7 @@ package kvstore import ( "encoding/base64" "fmt" + "log/slog" "strconv" "strings" @@ -31,7 +32,7 @@ type PersistentKVStoreApplication struct { // validator set ValSetChanges []abci.ValidatorUpdate - logger log.Logger + logger *slog.Logger } func NewPersistentKVStoreApplication(dbDir string) *PersistentKVStoreApplication { @@ -45,11 +46,11 @@ func NewPersistentKVStoreApplication(dbDir string) *PersistentKVStoreApplication return &PersistentKVStoreApplication{ app: &KVStoreApplication{state: state}, - logger: log.NewNopLogger(), + logger: slog.New(log.NewNoopHandler()), } } -func (app *PersistentKVStoreApplication) SetLogger(l log.Logger) { +func (app *PersistentKVStoreApplication) SetLogger(l *slog.Logger) { app.logger = l } diff --git a/tm2/pkg/bft/blockchain/pool.go b/tm2/pkg/bft/blockchain/pool.go index a44926ec7b2..05adc29f67d 100644 --- a/tm2/pkg/bft/blockchain/pool.go +++ b/tm2/pkg/bft/blockchain/pool.go @@ -3,6 +3,7 @@ package blockchain import ( "errors" "fmt" + "log/slog" "math" "sync" "sync/atomic" @@ -419,7 +420,7 @@ func (pool *BlockPool) debug() string { return str } -//------------------------------------- +// ------------------------------------- type bpPeer struct { pool *BlockPool @@ -431,7 +432,7 @@ type bpPeer struct { timeout *time.Timer didTimeout bool - logger log.Logger + logger *slog.Logger } func newBPPeer(pool *BlockPool, peerID p2p.ID, height int64) *bpPeer { @@ -440,12 +441,12 @@ func newBPPeer(pool *BlockPool, peerID p2p.ID, height int64) *bpPeer { id: peerID, height: height, numPending: 0, - logger: log.NewNopLogger(), + logger: slog.New(log.NewNoopHandler()), } return peer } -func (peer *bpPeer) setLogger(l log.Logger) { +func (peer *bpPeer) setLogger(l *slog.Logger) { peer.logger = l } @@ -491,7 +492,7 @@ func (peer *bpPeer) onTimeout() { peer.didTimeout = true } -//------------------------------------- +// ------------------------------------- type bpRequester struct { service.BaseService diff --git a/tm2/pkg/bft/blockchain/reactor.go b/tm2/pkg/bft/blockchain/reactor.go index 007f7ccfb1c..09e1225b717 100644 --- a/tm2/pkg/bft/blockchain/reactor.go +++ b/tm2/pkg/bft/blockchain/reactor.go @@ -3,6 +3,7 @@ package blockchain import ( "errors" "fmt" + "log/slog" "reflect" "time" @@ -10,7 +11,6 @@ import ( sm "github.com/gnolang/gno/tm2/pkg/bft/state" "github.com/gnolang/gno/tm2/pkg/bft/store" "github.com/gnolang/gno/tm2/pkg/bft/types" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/p2p" ) @@ -102,7 +102,7 @@ func NewBlockchainReactor(state sm.State, blockExec *sm.BlockExecutor, store *st } // SetLogger implements cmn.Service by setting the logger on reactor and pool. -func (bcR *BlockchainReactor) SetLogger(l log.Logger) { +func (bcR *BlockchainReactor) SetLogger(l *slog.Logger) { bcR.BaseService.Logger = l bcR.pool.Logger = l } diff --git a/tm2/pkg/bft/blockchain/reactor_test.go b/tm2/pkg/bft/blockchain/reactor_test.go index f4265e0f78d..64b98c63eda 100644 --- a/tm2/pkg/bft/blockchain/reactor_test.go +++ b/tm2/pkg/bft/blockchain/reactor_test.go @@ -1,6 +1,7 @@ package blockchain import ( + "log/slog" "os" "sort" "testing" @@ -50,7 +51,7 @@ type BlockchainReactorPair struct { app proxy.AppConns } -func newBlockchainReactor(logger log.Logger, genDoc *types.GenesisDoc, privVals []types.PrivValidator, maxBlockHeight int64) BlockchainReactorPair { +func newBlockchainReactor(logger *slog.Logger, genDoc *types.GenesisDoc, privVals []types.PrivValidator, maxBlockHeight int64) BlockchainReactorPair { if len(privVals) != 1 { panic("only support one validator") } @@ -324,7 +325,7 @@ func TestBcStatusResponseMessageValidateBasic(t *testing.T) { } } -//---------------------------------------------- +// ---------------------------------------------- // utility funcs func makeTxs(height int64) (txs []types.Tx) { diff --git a/tm2/pkg/bft/consensus/common_test.go b/tm2/pkg/bft/consensus/common_test.go index 7424305c00a..b3f21113ee0 100644 --- a/tm2/pkg/bft/consensus/common_test.go +++ b/tm2/pkg/bft/consensus/common_test.go @@ -4,6 +4,7 @@ import ( "bytes" "fmt" "io/ioutil" + "log/slog" "os" "path" "path/filepath" @@ -24,7 +25,6 @@ import ( "github.com/gnolang/gno/tm2/pkg/bft/store" "github.com/gnolang/gno/tm2/pkg/bft/types" tmtime "github.com/gnolang/gno/tm2/pkg/bft/types/time" - "github.com/gnolang/gno/tm2/pkg/colors" "github.com/gnolang/gno/tm2/pkg/crypto" dbm "github.com/gnolang/gno/tm2/pkg/db" "github.com/gnolang/gno/tm2/pkg/events" @@ -568,46 +568,13 @@ func ensureNewEventOnChannel(ch <-chan events.Event) { // ------------------------------------------------------------------------------- // consensus nets -// consensusLogger is a TestingLogger which uses a different -// color for each validator ("validator" key must exist). -func consensusLogger() log.Logger { - return log.TestingLoggerWithColorFn(func(keyvals ...interface{}) colors.Color { - for i := 0; i < len(keyvals)-1; i += 2 { - if keyvals[i] == "validator" { - num := keyvals[i+1].(int) - switch num % 8 { - case 0: - return colors.Red - case 1: - return colors.Green - case 2: - return colors.Yellow - case 3: - return colors.Blue - case 4: - return colors.Magenta - case 5: - return colors.Cyan - case 6: - return colors.White - case 7: - return colors.Gray - default: - panic("should not happen") - } - } - } - return colors.None - }).With("module", "consensus") -} - func randConsensusNet(nValidators int, testName string, tickerFunc func() TimeoutTicker, appFunc func() abci.Application, configOpts ...func(*cfg.Config), ) ([]*ConsensusState, cleanupFunc) { genDoc, privVals := randGenesisDoc(nValidators, false, 30) css := make([]*ConsensusState, nValidators) apps := make([]abci.Application, nValidators) - logger := consensusLogger() + logger := log.TestingLogger() configRootDirs := make([]string, 0, nValidators) for i := 0; i < nValidators; i++ { stateDB := dbm.NewMemDB() // each state needs its own db @@ -646,7 +613,7 @@ func randConsensusNetWithPeers(nValidators, nPeers int, testName string, tickerF genDoc, privVals := randGenesisDoc(nValidators, false, testMinPower) css := make([]*ConsensusState, nPeers) apps := make([]abci.Application, nPeers) - logger := consensusLogger() + logger := log.TestingLogger() var peer0Config *cfg.Config configRootDirs := make([]string, 0, nPeers) for i := 0; i < nPeers; i++ { @@ -786,7 +753,7 @@ func (m *mockTicker) Chan() <-chan timeoutInfo { return m.c } -func (*mockTicker) SetLogger(log.Logger) {} +func (*mockTicker) SetLogger(_ *slog.Logger) {} // ------------------------------------ diff --git a/tm2/pkg/bft/consensus/reactor.go b/tm2/pkg/bft/consensus/reactor.go index ab7f3b55e92..6167cf1e61c 100644 --- a/tm2/pkg/bft/consensus/reactor.go +++ b/tm2/pkg/bft/consensus/reactor.go @@ -2,6 +2,7 @@ package consensus import ( "fmt" + "log/slog" "reflect" "sync" "time" @@ -30,7 +31,7 @@ const ( votesToContributeToBecomeGoodPeer = 10000 ) -//----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- // ConsensusReactor defines a reactor for the consensus service. type ConsensusReactor struct { @@ -365,7 +366,7 @@ func (conR *ConsensusReactor) FastSync() bool { return conR.fastSync } -//-------------------------------------- +// -------------------------------------- // subscribeToBroadcastEvents subscribes for new round steps and votes // using internal pubsub defined on state to broadcast @@ -545,7 +546,7 @@ OUTER_LOOP: } } -func (conR *ConsensusReactor) gossipDataForCatchup(logger log.Logger, rs *cstypes.RoundState, +func (conR *ConsensusReactor) gossipDataForCatchup(logger *slog.Logger, rs *cstypes.RoundState, prs *cstypes.PeerRoundState, ps *PeerState, peer p2p.Peer, ) { if index, ok := prs.ProposalBlockParts.Not().PickRandom(); ok { @@ -659,7 +660,7 @@ OUTER_LOOP: } } -func (conR *ConsensusReactor) gossipVotesForHeight(logger log.Logger, rs *cstypes.RoundState, prs *cstypes.PeerRoundState, ps *PeerState) bool { +func (conR *ConsensusReactor) gossipVotesForHeight(logger *slog.Logger, rs *cstypes.RoundState, prs *cstypes.PeerRoundState, ps *PeerState) bool { // If there are lastCommits to send... if prs.Step == cstypes.RoundStepNewHeight { if ps.PickSendVote(rs.LastCommit) { @@ -865,7 +866,7 @@ func (conR *ConsensusReactor) StringIndented(indent string) string { return s } -//----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- var ( ErrPeerStateHeightRegression = errors.New("Error peer state height regression") @@ -878,7 +879,7 @@ var ( // Be mindful of what you Expose. type PeerState struct { peer p2p.Peer - logger log.Logger + logger *slog.Logger mtx sync.Mutex // NOTE: Modify below using setters, never directly. PRS cstypes.PeerRoundState `json:"round_state"` // Exposed. @@ -900,7 +901,7 @@ func (pss peerStateStats) String() string { func NewPeerState(peer p2p.Peer) *PeerState { return &PeerState{ peer: peer, - logger: log.NewNopLogger(), + logger: slog.New(log.NewNoopHandler()), PRS: cstypes.PeerRoundState{ Round: -1, ProposalPOLRound: -1, @@ -913,7 +914,7 @@ func NewPeerState(peer p2p.Peer) *PeerState { // SetLogger allows to set a logger on the peer state. Returns the peer state // itself. -func (ps *PeerState) SetLogger(logger log.Logger) *PeerState { +func (ps *PeerState) SetLogger(logger *slog.Logger) *PeerState { ps.logger = logger return ps } @@ -1336,7 +1337,7 @@ func (ps *PeerState) StringIndented(indent string) string { indent) } -//----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- // Messages // ConsensusMessage is a message that can be sent and received on the ConsensusReactor @@ -1352,7 +1353,7 @@ func decodeMsg(bz []byte) (msg ConsensusMessage, err error) { return } -//------------------------------------- +// ------------------------------------- // NewRoundStepMessage is sent for every step taken in the ConsensusState. // For every height/round/step transition @@ -1391,7 +1392,7 @@ func (m *NewRoundStepMessage) String() string { m.Height, m.Round, m.Step, m.LastCommitRound) } -//------------------------------------- +// ------------------------------------- // NewValidBlockMessage is sent when a validator observes a valid block B in some round r, // i.e., there is a Proposal for block B and 2/3+ prevotes for the block B in the round r. @@ -1435,7 +1436,7 @@ func (m *NewValidBlockMessage) String() string { m.Height, m.Round, m.BlockPartsHeader, m.BlockParts, m.IsCommit) } -//------------------------------------- +// ------------------------------------- // ProposalMessage is sent when a new block is proposed. type ProposalMessage struct { @@ -1452,7 +1453,7 @@ func (m *ProposalMessage) String() string { return fmt.Sprintf("[Proposal %v]", m.Proposal) } -//------------------------------------- +// ------------------------------------- // ProposalPOLMessage is sent when a previous proposal is re-proposed. type ProposalPOLMessage struct { @@ -1483,7 +1484,7 @@ func (m *ProposalPOLMessage) String() string { return fmt.Sprintf("[ProposalPOL H:%v POLR:%v POL:%v]", m.Height, m.ProposalPOLRound, m.ProposalPOL) } -//------------------------------------- +// ------------------------------------- // BlockPartMessage is sent when gossipping a piece of the proposed block. type BlockPartMessage struct { @@ -1511,7 +1512,7 @@ func (m *BlockPartMessage) String() string { return fmt.Sprintf("[BlockPart H:%v R:%v P:%v]", m.Height, m.Round, m.Part) } -//------------------------------------- +// ------------------------------------- // VoteMessage is sent when voting for a proposal (or lack thereof). type VoteMessage struct { @@ -1528,7 +1529,7 @@ func (m *VoteMessage) String() string { return fmt.Sprintf("[Vote %v]", m.Vote) } -//------------------------------------- +// ------------------------------------- // HasVoteMessage is sent to indicate that a particular vote has been received. type HasVoteMessage struct { @@ -1560,7 +1561,7 @@ func (m *HasVoteMessage) String() string { return fmt.Sprintf("[HasVote VI:%v V:{%v/%02d/%v}]", m.Index, m.Height, m.Round, m.Type) } -//------------------------------------- +// ------------------------------------- // VoteSetMaj23Message is sent to indicate that a given BlockID has seen +2/3 votes. type VoteSetMaj23Message struct { @@ -1592,7 +1593,7 @@ func (m *VoteSetMaj23Message) String() string { return fmt.Sprintf("[VSM23 %v/%02d/%v %v]", m.Height, m.Round, m.Type, m.BlockID) } -//------------------------------------- +// ------------------------------------- // VoteSetBitsMessage is sent to communicate the bit-array of votes seen for the BlockID. type VoteSetBitsMessage struct { @@ -1629,4 +1630,4 @@ func (m *VoteSetBitsMessage) String() string { return fmt.Sprintf("[VSB %v/%02d/%v %v %v]", m.Height, m.Round, m.Type, m.BlockID, m.Votes) } -//------------------------------------- +// ------------------------------------- diff --git a/tm2/pkg/bft/consensus/reactor_test.go b/tm2/pkg/bft/consensus/reactor_test.go index 2194d4d007d..1c97bd52bef 100644 --- a/tm2/pkg/bft/consensus/reactor_test.go +++ b/tm2/pkg/bft/consensus/reactor_test.go @@ -2,6 +2,7 @@ package consensus import ( "fmt" + "log/slog" "sync" "testing" "time" @@ -67,7 +68,7 @@ func startConsensusNet(css []*ConsensusState, n int) ([]*ConsensusReactor, []<-c return reactors, blocksSubs, eventSwitches, p2pSwitches } -func stopConsensusNet(logger log.Logger, reactors []*ConsensusReactor, eventSwitches []events.EventSwitch, p2pSwitches []*p2p.Switch) { +func stopConsensusNet(logger *slog.Logger, reactors []*ConsensusReactor, eventSwitches []events.EventSwitch, p2pSwitches []*p2p.Switch) { logger.Info("stopConsensusNet", "n", len(reactors)) for i, r := range reactors { logger.Info("stopConsensusNet: Stopping ConsensusReactor", "i", i) diff --git a/tm2/pkg/bft/consensus/replay.go b/tm2/pkg/bft/consensus/replay.go index 16b4ba3fa87..05b8d5fb693 100644 --- a/tm2/pkg/bft/consensus/replay.go +++ b/tm2/pkg/bft/consensus/replay.go @@ -6,6 +6,7 @@ import ( "fmt" "hash/crc32" "io" + "log/slog" "reflect" "time" @@ -199,7 +200,7 @@ type Handshaker struct { store sm.BlockStore evsw events.EventSwitch genDoc *types.GenesisDoc - logger log.Logger + logger *slog.Logger nBlocks int // number of blocks applied to the state } @@ -213,12 +214,12 @@ func NewHandshaker(stateDB dbm.DB, state sm.State, store: store, evsw: events.NilEventSwitch(), genDoc: genDoc, - logger: log.NewNopLogger(), + logger: slog.New(log.NewNoopHandler()), nBlocks: 0, } } -func (h *Handshaker) SetLogger(l log.Logger) { +func (h *Handshaker) SetLogger(l *slog.Logger) { h.logger = l } diff --git a/tm2/pkg/bft/consensus/replay_test.go b/tm2/pkg/bft/consensus/replay_test.go index 3174207ef8d..b3120a6d973 100644 --- a/tm2/pkg/bft/consensus/replay_test.go +++ b/tm2/pkg/bft/consensus/replay_test.go @@ -7,6 +7,7 @@ import ( "fmt" "io" "io/ioutil" + "log/slog" "os" "path/filepath" "runtime" @@ -166,7 +167,7 @@ LOOP: t.Logf("====== LOOP %d\n", i) // create consensus state from a clean slate - logger := log.NewNopLogger() + logger := slog.New(log.NewNoopHandler()) blockDB := dbm.NewMemDB() stateDB := blockDB state, _ := sm.MakeGenesisStateFromFile(consensusReplayConfig.GenesisFile()) @@ -250,7 +251,7 @@ func (e ReachedLastBlockHeightError) Error() string { return fmt.Sprintf("reached height to stop %d", e.height) } -func (w *crashingWAL) SetLogger(logger log.Logger) { +func (w *crashingWAL) SetLogger(logger *slog.Logger) { w.next.SetLogger(logger) } diff --git a/tm2/pkg/bft/consensus/state.go b/tm2/pkg/bft/consensus/state.go index 988a455f117..e6b4ace8d2f 100644 --- a/tm2/pkg/bft/consensus/state.go +++ b/tm2/pkg/bft/consensus/state.go @@ -4,6 +4,7 @@ import ( "bytes" goerrors "errors" "fmt" + "log/slog" "reflect" "runtime/debug" "sync" @@ -20,7 +21,6 @@ import ( "github.com/gnolang/gno/tm2/pkg/crypto" "github.com/gnolang/gno/tm2/pkg/errors" "github.com/gnolang/gno/tm2/pkg/events" - "github.com/gnolang/gno/tm2/pkg/log" osm "github.com/gnolang/gno/tm2/pkg/os" "github.com/gnolang/gno/tm2/pkg/p2p" "github.com/gnolang/gno/tm2/pkg/service" @@ -184,7 +184,7 @@ func NewConsensusState( // Public interface // SetLogger implements Service. -func (cs *ConsensusState) SetLogger(l log.Logger) { +func (cs *ConsensusState) SetLogger(l *slog.Logger) { cs.BaseService.Logger = l cs.timeoutTicker.SetLogger(l) } diff --git a/tm2/pkg/bft/consensus/ticker.go b/tm2/pkg/bft/consensus/ticker.go index c4f660aae16..06724e2158b 100644 --- a/tm2/pkg/bft/consensus/ticker.go +++ b/tm2/pkg/bft/consensus/ticker.go @@ -1,9 +1,9 @@ package consensus import ( + "log/slog" "time" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/service" ) @@ -18,7 +18,7 @@ type TimeoutTicker interface { Chan() <-chan timeoutInfo // on which to receive a timeout ScheduleTimeout(ti timeoutInfo) // reset the timer - SetLogger(log.Logger) + SetLogger(*slog.Logger) } // timeoutTicker wraps time.Timer, @@ -71,7 +71,7 @@ func (t *timeoutTicker) ScheduleTimeout(ti timeoutInfo) { t.tickChan <- ti } -//------------------------------------------------------------- +// ------------------------------------------------------------- // stop the timer and drain if necessary func (t *timeoutTicker) stopTimer() { diff --git a/tm2/pkg/bft/consensus/wal_generator.go b/tm2/pkg/bft/consensus/wal_generator.go index dff1cca1446..2901607289a 100644 --- a/tm2/pkg/bft/consensus/wal_generator.go +++ b/tm2/pkg/bft/consensus/wal_generator.go @@ -5,6 +5,7 @@ import ( "bytes" "fmt" "io" + "log/slog" "path/filepath" "testing" "time" @@ -40,7 +41,7 @@ func WALGenerateNBlocks(t *testing.T, wr io.Writer, numBlocks int) (err error) { logger := log.TestingLogger().With("wal_generator", "wal_generator") logger.Info("generating WAL (last height msg excluded)", "numBlocks", numBlocks) - ///////////////////////////////////////////////////////////////////////////// + // /////////////////////////////////////////////////////////////////////////// // COPY PASTE FROM node.go WITH A FEW MODIFICATIONS // NOTE: we can't import node package because of circular dependency. // NOTE: we don't do handshake so need to set state.Version.Consensus.App directly. @@ -83,7 +84,7 @@ func WALGenerateNBlocks(t *testing.T, wr io.Writer, numBlocks int) (err error) { consensusState.SetPrivValidator(privValidator) } // END OF COPY PASTE - ///////////////////////////////////////////////////////////////////////////// + // /////////////////////////////////////////////////////////////////////////// // set consensus wal to buffered WAL, which will write all incoming msgs to buffer numBlocksWritten := make(chan struct{}) @@ -159,13 +160,13 @@ type heightStopWAL struct { heightToStop int64 signalWhenStopsTo chan<- struct{} - logger log.Logger + logger *slog.Logger } // needed for determinism var fixedTime, _ = time.Parse(time.RFC3339, "2017-01-02T15:04:05Z") -func newHeightStopWAL(logger log.Logger, enc *walm.WALWriter, nBlocks int64, signalStop chan<- struct{}) *heightStopWAL { +func newHeightStopWAL(logger *slog.Logger, enc *walm.WALWriter, nBlocks int64, signalStop chan<- struct{}) *heightStopWAL { return &heightStopWAL{ enc: enc, heightToStop: nBlocks, @@ -174,7 +175,7 @@ func newHeightStopWAL(logger log.Logger, enc *walm.WALWriter, nBlocks int64, sig } } -func (w *heightStopWAL) SetLogger(logger log.Logger) { +func (w *heightStopWAL) SetLogger(logger *slog.Logger) { w.logger = logger } diff --git a/tm2/pkg/bft/mempool/clist_mempool.go b/tm2/pkg/bft/mempool/clist_mempool.go index 14fc52e19b2..b3ae33614a9 100644 --- a/tm2/pkg/bft/mempool/clist_mempool.go +++ b/tm2/pkg/bft/mempool/clist_mempool.go @@ -5,6 +5,7 @@ import ( "container/list" "crypto/sha256" "fmt" + "log/slog" "sync" "sync/atomic" "time" @@ -63,7 +64,7 @@ type CListMempool struct { // A log of mempool txs wal *auto.AutoFile - logger log.Logger + logger *slog.Logger } var _ Mempool = &CListMempool{} @@ -91,7 +92,7 @@ func NewCListMempool( rechecking: 0, recheckCursor: nil, recheckEnd: nil, - logger: log.NewNopLogger(), + logger: slog.New(log.NewNoopHandler()), } if config.CacheSize > 0 { mempool.cache = newMapTxCache(config.CacheSize) @@ -111,7 +112,7 @@ func (mem *CListMempool) EnableTxsAvailable() { } // SetLogger sets the Logger. -func (mem *CListMempool) SetLogger(l log.Logger) { +func (mem *CListMempool) SetLogger(l *slog.Logger) { mem.logger = l } diff --git a/tm2/pkg/bft/mempool/reactor.go b/tm2/pkg/bft/mempool/reactor.go index f6ee67b3fc4..3ef85b80a21 100644 --- a/tm2/pkg/bft/mempool/reactor.go +++ b/tm2/pkg/bft/mempool/reactor.go @@ -2,6 +2,7 @@ package mempool import ( "fmt" + "log/slog" "math" "reflect" "sync" @@ -11,7 +12,6 @@ import ( cfg "github.com/gnolang/gno/tm2/pkg/bft/mempool/config" "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/clist" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/p2p" ) @@ -112,7 +112,7 @@ func NewReactor(config *cfg.MempoolConfig, mempool *CListMempool) *Reactor { } // SetLogger sets the Logger on the reactor and the underlying mempool. -func (memR *Reactor) SetLogger(l log.Logger) { +func (memR *Reactor) SetLogger(l *slog.Logger) { memR.Logger = l memR.mempool.SetLogger(l) } @@ -248,7 +248,7 @@ func (memR *Reactor) broadcastTxRoutine(peer p2p.Peer) { } } -//----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- // Messages // MempoolMessage is a message sent or received by the Reactor. @@ -259,7 +259,7 @@ func (memR *Reactor) decodeMsg(bz []byte) (msg MempoolMessage, err error) { return } -//------------------------------------- +// ------------------------------------- // TxMessage is a MempoolMessage containing a transaction. type TxMessage struct { diff --git a/tm2/pkg/bft/mempool/reactor_test.go b/tm2/pkg/bft/mempool/reactor_test.go index c3b77fb46df..e39132d78e9 100644 --- a/tm2/pkg/bft/mempool/reactor_test.go +++ b/tm2/pkg/bft/mempool/reactor_test.go @@ -13,7 +13,6 @@ import ( memcfg "github.com/gnolang/gno/tm2/pkg/bft/mempool/config" "github.com/gnolang/gno/tm2/pkg/bft/proxy" "github.com/gnolang/gno/tm2/pkg/bft/types" - "github.com/gnolang/gno/tm2/pkg/colors" "github.com/gnolang/gno/tm2/pkg/errors" "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/p2p" @@ -30,43 +29,10 @@ func (ps peerState) GetHeight() int64 { return ps.height } -// mempoolLogger is a TestingLogger which uses a different -// color for each validator ("validator" key must exist). -func mempoolLogger() log.Logger { - return log.TestingLoggerWithColorFn(func(keyvals ...interface{}) colors.Color { - for i := 0; i < len(keyvals)-1; i += 2 { - if keyvals[i] == "validator" { - num := keyvals[i+1].(int) - switch num % 8 { - case 0: - return colors.Red - case 1: - return colors.Green - case 2: - return colors.Yellow - case 3: - return colors.Blue - case 4: - return colors.Magenta - case 5: - return colors.Cyan - case 6: - return colors.White - case 7: - return colors.Gray - default: - panic("should not happen") - } - } - } - return colors.None - }) -} - // connect N mempool reactors through N switches func makeAndConnectReactors(mconfig *memcfg.MempoolConfig, pconfig *p2pcfg.P2PConfig, n int) []*Reactor { reactors := make([]*Reactor, n) - logger := mempoolLogger() + logger := log.TestingLogger() for i := 0; i < n; i++ { app := kvstore.NewKVStoreApplication() cc := proxy.NewLocalClientCreator(app) diff --git a/tm2/pkg/bft/node/node.go b/tm2/pkg/bft/node/node.go index bdeb5061540..e49e303c689 100644 --- a/tm2/pkg/bft/node/node.go +++ b/tm2/pkg/bft/node/node.go @@ -5,6 +5,7 @@ package node import ( "fmt" + "log/slog" "net" "net/http" _ "net/http/pprof" //nolint:gosec @@ -36,7 +37,6 @@ import ( dbm "github.com/gnolang/gno/tm2/pkg/db" "github.com/gnolang/gno/tm2/pkg/errors" "github.com/gnolang/gno/tm2/pkg/events" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/p2p" "github.com/gnolang/gno/tm2/pkg/service" verset "github.com/gnolang/gno/tm2/pkg/versionset" @@ -74,12 +74,12 @@ func DefaultGenesisDocProviderFunc(config *cfg.Config) GenesisDocProvider { } // NodeProvider takes a config and a logger and returns a ready to go Node. -type NodeProvider func(*cfg.Config, log.Logger) (*Node, error) +type NodeProvider func(*cfg.Config, *slog.Logger) (*Node, error) // DefaultNewNode returns a Tendermint node with default settings for the // PrivValidator, ClientCreator, GenesisDoc, and DBProvider. // It implements NodeProvider. -func DefaultNewNode(config *cfg.Config, logger log.Logger) (*Node, error) { +func DefaultNewNode(config *cfg.Config, logger *slog.Logger) (*Node, error) { // Generate node PrivKey nodeKey, err := p2p.LoadOrGenNodeKey(config.NodeKeyFile()) if err != nil { @@ -185,7 +185,7 @@ func initDBs(config *cfg.Config, dbProvider DBProvider) (blockStore *store.Block return } -func createAndStartProxyAppConns(clientCreator proxy.ClientCreator, logger log.Logger) (proxy.AppConns, error) { +func createAndStartProxyAppConns(clientCreator proxy.ClientCreator, logger *slog.Logger) (proxy.AppConns, error) { proxyApp := proxy.NewAppConns(clientCreator) proxyApp.SetLogger(logger.With("module", "proxy")) if err := proxyApp.Start(); err != nil { @@ -197,7 +197,7 @@ func createAndStartProxyAppConns(clientCreator proxy.ClientCreator, logger log.L func createAndStartEventStoreService( cfg *cfg.Config, evsw events.EventSwitch, - logger log.Logger, + logger *slog.Logger, ) (*eventstore.Service, eventstore.TxEventStore, error) { var ( err error @@ -227,7 +227,7 @@ func createAndStartEventStoreService( } func doHandshake(stateDB dbm.DB, state sm.State, blockStore sm.BlockStore, - genDoc *types.GenesisDoc, evsw events.EventSwitch, proxyApp proxy.AppConns, consensusLogger log.Logger, + genDoc *types.GenesisDoc, evsw events.EventSwitch, proxyApp proxy.AppConns, consensusLogger *slog.Logger, ) error { handshaker := cs.NewHandshaker(stateDB, state, blockStore, genDoc) handshaker.SetLogger(consensusLogger) @@ -238,7 +238,7 @@ func doHandshake(stateDB dbm.DB, state sm.State, blockStore sm.BlockStore, return nil } -func logNodeStartupInfo(state sm.State, pubKey crypto.PubKey, logger, consensusLogger log.Logger) { +func logNodeStartupInfo(state sm.State, pubKey crypto.PubKey, logger, consensusLogger *slog.Logger) { // Log the version info. logger.Info("Version info", "version", version.Version, @@ -262,7 +262,7 @@ func onlyValidatorIsUs(state sm.State, privVal types.PrivValidator) bool { } func createMempoolAndMempoolReactor(config *cfg.Config, proxyApp proxy.AppConns, - state sm.State, logger log.Logger, + state sm.State, logger *slog.Logger, ) (*mempl.Reactor, *mempl.CListMempool) { mempool := mempl.NewCListMempool( config.Mempool, @@ -286,7 +286,7 @@ func createBlockchainReactor(config *cfg.Config, blockExec *sm.BlockExecutor, blockStore *store.BlockStore, fastSync bool, - logger log.Logger, + logger *slog.Logger, ) (bcReactor p2p.Reactor, err error) { bcReactor = bc.NewBlockchainReactor(state.Copy(), blockExec, blockStore, fastSync) @@ -302,7 +302,7 @@ func createConsensusReactor(config *cfg.Config, privValidator types.PrivValidator, fastSync bool, evsw events.EventSwitch, - consensusLogger log.Logger, + consensusLogger *slog.Logger, ) (*cs.ConsensusReactor, *cs.ConsensusState) { consensusState := cs.NewConsensusState( config.Consensus, @@ -387,7 +387,7 @@ func createSwitch(config *cfg.Config, consensusReactor *cs.ConsensusReactor, nodeInfo p2p.NodeInfo, nodeKey *p2p.NodeKey, - p2pLogger log.Logger, + p2pLogger *slog.Logger, ) *p2p.Switch { sw := p2p.NewSwitch( config.P2P, @@ -413,7 +413,7 @@ func NewNode(config *cfg.Config, clientCreator proxy.ClientCreator, genesisDocProvider GenesisDocProvider, dbProvider DBProvider, - logger log.Logger, + logger *slog.Logger, options ...Option, ) (*Node, error) { blockStore, stateDB, err := initDBs(config, dbProvider) @@ -938,7 +938,7 @@ func saveGenesisDoc(db dbm.DB, genDoc *types.GenesisDoc) { func createAndStartPrivValidatorSocketClient( listenAddr string, - logger log.Logger, + logger *slog.Logger, ) (types.PrivValidator, error) { pve, err := privval.NewSignerListener(listenAddr, logger) if err != nil { diff --git a/tm2/pkg/bft/privval/signer_dialer_endpoint.go b/tm2/pkg/bft/privval/signer_dialer_endpoint.go index 40a76b6cb9f..fa4f5891fc1 100644 --- a/tm2/pkg/bft/privval/signer_dialer_endpoint.go +++ b/tm2/pkg/bft/privval/signer_dialer_endpoint.go @@ -1,9 +1,9 @@ package privval import ( + "log/slog" "time" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/service" ) @@ -41,7 +41,7 @@ type SignerDialerEndpoint struct { // dialer and respond to any signature requests over the connection // using the given privVal. func NewSignerDialerEndpoint( - logger log.Logger, + logger *slog.Logger, dialer SocketDialer, ) *SignerDialerEndpoint { sd := &SignerDialerEndpoint{ diff --git a/tm2/pkg/bft/privval/signer_listener_endpoint.go b/tm2/pkg/bft/privval/signer_listener_endpoint.go index 30ed24268ca..df28d7d3722 100644 --- a/tm2/pkg/bft/privval/signer_listener_endpoint.go +++ b/tm2/pkg/bft/privval/signer_listener_endpoint.go @@ -2,11 +2,11 @@ package privval import ( "fmt" + "log/slog" "net" "sync" "time" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/service" ) @@ -30,7 +30,7 @@ type SignerListenerEndpoint struct { // NewSignerListenerEndpoint returns an instance of SignerListenerEndpoint. func NewSignerListenerEndpoint( - logger log.Logger, + logger *slog.Logger, listener net.Listener, ) *SignerListenerEndpoint { sc := &SignerListenerEndpoint{ diff --git a/tm2/pkg/bft/privval/signer_listener_endpoint_test.go b/tm2/pkg/bft/privval/signer_listener_endpoint_test.go index 8e5b1613454..4acd0b9ac10 100644 --- a/tm2/pkg/bft/privval/signer_listener_endpoint_test.go +++ b/tm2/pkg/bft/privval/signer_listener_endpoint_test.go @@ -1,6 +1,7 @@ package privval import ( + "log/slog" "net" "testing" "time" @@ -132,7 +133,7 @@ func TestRetryConnToRemoteSigner(t *testing.T) { // ///////////////////////////////// -func newSignerListenerEndpoint(logger log.Logger, ln net.Listener, timeoutReadWrite time.Duration) *SignerListenerEndpoint { +func newSignerListenerEndpoint(logger *slog.Logger, ln net.Listener, timeoutReadWrite time.Duration) *SignerListenerEndpoint { var listener net.Listener if ln.Addr().Network() == "unix" { diff --git a/tm2/pkg/bft/privval/utils.go b/tm2/pkg/bft/privval/utils.go index c190235ddf3..c759d9dde9d 100644 --- a/tm2/pkg/bft/privval/utils.go +++ b/tm2/pkg/bft/privval/utils.go @@ -2,11 +2,11 @@ package privval import ( "fmt" + "log/slog" "net" "github.com/gnolang/gno/tm2/pkg/crypto/ed25519" "github.com/gnolang/gno/tm2/pkg/errors" - "github.com/gnolang/gno/tm2/pkg/log" osm "github.com/gnolang/gno/tm2/pkg/os" ) @@ -25,7 +25,7 @@ func IsConnTimeout(err error) bool { } // NewSignerListener creates a new SignerListenerEndpoint using the corresponding listen address -func NewSignerListener(listenAddr string, logger log.Logger) (*SignerListenerEndpoint, error) { +func NewSignerListener(listenAddr string, logger *slog.Logger) (*SignerListenerEndpoint, error) { var listener net.Listener protocol, address := osm.ProtocolAndAddress(listenAddr) diff --git a/tm2/pkg/bft/rpc/client/localclient.go b/tm2/pkg/bft/rpc/client/localclient.go index 20209f74071..c39fcaf3a58 100644 --- a/tm2/pkg/bft/rpc/client/localclient.go +++ b/tm2/pkg/bft/rpc/client/localclient.go @@ -1,6 +1,8 @@ package client import ( + "log/slog" + nm "github.com/gnolang/gno/tm2/pkg/bft/node" "github.com/gnolang/gno/tm2/pkg/bft/rpc/core" ctypes "github.com/gnolang/gno/tm2/pkg/bft/rpc/core/types" @@ -24,7 +26,7 @@ For real clients, you probably want to use client.HTTP. For more powerful control during testing, you probably want the "client/mock" package. */ type Local struct { - Logger log.Logger + Logger *slog.Logger ctx *rpctypes.Context } @@ -37,7 +39,7 @@ type Local struct { func NewLocal(node *nm.Node) *Local { node.ConfigureRPC() return &Local{ - Logger: log.NewNopLogger(), + Logger: slog.New(log.NewNoopHandler()), ctx: &rpctypes.Context{}, } } @@ -45,7 +47,7 @@ func NewLocal(node *nm.Node) *Local { var _ Client = (*Local)(nil) // SetLogger allows to set a logger on the client. -func (c *Local) SetLogger(l log.Logger) { +func (c *Local) SetLogger(l *slog.Logger) { c.Logger = l } diff --git a/tm2/pkg/bft/rpc/core/pipe.go b/tm2/pkg/bft/rpc/core/pipe.go index a8b102d9ab7..f2aa33a62ae 100644 --- a/tm2/pkg/bft/rpc/core/pipe.go +++ b/tm2/pkg/bft/rpc/core/pipe.go @@ -2,6 +2,7 @@ package core import ( "fmt" + "log/slog" "github.com/gnolang/gno/tm2/pkg/bft/consensus" cnscfg "github.com/gnolang/gno/tm2/pkg/bft/consensus/config" @@ -15,7 +16,6 @@ import ( "github.com/gnolang/gno/tm2/pkg/crypto" dbm "github.com/gnolang/gno/tm2/pkg/db" "github.com/gnolang/gno/tm2/pkg/events" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/p2p" ) @@ -74,7 +74,7 @@ var ( gTxDispatcher *txDispatcher mempool mempl.Mempool - logger log.Logger + logger *slog.Logger config cfg.RPCConfig ) @@ -123,7 +123,7 @@ func SetConsensusReactor(conR *consensus.ConsensusReactor) { consensusReactor = conR } -func SetLogger(l log.Logger) { +func SetLogger(l *slog.Logger) { logger = l } diff --git a/tm2/pkg/bft/rpc/lib/rpc_test.go b/tm2/pkg/bft/rpc/lib/rpc_test.go index 2c1aebaae14..cfa26a92c8f 100644 --- a/tm2/pkg/bft/rpc/lib/rpc_test.go +++ b/tm2/pkg/bft/rpc/lib/rpc_test.go @@ -6,6 +6,7 @@ import ( crand "crypto/rand" "encoding/json" "fmt" + "log/slog" "net/http" "os" "os/exec" @@ -103,10 +104,13 @@ var colorFn = func(keyvals ...interface{}) colors.Color { // launch unix and tcp servers func setup() { - logger := log.NewTMLoggerWithColorFn(log.NewSyncWriter(os.Stdout), colorFn) + logger, err := log.NewTMLogger(os.Stdout, slog.LevelError) + if err != nil { + panic(err) + } cmd := exec.Command("rm", "-f", unixSocket) - err := cmd.Start() + err = cmd.Start() if err != nil { panic(err) } diff --git a/tm2/pkg/bft/rpc/lib/server/handlers.go b/tm2/pkg/bft/rpc/lib/server/handlers.go index aa3fadd4d18..e13171c2872 100644 --- a/tm2/pkg/bft/rpc/lib/server/handlers.go +++ b/tm2/pkg/bft/rpc/lib/server/handlers.go @@ -7,6 +7,7 @@ import ( "encoding/json" "fmt" "io/ioutil" + "log/slog" "net/http" "reflect" "runtime/debug" @@ -25,7 +26,7 @@ import ( // RegisterRPCFuncs adds a route for each function in the funcMap, as well as general jsonrpc and websocket handlers for all functions. // "result" is the interface on which the result objects are registered, and is populated with every RPCResponse -func RegisterRPCFuncs(mux *http.ServeMux, funcMap map[string]*RPCFunc, logger log.Logger) { +func RegisterRPCFuncs(mux *http.ServeMux, funcMap map[string]*RPCFunc, logger *slog.Logger) { // HTTP endpoints for funcName, rpcFunc := range funcMap { mux.HandleFunc("/"+funcName, makeHTTPHandler(rpcFunc, logger)) @@ -99,7 +100,7 @@ func funcReturnTypes(f interface{}) []reflect.Type { // rpc.json // jsonrpc calls grab the given method's function info and runs reflect.Call -func makeJSONRPCHandler(funcMap map[string]*RPCFunc, logger log.Logger) http.HandlerFunc { +func makeJSONRPCHandler(funcMap map[string]*RPCFunc, logger *slog.Logger) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { b, err := ioutil.ReadAll(r.Body) if err != nil { @@ -256,7 +257,7 @@ func jsonParamsToArgs(rpcFunc *RPCFunc, raw []byte) ([]reflect.Value, error) { // rpc.http // convert from a function name to the http handler -func makeHTTPHandler(rpcFunc *RPCFunc, logger log.Logger) func(http.ResponseWriter, *http.Request) { +func makeHTTPHandler(rpcFunc *RPCFunc, logger *slog.Logger) func(http.ResponseWriter, *http.Request) { // Exception for websocket endpoints if rpcFunc.ws { return func(w http.ResponseWriter, r *http.Request) { @@ -758,7 +759,7 @@ type WebsocketManager struct { websocket.Upgrader funcMap map[string]*RPCFunc - logger log.Logger + logger *slog.Logger wsConnOptions []func(*wsConnection) } @@ -773,13 +774,13 @@ func NewWebsocketManager(funcMap map[string]*RPCFunc, wsConnOptions ...func(*wsC return true }, }, - logger: log.NewNopLogger(), + logger: slog.New(log.NewNoopHandler()), wsConnOptions: wsConnOptions, } } // SetLogger sets the logger. -func (wm *WebsocketManager) SetLogger(l log.Logger) { +func (wm *WebsocketManager) SetLogger(l *slog.Logger) { wm.logger = l } diff --git a/tm2/pkg/bft/rpc/lib/server/handlers_test.go b/tm2/pkg/bft/rpc/lib/server/handlers_test.go index 8bf2cc0f7f1..b45f00f692c 100644 --- a/tm2/pkg/bft/rpc/lib/server/handlers_test.go +++ b/tm2/pkg/bft/rpc/lib/server/handlers_test.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/json" "io/ioutil" + "log/slog" "net/http" "net/http/httptest" "strings" @@ -18,11 +19,11 @@ import ( "github.com/gnolang/gno/tm2/pkg/log" ) -////////////////////////////////////////////////////////////////////////////// +// //////////////////////////////////////////////////////////////////////////// // HTTP REST API // TODO -////////////////////////////////////////////////////////////////////////////// +// //////////////////////////////////////////////////////////////////////////// // JSON-RPC over HTTP func testMux() *http.ServeMux { @@ -31,7 +32,8 @@ func testMux() *http.ServeMux { } mux := http.NewServeMux() buf := new(bytes.Buffer) - logger := log.NewTMLogger(buf) + logger, _ := log.NewTMLogger(buf, slog.LevelDebug) + rs.RegisterRPCFuncs(mux, funcMap, logger) return mux @@ -229,7 +231,7 @@ func TestUnknownRPCPath(t *testing.T) { require.Equal(t, http.StatusNotFound, res.StatusCode, "should always return 404") } -////////////////////////////////////////////////////////////////////////////// +// //////////////////////////////////////////////////////////////////////////// // JSON-RPC over WEBSOCKETS func TestWebsocketManagerHandler(t *testing.T) { diff --git a/tm2/pkg/bft/rpc/lib/server/http_server.go b/tm2/pkg/bft/rpc/lib/server/http_server.go index feaba1ba938..23ac851512f 100644 --- a/tm2/pkg/bft/rpc/lib/server/http_server.go +++ b/tm2/pkg/bft/rpc/lib/server/http_server.go @@ -5,6 +5,7 @@ import ( "bufio" "encoding/json" "fmt" + "log/slog" "net" "net/http" "runtime/debug" @@ -15,7 +16,6 @@ import ( types "github.com/gnolang/gno/tm2/pkg/bft/rpc/lib/types" "github.com/gnolang/gno/tm2/pkg/errors" - "github.com/gnolang/gno/tm2/pkg/log" ) // Config is a RPC server configuration. @@ -47,7 +47,7 @@ func DefaultConfig() *Config { // StartHTTPServer takes a listener and starts an HTTP server with the given handler. // It wraps handler with RecoverAndLogHandler. // NOTE: This function blocks - you may want to call it in a go-routine. -func StartHTTPServer(listener net.Listener, handler http.Handler, logger log.Logger, config *Config) error { +func StartHTTPServer(listener net.Listener, handler http.Handler, logger *slog.Logger, config *Config) error { logger.Info(fmt.Sprintf("Starting RPC HTTP server on %s", listener.Addr())) s := &http.Server{ Handler: RecoverAndLogHandler(maxBytesHandler{h: handler, n: config.MaxBodyBytes}, logger), @@ -68,7 +68,7 @@ func StartHTTPAndTLSServer( listener net.Listener, handler http.Handler, certFile, keyFile string, - logger log.Logger, + logger *slog.Logger, config *Config, ) error { logger.Info(fmt.Sprintf("Starting RPC HTTPS server on %s (cert: %q, key: %q)", @@ -134,12 +134,12 @@ func WriteRPCResponseArrayHTTP(w http.ResponseWriter, res []types.RPCResponse) { } } -//----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- // RecoverAndLogHandler wraps an HTTP handler, adding error logging. // If the inner function panics, the outer function recovers, logs, sends an // HTTP 500 error response. -func RecoverAndLogHandler(handler http.Handler, logger log.Logger) http.Handler { +func RecoverAndLogHandler(handler http.Handler, logger *slog.Logger) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // Wrap the ResponseWriter to remember the status rww := &ResponseWriterWrapper{-1, w} diff --git a/tm2/pkg/bft/rpc/lib/server/http_server_test.go b/tm2/pkg/bft/rpc/lib/server/http_server_test.go index 6753a339981..351d9cb92d6 100644 --- a/tm2/pkg/bft/rpc/lib/server/http_server_test.go +++ b/tm2/pkg/bft/rpc/lib/server/http_server_test.go @@ -6,6 +6,7 @@ import ( "fmt" "io" "io/ioutil" + "log/slog" "net" "net/http" "net/http/httptest" @@ -165,9 +166,9 @@ func TestRecoverAndLogHandler(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var ( - req, _ = http.NewRequest(http.MethodGet, "", nil) - resp = httptest.NewRecorder() - logger = log.NewTMLogger(&bytes.Buffer{}) + req, _ = http.NewRequest(http.MethodGet, "", nil) + resp = httptest.NewRecorder() + logger, _ = log.NewTMLogger(&bytes.Buffer{}, slog.LevelDebug) // Create a handler that will always panic with argument tt.panicArg handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { panic(tt.panicArg) diff --git a/tm2/pkg/bft/rpc/lib/test/main.go b/tm2/pkg/bft/rpc/lib/test/main.go index fe7fc49c65e..209993c8f2c 100644 --- a/tm2/pkg/bft/rpc/lib/test/main.go +++ b/tm2/pkg/bft/rpc/lib/test/main.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "log/slog" "net/http" "os" @@ -26,8 +27,8 @@ type Result struct { func main() { var ( - mux = http.NewServeMux() - logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout)) + mux = http.NewServeMux() + logger, err = log.NewTMLogger(os.Stdout, slog.LevelInfo) ) // Stop upon receiving SIGTERM or CTRL-C. diff --git a/tm2/pkg/bft/rpc/test/helpers.go b/tm2/pkg/bft/rpc/test/helpers.go index d8e1a498600..00904755797 100644 --- a/tm2/pkg/bft/rpc/test/helpers.go +++ b/tm2/pkg/bft/rpc/test/helpers.go @@ -2,6 +2,7 @@ package rpctest import ( "fmt" + "log/slog" "os" "path/filepath" "strings" @@ -114,12 +115,14 @@ func StopTendermint(node *nm.Node) { func NewTendermint(app abci.Application, opts *Options) *nm.Node { // Create & start node config := GetConfig(opts.recreateConfig) - var logger log.Logger + var ( + logger *slog.Logger + err error + ) if opts.suppressStdout { - logger = log.NewNopLogger() + logger = slog.New(log.NewNoopHandler()) } else { - logger = log.NewTMLogger(log.NewSyncWriter(os.Stdout)) - logger.SetLevel(log.LevelError) + logger, err = log.NewTMLogger(os.Stdout, slog.LevelError) } pvKeyFile := config.PrivValidatorKeyFile() pvKeyStateFile := config.PrivValidatorStateFile() diff --git a/tm2/pkg/bft/state/execution.go b/tm2/pkg/bft/state/execution.go index e7920459172..00660646b6e 100644 --- a/tm2/pkg/bft/state/execution.go +++ b/tm2/pkg/bft/state/execution.go @@ -2,6 +2,7 @@ package state import ( "fmt" + "log/slog" "github.com/gnolang/gno/tm2/pkg/amino" abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" @@ -14,10 +15,9 @@ import ( "github.com/gnolang/gno/tm2/pkg/crypto" dbm "github.com/gnolang/gno/tm2/pkg/db" "github.com/gnolang/gno/tm2/pkg/events" - "github.com/gnolang/gno/tm2/pkg/log" ) -//----------------------------------------------------------------------------- +// ----------------------------------------------------------------------------- // BlockExecutor handles block execution and state updates. // It exposes ApplyBlock(), which validates & executes the block, updates state w/ ABCI responses, // then commits and updates the mempool atomically, then saves state. @@ -37,14 +37,14 @@ type BlockExecutor struct { // and update both with block results after commit. mempool mempl.Mempool - logger log.Logger + logger *slog.Logger } type BlockExecutorOption func(executor *BlockExecutor) // NewBlockExecutor returns a new BlockExecutor with a NopEventBus. // Call SetEventBus to provide one. -func NewBlockExecutor(db dbm.DB, logger log.Logger, proxyApp proxy.AppConnConsensus, mempool mempl.Mempool, options ...BlockExecutorOption) *BlockExecutor { +func NewBlockExecutor(db dbm.DB, logger *slog.Logger, proxyApp proxy.AppConnConsensus, mempool mempl.Mempool, options ...BlockExecutorOption) *BlockExecutor { res := &BlockExecutor{ db: db, proxyApp: proxyApp, @@ -143,7 +143,7 @@ func (blockExec *BlockExecutor) ApplyBlock(state State, blockID types.BlockID, b // Events are fired after everything else. // NOTE: if we crash between Commit and Save, events wont be fired during replay - fireEvents(blockExec.logger, blockExec.evsw, block, abciResponses) + fireEvents(blockExec.evsw, block, abciResponses) return state, nil } @@ -200,13 +200,13 @@ func (blockExec *BlockExecutor) Commit( return res.Data, err } -//--------------------------------------------------------- +// --------------------------------------------------------- // Helper functions for executing blocks and updating state // Executes block's transactions on proxyAppConn. // Returns a list of transaction results and updates to the validator set func execBlockOnProxyApp( - logger log.Logger, + logger *slog.Logger, proxyAppConn proxy.AppConnConsensus, block *types.Block, stateDB dbm.DB, @@ -398,7 +398,7 @@ func updateState( // Fire NewBlock, NewBlockHeader. // Fire TxEvent for every tx. // NOTE: if Tendermint crashes before commit, some or all of these events may be published again. -func fireEvents(logger log.Logger, evsw events.EventSwitch, block *types.Block, abciResponses *ABCIResponses) { +func fireEvents(evsw events.EventSwitch, block *types.Block, abciResponses *ABCIResponses) { evsw.FireEvent(types.EventNewBlock{ Block: block, ResultBeginBlock: abciResponses.BeginBlock, @@ -425,7 +425,7 @@ func fireEvents(logger log.Logger, evsw events.EventSwitch, block *types.Block, } } -//---------------------------------------------------------------------------------------------------- +// ---------------------------------------------------------------------------------------------------- // Execute block without state. TODO: eliminate // ExecCommitBlock executes and commits a block on the proxyApp without validating or mutating the state. @@ -433,7 +433,7 @@ func fireEvents(logger log.Logger, evsw events.EventSwitch, block *types.Block, func ExecCommitBlock( appConnConsensus proxy.AppConnConsensus, block *types.Block, - logger log.Logger, + logger *slog.Logger, stateDB dbm.DB, ) ([]byte, error) { _, err := execBlockOnProxyApp(logger, appConnConsensus, block, stateDB) diff --git a/tm2/pkg/bft/store/store_test.go b/tm2/pkg/bft/store/store_test.go index 1dc0bda833c..32643bb6c38 100644 --- a/tm2/pkg/bft/store/store_test.go +++ b/tm2/pkg/bft/store/store_test.go @@ -3,6 +3,7 @@ package store import ( "bytes" "fmt" + "log/slog" "os" "runtime/debug" "strings" @@ -44,7 +45,7 @@ func makeBlock(height int64, state sm.State, lastCommit *types.Commit) *types.Bl return block } -func makeStateAndBlockStore(logger log.Logger) (sm.State, *BlockStore, cleanupFunc) { +func makeStateAndBlockStore(logger *slog.Logger) (sm.State, *BlockStore, cleanupFunc) { config := cfg.ResetTestRoot("blockchain_reactor_test") // blockDB := dbm.NewDebugDB("blockDB", dbm.NewMemDB()) // stateDB := dbm.NewDebugDB("stateDB", dbm.NewMemDB()) @@ -115,7 +116,12 @@ var ( func TestMain(m *testing.M) { var cleanup cleanupFunc - state, _, cleanup = makeStateAndBlockStore(log.NewTMLogger(new(bytes.Buffer))) + logger, err := log.NewTMLogger(new(bytes.Buffer), slog.LevelError) + if err != nil { + os.Exit(1) + } + + state, _, cleanup = makeStateAndBlockStore(logger) block = makeBlock(1, state, new(types.Commit)) partSet = block.MakePartSet(2) part1 = partSet.GetPart(0) @@ -129,7 +135,12 @@ func TestMain(m *testing.M) { // TODO: This test should be simplified ... func TestBlockStoreSaveLoadBlock(t *testing.T) { - state, bs, cleanup := makeStateAndBlockStore(log.NewTMLogger(new(bytes.Buffer))) + logger, err := log.NewTMLogger(new(bytes.Buffer), slog.LevelError) + if err != nil { + t.Fatal(err) + } + + state, bs, cleanup := makeStateAndBlockStore(logger) defer cleanup() require.Equal(t, bs.Height(), int64(0), "initially the height should be zero") @@ -384,7 +395,12 @@ func TestLoadBlockMeta(t *testing.T) { } func TestBlockFetchAtHeight(t *testing.T) { - state, bs, cleanup := makeStateAndBlockStore(log.NewTMLogger(new(bytes.Buffer))) + logger, err := log.NewTMLogger(new(bytes.Buffer), slog.LevelError) + if err != nil { + t.Fatal(err) + } + + state, bs, cleanup := makeStateAndBlockStore(logger) defer cleanup() require.Equal(t, bs.Height(), int64(0), "initially the height should be zero") block := makeBlock(bs.Height()+1, state, new(types.Commit)) diff --git a/tm2/pkg/bft/wal/wal.go b/tm2/pkg/bft/wal/wal.go index b66a34df222..d7d9d0ec9a2 100644 --- a/tm2/pkg/bft/wal/wal.go +++ b/tm2/pkg/bft/wal/wal.go @@ -8,6 +8,7 @@ import ( "fmt" "hash/crc32" "io" + "log/slog" "path/filepath" "time" @@ -15,7 +16,6 @@ import ( auto "github.com/gnolang/gno/tm2/pkg/autofile" tmtime "github.com/gnolang/gno/tm2/pkg/bft/types/time" "github.com/gnolang/gno/tm2/pkg/errors" - "github.com/gnolang/gno/tm2/pkg/log" osm "github.com/gnolang/gno/tm2/pkg/os" "github.com/gnolang/gno/tm2/pkg/service" ) @@ -59,7 +59,7 @@ type MetaMessage struct { // WAL is an interface for any write-ahead logger. type WAL interface { // config methods - SetLogger(l log.Logger) + SetLogger(l *slog.Logger) // write methods Write(WALMessage) error @@ -128,7 +128,7 @@ func (wal *baseWAL) Group() *auto.Group { return wal.group } -func (wal *baseWAL) SetLogger(l log.Logger) { +func (wal *baseWAL) SetLogger(l *slog.Logger) { wal.BaseService.Logger = l wal.group.SetLogger(l) } @@ -644,7 +644,7 @@ type NopWAL struct{} var _ WAL = NopWAL{} -func (NopWAL) SetLogger(l log.Logger) {} +func (NopWAL) SetLogger(l *slog.Logger) {} func (NopWAL) Write(m WALMessage) error { return nil } func (NopWAL) WriteSync(m WALMessage) error { return nil } func (NopWAL) WriteMetaSync(m MetaMessage) error { return nil } diff --git a/tm2/pkg/log/logger.go b/tm2/pkg/log/logger.go deleted file mode 100644 index 8c34c994833..00000000000 --- a/tm2/pkg/log/logger.go +++ /dev/null @@ -1,48 +0,0 @@ -package log - -import ( - "io" - "sync" -) - -type LogLevel int - -const ( - LevelDebug LogLevel = iota - LevelInfo - LevelError -) - -type Logger interface { - Debug(msg string, keyvals ...interface{}) - Info(msg string, keyvals ...interface{}) - Error(msg string, keyvals ...interface{}) - - With(keyvals ...interface{}) Logger - - SetLevel(LogLevel) -} - -//---------------------------------------- - -// NewSyncWriter returns a new writer that is safe for concurrent use by -// multiple goroutines. Writes to the returned writer are passed on to w. If -// another write is already in progress, the calling goroutine blocks until -// the writer is available. -func NewSyncWriter(w io.Writer) io.Writer { - return &syncWriter{Writer: w} -} - -// syncWriter synchronizes concurrent writes to an io.Writer. -type syncWriter struct { - sync.Mutex - io.Writer -} - -// Write writes p to the underlying io.Writer. If another write is already in -// progress, the calling goroutine blocks until the syncWriter is available. -func (w *syncWriter) Write(p []byte) (n int, err error) { - w.Lock() - defer w.Unlock() - return w.Writer.Write(p) -} diff --git a/tm2/pkg/log/nop_logger.go b/tm2/pkg/log/nop_logger.go index 5a12b088082..eabbd69a915 100644 --- a/tm2/pkg/log/nop_logger.go +++ b/tm2/pkg/log/nop_logger.go @@ -1,19 +1,28 @@ package log -type nopLogger struct{} +import ( + "context" + "log/slog" +) -// Interface assertions -var _ Logger = (*nopLogger)(nil) +type NoopHandler struct{} -// NewNopLogger returns a logger that doesn't do anything. -func NewNopLogger() Logger { return &nopLogger{} } +func NewNoopHandler() *NoopHandler { + return &NoopHandler{} +} -func (nopLogger) Info(string, ...interface{}) {} -func (nopLogger) Debug(string, ...interface{}) {} -func (nopLogger) Error(string, ...interface{}) {} +func (n *NoopHandler) Enabled(_ context.Context, _ slog.Level) bool { + return false +} -func (l *nopLogger) With(...interface{}) Logger { - return l +func (n *NoopHandler) Handle(_ context.Context, _ slog.Record) error { + return nil } -func (l *nopLogger) SetLevel(LogLevel) {} +func (n *NoopHandler) WithAttrs(_ []slog.Attr) slog.Handler { + return n +} + +func (n *NoopHandler) WithGroup(_ string) slog.Handler { + return n +} diff --git a/tm2/pkg/log/testing_logger.go b/tm2/pkg/log/testing_logger.go index 05e91b54a7d..d34a6ae6cd1 100644 --- a/tm2/pkg/log/testing_logger.go +++ b/tm2/pkg/log/testing_logger.go @@ -2,57 +2,33 @@ package log import ( "io" + "log/slog" "os" "testing" - - "github.com/gnolang/gno/tm2/pkg/colors" ) -// reuse the same logger across all tests -var _testingLogger Logger - // TestingLogger returns a TMLogger which writes to STDOUT if testing being run // with the verbose (-v) flag, NopLogger otherwise. // // Note that the call to TestingLogger() must be made // inside a test (not in the init func) because // verbose flag only set at the time of testing. -func TestingLogger() Logger { +func TestingLogger() *slog.Logger { return TestingLoggerWithOutput(os.Stdout) } -// TestingLoggerWOutput returns a TMLogger which writes to (w io.Writer) if testing being run +// TestingLoggerWithOutput returns a TMLogger which writes to (w io.Writer) if testing being run // with the verbose (-v) flag, NopLogger otherwise. // // Note that the call to TestingLoggerWithOutput(w io.Writer) must be made // inside a test (not in the init func) because // verbose flag only set at the time of testing. -func TestingLoggerWithOutput(w io.Writer) Logger { - if _testingLogger != nil { - return _testingLogger - } - +func TestingLoggerWithOutput(w io.Writer) *slog.Logger { if testing.Verbose() { - _testingLogger = NewTMLogger(NewSyncWriter(w)) - } else { - _testingLogger = NewNopLogger() - } + logger, _ := NewTMLogger(w, slog.LevelDebug) - return _testingLogger -} - -// TestingLoggerWithColorFn allow you to provide your own color function. See -// TestingLogger for documentation. -func TestingLoggerWithColorFn(colorFn func(keyvals ...interface{}) colors.Color) Logger { - if _testingLogger != nil { - return _testingLogger - } - - if testing.Verbose() { - _testingLogger = NewTMLoggerWithColorFn(NewSyncWriter(os.Stdout), colorFn) - } else { - _testingLogger = NewNopLogger() + return logger } - return _testingLogger + return slog.New(NewNoopHandler()) } diff --git a/tm2/pkg/log/tm_logger.go b/tm2/pkg/log/tm_logger.go index 555ece714cd..620e80a5c63 100644 --- a/tm2/pkg/log/tm_logger.go +++ b/tm2/pkg/log/tm_logger.go @@ -3,134 +3,62 @@ package log import ( "fmt" "io" + "log/slog" + "net/url" - "github.com/gnolang/gno/tm2/pkg/colors" + "go.uber.org/zap" + "go.uber.org/zap/exp/zapslog" ) -const ( - logKeyLevel = ".level" - logKeyMsg = ".msg" -) +const customWriterKey = "tm2" -type tmLogger struct { - level LogLevel - colorFn func(keyvals ...interface{}) colors.Color - writer io.Writer +type customWriter struct { + io.Writer } -var _ Logger = (*tmLogger)(nil) - -func NewTMLogger(w io.Writer) *tmLogger { - // Color by level value - colorFn := func(keyvals ...interface{}) colors.Color { - if keyvals[0] != logKeyLevel { - panic(fmt.Sprintf("expected level key to be first, got %v", keyvals[0])) - } - switch keyvals[1].(LogLevel) { - case LevelDebug: - return colors.Gray - case LevelError: - return colors.Red - default: - return colors.None - } - } - return &tmLogger{ - level: LevelDebug, - colorFn: colorFn, - writer: w, - } +func (cw customWriter) Close() error { + // modify as preferred + return nil } -// NewTMLoggerWithColorFn allows you to provide your own color function. -func NewTMLoggerWithColorFn(w io.Writer, colorFn func(keyvals ...interface{}) colors.Color) *tmLogger { - return &tmLogger{ - level: LevelDebug, - colorFn: colorFn, - writer: w, - } +func (cw customWriter) Sync() error { + // modify as preferred + return nil } -func (l *tmLogger) SetLevel(lvl LogLevel) { - l.level = lvl -} +func NewTMLogger(w io.Writer, level slog.Level) (*slog.Logger, error) { + config := zap.NewDevelopmentConfig() -// Debug logs a message at level Debug. -func (l *tmLogger) Debug(msg string, keyvals ...interface{}) { - if l.level <= LevelDebug { - writeLog(l.writer, LevelDebug, l.colorFn, msg, keyvals...) + switch level { + case slog.LevelInfo: + config.Level = zap.NewAtomicLevelAt(zap.InfoLevel) + case slog.LevelDebug: + config.Level = zap.NewAtomicLevelAt(zap.DebugLevel) + case slog.LevelError: + config.Level = zap.NewAtomicLevelAt(zap.ErrorLevel) + case slog.LevelWarn: + config.Level = zap.NewAtomicLevelAt(zap.WarnLevel) } -} -// Info logs a message at level Info. -func (l *tmLogger) Info(msg string, keyvals ...interface{}) { - if l.level <= LevelInfo { - writeLog(l.writer, LevelInfo, l.colorFn, msg, keyvals...) + err := zap.RegisterSink(customWriterKey, func(u *url.URL) (zap.Sink, error) { + return customWriter{w}, nil + }) + if err != nil { + return nil, fmt.Errorf("unable to register sink, %w", err) } -} -// Error logs a message at level Error. -func (l *tmLogger) Error(msg string, keyvals ...interface{}) { - if l.level <= LevelError { - writeLog(l.writer, LevelError, l.colorFn, msg, keyvals...) + config.OutputPaths = []string{ + fmt.Sprintf("%s:", customWriterKey), } -} - -// With returns a new contextual logger with keyvals prepended to those passed -// to calls to Info, Debug or Error. -func (l *tmLogger) With(keyvals ...interface{}) Logger { - return newWithLogger(l, keyvals) -} - -//---------------------------------------- -type withLogger struct { - base Logger - keyvals []interface{} -} - -var _ Logger = (*withLogger)(nil) - -func newWithLogger(base Logger, keyvals []interface{}) *withLogger { - return &withLogger{ - base: base, - keyvals: keyvals, + zapLogger, err := config.Build() + if err != nil { + return nil, fmt.Errorf("unable to build logger config, %w", err) } -} - -func (l *withLogger) Debug(msg string, keyvals ...interface{}) { - keyvals = append(keyvals, l.keyvals) - l.base.Debug(msg, keyvals) -} - -func (l *withLogger) Info(msg string, keyvals ...interface{}) { - keyvals = append(keyvals, l.keyvals) - l.base.Info(msg, keyvals) -} - -func (l *withLogger) Error(msg string, keyvals ...interface{}) { - keyvals = append(keyvals, l.keyvals) - l.base.Error(msg, keyvals) -} -func (l *withLogger) With(keyvals ...interface{}) Logger { - return newWithLogger(l, keyvals) -} - -func (l *withLogger) SetLevel(LogLevel) { - panic("SetLevel not supported on derived WithLogger") -} + defer zapLogger.Sync() -//---------------------------------------- + handler := zapslog.NewHandler(zapLogger.Core(), &zapslog.HandlerOptions{LoggerName: "tm2"}) -func writeLog(w io.Writer, level LogLevel, colorFn func(keyvals ...interface{}) colors.Color, msg string, keyvals ...interface{}) { - keyvals = append([]interface{}{ - logKeyLevel, level, - logKeyMsg, msg, - }, keyvals...) - color := colorFn(keyvals...) - str := fmt.Sprintln(keyvals...) - str = str[:len(str)-1] - str = color(str) - fmt.Fprintln(w, str) + return slog.New(handler), nil } diff --git a/tm2/pkg/log/tm_logger_test.go b/tm2/pkg/log/tm_logger_test.go index a6d56bb8feb..cb9dea53fb4 100644 --- a/tm2/pkg/log/tm_logger_test.go +++ b/tm2/pkg/log/tm_logger_test.go @@ -1,45 +1,20 @@ package log_test import ( - "bytes" - "io/ioutil" - "strings" + "log/slog" + "os" "testing" "github.com/gnolang/gno/tm2/pkg/log" + "github.com/stretchr/testify/require" ) -func TestLoggerLogsItsErrors(t *testing.T) { - var buf bytes.Buffer +func TestDummy(t *testing.T) { + l, err := log.NewTMLogger(os.Stdout, slog.LevelDebug) + require.NoError(t, err) - logger := log.NewTMLogger(&buf) - logger.Info("foo", "baz baz", "bar") - msg := strings.TrimSpace(buf.String()) - if !strings.Contains(msg, "foo") { - t.Errorf("Expected logger msg to contain foo, got %s", msg) - } + l.Info("info!", "message", 123) + l.Debug("debug!", "message", 123) + l.Error("error!", "message", 123) + l.Warn("warn!", "message", 123) } - -func BenchmarkTMLoggerSimple(b *testing.B) { - benchmarkRunner(b, log.NewTMLogger(ioutil.Discard), baseInfoMessage) -} - -func BenchmarkTMLoggerContextual(b *testing.B) { - benchmarkRunner(b, log.NewTMLogger(ioutil.Discard), withInfoMessage) -} - -func benchmarkRunner(b *testing.B, logger log.Logger, f func(log.Logger)) { - b.Helper() - - lc := logger.With("common_key", "common_value") - b.ReportAllocs() - b.ResetTimer() - for i := 0; i < b.N; i++ { - f(lc) - } -} - -var ( - baseInfoMessage = func(logger log.Logger) { logger.Info("foo_message", "foo_key", "foo_value") } - withInfoMessage = func(logger log.Logger) { logger.With("a", "b").Info("c", "d", "f") } -) diff --git a/tm2/pkg/p2p/conn/connection.go b/tm2/pkg/p2p/conn/connection.go index 1f726410aaf..41b6a06629e 100644 --- a/tm2/pkg/p2p/conn/connection.go +++ b/tm2/pkg/p2p/conn/connection.go @@ -5,6 +5,7 @@ import ( goerrors "errors" "fmt" "io" + "log/slog" "math" "net" "reflect" @@ -16,7 +17,6 @@ import ( "github.com/gnolang/gno/tm2/pkg/amino" "github.com/gnolang/gno/tm2/pkg/errors" "github.com/gnolang/gno/tm2/pkg/flow" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/maths" "github.com/gnolang/gno/tm2/pkg/service" "github.com/gnolang/gno/tm2/pkg/timer" @@ -197,7 +197,7 @@ func NewMConnectionWithConfig(conn net.Conn, chDescs []*ChannelDescriptor, onRec return mconn } -func (c *MConnection) SetLogger(l log.Logger) { +func (c *MConnection) SetLogger(l *slog.Logger) { c.BaseService.SetLogger(l) for _, ch := range c.channels { ch.SetLogger(l) @@ -732,7 +732,7 @@ type Channel struct { maxPacketMsgPayloadSize int - Logger log.Logger + Logger *slog.Logger } func newChannel(conn *MConnection, desc ChannelDescriptor) *Channel { @@ -749,7 +749,7 @@ func newChannel(conn *MConnection, desc ChannelDescriptor) *Channel { } } -func (ch *Channel) SetLogger(l log.Logger) { +func (ch *Channel) SetLogger(l *slog.Logger) { ch.Logger = l } diff --git a/tm2/pkg/p2p/peer.go b/tm2/pkg/p2p/peer.go index c9eea1eca65..ef2ddcf2c25 100644 --- a/tm2/pkg/p2p/peer.go +++ b/tm2/pkg/p2p/peer.go @@ -2,10 +2,10 @@ package p2p import ( "fmt" + "log/slog" "net" "github.com/gnolang/gno/tm2/pkg/cmap" - "github.com/gnolang/gno/tm2/pkg/log" connm "github.com/gnolang/gno/tm2/pkg/p2p/conn" "github.com/gnolang/gno/tm2/pkg/service" ) @@ -156,7 +156,7 @@ func (p *peer) String() string { // Implements service.Service // SetLogger implements BaseService. -func (p *peer) SetLogger(l log.Logger) { +func (p *peer) SetLogger(l *slog.Logger) { p.Logger = l p.mconn.SetLogger(l) } diff --git a/tm2/pkg/p2p/upnp/probe.go b/tm2/pkg/p2p/upnp/probe.go index 6a2c1d8bf7d..29480e7cecc 100644 --- a/tm2/pkg/p2p/upnp/probe.go +++ b/tm2/pkg/p2p/upnp/probe.go @@ -2,10 +2,9 @@ package upnp import ( "fmt" + "log/slog" "net" "time" - - "github.com/gnolang/gno/tm2/pkg/log" ) type UPNPCapabilities struct { @@ -13,7 +12,7 @@ type UPNPCapabilities struct { Hairpin bool } -func makeUPNPListener(intPort int, extPort int, logger log.Logger) (NAT, net.Listener, net.IP, error) { +func makeUPNPListener(intPort int, extPort int, logger *slog.Logger) (NAT, net.Listener, net.IP, error) { nat, err := Discover() if err != nil { return nil, nil, nil, fmt.Errorf("NAT upnp could not be discovered: %w", err) @@ -40,7 +39,7 @@ func makeUPNPListener(intPort int, extPort int, logger log.Logger) (NAT, net.Lis return nat, listener, ext, nil } -func testHairpin(listener net.Listener, extAddr string, logger log.Logger) (supportsHairpin bool) { +func testHairpin(listener net.Listener, extAddr string, logger *slog.Logger) (supportsHairpin bool) { // Listener go func() { inConn, err := listener.Accept() @@ -81,7 +80,7 @@ func testHairpin(listener net.Listener, extAddr string, logger log.Logger) (supp return supportsHairpin } -func Probe(logger log.Logger) (caps UPNPCapabilities, err error) { +func Probe(logger *slog.Logger) (caps UPNPCapabilities, err error) { logger.Info("Probing for UPnP!") intPort, extPort := 8001, 8001 diff --git a/tm2/pkg/sdk/auth/keeper.go b/tm2/pkg/sdk/auth/keeper.go index c814eb21d9f..e43b5389844 100644 --- a/tm2/pkg/sdk/auth/keeper.go +++ b/tm2/pkg/sdk/auth/keeper.go @@ -2,10 +2,10 @@ package auth import ( "fmt" + "log/slog" "github.com/gnolang/gno/tm2/pkg/amino" "github.com/gnolang/gno/tm2/pkg/crypto" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/sdk" "github.com/gnolang/gno/tm2/pkg/std" "github.com/gnolang/gno/tm2/pkg/store" @@ -32,7 +32,7 @@ func NewAccountKeeper( } // Logger returns a module-specific logger. -func (ak AccountKeeper) Logger(ctx sdk.Context) log.Logger { +func (ak AccountKeeper) Logger(ctx sdk.Context) *slog.Logger { return ctx.Logger().With("module", fmt.Sprintf("auth")) } diff --git a/tm2/pkg/sdk/auth/test_common.go b/tm2/pkg/sdk/auth/test_common.go index a51c8576bad..9b066578351 100644 --- a/tm2/pkg/sdk/auth/test_common.go +++ b/tm2/pkg/sdk/auth/test_common.go @@ -1,6 +1,8 @@ package auth import ( + "log/slog" + abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" bft "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/crypto" @@ -58,7 +60,7 @@ func setupTestEnv() testEnv { acck := NewAccountKeeper(authCapKey, std.ProtoBaseAccount) bank := NewDummyBankKeeper(acck) - ctx := sdk.NewContext(sdk.RunTxModeDeliver, ms, &bft.Header{Height: 1, ChainID: "test-chain-id"}, log.NewNopLogger()) + ctx := sdk.NewContext(sdk.RunTxModeDeliver, ms, &bft.Header{Height: 1, ChainID: "test-chain-id"}, slog.New(log.NewNoopHandler())) ctx = ctx.WithValue(AuthParamsContextKey{}, DefaultParams()) ctx = ctx.WithConsensusParams(&abci.ConsensusParams{ Block: &abci.BlockParams{ diff --git a/tm2/pkg/sdk/bank/common_test.go b/tm2/pkg/sdk/bank/common_test.go index b78ae702cbb..29be7a6ec46 100644 --- a/tm2/pkg/sdk/bank/common_test.go +++ b/tm2/pkg/sdk/bank/common_test.go @@ -3,6 +3,8 @@ package bank // DONTCOVER import ( + "log/slog" + bft "github.com/gnolang/gno/tm2/pkg/bft/types" dbm "github.com/gnolang/gno/tm2/pkg/db" "github.com/gnolang/gno/tm2/pkg/log" @@ -29,7 +31,7 @@ func setupTestEnv() testEnv { ms.MountStoreWithDB(authCapKey, iavl.StoreConstructor, db) ms.LoadLatestVersion() - ctx := sdk.NewContext(sdk.RunTxModeDeliver, ms, &bft.Header{ChainID: "test-chain-id"}, log.NewNopLogger()) + ctx := sdk.NewContext(sdk.RunTxModeDeliver, ms, &bft.Header{ChainID: "test-chain-id"}, slog.New(log.NewNoopHandler())) acck := auth.NewAccountKeeper( authCapKey, std.ProtoBaseAccount, ) diff --git a/tm2/pkg/sdk/bank/keeper.go b/tm2/pkg/sdk/bank/keeper.go index dfbef78f016..5d3699c99ef 100644 --- a/tm2/pkg/sdk/bank/keeper.go +++ b/tm2/pkg/sdk/bank/keeper.go @@ -2,9 +2,9 @@ package bank import ( "fmt" + "log/slog" "github.com/gnolang/gno/tm2/pkg/crypto" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/sdk" "github.com/gnolang/gno/tm2/pkg/sdk/auth" "github.com/gnolang/gno/tm2/pkg/std" @@ -178,7 +178,7 @@ func (bank BankKeeper) SetCoins(ctx sdk.Context, addr crypto.Address, amt std.Co return nil } -//---------------------------------------- +// ---------------------------------------- // ViewKeeper // ViewKeeperI defines a module interface that facilitates read only access to @@ -201,7 +201,7 @@ func NewViewKeeper(acck auth.AccountKeeper) ViewKeeper { } // Logger returns a module-specific logger. -func (view ViewKeeper) Logger(ctx sdk.Context) log.Logger { +func (view ViewKeeper) Logger(ctx sdk.Context) *slog.Logger { return ctx.Logger().With("module", fmt.Sprintf("x/%s", ModuleName)) } diff --git a/tm2/pkg/sdk/baseapp.go b/tm2/pkg/sdk/baseapp.go index 1d356f7ad65..1f62f53f81a 100644 --- a/tm2/pkg/sdk/baseapp.go +++ b/tm2/pkg/sdk/baseapp.go @@ -2,6 +2,7 @@ package sdk import ( "fmt" + "log/slog" "os" "runtime/debug" "sort" @@ -13,7 +14,6 @@ import ( bft "github.com/gnolang/gno/tm2/pkg/bft/types" dbm "github.com/gnolang/gno/tm2/pkg/db" "github.com/gnolang/gno/tm2/pkg/errors" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/std" "github.com/gnolang/gno/tm2/pkg/store" ) @@ -27,7 +27,7 @@ var ( // BaseApp reflects the ABCI application implementation. type BaseApp struct { // initialized on creation - logger log.Logger + logger *slog.Logger name string // application name from abci.Info db dbm.DB // common DB backend cms store.CommitMultiStore // Main (uncached) state @@ -80,7 +80,12 @@ var _ abci.Application = (*BaseApp)(nil) // // NOTE: The db is used to store the version number for now. func NewBaseApp( - name string, logger log.Logger, db dbm.DB, baseKey store.StoreKey, mainKey store.StoreKey, options ...func(*BaseApp), + name string, + logger *slog.Logger, + db dbm.DB, + baseKey store.StoreKey, + mainKey store.StoreKey, + options ...func(*BaseApp), ) *BaseApp { app := &BaseApp{ logger: logger, @@ -109,7 +114,7 @@ func (app *BaseApp) AppVersion() string { } // Logger returns the logger of the BaseApp. -func (app *BaseApp) Logger() log.Logger { +func (app *BaseApp) Logger() *slog.Logger { return app.logger } diff --git a/tm2/pkg/sdk/baseapp_test.go b/tm2/pkg/sdk/baseapp_test.go index 2d130583885..0cf0c2a2d2d 100644 --- a/tm2/pkg/sdk/baseapp_test.go +++ b/tm2/pkg/sdk/baseapp_test.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/binary" "fmt" + "log/slog" "os" "reflect" "testing" @@ -55,8 +56,10 @@ func newTxCounter(txInt int64, msgInts ...int64) std.Tx { return tx } -func defaultLogger() log.Logger { - return log.NewTMLogger(log.NewSyncWriter(os.Stdout)).With("module", "sdk/app") +func defaultLogger() *slog.Logger { + logger, _ := log.NewTMLogger(os.Stdout, slog.LevelDebug) + + return logger.With("module", "sdk/app") } func newBaseApp(name string, db dbm.DB, options ...func(*BaseApp)) *BaseApp { @@ -477,7 +480,7 @@ func incrementingCounter(t *testing.T, store store.Store, counterKey []byte, cou return } -//--------------------------------------------------------------------- +// --------------------------------------------------------------------- // Tx processing - CheckTx, DeliverTx, SimulateTx. // These tests use the serialized tx as input, while most others will use the // Check(), Deliver(), Simulate() methods directly. diff --git a/tm2/pkg/sdk/context.go b/tm2/pkg/sdk/context.go index 6e33cb1f419..0e1021e0174 100644 --- a/tm2/pkg/sdk/context.go +++ b/tm2/pkg/sdk/context.go @@ -2,11 +2,11 @@ package sdk import ( "context" + "log/slog" "time" "github.com/gnolang/gno/tm2/pkg/amino" abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/store" "github.com/gnolang/gno/tm2/pkg/store/gas" ) @@ -26,7 +26,7 @@ type Context struct { header abci.Header chainID string txBytes []byte - logger log.Logger + logger *slog.Logger voteInfo []abci.VoteInfo gasMeter store.GasMeter // XXX make passthroughGasMeter w/ blockGasMeter? blockGasMeter store.GasMeter @@ -46,7 +46,7 @@ func (c Context) BlockHeight() int64 { return c.header.GetHeight() } func (c Context) BlockTime() time.Time { return c.header.GetTime() } func (c Context) ChainID() string { return c.chainID } func (c Context) TxBytes() []byte { return c.txBytes } -func (c Context) Logger() log.Logger { return c.logger } +func (c Context) Logger() *slog.Logger { return c.logger } func (c Context) VoteInfos() []abci.VoteInfo { return c.voteInfo } func (c Context) GasMeter() store.GasMeter { return c.gasMeter } func (c Context) BlockGasMeter() store.GasMeter { return c.blockGasMeter } @@ -65,7 +65,7 @@ func (c Context) ConsensusParams() *abci.ConsensusParams { } // create a new context -func NewContext(mode RunTxMode, ms store.MultiStore, header abci.Header, logger log.Logger) Context { +func NewContext(mode RunTxMode, ms store.MultiStore, header abci.Header, logger *slog.Logger) Context { if header.GetChainID() == "" { panic("header chain id cannot be empty") } @@ -112,7 +112,7 @@ func (c Context) WithTxBytes(txBytes []byte) Context { return c } -func (c Context) WithLogger(logger log.Logger) Context { +func (c Context) WithLogger(logger *slog.Logger) Context { c.logger = logger return c } diff --git a/tm2/pkg/service/service.go b/tm2/pkg/service/service.go index e1e9189e044..dff38a94247 100644 --- a/tm2/pkg/service/service.go +++ b/tm2/pkg/service/service.go @@ -3,6 +3,7 @@ package service import ( "errors" "fmt" + "log/slog" "sync/atomic" "github.com/gnolang/gno/tm2/pkg/log" @@ -49,7 +50,7 @@ type Service interface { String() string // SetLogger sets a logger. - SetLogger(log.Logger) + SetLogger(*slog.Logger) } /* @@ -95,7 +96,7 @@ Typical usage: } */ type BaseService struct { - Logger log.Logger + Logger *slog.Logger name string started uint32 // atomic stopped uint32 // atomic @@ -106,9 +107,9 @@ type BaseService struct { } // NewBaseService creates a new BaseService. -func NewBaseService(logger log.Logger, name string, impl Service) *BaseService { +func NewBaseService(logger *slog.Logger, name string, impl Service) *BaseService { if logger == nil { - logger = log.NewNopLogger() + logger = slog.New(log.NewNoopHandler()) } return &BaseService{ @@ -120,7 +121,7 @@ func NewBaseService(logger log.Logger, name string, impl Service) *BaseService { } // SetLogger implements Service by setting a logger. -func (bs *BaseService) SetLogger(l log.Logger) { +func (bs *BaseService) SetLogger(l *slog.Logger) { bs.Logger = l } From 9328f52718470c160d23cb929cc3ebdd2f3583ed Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Thu, 26 Oct 2023 09:55:27 -0400 Subject: [PATCH 02/43] Change log level --- gno.land/cmd/gnoland/start.go | 2 +- tm2/pkg/bft/rpc/lib/rpc_test.go | 2 +- tm2/pkg/bft/rpc/test/helpers.go | 2 +- tm2/pkg/bft/store/store_test.go | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index 2dac63df02e..7fa67752b02 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -160,7 +160,7 @@ func (c *startCfg) RegisterFlags(fs *flag.FlagSet) { } func execStart(c *startCfg, io *commands.IO) error { - logger, err := log.NewTMLogger(io.Out, slog.LevelError) + logger, err := log.NewTMLogger(io.Out, slog.LevelDebug) if err != nil { return err } diff --git a/tm2/pkg/bft/rpc/lib/rpc_test.go b/tm2/pkg/bft/rpc/lib/rpc_test.go index cfa26a92c8f..703bc6ac80a 100644 --- a/tm2/pkg/bft/rpc/lib/rpc_test.go +++ b/tm2/pkg/bft/rpc/lib/rpc_test.go @@ -104,7 +104,7 @@ var colorFn = func(keyvals ...interface{}) colors.Color { // launch unix and tcp servers func setup() { - logger, err := log.NewTMLogger(os.Stdout, slog.LevelError) + logger, err := log.NewTMLogger(os.Stdout, slog.LevelDebug) if err != nil { panic(err) } diff --git a/tm2/pkg/bft/rpc/test/helpers.go b/tm2/pkg/bft/rpc/test/helpers.go index 00904755797..97d8840234b 100644 --- a/tm2/pkg/bft/rpc/test/helpers.go +++ b/tm2/pkg/bft/rpc/test/helpers.go @@ -122,7 +122,7 @@ func NewTendermint(app abci.Application, opts *Options) *nm.Node { if opts.suppressStdout { logger = slog.New(log.NewNoopHandler()) } else { - logger, err = log.NewTMLogger(os.Stdout, slog.LevelError) + logger, err = log.NewTMLogger(os.Stdout, slog.LevelDebug) } pvKeyFile := config.PrivValidatorKeyFile() pvKeyStateFile := config.PrivValidatorStateFile() diff --git a/tm2/pkg/bft/store/store_test.go b/tm2/pkg/bft/store/store_test.go index 32643bb6c38..528081359c8 100644 --- a/tm2/pkg/bft/store/store_test.go +++ b/tm2/pkg/bft/store/store_test.go @@ -116,7 +116,7 @@ var ( func TestMain(m *testing.M) { var cleanup cleanupFunc - logger, err := log.NewTMLogger(new(bytes.Buffer), slog.LevelError) + logger, err := log.NewTMLogger(new(bytes.Buffer), slog.LevelDebug) if err != nil { os.Exit(1) } @@ -135,7 +135,7 @@ func TestMain(m *testing.M) { // TODO: This test should be simplified ... func TestBlockStoreSaveLoadBlock(t *testing.T) { - logger, err := log.NewTMLogger(new(bytes.Buffer), slog.LevelError) + logger, err := log.NewTMLogger(new(bytes.Buffer), slog.LevelDebug) if err != nil { t.Fatal(err) } @@ -395,7 +395,7 @@ func TestLoadBlockMeta(t *testing.T) { } func TestBlockFetchAtHeight(t *testing.T) { - logger, err := log.NewTMLogger(new(bytes.Buffer), slog.LevelError) + logger, err := log.NewTMLogger(new(bytes.Buffer), slog.LevelDebug) if err != nil { t.Fatal(err) } From a4449bd0a24d26e552a3a2ff53a893afaaea05a7 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Thu, 26 Oct 2023 14:52:20 -0400 Subject: [PATCH 03/43] Drop the logger backend in tm2 --- gno.land/cmd/gnoland/start.go | 4 +-- gno.land/pkg/gnoland/app.go | 2 +- .../pkg/integration/testing_integration.go | 9 ++--- .../tm_logger.go => gno.land/pkg/log/log.go | 4 +-- gno.land/pkg/sdk/vm/common_test.go | 3 +- .../example/kvstore/persistent_kvstore.go | 2 +- tm2/pkg/bft/blockchain/pool.go | 2 +- tm2/pkg/bft/blockchain/pool_test.go | 6 ++-- tm2/pkg/bft/blockchain/reactor_test.go | 18 +++++----- tm2/pkg/bft/consensus/common_test.go | 12 +++---- tm2/pkg/bft/consensus/reactor.go | 2 +- tm2/pkg/bft/consensus/reactor_test.go | 16 ++++----- tm2/pkg/bft/consensus/replay.go | 2 +- tm2/pkg/bft/consensus/replay_file.go | 2 +- tm2/pkg/bft/consensus/replay_test.go | 10 +++--- tm2/pkg/bft/consensus/wal_generator.go | 4 +-- tm2/pkg/bft/consensus/wal_test.go | 2 +- tm2/pkg/bft/mempool/clist_mempool.go | 2 +- tm2/pkg/bft/mempool/clist_mempool_test.go | 8 ++--- tm2/pkg/bft/mempool/reactor_test.go | 2 +- tm2/pkg/bft/node/node_test.go | 20 +++++------ .../privval/signer_listener_endpoint_test.go | 6 ++-- tm2/pkg/bft/rpc/client/localclient.go | 2 +- tm2/pkg/bft/rpc/core/net_test.go | 4 +-- .../bft/rpc/lib/client/integration_test.go | 2 +- tm2/pkg/bft/rpc/lib/client/ws_client_test.go | 2 +- tm2/pkg/bft/rpc/lib/rpc_test.go | 16 ++++----- tm2/pkg/bft/rpc/lib/server/handlers.go | 2 +- tm2/pkg/bft/rpc/lib/server/handlers_test.go | 8 ++--- .../bft/rpc/lib/server/http_server_test.go | 12 +++---- tm2/pkg/bft/rpc/lib/test/main.go | 6 ++-- tm2/pkg/bft/rpc/test/helpers.go | 14 ++------ tm2/pkg/bft/state/execution_test.go | 8 ++--- tm2/pkg/bft/state/validation_test.go | 4 +-- tm2/pkg/bft/store/store_test.go | 21 ++---------- tm2/pkg/bft/wal/wal_test.go | 2 +- tm2/pkg/log/noop.go | 33 ++++++++++++++++++ tm2/pkg/log/nop_logger.go | 28 --------------- tm2/pkg/log/testing_logger.go | 34 ------------------- tm2/pkg/log/tm_logger_test.go | 20 ----------- tm2/pkg/p2p/conn/connection_test.go | 8 ++--- tm2/pkg/p2p/mock/reactor.go | 2 +- tm2/pkg/p2p/peer_test.go | 2 +- tm2/pkg/p2p/switch_test.go | 2 +- tm2/pkg/p2p/test_util.go | 10 +++--- tm2/pkg/sdk/auth/test_common.go | 4 +-- tm2/pkg/sdk/bank/common_test.go | 4 +-- tm2/pkg/sdk/baseapp_test.go | 3 +- tm2/pkg/service/service.go | 2 +- 49 files changed, 150 insertions(+), 243 deletions(-) rename tm2/pkg/log/tm_logger.go => gno.land/pkg/log/log.go (90%) create mode 100644 tm2/pkg/log/noop.go delete mode 100644 tm2/pkg/log/nop_logger.go delete mode 100644 tm2/pkg/log/testing_logger.go delete mode 100644 tm2/pkg/log/tm_logger_test.go diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index 7fa67752b02..779b1a018ef 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -13,6 +13,7 @@ import ( "time" "github.com/gnolang/gno/gno.land/pkg/gnoland" + "github.com/gnolang/gno/gno.land/pkg/log" vmm "github.com/gnolang/gno/gno.land/pkg/sdk/vm" gno "github.com/gnolang/gno/gnovm/pkg/gnolang" "github.com/gnolang/gno/gnovm/pkg/gnomod" @@ -27,7 +28,6 @@ import ( bft "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/commands" "github.com/gnolang/gno/tm2/pkg/crypto" - "github.com/gnolang/gno/tm2/pkg/log" osm "github.com/gnolang/gno/tm2/pkg/os" "github.com/gnolang/gno/tm2/pkg/std" ) @@ -160,7 +160,7 @@ func (c *startCfg) RegisterFlags(fs *flag.FlagSet) { } func execStart(c *startCfg, io *commands.IO) error { - logger, err := log.NewTMLogger(io.Out, slog.LevelDebug) + logger, err := log.NewLogger(io.Out, slog.LevelDebug) if err != nil { return err } diff --git a/gno.land/pkg/gnoland/app.go b/gno.land/pkg/gnoland/app.go index 4a3bff1786a..667030bc755 100644 --- a/gno.land/pkg/gnoland/app.go +++ b/gno.land/pkg/gnoland/app.go @@ -35,7 +35,7 @@ type AppOptions struct { func NewAppOptions() *AppOptions { return &AppOptions{ - Logger: slog.New(log.NewNoopHandler()), + Logger: log.NewNoopLogger(), DB: dbm.NewMemDB(), GnoRootDir: GuessGnoRootDir(), } diff --git a/gno.land/pkg/integration/testing_integration.go b/gno.land/pkg/integration/testing_integration.go index 1f03c59eb23..6d99fc0c887 100644 --- a/gno.land/pkg/integration/testing_integration.go +++ b/gno.land/pkg/integration/testing_integration.go @@ -14,13 +14,14 @@ import ( "time" "github.com/gnolang/gno/gno.land/pkg/gnoland" + "github.com/gnolang/gno/gno.land/pkg/log" "github.com/gnolang/gno/tm2/pkg/bft/node" "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/commands" "github.com/gnolang/gno/tm2/pkg/crypto/keys" "github.com/gnolang/gno/tm2/pkg/crypto/keys/client" "github.com/gnolang/gno/tm2/pkg/events" - "github.com/gnolang/gno/tm2/pkg/log" + tm2Log "github.com/gnolang/gno/tm2/pkg/log" "github.com/rogpeppe/go-internal/testscript" ) @@ -110,7 +111,7 @@ func SetupGnolandTestScript(t *testing.T, txtarDir string) testscript.Params { break } - logger := slog.New(log.NewNoopHandler()) + logger := tm2Log.NewNoopLogger() if persistWorkDir || os.Getenv("LOG_DIR") != "" { logname := fmt.Sprintf("gnoland-%s.log", sid) logger = getTestingLogger(ts, logname) @@ -251,7 +252,7 @@ func getTestingLogger(ts *testscript.TestScript, logname string) *slog.Logger { } else if workdir := ts.Getenv("WORK"); workdir != "" { path = filepath.Join(workdir, logname) } else { - return slog.New(log.NewNoopHandler()) + return tm2Log.NewNoopLogger() } f, err := os.Create(path) @@ -278,7 +279,7 @@ func getTestingLogger(ts *testscript.TestScript, logname string) *slog.Logger { level = slog.LevelInfo } - logger, _ := log.NewTMLogger(f, level) + logger, _ := log.NewLogger(f, level) ts.Logf("starting logger: %q", path) return logger diff --git a/tm2/pkg/log/tm_logger.go b/gno.land/pkg/log/log.go similarity index 90% rename from tm2/pkg/log/tm_logger.go rename to gno.land/pkg/log/log.go index 620e80a5c63..1171080f574 100644 --- a/tm2/pkg/log/tm_logger.go +++ b/gno.land/pkg/log/log.go @@ -17,16 +17,14 @@ type customWriter struct { } func (cw customWriter) Close() error { - // modify as preferred return nil } func (cw customWriter) Sync() error { - // modify as preferred return nil } -func NewTMLogger(w io.Writer, level slog.Level) (*slog.Logger, error) { +func NewLogger(w io.Writer, level slog.Level) (*slog.Logger, error) { config := zap.NewDevelopmentConfig() switch level { diff --git a/gno.land/pkg/sdk/vm/common_test.go b/gno.land/pkg/sdk/vm/common_test.go index 50b8fb17785..8a75697115f 100644 --- a/gno.land/pkg/sdk/vm/common_test.go +++ b/gno.land/pkg/sdk/vm/common_test.go @@ -3,7 +3,6 @@ package vm // DONTCOVER import ( - "log/slog" "path/filepath" bft "github.com/gnolang/gno/tm2/pkg/bft/types" @@ -36,7 +35,7 @@ func setupTestEnv() testEnv { ms.MountStoreWithDB(iavlCapKey, iavl.StoreConstructor, db) ms.LoadLatestVersion() - ctx := sdk.NewContext(sdk.RunTxModeDeliver, ms, &bft.Header{ChainID: "test-chain-id"}, slog.New(log.NewNoopHandler())) + ctx := sdk.NewContext(sdk.RunTxModeDeliver, ms, &bft.Header{ChainID: "test-chain-id"}, log.NewNoopLogger()) acck := authm.NewAccountKeeper(iavlCapKey, std.ProtoBaseAccount) bank := bankm.NewBankKeeper(acck) stdlibsDir := filepath.Join("..", "..", "..", "..", "gnovm", "stdlibs") diff --git a/tm2/pkg/bft/abci/example/kvstore/persistent_kvstore.go b/tm2/pkg/bft/abci/example/kvstore/persistent_kvstore.go index 035f927859b..0e31f83b3c0 100644 --- a/tm2/pkg/bft/abci/example/kvstore/persistent_kvstore.go +++ b/tm2/pkg/bft/abci/example/kvstore/persistent_kvstore.go @@ -46,7 +46,7 @@ func NewPersistentKVStoreApplication(dbDir string) *PersistentKVStoreApplication return &PersistentKVStoreApplication{ app: &KVStoreApplication{state: state}, - logger: slog.New(log.NewNoopHandler()), + logger: log.NewNoopLogger(), } } diff --git a/tm2/pkg/bft/blockchain/pool.go b/tm2/pkg/bft/blockchain/pool.go index 05adc29f67d..5a82eb4d1d6 100644 --- a/tm2/pkg/bft/blockchain/pool.go +++ b/tm2/pkg/bft/blockchain/pool.go @@ -441,7 +441,7 @@ func newBPPeer(pool *BlockPool, peerID p2p.ID, height int64) *bpPeer { id: peerID, height: height, numPending: 0, - logger: slog.New(log.NewNoopHandler()), + logger: log.NewNoopLogger(), } return peer } diff --git a/tm2/pkg/bft/blockchain/pool_test.go b/tm2/pkg/bft/blockchain/pool_test.go index 79205bff5ce..50e37fee69a 100644 --- a/tm2/pkg/bft/blockchain/pool_test.go +++ b/tm2/pkg/bft/blockchain/pool_test.go @@ -77,7 +77,7 @@ func TestBlockPoolBasic(t *testing.T) { errorsCh := make(chan peerError, 1000) requestsCh := make(chan BlockRequest, 1000) pool := NewBlockPool(start, requestsCh, errorsCh) - pool.SetLogger(log.TestingLogger()) + pool.SetLogger(log.NewNoopLogger()) err := pool.Start() if err != nil { @@ -133,7 +133,7 @@ func TestBlockPoolTimeout(t *testing.T) { errorsCh := make(chan peerError, 1000) requestsCh := make(chan BlockRequest, 1000) pool := NewBlockPool(start, requestsCh, errorsCh) - pool.SetLogger(log.TestingLogger()) + pool.SetLogger(log.NewNoopLogger()) err := pool.Start() if err != nil { t.Error(err) @@ -197,7 +197,7 @@ func TestBlockPoolRemovePeer(t *testing.T) { errorsCh := make(chan peerError) pool := NewBlockPool(1, requestsCh, errorsCh) - pool.SetLogger(log.TestingLogger()) + pool.SetLogger(log.NewNoopLogger()) err := pool.Start() require.NoError(t, err) defer pool.Stop() diff --git a/tm2/pkg/bft/blockchain/reactor_test.go b/tm2/pkg/bft/blockchain/reactor_test.go index 64b98c63eda..143fef2c9e9 100644 --- a/tm2/pkg/bft/blockchain/reactor_test.go +++ b/tm2/pkg/bft/blockchain/reactor_test.go @@ -78,7 +78,7 @@ func newBlockchainReactor(logger *slog.Logger, genDoc *types.GenesisDoc, privVal // pool.height is determined from the store. fastSync := true db := dbm.NewMemDB() - blockExec := sm.NewBlockExecutor(db, log.TestingLogger(), proxyApp.Consensus(), mock.Mempool{}) + blockExec := sm.NewBlockExecutor(db, log.NewNoopLogger(), proxyApp.Consensus(), mock.Mempool{}) sm.SaveState(db, state) // let's add some blocks in @@ -124,8 +124,8 @@ func TestNoBlockResponse(t *testing.T) { reactorPairs := make([]BlockchainReactorPair, 2) - reactorPairs[0] = newBlockchainReactor(log.TestingLogger(), genDoc, privVals, maxBlockHeight) - reactorPairs[1] = newBlockchainReactor(log.TestingLogger(), genDoc, privVals, 0) + reactorPairs[0] = newBlockchainReactor(log.NewNoopLogger(), genDoc, privVals, maxBlockHeight) + reactorPairs[1] = newBlockchainReactor(log.NewNoopLogger(), genDoc, privVals, 0) p2p.MakeConnectedSwitches(config.P2P, 2, func(i int, s *p2p.Switch) *p2p.Switch { s.AddReactor("BLOCKCHAIN", reactorPairs[i].reactor) @@ -183,7 +183,7 @@ func TestFlappyBadBlockStopsPeer(t *testing.T) { maxBlockHeight := int64(148) - otherChain := newBlockchainReactor(log.TestingLogger(), genDoc, privVals, maxBlockHeight) + otherChain := newBlockchainReactor(log.NewNoopLogger(), genDoc, privVals, maxBlockHeight) defer func() { otherChain.reactor.Stop() otherChain.app.Stop() @@ -191,10 +191,10 @@ func TestFlappyBadBlockStopsPeer(t *testing.T) { reactorPairs := make([]BlockchainReactorPair, 4) - reactorPairs[0] = newBlockchainReactor(log.TestingLogger(), genDoc, privVals, maxBlockHeight) - reactorPairs[1] = newBlockchainReactor(log.TestingLogger(), genDoc, privVals, 0) - reactorPairs[2] = newBlockchainReactor(log.TestingLogger(), genDoc, privVals, 0) - reactorPairs[3] = newBlockchainReactor(log.TestingLogger(), genDoc, privVals, 0) + reactorPairs[0] = newBlockchainReactor(log.NewNoopLogger(), genDoc, privVals, maxBlockHeight) + reactorPairs[1] = newBlockchainReactor(log.NewNoopLogger(), genDoc, privVals, 0) + reactorPairs[2] = newBlockchainReactor(log.NewNoopLogger(), genDoc, privVals, 0) + reactorPairs[3] = newBlockchainReactor(log.NewNoopLogger(), genDoc, privVals, 0) switches := p2p.MakeConnectedSwitches(config.P2P, 4, func(i int, s *p2p.Switch) *p2p.Switch { s.AddReactor("BLOCKCHAIN", reactorPairs[i].reactor) @@ -222,7 +222,7 @@ func TestFlappyBadBlockStopsPeer(t *testing.T) { // mark reactorPairs[3] is an invalid peer reactorPairs[3].reactor.store = otherChain.reactor.store - lastReactorPair := newBlockchainReactor(log.TestingLogger(), genDoc, privVals, 0) + lastReactorPair := newBlockchainReactor(log.NewNoopLogger(), genDoc, privVals, 0) reactorPairs = append(reactorPairs, lastReactorPair) switches = append(switches, p2p.MakeConnectedSwitches(config.P2P, 1, func(i int, s *p2p.Switch) *p2p.Switch { diff --git a/tm2/pkg/bft/consensus/common_test.go b/tm2/pkg/bft/consensus/common_test.go index b3f21113ee0..c7f353267f7 100644 --- a/tm2/pkg/bft/consensus/common_test.go +++ b/tm2/pkg/bft/consensus/common_test.go @@ -282,7 +282,7 @@ func newConsensusStateWithConfigAndBlockStore(thisConfig *cfg.Config, state sm.S // Make Mempool mempool := mempl.NewCListMempool(thisConfig.Mempool, proxyAppConnMem, 0, state.ConsensusParams.Block.MaxTxBytes) - mempool.SetLogger(log.TestingLogger().With("module", "mempool")) + mempool.SetLogger(log.NewNoopLogger().With("module", "mempool")) if thisConfig.Consensus.WaitForTxs() { mempool.EnableTxsAvailable() } @@ -290,13 +290,13 @@ func newConsensusStateWithConfigAndBlockStore(thisConfig *cfg.Config, state sm.S // Make ConsensusState stateDB := blockDB sm.SaveState(stateDB, state) // for save height 1's validators info - blockExec := sm.NewBlockExecutor(stateDB, log.TestingLogger(), proxyAppConnCon, mempool) + blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyAppConnCon, mempool) cs := NewConsensusState(thisConfig.Consensus, state, blockExec, blockStore, mempool) - cs.SetLogger(log.TestingLogger().With("module", "consensus")) + cs.SetLogger(log.NewNoopLogger().With("module", "consensus")) cs.SetPrivValidator(pv) evsw := events.NewEventSwitch() - evsw.SetLogger(log.TestingLogger().With("module", "events")) + evsw.SetLogger(log.NewNoopLogger().With("module", "events")) evsw.Start() cs.SetEventSwitch(evsw) return cs @@ -574,7 +574,7 @@ func randConsensusNet(nValidators int, testName string, tickerFunc func() Timeou genDoc, privVals := randGenesisDoc(nValidators, false, 30) css := make([]*ConsensusState, nValidators) apps := make([]abci.Application, nValidators) - logger := log.TestingLogger() + logger := log.NewNoopLogger() configRootDirs := make([]string, 0, nValidators) for i := 0; i < nValidators; i++ { stateDB := dbm.NewMemDB() // each state needs its own db @@ -613,7 +613,7 @@ func randConsensusNetWithPeers(nValidators, nPeers int, testName string, tickerF genDoc, privVals := randGenesisDoc(nValidators, false, testMinPower) css := make([]*ConsensusState, nPeers) apps := make([]abci.Application, nPeers) - logger := log.TestingLogger() + logger := log.NewNoopLogger() var peer0Config *cfg.Config configRootDirs := make([]string, 0, nPeers) for i := 0; i < nPeers; i++ { diff --git a/tm2/pkg/bft/consensus/reactor.go b/tm2/pkg/bft/consensus/reactor.go index 6167cf1e61c..ed7a6ae6547 100644 --- a/tm2/pkg/bft/consensus/reactor.go +++ b/tm2/pkg/bft/consensus/reactor.go @@ -901,7 +901,7 @@ func (pss peerStateStats) String() string { func NewPeerState(peer p2p.Peer) *PeerState { return &PeerState{ peer: peer, - logger: slog.New(log.NewNoopHandler()), + logger: log.NewNoopLogger(), PRS: cstypes.PeerRoundState{ Round: -1, ProposalPOLRound: -1, diff --git a/tm2/pkg/bft/consensus/reactor_test.go b/tm2/pkg/bft/consensus/reactor_test.go index 1c97bd52bef..6ed4abde808 100644 --- a/tm2/pkg/bft/consensus/reactor_test.go +++ b/tm2/pkg/bft/consensus/reactor_test.go @@ -91,7 +91,7 @@ func TestReactorBasic(t *testing.T) { css, cleanup := randConsensusNet(N, "consensus_reactor_test", newMockTickerFunc(true), newCounter) defer cleanup() reactors, blocksSubs, eventSwitches, p2pSwitches := startConsensusNet(css, N) - defer stopConsensusNet(log.TestingLogger(), reactors, eventSwitches, p2pSwitches) + defer stopConsensusNet(log.NewNoopLogger(), reactors, eventSwitches, p2pSwitches) // wait till everyone makes the first new block timeoutWaitGroup(t, N, func(j int) { <-blocksSubs[j] @@ -109,7 +109,7 @@ func TestReactorCreatesBlockWhenEmptyBlocksFalse(t *testing.T) { }) defer cleanup() reactors, blocksSubs, eventSwitches, p2pSwitches := startConsensusNet(css, N) - defer stopConsensusNet(log.TestingLogger(), reactors, eventSwitches, p2pSwitches) + defer stopConsensusNet(log.NewNoopLogger(), reactors, eventSwitches, p2pSwitches) // send a tx if err := assertMempool(css[3].txNotifier).CheckTx([]byte{1, 2, 3}, nil); err != nil { @@ -127,7 +127,7 @@ func TestReactorReceiveDoesNotPanicIfAddPeerHasntBeenCalledYet(t *testing.T) { css, cleanup := randConsensusNet(N, "consensus_reactor_test", newMockTickerFunc(true), newCounter) defer cleanup() reactors, _, eventSwitches, p2pSwitches := startConsensusNet(css, N) - defer stopConsensusNet(log.TestingLogger(), reactors, eventSwitches, p2pSwitches) + defer stopConsensusNet(log.NewNoopLogger(), reactors, eventSwitches, p2pSwitches) var ( reactor = reactors[0] @@ -149,7 +149,7 @@ func TestReactorReceivePanicsIfInitPeerHasntBeenCalledYet(t *testing.T) { css, cleanup := randConsensusNet(N, "consensus_reactor_test", newMockTickerFunc(true), newCounter) defer cleanup() reactors, _, eventSwitches, p2pSwitches := startConsensusNet(css, N) - defer stopConsensusNet(log.TestingLogger(), reactors, eventSwitches, p2pSwitches) + defer stopConsensusNet(log.NewNoopLogger(), reactors, eventSwitches, p2pSwitches) var ( reactor = reactors[0] @@ -173,7 +173,7 @@ func TestFlappyReactorRecordsVotesAndBlockParts(t *testing.T) { css, cleanup := randConsensusNet(N, "consensus_reactor_test", newMockTickerFunc(true), newCounter) defer cleanup() reactors, blocksSubs, eventSwitches, p2pSwitches := startConsensusNet(css, N) - defer stopConsensusNet(log.TestingLogger(), reactors, eventSwitches, p2pSwitches) + defer stopConsensusNet(log.NewNoopLogger(), reactors, eventSwitches, p2pSwitches) // wait till everyone makes the first new block timeoutWaitGroup(t, N, func(j int) { @@ -194,7 +194,7 @@ func TestFlappyReactorRecordsVotesAndBlockParts(t *testing.T) { func TestReactorVotingPowerChange(t *testing.T) { nVals := 4 - logger := log.TestingLogger() + logger := log.NewNoopLogger() css, cleanup := randConsensusNet(nVals, "consensus_voting_power_changes_test", newMockTickerFunc(true), newPersistentKVStore) defer cleanup() @@ -260,7 +260,7 @@ func TestReactorValidatorSetChanges(t *testing.T) { css, _, _, cleanup := randConsensusNetWithPeers(nVals, nPeers, "consensus_val_set_changes_test", newMockTickerFunc(true), newPersistentKVStoreWithPath) defer cleanup() - logger := log.TestingLogger() + logger := log.NewNoopLogger() reactors, blocksSubs, eventSwitches, p2pSwitches := startConsensusNet(css, nPeers) defer stopConsensusNet(logger, reactors, eventSwitches, p2pSwitches) @@ -360,7 +360,7 @@ func TestReactorWithTimeoutCommit(t *testing.T) { } reactors, blocksSubs, eventSwitches, p2pSwitches := startConsensusNet(css, N-1) - defer stopConsensusNet(log.TestingLogger(), reactors, eventSwitches, p2pSwitches) + defer stopConsensusNet(log.NewNoopLogger(), reactors, eventSwitches, p2pSwitches) // wait till everyone makes the first new block timeoutWaitGroup(t, N-1, func(j int) { diff --git a/tm2/pkg/bft/consensus/replay.go b/tm2/pkg/bft/consensus/replay.go index 05b8d5fb693..32581db8258 100644 --- a/tm2/pkg/bft/consensus/replay.go +++ b/tm2/pkg/bft/consensus/replay.go @@ -214,7 +214,7 @@ func NewHandshaker(stateDB dbm.DB, state sm.State, store: store, evsw: events.NilEventSwitch(), genDoc: genDoc, - logger: slog.New(log.NewNoopHandler()), + logger: log.NewNoopLogger(), nBlocks: 0, } } diff --git a/tm2/pkg/bft/consensus/replay_file.go b/tm2/pkg/bft/consensus/replay_file.go index 4daf1dbb4ab..7bfa3de9231 100644 --- a/tm2/pkg/bft/consensus/replay_file.go +++ b/tm2/pkg/bft/consensus/replay_file.go @@ -320,7 +320,7 @@ func newConsensusStateForReplay(config cfg.BaseConfig, csConfig *cnscfg.Consensu } mempool := mock.Mempool{} - blockExec := sm.NewBlockExecutor(stateDB, log.TestingLogger(), proxyApp.Consensus(), mempool) + blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mempool) consensusState := NewConsensusState(csConfig, state.Copy(), blockExec, blockStore, mempool) diff --git a/tm2/pkg/bft/consensus/replay_test.go b/tm2/pkg/bft/consensus/replay_test.go index b3120a6d973..40f5eb319ce 100644 --- a/tm2/pkg/bft/consensus/replay_test.go +++ b/tm2/pkg/bft/consensus/replay_test.go @@ -72,7 +72,7 @@ func startNewConsensusStateAndWaitForBlock(t *testing.T, consensusReplayConfig * ) { t.Helper() - logger := log.TestingLogger() + logger := log.NewNoopLogger() state, _ := sm.LoadStateFromDBOrGenesisFile(stateDB, consensusReplayConfig.GenesisFile()) privValidator := loadPrivValidator(consensusReplayConfig) cs := newConsensusStateWithConfigAndBlockStore(consensusReplayConfig, state, privValidator, kvstore.NewKVStoreApplication(), blockDB) @@ -167,7 +167,7 @@ LOOP: t.Logf("====== LOOP %d\n", i) // create consensus state from a clean slate - logger := slog.New(log.NewNoopHandler()) + logger := log.NewNoopLogger() blockDB := dbm.NewMemDB() stateDB := blockDB state, _ := sm.MakeGenesisStateFromFile(consensusReplayConfig.GenesisFile()) @@ -558,7 +558,7 @@ func TestFlappyHandshakeReplayNone(t *testing.T) { // Test mockProxyApp should not panic when app return ABCIResponses with some empty ResponseDeliverTx func TestMockProxyApp(t *testing.T) { - logger := log.TestingLogger() + logger := log.NewNoopLogger() validTxs, invalidTxs := 0, 0 txIndex := 0 @@ -650,7 +650,7 @@ func testHandshakeReplay(t *testing.T, config *cfg.Config, nBlocks int, mode uin wal, err := walm.NewWAL(walFile, maxMsgSize) require.NoError(t, err) - wal.SetLogger(log.TestingLogger()) + wal.SetLogger(log.NewNoopLogger()) err = wal.Start() require.NoError(t, err) defer wal.Stop() @@ -721,7 +721,7 @@ func testHandshakeReplay(t *testing.T, config *cfg.Config, nBlocks int, mode uin func applyBlock(stateDB dbm.DB, st sm.State, blk *types.Block, proxyApp proxy.AppConns) sm.State { testPartSize := types.BlockPartSizeBytes - blockExec := sm.NewBlockExecutor(stateDB, log.TestingLogger(), proxyApp.Consensus(), mempool) + blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mempool) blkID := types.BlockID{Hash: blk.Hash(), PartsHeader: blk.MakePartSet(testPartSize).Header()} newState, err := blockExec.ApplyBlock(st, blkID, blk) diff --git a/tm2/pkg/bft/consensus/wal_generator.go b/tm2/pkg/bft/consensus/wal_generator.go index 2901607289a..a47a44f8243 100644 --- a/tm2/pkg/bft/consensus/wal_generator.go +++ b/tm2/pkg/bft/consensus/wal_generator.go @@ -38,7 +38,7 @@ func WALGenerateNBlocks(t *testing.T, wr io.Writer, numBlocks int) (err error) { app := kvstore.NewPersistentKVStoreApplication(filepath.Join(config.DBDir(), "wal_generator")) defer app.Close() - logger := log.TestingLogger().With("wal_generator", "wal_generator") + logger := log.NewNoopLogger().With("wal_generator", "wal_generator") logger.Info("generating WAL (last height msg excluded)", "numBlocks", numBlocks) // /////////////////////////////////////////////////////////////////////////// @@ -76,7 +76,7 @@ func WALGenerateNBlocks(t *testing.T, wr io.Writer, numBlocks int) (err error) { } defer evsw.Stop() mempool := mock.Mempool{} - blockExec := sm.NewBlockExecutor(stateDB, log.TestingLogger(), proxyApp.Consensus(), mempool) + blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mempool) consensusState := NewConsensusState(config.Consensus, state.Copy(), blockExec, blockStore, mempool) consensusState.SetLogger(logger) consensusState.SetEventSwitch(evsw) diff --git a/tm2/pkg/bft/consensus/wal_test.go b/tm2/pkg/bft/consensus/wal_test.go index 1b271fb73c7..58469580bca 100644 --- a/tm2/pkg/bft/consensus/wal_test.go +++ b/tm2/pkg/bft/consensus/wal_test.go @@ -57,7 +57,7 @@ func TestWALTruncate(t *testing.T) { const walChunkSize = 409610 // 4KB wal := makeTempWAL(t, walChunkSize) - wal.SetLogger(log.TestingLogger()) + wal.SetLogger(log.NewNoopLogger()) type grouper interface { Group() *auto.Group diff --git a/tm2/pkg/bft/mempool/clist_mempool.go b/tm2/pkg/bft/mempool/clist_mempool.go index b3ae33614a9..e7a356d1ad3 100644 --- a/tm2/pkg/bft/mempool/clist_mempool.go +++ b/tm2/pkg/bft/mempool/clist_mempool.go @@ -92,7 +92,7 @@ func NewCListMempool( rechecking: 0, recheckCursor: nil, recheckEnd: nil, - logger: slog.New(log.NewNoopHandler()), + logger: log.NewNoopLogger(), } if config.CacheSize > 0 { mempool.cache = newMapTxCache(config.CacheSize) diff --git a/tm2/pkg/bft/mempool/clist_mempool_test.go b/tm2/pkg/bft/mempool/clist_mempool_test.go index 60582f1922d..660287f994a 100644 --- a/tm2/pkg/bft/mempool/clist_mempool_test.go +++ b/tm2/pkg/bft/mempool/clist_mempool_test.go @@ -35,13 +35,13 @@ func newMempoolWithApp(cc proxy.ClientCreator) (*CListMempool, cleanupFunc) { func newMempoolWithAppAndConfig(cc proxy.ClientCreator, config *cfg.MempoolConfig) (*CListMempool, cleanupFunc) { appConnMem, _ := cc.NewABCIClient() - appConnMem.SetLogger(log.TestingLogger().With("module", "abci-client", "connection", "mempool")) + appConnMem.SetLogger(log.NewNoopLogger().With("module", "abci-client", "connection", "mempool")) err := appConnMem.Start() if err != nil { panic(err) } mempool := NewCListMempool(config, appConnMem, 0, testMaxTxBytes) - mempool.SetLogger(log.TestingLogger()) + mempool.SetLogger(log.NewNoopLogger()) return mempool, func() { if config.RootDir != "" { os.RemoveAll(config.RootDir) @@ -269,7 +269,7 @@ func TestSerialReap(t *testing.T) { defer cleanup() appConnCon, _ := cc.NewABCIClient() - appConnCon.SetLogger(log.TestingLogger().With("module", "abci-client", "connection", "consensus")) + appConnCon.SetLogger(log.NewNoopLogger().With("module", "abci-client", "connection", "consensus")) err := appConnCon.Start() require.Nil(t, err) @@ -509,7 +509,7 @@ func TestMempoolMaxPendingTxsBytes(t *testing.T) { assert.EqualValues(t, 8, mempool.TxsBytes()) appConnCon, _ := cc.NewABCIClient() - appConnCon.SetLogger(log.TestingLogger().With("module", "abci-client", "connection", "consensus")) + appConnCon.SetLogger(log.NewNoopLogger().With("module", "abci-client", "connection", "consensus")) err = appConnCon.Start() require.Nil(t, err) defer appConnCon.Stop() diff --git a/tm2/pkg/bft/mempool/reactor_test.go b/tm2/pkg/bft/mempool/reactor_test.go index e39132d78e9..951088e4c90 100644 --- a/tm2/pkg/bft/mempool/reactor_test.go +++ b/tm2/pkg/bft/mempool/reactor_test.go @@ -32,7 +32,7 @@ func (ps peerState) GetHeight() int64 { // connect N mempool reactors through N switches func makeAndConnectReactors(mconfig *memcfg.MempoolConfig, pconfig *p2pcfg.P2PConfig, n int) []*Reactor { reactors := make([]*Reactor, n) - logger := log.TestingLogger() + logger := log.NewNoopLogger() for i := 0; i < n; i++ { app := kvstore.NewKVStoreApplication() cc := proxy.NewLocalClientCreator(app) diff --git a/tm2/pkg/bft/node/node_test.go b/tm2/pkg/bft/node/node_test.go index 2352df49762..cf3d12537fa 100644 --- a/tm2/pkg/bft/node/node_test.go +++ b/tm2/pkg/bft/node/node_test.go @@ -33,7 +33,7 @@ func TestNodeStartStop(t *testing.T) { defer os.RemoveAll(config.RootDir) // create & start node - n, err := DefaultNewNode(config, log.TestingLogger()) + n, err := DefaultNewNode(config, log.NewNoopLogger()) require.NoError(t, err) err = n.Start() require.NoError(t, err) @@ -96,7 +96,7 @@ func TestNodeDelayedStart(t *testing.T) { now := tmtime.Now() // create & start node - n, err := DefaultNewNode(config, log.TestingLogger()) + n, err := DefaultNewNode(config, log.NewNoopLogger()) n.GenesisDoc().GenesisTime = now.Add(2 * time.Second) require.NoError(t, err) @@ -113,7 +113,7 @@ func TestNodeSetAppVersion(t *testing.T) { defer os.RemoveAll(config.RootDir) // create & start node - n, err := DefaultNewNode(config, log.TestingLogger()) + n, err := DefaultNewNode(config, log.NewNoopLogger()) require.NoError(t, err) // default config uses the kvstore app @@ -138,7 +138,7 @@ func TestNodeSetPrivValTCP(t *testing.T) { dialer := privval.DialTCPFn(addr, 100*time.Millisecond, ed25519.GenPrivKey()) dialerEndpoint := privval.NewSignerDialerEndpoint( - log.TestingLogger(), + log.NewNoopLogger(), dialer, ) privval.SignerDialerEndpointTimeoutReadWrite(100 * time.Millisecond)(dialerEndpoint) @@ -157,7 +157,7 @@ func TestNodeSetPrivValTCP(t *testing.T) { }() defer signerServer.Stop() - n, err := DefaultNewNode(config, log.TestingLogger()) + n, err := DefaultNewNode(config, log.NewNoopLogger()) require.NoError(t, err) assert.IsType(t, &privval.SignerClient{}, n.PrivValidator()) } @@ -170,7 +170,7 @@ func TestPrivValidatorListenAddrNoProtocol(t *testing.T) { defer os.RemoveAll(config.RootDir) config.BaseConfig.PrivValidatorListenAddr = addrNoPrefix - _, err := DefaultNewNode(config, log.TestingLogger()) + _, err := DefaultNewNode(config, log.NewNoopLogger()) assert.Error(t, err) } @@ -184,7 +184,7 @@ func TestNodeSetPrivValIPC(t *testing.T) { dialer := privval.DialUnixFn(tmpfile) dialerEndpoint := privval.NewSignerDialerEndpoint( - log.TestingLogger(), + log.NewNoopLogger(), dialer, ) privval.SignerDialerEndpointTimeoutReadWrite(100 * time.Millisecond)(dialerEndpoint) @@ -201,7 +201,7 @@ func TestNodeSetPrivValIPC(t *testing.T) { }() defer pvsc.Stop() - n, err := DefaultNewNode(config, log.TestingLogger()) + n, err := DefaultNewNode(config, log.NewNoopLogger()) require.NoError(t, err) assert.IsType(t, &privval.SignerClient{}, n.PrivValidator()) } @@ -228,7 +228,7 @@ func TestCreateProposalBlock(t *testing.T) { require.Nil(t, err) defer proxyApp.Stop() - logger := log.TestingLogger() + logger := log.NewNoopLogger() var height int64 = 1 state, stateDB := state(1, height) @@ -289,7 +289,7 @@ func TestNodeNewNodeCustomReactors(t *testing.T) { proxy.DefaultClientCreator(nil, config.ProxyApp, config.ABCI, config.DBDir()), DefaultGenesisDocProviderFunc(config), DefaultDBProvider, - log.TestingLogger(), + log.NewNoopLogger(), CustomReactors(map[string]p2p.Reactor{"FOO": cr, "BLOCKCHAIN": customBlockchainReactor}), ) require.NoError(t, err) diff --git a/tm2/pkg/bft/privval/signer_listener_endpoint_test.go b/tm2/pkg/bft/privval/signer_listener_endpoint_test.go index 4acd0b9ac10..f744e0ef8a1 100644 --- a/tm2/pkg/bft/privval/signer_listener_endpoint_test.go +++ b/tm2/pkg/bft/privval/signer_listener_endpoint_test.go @@ -61,7 +61,7 @@ func TestSignerRemoteRetryTCPOnly(t *testing.T) { }(ln, attemptCh) dialerEndpoint := NewSignerDialerEndpoint( - log.TestingLogger(), + log.NewNoopLogger(), DialTCPFn(ln.Addr().String(), testTimeoutReadWrite, ed25519.GenPrivKey()), ) SignerDialerEndpointTimeoutReadWrite(time.Millisecond)(dialerEndpoint) @@ -86,7 +86,7 @@ func TestSignerRemoteRetryTCPOnly(t *testing.T) { func TestRetryConnToRemoteSigner(t *testing.T) { for _, tc := range getDialerTestCases(t) { var ( - logger = log.TestingLogger() + logger = log.NewNoopLogger() chainID = random.RandStr(12) mockPV = types.NewMockPV() endpointIsOpenCh = make(chan struct{}) @@ -169,7 +169,7 @@ func getMockEndpoints( t.Helper() var ( - logger = log.TestingLogger() + logger = log.NewNoopLogger() endpointIsOpenCh = make(chan struct{}) dialerEndpoint = NewSignerDialerEndpoint( diff --git a/tm2/pkg/bft/rpc/client/localclient.go b/tm2/pkg/bft/rpc/client/localclient.go index c39fcaf3a58..cdd2cd31bb1 100644 --- a/tm2/pkg/bft/rpc/client/localclient.go +++ b/tm2/pkg/bft/rpc/client/localclient.go @@ -39,7 +39,7 @@ type Local struct { func NewLocal(node *nm.Node) *Local { node.ConfigureRPC() return &Local{ - Logger: slog.New(log.NewNoopHandler()), + Logger: log.NewNoopLogger(), ctx: &rpctypes.Context{}, } } diff --git a/tm2/pkg/bft/rpc/core/net_test.go b/tm2/pkg/bft/rpc/core/net_test.go index 42bf79fcce1..6b085cb7fea 100644 --- a/tm2/pkg/bft/rpc/core/net_test.go +++ b/tm2/pkg/bft/rpc/core/net_test.go @@ -19,7 +19,7 @@ func TestUnsafeDialSeeds(t *testing.T) { require.NoError(t, err) defer sw.Stop() - logger = log.TestingLogger() + logger = log.NewNoopLogger() p2pPeers = sw testCases := []struct { @@ -49,7 +49,7 @@ func TestUnsafeDialPeers(t *testing.T) { require.NoError(t, err) defer sw.Stop() - logger = log.TestingLogger() + logger = log.NewNoopLogger() p2pPeers = sw testCases := []struct { diff --git a/tm2/pkg/bft/rpc/lib/client/integration_test.go b/tm2/pkg/bft/rpc/lib/client/integration_test.go index 486540a989f..97b94d7f443 100644 --- a/tm2/pkg/bft/rpc/lib/client/integration_test.go +++ b/tm2/pkg/bft/rpc/lib/client/integration_test.go @@ -27,7 +27,7 @@ func TestWSClientReconnectWithJitter(t *testing.T) { errNotConnected := errors.New("not connected") clientMap := make(map[int]*WSClient) buf := new(bytes.Buffer) - logger := log.NewTMLogger(buf) + logger := log.NewNoopLogger() for i := 0; i < n; i++ { c := NewWSClient("tcp://foo", "/websocket") c.Dialer = func(string, string) (net.Conn, error) { diff --git a/tm2/pkg/bft/rpc/lib/client/ws_client_test.go b/tm2/pkg/bft/rpc/lib/client/ws_client_test.go index b3a495f25b2..76d766a0c36 100644 --- a/tm2/pkg/bft/rpc/lib/client/ws_client_test.go +++ b/tm2/pkg/bft/rpc/lib/client/ws_client_test.go @@ -200,7 +200,7 @@ func startClient(t *testing.T, addr net.Addr) *WSClient { c := NewWSClient(addr.String(), "/websocket") err := c.Start() require.Nil(t, err) - c.SetLogger(log.TestingLogger()) + c.SetLogger(log.NewNoopLogger()) return c } diff --git a/tm2/pkg/bft/rpc/lib/rpc_test.go b/tm2/pkg/bft/rpc/lib/rpc_test.go index 703bc6ac80a..48c8a646772 100644 --- a/tm2/pkg/bft/rpc/lib/rpc_test.go +++ b/tm2/pkg/bft/rpc/lib/rpc_test.go @@ -6,7 +6,6 @@ import ( crand "crypto/rand" "encoding/json" "fmt" - "log/slog" "net/http" "os" "os/exec" @@ -104,13 +103,10 @@ var colorFn = func(keyvals ...interface{}) colors.Color { // launch unix and tcp servers func setup() { - logger, err := log.NewTMLogger(os.Stdout, slog.LevelDebug) - if err != nil { - panic(err) - } + logger := log.NewNoopLogger() cmd := exec.Command("rm", "-f", unixSocket) - err = cmd.Start() + err := cmd.Start() if err != nil { panic(err) } @@ -295,7 +291,7 @@ func TestServersAndClientsBasic(t *testing.T) { testWithHTTPClient(t, cl2) cl3 := client.NewWSClient(addr, websocketEndpoint) - cl3.SetLogger(log.TestingLogger()) + cl3.SetLogger(log.NewNoopLogger()) err := cl3.Start() require.Nil(t, err) fmt.Printf("=== testing server on %s using WS client", addr) @@ -332,7 +328,7 @@ func TestQuotedStringArg(t *testing.T) { func TestWSNewWSRPCFunc(t *testing.T) { cl := client.NewWSClient(tcpAddr, websocketEndpoint) - cl.SetLogger(log.TestingLogger()) + cl.SetLogger(log.NewNoopLogger()) err := cl.Start() require.Nil(t, err) defer cl.Stop() @@ -357,7 +353,7 @@ func TestWSNewWSRPCFunc(t *testing.T) { func TestWSHandlesArrayParams(t *testing.T) { cl := client.NewWSClient(tcpAddr, websocketEndpoint) - cl.SetLogger(log.TestingLogger()) + cl.SetLogger(log.NewNoopLogger()) err := cl.Start() require.Nil(t, err) defer cl.Stop() @@ -382,7 +378,7 @@ func TestWSHandlesArrayParams(t *testing.T) { // & pongs so connection stays alive. func TestWSClientPingPong(t *testing.T) { cl := client.NewWSClient(tcpAddr, websocketEndpoint) - cl.SetLogger(log.TestingLogger()) + cl.SetLogger(log.NewNoopLogger()) err := cl.Start() require.Nil(t, err) defer cl.Stop() diff --git a/tm2/pkg/bft/rpc/lib/server/handlers.go b/tm2/pkg/bft/rpc/lib/server/handlers.go index e13171c2872..e3b5f16e228 100644 --- a/tm2/pkg/bft/rpc/lib/server/handlers.go +++ b/tm2/pkg/bft/rpc/lib/server/handlers.go @@ -774,7 +774,7 @@ func NewWebsocketManager(funcMap map[string]*RPCFunc, wsConnOptions ...func(*wsC return true }, }, - logger: slog.New(log.NewNoopHandler()), + logger: log.NewNoopLogger(), wsConnOptions: wsConnOptions, } } diff --git a/tm2/pkg/bft/rpc/lib/server/handlers_test.go b/tm2/pkg/bft/rpc/lib/server/handlers_test.go index b45f00f692c..0206902ba7c 100644 --- a/tm2/pkg/bft/rpc/lib/server/handlers_test.go +++ b/tm2/pkg/bft/rpc/lib/server/handlers_test.go @@ -1,10 +1,8 @@ package rpcserver_test import ( - "bytes" "encoding/json" "io/ioutil" - "log/slog" "net/http" "net/http/httptest" "strings" @@ -31,10 +29,8 @@ func testMux() *http.ServeMux { "c": rs.NewRPCFunc(func(ctx *types.Context, s string, i int) (string, error) { return "foo", nil }, "s,i"), } mux := http.NewServeMux() - buf := new(bytes.Buffer) - logger, _ := log.NewTMLogger(buf, slog.LevelDebug) - rs.RegisterRPCFuncs(mux, funcMap, logger) + rs.RegisterRPCFuncs(mux, funcMap, log.NewNoopLogger()) return mux } @@ -264,7 +260,7 @@ func newWSServer() *httptest.Server { "c": rs.NewWSRPCFunc(func(ctx *types.Context, s string, i int) (string, error) { return "foo", nil }, "s,i"), } wm := rs.NewWebsocketManager(funcMap) - wm.SetLogger(log.TestingLogger()) + wm.SetLogger(log.NewNoopLogger()) mux := http.NewServeMux() mux.HandleFunc("/websocket", wm.WebsocketHandler) diff --git a/tm2/pkg/bft/rpc/lib/server/http_server_test.go b/tm2/pkg/bft/rpc/lib/server/http_server_test.go index 351d9cb92d6..55bfaba64ed 100644 --- a/tm2/pkg/bft/rpc/lib/server/http_server_test.go +++ b/tm2/pkg/bft/rpc/lib/server/http_server_test.go @@ -1,12 +1,10 @@ package rpcserver import ( - "bytes" "crypto/tls" "fmt" "io" "io/ioutil" - "log/slog" "net" "net/http" "net/http/httptest" @@ -41,7 +39,7 @@ func TestMaxOpenConnections(t *testing.T) { l, err := Listen("tcp://127.0.0.1:0", config) require.NoError(t, err) defer l.Close() - go StartHTTPServer(l, mux, log.TestingLogger(), config) + go StartHTTPServer(l, mux, log.NewNoopLogger(), config) // Make N GET calls to the server. attempts := max * 2 @@ -81,7 +79,7 @@ func TestStartHTTPAndTLSServer(t *testing.T) { fmt.Fprint(w, "some body") }) - go StartHTTPAndTLSServer(ln, mux, "test.crt", "test.key", log.TestingLogger(), DefaultConfig()) + go StartHTTPAndTLSServer(ln, mux, "test.crt", "test.key", log.NewNoopLogger(), DefaultConfig()) tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, @@ -166,9 +164,9 @@ func TestRecoverAndLogHandler(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { var ( - req, _ = http.NewRequest(http.MethodGet, "", nil) - resp = httptest.NewRecorder() - logger, _ = log.NewTMLogger(&bytes.Buffer{}, slog.LevelDebug) + req, _ = http.NewRequest(http.MethodGet, "", nil) + resp = httptest.NewRecorder() + logger = log.NewNoopLogger() // Create a handler that will always panic with argument tt.panicArg handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { panic(tt.panicArg) diff --git a/tm2/pkg/bft/rpc/lib/test/main.go b/tm2/pkg/bft/rpc/lib/test/main.go index 209993c8f2c..3fd8ea0bf61 100644 --- a/tm2/pkg/bft/rpc/lib/test/main.go +++ b/tm2/pkg/bft/rpc/lib/test/main.go @@ -2,9 +2,7 @@ package main import ( "fmt" - "log/slog" "net/http" - "os" "github.com/gnolang/gno/tm2/pkg/log" osm "github.com/gnolang/gno/tm2/pkg/os" @@ -27,8 +25,8 @@ type Result struct { func main() { var ( - mux = http.NewServeMux() - logger, err = log.NewTMLogger(os.Stdout, slog.LevelInfo) + mux = http.NewServeMux() + logger = log.NewNoopLogger() ) // Stop upon receiving SIGTERM or CTRL-C. diff --git a/tm2/pkg/bft/rpc/test/helpers.go b/tm2/pkg/bft/rpc/test/helpers.go index 97d8840234b..0b6d39c6839 100644 --- a/tm2/pkg/bft/rpc/test/helpers.go +++ b/tm2/pkg/bft/rpc/test/helpers.go @@ -2,7 +2,6 @@ package rpctest import ( "fmt" - "log/slog" "os" "path/filepath" "strings" @@ -29,7 +28,6 @@ type Options struct { var ( globalConfig *cfg.Config defaultOptions = Options{ - suppressStdout: false, recreateConfig: false, } ) @@ -115,15 +113,7 @@ func StopTendermint(node *nm.Node) { func NewTendermint(app abci.Application, opts *Options) *nm.Node { // Create & start node config := GetConfig(opts.recreateConfig) - var ( - logger *slog.Logger - err error - ) - if opts.suppressStdout { - logger = slog.New(log.NewNoopHandler()) - } else { - logger, err = log.NewTMLogger(os.Stdout, slog.LevelDebug) - } + pvKeyFile := config.PrivValidatorKeyFile() pvKeyStateFile := config.PrivValidatorStateFile() pv := privval.LoadOrGenFilePV(pvKeyFile, pvKeyStateFile) @@ -135,7 +125,7 @@ func NewTendermint(app abci.Application, opts *Options) *nm.Node { node, err := nm.NewNode(config, pv, nodeKey, papp, nm.DefaultGenesisDocProviderFunc(config), nm.DefaultDBProvider, - logger) + log.NewNoopLogger()) if err != nil { panic(err) } diff --git a/tm2/pkg/bft/state/execution_test.go b/tm2/pkg/bft/state/execution_test.go index 849c87d3359..b271004864a 100644 --- a/tm2/pkg/bft/state/execution_test.go +++ b/tm2/pkg/bft/state/execution_test.go @@ -37,7 +37,7 @@ func TestApplyBlock(t *testing.T) { state, stateDB, _ := makeState(1, 1) - blockExec := sm.NewBlockExecutor(stateDB, log.TestingLogger(), proxyApp.Consensus(), mock.Mempool{}) + blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mock.Mempool{}) evsw := events.NewEventSwitch() blockExec.SetEventSwitch(evsw) @@ -86,7 +86,7 @@ func TestBeginBlockValidators(t *testing.T) { // block for height 2 block, _ := state.MakeBlock(2, makeTxs(2), lastCommit, state.Validators.GetProposer().Address) - _, err = sm.ExecCommitBlock(proxyApp.Consensus(), block, log.TestingLogger(), stateDB) + _, err = sm.ExecCommitBlock(proxyApp.Consensus(), block, log.NewNoopLogger(), stateDB) require.Nil(t, err, tc.desc) // -> app receives a list of validators with a bool indicating if they signed @@ -259,7 +259,7 @@ func TestEndBlockValidatorUpdates(t *testing.T) { state, stateDB, _ := makeState(1, 1) - blockExec := sm.NewBlockExecutor(stateDB, log.TestingLogger(), proxyApp.Consensus(), mock.Mempool{}) + blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mock.Mempool{}) evsw := events.NewEventSwitch() err = evsw.Start() @@ -324,7 +324,7 @@ func TestEndBlockValidatorUpdatesResultingInEmptySet(t *testing.T) { defer proxyApp.Stop() state, stateDB, _ := makeState(1, 1) - blockExec := sm.NewBlockExecutor(stateDB, log.TestingLogger(), proxyApp.Consensus(), mock.Mempool{}) + blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mock.Mempool{}) block := makeBlock(state, 1) blockID := types.BlockID{Hash: block.Hash(), PartsHeader: block.MakePartSet(testPartSize).Header()} diff --git a/tm2/pkg/bft/state/validation_test.go b/tm2/pkg/bft/state/validation_test.go index 94aafe92694..b15f3354d9f 100644 --- a/tm2/pkg/bft/state/validation_test.go +++ b/tm2/pkg/bft/state/validation_test.go @@ -24,7 +24,7 @@ func TestValidateBlockHeader(t *testing.T) { defer proxyApp.Stop() state, stateDB, privVals := makeState(3, 1) - blockExec := sm.NewBlockExecutor(stateDB, log.TestingLogger(), proxyApp.Consensus(), mock.Mempool{}) + blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mock.Mempool{}) lastCommit := types.NewCommit(types.BlockID{}, nil) // some bad values @@ -85,7 +85,7 @@ func TestValidateBlockCommit(t *testing.T) { defer proxyApp.Stop() state, stateDB, privVals := makeState(1, 1) - blockExec := sm.NewBlockExecutor(stateDB, log.TestingLogger(), proxyApp.Consensus(), mock.Mempool{}) + blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mock.Mempool{}) lastCommit := types.NewCommit(types.BlockID{}, nil) wrongPrecommitsCommit := types.NewCommit(types.BlockID{}, nil) badPrivVal := types.NewMockPV() diff --git a/tm2/pkg/bft/store/store_test.go b/tm2/pkg/bft/store/store_test.go index 528081359c8..0c4160692ee 100644 --- a/tm2/pkg/bft/store/store_test.go +++ b/tm2/pkg/bft/store/store_test.go @@ -1,7 +1,6 @@ package store import ( - "bytes" "fmt" "log/slog" "os" @@ -116,12 +115,8 @@ var ( func TestMain(m *testing.M) { var cleanup cleanupFunc - logger, err := log.NewTMLogger(new(bytes.Buffer), slog.LevelDebug) - if err != nil { - os.Exit(1) - } - state, _, cleanup = makeStateAndBlockStore(logger) + state, _, cleanup = makeStateAndBlockStore(log.NewNoopLogger()) block = makeBlock(1, state, new(types.Commit)) partSet = block.MakePartSet(2) part1 = partSet.GetPart(0) @@ -135,12 +130,7 @@ func TestMain(m *testing.M) { // TODO: This test should be simplified ... func TestBlockStoreSaveLoadBlock(t *testing.T) { - logger, err := log.NewTMLogger(new(bytes.Buffer), slog.LevelDebug) - if err != nil { - t.Fatal(err) - } - - state, bs, cleanup := makeStateAndBlockStore(logger) + state, bs, cleanup := makeStateAndBlockStore(log.NewNoopLogger()) defer cleanup() require.Equal(t, bs.Height(), int64(0), "initially the height should be zero") @@ -395,12 +385,7 @@ func TestLoadBlockMeta(t *testing.T) { } func TestBlockFetchAtHeight(t *testing.T) { - logger, err := log.NewTMLogger(new(bytes.Buffer), slog.LevelDebug) - if err != nil { - t.Fatal(err) - } - - state, bs, cleanup := makeStateAndBlockStore(logger) + state, bs, cleanup := makeStateAndBlockStore(log.NewNoopLogger()) defer cleanup() require.Equal(t, bs.Height(), int64(0), "initially the height should be zero") block := makeBlock(bs.Height()+1, state, new(types.Commit)) diff --git a/tm2/pkg/bft/wal/wal_test.go b/tm2/pkg/bft/wal/wal_test.go index 4cb94766389..c2f81ddc39c 100644 --- a/tm2/pkg/bft/wal/wal_test.go +++ b/tm2/pkg/bft/wal/wal_test.go @@ -172,7 +172,7 @@ func TestWALPeriodicSync(t *testing.T) { // Is this needed? wal.SetFlushInterval(walTestFlushInterval) - wal.SetLogger(log.TestingLogger()) + wal.SetLogger(log.NewNoopLogger()) // Take snapshot of starting state. startInfo := wal.Group().ReadGroupInfo() diff --git a/tm2/pkg/log/noop.go b/tm2/pkg/log/noop.go new file mode 100644 index 00000000000..40656d941e1 --- /dev/null +++ b/tm2/pkg/log/noop.go @@ -0,0 +1,33 @@ +package log + +import ( + "context" + "log/slog" +) + +// NewNoopLogger returns a new no-op logger +func NewNoopLogger() *slog.Logger { + return slog.New(newNoopHandler()) +} + +type noopHandler struct{} + +func newNoopHandler() *noopHandler { + return &noopHandler{} +} + +func (n *noopHandler) Enabled(_ context.Context, _ slog.Level) bool { + return false +} + +func (n *noopHandler) Handle(_ context.Context, _ slog.Record) error { + return nil +} + +func (n *noopHandler) WithAttrs(_ []slog.Attr) slog.Handler { + return n +} + +func (n *noopHandler) WithGroup(_ string) slog.Handler { + return n +} diff --git a/tm2/pkg/log/nop_logger.go b/tm2/pkg/log/nop_logger.go deleted file mode 100644 index eabbd69a915..00000000000 --- a/tm2/pkg/log/nop_logger.go +++ /dev/null @@ -1,28 +0,0 @@ -package log - -import ( - "context" - "log/slog" -) - -type NoopHandler struct{} - -func NewNoopHandler() *NoopHandler { - return &NoopHandler{} -} - -func (n *NoopHandler) Enabled(_ context.Context, _ slog.Level) bool { - return false -} - -func (n *NoopHandler) Handle(_ context.Context, _ slog.Record) error { - return nil -} - -func (n *NoopHandler) WithAttrs(_ []slog.Attr) slog.Handler { - return n -} - -func (n *NoopHandler) WithGroup(_ string) slog.Handler { - return n -} diff --git a/tm2/pkg/log/testing_logger.go b/tm2/pkg/log/testing_logger.go deleted file mode 100644 index d34a6ae6cd1..00000000000 --- a/tm2/pkg/log/testing_logger.go +++ /dev/null @@ -1,34 +0,0 @@ -package log - -import ( - "io" - "log/slog" - "os" - "testing" -) - -// TestingLogger returns a TMLogger which writes to STDOUT if testing being run -// with the verbose (-v) flag, NopLogger otherwise. -// -// Note that the call to TestingLogger() must be made -// inside a test (not in the init func) because -// verbose flag only set at the time of testing. -func TestingLogger() *slog.Logger { - return TestingLoggerWithOutput(os.Stdout) -} - -// TestingLoggerWithOutput returns a TMLogger which writes to (w io.Writer) if testing being run -// with the verbose (-v) flag, NopLogger otherwise. -// -// Note that the call to TestingLoggerWithOutput(w io.Writer) must be made -// inside a test (not in the init func) because -// verbose flag only set at the time of testing. -func TestingLoggerWithOutput(w io.Writer) *slog.Logger { - if testing.Verbose() { - logger, _ := NewTMLogger(w, slog.LevelDebug) - - return logger - } - - return slog.New(NewNoopHandler()) -} diff --git a/tm2/pkg/log/tm_logger_test.go b/tm2/pkg/log/tm_logger_test.go deleted file mode 100644 index cb9dea53fb4..00000000000 --- a/tm2/pkg/log/tm_logger_test.go +++ /dev/null @@ -1,20 +0,0 @@ -package log_test - -import ( - "log/slog" - "os" - "testing" - - "github.com/gnolang/gno/tm2/pkg/log" - "github.com/stretchr/testify/require" -) - -func TestDummy(t *testing.T) { - l, err := log.NewTMLogger(os.Stdout, slog.LevelDebug) - require.NoError(t, err) - - l.Info("info!", "message", 123) - l.Debug("debug!", "message", 123) - l.Error("error!", "message", 123) - l.Warn("warn!", "message", 123) -} diff --git a/tm2/pkg/p2p/conn/connection_test.go b/tm2/pkg/p2p/conn/connection_test.go index 6974dd97e56..d6f07d95a8b 100644 --- a/tm2/pkg/p2p/conn/connection_test.go +++ b/tm2/pkg/p2p/conn/connection_test.go @@ -22,7 +22,7 @@ func createTestMConnection(conn net.Conn) *MConnection { onError := func(r interface{}) { } c := createMConnectionWithCallbacks(conn, onReceive, onError) - c.SetLogger(log.TestingLogger()) + c.SetLogger(log.NewNoopLogger()) return c } @@ -32,7 +32,7 @@ func createMConnectionWithCallbacks(conn net.Conn, onReceive func(chID byte, msg cfg.PongTimeout = 45 * time.Millisecond chDescs := []*ChannelDescriptor{{ID: 0x01, Priority: 1, SendQueueCapacity: 1}} c := NewMConnectionWithConfig(conn, chDescs, onReceive, onError, cfg) - c.SetLogger(log.TestingLogger()) + c.SetLogger(log.NewNoopLogger()) return c } @@ -394,13 +394,13 @@ func newClientAndServerConnsForReadErrors(t *testing.T, chOnErr chan struct{}) ( {ID: 0x02, Priority: 1, SendQueueCapacity: 1}, } mconnClient := NewMConnection(client, chDescs, onReceive, onError) - mconnClient.SetLogger(log.TestingLogger().With("module", "client")) + mconnClient.SetLogger(log.NewNoopLogger().With("module", "client")) err := mconnClient.Start() require.Nil(t, err) // create server conn with 1 channel // it fires on chOnErr when there's an error - serverLogger := log.TestingLogger().With("module", "server") + serverLogger := log.NewNoopLogger().With("module", "server") onError = func(r interface{}) { chOnErr <- struct{}{} } diff --git a/tm2/pkg/p2p/mock/reactor.go b/tm2/pkg/p2p/mock/reactor.go index 335366920db..fe123fdc0b2 100644 --- a/tm2/pkg/p2p/mock/reactor.go +++ b/tm2/pkg/p2p/mock/reactor.go @@ -13,7 +13,7 @@ type Reactor struct { func NewReactor() *Reactor { r := &Reactor{} r.BaseReactor = *p2p.NewBaseReactor("Reactor", r) - r.SetLogger(log.TestingLogger()) + r.SetLogger(log.NewNoopLogger()) return r } diff --git a/tm2/pkg/p2p/peer_test.go b/tm2/pkg/p2p/peer_test.go index 070d783d2af..54e782f41d3 100644 --- a/tm2/pkg/p2p/peer_test.go +++ b/tm2/pkg/p2p/peer_test.go @@ -86,7 +86,7 @@ func createOutboundPeerAndPerformHandshake( } p := newPeer(pc, mConfig, peerNodeInfo, reactorsByCh, chDescs, func(p Peer, r interface{}) {}) - p.SetLogger(log.TestingLogger().With("peer", addr)) + p.SetLogger(log.NewNoopLogger().With("peer", addr)) return p, nil } diff --git a/tm2/pkg/p2p/switch_test.go b/tm2/pkg/p2p/switch_test.go index a0d4853493b..1e22c915241 100644 --- a/tm2/pkg/p2p/switch_test.go +++ b/tm2/pkg/p2p/switch_test.go @@ -52,7 +52,7 @@ func NewTestReactor(channels []*conn.ChannelDescriptor, logMessages bool) *TestR msgsReceived: make(map[byte][]PeerMessage), } tr.BaseReactor = *NewBaseReactor("TestReactor", tr) - tr.SetLogger(log.TestingLogger()) + tr.SetLogger(log.NewNoopLogger()) return tr } diff --git a/tm2/pkg/p2p/test_util.go b/tm2/pkg/p2p/test_util.go index 7ac46a07266..3e7abbc6c6f 100644 --- a/tm2/pkg/p2p/test_util.go +++ b/tm2/pkg/p2p/test_util.go @@ -17,7 +17,7 @@ import ( const testCh = 0x01 -//------------------------------------------------ +// ------------------------------------------------ func AddPeerToSwitchPeerSet(sw *Switch, peer Peer) { sw.peers.Add(peer) @@ -33,7 +33,7 @@ func CreateRandomPeer(outbound bool) *peer { nodeInfo: NodeInfo{NetAddress: netAddr}, mconn: &conn.MConnection{}, } - p.SetLogger(log.TestingLogger().With("peer", addr)) + p.SetLogger(log.NewNoopLogger().With("peer", addr)) return p } @@ -53,7 +53,7 @@ func CreateRoutableAddr() (addr string, netAddr *NetAddress) { return } -//------------------------------------------------------------------ +// ------------------------------------------------------------------ // Connects switches via arbitrary net.Conn. Used for testing. const TEST_HOST = "localhost" @@ -175,7 +175,7 @@ func MakeSwitch( // TODO: let the config be passed in? sw := initSwitch(i, NewSwitch(cfg, t, opts...)) - sw.SetLogger(log.TestingLogger().With("switch", i)) + sw.SetLogger(log.NewNoopLogger().With("switch", i)) sw.SetNodeKey(&nodeKey) for ch := range sw.reactorsByCh { @@ -223,7 +223,7 @@ func testPeerConn( return newPeerConn(outbound, persistent, conn, socketAddr), nil } -//---------------------------------------------------------------- +// ---------------------------------------------------------------- // rand node info func testNodeInfo(id ID, name string) NodeInfo { diff --git a/tm2/pkg/sdk/auth/test_common.go b/tm2/pkg/sdk/auth/test_common.go index 9b066578351..4fa5492b624 100644 --- a/tm2/pkg/sdk/auth/test_common.go +++ b/tm2/pkg/sdk/auth/test_common.go @@ -1,8 +1,6 @@ package auth import ( - "log/slog" - abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" bft "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/crypto" @@ -60,7 +58,7 @@ func setupTestEnv() testEnv { acck := NewAccountKeeper(authCapKey, std.ProtoBaseAccount) bank := NewDummyBankKeeper(acck) - ctx := sdk.NewContext(sdk.RunTxModeDeliver, ms, &bft.Header{Height: 1, ChainID: "test-chain-id"}, slog.New(log.NewNoopHandler())) + ctx := sdk.NewContext(sdk.RunTxModeDeliver, ms, &bft.Header{Height: 1, ChainID: "test-chain-id"}, log.NewNoopLogger()) ctx = ctx.WithValue(AuthParamsContextKey{}, DefaultParams()) ctx = ctx.WithConsensusParams(&abci.ConsensusParams{ Block: &abci.BlockParams{ diff --git a/tm2/pkg/sdk/bank/common_test.go b/tm2/pkg/sdk/bank/common_test.go index 29be7a6ec46..fcbd5d2cb94 100644 --- a/tm2/pkg/sdk/bank/common_test.go +++ b/tm2/pkg/sdk/bank/common_test.go @@ -3,8 +3,6 @@ package bank // DONTCOVER import ( - "log/slog" - bft "github.com/gnolang/gno/tm2/pkg/bft/types" dbm "github.com/gnolang/gno/tm2/pkg/db" "github.com/gnolang/gno/tm2/pkg/log" @@ -31,7 +29,7 @@ func setupTestEnv() testEnv { ms.MountStoreWithDB(authCapKey, iavl.StoreConstructor, db) ms.LoadLatestVersion() - ctx := sdk.NewContext(sdk.RunTxModeDeliver, ms, &bft.Header{ChainID: "test-chain-id"}, slog.New(log.NewNoopHandler())) + ctx := sdk.NewContext(sdk.RunTxModeDeliver, ms, &bft.Header{ChainID: "test-chain-id"}, log.NewNoopLogger()) acck := auth.NewAccountKeeper( authCapKey, std.ProtoBaseAccount, ) diff --git a/tm2/pkg/sdk/baseapp_test.go b/tm2/pkg/sdk/baseapp_test.go index 0cf0c2a2d2d..c03b263f090 100644 --- a/tm2/pkg/sdk/baseapp_test.go +++ b/tm2/pkg/sdk/baseapp_test.go @@ -16,7 +16,6 @@ import ( abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" bft "github.com/gnolang/gno/tm2/pkg/bft/types" dbm "github.com/gnolang/gno/tm2/pkg/db" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/sdk/testutils" "github.com/gnolang/gno/tm2/pkg/std" "github.com/gnolang/gno/tm2/pkg/store/dbadapter" @@ -57,7 +56,7 @@ func newTxCounter(txInt int64, msgInts ...int64) std.Tx { } func defaultLogger() *slog.Logger { - logger, _ := log.NewTMLogger(os.Stdout, slog.LevelDebug) + logger := slog.New(slog.NewTextHandler(os.Stdout, nil)) return logger.With("module", "sdk/app") } diff --git a/tm2/pkg/service/service.go b/tm2/pkg/service/service.go index dff38a94247..05f7a4f4ae6 100644 --- a/tm2/pkg/service/service.go +++ b/tm2/pkg/service/service.go @@ -109,7 +109,7 @@ type BaseService struct { // NewBaseService creates a new BaseService. func NewBaseService(logger *slog.Logger, name string, impl Service) *BaseService { if logger == nil { - logger = slog.New(log.NewNoopHandler()) + logger = log.NewNoopLogger() } return &BaseService{ From c08de43a63c12986000969209fd2d729e90391b2 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Thu, 26 Oct 2023 15:09:23 -0400 Subject: [PATCH 04/43] Use custom zap config --- gno.land/cmd/gnoland/start.go | 4 +- .../pkg/integration/testing_integration.go | 11 +++-- gno.land/pkg/log/log.go | 48 +++++++++---------- go.mod | 3 +- go.sum | 35 ++++++++++++++ 5 files changed, 66 insertions(+), 35 deletions(-) diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index 779b1a018ef..acb04c42d7a 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -6,7 +6,6 @@ import ( "errors" "flag" "fmt" - "log/slog" "os" "path/filepath" "strings" @@ -30,6 +29,7 @@ import ( "github.com/gnolang/gno/tm2/pkg/crypto" osm "github.com/gnolang/gno/tm2/pkg/os" "github.com/gnolang/gno/tm2/pkg/std" + "go.uber.org/zap/zapcore" ) type startCfg struct { @@ -160,7 +160,7 @@ func (c *startCfg) RegisterFlags(fs *flag.FlagSet) { } func execStart(c *startCfg, io *commands.IO) error { - logger, err := log.NewLogger(io.Out, slog.LevelDebug) + logger, err := log.NewLogger(io.Out, zapcore.DebugLevel) if err != nil { return err } diff --git a/gno.land/pkg/integration/testing_integration.go b/gno.land/pkg/integration/testing_integration.go index 6d99fc0c887..3e2f838625d 100644 --- a/gno.land/pkg/integration/testing_integration.go +++ b/gno.land/pkg/integration/testing_integration.go @@ -23,6 +23,7 @@ import ( "github.com/gnolang/gno/tm2/pkg/events" tm2Log "github.com/gnolang/gno/tm2/pkg/log" "github.com/rogpeppe/go-internal/testscript" + "go.uber.org/zap/zapcore" ) // XXX: This should be centralize somewhere. @@ -266,17 +267,17 @@ func getTestingLogger(ts *testscript.TestScript, logname string) *slog.Logger { } }) - level := slog.LevelInfo + var level zapcore.Level switch lvl := os.Getenv("LOG_LEVEL"); strings.ToLower(lvl) { case "error": - level = slog.LevelError + level = zapcore.ErrorLevel case "debug": - level = slog.LevelDebug + level = zapcore.DebugLevel case "warn": - level = slog.LevelWarn + level = zapcore.WarnLevel default: - level = slog.LevelInfo + level = zapcore.InfoLevel } logger, _ := log.NewLogger(f, level) diff --git a/gno.land/pkg/log/log.go b/gno.land/pkg/log/log.go index 1171080f574..f179b5d4573 100644 --- a/gno.land/pkg/log/log.go +++ b/gno.land/pkg/log/log.go @@ -8,9 +8,11 @@ import ( "go.uber.org/zap" "go.uber.org/zap/exp/zapslog" + "go.uber.org/zap/zapcore" + "moul.io/zapconfig" ) -const customWriterKey = "tm2" +const customWriterKey = "gno" type customWriter struct { io.Writer @@ -24,39 +26,33 @@ func (cw customWriter) Sync() error { return nil } -func NewLogger(w io.Writer, level slog.Level) (*slog.Logger, error) { - config := zap.NewDevelopmentConfig() - - switch level { - case slog.LevelInfo: - config.Level = zap.NewAtomicLevelAt(zap.InfoLevel) - case slog.LevelDebug: - config.Level = zap.NewAtomicLevelAt(zap.DebugLevel) - case slog.LevelError: - config.Level = zap.NewAtomicLevelAt(zap.ErrorLevel) - case slog.LevelWarn: - config.Level = zap.NewAtomicLevelAt(zap.WarnLevel) - } - - err := zap.RegisterSink(customWriterKey, func(u *url.URL) (zap.Sink, error) { - return customWriter{w}, nil - }) - if err != nil { +func NewLogger(w io.Writer, level zapcore.Level) (*slog.Logger, error) { + if err := zap.RegisterSink( + customWriterKey, + func(u *url.URL) (zap.Sink, error) { + return customWriter{w}, nil + }); err != nil { return nil, fmt.Errorf("unable to register sink, %w", err) } - config.OutputPaths = []string{ - fmt.Sprintf("%s:", customWriterKey), - } - - zapLogger, err := config.Build() + zapLogger, err := zapconfig.New(). + SetOutputPath(fmt.Sprintf("%s:", customWriterKey)). + EnableStacktrace(). + SetLevel(level). + SetPreset("console"). + Build() if err != nil { - return nil, fmt.Errorf("unable to build logger config, %w", err) + return nil, fmt.Errorf("unable to build logger, %w", err) } defer zapLogger.Sync() - handler := zapslog.NewHandler(zapLogger.Core(), &zapslog.HandlerOptions{LoggerName: "tm2"}) + handler := zapslog.NewHandler( + zapLogger.Core(), + &zapslog.HandlerOptions{ + LoggerName: "gno.land", + }, + ) return slog.New(handler), nil } diff --git a/go.mod b/go.mod index 05c9111a8a0..73b120bee3b 100644 --- a/go.mod +++ b/go.mod @@ -41,6 +41,7 @@ require ( golang.org/x/tools v0.14.0 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 + moul.io/zapconfig v1.4.0 ) require ( @@ -61,7 +62,6 @@ require ( github.com/gorilla/securecookie v1.1.1 // indirect github.com/gorilla/sessions v1.2.1 // indirect github.com/klauspost/compress v1.12.3 // indirect - github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.7 // indirect github.com/lucasb-eyer/go-colorful v1.0.3 // indirect github.com/nxadm/tail v1.4.8 // indirect @@ -71,5 +71,4 @@ require ( go.uber.org/atomic v1.10.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect - gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect ) diff --git a/go.sum b/go.sum index 3bd1b7ea650..002486adc7f 100644 --- a/go.sum +++ b/go.sum @@ -87,6 +87,7 @@ github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/gorilla/csrf v1.7.0/go.mod h1:+a/4tCmqhG6/w4oafeAZ9pEa3/NZOWYVbD9fV0FwIQA= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= @@ -147,17 +148,22 @@ github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3v github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/ff/v3 v3.4.0 h1:QBvM/rizZM1cB0p0lGMdmR7HxZeI/ZrBWB4DqLkMUBc= github.com/peterbourgon/ff/v3 v3.4.0/go.mod h1:zjJVUhx+twciwfDl0zBcFzl4dW8axCRyXE/eKY9RztQ= +github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -169,10 +175,13 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/tailscale/depaware v0.0.0-20201214215404-77d1e9757027/go.mod h1:p9lPsd+cx33L3H9nNoecRRxPssFKUwwI50I3pZ0yT+8= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -183,12 +192,18 @@ go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= go.uber.org/zap/exp v0.2.0 h1:FtGenNNeCATRB3CmB/yEUnjEFeJWpB/pMcy7e2bKPYs= @@ -196,6 +211,7 @@ go.uber.org/zap/exp v0.2.0/go.mod h1:t0gqAIdh1MfKv9EwN/dLwfZnJxe9ITAZN78HEWPFWDQ golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -205,8 +221,12 @@ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -236,6 +256,8 @@ golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -249,9 +271,14 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -270,9 +297,11 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= @@ -281,6 +310,12 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +moul.io/u v1.23.0 h1:ZHfDUsUMfRG3e0A7gBYOo8SkKqe02Pc5zuQUVxq4+tg= +moul.io/u v1.23.0/go.mod h1:ytlQ/zt+Sdk+PFGEx+fpTivoa0ieA5yMo6itRswIWNQ= +moul.io/zapconfig v1.4.0 h1:J3ND5J3e/qQ++jlpqdSR1EtDNV+iujtvXgLsjy1uyq8= +moul.io/zapconfig v1.4.0/go.mod h1:bYTa5j7r82yPmSR6i5CcrPSVoWEbdpN7o9IgndSVby8= From 035bbefb1dc21910210386946fde785a9926cd30 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Thu, 26 Oct 2023 15:11:56 -0400 Subject: [PATCH 05/43] Use log level from config --- gno.land/cmd/gnoland/start.go | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index acb04c42d7a..0fc1e211b15 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -160,10 +160,6 @@ func (c *startCfg) RegisterFlags(fs *flag.FlagSet) { } func execStart(c *startCfg, io *commands.IO) error { - logger, err := log.NewLogger(io.Out, zapcore.DebugLevel) - if err != nil { - return err - } rootDir := c.rootDir var ( @@ -185,6 +181,26 @@ func execStart(c *startCfg, io *commands.IO) error { return fmt.Errorf("unable to load node configuration, %w", loadCfgErr) } + var level zapcore.Level + + switch strings.ToLower(cfg.LogLevel) { + case "info": + level = zapcore.InfoLevel + case "error": + level = zapcore.ErrorLevel + case "debug": + level = zapcore.DebugLevel + case "warn": + level = zapcore.WarnLevel + default: + level = zapcore.DebugLevel + } + + logger, err := log.NewLogger(io.Out, level) + if err != nil { + return err + } + // create priv validator first. // need it to generate genesis.json newPrivValKey := cfg.PrivValidatorKeyFile() From dec3fedc4dbbb3c89a40a6f61c147e039b6b0be4 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Thu, 26 Oct 2023 15:25:05 -0400 Subject: [PATCH 06/43] Update workflows --- .github/workflows/db-tests.yml | 1 - .github/workflows/examples.yml | 3 --- .github/workflows/gnoland.yml | 2 -- .github/workflows/gnovm.yml | 2 -- .github/workflows/tm2.yml | 2 -- 5 files changed, 10 deletions(-) diff --git a/.github/workflows/db-tests.yml b/.github/workflows/db-tests.yml index f8da78cc3d8..e655fd34f47 100644 --- a/.github/workflows/db-tests.yml +++ b/.github/workflows/db-tests.yml @@ -21,7 +21,6 @@ jobs: fail-fast: false matrix: goversion: - - "1.20.x" - "1.21.x" tags: - cleveldb diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index b17c66d8e5a..8b136b84038 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -22,7 +22,6 @@ jobs: fail-fast: false matrix: goversion: - - "1.20.x" - "1.21.x" runs-on: ubuntu-latest timeout-minutes: 30 @@ -39,7 +38,6 @@ jobs: fail-fast: false matrix: goversion: - - "1.20.x" - "1.21.x" # unittests: TODO: matrix with contracts runs-on: ubuntu-latest @@ -56,7 +54,6 @@ jobs: fail-fast: false matrix: goversion: - - "1.20.x" - "1.21.x" # unittests: TODO: matrix with contracts runs-on: ubuntu-latest diff --git a/.github/workflows/gnoland.yml b/.github/workflows/gnoland.yml index 95cb5fa8ce0..ae18c7ecfa1 100644 --- a/.github/workflows/gnoland.yml +++ b/.github/workflows/gnoland.yml @@ -28,7 +28,6 @@ jobs: fail-fast: false matrix: goversion: - - "1.20.x" - "1.21.x" goarch: [ "amd64" ] goos: [ "linux" ] @@ -54,7 +53,6 @@ jobs: fail-fast: false matrix: goversion: - - "1.20.x" - "1.21.x" args: - _test.gnoland diff --git a/.github/workflows/gnovm.yml b/.github/workflows/gnovm.yml index 71b03b5ca05..19ae0a0c8b2 100644 --- a/.github/workflows/gnovm.yml +++ b/.github/workflows/gnovm.yml @@ -30,7 +30,6 @@ jobs: fail-fast: false matrix: goversion: # two latest versions - - "1.20.x" - "1.21.x" goenv: # TODO: replace with pairs, so it's easier to read in the GH interface. - "GOARCH=amd64 GOOS=linux" @@ -53,7 +52,6 @@ jobs: fail-fast: false matrix: goversion: - - "1.20.x" - "1.21.x" args: - _test.cmd diff --git a/.github/workflows/tm2.yml b/.github/workflows/tm2.yml index 7b78ccb1e0f..f9418f4f2fb 100644 --- a/.github/workflows/tm2.yml +++ b/.github/workflows/tm2.yml @@ -26,7 +26,6 @@ jobs: fail-fast: false matrix: goversion: - - "1.20.x" - "1.21.x" goarch: [ "amd64" ] goos: [ "linux" ] @@ -47,7 +46,6 @@ jobs: fail-fast: false matrix: goversion: - - "1.20.x" - "1.21.x" args: - _test.flappy From 9aa5d7daeb33b96998add3082910e9aa437a203b Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Thu, 26 Oct 2023 15:26:03 -0400 Subject: [PATCH 07/43] Remove test case because of Go 1.21 --- tm2/pkg/bft/rpc/lib/server/http_server_test.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/tm2/pkg/bft/rpc/lib/server/http_server_test.go b/tm2/pkg/bft/rpc/lib/server/http_server_test.go index 55bfaba64ed..2685d4c6c6d 100644 --- a/tm2/pkg/bft/rpc/lib/server/http_server_test.go +++ b/tm2/pkg/bft/rpc/lib/server/http_server_test.go @@ -155,11 +155,6 @@ func TestRecoverAndLogHandler(t *testing.T) { } }`, }, - { - name: "panic with nil", - panicArg: nil, - expectedResponse: ``, - }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { From 209041ffbce481969beb0e34b6bd4413ba3ba266 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Thu, 26 Oct 2023 17:40:03 -0400 Subject: [PATCH 08/43] Resolve faulty log lines --- gno.land/pkg/gnoland/app.go | 6 +++--- gno.land/pkg/integration/testing_integration.go | 4 ++-- gno.land/pkg/sdk/vm/keeper.go | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gno.land/pkg/gnoland/app.go b/gno.land/pkg/gnoland/app.go index 667030bc755..a779ffb6c98 100644 --- a/gno.land/pkg/gnoland/app.go +++ b/gno.land/pkg/gnoland/app.go @@ -155,15 +155,15 @@ func InitChainer(baseApp *sdk.BaseApp, acctKpr auth.AccountKeeperI, bankKpr bank for i, tx := range genState.Txs { res := baseApp.Deliver(tx) if res.IsErr() { - ctx.Logger().Error("LOG", res.Log) - ctx.Logger().Error("#", i, string(amino.MustMarshalJSON(tx))) + ctx.Logger().Error("LOG", "log", res.Log) + ctx.Logger().Error(fmt.Sprintf("#%d", i), "value", string(amino.MustMarshalJSON(tx))) // NOTE: comment out to ignore. if !skipFailingGenesisTxs { panic(res.Error) } } else { - ctx.Logger().Info("SUCCESS:", string(amino.MustMarshalJSON(tx))) + ctx.Logger().Info("SUCCESS:", "value", string(amino.MustMarshalJSON(tx))) } } // Done! diff --git a/gno.land/pkg/integration/testing_integration.go b/gno.land/pkg/integration/testing_integration.go index 3e2f838625d..96e28414d22 100644 --- a/gno.land/pkg/integration/testing_integration.go +++ b/gno.land/pkg/integration/testing_integration.go @@ -216,8 +216,8 @@ func SetupGnolandTestScript(t *testing.T, txtarDir string) testscript.Params { n.nGnoKeyExec++ headerlog := fmt.Sprintf("%.02d!EXEC_GNOKEY", n.nGnoKeyExec) // Log the command inside gnoland logger, so we can better scope errors. - n.logger.Info(headerlog, strings.Join(args, " ")) - defer n.logger.Info(headerlog, "END") + n.logger.Info(headerlog, "args", strings.Join(args, " ")) + defer n.logger.Info(headerlog, "delimiter", "END") } // Inject default argument, if duplicate diff --git a/gno.land/pkg/sdk/vm/keeper.go b/gno.land/pkg/sdk/vm/keeper.go index 6f695e98558..636e1873cd4 100644 --- a/gno.land/pkg/sdk/vm/keeper.go +++ b/gno.land/pkg/sdk/vm/keeper.go @@ -271,7 +271,7 @@ func (vm *VMKeeper) Call(ctx sdk.Context, msg MsgCall) (res string, err error) { m.Release() }() rtvs := m.Eval(xn) - ctx.Logger().Info("CPUCYCLES call: ", m.Cycles) + ctx.Logger().Info("CPUCYCLES call: ", "num-cycles", m.Cycles) for i, rtv := range rtvs { res = res + rtv.String() if i < len(rtvs)-1 { From 568ff80acd9a8648ba4cf44032591916e652755e Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 15 Jan 2024 14:42:27 +0100 Subject: [PATCH 09/43] Revert go version change --- .github/workflows/db-tests.yml | 1 + .github/workflows/examples.yml | 3 +++ .github/workflows/gnoland.yml | 2 ++ .github/workflows/gnovm.yml | 2 ++ .github/workflows/tm2.yml | 2 ++ go.mod | 2 +- go.sum | 5 ----- 7 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/db-tests.yml b/.github/workflows/db-tests.yml index e655fd34f47..f8da78cc3d8 100644 --- a/.github/workflows/db-tests.yml +++ b/.github/workflows/db-tests.yml @@ -21,6 +21,7 @@ jobs: fail-fast: false matrix: goversion: + - "1.20.x" - "1.21.x" tags: - cleveldb diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index 8b136b84038..b17c66d8e5a 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -22,6 +22,7 @@ jobs: fail-fast: false matrix: goversion: + - "1.20.x" - "1.21.x" runs-on: ubuntu-latest timeout-minutes: 30 @@ -38,6 +39,7 @@ jobs: fail-fast: false matrix: goversion: + - "1.20.x" - "1.21.x" # unittests: TODO: matrix with contracts runs-on: ubuntu-latest @@ -54,6 +56,7 @@ jobs: fail-fast: false matrix: goversion: + - "1.20.x" - "1.21.x" # unittests: TODO: matrix with contracts runs-on: ubuntu-latest diff --git a/.github/workflows/gnoland.yml b/.github/workflows/gnoland.yml index ae18c7ecfa1..95cb5fa8ce0 100644 --- a/.github/workflows/gnoland.yml +++ b/.github/workflows/gnoland.yml @@ -28,6 +28,7 @@ jobs: fail-fast: false matrix: goversion: + - "1.20.x" - "1.21.x" goarch: [ "amd64" ] goos: [ "linux" ] @@ -53,6 +54,7 @@ jobs: fail-fast: false matrix: goversion: + - "1.20.x" - "1.21.x" args: - _test.gnoland diff --git a/.github/workflows/gnovm.yml b/.github/workflows/gnovm.yml index 19ae0a0c8b2..71b03b5ca05 100644 --- a/.github/workflows/gnovm.yml +++ b/.github/workflows/gnovm.yml @@ -30,6 +30,7 @@ jobs: fail-fast: false matrix: goversion: # two latest versions + - "1.20.x" - "1.21.x" goenv: # TODO: replace with pairs, so it's easier to read in the GH interface. - "GOARCH=amd64 GOOS=linux" @@ -52,6 +53,7 @@ jobs: fail-fast: false matrix: goversion: + - "1.20.x" - "1.21.x" args: - _test.cmd diff --git a/.github/workflows/tm2.yml b/.github/workflows/tm2.yml index f9418f4f2fb..7b78ccb1e0f 100644 --- a/.github/workflows/tm2.yml +++ b/.github/workflows/tm2.yml @@ -26,6 +26,7 @@ jobs: fail-fast: false matrix: goversion: + - "1.20.x" - "1.21.x" goarch: [ "amd64" ] goos: [ "linux" ] @@ -46,6 +47,7 @@ jobs: fail-fast: false matrix: goversion: + - "1.20.x" - "1.21.x" args: - _test.flappy diff --git a/go.mod b/go.mod index 3b4f0d2f4f7..d5ad01f5970 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/gnolang/gno -go 1.21 +go 1.20 require ( github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c diff --git a/go.sum b/go.sum index 72b31cec107..afd15c2806f 100644 --- a/go.sum +++ b/go.sum @@ -5,7 +5,6 @@ github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAE github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c h1:lnAMg3ra/Gw4AkRMxrxYs8nrprWsHowg8H9zaYsJOo4= github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= @@ -139,10 +138,8 @@ github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA= -github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= @@ -199,7 +196,6 @@ go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= @@ -325,7 +321,6 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWD gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= From b32ea849caecb0ef559b09bdbb0f3f5fc51da1e7 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 15 Jan 2024 18:14:25 +0100 Subject: [PATCH 10/43] Tidy go mods --- contribs/gnodev/go.mod | 6 ++++- contribs/gnodev/go.sum | 54 +++++++++++++++++++++++++++++++++++++--- contribs/gnokeykc/go.mod | 5 ++-- contribs/gnokeykc/go.sum | 13 ++++------ misc/loop/go.mod | 4 ++- misc/loop/go.sum | 46 +++++++++++++++++++++++++++++++--- 6 files changed, 108 insertions(+), 20 deletions(-) diff --git a/contribs/gnodev/go.mod b/contribs/gnodev/go.mod index 32f70de42cc..5ad2c820a16 100644 --- a/contribs/gnodev/go.mod +++ b/contribs/gnodev/go.mod @@ -49,12 +49,16 @@ require ( github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect go.etcd.io/bbolt v1.3.8 // indirect go.opencensus.io v0.22.5 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.10.0 // indirect + go.uber.org/zap v1.24.0 // indirect + go.uber.org/zap/exp v0.2.0 // indirect golang.org/x/crypto v0.15.0 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.15.0 // indirect - golang.org/x/tools v0.13.0 // indirect + golang.org/x/tools v0.14.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + moul.io/zapconfig v1.4.0 // indirect ) diff --git a/contribs/gnodev/go.sum b/contribs/gnodev/go.sum index bdc46387a5e..ad127089f9b 100644 --- a/contribs/gnodev/go.sum +++ b/contribs/gnodev/go.sum @@ -4,6 +4,7 @@ github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= github.com/btcsuite/btcd v0.23.0 h1:V2/ZgjfDFIygAX3ZapeigkVBoVUtOJKSwrhZdlpSvaA= @@ -39,6 +40,7 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -96,9 +98,10 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/gorilla/csrf v1.7.0/go.mod h1:+a/4tCmqhG6/w4oafeAZ9pEa3/NZOWYVbD9fV0FwIQA= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= @@ -126,11 +129,13 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.12.3 h1:G5AfA94pHPysR56qqrkO2pxEexdDzrpFJ6yt/VqWxVU= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= @@ -156,15 +161,20 @@ github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3v github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/ff/v3 v3.4.0 h1:QBvM/rizZM1cB0p0lGMdmR7HxZeI/ZrBWB4DqLkMUBc= github.com/peterbourgon/ff/v3 v3.4.0/go.mod h1:zjJVUhx+twciwfDl0zBcFzl4dW8axCRyXE/eKY9RztQ= +github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -176,12 +186,14 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/tailscale/depaware v0.0.0-20201214215404-77d1e9757027/go.mod h1:p9lPsd+cx33L3H9nNoecRRxPssFKUwwI50I3pZ0yT+8= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -192,11 +204,25 @@ go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= +go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= +go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= +go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go.uber.org/zap/exp v0.2.0 h1:FtGenNNeCATRB3CmB/yEUnjEFeJWpB/pMcy7e2bKPYs= +go.uber.org/zap/exp v0.2.0/go.mod h1:t0gqAIdh1MfKv9EwN/dLwfZnJxe9ITAZN78HEWPFWDQ= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= @@ -205,8 +231,12 @@ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -243,6 +273,8 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= @@ -256,11 +288,16 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -283,8 +320,11 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= @@ -294,6 +334,12 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +moul.io/u v1.23.0 h1:ZHfDUsUMfRG3e0A7gBYOo8SkKqe02Pc5zuQUVxq4+tg= +moul.io/u v1.23.0/go.mod h1:ytlQ/zt+Sdk+PFGEx+fpTivoa0ieA5yMo6itRswIWNQ= +moul.io/zapconfig v1.4.0 h1:J3ND5J3e/qQ++jlpqdSR1EtDNV+iujtvXgLsjy1uyq8= +moul.io/zapconfig v1.4.0/go.mod h1:bYTa5j7r82yPmSR6i5CcrPSVoWEbdpN7o9IgndSVby8= diff --git a/contribs/gnokeykc/go.mod b/contribs/gnokeykc/go.mod index 22f07943f39..be88a62c795 100644 --- a/contribs/gnokeykc/go.mod +++ b/contribs/gnokeykc/go.mod @@ -43,13 +43,12 @@ require ( github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect go.etcd.io/bbolt v1.3.8 // indirect go.opencensus.io v0.22.5 // indirect - go.uber.org/atomic v1.7.0 // indirect - go.uber.org/multierr v1.9.0 // indirect + go.uber.org/multierr v1.10.0 // indirect golang.org/x/crypto v0.15.0 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.14.0 // indirect golang.org/x/term v0.14.0 // indirect - golang.org/x/tools v0.13.0 // indirect + golang.org/x/tools v0.14.0 // indirect google.golang.org/protobuf v1.31.0 // indirect ) diff --git a/contribs/gnokeykc/go.sum b/contribs/gnokeykc/go.sum index cc1f4dfed88..e29e7563335 100644 --- a/contribs/gnokeykc/go.sum +++ b/contribs/gnokeykc/go.sum @@ -101,8 +101,8 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= @@ -167,7 +167,6 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= @@ -184,10 +183,8 @@ go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= -go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= +go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -253,8 +250,8 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/misc/loop/go.mod b/misc/loop/go.mod index 35baa515932..93287ee871d 100644 --- a/misc/loop/go.mod +++ b/misc/loop/go.mod @@ -40,13 +40,15 @@ require ( go.opencensus.io v0.22.5 // indirect go.uber.org/multierr v1.10.0 // indirect go.uber.org/zap v1.26.0 // indirect + go.uber.org/zap/exp v0.2.0 // indirect golang.org/x/crypto v0.15.0 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/sys v0.14.0 // indirect golang.org/x/term v0.14.0 // indirect - golang.org/x/tools v0.13.0 // indirect + golang.org/x/tools v0.14.0 // indirect google.golang.org/protobuf v1.31.0 // indirect + moul.io/zapconfig v1.4.0 // indirect ) replace github.com/gnolang/gno => ../../ diff --git a/misc/loop/go.sum b/misc/loop/go.sum index d16d9f63ce9..d8fdd3f9fd4 100644 --- a/misc/loop/go.sum +++ b/misc/loop/go.sum @@ -39,6 +39,7 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -97,9 +98,10 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= @@ -117,8 +119,10 @@ github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6 github.com/klauspost/compress v1.12.3 h1:G5AfA94pHPysR56qqrkO2pxEexdDzrpFJ6yt/VqWxVU= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= @@ -144,14 +148,19 @@ github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3v github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/ff/v3 v3.4.0 h1:QBvM/rizZM1cB0p0lGMdmR7HxZeI/ZrBWB4DqLkMUBc= github.com/peterbourgon/ff/v3 v3.4.0/go.mod h1:zjJVUhx+twciwfDl0zBcFzl4dW8axCRyXE/eKY9RztQ= +github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -163,10 +172,12 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/tailscale/depaware v0.0.0-20201214215404-77d1e9757027/go.mod h1:p9lPsd+cx33L3H9nNoecRRxPssFKUwwI50I3pZ0yT+8= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -177,14 +188,23 @@ go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= +go.uber.org/zap/exp v0.2.0 h1:FtGenNNeCATRB3CmB/yEUnjEFeJWpB/pMcy7e2bKPYs= +go.uber.org/zap/exp v0.2.0/go.mod h1:t0gqAIdh1MfKv9EwN/dLwfZnJxe9ITAZN78HEWPFWDQ= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= @@ -193,8 +213,12 @@ golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -231,6 +255,8 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= @@ -244,11 +270,16 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.13.0 h1:Iey4qkscZuv0VvIt8E0neZjtPVQFSc870HQ448QgEmQ= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -271,7 +302,10 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= @@ -281,5 +315,11 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +moul.io/u v1.23.0 h1:ZHfDUsUMfRG3e0A7gBYOo8SkKqe02Pc5zuQUVxq4+tg= +moul.io/u v1.23.0/go.mod h1:ytlQ/zt+Sdk+PFGEx+fpTivoa0ieA5yMo6itRswIWNQ= +moul.io/zapconfig v1.4.0 h1:J3ND5J3e/qQ++jlpqdSR1EtDNV+iujtvXgLsjy1uyq8= +moul.io/zapconfig v1.4.0/go.mod h1:bYTa5j7r82yPmSR6i5CcrPSVoWEbdpN7o9IgndSVby8= From 32603c2ff3d1f47147087abc874c90f4bf7d3211 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 15 Jan 2024 18:50:15 +0100 Subject: [PATCH 11/43] Switch to /exp/log because of go 1.20 --- contribs/gnodev/go.mod | 11 ++--- contribs/gnodev/go.sum | 22 +++++----- contribs/gnodev/main.go | 2 +- contribs/gnodev/pkg/dev/node.go | 6 +-- contribs/gnodev/pkg/rawterm/rawterm.go | 4 +- contribs/gnokeykc/go.mod | 11 ++--- contribs/gnokeykc/go.sum | 22 +++++----- gno.land/cmd/gnoland/start.go | 35 +++++++++------- gno.land/cmd/gnoweb/main.go | 7 +++- gno.land/pkg/gnoland/app.go | 3 +- gno.land/pkg/gnoland/node_inmemory.go | 3 +- gno.land/pkg/gnoweb/gnoweb.go | 3 +- .../pkg/integration/testing_integration.go | 21 ++++------ gno.land/pkg/integration/testing_node.go | 3 +- gno.land/pkg/log/log.go | 20 +++++----- go.mod | 20 ++++++---- go.sum | 27 +++++++------ misc/loop/go.mod | 11 ++--- misc/loop/go.sum | 22 +++++----- .../example/kvstore/persistent_kvstore.go | 3 +- tm2/pkg/bft/blockchain/pool.go | 3 +- tm2/pkg/bft/blockchain/reactor.go | 3 +- tm2/pkg/bft/blockchain/reactor_test.go | 3 +- tm2/pkg/bft/config/config.go | 40 ------------------- tm2/pkg/bft/config/toml.go | 6 --- tm2/pkg/bft/consensus/common_test.go | 3 +- tm2/pkg/bft/consensus/reactor.go | 3 +- tm2/pkg/bft/consensus/reactor_test.go | 3 +- tm2/pkg/bft/consensus/replay.go | 3 +- tm2/pkg/bft/consensus/replay_test.go | 3 +- tm2/pkg/bft/consensus/state.go | 3 +- tm2/pkg/bft/consensus/ticker.go | 3 +- tm2/pkg/bft/consensus/wal_generator.go | 3 +- tm2/pkg/bft/mempool/clist_mempool.go | 3 +- tm2/pkg/bft/mempool/reactor.go | 3 +- tm2/pkg/bft/node/node.go | 3 +- tm2/pkg/bft/privval/signer_dialer_endpoint.go | 3 +- .../bft/privval/signer_listener_endpoint.go | 3 +- .../privval/signer_listener_endpoint_test.go | 3 +- tm2/pkg/bft/privval/utils.go | 3 +- tm2/pkg/bft/rpc/client/localclient.go | 2 +- tm2/pkg/bft/rpc/core/pipe.go | 3 +- tm2/pkg/bft/rpc/lib/rpc_test.go | 14 ------- tm2/pkg/bft/rpc/lib/server/handlers.go | 3 +- tm2/pkg/bft/rpc/lib/server/http_server.go | 3 +- tm2/pkg/bft/state/execution.go | 3 +- tm2/pkg/bft/store/store_test.go | 3 +- tm2/pkg/bft/wal/wal.go | 3 +- tm2/pkg/log/noop.go | 3 +- tm2/pkg/p2p/conn/connection.go | 3 +- tm2/pkg/p2p/peer.go | 3 +- tm2/pkg/p2p/upnp/probe.go | 3 +- tm2/pkg/sdk/auth/keeper.go | 3 +- tm2/pkg/sdk/bank/keeper.go | 3 +- tm2/pkg/sdk/baseapp.go | 3 +- tm2/pkg/sdk/baseapp_test.go | 3 +- tm2/pkg/sdk/context.go | 3 +- tm2/pkg/service/service.go | 3 +- 58 files changed, 207 insertions(+), 213 deletions(-) diff --git a/contribs/gnodev/go.mod b/contribs/gnodev/go.mod index 5ad2c820a16..e727048ee9a 100644 --- a/contribs/gnodev/go.mod +++ b/contribs/gnodev/go.mod @@ -7,7 +7,7 @@ replace github.com/gnolang/gno => ../.. require ( github.com/fsnotify/fsnotify v1.7.0 github.com/gnolang/gno v0.0.0-00010101000000-000000000000 - golang.org/x/term v0.15.0 + golang.org/x/term v0.16.0 ) require ( @@ -53,11 +53,12 @@ require ( go.uber.org/multierr v1.10.0 // indirect go.uber.org/zap v1.24.0 // indirect go.uber.org/zap/exp v0.2.0 // indirect - golang.org/x/crypto v0.15.0 // indirect + golang.org/x/crypto v0.18.0 // indirect + golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/sys v0.15.0 // indirect - golang.org/x/tools v0.14.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/tools v0.17.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect moul.io/zapconfig v1.4.0 // indirect diff --git a/contribs/gnodev/go.sum b/contribs/gnodev/go.sum index ad127089f9b..6e8bc2a22e5 100644 --- a/contribs/gnodev/go.sum +++ b/contribs/gnodev/go.sum @@ -225,9 +225,11 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= -golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= +golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -251,8 +253,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -276,10 +278,10 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -296,8 +298,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= -golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/contribs/gnodev/main.go b/contribs/gnodev/main.go index ea9c3fe2451..87137697135 100644 --- a/contribs/gnodev/main.go +++ b/contribs/gnodev/main.go @@ -61,6 +61,7 @@ additional specified paths.`, cmd.Execute(context.Background(), os.Args[1:]) } + func (c *devCfg) RegisterFlags(fs *flag.FlagSet) { fs.StringVar( &c.webListenerAddr, @@ -89,7 +90,6 @@ func (c *devCfg) RegisterFlags(fs *flag.FlagSet) { defaultDevOptions.noWatch, "do not watch for files change", ) - } func execDev(cfg *devCfg, args []string, io commands.IO) error { diff --git a/contribs/gnodev/pkg/dev/node.go b/contribs/gnodev/pkg/dev/node.go index 495563d793b..6d4af7f670d 100644 --- a/contribs/gnodev/pkg/dev/node.go +++ b/contribs/gnodev/pkg/dev/node.go @@ -17,8 +17,8 @@ import ( "github.com/gnolang/gno/tm2/pkg/crypto" "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/std" - //backup "github.com/gnolang/tx-archive/backup/client" - //restore "github.com/gnolang/tx-archive/restore/client" + // backup "github.com/gnolang/tx-archive/backup/client" + // restore "github.com/gnolang/tx-archive/restore/client" ) const gnoDevChainID = "tendermint_test" // XXX: this is hardcoded and cannot be change bellow @@ -102,7 +102,7 @@ func (d *Node) GetRemoteAddress() string { return d.Node.Config().RPC.ListenAddress } -// UpdatePackages updates the currently known packages. It will be taken into +// UpdatePackages updates the currently known packages. It will be taken into // consideration in the next reload of the node. func (d *Node) UpdatePackages(paths ...string) error { for _, path := range paths { diff --git a/contribs/gnodev/pkg/rawterm/rawterm.go b/contribs/gnodev/pkg/rawterm/rawterm.go index 8f29e88fc92..f6d6e7534e2 100644 --- a/contribs/gnodev/pkg/rawterm/rawterm.go +++ b/contribs/gnodev/pkg/rawterm/rawterm.go @@ -11,9 +11,7 @@ import ( "golang.org/x/term" ) -var ( - CRLF = []byte{'\r', '\n'} -) +var CRLF = []byte{'\r', '\n'} // rawTerminal wraps an io.Writer, converting \n to \r\n type RawTerm struct { diff --git a/contribs/gnokeykc/go.mod b/contribs/gnokeykc/go.mod index be88a62c795..d189152dd06 100644 --- a/contribs/gnokeykc/go.mod +++ b/contribs/gnokeykc/go.mod @@ -44,11 +44,12 @@ require ( go.etcd.io/bbolt v1.3.8 // indirect go.opencensus.io v0.22.5 // indirect go.uber.org/multierr v1.10.0 // indirect - golang.org/x/crypto v0.15.0 // indirect + golang.org/x/crypto v0.18.0 // indirect + golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/sys v0.14.0 // indirect - golang.org/x/term v0.14.0 // indirect - golang.org/x/tools v0.14.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect + golang.org/x/tools v0.17.0 // indirect google.golang.org/protobuf v1.31.0 // indirect ) diff --git a/contribs/gnokeykc/go.sum b/contribs/gnokeykc/go.sum index e29e7563335..e0b002da0e5 100644 --- a/contribs/gnokeykc/go.sum +++ b/contribs/gnokeykc/go.sum @@ -190,9 +190,11 @@ golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= -golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= +golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -212,8 +214,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -235,10 +237,10 @@ golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= -golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -250,8 +252,8 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= -golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index 86f972084ff..cc949837cfb 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -42,6 +42,8 @@ type startCfg struct { txEventStoreType string txEventStorePath string nodeConfigPath string + + logLevel string } func newStartCmd(io commands.IO) *commands.Command { @@ -166,6 +168,13 @@ func (c *startCfg) RegisterFlags(fs *flag.FlagSet) { fmt.Sprintf("path for the file tx event store (required if event store is '%s')", file.EventStoreType), ) + fs.StringVar( + &c.logLevel, + "log-level", + zapcore.DebugLevel.String(), + "log level for the gnoland node,", + ) + // XXX(deprecated): use data-dir instead fs.StringVar( &c.dataDir, @@ -197,26 +206,21 @@ func execStart(c *startCfg, io commands.IO) error { return fmt.Errorf("unable to load node configuration, %w", loadCfgErr) } - var level zapcore.Level - - switch strings.ToLower(cfg.LogLevel) { - case "info": - level = zapcore.InfoLevel - case "error": - level = zapcore.ErrorLevel - case "debug": - level = zapcore.DebugLevel - case "warn": - level = zapcore.WarnLevel - default: - level = zapcore.DebugLevel + // Initialize the log level + logLevel, err := zapcore.ParseLevel(c.logLevel) + if err != nil { + return fmt.Errorf("unable to parse log level, %w", err) } - logger, err := log.NewLogger(io.Out(), level) + // Initialize the zap logger + zapLogger, err := log.NewZapLogger(io.Out(), logLevel) if err != nil { return err } + // Wrap the zap logger + logger := log.ZapLoggerToSlog(zapLogger) + // Write genesis file if missing. genesisFilePath := filepath.Join(dataDir, cfg.Genesis) @@ -268,6 +272,9 @@ func execStart(c *startCfg, io commands.IO) error { if gnoNode.IsRunning() { _ = gnoNode.Stop() } + + // Sync the logger before exiting + _ = zapLogger.Sync() }) // Run forever diff --git a/gno.land/cmd/gnoweb/main.go b/gno.land/cmd/gnoweb/main.go index e8488ecc56b..52691605a62 100644 --- a/gno.land/cmd/gnoweb/main.go +++ b/gno.land/cmd/gnoweb/main.go @@ -42,11 +42,13 @@ func runMain(args []string) error { return err } - logger, err := log.NewLogger(os.Stdout, zapcore.DebugLevel) + zapLogger, err := log.NewZapLogger(os.Stdout, zapcore.DebugLevel) if err != nil { return err } + logger := log.ZapLoggerToSlog(zapLogger) + logger.Info("Running", "listener", "http://"+bindAddress) server := &http.Server{ Addr: bindAddress, @@ -57,5 +59,6 @@ func runMain(args []string) error { if err := server.ListenAndServe(); err != nil { logger.Error("HTTP server stopped", " error:", err) } - return nil + + return zapLogger.Sync() } diff --git a/gno.land/pkg/gnoland/app.go b/gno.land/pkg/gnoland/app.go index 007ec4a7633..0b0488fc98e 100644 --- a/gno.land/pkg/gnoland/app.go +++ b/gno.land/pkg/gnoland/app.go @@ -2,9 +2,10 @@ package gnoland import ( "fmt" - "log/slog" "path/filepath" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/gno.land/pkg/sdk/vm" "github.com/gnolang/gno/gnovm/pkg/gnoenv" "github.com/gnolang/gno/tm2/pkg/amino" diff --git a/gno.land/pkg/gnoland/node_inmemory.go b/gno.land/pkg/gnoland/node_inmemory.go index 6301883128a..2db8544a909 100644 --- a/gno.land/pkg/gnoland/node_inmemory.go +++ b/gno.land/pkg/gnoland/node_inmemory.go @@ -2,10 +2,11 @@ package gnoland import ( "fmt" - "log/slog" "sync" "time" + "golang.org/x/exp/slog" + abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" tmcfg "github.com/gnolang/gno/tm2/pkg/bft/config" "github.com/gnolang/gno/tm2/pkg/bft/node" diff --git a/gno.land/pkg/gnoweb/gnoweb.go b/gno.land/pkg/gnoweb/gnoweb.go index 4854ed4791e..451389c7d73 100644 --- a/gno.land/pkg/gnoweb/gnoweb.go +++ b/gno.land/pkg/gnoweb/gnoweb.go @@ -7,7 +7,6 @@ import ( "fmt" "io" "io/fs" - "log/slog" "net/http" "os" "path/filepath" @@ -15,6 +14,8 @@ import ( "strings" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/amino" abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" "github.com/gnolang/gno/tm2/pkg/bft/rpc/client" diff --git a/gno.land/pkg/integration/testing_integration.go b/gno.land/pkg/integration/testing_integration.go index 6abaf810412..e289c369dc7 100644 --- a/gno.land/pkg/integration/testing_integration.go +++ b/gno.land/pkg/integration/testing_integration.go @@ -5,13 +5,14 @@ import ( "errors" "fmt" "hash/crc32" - "log/slog" "os" "path/filepath" "strconv" "strings" "testing" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/gno.land/pkg/gnoland" "github.com/gnolang/gno/gno.land/pkg/log" "github.com/gnolang/gno/gnovm/pkg/gnoenv" @@ -312,20 +313,14 @@ func getTestingLogger(env *testscript.Env, logname string) (*slog.Logger, error) } }) - var level zapcore.Level - - switch lvl := os.Getenv("LOG_LEVEL"); strings.ToLower(lvl) { - case "error": - level = zapcore.ErrorLevel - case "debug": - level = zapcore.DebugLevel - case "warn": - level = zapcore.WarnLevel - default: - level = zapcore.InfoLevel + // Initialize the logger + logLevel, err := zapcore.ParseLevel(strings.ToLower(os.Getenv("LOG_LEVEL"))) + if err != nil { + return nil, fmt.Errorf("unable to parse log level, %w", err) } - logger, _ := log.NewLogger(f, level) + zapLogger, _ := log.NewZapLogger(f, logLevel) + logger := log.ZapLoggerToSlog(zapLogger) env.T().Log("starting logger: %q", path) return logger, nil diff --git a/gno.land/pkg/integration/testing_node.go b/gno.land/pkg/integration/testing_node.go index f0a78ceb7b2..b0aa9f7c2af 100644 --- a/gno.land/pkg/integration/testing_node.go +++ b/gno.land/pkg/integration/testing_node.go @@ -1,10 +1,11 @@ package integration import ( - "log/slog" "path/filepath" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/gno.land/pkg/gnoland" abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" tmcfg "github.com/gnolang/gno/tm2/pkg/bft/config" diff --git a/gno.land/pkg/log/log.go b/gno.land/pkg/log/log.go index f179b5d4573..5c236bc5e7b 100644 --- a/gno.land/pkg/log/log.go +++ b/gno.land/pkg/log/log.go @@ -3,9 +3,10 @@ package log import ( "fmt" "io" - "log/slog" "net/url" + "golang.org/x/exp/slog" + "go.uber.org/zap" "go.uber.org/zap/exp/zapslog" "go.uber.org/zap/zapcore" @@ -26,7 +27,8 @@ func (cw customWriter) Sync() error { return nil } -func NewLogger(w io.Writer, level zapcore.Level) (*slog.Logger, error) { +// NewZapLogger creates a new zap logger instance, for the given level and writer +func NewZapLogger(w io.Writer, level zapcore.Level) (*zap.Logger, error) { if err := zap.RegisterSink( customWriterKey, func(u *url.URL) (zap.Sink, error) { @@ -45,14 +47,10 @@ func NewLogger(w io.Writer, level zapcore.Level) (*slog.Logger, error) { return nil, fmt.Errorf("unable to build logger, %w", err) } - defer zapLogger.Sync() - - handler := zapslog.NewHandler( - zapLogger.Core(), - &zapslog.HandlerOptions{ - LoggerName: "gno.land", - }, - ) + return zapLogger, nil +} - return slog.New(handler), nil +// ZapLoggerToSlog wraps the given zap logger to an log/slog Logger +func ZapLoggerToSlog(logger *zap.Logger) *slog.Logger { + return slog.New(zapslog.NewHandler(logger.Core())) } diff --git a/go.mod b/go.mod index 638650e9321..d704e9b6bb0 100644 --- a/go.mod +++ b/go.mod @@ -32,17 +32,23 @@ require ( go.etcd.io/bbolt v1.3.8 go.uber.org/multierr v1.10.0 go.uber.org/zap v1.24.0 - go.uber.org/zap/exp v0.2.0 - golang.org/x/crypto v0.15.0 + // This version of zap/exp is a requirement until we + // upgrade to go 1.21 (https://github.com/uber-go/zap/blob/master/exp/CHANGELOG.md) + go.uber.org/zap/exp v0.1.0 + golang.org/x/crypto v0.18.0 golang.org/x/mod v0.14.0 - golang.org/x/net v0.17.0 - golang.org/x/term v0.14.0 - golang.org/x/tools v0.14.0 + golang.org/x/net v0.20.0 + golang.org/x/term v0.16.0 + golang.org/x/tools v0.17.0 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 moul.io/zapconfig v1.4.0 ) +require golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 + +require go.uber.org/atomic v1.10.0 // indirect + require ( github.com/btcsuite/btcd/btcec/v2 v2.3.2 github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 // indirect @@ -59,7 +65,6 @@ require ( github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/flatbuffers v1.12.1 // indirect - github.com/google/go-cmp v0.5.8 // indirect github.com/gorilla/securecookie v1.1.1 // indirect github.com/gorilla/sessions v1.2.1 // indirect github.com/klauspost/compress v1.12.3 // indirect @@ -68,7 +73,6 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/rivo/uniseg v0.4.3 // indirect go.opencensus.io v0.22.5 // indirect - go.uber.org/atomic v1.10.0 // indirect - golang.org/x/sys v0.14.0 // indirect + golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect ) diff --git a/go.sum b/go.sum index 7dff0a9f61d..8b0cc535d6b 100644 --- a/go.sum +++ b/go.sum @@ -108,7 +108,6 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= @@ -237,8 +236,8 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= -go.uber.org/zap/exp v0.2.0 h1:FtGenNNeCATRB3CmB/yEUnjEFeJWpB/pMcy7e2bKPYs= -go.uber.org/zap/exp v0.2.0/go.mod h1:t0gqAIdh1MfKv9EwN/dLwfZnJxe9ITAZN78HEWPFWDQ= +go.uber.org/zap/exp v0.1.0 h1:Ol9zQNvAEAgFHSBiR5LlwS9Xq8u5QF+7HBwNHUB8rcI= +go.uber.org/zap/exp v0.1.0/go.mod h1:z/0T3As39ttolxZGOsvk1OEvQfwwfTZpmV9YTp+VAkc= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= @@ -246,9 +245,11 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= -golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= +golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -275,8 +276,8 @@ golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -307,13 +308,13 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= -golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -334,8 +335,8 @@ golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= -golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/misc/loop/go.mod b/misc/loop/go.mod index 93287ee871d..659532a3b19 100644 --- a/misc/loop/go.mod +++ b/misc/loop/go.mod @@ -41,12 +41,13 @@ require ( go.uber.org/multierr v1.10.0 // indirect go.uber.org/zap v1.26.0 // indirect go.uber.org/zap/exp v0.2.0 // indirect - golang.org/x/crypto v0.15.0 // indirect + golang.org/x/crypto v0.18.0 // indirect + golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/sys v0.14.0 // indirect - golang.org/x/term v0.14.0 // indirect - golang.org/x/tools v0.14.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/term v0.16.0 // indirect + golang.org/x/tools v0.17.0 // indirect google.golang.org/protobuf v1.31.0 // indirect moul.io/zapconfig v1.4.0 // indirect ) diff --git a/misc/loop/go.sum b/misc/loop/go.sum index d8fdd3f9fd4..3f5949be95f 100644 --- a/misc/loop/go.sum +++ b/misc/loop/go.sum @@ -207,9 +207,11 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= -golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 h1:hNQpMuAJe5CtcUqCXaWga3FHu+kQvCqcsoVaQgSV60o= +golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -233,8 +235,8 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -258,10 +260,10 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= -golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= -golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -278,8 +280,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= -golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/tm2/pkg/bft/abci/example/kvstore/persistent_kvstore.go b/tm2/pkg/bft/abci/example/kvstore/persistent_kvstore.go index 0e31f83b3c0..5042fcf9313 100644 --- a/tm2/pkg/bft/abci/example/kvstore/persistent_kvstore.go +++ b/tm2/pkg/bft/abci/example/kvstore/persistent_kvstore.go @@ -3,10 +3,11 @@ package kvstore import ( "encoding/base64" "fmt" - "log/slog" "strconv" "strings" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/amino" "github.com/gnolang/gno/tm2/pkg/bft/abci/example/errors" abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" diff --git a/tm2/pkg/bft/blockchain/pool.go b/tm2/pkg/bft/blockchain/pool.go index 5a82eb4d1d6..a3a24d265a8 100644 --- a/tm2/pkg/bft/blockchain/pool.go +++ b/tm2/pkg/bft/blockchain/pool.go @@ -3,12 +3,13 @@ package blockchain import ( "errors" "fmt" - "log/slog" "math" "sync" "sync/atomic" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/flow" "github.com/gnolang/gno/tm2/pkg/log" diff --git a/tm2/pkg/bft/blockchain/reactor.go b/tm2/pkg/bft/blockchain/reactor.go index 09e1225b717..bf5f7ea71b3 100644 --- a/tm2/pkg/bft/blockchain/reactor.go +++ b/tm2/pkg/bft/blockchain/reactor.go @@ -3,10 +3,11 @@ package blockchain import ( "errors" "fmt" - "log/slog" "reflect" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/amino" sm "github.com/gnolang/gno/tm2/pkg/bft/state" "github.com/gnolang/gno/tm2/pkg/bft/store" diff --git a/tm2/pkg/bft/blockchain/reactor_test.go b/tm2/pkg/bft/blockchain/reactor_test.go index b7ce7c19ae6..368c3e88816 100644 --- a/tm2/pkg/bft/blockchain/reactor_test.go +++ b/tm2/pkg/bft/blockchain/reactor_test.go @@ -1,12 +1,13 @@ package blockchain import ( - "log/slog" "os" "sort" "testing" "time" + "golang.org/x/exp/slog" + "github.com/stretchr/testify/assert" abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" diff --git a/tm2/pkg/bft/config/config.go b/tm2/pkg/bft/config/config.go index 3785759c960..0b78c786737 100644 --- a/tm2/pkg/bft/config/config.go +++ b/tm2/pkg/bft/config/config.go @@ -115,9 +115,6 @@ func (cfg *Config) EnsureDirs() { // ValidateBasic performs basic validation (checking param bounds, etc.) and // returns an error if any check fails. func (cfg *Config) ValidateBasic() error { - if err := cfg.BaseConfig.ValidateBasic(); err != nil { - return err - } if err := cfg.RPC.ValidateBasic(); err != nil { return errors.Wrap(err, "Error in [rpc] section") } @@ -136,13 +133,6 @@ func (cfg *Config) ValidateBasic() error { // ----------------------------------------------------------------------------- // BaseConfig -const ( - // LogFormatPlain is a format for colored text - LogFormatPlain = "plain" - // LogFormatJSON is a format for json output - LogFormatJSON = "json" -) - var ( defaultConfigDir = "config" defaultDataDir = "data" @@ -202,12 +192,6 @@ type BaseConfig struct { // Database directory DBPath string `toml:"db_dir"` - // Output level for logging - LogLevel string `toml:"log_level"` - - // Output format: 'plain' (colored text) or 'json' - LogFormat string `toml:"log_format"` - // Path to the JSON file containing the initial validator set and other meta data Genesis string `toml:"genesis_file"` @@ -245,8 +229,6 @@ func DefaultBaseConfig() BaseConfig { Moniker: defaultMoniker, ProxyApp: "tcp://127.0.0.1:26658", ABCI: "socket", - LogLevel: DefaultPackageLogLevels(), - LogFormat: LogFormatPlain, ProfListenAddress: "", FastSyncMode: true, FilterPeers: false, @@ -294,28 +276,6 @@ func (cfg BaseConfig) DBDir() string { return join(cfg.RootDir, cfg.DBPath) } -// ValidateBasic performs basic validation (checking param bounds, etc.) and -// returns an error if any check fails. -func (cfg BaseConfig) ValidateBasic() error { - switch cfg.LogFormat { - case LogFormatPlain, LogFormatJSON: - default: - return errors.New("unknown log_format (must be 'plain' or 'json')") - } - return nil -} - -// DefaultLogLevel returns a default log level of "error" -func DefaultLogLevel() string { - return "error" -} - -// DefaultPackageLogLevels returns a default log level setting so all packages -// log at "error", while the `state` and `main` packages log at "info" -func DefaultPackageLogLevels() string { - return fmt.Sprintf("main:info,state:info,*:%s", DefaultLogLevel()) -} - var defaultMoniker = getDefaultMoniker() // getDefaultMoniker returns a default moniker, which is the host name. If runtime diff --git a/tm2/pkg/bft/config/toml.go b/tm2/pkg/bft/config/toml.go index c7e94c735f2..8042d2516d5 100644 --- a/tm2/pkg/bft/config/toml.go +++ b/tm2/pkg/bft/config/toml.go @@ -95,12 +95,6 @@ db_backend = "{{ .BaseConfig.DBBackend }}" # Database directory db_dir = "{{ js .BaseConfig.DBPath }}" -# Output level for logging, including package level options -log_level = "{{ .BaseConfig.LogLevel }}" - -# Output format: 'plain' (colored text) or 'json' -log_format = "{{ .BaseConfig.LogFormat }}" - ##### additional base config options ##### # Path to the JSON file containing the initial validator set and other meta data diff --git a/tm2/pkg/bft/consensus/common_test.go b/tm2/pkg/bft/consensus/common_test.go index c95c104ce3a..4a0a4eebf03 100644 --- a/tm2/pkg/bft/consensus/common_test.go +++ b/tm2/pkg/bft/consensus/common_test.go @@ -3,7 +3,6 @@ package consensus import ( "bytes" "fmt" - "log/slog" "os" "path" "path/filepath" @@ -12,6 +11,8 @@ import ( "testing" "time" + "golang.org/x/exp/slog" + abcicli "github.com/gnolang/gno/tm2/pkg/bft/abci/client" "github.com/gnolang/gno/tm2/pkg/bft/abci/example/counter" "github.com/gnolang/gno/tm2/pkg/bft/abci/example/kvstore" diff --git a/tm2/pkg/bft/consensus/reactor.go b/tm2/pkg/bft/consensus/reactor.go index ed7a6ae6547..27ead3f08f0 100644 --- a/tm2/pkg/bft/consensus/reactor.go +++ b/tm2/pkg/bft/consensus/reactor.go @@ -2,11 +2,12 @@ package consensus import ( "fmt" - "log/slog" "reflect" "sync" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/amino" cstypes "github.com/gnolang/gno/tm2/pkg/bft/consensus/types" sm "github.com/gnolang/gno/tm2/pkg/bft/state" diff --git a/tm2/pkg/bft/consensus/reactor_test.go b/tm2/pkg/bft/consensus/reactor_test.go index 0430d912f8a..fef3b6dfc5d 100644 --- a/tm2/pkg/bft/consensus/reactor_test.go +++ b/tm2/pkg/bft/consensus/reactor_test.go @@ -2,11 +2,12 @@ package consensus import ( "fmt" - "log/slog" "sync" "testing" "time" + "golang.org/x/exp/slog" + "github.com/stretchr/testify/assert" "github.com/gnolang/gno/tm2/pkg/amino" diff --git a/tm2/pkg/bft/consensus/replay.go b/tm2/pkg/bft/consensus/replay.go index 5fe24229007..103cf67f512 100644 --- a/tm2/pkg/bft/consensus/replay.go +++ b/tm2/pkg/bft/consensus/replay.go @@ -5,10 +5,11 @@ import ( "errors" "fmt" "io" - "log/slog" "reflect" "time" + "golang.org/x/exp/slog" + abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" cstypes "github.com/gnolang/gno/tm2/pkg/bft/consensus/types" "github.com/gnolang/gno/tm2/pkg/bft/mempool/mock" diff --git a/tm2/pkg/bft/consensus/replay_test.go b/tm2/pkg/bft/consensus/replay_test.go index 390b7263268..136327d6778 100644 --- a/tm2/pkg/bft/consensus/replay_test.go +++ b/tm2/pkg/bft/consensus/replay_test.go @@ -6,7 +6,6 @@ import ( "errors" "fmt" "io" - "log/slog" "os" "path/filepath" "runtime" @@ -14,6 +13,8 @@ import ( "testing" "time" + "golang.org/x/exp/slog" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/tm2/pkg/bft/consensus/state.go b/tm2/pkg/bft/consensus/state.go index e6b4ace8d2f..c5486bb38a4 100644 --- a/tm2/pkg/bft/consensus/state.go +++ b/tm2/pkg/bft/consensus/state.go @@ -4,12 +4,13 @@ import ( "bytes" goerrors "errors" "fmt" - "log/slog" "reflect" "runtime/debug" "sync" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/amino" cnscfg "github.com/gnolang/gno/tm2/pkg/bft/consensus/config" cstypes "github.com/gnolang/gno/tm2/pkg/bft/consensus/types" diff --git a/tm2/pkg/bft/consensus/ticker.go b/tm2/pkg/bft/consensus/ticker.go index 8448e014260..4e664304c92 100644 --- a/tm2/pkg/bft/consensus/ticker.go +++ b/tm2/pkg/bft/consensus/ticker.go @@ -1,9 +1,10 @@ package consensus import ( - "log/slog" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/service" ) diff --git a/tm2/pkg/bft/consensus/wal_generator.go b/tm2/pkg/bft/consensus/wal_generator.go index fd322f221fe..8a737452425 100644 --- a/tm2/pkg/bft/consensus/wal_generator.go +++ b/tm2/pkg/bft/consensus/wal_generator.go @@ -5,11 +5,12 @@ import ( "bytes" "fmt" "io" - "log/slog" "path/filepath" "testing" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/bft/abci/example/kvstore" cfg "github.com/gnolang/gno/tm2/pkg/bft/config" "github.com/gnolang/gno/tm2/pkg/bft/mempool/mock" diff --git a/tm2/pkg/bft/mempool/clist_mempool.go b/tm2/pkg/bft/mempool/clist_mempool.go index e7a356d1ad3..da0a2c22c11 100644 --- a/tm2/pkg/bft/mempool/clist_mempool.go +++ b/tm2/pkg/bft/mempool/clist_mempool.go @@ -5,11 +5,12 @@ import ( "container/list" "crypto/sha256" "fmt" - "log/slog" "sync" "sync/atomic" "time" + "golang.org/x/exp/slog" + auto "github.com/gnolang/gno/tm2/pkg/autofile" abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" cfg "github.com/gnolang/gno/tm2/pkg/bft/mempool/config" diff --git a/tm2/pkg/bft/mempool/reactor.go b/tm2/pkg/bft/mempool/reactor.go index 3ef85b80a21..7147c11169b 100644 --- a/tm2/pkg/bft/mempool/reactor.go +++ b/tm2/pkg/bft/mempool/reactor.go @@ -2,12 +2,13 @@ package mempool import ( "fmt" - "log/slog" "math" "reflect" "sync" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/amino" cfg "github.com/gnolang/gno/tm2/pkg/bft/mempool/config" "github.com/gnolang/gno/tm2/pkg/bft/types" diff --git a/tm2/pkg/bft/node/node.go b/tm2/pkg/bft/node/node.go index 4ee0eb4ba8d..a6c67fa2485 100644 --- a/tm2/pkg/bft/node/node.go +++ b/tm2/pkg/bft/node/node.go @@ -5,13 +5,14 @@ package node import ( "fmt" - "log/slog" "net" "net/http" _ "net/http/pprof" //nolint:gosec "strings" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/bft/state/eventstore/file" "github.com/rs/cors" diff --git a/tm2/pkg/bft/privval/signer_dialer_endpoint.go b/tm2/pkg/bft/privval/signer_dialer_endpoint.go index fa4f5891fc1..275c406919f 100644 --- a/tm2/pkg/bft/privval/signer_dialer_endpoint.go +++ b/tm2/pkg/bft/privval/signer_dialer_endpoint.go @@ -1,9 +1,10 @@ package privval import ( - "log/slog" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/service" ) diff --git a/tm2/pkg/bft/privval/signer_listener_endpoint.go b/tm2/pkg/bft/privval/signer_listener_endpoint.go index df28d7d3722..7ce42534290 100644 --- a/tm2/pkg/bft/privval/signer_listener_endpoint.go +++ b/tm2/pkg/bft/privval/signer_listener_endpoint.go @@ -2,11 +2,12 @@ package privval import ( "fmt" - "log/slog" "net" "sync" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/service" ) diff --git a/tm2/pkg/bft/privval/signer_listener_endpoint_test.go b/tm2/pkg/bft/privval/signer_listener_endpoint_test.go index 907efe4af77..843ce74a1ad 100644 --- a/tm2/pkg/bft/privval/signer_listener_endpoint_test.go +++ b/tm2/pkg/bft/privval/signer_listener_endpoint_test.go @@ -1,11 +1,12 @@ package privval import ( - "log/slog" "net" "testing" "time" + "golang.org/x/exp/slog" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/tm2/pkg/bft/privval/utils.go b/tm2/pkg/bft/privval/utils.go index c759d9dde9d..904474ba4f7 100644 --- a/tm2/pkg/bft/privval/utils.go +++ b/tm2/pkg/bft/privval/utils.go @@ -2,9 +2,10 @@ package privval import ( "fmt" - "log/slog" "net" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/crypto/ed25519" "github.com/gnolang/gno/tm2/pkg/errors" osm "github.com/gnolang/gno/tm2/pkg/os" diff --git a/tm2/pkg/bft/rpc/client/localclient.go b/tm2/pkg/bft/rpc/client/localclient.go index cdd2cd31bb1..15e2b916c71 100644 --- a/tm2/pkg/bft/rpc/client/localclient.go +++ b/tm2/pkg/bft/rpc/client/localclient.go @@ -1,7 +1,7 @@ package client import ( - "log/slog" + "golang.org/x/exp/slog" nm "github.com/gnolang/gno/tm2/pkg/bft/node" "github.com/gnolang/gno/tm2/pkg/bft/rpc/core" diff --git a/tm2/pkg/bft/rpc/core/pipe.go b/tm2/pkg/bft/rpc/core/pipe.go index 01d558f0b2b..977dfd54e1f 100644 --- a/tm2/pkg/bft/rpc/core/pipe.go +++ b/tm2/pkg/bft/rpc/core/pipe.go @@ -2,7 +2,8 @@ package core import ( "fmt" - "log/slog" + + "golang.org/x/exp/slog" "github.com/gnolang/gno/tm2/pkg/bft/consensus" cnscfg "github.com/gnolang/gno/tm2/pkg/bft/consensus/config" diff --git a/tm2/pkg/bft/rpc/lib/rpc_test.go b/tm2/pkg/bft/rpc/lib/rpc_test.go index d6694c6a6bf..ea59e055c84 100644 --- a/tm2/pkg/bft/rpc/lib/rpc_test.go +++ b/tm2/pkg/bft/rpc/lib/rpc_test.go @@ -15,7 +15,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/gnolang/gno/tm2/pkg/colors" "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/random" @@ -88,19 +87,6 @@ func TestMain(m *testing.M) { os.Exit(code) } -var colorFn = func(keyvals ...interface{}) colors.Color { - for i := 0; i < len(keyvals)-1; i += 2 { - if keyvals[i] == "socket" { - if keyvals[i+1] == "tcp" { - return colors.Blue - } else if keyvals[i+1] == "unix" { - return colors.Cyan - } - } - } - return colors.None -} - // launch unix and tcp servers func setup() { logger := log.NewNoopLogger() diff --git a/tm2/pkg/bft/rpc/lib/server/handlers.go b/tm2/pkg/bft/rpc/lib/server/handlers.go index 776648f6886..1df5976f858 100644 --- a/tm2/pkg/bft/rpc/lib/server/handlers.go +++ b/tm2/pkg/bft/rpc/lib/server/handlers.go @@ -7,7 +7,6 @@ import ( "encoding/json" "fmt" "io" - "log/slog" "net/http" "reflect" "runtime/debug" @@ -15,6 +14,8 @@ import ( "strings" "time" + "golang.org/x/exp/slog" + "github.com/gorilla/websocket" "github.com/gnolang/gno/tm2/pkg/amino" diff --git a/tm2/pkg/bft/rpc/lib/server/http_server.go b/tm2/pkg/bft/rpc/lib/server/http_server.go index 23ac851512f..102a8203ac5 100644 --- a/tm2/pkg/bft/rpc/lib/server/http_server.go +++ b/tm2/pkg/bft/rpc/lib/server/http_server.go @@ -5,13 +5,14 @@ import ( "bufio" "encoding/json" "fmt" - "log/slog" "net" "net/http" "runtime/debug" "strings" "time" + "golang.org/x/exp/slog" + "golang.org/x/net/netutil" types "github.com/gnolang/gno/tm2/pkg/bft/rpc/lib/types" diff --git a/tm2/pkg/bft/state/execution.go b/tm2/pkg/bft/state/execution.go index 00660646b6e..d831fc3678e 100644 --- a/tm2/pkg/bft/state/execution.go +++ b/tm2/pkg/bft/state/execution.go @@ -2,7 +2,8 @@ package state import ( "fmt" - "log/slog" + + "golang.org/x/exp/slog" "github.com/gnolang/gno/tm2/pkg/amino" abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" diff --git a/tm2/pkg/bft/store/store_test.go b/tm2/pkg/bft/store/store_test.go index 547069bc8a8..6b5dd8a96bb 100644 --- a/tm2/pkg/bft/store/store_test.go +++ b/tm2/pkg/bft/store/store_test.go @@ -2,13 +2,14 @@ package store import ( "fmt" - "log/slog" "os" "runtime/debug" "strings" "testing" "time" + "golang.org/x/exp/slog" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/tm2/pkg/bft/wal/wal.go b/tm2/pkg/bft/wal/wal.go index 2424f45dfd2..26f3deeb49c 100644 --- a/tm2/pkg/bft/wal/wal.go +++ b/tm2/pkg/bft/wal/wal.go @@ -8,10 +8,11 @@ import ( "fmt" "hash/crc32" "io" - "log/slog" "path/filepath" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/amino" auto "github.com/gnolang/gno/tm2/pkg/autofile" tmtime "github.com/gnolang/gno/tm2/pkg/bft/types/time" diff --git a/tm2/pkg/log/noop.go b/tm2/pkg/log/noop.go index 40656d941e1..b7c465ede0f 100644 --- a/tm2/pkg/log/noop.go +++ b/tm2/pkg/log/noop.go @@ -2,7 +2,8 @@ package log import ( "context" - "log/slog" + + "golang.org/x/exp/slog" ) // NewNoopLogger returns a new no-op logger diff --git a/tm2/pkg/p2p/conn/connection.go b/tm2/pkg/p2p/conn/connection.go index 41b6a06629e..7f0cf39fe5f 100644 --- a/tm2/pkg/p2p/conn/connection.go +++ b/tm2/pkg/p2p/conn/connection.go @@ -5,7 +5,6 @@ import ( goerrors "errors" "fmt" "io" - "log/slog" "math" "net" "reflect" @@ -14,6 +13,8 @@ import ( "sync/atomic" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/amino" "github.com/gnolang/gno/tm2/pkg/errors" "github.com/gnolang/gno/tm2/pkg/flow" diff --git a/tm2/pkg/p2p/peer.go b/tm2/pkg/p2p/peer.go index ef2ddcf2c25..11814b585c1 100644 --- a/tm2/pkg/p2p/peer.go +++ b/tm2/pkg/p2p/peer.go @@ -2,9 +2,10 @@ package p2p import ( "fmt" - "log/slog" "net" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/cmap" connm "github.com/gnolang/gno/tm2/pkg/p2p/conn" "github.com/gnolang/gno/tm2/pkg/service" diff --git a/tm2/pkg/p2p/upnp/probe.go b/tm2/pkg/p2p/upnp/probe.go index 29480e7cecc..29498124aa7 100644 --- a/tm2/pkg/p2p/upnp/probe.go +++ b/tm2/pkg/p2p/upnp/probe.go @@ -2,9 +2,10 @@ package upnp import ( "fmt" - "log/slog" "net" "time" + + "golang.org/x/exp/slog" ) type UPNPCapabilities struct { diff --git a/tm2/pkg/sdk/auth/keeper.go b/tm2/pkg/sdk/auth/keeper.go index e43b5389844..405256c6877 100644 --- a/tm2/pkg/sdk/auth/keeper.go +++ b/tm2/pkg/sdk/auth/keeper.go @@ -2,7 +2,8 @@ package auth import ( "fmt" - "log/slog" + + "golang.org/x/exp/slog" "github.com/gnolang/gno/tm2/pkg/amino" "github.com/gnolang/gno/tm2/pkg/crypto" diff --git a/tm2/pkg/sdk/bank/keeper.go b/tm2/pkg/sdk/bank/keeper.go index 5d3699c99ef..87791258108 100644 --- a/tm2/pkg/sdk/bank/keeper.go +++ b/tm2/pkg/sdk/bank/keeper.go @@ -2,7 +2,8 @@ package bank import ( "fmt" - "log/slog" + + "golang.org/x/exp/slog" "github.com/gnolang/gno/tm2/pkg/crypto" "github.com/gnolang/gno/tm2/pkg/sdk" diff --git a/tm2/pkg/sdk/baseapp.go b/tm2/pkg/sdk/baseapp.go index 1f62f53f81a..e564435456a 100644 --- a/tm2/pkg/sdk/baseapp.go +++ b/tm2/pkg/sdk/baseapp.go @@ -2,13 +2,14 @@ package sdk import ( "fmt" - "log/slog" "os" "runtime/debug" "sort" "strings" "syscall" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/amino" abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" bft "github.com/gnolang/gno/tm2/pkg/bft/types" diff --git a/tm2/pkg/sdk/baseapp_test.go b/tm2/pkg/sdk/baseapp_test.go index 403b2521b8f..1d8e73acc8d 100644 --- a/tm2/pkg/sdk/baseapp_test.go +++ b/tm2/pkg/sdk/baseapp_test.go @@ -4,11 +4,12 @@ import ( "bytes" "encoding/binary" "fmt" - "log/slog" "os" "reflect" "testing" + "golang.org/x/exp/slog" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" diff --git a/tm2/pkg/sdk/context.go b/tm2/pkg/sdk/context.go index 0e1021e0174..c208a3e2e75 100644 --- a/tm2/pkg/sdk/context.go +++ b/tm2/pkg/sdk/context.go @@ -2,9 +2,10 @@ package sdk import ( "context" - "log/slog" "time" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/amino" abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" "github.com/gnolang/gno/tm2/pkg/store" diff --git a/tm2/pkg/service/service.go b/tm2/pkg/service/service.go index 05f7a4f4ae6..2a9fa0c3bfc 100644 --- a/tm2/pkg/service/service.go +++ b/tm2/pkg/service/service.go @@ -3,9 +3,10 @@ package service import ( "errors" "fmt" - "log/slog" "sync/atomic" + "golang.org/x/exp/slog" + "github.com/gnolang/gno/tm2/pkg/log" ) From 71787aa3f6ffcf831c9647c3512b1d1da7d14ea9 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 15 Jan 2024 19:02:27 +0100 Subject: [PATCH 12/43] Update gnodev logger usage: --- contribs/gnodev/go.mod | 2 +- contribs/gnodev/pkg/dev/node.go | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contribs/gnodev/go.mod b/contribs/gnodev/go.mod index e727048ee9a..b369937a8e0 100644 --- a/contribs/gnodev/go.mod +++ b/contribs/gnodev/go.mod @@ -7,6 +7,7 @@ replace github.com/gnolang/gno => ../.. require ( github.com/fsnotify/fsnotify v1.7.0 github.com/gnolang/gno v0.0.0-00010101000000-000000000000 + golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 golang.org/x/term v0.16.0 ) @@ -54,7 +55,6 @@ require ( go.uber.org/zap v1.24.0 // indirect go.uber.org/zap/exp v0.2.0 // indirect golang.org/x/crypto v0.18.0 // indirect - golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.20.0 // indirect golang.org/x/sys v0.16.0 // indirect diff --git a/contribs/gnodev/pkg/dev/node.go b/contribs/gnodev/pkg/dev/node.go index 6d4af7f670d..4f33518ad7a 100644 --- a/contribs/gnodev/pkg/dev/node.go +++ b/contribs/gnodev/pkg/dev/node.go @@ -15,8 +15,8 @@ import ( "github.com/gnolang/gno/tm2/pkg/bft/node" bft "github.com/gnolang/gno/tm2/pkg/bft/types" "github.com/gnolang/gno/tm2/pkg/crypto" - "github.com/gnolang/gno/tm2/pkg/log" "github.com/gnolang/gno/tm2/pkg/std" + "golang.org/x/exp/slog" // backup "github.com/gnolang/tx-archive/backup/client" // restore "github.com/gnolang/tx-archive/restore/client" ) @@ -27,7 +27,7 @@ const gnoDevChainID = "tendermint_test" // XXX: this is hardcoded and cannot be type Node struct { *node.Node - logger log.Logger + logger *slog.Logger pkgs PkgsMap // path -> pkg } @@ -42,7 +42,7 @@ var ( } ) -func NewDevNode(ctx context.Context, logger log.Logger, pkgslist []string) (*Node, error) { +func NewDevNode(ctx context.Context, logger *slog.Logger, pkgslist []string) (*Node, error) { mpkgs, err := newPkgsMap(pkgslist) if err != nil { return nil, fmt.Errorf("unable map pkgs list: %w", err) @@ -403,7 +403,7 @@ func (pm PkgsMap) Load(creator bft.Address, fee std.Fee, deposit std.Coins) ([]s return txs, nil } -func newNode(logger log.Logger, genesis gnoland.GnoGenesisState) (*node.Node, error) { +func newNode(logger *slog.Logger, genesis gnoland.GnoGenesisState) (*node.Node, error) { rootdir := gnoenv.RootDir() nodeConfig := gnoland.NewDefaultInMemoryNodeConfig(rootdir) From 28bebde1e62408103ef8694c5aea9e0366f48943 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 15 Jan 2024 19:10:14 +0100 Subject: [PATCH 13/43] Please the go mod gods --- contribs/gnodev/go.mod | 6 ++++-- contribs/gnodev/go.sum | 4 ++-- contribs/gnodev/main.go | 20 +++++++++++++------- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/contribs/gnodev/go.mod b/contribs/gnodev/go.mod index b369937a8e0..6d030152a9b 100644 --- a/contribs/gnodev/go.mod +++ b/contribs/gnodev/go.mod @@ -7,6 +7,7 @@ replace github.com/gnolang/gno => ../.. require ( github.com/fsnotify/fsnotify v1.7.0 github.com/gnolang/gno v0.0.0-00010101000000-000000000000 + go.uber.org/zap v1.24.0 golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 golang.org/x/term v0.16.0 ) @@ -52,8 +53,9 @@ require ( go.opencensus.io v0.22.5 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.10.0 // indirect - go.uber.org/zap v1.24.0 // indirect - go.uber.org/zap/exp v0.2.0 // indirect + // This version of zap/exp is a requirement until we + // upgrade to go 1.21 (https://github.com/uber-go/zap/blob/master/exp/CHANGELOG.md) + go.uber.org/zap/exp v0.1.0 // indirect golang.org/x/crypto v0.18.0 // indirect golang.org/x/mod v0.14.0 // indirect golang.org/x/net v0.20.0 // indirect diff --git a/contribs/gnodev/go.sum b/contribs/gnodev/go.sum index 6e8bc2a22e5..3dd85d011f3 100644 --- a/contribs/gnodev/go.sum +++ b/contribs/gnodev/go.sum @@ -217,8 +217,8 @@ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9E go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= -go.uber.org/zap/exp v0.2.0 h1:FtGenNNeCATRB3CmB/yEUnjEFeJWpB/pMcy7e2bKPYs= -go.uber.org/zap/exp v0.2.0/go.mod h1:t0gqAIdh1MfKv9EwN/dLwfZnJxe9ITAZN78HEWPFWDQ= +go.uber.org/zap/exp v0.1.0 h1:Ol9zQNvAEAgFHSBiR5LlwS9Xq8u5QF+7HBwNHUB8rcI= +go.uber.org/zap/exp v0.1.0/go.mod h1:z/0T3As39ttolxZGOsvk1OEvQfwwfTZpmV9YTp+VAkc= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= diff --git a/contribs/gnodev/main.go b/contribs/gnodev/main.go index 87137697135..cc5d4fb3018 100644 --- a/contribs/gnodev/main.go +++ b/contribs/gnodev/main.go @@ -16,11 +16,12 @@ import ( gnodev "github.com/gnolang/gno/contribs/gnodev/pkg/dev" "github.com/gnolang/gno/contribs/gnodev/pkg/rawterm" "github.com/gnolang/gno/gno.land/pkg/gnoweb" + "github.com/gnolang/gno/gno.land/pkg/log" "github.com/gnolang/gno/gnovm/pkg/gnoenv" "github.com/gnolang/gno/gnovm/pkg/gnomod" "github.com/gnolang/gno/tm2/pkg/commands" - tmlog "github.com/gnolang/gno/tm2/pkg/log" osm "github.com/gnolang/gno/tm2/pkg/os" + "go.uber.org/zap/zapcore" ) const ( @@ -303,9 +304,12 @@ func setupRawTerm(io commands.IO) (rt *rawterm.RawTerm, restore func() error, er func setupDevNode(ctx context.Context, rt *rawterm.RawTerm, pkgspath []string) (*gnodev.Node, error) { nodeOut := rt.NamespacedWriter("Node") - logger := tmlog.NewTMLogger(nodeOut) - logger.SetLevel(tmlog.LevelError) - return gnodev.NewDevNode(ctx, logger, pkgspath) + zapLogger, err := log.NewZapLogger(nodeOut, zapcore.ErrorLevel) + if err != nil { + return nil, fmt.Errorf("unable to create logger, %w", err) + } + + return gnodev.NewDevNode(ctx, log.ZapLoggerToSlog(zapLogger), pkgspath) } // setupGnowebServer initializes and starts the Gnoweb server. @@ -317,10 +321,12 @@ func serveGnoWebServer(l net.Listener, dnode *gnodev.Node, rt *rawterm.RawTerm) webConfig.HelpChainID = dnode.Config().ChainID() webConfig.HelpRemote = dnode.GetRemoteAddress() - loggerweb := tmlog.NewTMLogger(rt.NamespacedWriter("GnoWeb")) - loggerweb.SetLevel(tmlog.LevelDebug) + zapLogger, err := log.NewZapLogger(rt.NamespacedWriter("GnoWeb"), zapcore.DebugLevel) + if err != nil { + return fmt.Errorf("unable to create logger, %w", err) + } - app := gnoweb.MakeApp(loggerweb, webConfig) + app := gnoweb.MakeApp(log.ZapLoggerToSlog(zapLogger), webConfig) server.ReadHeaderTimeout = 60 * time.Second server.Handler = app.Router From 5db0ddb2c58b9132477e55e9be20f23bede70a09 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 15 Jan 2024 19:28:47 +0100 Subject: [PATCH 14/43] Add logger err case --- gno.land/pkg/integration/testing_integration.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gno.land/pkg/integration/testing_integration.go b/gno.land/pkg/integration/testing_integration.go index e289c369dc7..a3d721c3c68 100644 --- a/gno.land/pkg/integration/testing_integration.go +++ b/gno.land/pkg/integration/testing_integration.go @@ -319,7 +319,11 @@ func getTestingLogger(env *testscript.Env, logname string) (*slog.Logger, error) return nil, fmt.Errorf("unable to parse log level, %w", err) } - zapLogger, _ := log.NewZapLogger(f, logLevel) + zapLogger, err := log.NewZapLogger(f, logLevel) + if err != nil { + return nil, fmt.Errorf("unable to create logger, %w", err) + } + logger := log.ZapLoggerToSlog(zapLogger) env.T().Log("starting logger: %q", path) From 33f193413c7345e5166794efdd35422f16c3d069 Mon Sep 17 00:00:00 2001 From: gfanton <8671905+gfanton@users.noreply.github.com> Date: Mon, 15 Jan 2024 23:41:59 +0100 Subject: [PATCH 15/43] fix: use zap logger specific initialization Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com> --- contribs/gnodev/main.go | 4 +- gno.land/cmd/gnoland/start.go | 6 +- gno.land/cmd/gnoweb/main.go | 6 +- .../pkg/integration/testing_integration.go | 13 ++-- gno.land/pkg/log/log.go | 56 ----------------- gno.land/pkg/log/zap.go | 61 +++++++++++++++++++ gno.land/pkg/log/zap_encoder.go | 48 +++++++++++++++ 7 files changed, 119 insertions(+), 75 deletions(-) delete mode 100644 gno.land/pkg/log/log.go create mode 100644 gno.land/pkg/log/zap.go create mode 100644 gno.land/pkg/log/zap_encoder.go diff --git a/contribs/gnodev/main.go b/contribs/gnodev/main.go index cc5d4fb3018..da80f17ec37 100644 --- a/contribs/gnodev/main.go +++ b/contribs/gnodev/main.go @@ -304,7 +304,7 @@ func setupRawTerm(io commands.IO) (rt *rawterm.RawTerm, restore func() error, er func setupDevNode(ctx context.Context, rt *rawterm.RawTerm, pkgspath []string) (*gnodev.Node, error) { nodeOut := rt.NamespacedWriter("Node") - zapLogger, err := log.NewZapLogger(nodeOut, zapcore.ErrorLevel) + zapLogger, err := log.NewZapConsoleLogger(nodeOut, zapcore.ErrorLevel) if err != nil { return nil, fmt.Errorf("unable to create logger, %w", err) } @@ -321,7 +321,7 @@ func serveGnoWebServer(l net.Listener, dnode *gnodev.Node, rt *rawterm.RawTerm) webConfig.HelpChainID = dnode.Config().ChainID() webConfig.HelpRemote = dnode.GetRemoteAddress() - zapLogger, err := log.NewZapLogger(rt.NamespacedWriter("GnoWeb"), zapcore.DebugLevel) + zapLogger, err := log.NewZapConsoleLogger(rt.NamespacedWriter("GnoWeb"), zapcore.DebugLevel) if err != nil { return fmt.Errorf("unable to create logger, %w", err) } diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index cc949837cfb..16d002c1e2b 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -213,10 +213,8 @@ func execStart(c *startCfg, io commands.IO) error { } // Initialize the zap logger - zapLogger, err := log.NewZapLogger(io.Out(), logLevel) - if err != nil { - return err - } + zapLogger := log.NewZapConsoleLogger(io.Out(), logLevel) + defer zapLogger.Sync() // Wrap the zap logger logger := log.ZapLoggerToSlog(zapLogger) diff --git a/gno.land/cmd/gnoweb/main.go b/gno.land/cmd/gnoweb/main.go index 52691605a62..547134548ff 100644 --- a/gno.land/cmd/gnoweb/main.go +++ b/gno.land/cmd/gnoweb/main.go @@ -42,11 +42,7 @@ func runMain(args []string) error { return err } - zapLogger, err := log.NewZapLogger(os.Stdout, zapcore.DebugLevel) - if err != nil { - return err - } - + zapLogger := log.NewZapConsoleLogger(os.Stdout, zapcore.DebugLevel) logger := log.ZapLoggerToSlog(zapLogger) logger.Info("Running", "listener", "http://"+bindAddress) diff --git a/gno.land/pkg/integration/testing_integration.go b/gno.land/pkg/integration/testing_integration.go index a3d583f3a0a..f3147dc1a7c 100644 --- a/gno.land/pkg/integration/testing_integration.go +++ b/gno.land/pkg/integration/testing_integration.go @@ -295,7 +295,7 @@ func getTestingLogger(env *testscript.Env, logname string) (*slog.Logger, error) var err error if path, err = filepath.Abs(filepath.Join(logdir, logname)); err != nil { - return nil, fmt.Errorf("uanble to get absolute path of logdir %q", logdir) + return nil, fmt.Errorf("unable to get absolute path of logdir %q", logdir) } } else if workdir := env.Getenv("WORK"); workdir != "" { path = filepath.Join(workdir, logname) @@ -320,14 +320,11 @@ func getTestingLogger(env *testscript.Env, logname string) (*slog.Logger, error) return nil, fmt.Errorf("unable to parse log level, %w", err) } - zapLogger, err := log.NewZapLogger(f, logLevel) - if err != nil { - return nil, fmt.Errorf("unable to create logger, %w", err) - } - - logger := log.ZapLoggerToSlog(zapLogger) + // Build zap logger for testing + zapLogger := log.NewZapTestingLogger(f, logLevel) + env.Defer(func() { zapLogger.Sync() }) - env.T().Log("starting logger: %q", path) + env.T().Log("starting logger", path) return logger, nil } diff --git a/gno.land/pkg/log/log.go b/gno.land/pkg/log/log.go deleted file mode 100644 index 5c236bc5e7b..00000000000 --- a/gno.land/pkg/log/log.go +++ /dev/null @@ -1,56 +0,0 @@ -package log - -import ( - "fmt" - "io" - "net/url" - - "golang.org/x/exp/slog" - - "go.uber.org/zap" - "go.uber.org/zap/exp/zapslog" - "go.uber.org/zap/zapcore" - "moul.io/zapconfig" -) - -const customWriterKey = "gno" - -type customWriter struct { - io.Writer -} - -func (cw customWriter) Close() error { - return nil -} - -func (cw customWriter) Sync() error { - return nil -} - -// NewZapLogger creates a new zap logger instance, for the given level and writer -func NewZapLogger(w io.Writer, level zapcore.Level) (*zap.Logger, error) { - if err := zap.RegisterSink( - customWriterKey, - func(u *url.URL) (zap.Sink, error) { - return customWriter{w}, nil - }); err != nil { - return nil, fmt.Errorf("unable to register sink, %w", err) - } - - zapLogger, err := zapconfig.New(). - SetOutputPath(fmt.Sprintf("%s:", customWriterKey)). - EnableStacktrace(). - SetLevel(level). - SetPreset("console"). - Build() - if err != nil { - return nil, fmt.Errorf("unable to build logger, %w", err) - } - - return zapLogger, nil -} - -// ZapLoggerToSlog wraps the given zap logger to an log/slog Logger -func ZapLoggerToSlog(logger *zap.Logger) *slog.Logger { - return slog.New(zapslog.NewHandler(logger.Core())) -} diff --git a/gno.land/pkg/log/zap.go b/gno.land/pkg/log/zap.go new file mode 100644 index 00000000000..5402f14a5ec --- /dev/null +++ b/gno.land/pkg/log/zap.go @@ -0,0 +1,61 @@ +package log + +import ( + "io" + + "golang.org/x/exp/slog" + + "go.uber.org/zap" + "go.uber.org/zap/exp/zapslog" + "go.uber.org/zap/zapcore" +) + +// NewZapJSONLogger creates a zap logger with a JSON encoder for production use. +func NewZapJSONLogger(w io.Writer, level zapcore.Level, opts ...zap.Option) *zap.Logger { + // Build encoder config + jsonConfig := zap.NewProductionEncoderConfig() + + // Build encoder + enc := zapcore.NewJSONEncoder(jsonConfig) + return NewZapLogger(enc, w, level, opts...) +} + +// NewZapConsoleLogger creates a zap logger with a console encoder for development use. +func NewZapConsoleLogger(w io.Writer, level zapcore.Level, opts ...zap.Option) *zap.Logger { + // Build encoder config + consoleConfig := zap.NewDevelopmentEncoderConfig() + consoleConfig.TimeKey = "" + consoleConfig.EncodeLevel = stableWidthCapitalColorLevelEncoder + consoleConfig.EncodeName = stableWidthNameEncoder + + // Build encoder + enc := zapcore.NewConsoleEncoder(consoleConfig) + return NewZapLogger(enc, w, level, opts...) +} + +// NewZapTestingLogger creates a zap logger with a console encoder optimized for testing. +func NewZapTestingLogger(w io.Writer, level zapcore.Level, opts ...zap.Option) *zap.Logger { + // Build encoder config + consoleConfig := zap.NewDevelopmentEncoderConfig() + consoleConfig.TimeKey = "" + consoleConfig.EncodeLevel = stableWidthCapitalLevelEncoder + consoleConfig.EncodeName = stableWidthNameEncoder + + // Build encoder + enc := zapcore.NewConsoleEncoder(consoleConfig) + return NewZapLogger(enc, w, level, opts...) +} + +// NewZapLogger creates a new zap logger instance, for the given level, writer and zap encoder. +func NewZapLogger(enc zapcore.Encoder, w io.Writer, level zapcore.Level, opts ...zap.Option) *zap.Logger { + ws := zapcore.AddSync(w) + + // Create zap core + core := zapcore.NewCore(enc, ws, zap.NewAtomicLevelAt(level)) + return zap.New(core, opts...) +} + +// ZapLoggerToSlog wraps the given zap logger to an log/slog Logger +func ZapLoggerToSlog(logger *zap.Logger) *slog.Logger { + return slog.New(zapslog.NewHandler(logger.Core())) +} diff --git a/gno.land/pkg/log/zap_encoder.go b/gno.land/pkg/log/zap_encoder.go new file mode 100644 index 00000000000..2133a9e1e50 --- /dev/null +++ b/gno.land/pkg/log/zap_encoder.go @@ -0,0 +1,48 @@ +package log + +import ( + "fmt" + + "go.uber.org/zap/zapcore" +) + +func stableWidthCapitalLevelEncoder(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder) { + enc.AppendString(fmt.Sprintf("%-5s", l.CapitalString())) +} + +func stableWidthNameEncoder(loggerName string, enc zapcore.PrimitiveArrayEncoder) { + enc.AppendString(fmt.Sprintf("%-18s", loggerName)) +} + +// nolint:varcheck,deadcode // we don't care if it's deadcode +const ( + black uint8 = iota + 30 + red + green + yellow + blue + magenta + cyan + white +) + +func stableWidthCapitalColorLevelEncoder(l zapcore.Level, enc zapcore.PrimitiveArrayEncoder) { + switch l { + case zapcore.DebugLevel: + enc.AppendString(fmt.Sprintf("\x1b[%dm%s\x1b[0m", magenta, "DEBUG")) + case zapcore.InfoLevel: + enc.AppendString(fmt.Sprintf("\x1b[%dm%s\x1b[0m", blue, "INFO ")) + case zapcore.WarnLevel: + enc.AppendString(fmt.Sprintf("\x1b[%dm%s\x1b[0m", yellow, "WARN ")) + case zapcore.ErrorLevel: + enc.AppendString(fmt.Sprintf("\x1b[%dm%s\x1b[0m", red, "ERROR")) + case zapcore.DPanicLevel: + enc.AppendString(fmt.Sprintf("\x1b[%dm%s\x1b[0m", red, "DPANIC")) + case zapcore.PanicLevel: + enc.AppendString(fmt.Sprintf("\x1b[%dm%s\x1b[0m", red, "PANIC")) + case zapcore.FatalLevel: + enc.AppendString(fmt.Sprintf("\x1b[%dm%s\x1b[0m", red, "FATAL")) + default: + enc.AppendString(fmt.Sprintf("\x1b[%dm%s\x1b[0m", red, l.CapitalString())) + } +} From 75c72852a38386cccf560bb24b4e6661dd816192 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Tue, 16 Jan 2024 12:27:21 +0100 Subject: [PATCH 16/43] Resolve API changes --- contribs/gnodev/go.mod | 3 +- contribs/gnodev/go.sum | 37 ------------------- contribs/gnodev/main.go | 10 +---- gno.land/cmd/gnoland/start.go | 12 +++++- .../pkg/integration/testing_integration.go | 2 +- gno.land/pkg/log/format.go | 14 +++++++ gno.land/pkg/log/zap.go | 17 ++++++++- gno.land/pkg/log/zap_encoder.go | 2 +- go.mod | 7 +++- go.sum | 34 ----------------- 10 files changed, 51 insertions(+), 87 deletions(-) create mode 100644 gno.land/pkg/log/format.go diff --git a/contribs/gnodev/go.mod b/contribs/gnodev/go.mod index 6d030152a9b..35393d7cbe8 100644 --- a/contribs/gnodev/go.mod +++ b/contribs/gnodev/go.mod @@ -12,6 +12,8 @@ require ( golang.org/x/term v0.16.0 ) +require github.com/kr/pretty v0.2.1 // indirect + require ( github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/btcsuite/btcd/btcutil v1.1.3 // indirect @@ -63,5 +65,4 @@ require ( golang.org/x/tools v0.17.0 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - moul.io/zapconfig v1.4.0 // indirect ) diff --git a/contribs/gnodev/go.sum b/contribs/gnodev/go.sum index 3dd85d011f3..2ade0c18ce5 100644 --- a/contribs/gnodev/go.sum +++ b/contribs/gnodev/go.sum @@ -40,7 +40,6 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -101,7 +100,6 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/gorilla/csrf v1.7.0/go.mod h1:+a/4tCmqhG6/w4oafeAZ9pEa3/NZOWYVbD9fV0FwIQA= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= @@ -135,7 +133,6 @@ github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfn github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= @@ -161,20 +158,15 @@ github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3v github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/ff/v3 v3.4.0 h1:QBvM/rizZM1cB0p0lGMdmR7HxZeI/ZrBWB4DqLkMUBc= github.com/peterbourgon/ff/v3 v3.4.0/go.mod h1:zjJVUhx+twciwfDl0zBcFzl4dW8axCRyXE/eKY9RztQ= -github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -186,14 +178,12 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= -github.com/tailscale/depaware v0.0.0-20201214215404-77d1e9757027/go.mod h1:p9lPsd+cx33L3H9nNoecRRxPssFKUwwI50I3pZ0yT+8= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -204,17 +194,11 @@ go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= go.uber.org/zap/exp v0.1.0 h1:Ol9zQNvAEAgFHSBiR5LlwS9Xq8u5QF+7HBwNHUB8rcI= @@ -222,7 +206,6 @@ go.uber.org/zap/exp v0.1.0/go.mod h1:z/0T3As39ttolxZGOsvk1OEvQfwwfTZpmV9YTp+VAkc golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= @@ -233,12 +216,8 @@ golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/i golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -275,8 +254,6 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= @@ -290,14 +267,9 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -322,11 +294,8 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= @@ -336,12 +305,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -moul.io/u v1.23.0 h1:ZHfDUsUMfRG3e0A7gBYOo8SkKqe02Pc5zuQUVxq4+tg= -moul.io/u v1.23.0/go.mod h1:ytlQ/zt+Sdk+PFGEx+fpTivoa0ieA5yMo6itRswIWNQ= -moul.io/zapconfig v1.4.0 h1:J3ND5J3e/qQ++jlpqdSR1EtDNV+iujtvXgLsjy1uyq8= -moul.io/zapconfig v1.4.0/go.mod h1:bYTa5j7r82yPmSR6i5CcrPSVoWEbdpN7o9IgndSVby8= diff --git a/contribs/gnodev/main.go b/contribs/gnodev/main.go index da80f17ec37..6ae2633c6f3 100644 --- a/contribs/gnodev/main.go +++ b/contribs/gnodev/main.go @@ -304,10 +304,7 @@ func setupRawTerm(io commands.IO) (rt *rawterm.RawTerm, restore func() error, er func setupDevNode(ctx context.Context, rt *rawterm.RawTerm, pkgspath []string) (*gnodev.Node, error) { nodeOut := rt.NamespacedWriter("Node") - zapLogger, err := log.NewZapConsoleLogger(nodeOut, zapcore.ErrorLevel) - if err != nil { - return nil, fmt.Errorf("unable to create logger, %w", err) - } + zapLogger := log.NewZapConsoleLogger(nodeOut, zapcore.ErrorLevel) return gnodev.NewDevNode(ctx, log.ZapLoggerToSlog(zapLogger), pkgspath) } @@ -321,10 +318,7 @@ func serveGnoWebServer(l net.Listener, dnode *gnodev.Node, rt *rawterm.RawTerm) webConfig.HelpChainID = dnode.Config().ChainID() webConfig.HelpRemote = dnode.GetRemoteAddress() - zapLogger, err := log.NewZapConsoleLogger(rt.NamespacedWriter("GnoWeb"), zapcore.DebugLevel) - if err != nil { - return fmt.Errorf("unable to create logger, %w", err) - } + zapLogger := log.NewZapConsoleLogger(rt.NamespacedWriter("GnoWeb"), zapcore.DebugLevel) app := gnoweb.MakeApp(log.ZapLoggerToSlog(zapLogger), webConfig) diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index 16d002c1e2b..6b3ad28f4d2 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -43,7 +43,8 @@ type startCfg struct { txEventStorePath string nodeConfigPath string - logLevel string + logLevel string + logFormat string } func newStartCmd(io commands.IO) *commands.Command { @@ -175,6 +176,13 @@ func (c *startCfg) RegisterFlags(fs *flag.FlagSet) { "log level for the gnoland node,", ) + fs.StringVar( + &c.logFormat, + "log-format", + log.ConsoleFormat.String(), + "log format for the gnoland node", + ) + // XXX(deprecated): use data-dir instead fs.StringVar( &c.dataDir, @@ -213,7 +221,7 @@ func execStart(c *startCfg, io commands.IO) error { } // Initialize the zap logger - zapLogger := log.NewZapConsoleLogger(io.Out(), logLevel) + zapLogger := log.GetZapLoggerFn(log.Format(c.logFormat))(io.Out(), logLevel) defer zapLogger.Sync() // Wrap the zap logger diff --git a/gno.land/pkg/integration/testing_integration.go b/gno.land/pkg/integration/testing_integration.go index f3147dc1a7c..e8d9a34433c 100644 --- a/gno.land/pkg/integration/testing_integration.go +++ b/gno.land/pkg/integration/testing_integration.go @@ -325,7 +325,7 @@ func getTestingLogger(env *testscript.Env, logname string) (*slog.Logger, error) env.Defer(func() { zapLogger.Sync() }) env.T().Log("starting logger", path) - return logger, nil + return log.ZapLoggerToSlog(zapLogger), nil } func tsValidateError(ts *testscript.TestScript, cmd string, neg bool, err error) { diff --git a/gno.land/pkg/log/format.go b/gno.land/pkg/log/format.go new file mode 100644 index 00000000000..1272ffe23b6 --- /dev/null +++ b/gno.land/pkg/log/format.go @@ -0,0 +1,14 @@ +package log + +// Format is the log format +type Format string + +const ( + JSONFormat Format = "json" + ConsoleFormat Format = "console" + TestingFormat Format = "testing" +) + +func (f Format) String() string { + return string(f) +} diff --git a/gno.land/pkg/log/zap.go b/gno.land/pkg/log/zap.go index 5402f14a5ec..a68e034eab6 100644 --- a/gno.land/pkg/log/zap.go +++ b/gno.land/pkg/log/zap.go @@ -10,6 +10,22 @@ import ( "go.uber.org/zap/zapcore" ) +// NewZapLoggerFn is the zap logger init declaration +type NewZapLoggerFn func(w io.Writer, level zapcore.Level, opts ...zap.Option) *zap.Logger + +// GetZapLoggerFn returns the appropriate init callback +// for the zap logger, given the requested format +func GetZapLoggerFn(format Format) NewZapLoggerFn { + switch format { + case JSONFormat: + return NewZapJSONLogger + case TestingFormat: + return NewZapTestingLogger + default: + return NewZapConsoleLogger + } +} + // NewZapJSONLogger creates a zap logger with a JSON encoder for production use. func NewZapJSONLogger(w io.Writer, level zapcore.Level, opts ...zap.Option) *zap.Logger { // Build encoder config @@ -24,7 +40,6 @@ func NewZapJSONLogger(w io.Writer, level zapcore.Level, opts ...zap.Option) *zap func NewZapConsoleLogger(w io.Writer, level zapcore.Level, opts ...zap.Option) *zap.Logger { // Build encoder config consoleConfig := zap.NewDevelopmentEncoderConfig() - consoleConfig.TimeKey = "" consoleConfig.EncodeLevel = stableWidthCapitalColorLevelEncoder consoleConfig.EncodeName = stableWidthNameEncoder diff --git a/gno.land/pkg/log/zap_encoder.go b/gno.land/pkg/log/zap_encoder.go index 2133a9e1e50..a8459197301 100644 --- a/gno.land/pkg/log/zap_encoder.go +++ b/gno.land/pkg/log/zap_encoder.go @@ -14,7 +14,7 @@ func stableWidthNameEncoder(loggerName string, enc zapcore.PrimitiveArrayEncoder enc.AppendString(fmt.Sprintf("%-18s", loggerName)) } -// nolint:varcheck,deadcode // we don't care if it's deadcode +//nolint:varcheck,deadcode // we don't care if it's unused const ( black uint8 = iota + 30 red diff --git a/go.mod b/go.mod index d704e9b6bb0..b700d798a4f 100644 --- a/go.mod +++ b/go.mod @@ -42,12 +42,15 @@ require ( golang.org/x/tools v0.17.0 google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v3 v3.0.1 - moul.io/zapconfig v1.4.0 ) require golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 -require go.uber.org/atomic v1.10.0 // indirect +require ( + github.com/kr/text v0.2.0 // indirect + go.uber.org/atomic v1.10.0 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect +) require ( github.com/btcsuite/btcd/btcec/v2 v2.3.2 diff --git a/go.sum b/go.sum index 8b0cc535d6b..7fe1a0ecef4 100644 --- a/go.sum +++ b/go.sum @@ -110,7 +110,6 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/gorilla/csrf v1.7.0/go.mod h1:+a/4tCmqhG6/w4oafeAZ9pEa3/NZOWYVbD9fV0FwIQA= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= @@ -176,9 +175,6 @@ github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3v github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/ff/v3 v3.4.0 h1:QBvM/rizZM1cB0p0lGMdmR7HxZeI/ZrBWB4DqLkMUBc= github.com/peterbourgon/ff/v3 v3.4.0/go.mod h1:zjJVUhx+twciwfDl0zBcFzl4dW8axCRyXE/eKY9RztQ= -github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -186,13 +182,11 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -204,14 +198,12 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= -github.com/tailscale/depaware v0.0.0-20201214215404-77d1e9757027/go.mod h1:p9lPsd+cx33L3H9nNoecRRxPssFKUwwI50I3pZ0yT+8= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -223,17 +215,11 @@ go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= go.uber.org/zap/exp v0.1.0 h1:Ol9zQNvAEAgFHSBiR5LlwS9Xq8u5QF+7HBwNHUB8rcI= @@ -241,7 +227,6 @@ go.uber.org/zap/exp v0.1.0/go.mod h1:z/0T3As39ttolxZGOsvk1OEvQfwwfTZpmV9YTp+VAkc golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= @@ -253,12 +238,8 @@ golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/i golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= @@ -300,8 +281,6 @@ golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -326,14 +305,9 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= @@ -359,11 +333,9 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= @@ -373,12 +345,6 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -moul.io/u v1.23.0 h1:ZHfDUsUMfRG3e0A7gBYOo8SkKqe02Pc5zuQUVxq4+tg= -moul.io/u v1.23.0/go.mod h1:ytlQ/zt+Sdk+PFGEx+fpTivoa0ieA5yMo6itRswIWNQ= -moul.io/zapconfig v1.4.0 h1:J3ND5J3e/qQ++jlpqdSR1EtDNV+iujtvXgLsjy1uyq8= -moul.io/zapconfig v1.4.0/go.mod h1:bYTa5j7r82yPmSR6i5CcrPSVoWEbdpN7o9IgndSVby8= From f23782fd7eb8935a62fb717b11e1dfc0df7f7eb8 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Tue, 16 Jan 2024 12:29:44 +0100 Subject: [PATCH 17/43] Tidy loop go mod --- misc/loop/go.mod | 1 - misc/loop/go.sum | 38 -------------------------------------- 2 files changed, 39 deletions(-) diff --git a/misc/loop/go.mod b/misc/loop/go.mod index 659532a3b19..cd24b987d50 100644 --- a/misc/loop/go.mod +++ b/misc/loop/go.mod @@ -49,7 +49,6 @@ require ( golang.org/x/term v0.16.0 // indirect golang.org/x/tools v0.17.0 // indirect google.golang.org/protobuf v1.31.0 // indirect - moul.io/zapconfig v1.4.0 // indirect ) replace github.com/gnolang/gno => ../../ diff --git a/misc/loop/go.sum b/misc/loop/go.sum index 3f5949be95f..05cb8718e96 100644 --- a/misc/loop/go.sum +++ b/misc/loop/go.sum @@ -39,7 +39,6 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -101,7 +100,6 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= @@ -119,10 +117,8 @@ github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6 github.com/klauspost/compress v1.12.3 h1:G5AfA94pHPysR56qqrkO2pxEexdDzrpFJ6yt/VqWxVU= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= @@ -148,19 +144,14 @@ github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3v github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/ff/v3 v3.4.0 h1:QBvM/rizZM1cB0p0lGMdmR7HxZeI/ZrBWB4DqLkMUBc= github.com/peterbourgon/ff/v3 v3.4.0/go.mod h1:zjJVUhx+twciwfDl0zBcFzl4dW8axCRyXE/eKY9RztQ= -github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28= -github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rs/cors v1.10.1 h1:L0uuZVXIKlI1SShY2nhFfo44TYvDPQ1w4oFkUJNfhyo= github.com/rs/cors v1.10.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= @@ -172,12 +163,10 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= -github.com/tailscale/depaware v0.0.0-20201214215404-77d1e9757027/go.mod h1:p9lPsd+cx33L3H9nNoecRRxPssFKUwwI50I3pZ0yT+8= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -188,15 +177,9 @@ go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= -go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= go.uber.org/zap/exp v0.2.0 h1:FtGenNNeCATRB3CmB/yEUnjEFeJWpB/pMcy7e2bKPYs= @@ -204,7 +187,6 @@ go.uber.org/zap/exp v0.2.0/go.mod h1:t0gqAIdh1MfKv9EwN/dLwfZnJxe9ITAZN78HEWPFWDQ golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= @@ -215,12 +197,8 @@ golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3/go.mod h1:idGWGoKP1toJGkd5/i golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -257,8 +235,6 @@ golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= @@ -272,14 +248,9 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -304,10 +275,7 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= @@ -317,11 +285,5 @@ gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -moul.io/u v1.23.0 h1:ZHfDUsUMfRG3e0A7gBYOo8SkKqe02Pc5zuQUVxq4+tg= -moul.io/u v1.23.0/go.mod h1:ytlQ/zt+Sdk+PFGEx+fpTivoa0ieA5yMo6itRswIWNQ= -moul.io/zapconfig v1.4.0 h1:J3ND5J3e/qQ++jlpqdSR1EtDNV+iujtvXgLsjy1uyq8= -moul.io/zapconfig v1.4.0/go.mod h1:bYTa5j7r82yPmSR6i5CcrPSVoWEbdpN7o9IgndSVby8= From 655557b7424fe5f950ab224eb5d60cc408946950 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Tue, 16 Jan 2024 13:15:10 +0100 Subject: [PATCH 18/43] Lowercase log format --- gno.land/cmd/gnoland/start.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index 6b3ad28f4d2..eb9a0852d05 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -220,8 +220,11 @@ func execStart(c *startCfg, io commands.IO) error { return fmt.Errorf("unable to parse log level, %w", err) } + // Initialize the log format + logFormat := log.Format(strings.ToLower(c.logFormat)) + // Initialize the zap logger - zapLogger := log.GetZapLoggerFn(log.Format(c.logFormat))(io.Out(), logLevel) + zapLogger := log.GetZapLoggerFn(logFormat)(io.Out(), logLevel) defer zapLogger.Sync() // Wrap the zap logger From c8b6d54235547ede6d062e42e305b87a4d6abfc3 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 22 Jan 2024 10:47:48 +0100 Subject: [PATCH 19/43] Move github.com/kr/pretty into indirect deps --- contribs/gnodev/go.mod | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/contribs/gnodev/go.mod b/contribs/gnodev/go.mod index 35393d7cbe8..3e081bc03c4 100644 --- a/contribs/gnodev/go.mod +++ b/contribs/gnodev/go.mod @@ -12,8 +12,6 @@ require ( golang.org/x/term v0.16.0 ) -require github.com/kr/pretty v0.2.1 // indirect - require ( github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/btcsuite/btcd/btcutil v1.1.3 // indirect @@ -41,6 +39,7 @@ require ( github.com/jaekwon/testify v1.6.1 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/klauspost/compress v1.12.3 // indirect + github.com/kr/pretty v0.2.1 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/linxGnu/grocksdb v1.8.5 // indirect github.com/pelletier/go-toml v1.9.5 // indirect From db969ac7f08608ad14284834eb6cbafbc4bd22d0 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 22 Jan 2024 10:48:46 +0100 Subject: [PATCH 20/43] Move golang.org/x/exp into direct deps --- go.mod | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/go.mod b/go.mod index b700d798a4f..0fa2895ec9a 100644 --- a/go.mod +++ b/go.mod @@ -36,6 +36,7 @@ require ( // upgrade to go 1.21 (https://github.com/uber-go/zap/blob/master/exp/CHANGELOG.md) go.uber.org/zap/exp v0.1.0 golang.org/x/crypto v0.18.0 + golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 golang.org/x/mod v0.14.0 golang.org/x/net v0.20.0 golang.org/x/term v0.16.0 @@ -44,8 +45,6 @@ require ( gopkg.in/yaml.v3 v3.0.1 ) -require golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 - require ( github.com/kr/text v0.2.0 // indirect go.uber.org/atomic v1.10.0 // indirect From a39674b13bd5043661ee56ea8c2ea1ca3bfc2e4f Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 22 Jan 2024 10:49:52 +0100 Subject: [PATCH 21/43] Remove duplicate defer --- gno.land/cmd/gnoland/start.go | 1 - 1 file changed, 1 deletion(-) diff --git a/gno.land/cmd/gnoland/start.go b/gno.land/cmd/gnoland/start.go index eb9a0852d05..e09c155e25e 100644 --- a/gno.land/cmd/gnoland/start.go +++ b/gno.land/cmd/gnoland/start.go @@ -225,7 +225,6 @@ func execStart(c *startCfg, io commands.IO) error { // Initialize the zap logger zapLogger := log.GetZapLoggerFn(logFormat)(io.Out(), logLevel) - defer zapLogger.Sync() // Wrap the zap logger logger := log.ZapLoggerToSlog(zapLogger) From 1c29d7ca07792a32679dbb1ba838efb0ac736de8 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 22 Jan 2024 11:15:27 +0100 Subject: [PATCH 22/43] Add import cleanup directive --- Makefile | 6 ++++++ examples/Makefile | 5 +++++ gno.land/Makefile | 5 +++++ gnovm/Makefile | 5 +++++ misc/devdeps/deps.go | 3 +++ tm2/Makefile | 5 +++++ tm2/pkg/amino/tests/pb/tests.pb.go | 5 +++-- tm2/pkg/amino/tests/proto3/proto/compat.pb.go | 5 +++-- 8 files changed, 35 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 80c9bef2ed7..88dae818b66 100644 --- a/Makefile +++ b/Makefile @@ -45,3 +45,9 @@ fmt: .PHONY: lint lint: $(rundep) github.com/golangci/golangci-lint/cmd/golangci-lint run --config .github/golangci.yml + +.PHONY: imports +imports: + $(MAKE) --no-print-directory -C tm2 imports + $(MAKE) --no-print-directory -C gnovm imports + $(MAKE) --no-print-directory -C gno.land imports \ No newline at end of file diff --git a/examples/Makefile b/examples/Makefile index 9b628e01ce5..56ad4b30b42 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -38,6 +38,11 @@ GOFMT_FLAGS ?= -w fmt: go run -modfile ../misc/devdeps/go.mod mvdan.cc/gofumpt $(GOFMT_FLAGS) `find . -name "*.gno"` +.PHONY: imports +GOIMPORTS_FLAGS ?= -w +imports: + $(rundep) golang.org/x/tools/cmd/goimports $(GOIMPORTS_FLAGS) . + .PHONY: tidy tidy: find . -name "gno.mod" -execdir go run github.com/gnolang/gno/gnovm/cmd/gno mod tidy \; diff --git a/gno.land/Makefile b/gno.land/Makefile index 982063d155c..8138dfcfe3e 100644 --- a/gno.land/Makefile +++ b/gno.land/Makefile @@ -56,6 +56,11 @@ GOFMT_FLAGS ?= -w fmt: $(rundep) mvdan.cc/gofumpt $(GOFMT_FLAGS) . +.PHONY: imports +GOIMPORTS_FLAGS ?= -w +imports: + $(rundep) golang.org/x/tools/cmd/goimports $(GOIMPORTS_FLAGS) . + ######################################## # Test suite .PHONY: test diff --git a/gnovm/Makefile b/gnovm/Makefile index cc7154492d8..599ca58cd39 100644 --- a/gnovm/Makefile +++ b/gnovm/Makefile @@ -34,6 +34,11 @@ fmt: $(rundep) mvdan.cc/gofumpt $(GOFMT_FLAGS) . $(rundep) mvdan.cc/gofumpt $(GOFMT_FLAGS) `find stdlibs -name "*.gno"` +.PHONY: imports +GOIMPORTS_FLAGS ?= -w +imports: + $(rundep) golang.org/x/tools/cmd/goimports $(GOIMPORTS_FLAGS) . + ######################################## # Test suite .PHONY: test diff --git a/misc/devdeps/deps.go b/misc/devdeps/deps.go index 3454e5b13f6..7ac068c71ac 100644 --- a/misc/devdeps/deps.go +++ b/misc/devdeps/deps.go @@ -11,6 +11,9 @@ import ( // required to generate String method _ "golang.org/x/tools/cmd/stringer" + // required for import formatting + _ "golang.org/x/tools/cmd/goimports" + // required for formatting, linting, pls. _ "golang.org/x/tools/gopls" _ "mvdan.cc/gofumpt" diff --git a/tm2/Makefile b/tm2/Makefile index a5a8b8ade0d..0fa231415b2 100644 --- a/tm2/Makefile +++ b/tm2/Makefile @@ -27,6 +27,11 @@ GOFMT_FLAGS ?= -w fmt: $(rundep) mvdan.cc/gofumpt $(GOFMT_FLAGS) . +.PHONY: imports +GOIMPORTS_FLAGS ?= -w +imports: + $(rundep) golang.org/x/tools/cmd/goimports $(GOIMPORTS_FLAGS) . + .PHONY: lint lint: $(rundep) github.com/golangci/golangci-lint/cmd/golangci-lint run --config ../.github/golangci.yml ./... diff --git a/tm2/pkg/amino/tests/pb/tests.pb.go b/tm2/pkg/amino/tests/pb/tests.pb.go index bff4f37f862..6776f5ecb57 100644 --- a/tm2/pkg/amino/tests/pb/tests.pb.go +++ b/tm2/pkg/amino/tests/pb/tests.pb.go @@ -7,13 +7,14 @@ package pb import ( + reflect "reflect" + sync "sync" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" durationpb "google.golang.org/protobuf/types/known/durationpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" - reflect "reflect" - sync "sync" ) const ( diff --git a/tm2/pkg/amino/tests/proto3/proto/compat.pb.go b/tm2/pkg/amino/tests/proto3/proto/compat.pb.go index 9f38d4ef589..b03a9273125 100644 --- a/tm2/pkg/amino/tests/proto3/proto/compat.pb.go +++ b/tm2/pkg/amino/tests/proto3/proto/compat.pb.go @@ -7,11 +7,12 @@ package proto3 import ( + reflect "reflect" + sync "sync" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" timestamppb "google.golang.org/protobuf/types/known/timestamppb" - reflect "reflect" - sync "sync" ) const ( From a8e0dcebb6ca39cca36e05c1da296785414efba6 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 22 Jan 2024 11:25:11 +0100 Subject: [PATCH 23/43] Move block to indirect imports; add mod linter --- .github/golangci.yml | 12 ++++++++++++ go.mod | 9 +++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.github/golangci.yml b/.github/golangci.yml index 53141a3143d..6f2d808932f 100644 --- a/.github/golangci.yml +++ b/.github/golangci.yml @@ -37,6 +37,7 @@ linters: - errorlint # errorlint is a linter for that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13 - gofumpt # Stricter gofmt - unused # Checks Go code for unused constants, variables, functions and types + - gomodguard # Enforces an allow and block list for direct Go module dependencies linters-settings: gofmt: @@ -59,6 +60,17 @@ linters-settings: - opinionated - performance - style + gomodguard: + blocked: + modules: + - log/slog: + recommendations: + - golang.org/x/exp + reason: "the minimum go version for the monorepo is 1.20" + versions: + - go.uber.org/zap/exp: + version: "> 0.1.0" + reason: "this version of zap/exp is a requirement until we upgrade to go 1.21 (https://github.com/uber-go/zap/blob/master/exp/CHANGELOG.md)" issues: whole-files: true diff --git a/go.mod b/go.mod index 0fa2895ec9a..7a6f953eac0 100644 --- a/go.mod +++ b/go.mod @@ -45,12 +45,6 @@ require ( gopkg.in/yaml.v3 v3.0.1 ) -require ( - github.com/kr/text v0.2.0 // indirect - go.uber.org/atomic v1.10.0 // indirect - gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect -) - require ( github.com/btcsuite/btcd/btcec/v2 v2.3.2 github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 // indirect @@ -70,11 +64,14 @@ require ( github.com/gorilla/securecookie v1.1.1 // indirect github.com/gorilla/sessions v1.2.1 // indirect github.com/klauspost/compress v1.12.3 // indirect + github.com/kr/text v0.2.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/nxadm/tail v1.4.11 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/rivo/uniseg v0.4.3 // indirect go.opencensus.io v0.22.5 // indirect + go.uber.org/atomic v1.10.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect ) From fe5f770b55ce259f49417bfdf8b5369717a5ae0b Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 22 Jan 2024 11:27:35 +0100 Subject: [PATCH 24/43] Remove leftover message from go.mods --- contribs/gnodev/go.mod | 2 -- go.mod | 2 -- 2 files changed, 4 deletions(-) diff --git a/contribs/gnodev/go.mod b/contribs/gnodev/go.mod index 3e081bc03c4..ee6dd4ad7cb 100644 --- a/contribs/gnodev/go.mod +++ b/contribs/gnodev/go.mod @@ -54,8 +54,6 @@ require ( go.opencensus.io v0.22.5 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.10.0 // indirect - // This version of zap/exp is a requirement until we - // upgrade to go 1.21 (https://github.com/uber-go/zap/blob/master/exp/CHANGELOG.md) go.uber.org/zap/exp v0.1.0 // indirect golang.org/x/crypto v0.18.0 // indirect golang.org/x/mod v0.14.0 // indirect diff --git a/go.mod b/go.mod index 7a6f953eac0..95694fd716e 100644 --- a/go.mod +++ b/go.mod @@ -32,8 +32,6 @@ require ( go.etcd.io/bbolt v1.3.8 go.uber.org/multierr v1.10.0 go.uber.org/zap v1.24.0 - // This version of zap/exp is a requirement until we - // upgrade to go 1.21 (https://github.com/uber-go/zap/blob/master/exp/CHANGELOG.md) go.uber.org/zap/exp v0.1.0 golang.org/x/crypto v0.18.0 golang.org/x/exp v0.0.0-20240112132812-db7319d0e0e3 From 4130b15b679d4ab22e107927d5f3416ccd1e1b04 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 22 Jan 2024 11:31:38 +0100 Subject: [PATCH 25/43] Add goimports CI --- .github/workflows/lint.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b874159473e..c3ea4c97962 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -58,6 +58,34 @@ jobs: else echo 'Succeeded.' fi + imports: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Go + uses: actions/setup-go@v4 + with: + go-version: 1.21.x + + - name: Install make + run: sudo apt-get install -y make + + # prefill dependencies so that mod messages don't show up in make output + - name: Fetch dependencies + run: go mod download -modfile ./misc/devdeps/go.mod -x + + - name: Check goimports + run: | + output="$(GOIMPORTS_FLAGS=-l make -s imports)" + if [ ! -z "$output" ]; then + echo "The following files are not properly formatted; run 'make imports' to format them." + echo "$output" + exit 1 + else + echo 'Succeeded.' + fi mod_tidy_check: runs-on: ubuntu-latest if: ${{ github.actor != 'dependabot[bot]' }} From 34e40874a10e886cbbbab82102334272ac15b434 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20=C5=BDivkovi=C4=87?= Date: Mon, 22 Jan 2024 11:33:38 +0100 Subject: [PATCH 26/43] Update gno.land/pkg/sdk/vm/keeper.go Co-authored-by: Manfred Touron <94029+moul@users.noreply.github.com> --- gno.land/pkg/sdk/vm/keeper.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gno.land/pkg/sdk/vm/keeper.go b/gno.land/pkg/sdk/vm/keeper.go index 561a832af15..ebfd31a9a2e 100644 --- a/gno.land/pkg/sdk/vm/keeper.go +++ b/gno.land/pkg/sdk/vm/keeper.go @@ -363,7 +363,9 @@ func (vm *VMKeeper) Run(ctx sdk.Context, msg MsgRun) (res string, err error) { m2.Release() }() m2.RunMain() - ctx.Logger().Info("CPUCYCLES call: ", "cycles", m2.Cycles) + ctx.Logger().Info("CPUCYCLES call", + "cycles", m2.Cycles, + ) res = buf.String() return res, nil } From d66b6f70acb1df63cd6f9063ff2fc2b9746d39e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20=C5=BDivkovi=C4=87?= Date: Mon, 22 Jan 2024 11:34:36 +0100 Subject: [PATCH 27/43] Update gno.land/pkg/sdk/vm/keeper.go Co-authored-by: Manfred Touron <94029+moul@users.noreply.github.com> --- gno.land/pkg/sdk/vm/keeper.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gno.land/pkg/sdk/vm/keeper.go b/gno.land/pkg/sdk/vm/keeper.go index ebfd31a9a2e..5f85f3ea139 100644 --- a/gno.land/pkg/sdk/vm/keeper.go +++ b/gno.land/pkg/sdk/vm/keeper.go @@ -283,7 +283,7 @@ func (vm *VMKeeper) Call(ctx sdk.Context, msg MsgCall) (res string, err error) { m.Release() }() rtvs := m.Eval(xn) - ctx.Logger().Info("CPUCYCLES call: ", "num-cycles", m.Cycles) + ctx.Logger().Info("CPUCYCLES call", "num-cycles", m.Cycles) for i, rtv := range rtvs { res = res + rtv.String() if i < len(rtvs)-1 { From 795fe67e6c9fe1c346c2542b4b540d10e1fadf19 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Mon, 22 Jan 2024 11:51:53 +0100 Subject: [PATCH 28/43] Make the linting gods happy --- gno.land/pkg/gnoclient/client_test.go | 2 +- gno.land/pkg/sdk/vm/keeper.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gno.land/pkg/gnoclient/client_test.go b/gno.land/pkg/gnoclient/client_test.go index 418a95aa997..86af2858275 100644 --- a/gno.land/pkg/gnoclient/client_test.go +++ b/gno.land/pkg/gnoclient/client_test.go @@ -31,7 +31,7 @@ func newInMemorySigner(t *testing.T, chainid string) *SignerFromKeybase { func TestClient_Request(t *testing.T) { config, _ := integration.TestingNodeConfig(t, gnoenv.RootDir()) - node, remoteAddr := integration.TestingInMemoryNode(t, log.NewNopLogger(), config) + node, remoteAddr := integration.TestingInMemoryNode(t, log.NewNoopLogger(), config) defer node.Stop() signer := newInMemorySigner(t, config.TMConfig.ChainID()) diff --git a/gno.land/pkg/sdk/vm/keeper.go b/gno.land/pkg/sdk/vm/keeper.go index 5f85f3ea139..b4d29c99fec 100644 --- a/gno.land/pkg/sdk/vm/keeper.go +++ b/gno.land/pkg/sdk/vm/keeper.go @@ -364,7 +364,7 @@ func (vm *VMKeeper) Run(ctx sdk.Context, msg MsgRun) (res string, err error) { }() m2.RunMain() ctx.Logger().Info("CPUCYCLES call", - "cycles", m2.Cycles, + "cycles", m2.Cycles, ) res = buf.String() return res, nil From 01e4fd51650544b9568ca5a016e8c1c43523f27a Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Tue, 23 Jan 2024 15:31:44 +0100 Subject: [PATCH 29/43] Add testing logger --- gno.land/pkg/gnoweb/gnoweb_test.go | 8 +-- tm2/pkg/bft/blockchain/pool_test.go | 4 +- tm2/pkg/bft/blockchain/reactor_test.go | 6 +- tm2/pkg/bft/consensus/reactor_test.go | 16 ++--- tm2/pkg/bft/consensus/replay_test.go | 8 +-- tm2/pkg/bft/consensus/wal_test.go | 2 +- tm2/pkg/bft/mempool/clist_mempool_test.go | 4 +- tm2/pkg/bft/node/node_test.go | 18 ++--- .../privval/signer_listener_endpoint_test.go | 6 +- tm2/pkg/bft/rpc/lib/client/ws_client_test.go | 2 +- tm2/pkg/bft/rpc/lib/rpc_test.go | 8 +-- .../bft/rpc/lib/server/http_server_test.go | 4 +- tm2/pkg/bft/state/execution_test.go | 8 +-- tm2/pkg/bft/state/validation_test.go | 4 +- tm2/pkg/log/testing.go | 67 +++++++++++++++++++ tm2/pkg/p2p/conn/connection_test.go | 43 +++++++----- tm2/pkg/p2p/peer_test.go | 9 ++- 17 files changed, 148 insertions(+), 69 deletions(-) create mode 100644 tm2/pkg/log/testing.go diff --git a/gno.land/pkg/gnoweb/gnoweb_test.go b/gno.land/pkg/gnoweb/gnoweb_test.go index 552178a1df7..82c76266683 100644 --- a/gno.land/pkg/gnoweb/gnoweb_test.go +++ b/gno.land/pkg/gnoweb/gnoweb_test.go @@ -45,12 +45,12 @@ func TestRoutes(t *testing.T) { } config, _ := integration.TestingNodeConfig(t, gnoenv.RootDir()) - node, remoteAddr := integration.TestingInMemoryNode(t, log.NewNoopLogger(), config) + node, remoteAddr := integration.TestingInMemoryNode(t, log.NewTestingLogger(t), config) defer node.Stop() cfg := NewDefaultConfig() - logger := log.NewNoopLogger() + logger := log.NewTestingLogger(t) // set the `remoteAddr` of the client to the listening address of the // node, which is randomly assigned. @@ -94,13 +94,13 @@ func TestAnalytics(t *testing.T) { } config, _ := integration.TestingNodeConfig(t, gnoenv.RootDir()) - node, remoteAddr := integration.TestingInMemoryNode(t, log.NewNoopLogger(), config) + node, remoteAddr := integration.TestingInMemoryNode(t, log.NewTestingLogger(t), config) defer node.Stop() cfg := NewDefaultConfig() cfg.RemoteAddr = remoteAddr - logger := log.NewNoopLogger() + logger := log.NewTestingLogger(t) t.Run("with", func(t *testing.T) { for _, route := range routes { diff --git a/tm2/pkg/bft/blockchain/pool_test.go b/tm2/pkg/bft/blockchain/pool_test.go index 77a573663cd..a4d5636d5e3 100644 --- a/tm2/pkg/bft/blockchain/pool_test.go +++ b/tm2/pkg/bft/blockchain/pool_test.go @@ -137,7 +137,7 @@ func TestBlockPoolTimeout(t *testing.T) { errorsCh := make(chan peerError, 1000) requestsCh := make(chan BlockRequest, 1000) pool := NewBlockPool(start, requestsCh, errorsCh) - pool.SetLogger(log.NewNoopLogger()) + pool.SetLogger(log.NewTestingLogger(t)) err := pool.Start() if err != nil { t.Error(err) @@ -203,7 +203,7 @@ func TestBlockPoolRemovePeer(t *testing.T) { errorsCh := make(chan peerError) pool := NewBlockPool(1, requestsCh, errorsCh) - pool.SetLogger(log.NewNoopLogger()) + pool.SetLogger(log.NewTestingLogger(t)) err := pool.Start() require.NoError(t, err) defer pool.Stop() diff --git a/tm2/pkg/bft/blockchain/reactor_test.go b/tm2/pkg/bft/blockchain/reactor_test.go index 368c3e88816..982c29033fa 100644 --- a/tm2/pkg/bft/blockchain/reactor_test.go +++ b/tm2/pkg/bft/blockchain/reactor_test.go @@ -79,7 +79,7 @@ func newBlockchainReactor(logger *slog.Logger, genDoc *types.GenesisDoc, privVal // pool.height is determined from the store. fastSync := true db := dbm.NewMemDB() - blockExec := sm.NewBlockExecutor(db, log.NewNoopLogger(), proxyApp.Consensus(), mock.Mempool{}) + blockExec := sm.NewBlockExecutor(db, logger, proxyApp.Consensus(), mock.Mempool{}) sm.SaveState(db, state) // let's add some blocks in @@ -127,8 +127,8 @@ func TestNoBlockResponse(t *testing.T) { reactorPairs := make([]BlockchainReactorPair, 2) - reactorPairs[0] = newBlockchainReactor(log.NewNoopLogger(), genDoc, privVals, maxBlockHeight) - reactorPairs[1] = newBlockchainReactor(log.NewNoopLogger(), genDoc, privVals, 0) + reactorPairs[0] = newBlockchainReactor(log.NewTestingLogger(t), genDoc, privVals, maxBlockHeight) + reactorPairs[1] = newBlockchainReactor(log.NewTestingLogger(t), genDoc, privVals, 0) p2p.MakeConnectedSwitches(config.P2P, 2, func(i int, s *p2p.Switch) *p2p.Switch { s.AddReactor("BLOCKCHAIN", reactorPairs[i].reactor) diff --git a/tm2/pkg/bft/consensus/reactor_test.go b/tm2/pkg/bft/consensus/reactor_test.go index fef3b6dfc5d..96fd2ed987b 100644 --- a/tm2/pkg/bft/consensus/reactor_test.go +++ b/tm2/pkg/bft/consensus/reactor_test.go @@ -94,7 +94,7 @@ func TestReactorBasic(t *testing.T) { css, cleanup := randConsensusNet(N, "consensus_reactor_test", newMockTickerFunc(true), newCounter) defer cleanup() reactors, blocksSubs, eventSwitches, p2pSwitches := startConsensusNet(css, N) - defer stopConsensusNet(log.NewNoopLogger(), reactors, eventSwitches, p2pSwitches) + defer stopConsensusNet(log.NewTestingLogger(t), reactors, eventSwitches, p2pSwitches) // wait till everyone makes the first new block timeoutWaitGroup(t, N, func(j int) { <-blocksSubs[j] @@ -114,7 +114,7 @@ func TestReactorCreatesBlockWhenEmptyBlocksFalse(t *testing.T) { }) defer cleanup() reactors, blocksSubs, eventSwitches, p2pSwitches := startConsensusNet(css, N) - defer stopConsensusNet(log.NewNoopLogger(), reactors, eventSwitches, p2pSwitches) + defer stopConsensusNet(log.NewTestingLogger(t), reactors, eventSwitches, p2pSwitches) // send a tx if err := assertMempool(css[3].txNotifier).CheckTx([]byte{1, 2, 3}, nil); err != nil { @@ -134,7 +134,7 @@ func TestReactorReceiveDoesNotPanicIfAddPeerHasntBeenCalledYet(t *testing.T) { css, cleanup := randConsensusNet(N, "consensus_reactor_test", newMockTickerFunc(true), newCounter) defer cleanup() reactors, _, eventSwitches, p2pSwitches := startConsensusNet(css, N) - defer stopConsensusNet(log.NewNoopLogger(), reactors, eventSwitches, p2pSwitches) + defer stopConsensusNet(log.NewTestingLogger(t), reactors, eventSwitches, p2pSwitches) var ( reactor = reactors[0] @@ -158,7 +158,7 @@ func TestReactorReceivePanicsIfInitPeerHasntBeenCalledYet(t *testing.T) { css, cleanup := randConsensusNet(N, "consensus_reactor_test", newMockTickerFunc(true), newCounter) defer cleanup() reactors, _, eventSwitches, p2pSwitches := startConsensusNet(css, N) - defer stopConsensusNet(log.NewNoopLogger(), reactors, eventSwitches, p2pSwitches) + defer stopConsensusNet(log.NewTestingLogger(t), reactors, eventSwitches, p2pSwitches) var ( reactor = reactors[0] @@ -184,7 +184,7 @@ func TestFlappyReactorRecordsVotesAndBlockParts(t *testing.T) { css, cleanup := randConsensusNet(N, "consensus_reactor_test", newMockTickerFunc(true), newCounter) defer cleanup() reactors, blocksSubs, eventSwitches, p2pSwitches := startConsensusNet(css, N) - defer stopConsensusNet(log.NewNoopLogger(), reactors, eventSwitches, p2pSwitches) + defer stopConsensusNet(log.NewTestingLogger(t), reactors, eventSwitches, p2pSwitches) // wait till everyone makes the first new block timeoutWaitGroup(t, N, func(j int) { @@ -207,7 +207,7 @@ func TestReactorVotingPowerChange(t *testing.T) { t.Parallel() nVals := 4 - logger := log.NewNoopLogger() + logger := log.NewTestingLogger(t) css, cleanup := randConsensusNet(nVals, "consensus_voting_power_changes_test", newMockTickerFunc(true), newPersistentKVStore) defer cleanup() @@ -275,7 +275,7 @@ func TestReactorValidatorSetChanges(t *testing.T) { css, _, _, cleanup := randConsensusNetWithPeers(nVals, nPeers, "consensus_val_set_changes_test", newMockTickerFunc(true), newPersistentKVStoreWithPath) defer cleanup() - logger := log.NewNoopLogger() + logger := log.NewTestingLogger(t) reactors, blocksSubs, eventSwitches, p2pSwitches := startConsensusNet(css, nPeers) defer stopConsensusNet(logger, reactors, eventSwitches, p2pSwitches) @@ -377,7 +377,7 @@ func TestReactorWithTimeoutCommit(t *testing.T) { } reactors, blocksSubs, eventSwitches, p2pSwitches := startConsensusNet(css, N-1) - defer stopConsensusNet(log.NewNoopLogger(), reactors, eventSwitches, p2pSwitches) + defer stopConsensusNet(log.NewTestingLogger(t), reactors, eventSwitches, p2pSwitches) // wait till everyone makes the first new block timeoutWaitGroup(t, N-1, func(j int) { diff --git a/tm2/pkg/bft/consensus/replay_test.go b/tm2/pkg/bft/consensus/replay_test.go index 136327d6778..981e72d6ca3 100644 --- a/tm2/pkg/bft/consensus/replay_test.go +++ b/tm2/pkg/bft/consensus/replay_test.go @@ -72,7 +72,7 @@ func startNewConsensusStateAndWaitForBlock(t *testing.T, consensusReplayConfig * ) { t.Helper() - logger := log.NewNoopLogger() + logger := log.NewTestingLogger(t) state, _ := sm.LoadStateFromDBOrGenesisFile(stateDB, consensusReplayConfig.GenesisFile()) privValidator := loadPrivValidator(consensusReplayConfig) cs := newConsensusStateWithConfigAndBlockStore(consensusReplayConfig, state, privValidator, kvstore.NewKVStoreApplication(), blockDB) @@ -171,7 +171,7 @@ LOOP: t.Logf("====== LOOP %d\n", i) // create consensus state from a clean slate - logger := log.NewNoopLogger() + logger := log.NewTestingLogger(t) blockDB := dbm.NewMemDB() stateDB := blockDB state, _ := sm.MakeGenesisStateFromFile(consensusReplayConfig.GenesisFile()) @@ -572,7 +572,7 @@ func TestFlappyHandshakeReplayNone(t *testing.T) { func TestMockProxyApp(t *testing.T) { t.Parallel() - logger := log.NewNoopLogger() + logger := log.NewTestingLogger(t) validTxs, invalidTxs := 0, 0 txIndex := 0 @@ -664,7 +664,7 @@ func testHandshakeReplay(t *testing.T, config *cfg.Config, nBlocks int, mode uin wal, err := walm.NewWAL(walFile, maxMsgSize) require.NoError(t, err) - wal.SetLogger(log.NewNoopLogger()) + wal.SetLogger(log.NewTestingLogger(t)) err = wal.Start() require.NoError(t, err) defer wal.Stop() diff --git a/tm2/pkg/bft/consensus/wal_test.go b/tm2/pkg/bft/consensus/wal_test.go index a99401bc46a..b5d49dd6354 100644 --- a/tm2/pkg/bft/consensus/wal_test.go +++ b/tm2/pkg/bft/consensus/wal_test.go @@ -54,7 +54,7 @@ func TestWALTruncate(t *testing.T) { const walChunkSize = 409610 // 4KB wal := makeTempWAL(t, walChunkSize) - wal.SetLogger(log.NewNoopLogger()) + wal.SetLogger(log.NewTestingLogger(t)) type grouper interface { Group() *auto.Group diff --git a/tm2/pkg/bft/mempool/clist_mempool_test.go b/tm2/pkg/bft/mempool/clist_mempool_test.go index 660287f994a..4450dc3b764 100644 --- a/tm2/pkg/bft/mempool/clist_mempool_test.go +++ b/tm2/pkg/bft/mempool/clist_mempool_test.go @@ -269,7 +269,7 @@ func TestSerialReap(t *testing.T) { defer cleanup() appConnCon, _ := cc.NewABCIClient() - appConnCon.SetLogger(log.NewNoopLogger().With("module", "abci-client", "connection", "consensus")) + appConnCon.SetLogger(log.NewTestingLogger(t).With("module", "abci-client", "connection", "consensus")) err := appConnCon.Start() require.Nil(t, err) @@ -509,7 +509,7 @@ func TestMempoolMaxPendingTxsBytes(t *testing.T) { assert.EqualValues(t, 8, mempool.TxsBytes()) appConnCon, _ := cc.NewABCIClient() - appConnCon.SetLogger(log.NewNoopLogger().With("module", "abci-client", "connection", "consensus")) + appConnCon.SetLogger(log.NewTestingLogger(t).With("module", "abci-client", "connection", "consensus")) err = appConnCon.Start() require.Nil(t, err) defer appConnCon.Stop() diff --git a/tm2/pkg/bft/node/node_test.go b/tm2/pkg/bft/node/node_test.go index cf3d12537fa..d182b7fb0d5 100644 --- a/tm2/pkg/bft/node/node_test.go +++ b/tm2/pkg/bft/node/node_test.go @@ -96,7 +96,7 @@ func TestNodeDelayedStart(t *testing.T) { now := tmtime.Now() // create & start node - n, err := DefaultNewNode(config, log.NewNoopLogger()) + n, err := DefaultNewNode(config, log.NewTestingLogger(t)) n.GenesisDoc().GenesisTime = now.Add(2 * time.Second) require.NoError(t, err) @@ -113,7 +113,7 @@ func TestNodeSetAppVersion(t *testing.T) { defer os.RemoveAll(config.RootDir) // create & start node - n, err := DefaultNewNode(config, log.NewNoopLogger()) + n, err := DefaultNewNode(config, log.NewTestingLogger(t)) require.NoError(t, err) // default config uses the kvstore app @@ -138,7 +138,7 @@ func TestNodeSetPrivValTCP(t *testing.T) { dialer := privval.DialTCPFn(addr, 100*time.Millisecond, ed25519.GenPrivKey()) dialerEndpoint := privval.NewSignerDialerEndpoint( - log.NewNoopLogger(), + log.NewTestingLogger(t), dialer, ) privval.SignerDialerEndpointTimeoutReadWrite(100 * time.Millisecond)(dialerEndpoint) @@ -157,7 +157,7 @@ func TestNodeSetPrivValTCP(t *testing.T) { }() defer signerServer.Stop() - n, err := DefaultNewNode(config, log.NewNoopLogger()) + n, err := DefaultNewNode(config, log.NewTestingLogger(t)) require.NoError(t, err) assert.IsType(t, &privval.SignerClient{}, n.PrivValidator()) } @@ -170,7 +170,7 @@ func TestPrivValidatorListenAddrNoProtocol(t *testing.T) { defer os.RemoveAll(config.RootDir) config.BaseConfig.PrivValidatorListenAddr = addrNoPrefix - _, err := DefaultNewNode(config, log.NewNoopLogger()) + _, err := DefaultNewNode(config, log.NewTestingLogger(t)) assert.Error(t, err) } @@ -184,7 +184,7 @@ func TestNodeSetPrivValIPC(t *testing.T) { dialer := privval.DialUnixFn(tmpfile) dialerEndpoint := privval.NewSignerDialerEndpoint( - log.NewNoopLogger(), + log.NewTestingLogger(t), dialer, ) privval.SignerDialerEndpointTimeoutReadWrite(100 * time.Millisecond)(dialerEndpoint) @@ -201,7 +201,7 @@ func TestNodeSetPrivValIPC(t *testing.T) { }() defer pvsc.Stop() - n, err := DefaultNewNode(config, log.NewNoopLogger()) + n, err := DefaultNewNode(config, log.NewTestingLogger(t)) require.NoError(t, err) assert.IsType(t, &privval.SignerClient{}, n.PrivValidator()) } @@ -228,7 +228,7 @@ func TestCreateProposalBlock(t *testing.T) { require.Nil(t, err) defer proxyApp.Stop() - logger := log.NewNoopLogger() + logger := log.NewTestingLogger(t) var height int64 = 1 state, stateDB := state(1, height) @@ -289,7 +289,7 @@ func TestNodeNewNodeCustomReactors(t *testing.T) { proxy.DefaultClientCreator(nil, config.ProxyApp, config.ABCI, config.DBDir()), DefaultGenesisDocProviderFunc(config), DefaultDBProvider, - log.NewNoopLogger(), + log.NewTestingLogger(t), CustomReactors(map[string]p2p.Reactor{"FOO": cr, "BLOCKCHAIN": customBlockchainReactor}), ) require.NoError(t, err) diff --git a/tm2/pkg/bft/privval/signer_listener_endpoint_test.go b/tm2/pkg/bft/privval/signer_listener_endpoint_test.go index 843ce74a1ad..bb026cd9acc 100644 --- a/tm2/pkg/bft/privval/signer_listener_endpoint_test.go +++ b/tm2/pkg/bft/privval/signer_listener_endpoint_test.go @@ -64,7 +64,7 @@ func TestSignerRemoteRetryTCPOnly(t *testing.T) { }(ln, attemptCh) dialerEndpoint := NewSignerDialerEndpoint( - log.NewNoopLogger(), + log.NewTestingLogger(t), DialTCPFn(ln.Addr().String(), testTimeoutReadWrite, ed25519.GenPrivKey()), ) SignerDialerEndpointTimeoutReadWrite(time.Millisecond)(dialerEndpoint) @@ -91,7 +91,7 @@ func TestRetryConnToRemoteSigner(t *testing.T) { for _, tc := range getDialerTestCases(t) { var ( - logger = log.NewNoopLogger() + logger = log.NewTestingLogger(t) chainID = random.RandStr(12) mockPV = types.NewMockPV() endpointIsOpenCh = make(chan struct{}) @@ -174,7 +174,7 @@ func getMockEndpoints( t.Helper() var ( - logger = log.NewNoopLogger() + logger = log.NewTestingLogger(t) endpointIsOpenCh = make(chan struct{}) dialerEndpoint = NewSignerDialerEndpoint( diff --git a/tm2/pkg/bft/rpc/lib/client/ws_client_test.go b/tm2/pkg/bft/rpc/lib/client/ws_client_test.go index 228951ce37e..c902ee709e0 100644 --- a/tm2/pkg/bft/rpc/lib/client/ws_client_test.go +++ b/tm2/pkg/bft/rpc/lib/client/ws_client_test.go @@ -208,7 +208,7 @@ func startClient(t *testing.T, addr net.Addr) *WSClient { c := NewWSClient(addr.String(), "/websocket") err := c.Start() require.Nil(t, err) - c.SetLogger(log.NewNoopLogger()) + c.SetLogger(log.NewTestingLogger(t)) return c } diff --git a/tm2/pkg/bft/rpc/lib/rpc_test.go b/tm2/pkg/bft/rpc/lib/rpc_test.go index ea59e055c84..386e641cb53 100644 --- a/tm2/pkg/bft/rpc/lib/rpc_test.go +++ b/tm2/pkg/bft/rpc/lib/rpc_test.go @@ -279,7 +279,7 @@ func TestServersAndClientsBasic(t *testing.T) { testWithHTTPClient(t, cl2) cl3 := client.NewWSClient(addr, websocketEndpoint) - cl3.SetLogger(log.NewNoopLogger()) + cl3.SetLogger(log.NewTestingLogger(t)) err := cl3.Start() require.Nil(t, err) fmt.Printf("=== testing server on %s using WS client", addr) @@ -322,7 +322,7 @@ func TestWSNewWSRPCFunc(t *testing.T) { t.Parallel() cl := client.NewWSClient(tcpAddr, websocketEndpoint) - cl.SetLogger(log.NewNoopLogger()) + cl.SetLogger(log.NewTestingLogger(t)) err := cl.Start() require.Nil(t, err) defer cl.Stop() @@ -349,7 +349,7 @@ func TestWSHandlesArrayParams(t *testing.T) { t.Parallel() cl := client.NewWSClient(tcpAddr, websocketEndpoint) - cl.SetLogger(log.NewNoopLogger()) + cl.SetLogger(log.NewTestingLogger(t)) err := cl.Start() require.Nil(t, err) defer cl.Stop() @@ -376,7 +376,7 @@ func TestWSClientPingPong(t *testing.T) { t.Parallel() cl := client.NewWSClient(tcpAddr, websocketEndpoint) - cl.SetLogger(log.NewNoopLogger()) + cl.SetLogger(log.NewTestingLogger(t)) err := cl.Start() require.Nil(t, err) defer cl.Stop() diff --git a/tm2/pkg/bft/rpc/lib/server/http_server_test.go b/tm2/pkg/bft/rpc/lib/server/http_server_test.go index d57ff6e9633..6c6d9ad14d6 100644 --- a/tm2/pkg/bft/rpc/lib/server/http_server_test.go +++ b/tm2/pkg/bft/rpc/lib/server/http_server_test.go @@ -40,7 +40,7 @@ func TestMaxOpenConnections(t *testing.T) { l, err := Listen("tcp://127.0.0.1:0", config) require.NoError(t, err) defer l.Close() - go StartHTTPServer(l, mux, log.NewNoopLogger(), config) + go StartHTTPServer(l, mux, log.NewTestingLogger(t), config) // Make N GET calls to the server. attempts := max * 2 @@ -82,7 +82,7 @@ func TestStartHTTPAndTLSServer(t *testing.T) { fmt.Fprint(w, "some body") }) - go StartHTTPAndTLSServer(ln, mux, "test.crt", "test.key", log.NewNoopLogger(), DefaultConfig()) + go StartHTTPAndTLSServer(ln, mux, "test.crt", "test.key", log.NewTestingLogger(t), DefaultConfig()) tr := &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, diff --git a/tm2/pkg/bft/state/execution_test.go b/tm2/pkg/bft/state/execution_test.go index 8f33c9e21a9..18dd8746840 100644 --- a/tm2/pkg/bft/state/execution_test.go +++ b/tm2/pkg/bft/state/execution_test.go @@ -39,7 +39,7 @@ func TestApplyBlock(t *testing.T) { state, stateDB, _ := makeState(1, 1) - blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mock.Mempool{}) + blockExec := sm.NewBlockExecutor(stateDB, log.NewTestingLogger(t), proxyApp.Consensus(), mock.Mempool{}) evsw := events.NewEventSwitch() blockExec.SetEventSwitch(evsw) @@ -90,7 +90,7 @@ func TestBeginBlockValidators(t *testing.T) { // block for height 2 block, _ := state.MakeBlock(2, makeTxs(2), lastCommit, state.Validators.GetProposer().Address) - _, err = sm.ExecCommitBlock(proxyApp.Consensus(), block, log.NewNoopLogger(), stateDB) + _, err = sm.ExecCommitBlock(proxyApp.Consensus(), block, log.NewTestingLogger(t), stateDB) require.Nil(t, err, tc.desc) // -> app receives a list of validators with a bool indicating if they signed @@ -273,7 +273,7 @@ func TestEndBlockValidatorUpdates(t *testing.T) { state, stateDB, _ := makeState(1, 1) - blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mock.Mempool{}) + blockExec := sm.NewBlockExecutor(stateDB, log.NewTestingLogger(t), proxyApp.Consensus(), mock.Mempool{}) evsw := events.NewEventSwitch() err = evsw.Start() @@ -340,7 +340,7 @@ func TestEndBlockValidatorUpdatesResultingInEmptySet(t *testing.T) { defer proxyApp.Stop() state, stateDB, _ := makeState(1, 1) - blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mock.Mempool{}) + blockExec := sm.NewBlockExecutor(stateDB, log.NewTestingLogger(t), proxyApp.Consensus(), mock.Mempool{}) block := makeBlock(state, 1) blockID := types.BlockID{Hash: block.Hash(), PartsHeader: block.MakePartSet(testPartSize).Header()} diff --git a/tm2/pkg/bft/state/validation_test.go b/tm2/pkg/bft/state/validation_test.go index d6fb2c2bd8f..7ab9d1035ee 100644 --- a/tm2/pkg/bft/state/validation_test.go +++ b/tm2/pkg/bft/state/validation_test.go @@ -26,7 +26,7 @@ func TestValidateBlockHeader(t *testing.T) { defer proxyApp.Stop() state, stateDB, privVals := makeState(3, 1) - blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mock.Mempool{}) + blockExec := sm.NewBlockExecutor(stateDB, log.NewTestingLogger(t), proxyApp.Consensus(), mock.Mempool{}) lastCommit := types.NewCommit(types.BlockID{}, nil) // some bad values @@ -89,7 +89,7 @@ func TestValidateBlockCommit(t *testing.T) { defer proxyApp.Stop() state, stateDB, privVals := makeState(1, 1) - blockExec := sm.NewBlockExecutor(stateDB, log.NewNoopLogger(), proxyApp.Consensus(), mock.Mempool{}) + blockExec := sm.NewBlockExecutor(stateDB, log.NewTestingLogger(t), proxyApp.Consensus(), mock.Mempool{}) lastCommit := types.NewCommit(types.BlockID{}, nil) wrongPrecommitsCommit := types.NewCommit(types.BlockID{}, nil) badPrivVal := types.NewMockPV() diff --git a/tm2/pkg/log/testing.go b/tm2/pkg/log/testing.go new file mode 100644 index 00000000000..956fbc5801a --- /dev/null +++ b/tm2/pkg/log/testing.go @@ -0,0 +1,67 @@ +package log + +import ( + "fmt" + "os" + "strings" + "testing" + + "github.com/jaekwon/testify/require" + "golang.org/x/exp/slog" +) + +// NewTestingLogger returns a new testing logger +func NewTestingLogger(t *testing.T) *slog.Logger { + t.Helper() + + if !testing.Verbose() { + return NewNoopLogger() + } + + // Parse the environment vars + envLevel := os.Getenv("LOG_LEVEL") + envPath := os.Getenv("LOG_PATH") + + // Default logger config + logLevel := slog.LevelError + logOutput := os.Stdout + + // Set the logger level, if any + switch strings.ToLower(envLevel) { + case "info": + logLevel = slog.LevelInfo + case "debug": + logLevel = slog.LevelDebug + case "warn": + logLevel = slog.LevelWarn + } + + // Check if the log output needs to be a file + if envPath != "" { + logFile, err := os.Create( + fmt.Sprintf( + "%s_%s", + envPath, + t.Name(), + ), + ) + require.NoError(t, err) + + t.Cleanup(func() { + _ = logFile.Close() + }) + + logOutput = logFile + } + + // Create the log handler + logHandler := slog.NewTextHandler( + logOutput, + &slog.HandlerOptions{ + AddSource: true, + Level: logLevel, + }, + ) + + return slog.New(logHandler) +} diff --git a/tm2/pkg/p2p/conn/connection_test.go b/tm2/pkg/p2p/conn/connection_test.go index 3e06d5eb09e..7bbe88ded22 100644 --- a/tm2/pkg/p2p/conn/connection_test.go +++ b/tm2/pkg/p2p/conn/connection_test.go @@ -16,23 +16,32 @@ import ( const maxPingPongPacketSize = 1024 // bytes -func createTestMConnection(conn net.Conn) *MConnection { +func createTestMConnection(t *testing.T, conn net.Conn) *MConnection { + t.Helper() + onReceive := func(chID byte, msgBytes []byte) { } onError := func(r interface{}) { } - c := createMConnectionWithCallbacks(conn, onReceive, onError) - c.SetLogger(log.NewNoopLogger()) + c := createMConnectionWithCallbacks(t, conn, onReceive, onError) + c.SetLogger(log.NewTestingLogger(t)) return c } -func createMConnectionWithCallbacks(conn net.Conn, onReceive func(chID byte, msgBytes []byte), onError func(r interface{})) *MConnection { +func createMConnectionWithCallbacks( + t *testing.T, + conn net.Conn, + onReceive func(chID byte, msgBytes []byte), + onError func(r interface{}), +) *MConnection { + t.Helper() + cfg := DefaultMConnConfig() cfg.PingInterval = 90 * time.Millisecond cfg.PongTimeout = 45 * time.Millisecond chDescs := []*ChannelDescriptor{{ID: 0x01, Priority: 1, SendQueueCapacity: 1}} c := NewMConnectionWithConfig(conn, chDescs, onReceive, onError, cfg) - c.SetLogger(log.NewNoopLogger()) + c.SetLogger(log.NewTestingLogger(t)) return c } @@ -43,7 +52,7 @@ func TestMConnectionSendFlushStop(t *testing.T) { defer server.Close() //nolint: errcheck defer client.Close() //nolint: errcheck - clientConn := createTestMConnection(client) + clientConn := createTestMConnection(t, client) err := clientConn.Start() require.Nil(t, err) defer clientConn.Stop() @@ -90,7 +99,7 @@ func TestMConnectionSend(t *testing.T) { defer server.Close() //nolint: errcheck defer client.Close() //nolint: errcheck - mconn := createTestMConnection(client) + mconn := createTestMConnection(t, client) err := mconn.Start() require.Nil(t, err) defer mconn.Stop() @@ -131,12 +140,12 @@ func TestMConnectionReceive(t *testing.T) { onError := func(r interface{}) { errorsCh <- r } - mconn1 := createMConnectionWithCallbacks(client, onReceive, onError) + mconn1 := createMConnectionWithCallbacks(t, client, onReceive, onError) err := mconn1.Start() require.Nil(t, err) defer mconn1.Stop() - mconn2 := createTestMConnection(server) + mconn2 := createTestMConnection(t, server) err = mconn2.Start() require.Nil(t, err) defer mconn2.Stop() @@ -161,7 +170,7 @@ func TestMConnectionStatus(t *testing.T) { defer server.Close() //nolint: errcheck defer client.Close() //nolint: errcheck - mconn := createTestMConnection(client) + mconn := createTestMConnection(t, client) err := mconn.Start() require.Nil(t, err) defer mconn.Stop() @@ -186,7 +195,7 @@ func TestMConnectionPongTimeoutResultsInError(t *testing.T) { onError := func(r interface{}) { errorsCh <- r } - mconn := createMConnectionWithCallbacks(client, onReceive, onError) + mconn := createMConnectionWithCallbacks(t, client, onReceive, onError) err := mconn.Start() require.Nil(t, err) defer mconn.Stop() @@ -227,7 +236,7 @@ func TestMConnectionMultiplePongsInTheBeginning(t *testing.T) { onError := func(r interface{}) { errorsCh <- r } - mconn := createMConnectionWithCallbacks(client, onReceive, onError) + mconn := createMConnectionWithCallbacks(t, client, onReceive, onError) err := mconn.Start() require.Nil(t, err) defer mconn.Stop() @@ -282,7 +291,7 @@ func TestMConnectionMultiplePings(t *testing.T) { onError := func(r interface{}) { errorsCh <- r } - mconn := createMConnectionWithCallbacks(client, onReceive, onError) + mconn := createMConnectionWithCallbacks(t, client, onReceive, onError) err := mconn.Start() require.Nil(t, err) defer mconn.Stop() @@ -325,7 +334,7 @@ func TestMConnectionPingPongs(t *testing.T) { onError := func(r interface{}) { errorsCh <- r } - mconn := createMConnectionWithCallbacks(client, onReceive, onError) + mconn := createMConnectionWithCallbacks(t, client, onReceive, onError) err := mconn.Start() require.Nil(t, err) defer mconn.Stop() @@ -378,7 +387,7 @@ func TestMConnectionStopsAndReturnsError(t *testing.T) { onError := func(r interface{}) { errorsCh <- r } - mconn := createMConnectionWithCallbacks(client, onReceive, onError) + mconn := createMConnectionWithCallbacks(t, client, onReceive, onError) err := mconn.Start() require.Nil(t, err) defer mconn.Stop() @@ -422,7 +431,7 @@ func newClientAndServerConnsForReadErrors(t *testing.T, chOnErr chan struct{}) ( onError = func(r interface{}) { chOnErr <- struct{}{} } - mconnServer := createMConnectionWithCallbacks(server, onReceive, onError) + mconnServer := createMConnectionWithCallbacks(t, server, onReceive, onError) mconnServer.SetLogger(serverLogger) err = mconnServer.Start() require.Nil(t, err) @@ -545,7 +554,7 @@ func TestMConnectionTrySend(t *testing.T) { defer server.Close() defer client.Close() - mconn := createTestMConnection(client) + mconn := createTestMConnection(t, client) err := mconn.Start() require.Nil(t, err) defer mconn.Stop() diff --git a/tm2/pkg/p2p/peer_test.go b/tm2/pkg/p2p/peer_test.go index f87cce2d89e..28217c4486e 100644 --- a/tm2/pkg/p2p/peer_test.go +++ b/tm2/pkg/p2p/peer_test.go @@ -28,7 +28,7 @@ func TestPeerBasic(t *testing.T) { rp.Start() defer rp.Stop() - p, err := createOutboundPeerAndPerformHandshake(rp.Addr(), cfg, conn.DefaultMConnConfig()) + p, err := createOutboundPeerAndPerformHandshake(t, rp.Addr(), cfg, conn.DefaultMConnConfig()) require.Nil(err) err = p.Start() @@ -56,7 +56,7 @@ func TestPeerSend(t *testing.T) { rp.Start() defer rp.Stop() - p, err := createOutboundPeerAndPerformHandshake(rp.Addr(), config, conn.DefaultMConnConfig()) + p, err := createOutboundPeerAndPerformHandshake(t, rp.Addr(), config, conn.DefaultMConnConfig()) require.Nil(err) err = p.Start() @@ -69,10 +69,13 @@ func TestPeerSend(t *testing.T) { } func createOutboundPeerAndPerformHandshake( + t *testing.T, addr *NetAddress, config *config.P2PConfig, mConfig conn.MConnConfig, ) (*peer, error) { + t.Helper() + chDescs := []*conn.ChannelDescriptor{ {ID: testCh, Priority: 1}, } @@ -90,7 +93,7 @@ func createOutboundPeerAndPerformHandshake( } p := newPeer(pc, mConfig, peerNodeInfo, reactorsByCh, chDescs, func(p Peer, r interface{}) {}) - p.SetLogger(log.NewNoopLogger().With("peer", addr)) + p.SetLogger(log.NewTestingLogger(t).With("peer", addr)) return p, nil } From 6471c93ae820f55f1b99978a454d233bba82c941 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Tue, 23 Jan 2024 15:41:55 +0100 Subject: [PATCH 30/43] Tidy go mods --- Makefile | 6 +++++- contribs/gnokeykc/go.mod | 5 +++++ contribs/gnokeykc/go.sum | 7 +++++++ misc/Makefile | 7 +++++++ misc/loop/go.mod | 4 ++++ misc/loop/go.sum | 7 +++++++ misc/mod_tidy.sh | 20 ++++++++++++++++++++ 7 files changed, 55 insertions(+), 1 deletion(-) create mode 100755 misc/mod_tidy.sh diff --git a/Makefile b/Makefile index 88dae818b66..2eda9925723 100644 --- a/Makefile +++ b/Makefile @@ -50,4 +50,8 @@ lint: imports: $(MAKE) --no-print-directory -C tm2 imports $(MAKE) --no-print-directory -C gnovm imports - $(MAKE) --no-print-directory -C gno.land imports \ No newline at end of file + $(MAKE) --no-print-directory -C gno.land imports + +.PHONY: tidy +tidy: + $(MAKE) --no-print-directory -C misc tidy diff --git a/contribs/gnokeykc/go.mod b/contribs/gnokeykc/go.mod index aa5478b6fe7..8288958277d 100644 --- a/contribs/gnokeykc/go.mod +++ b/contribs/gnokeykc/go.mod @@ -16,6 +16,7 @@ require ( github.com/cespare/xxhash v1.1.0 // indirect github.com/cespare/xxhash/v2 v2.1.1 // indirect github.com/danieljoos/wincred v1.2.0 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/dgraph-io/badger/v3 v3.2103.5 // indirect github.com/dgraph-io/ristretto v0.1.1 // indirect @@ -30,6 +31,7 @@ require ( github.com/golang/snappy v0.0.4 // indirect github.com/google/flatbuffers v1.12.1 // indirect github.com/gorilla/websocket v1.5.1 // indirect + github.com/jaekwon/testify v1.6.1 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/klauspost/compress v1.12.3 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect @@ -37,7 +39,9 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/peterbourgon/ff/v3 v3.4.0 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rs/cors v1.10.1 // indirect + github.com/stretchr/testify v1.8.4 // indirect github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect go.etcd.io/bbolt v1.3.8 // indirect go.opencensus.io v0.22.5 // indirect @@ -48,4 +52,5 @@ require ( golang.org/x/sys v0.16.0 // indirect golang.org/x/term v0.16.0 // indirect google.golang.org/protobuf v1.31.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/contribs/gnokeykc/go.sum b/contribs/gnokeykc/go.sum index d0674623d83..b4c342186a9 100644 --- a/contribs/gnokeykc/go.sum +++ b/contribs/gnokeykc/go.sum @@ -108,6 +108,7 @@ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jaekwon/testify v1.6.1 h1:4AtAJcR9GzXN5W4DdY7ie74iCPiJV1JJUJL90t2ZUyw= +github.com/jaekwon/testify v1.6.1/go.mod h1:Oun0RXIHI7osufabQ60i4Lqkj0GXLbqI1I7kgzBNm1U= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= @@ -118,9 +119,11 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.12.3 h1:G5AfA94pHPysR56qqrkO2pxEexdDzrpFJ6yt/VqWxVU= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/linxGnu/grocksdb v1.8.11 h1:BGol9e5gB1BrsTvOxloC88pe70TCqgrfLNwkyWW0kD8= @@ -165,8 +168,10 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= @@ -270,6 +275,7 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= @@ -280,4 +286,5 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/misc/Makefile b/misc/Makefile index 84acc40e387..efda4949331 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -26,3 +26,10 @@ GOTEST_FLAGS ?= -v -p 1 -timeout=30m .PHONY: _test.genstd _test.genstd: go test ./genstd/... $(GOTEST_FLAGS) + +.PHONY: tidy +tidy: + # Give execute permissions + chmod +x ./mod_tidy.sh + # Tidy go mods + ./mod_tidy.sh diff --git a/misc/loop/go.mod b/misc/loop/go.mod index 9582920efd7..7cbe2d40565 100644 --- a/misc/loop/go.mod +++ b/misc/loop/go.mod @@ -27,6 +27,7 @@ require ( github.com/golang/snappy v0.0.4 // indirect github.com/google/flatbuffers v1.12.1 // indirect github.com/gorilla/websocket v1.5.1 // indirect + github.com/jaekwon/testify v1.6.1 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/klauspost/compress v1.12.3 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect @@ -34,7 +35,9 @@ require ( github.com/pelletier/go-toml v1.9.5 // indirect github.com/peterbourgon/ff/v3 v3.4.0 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rs/cors v1.10.1 // indirect + github.com/stretchr/testify v1.8.4 // indirect github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect go.etcd.io/bbolt v1.3.8 // indirect go.opencensus.io v0.22.5 // indirect @@ -49,6 +52,7 @@ require ( golang.org/x/term v0.16.0 // indirect golang.org/x/tools v0.17.0 // indirect google.golang.org/protobuf v1.31.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) replace github.com/gnolang/gno => ../../ diff --git a/misc/loop/go.sum b/misc/loop/go.sum index 0079b9e7164..26c1f76d527 100644 --- a/misc/loop/go.sum +++ b/misc/loop/go.sum @@ -106,6 +106,7 @@ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jaekwon/testify v1.6.1 h1:4AtAJcR9GzXN5W4DdY7ie74iCPiJV1JJUJL90t2ZUyw= +github.com/jaekwon/testify v1.6.1/go.mod h1:Oun0RXIHI7osufabQ60i4Lqkj0GXLbqI1I7kgzBNm1U= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= @@ -117,8 +118,10 @@ github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6 github.com/klauspost/compress v1.12.3 h1:G5AfA94pHPysR56qqrkO2pxEexdDzrpFJ6yt/VqWxVU= github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= @@ -164,8 +167,10 @@ github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DM github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok= github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= @@ -276,6 +281,7 @@ google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= @@ -286,4 +292,5 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/misc/mod_tidy.sh b/misc/mod_tidy.sh new file mode 100755 index 00000000000..fdb0e1f454f --- /dev/null +++ b/misc/mod_tidy.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +# This script finds and tidies all go.mod +# files recursively from the repository root + +set -e # exit on error + +# CD into the repo root +cd .. + +# Find all go.mod files +gomods=$(find . -type f -name go.mod) + +# Tidy each go.mod file +for modfile in $gomods; do + dir=$(dirname "$modfile") + + # Run go mod tidy in the directory + (cd "$dir" && go mod tidy -v) || exit 1 +done \ No newline at end of file From 86ad349bf3d69e68aa270e9aef7b54195eaed1d5 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Tue, 23 Jan 2024 16:12:07 +0100 Subject: [PATCH 31/43] Output the log to a dir --- tm2/pkg/log/testing.go | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/tm2/pkg/log/testing.go b/tm2/pkg/log/testing.go index 956fbc5801a..a4350cf9eb0 100644 --- a/tm2/pkg/log/testing.go +++ b/tm2/pkg/log/testing.go @@ -3,8 +3,10 @@ package log import ( "fmt" "os" + "path/filepath" "strings" "testing" + "time" "github.com/jaekwon/testify/require" "golang.org/x/exp/slog" @@ -20,7 +22,7 @@ func NewTestingLogger(t *testing.T) *slog.Logger { // Parse the environment vars envLevel := os.Getenv("LOG_LEVEL") - envPath := os.Getenv("LOG_PATH") + envPath := os.Getenv("LOG_PATH_DIR") // Default logger config logLevel := slog.LevelError @@ -38,13 +40,19 @@ func NewTestingLogger(t *testing.T) *slog.Logger { // Check if the log output needs to be a file if envPath != "" { - logFile, err := os.Create( - fmt.Sprintf( - "%s_%s", - envPath, - t.Name(), - ), + // Create the top-level log directory + if err := os.Mkdir(envPath, 0o755); err != nil && !os.IsExist(err) { + t.Fatalf("Failed to create log directory: %v", err) + } + + logName := fmt.Sprintf( + "%s-%d.log", + t.Name(), // unique test name + time.Now().Unix(), // unique test timestamp ) + logPath := filepath.Join(envPath, logName) + + logFile, err := os.Create(logPath) require.NoError(t, err) t.Cleanup(func() { From 9e451967189d8d905e20664092a9806a92c4f7b7 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Tue, 23 Jan 2024 16:20:14 +0100 Subject: [PATCH 32/43] Update workflows --- .github/workflows/db-tests.yml | 9 +++++++++ .github/workflows/examples.yml | 8 ++++++++ .github/workflows/gnoland.yml | 8 ++++++++ .github/workflows/gnovm.yml | 8 ++++++++ .github/workflows/misc.yml | 9 +++++++++ .github/workflows/tm2.yml | 8 ++++++++ 6 files changed, 50 insertions(+) diff --git a/.github/workflows/db-tests.yml b/.github/workflows/db-tests.yml index f8da78cc3d8..b259a0bcf74 100644 --- a/.github/workflows/db-tests.yml +++ b/.github/workflows/db-tests.yml @@ -47,6 +47,15 @@ jobs: wget http://ftp.us.debian.org/debian/pool/main/l/leveldb/libleveldb-dev_1.22-3_amd64.deb sudo dpkg -i *.deb + - name: Set environment variables for debug mode + if: env.ACTIONS_STEP_DEBUG == 'true' + run: | + export LOG_PATH_DIR=${{ runner.temp }}/logs + mkdir -p $LOG_PATH_DIR + + echo "LOG_LEVEL=debug" >> $GITHUB_ENV + echo "LOG_PATH_DIR=$LOG_PATH_DIR" >> $GITHUB_ENV + # test ./pkgs/db - name: test ./tm2/pkg/db run: go test -tags ${{ matrix.tags }} ./tm2/pkg/db/... diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml index b72b9b24dc1..35917d38e99 100644 --- a/.github/workflows/examples.yml +++ b/.github/workflows/examples.yml @@ -48,6 +48,14 @@ jobs: - uses: actions/setup-go@v4 with: go-version: ${{ matrix.goversion }} + - name: Set environment variables for debug mode + if: env.ACTIONS_STEP_DEBUG == 'true' + run: | + export LOG_PATH_DIR=${{ runner.temp }}/logs + mkdir -p $LOG_PATH_DIR + + echo "LOG_LEVEL=debug" >> $GITHUB_ENV + echo "LOG_PATH_DIR=$LOG_PATH_DIR" >> $GITHUB_ENV - run: go install -v ./gnovm/cmd/gno - run: go run ./gnovm/cmd/gno test --verbose ./examples/... lint: diff --git a/.github/workflows/gnoland.yml b/.github/workflows/gnoland.yml index d305bed2dcd..d171a68c0a6 100644 --- a/.github/workflows/gnoland.yml +++ b/.github/workflows/gnoland.yml @@ -68,6 +68,14 @@ jobs: - uses: actions/setup-go@v4 with: go-version: ${{ matrix.goversion }} + - name: Set environment variables for debug mode + if: env.ACTIONS_STEP_DEBUG == 'true' + run: | + export LOG_PATH_DIR=${{ runner.temp }}/logs + mkdir -p $LOG_PATH_DIR + + echo "LOG_LEVEL=debug" >> $GITHUB_ENV + echo "LOG_PATH_DIR=$LOG_PATH_DIR" >> $GITHUB_ENV - name: test working-directory: gno.land run: | diff --git a/.github/workflows/gnovm.yml b/.github/workflows/gnovm.yml index 5fa68ac305a..afa11177835 100644 --- a/.github/workflows/gnovm.yml +++ b/.github/workflows/gnovm.yml @@ -74,6 +74,14 @@ jobs: - uses: actions/setup-go@v4 with: go-version: ${{ matrix.goversion }} + - name: Set environment variables for debug mode + if: env.ACTIONS_STEP_DEBUG == 'true' + run: | + export LOG_PATH_DIR=${{ runner.temp }}/logs + mkdir -p $LOG_PATH_DIR + + echo "LOG_LEVEL=debug" >> $GITHUB_ENV + echo "LOG_PATH_DIR=$LOG_PATH_DIR" >> $GITHUB_ENV - name: test working-directory: gnovm env: diff --git a/.github/workflows/misc.yml b/.github/workflows/misc.yml index 9c666675fa4..52329e9c7d6 100644 --- a/.github/workflows/misc.yml +++ b/.github/workflows/misc.yml @@ -63,6 +63,15 @@ jobs: with: go-version: ${{ matrix.goversion }} + - name: Set environment variables for debug mode + if: env.ACTIONS_STEP_DEBUG == 'true' + run: | + export LOG_PATH_DIR=${{ runner.temp }}/logs + mkdir -p $LOG_PATH_DIR + + echo "LOG_LEVEL=debug" >> $GITHUB_ENV + echo "LOG_PATH_DIR=$LOG_PATH_DIR" >> $GITHUB_ENV + - name: Test working-directory: misc run: | diff --git a/.github/workflows/tm2.yml b/.github/workflows/tm2.yml index d5c6d9ddda6..f3edaf8bb1c 100644 --- a/.github/workflows/tm2.yml +++ b/.github/workflows/tm2.yml @@ -61,6 +61,14 @@ jobs: - uses: actions/setup-go@v4 with: go-version: ${{ matrix.goversion }} + - name: Set environment variables for debug mode + if: env.ACTIONS_STEP_DEBUG == 'true' + run: | + export LOG_PATH_DIR=${{ runner.temp }}/logs + mkdir -p $LOG_PATH_DIR + + echo "LOG_LEVEL=debug" >> $GITHUB_ENV + echo "LOG_PATH_DIR=$LOG_PATH_DIR" >> $GITHUB_ENV - name: test working-directory: tm2 run: | From 301409a3a75aded5ef6e5819c0ffe302797fd5fa Mon Sep 17 00:00:00 2001 From: gfanton <8671905+gfanton@users.noreply.github.com> Date: Tue, 23 Jan 2024 16:42:53 +0100 Subject: [PATCH 33/43] fix: workflow debug env variable Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com> --- .github/workflows/gnoland.yml | 11 ++++++++--- .github/workflows/gnovm.yml | 10 ++++++++-- .github/workflows/tm2.yml | 11 +++++++++-- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/.github/workflows/gnoland.yml b/.github/workflows/gnoland.yml index d171a68c0a6..daeb619280c 100644 --- a/.github/workflows/gnoland.yml +++ b/.github/workflows/gnoland.yml @@ -68,10 +68,9 @@ jobs: - uses: actions/setup-go@v4 with: go-version: ${{ matrix.goversion }} - - name: Set environment variables for debug mode - if: env.ACTIONS_STEP_DEBUG == 'true' + if: ${{ runner.debug == 1 }} run: | - export LOG_PATH_DIR=${{ runner.temp }}/logs + export LOG_PATH_DIR=${{ runner.temp }}/logs-go${{ matrix.goversion }}-${{ matrix.args }} mkdir -p $LOG_PATH_DIR echo "LOG_LEVEL=debug" >> $GITHUB_ENV @@ -94,6 +93,12 @@ jobs: with: name: ${{runner.os}}-coverage-gnoland-${{ matrix.args}}-${{matrix.goversion}} path: ./gno.land/coverage.out + - uses: actions/upload-artifact@v3 + if: ${{ runner.debug == 1 }} + with: + name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} + path: ${{ env.LOG_PATH_DIR }} + upload-coverage: needs: test diff --git a/.github/workflows/gnovm.yml b/.github/workflows/gnovm.yml index afa11177835..4556b64a3ab 100644 --- a/.github/workflows/gnovm.yml +++ b/.github/workflows/gnovm.yml @@ -75,9 +75,9 @@ jobs: with: go-version: ${{ matrix.goversion }} - name: Set environment variables for debug mode - if: env.ACTIONS_STEP_DEBUG == 'true' + if: ${{ runner.debug == 1 }} run: | - export LOG_PATH_DIR=${{ runner.temp }}/logs + export LOG_PATH_DIR=${{ runner.temp }}/logs-go${{ matrix.goversion }}-${{ matrix.args }} mkdir -p $LOG_PATH_DIR echo "LOG_LEVEL=debug" >> $GITHUB_ENV @@ -100,6 +100,12 @@ jobs: with: name: ${{runner.os}}-coverage-gnovm-${{ matrix.args}}-${{matrix.goversion}} path: ${{ env.COVERAGE_DIR }} + - uses: actions/upload-artifact@v3 + if: ${{ runner.debug == 1 }} + with: + name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} + path: ${{ env.LOG_PATH_DIR }} + upload-coverage: needs: test diff --git a/.github/workflows/tm2.yml b/.github/workflows/tm2.yml index f3edaf8bb1c..76ee8742fd3 100644 --- a/.github/workflows/tm2.yml +++ b/.github/workflows/tm2.yml @@ -42,6 +42,7 @@ jobs: working-directory: tm2 run: GOOS=${{ matrix.goos }} GOARCH=${{ matrix.goarch }} go install ${{ matrix.program }} + test: strategy: fail-fast: false @@ -62,9 +63,9 @@ jobs: with: go-version: ${{ matrix.goversion }} - name: Set environment variables for debug mode - if: env.ACTIONS_STEP_DEBUG == 'true' + if: ${{ runner.debug == 1 }} run: | - export LOG_PATH_DIR=${{ runner.temp }}/logs + export LOG_PATH_DIR=${{ runner.temp }}/logs-go${{ matrix.goversion }}-${{ matrix.args }} mkdir -p $LOG_PATH_DIR echo "LOG_LEVEL=debug" >> $GITHUB_ENV @@ -81,6 +82,12 @@ jobs: with: name: ${{runner.os}}-coverage-tm2-${{ matrix.args}}-${{matrix.goversion}} path: ./tm2/coverage.out + - uses: actions/upload-artifact@v3 + if: ${{ runner.debug == 1 }} + with: + name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} + path: ${{ env.LOG_PATH_DIR }} + upload-coverage: needs: test From 821c01ddcec63e3ad52b9a855916467cc6c57554 Mon Sep 17 00:00:00 2001 From: gfanton <8671905+gfanton@users.noreply.github.com> Date: Tue, 23 Jan 2024 16:58:15 +0100 Subject: [PATCH 34/43] fix: fixup gnoland logs Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com> --- .github/workflows/gnoland.yml | 12 +++--------- .github/workflows/gnovm.yml | 4 ++-- .github/workflows/tm2.yml | 4 ++-- gno.land/pkg/integration/testing_integration.go | 4 ++-- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/.github/workflows/gnoland.yml b/.github/workflows/gnoland.yml index daeb619280c..19d3a039211 100644 --- a/.github/workflows/gnoland.yml +++ b/.github/workflows/gnoland.yml @@ -68,6 +68,7 @@ jobs: - uses: actions/setup-go@v4 with: go-version: ${{ matrix.goversion }} + - name: Set environment variables for debug mode if: ${{ runner.debug == 1 }} run: | export LOG_PATH_DIR=${{ runner.temp }}/logs-go${{ matrix.goversion }}-${{ matrix.args }} @@ -80,26 +81,19 @@ jobs: run: | export GOPATH=$HOME/go export GOTEST_FLAGS="-v -p 1 -timeout=30m -coverprofile=coverage.out -covermode=atomic" - export LOG_DIR="${{ runner.temp }}/logs/test-${{ matrix.goversion }}-gnoland" make ${{ matrix.args }} - - name: Upload Test Log - if: always() - uses: actions/upload-artifact@v3 - with: - name: logs-test-gnoland-go${{ matrix.goversion }} - path: ${{ runner.temp }}/logs/**/*.log - uses: actions/upload-artifact@v3 if: ${{ runner.os == 'Linux' && matrix.goversion == '1.21.x' }} with: name: ${{runner.os}}-coverage-gnoland-${{ matrix.args}}-${{matrix.goversion}} path: ./gno.land/coverage.out - - uses: actions/upload-artifact@v3 + - name: Upload Debug Logs + uses: actions/upload-artifact@v3 if: ${{ runner.debug == 1 }} with: name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} path: ${{ env.LOG_PATH_DIR }} - upload-coverage: needs: test runs-on: ubuntu-latest diff --git a/.github/workflows/gnovm.yml b/.github/workflows/gnovm.yml index 4556b64a3ab..6f1434d5686 100644 --- a/.github/workflows/gnovm.yml +++ b/.github/workflows/gnovm.yml @@ -100,13 +100,13 @@ jobs: with: name: ${{runner.os}}-coverage-gnovm-${{ matrix.args}}-${{matrix.goversion}} path: ${{ env.COVERAGE_DIR }} - - uses: actions/upload-artifact@v3 + - name: Upload Debug Logs + uses: actions/upload-artifact@v3 if: ${{ runner.debug == 1 }} with: name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} path: ${{ env.LOG_PATH_DIR }} - upload-coverage: needs: test runs-on: ubuntu-latest diff --git a/.github/workflows/tm2.yml b/.github/workflows/tm2.yml index 76ee8742fd3..0b9986c9441 100644 --- a/.github/workflows/tm2.yml +++ b/.github/workflows/tm2.yml @@ -82,13 +82,13 @@ jobs: with: name: ${{runner.os}}-coverage-tm2-${{ matrix.args}}-${{matrix.goversion}} path: ./tm2/coverage.out - - uses: actions/upload-artifact@v3 + - name: Upload Debug Logs + uses: actions/upload-artifact@v3 if: ${{ runner.debug == 1 }} with: name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} path: ${{ env.LOG_PATH_DIR }} - upload-coverage: needs: test runs-on: ubuntu-latest diff --git a/gno.land/pkg/integration/testing_integration.go b/gno.land/pkg/integration/testing_integration.go index e8d9a34433c..58f9633c686 100644 --- a/gno.land/pkg/integration/testing_integration.go +++ b/gno.land/pkg/integration/testing_integration.go @@ -112,7 +112,7 @@ func setupGnolandTestScript(t *testing.T, txtarDir string) testscript.Params { { logger = tm2Log.NewNoopLogger() if persistWorkDir || os.Getenv("LOG_DIR") != "" { - logname := fmt.Sprintf("gnoland-%s.log", sid) + logname := fmt.Sprintf("txtar-gnoland-%s.log", sid) logger, err = getTestingLogger(env, logname) if err != nil { return fmt.Errorf("unable to setup logger: %w", err) @@ -288,7 +288,7 @@ func nodeIsRunning(nodes map[string]*testNode, sid string) bool { func getTestingLogger(env *testscript.Env, logname string) (*slog.Logger, error) { var path string - if logdir := os.Getenv("LOG_DIR"); logdir != "" { + if logdir := os.Getenv("LOG_PATH_DIR"); logdir != "" { if err := os.MkdirAll(logdir, 0o755); err != nil { return nil, fmt.Errorf("unable to make log directory %q", logdir) } From 09d3ec0804b540ac657ed456b6e7ae21d7479ec8 Mon Sep 17 00:00:00 2001 From: gfanton <8671905+gfanton@users.noreply.github.com> Date: Tue, 23 Jan 2024 17:29:40 +0100 Subject: [PATCH 35/43] fix(ci): glob every log file into the artifact archive Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com> --- .github/workflows/gnoland.yml | 2 +- .github/workflows/gnovm.yml | 2 +- .github/workflows/tm2.yml | 2 +- gno.land/pkg/integration/testing_integration.go | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gnoland.yml b/.github/workflows/gnoland.yml index 19d3a039211..39c0a0d34dc 100644 --- a/.github/workflows/gnoland.yml +++ b/.github/workflows/gnoland.yml @@ -92,7 +92,7 @@ jobs: if: ${{ runner.debug == 1 }} with: name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} - path: ${{ env.LOG_PATH_DIR }} + path: ${{ env.LOG_PATH_DIR }}/**/* upload-coverage: needs: test diff --git a/.github/workflows/gnovm.yml b/.github/workflows/gnovm.yml index 6f1434d5686..6387b0544ea 100644 --- a/.github/workflows/gnovm.yml +++ b/.github/workflows/gnovm.yml @@ -105,7 +105,7 @@ jobs: if: ${{ runner.debug == 1 }} with: name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} - path: ${{ env.LOG_PATH_DIR }} + path: ${{ env.LOG_PATH_DIR }}/**/* upload-coverage: needs: test diff --git a/.github/workflows/tm2.yml b/.github/workflows/tm2.yml index 0b9986c9441..d98f3903314 100644 --- a/.github/workflows/tm2.yml +++ b/.github/workflows/tm2.yml @@ -87,7 +87,7 @@ jobs: if: ${{ runner.debug == 1 }} with: name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} - path: ${{ env.LOG_PATH_DIR }} + path: ${{ env.LOG_PATH_DIR }}/**/* upload-coverage: needs: test diff --git a/gno.land/pkg/integration/testing_integration.go b/gno.land/pkg/integration/testing_integration.go index 58f9633c686..b0dcc5737e6 100644 --- a/gno.land/pkg/integration/testing_integration.go +++ b/gno.land/pkg/integration/testing_integration.go @@ -111,7 +111,7 @@ func setupGnolandTestScript(t *testing.T, txtarDir string) testscript.Params { var logger *slog.Logger { logger = tm2Log.NewNoopLogger() - if persistWorkDir || os.Getenv("LOG_DIR") != "" { + if persistWorkDir || os.Getenv("LOG_PATH_DIR") != "" { logname := fmt.Sprintf("txtar-gnoland-%s.log", sid) logger, err = getTestingLogger(env, logname) if err != nil { From de264d4874bb3e02e8ee2982d56dc7053b7e1411 Mon Sep 17 00:00:00 2001 From: gfanton <8671905+gfanton@users.noreply.github.com> Date: Tue, 23 Jan 2024 17:47:06 +0100 Subject: [PATCH 36/43] wip: test ci full logging Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com> --- .github/workflows/gnoland.yml | 5 +++-- .github/workflows/gnovm.yml | 5 +++-- .github/workflows/tm2.yml | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/gnoland.yml b/.github/workflows/gnoland.yml index 39c0a0d34dc..065fd2827b7 100644 --- a/.github/workflows/gnoland.yml +++ b/.github/workflows/gnoland.yml @@ -69,7 +69,7 @@ jobs: with: go-version: ${{ matrix.goversion }} - name: Set environment variables for debug mode - if: ${{ runner.debug == 1 }} + # if: ${{ runner.debug == 1 }} run: | export LOG_PATH_DIR=${{ runner.temp }}/logs-go${{ matrix.goversion }}-${{ matrix.args }} mkdir -p $LOG_PATH_DIR @@ -89,7 +89,8 @@ jobs: path: ./gno.land/coverage.out - name: Upload Debug Logs uses: actions/upload-artifact@v3 - if: ${{ runner.debug == 1 }} + # if: ${{ always() && runner.debug == 1 }} + if: always() with: name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} path: ${{ env.LOG_PATH_DIR }}/**/* diff --git a/.github/workflows/gnovm.yml b/.github/workflows/gnovm.yml index 6387b0544ea..d60e3c76730 100644 --- a/.github/workflows/gnovm.yml +++ b/.github/workflows/gnovm.yml @@ -75,7 +75,7 @@ jobs: with: go-version: ${{ matrix.goversion }} - name: Set environment variables for debug mode - if: ${{ runner.debug == 1 }} + # if: ${{ runner.debug == 1 }} run: | export LOG_PATH_DIR=${{ runner.temp }}/logs-go${{ matrix.goversion }}-${{ matrix.args }} mkdir -p $LOG_PATH_DIR @@ -102,7 +102,8 @@ jobs: path: ${{ env.COVERAGE_DIR }} - name: Upload Debug Logs uses: actions/upload-artifact@v3 - if: ${{ runner.debug == 1 }} + # if: ${{ always() && runner.debug == 1 }} + if: always() with: name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} path: ${{ env.LOG_PATH_DIR }}/**/* diff --git a/.github/workflows/tm2.yml b/.github/workflows/tm2.yml index d98f3903314..7e3b9b21749 100644 --- a/.github/workflows/tm2.yml +++ b/.github/workflows/tm2.yml @@ -63,7 +63,7 @@ jobs: with: go-version: ${{ matrix.goversion }} - name: Set environment variables for debug mode - if: ${{ runner.debug == 1 }} + # if: ${{ runner.debug == 1 }} run: | export LOG_PATH_DIR=${{ runner.temp }}/logs-go${{ matrix.goversion }}-${{ matrix.args }} mkdir -p $LOG_PATH_DIR @@ -84,7 +84,8 @@ jobs: path: ./tm2/coverage.out - name: Upload Debug Logs uses: actions/upload-artifact@v3 - if: ${{ runner.debug == 1 }} + # if: ${{ always() && runner.debug == 1 }} + if: always() with: name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} path: ${{ env.LOG_PATH_DIR }}/**/* From 6b9230c0326369f67202bfdaa210c8b66bc51424 Mon Sep 17 00:00:00 2001 From: gfanton <8671905+gfanton@users.noreply.github.com> Date: Tue, 23 Jan 2024 17:59:22 +0100 Subject: [PATCH 37/43] fix(log): replace slash by _ in log name to avoid sub-directory Signed-off-by: gfanton <8671905+gfanton@users.noreply.github.com> --- tm2/pkg/log/testing.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tm2/pkg/log/testing.go b/tm2/pkg/log/testing.go index a4350cf9eb0..be610ee38d2 100644 --- a/tm2/pkg/log/testing.go +++ b/tm2/pkg/log/testing.go @@ -16,14 +16,14 @@ import ( func NewTestingLogger(t *testing.T) *slog.Logger { t.Helper() - if !testing.Verbose() { - return NewNoopLogger() - } - // Parse the environment vars envLevel := os.Getenv("LOG_LEVEL") envPath := os.Getenv("LOG_PATH_DIR") + if !testing.Verbose() && envLevel == "" && envPath == "" { + return NewNoopLogger() + } + // Default logger config logLevel := slog.LevelError logOutput := os.Stdout @@ -47,8 +47,8 @@ func NewTestingLogger(t *testing.T) *slog.Logger { logName := fmt.Sprintf( "%s-%d.log", - t.Name(), // unique test name - time.Now().Unix(), // unique test timestamp + strings.ReplaceAll(t.Name(), "/", "_"), // unique test name + time.Now().Unix(), // unique test timestamp ) logPath := filepath.Join(envPath, logName) From 27e238369fb9b6fb65a8c295838dc404fdf1fe1b Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Tue, 23 Jan 2024 18:52:04 +0100 Subject: [PATCH 38/43] Enable debug artifacts --- .github/workflows/gnoland.yml | 9 ++++----- .github/workflows/gnovm.yml | 7 +++---- .github/workflows/tm2.yml | 7 +++---- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/.github/workflows/gnoland.yml b/.github/workflows/gnoland.yml index 065fd2827b7..25b14c0db04 100644 --- a/.github/workflows/gnoland.yml +++ b/.github/workflows/gnoland.yml @@ -60,7 +60,7 @@ jobs: - _test.gnoland - _test.gnokey - _test.pkgs - - _test.gnoweb + - _test.gnoweb runs-on: ubuntu-latest timeout-minutes: 15 steps: @@ -69,7 +69,7 @@ jobs: with: go-version: ${{ matrix.goversion }} - name: Set environment variables for debug mode - # if: ${{ runner.debug == 1 }} + if: ${{ runner.debug == 1 }} run: | export LOG_PATH_DIR=${{ runner.temp }}/logs-go${{ matrix.goversion }}-${{ matrix.args }} mkdir -p $LOG_PATH_DIR @@ -89,8 +89,7 @@ jobs: path: ./gno.land/coverage.out - name: Upload Debug Logs uses: actions/upload-artifact@v3 - # if: ${{ always() && runner.debug == 1 }} - if: always() + if: ${{ always() && runner.debug == 1 }} with: name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} path: ${{ env.LOG_PATH_DIR }}/**/* @@ -107,7 +106,7 @@ jobs: uses: codecov/codecov-action@v3 with: directory: ${{ runner.temp }}/coverage - token: ${{ secrets.CODECOV_TOKEN }} + token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: ${{ github.repository == 'gnolang/gno' }} docker-integration: diff --git a/.github/workflows/gnovm.yml b/.github/workflows/gnovm.yml index d60e3c76730..15e0f886e1b 100644 --- a/.github/workflows/gnovm.yml +++ b/.github/workflows/gnovm.yml @@ -75,7 +75,7 @@ jobs: with: go-version: ${{ matrix.goversion }} - name: Set environment variables for debug mode - # if: ${{ runner.debug == 1 }} + if: ${{ runner.debug == 1 }} run: | export LOG_PATH_DIR=${{ runner.temp }}/logs-go${{ matrix.goversion }}-${{ matrix.args }} mkdir -p $LOG_PATH_DIR @@ -102,8 +102,7 @@ jobs: path: ${{ env.COVERAGE_DIR }} - name: Upload Debug Logs uses: actions/upload-artifact@v3 - # if: ${{ always() && runner.debug == 1 }} - if: always() + if: ${{ always() && runner.debug == 1 }} with: name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} path: ${{ env.LOG_PATH_DIR }}/**/* @@ -144,6 +143,6 @@ jobs: uses: codecov/codecov-action@v3 with: files: ${{ env.COVERAGE_PROFILE }} - token: ${{ secrets.CODECOV_TOKEN }} + token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: ${{ github.repository == 'gnolang/gno' }} diff --git a/.github/workflows/tm2.yml b/.github/workflows/tm2.yml index 7e3b9b21749..bbe379bb069 100644 --- a/.github/workflows/tm2.yml +++ b/.github/workflows/tm2.yml @@ -63,7 +63,7 @@ jobs: with: go-version: ${{ matrix.goversion }} - name: Set environment variables for debug mode - # if: ${{ runner.debug == 1 }} + if: ${{ runner.debug == 1 }} run: | export LOG_PATH_DIR=${{ runner.temp }}/logs-go${{ matrix.goversion }}-${{ matrix.args }} mkdir -p $LOG_PATH_DIR @@ -84,8 +84,7 @@ jobs: path: ./tm2/coverage.out - name: Upload Debug Logs uses: actions/upload-artifact@v3 - # if: ${{ always() && runner.debug == 1 }} - if: always() + if: ${{ always() && runner.debug == 1 }} with: name: logs-test-go${{ matrix.goversion }}-${{ matrix.args }} path: ${{ env.LOG_PATH_DIR }}/**/* @@ -102,6 +101,6 @@ jobs: uses: codecov/codecov-action@v3 with: directory: ${{ runner.temp }}/coverage - token: ${{ secrets.CODECOV_TOKEN }} + token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: ${{ github.repository == 'gnolang/gno' }} From 7eb92d2b805ac75dd5621de97856894847e46387 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Wed, 24 Jan 2024 10:21:27 +0100 Subject: [PATCH 39/43] Merge goimports format with 'fmt' --- Makefile | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 2eda9925723..dc3f8e47089 100644 --- a/Makefile +++ b/Makefile @@ -37,21 +37,15 @@ test.docker: .PHONY: fmt fmt: - $(MAKE) --no-print-directory -C tm2 fmt - $(MAKE) --no-print-directory -C gnovm fmt - $(MAKE) --no-print-directory -C gno.land fmt + $(MAKE) --no-print-directory -C tm2 fmt imports + $(MAKE) --no-print-directory -C gnovm fmt imports + $(MAKE) --no-print-directory -C gno.land fmt imports $(MAKE) --no-print-directory -C examples fmt .PHONY: lint lint: $(rundep) github.com/golangci/golangci-lint/cmd/golangci-lint run --config .github/golangci.yml -.PHONY: imports -imports: - $(MAKE) --no-print-directory -C tm2 imports - $(MAKE) --no-print-directory -C gnovm imports - $(MAKE) --no-print-directory -C gno.land imports - .PHONY: tidy tidy: $(MAKE) --no-print-directory -C misc tidy From 772059354143c1c39b187991c9fe7e7c363377dc Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Wed, 24 Jan 2024 10:29:03 +0100 Subject: [PATCH 40/43] Update fmt CI --- .github/workflows/lint.yml | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index c3ea4c97962..8460c0d36d7 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -48,39 +48,11 @@ jobs: # inspired by: # https://github.com/Jerome1337/gofmt-action/blob/d5eabd189843f1d568286a54578159978b7c0fb1/entrypoint.sh - - name: Check gofumpt + - name: Check gofumpt / goimports run: | - output="$(GOFMT_FLAGS=-l make -s fmt)" + output="$(GOFMT_FLAGS=-l GOIMPORTS_FLAGS=-l make -s fmt)" if [ ! -z "$output" ]; then - echo "The following files are not properly formatted; run 'make fmt' to format them." - echo "$output" - exit 1 - else - echo 'Succeeded.' - fi - imports: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Install Go - uses: actions/setup-go@v4 - with: - go-version: 1.21.x - - - name: Install make - run: sudo apt-get install -y make - - # prefill dependencies so that mod messages don't show up in make output - - name: Fetch dependencies - run: go mod download -modfile ./misc/devdeps/go.mod -x - - - name: Check goimports - run: | - output="$(GOIMPORTS_FLAGS=-l make -s imports)" - if [ ! -z "$output" ]; then - echo "The following files are not properly formatted; run 'make imports' to format them." + echo "The following files are not properly formatted; run 'make fmt imports' to format them." echo "$output" exit 1 else From a8fe8d337369c31dbd69a372cd2c4382a6e94c15 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Wed, 24 Jan 2024 11:36:54 +0100 Subject: [PATCH 41/43] Update tidy workflow --- .github/workflows/lint.yml | 25 ++++++++----------------- misc/mod_tidy.sh | 8 +++++++- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8460c0d36d7..fde968698d6 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -70,22 +70,13 @@ jobs: with: go-version: 1.21.x + - name: Install make + run: sudo apt-get install -y make + - name: Check go.mods run: | - set -xe - # Find all go.mod files - gomods=$(find . -type f -name go.mod) - - # Calculate sums for all go.mod files - sums=$(sha256sum $gomods) - - # Iterate over each go.mod file - for modfile in $gomods; do - dir=$(dirname "$modfile") - - # Run go mod tidy in the directory - (cd "$dir" && go mod tidy -v) || exit 1 - done - - # Verify the sums - echo "$sums" | sha256sum -c + # Ensure Make is installed + make --version + + # Run the tidy target from the Makefile + make tidy diff --git a/misc/mod_tidy.sh b/misc/mod_tidy.sh index fdb0e1f454f..7b260c58fe1 100755 --- a/misc/mod_tidy.sh +++ b/misc/mod_tidy.sh @@ -11,10 +11,16 @@ cd .. # Find all go.mod files gomods=$(find . -type f -name go.mod) +# Calculate sums for all go.mod files +sums=$(shasum $gomods) + # Tidy each go.mod file for modfile in $gomods; do dir=$(dirname "$modfile") # Run go mod tidy in the directory (cd "$dir" && go mod tidy -v) || exit 1 -done \ No newline at end of file +done + +# Verify the sums +echo "$sums" | shasum -c \ No newline at end of file From 9ab96d02565d0fdc682fa475cd2cbd3aeae682b2 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Wed, 24 Jan 2024 12:13:57 +0100 Subject: [PATCH 42/43] Simplify tidy workflows --- .github/workflows/dependabot-tidy.yml | 16 ++++++---------- .github/workflows/lint.yml | 4 +++- misc/Makefile | 3 ++- misc/mod_tidy.sh | 22 +++++++++++++++++----- 4 files changed, 28 insertions(+), 17 deletions(-) diff --git a/.github/workflows/dependabot-tidy.yml b/.github/workflows/dependabot-tidy.yml index 9db199a9605..8234de91924 100644 --- a/.github/workflows/dependabot-tidy.yml +++ b/.github/workflows/dependabot-tidy.yml @@ -23,18 +23,14 @@ jobs: go-version: 1.21.x - name: Tidy all Go mods + env: + VERIFY_MOD_SUMS: false run: | - set -e - # Find all go.mod files - gomods=$(find . -type f -name go.mod) - - # Tidy each go.mod file - for modfile in $gomods; do - dir=$(dirname "$modfile") + # Ensure Make is installed + make --version - # Run go mod tidy in the directory - (cd "$dir" && go mod tidy -v) || exit 1 - done + # Run the tidy target + make tidy - name: Commit changes, if any uses: stefanzweifel/git-auto-commit-action@v5 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fde968698d6..b417e904e7c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -74,9 +74,11 @@ jobs: run: sudo apt-get install -y make - name: Check go.mods + env: + VERIFY_MOD_SUMS: true run: | # Ensure Make is installed make --version - # Run the tidy target from the Makefile + # Run the tidy target make tidy diff --git a/misc/Makefile b/misc/Makefile index efda4949331..44dd9b2c98a 100644 --- a/misc/Makefile +++ b/misc/Makefile @@ -28,8 +28,9 @@ _test.genstd: go test ./genstd/... $(GOTEST_FLAGS) .PHONY: tidy +VERIFY_MOD_SUMS ?= false tidy: # Give execute permissions chmod +x ./mod_tidy.sh # Tidy go mods - ./mod_tidy.sh + VERIFY_MOD_SUMS=$(VERIFY_MOD_SUMS) ./mod_tidy.sh diff --git a/misc/mod_tidy.sh b/misc/mod_tidy.sh index 7b260c58fe1..eb65bf8ee25 100755 --- a/misc/mod_tidy.sh +++ b/misc/mod_tidy.sh @@ -1,18 +1,25 @@ #!/usr/bin/env bash # This script finds and tidies all go.mod -# files recursively from the repository root +# files recursively from the repository root and +# optionally verifies the last echo based on an +# environment variable VERIFY_MOD_SUMS set -e # exit on error # CD into the repo root cd .. +# Check for the verify argument +verify=${VERIFY_MOD_SUMS:-false} + # Find all go.mod files gomods=$(find . -type f -name go.mod) -# Calculate sums for all go.mod files -sums=$(shasum $gomods) +if $verify; then + # Calculate sums for all go.mod files + sums=$(shasum $gomods) +fi # Tidy each go.mod file for modfile in $gomods; do @@ -22,5 +29,10 @@ for modfile in $gomods; do (cd "$dir" && go mod tidy -v) || exit 1 done -# Verify the sums -echo "$sums" | shasum -c \ No newline at end of file +# Optionally verify the sums +if $verify; then + echo "Verifying sums..." + echo "$sums" | shasum -c +else + echo "Skipping sum verification" +fi From 89c7b6253213b111a577a44803fe556c21dd4ce3 Mon Sep 17 00:00:00 2001 From: Milos Zivkovic Date: Wed, 24 Jan 2024 13:18:14 +0100 Subject: [PATCH 43/43] Add basic base config verification --- tm2/pkg/bft/config/config.go | 93 +++++++++++++++++++++++++++ tm2/pkg/bft/config/config_test.go | 102 ++++++++++++++++++++++++++++++ 2 files changed, 195 insertions(+) diff --git a/tm2/pkg/bft/config/config.go b/tm2/pkg/bft/config/config.go index 6e1813d896f..3cf6afc147b 100644 --- a/tm2/pkg/bft/config/config.go +++ b/tm2/pkg/bft/config/config.go @@ -4,6 +4,7 @@ import ( "fmt" "os" "path/filepath" + "regexp" "dario.cat/mergo" abci "github.com/gnolang/gno/tm2/pkg/bft/abci/types" @@ -16,6 +17,35 @@ import ( p2p "github.com/gnolang/gno/tm2/pkg/p2p/config" ) +var ( + errInvalidMoniker = errors.New("moniker not set") + errInvalidDBBackend = errors.New("invalid DB backend") + errInvalidDBPath = errors.New("invalid DB path") + errInvalidGenesisPath = errors.New("invalid genesis path") + errInvalidPrivValidatorKeyPath = errors.New("invalid private validator key path") + errInvalidPrivValidatorStatePath = errors.New("invalid private validator state file path") + errInvalidABCIMechanism = errors.New("invalid ABCI mechanism") + errInvalidPrivValidatorListenAddress = errors.New("invalid PrivValidator listen address") + errInvalidProfListenAddress = errors.New("invalid profiling server listen address") + errInvalidNodeKeyPath = errors.New("invalid p2p node key path") +) + +const ( + levelDBName = "goleveldb" + clevelDBName = "cleveldb" + boltDBName = "boltdb" +) + +const ( + localABCI = "local" + socketABCI = "socket" +) + +// Regular expression for TCP or UNIX socket address +// TCP address: host:port (IPv4 example) +// UNIX address: unix:// followed by the path +var tcpUnixAddressRegex = regexp.MustCompile(`^(?:[0-9]{1,3}(\.[0-9]{1,3}){3}:[0-9]+|unix://.+)`) + // Config defines the top level configuration for a Tendermint node type Config struct { // Top level options use an anonymous struct @@ -150,6 +180,9 @@ func (cfg *Config) EnsureDirs() error { // ValidateBasic performs basic validation (checking param bounds, etc.) and // returns an error if any check fails. func (cfg *Config) ValidateBasic() error { + if err := cfg.BaseConfig.ValidateBasic(); err != nil { + return err + } if err := cfg.RPC.ValidateBasic(); err != nil { return errors.Wrap(err, "Error in [rpc] section") } @@ -322,3 +355,63 @@ func getDefaultMoniker() string { } return moniker } + +// ValidateBasic performs basic validation (checking param bounds, etc.) and +// returns an error if any check fails. +func (cfg BaseConfig) ValidateBasic() error { + // Verify the moniker + if cfg.Moniker == "" { + return errInvalidMoniker + } + + // Verify the DB backend + if cfg.DBBackend != levelDBName && + cfg.DBBackend != clevelDBName && + cfg.DBBackend != boltDBName { + return errInvalidDBBackend + } + + // Verify the DB path is set + if cfg.DBPath == "" { + return errInvalidDBPath + } + + // Verify the genesis path is set + if cfg.Genesis == "" { + return errInvalidGenesisPath + } + + // Verify the validator private key path is set + if cfg.PrivValidatorKey == "" { + return errInvalidPrivValidatorKeyPath + } + + // Verify the validator state file path is set + if cfg.PrivValidatorState == "" { + return errInvalidPrivValidatorStatePath + } + + // Verify the PrivValidator listen address + if cfg.PrivValidatorListenAddr != "" && + !tcpUnixAddressRegex.MatchString(cfg.PrivValidatorListenAddr) { + return errInvalidPrivValidatorListenAddress + } + + // Verify the p2p private key exists + if cfg.NodeKey == "" { + return errInvalidNodeKeyPath + } + + // Verify the correct ABCI mechanism is set + if cfg.ABCI != localABCI && + cfg.ABCI != socketABCI { + return errInvalidABCIMechanism + } + + // Verify the profiling listen address + if cfg.ProfListenAddress != "" && !tcpUnixAddressRegex.MatchString(cfg.ProfListenAddress) { + return errInvalidProfListenAddress + } + + return nil +} diff --git a/tm2/pkg/bft/config/config_test.go b/tm2/pkg/bft/config/config_test.go index 1ed58767f2b..adeeade26b3 100644 --- a/tm2/pkg/bft/config/config_test.go +++ b/tm2/pkg/bft/config/config_test.go @@ -88,3 +88,105 @@ func TestConfig_LoadOrMakeConfigWithOptions(t *testing.T) { assert.Equal(t, cfg, loadedCfg) }) } + +func TestConfig_ValidateBaseConfig(t *testing.T) { + t.Parallel() + + t.Run("valid default config", func(t *testing.T) { + t.Parallel() + + c := DefaultConfig() + + assert.NoError(t, c.BaseConfig.ValidateBasic()) + }) + + t.Run("invalid moniker", func(t *testing.T) { + t.Parallel() + + c := DefaultConfig() + c.Moniker = "" + + assert.ErrorIs(t, c.BaseConfig.ValidateBasic(), errInvalidMoniker) + }) + + t.Run("invalid DB backend", func(t *testing.T) { + t.Parallel() + + c := DefaultConfig() + c.DBBackend = "totally valid backend" + + assert.ErrorIs(t, c.BaseConfig.ValidateBasic(), errInvalidDBBackend) + }) + + t.Run("DB path not set", func(t *testing.T) { + t.Parallel() + + c := DefaultConfig() + c.DBPath = "" + + assert.ErrorIs(t, c.BaseConfig.ValidateBasic(), errInvalidDBPath) + }) + + t.Run("genesis path not set", func(t *testing.T) { + t.Parallel() + + c := DefaultConfig() + c.Genesis = "" + + assert.ErrorIs(t, c.BaseConfig.ValidateBasic(), errInvalidGenesisPath) + }) + + t.Run("priv validator key path not set", func(t *testing.T) { + t.Parallel() + + c := DefaultConfig() + c.PrivValidatorKey = "" + + assert.ErrorIs(t, c.BaseConfig.ValidateBasic(), errInvalidPrivValidatorKeyPath) + }) + + t.Run("priv validator state path not set", func(t *testing.T) { + t.Parallel() + + c := DefaultConfig() + c.PrivValidatorState = "" + + assert.ErrorIs(t, c.BaseConfig.ValidateBasic(), errInvalidPrivValidatorStatePath) + }) + + t.Run("invalid priv validator listen address", func(t *testing.T) { + t.Parallel() + + c := DefaultConfig() + c.PrivValidatorListenAddr = "beep.boop" + + assert.ErrorIs(t, c.BaseConfig.ValidateBasic(), errInvalidPrivValidatorListenAddress) + }) + + t.Run("node key path not set", func(t *testing.T) { + t.Parallel() + + c := DefaultConfig() + c.NodeKey = "" + + assert.ErrorIs(t, c.BaseConfig.ValidateBasic(), errInvalidNodeKeyPath) + }) + + t.Run("invalid ABCI mechanism", func(t *testing.T) { + t.Parallel() + + c := DefaultConfig() + c.ABCI = "hopes and dreams" + + assert.ErrorIs(t, c.BaseConfig.ValidateBasic(), errInvalidABCIMechanism) + }) + + t.Run("invalid prof listen address", func(t *testing.T) { + t.Parallel() + + c := DefaultConfig() + c.ProfListenAddress = "beep.boop" + + assert.ErrorIs(t, c.BaseConfig.ValidateBasic(), errInvalidProfListenAddress) + }) +}