From 91ad305d3184fe7e9c7e321b1b7fe27f8c486e73 Mon Sep 17 00:00:00 2001 From: aman035 Date: Thu, 7 May 2026 22:06:54 +0530 Subject: [PATCH 1/8] remove: initial config log --- cmd/puniversald/commands.go | 7 ------- 1 file changed, 7 deletions(-) diff --git a/cmd/puniversald/commands.go b/cmd/puniversald/commands.go index 2e54b791..116f744a 100644 --- a/cmd/puniversald/commands.go +++ b/cmd/puniversald/commands.go @@ -2,7 +2,6 @@ package main import ( "context" - "encoding/json" "fmt" "path/filepath" @@ -85,12 +84,6 @@ func startCmd() *cobra.Command { return fmt.Errorf("failed to load config: %w", err) } - configJSON, err := json.MarshalIndent(loadedCfg, "", " ") - if err != nil { - return fmt.Errorf("failed to marshal config: %w", err) - } - fmt.Printf("\n=== Loaded Configuration ===\n%s\n===========================\n\n", string(configJSON)) - ctx := context.Background() client, err := core.NewUniversalClient(ctx, &loadedCfg) if err != nil { From 1b19570df409be005345606ee9d9a6ae207488ca Mon Sep 17 00:00:00 2001 From: aman035 Date: Fri, 8 May 2026 11:31:38 +0530 Subject: [PATCH 2/8] fix: remove logging rpc url in pushcore --- universalClient/pushcore/pushCore.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/universalClient/pushcore/pushCore.go b/universalClient/pushcore/pushCore.go index b53db407..647b548e 100644 --- a/universalClient/pushcore/pushCore.go +++ b/universalClient/pushcore/pushCore.go @@ -57,7 +57,7 @@ func New(urls []string, logger zerolog.Logger) (*Client, error) { for i, u := range urls { conn, err := createGRPCConnection(u) if err != nil { - c.logger.Warn().Str("url", u).Int("index", i).Err(err).Msg("dial failed; skipping endpoint") + c.logger.Warn().Int("index", i).Err(err).Msg("dial failed; skipping endpoint") continue } c.conns = append(c.conns, conn) @@ -127,10 +127,11 @@ func retryWithRoundRobin[T any]( lastErr = err logger.Debug(). + Str("operation", operationName). Int("attempt", i+1). Int("endpoint_index", idx). Err(err). - Msgf("%s failed; trying next endpoint", operationName) + Msg("operation failed; trying next endpoint") } return zero, fmt.Errorf("pushcore: %s failed on all %d endpoints: %w", operationName, numClients, lastErr) From 3f2040bdd07df5284b9d1be0894d490e12f17372 Mon Sep 17 00:00:00 2001 From: aman035 Date: Fri, 8 May 2026 11:50:37 +0530 Subject: [PATCH 3/8] refactor: pushsigner logger --- universalClient/pushsigner/pushsigner.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/universalClient/pushsigner/pushsigner.go b/universalClient/pushsigner/pushsigner.go index b25410e8..407a585b 100644 --- a/universalClient/pushsigner/pushsigner.go +++ b/universalClient/pushsigner/pushsigner.go @@ -58,7 +58,8 @@ func New( chainID string, granter string, ) (*Signer, error) { - log.Info().Msg("Validating hotkey and AuthZ permissions...") + log = log.With().Str("component", "push_signer").Logger() + log.Debug().Msg("Validating hotkey and AuthZ permissions...") validationResult, err := validateKeysAndGrants(ctx, keyringBackend, keyringPassword, nodeHome, pushCore, granter) if err != nil { @@ -95,14 +96,14 @@ func New( Str("key_name", validationResult.KeyName). Str("key_address", validationResult.KeyAddr). Str("granter", validationResult.Granter). - Msg("Signer initialized successfully") + Msg("signer initialized successfully") return &Signer{ keys: universalKeys, clientCtx: clientCtx, pushCore: pushCore, granter: validationResult.Granter, - log: log.With().Str("component", "signer").Logger(), + log: log, }, nil } From 0ee2826f3bcd52ca6ae82e1979ce996dc9f56858 Mon Sep 17 00:00:00 2001 From: aman035 Date: Fri, 8 May 2026 12:09:09 +0530 Subject: [PATCH 4/8] refactor: core logs, remove unnecessary info logs --- universalClient/core/client.go | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/universalClient/core/client.go b/universalClient/core/client.go index 916fc23f..54a9df15 100644 --- a/universalClient/core/client.go +++ b/universalClient/core/client.go @@ -77,7 +77,7 @@ func NewUniversalClient(ctx context.Context, cfg *config.Config) (*UniversalClie return &UniversalClient{ ctx: ctx, - log: log, + log: log.With().Str("component", "core").Logger(), config: cfg, queryServer: queryServer, pushCore: pushCore, @@ -89,7 +89,7 @@ func NewUniversalClient(ctx context.Context, cfg *config.Config) (*UniversalClie // Start launches all subsystems, blocks until ctx is cancelled, then shuts down. func (uc *UniversalClient) Start() error { - uc.log.Info().Msg("Starting universal client...") + uc.log.Info().Msg("starting universal client") if err := uc.chains.Start(uc.ctx); err != nil { return fmt.Errorf("failed to start chains manager: %w", err) @@ -99,17 +99,13 @@ func (uc *UniversalClient) Start() error { if err := uc.tssNode.Start(uc.ctx); err != nil { return fmt.Errorf("failed to start TSS node: %w", err) } - uc.log.Info(). - Str("peer_id", uc.tssNode.PeerID()). - Strs("listen_addrs", uc.tssNode.ListenAddrs()). - Msg("TSS node started") } if err := uc.queryServer.Start(); err != nil { return fmt.Errorf("failed to start query server: %w", err) } - uc.log.Info().Msg("Initialization complete. Entering main loop...") + uc.log.Info().Msg("universal client running") <-uc.ctx.Done() @@ -119,15 +115,15 @@ func (uc *UniversalClient) Start() error { // shutdown stops all subsystems in reverse startup order. func (uc *UniversalClient) shutdown() { - uc.log.Info().Msg("Shutting down universal client...") + uc.log.Info().Msg("shutting down universal client") if err := uc.queryServer.Stop(); err != nil { - uc.log.Error().Err(err).Msg("error stopping query server") + uc.log.Error().Err(err).Str("subsystem", "query_server").Msg("subsystem failed to stop") } if uc.tssNode != nil { if err := uc.tssNode.Stop(); err != nil { - uc.log.Error().Err(err).Msg("error stopping TSS node") + uc.log.Error().Err(err).Str("subsystem", "tss_node").Msg("subsystem failed to stop") } } @@ -137,9 +133,11 @@ func (uc *UniversalClient) shutdown() { if uc.pushCore != nil { if err := uc.pushCore.Close(); err != nil { - uc.log.Error().Err(err).Msg("error closing pushcore client") + uc.log.Error().Err(err).Str("subsystem", "push_core").Msg("subsystem failed to close") } } + + uc.log.Info().Msg("universal client stopped") } // valoperToAccountAddr converts a validator operator address to its account address. @@ -168,8 +166,6 @@ func initTSS( return nil, nil } - log.Info().Msg("Initializing TSS node...") - // Sanitize chain ID for use as a database filename (e.g. "push_42101-1" → "push_42101-1.db") dbFilename := sanitizeForFilename(cfg.PushChainID) + ".db" baseDir := filepath.Join(cfg.NodeHome, config.DatabasesSubdir) @@ -194,11 +190,6 @@ func initTSS( return nil, fmt.Errorf("failed to create TSS node: %w", err) } - log.Info(). - Str("valoper", cfg.PushValoperAddress). - Str("p2p_listen", cfg.TSSP2PListen). - Msg("TSS node initialized") - return node, nil } From 31e01789a6f2c58b9aa7522af4258a72688be5c4 Mon Sep 17 00:00:00 2001 From: aman035 Date: Fri, 8 May 2026 12:59:53 +0530 Subject: [PATCH 5/8] fix: common chain logs --- universalClient/chains/chains.go | 28 +++++++++---------- .../chains/common/event_cleaner.go | 8 +++--- .../chains/common/event_processor.go | 16 ++++++----- 3 files changed, 27 insertions(+), 25 deletions(-) diff --git a/universalClient/chains/chains.go b/universalClient/chains/chains.go index 66b6dd52..f06125da 100644 --- a/universalClient/chains/chains.go +++ b/universalClient/chains/chains.go @@ -125,10 +125,10 @@ func (c *Chains) run(parent context.Context) { for { select { case <-parent.Done(): - c.logger.Info().Msg("chains: context canceled; stopping") + c.logger.Debug().Msg("context canceled; stopping") return case <-c.stopCh: - c.logger.Info().Msg("chains: stop requested; stopping") + c.logger.Debug().Msg("stop requested; stopping") return case <-ticker.C: if err := c.fetchAndUpdate(parent); err != nil { @@ -241,10 +241,10 @@ func (c *Chains) determineChainAction(cfg *uregistrytypes.ChainConfig) chainActi if bothDisabled { if exists { - c.logger.Info().Str("chain", chainID).Msg("chain fully disabled (inbound+outbound off), removing") + c.logger.Info().Str("chain", chainID).Msg("chain disabled, removing") return chainActionRemove } - c.logger.Debug().Str("chain", chainID).Msg("chain fully disabled, skipping") + c.logger.Debug().Str("chain", chainID).Msg("chain disabled, skipping") return chainActionSkip } @@ -304,7 +304,7 @@ func (c *Chains) addChain(ctx context.Context, cfg *uregistrytypes.ChainConfig) c.logger.Info(). Str("chain", cfg.Chain). - Msg("successfully added chain client") + Msg("chain client added") return nil } @@ -318,11 +318,6 @@ func (c *Chains) removeChain(chainID string) error { if !exists { return nil } - - c.logger.Info(). - Str("chain", chainID). - Msg("removing chain client") - // Stop the client if err := client.Stop(); err != nil { c.logger.Error(). @@ -333,6 +328,11 @@ func (c *Chains) removeChain(chainID string) error { delete(c.chains, chainID) delete(c.chainConfigs, chainID) + + c.logger.Info(). + Str("chain", chainID). + Msg("chain client removed") + return nil } @@ -341,7 +341,7 @@ func (c *Chains) StopAll() { c.chainsMu.Lock() defer c.chainsMu.Unlock() - c.logger.Info().Msg("stopping all chain clients") + c.logger.Debug().Msg("stopping all chain clients") for chainID, client := range c.chains { if err := client.Stop(); err != nil { @@ -420,8 +420,8 @@ func (c *Chains) getChainDB(chainID string) (*db.DB, error) { return nil, fmt.Errorf("failed to create database for chain %s: %w", chainID, err) } - c.logger.Info(). - Str("chain_id", chainID). + c.logger.Debug(). + Str("chain", chainID). Str("db_path", filepath.Join(baseDir, dbFilename)). Msg("created file database for chain") @@ -488,7 +488,7 @@ func (c *Chains) ensurePushChain(ctx context.Context) error { c.logger.Info(). Str("chain", c.pushChainID). - Msg("successfully added push chain client") + Msg("chain client added") return nil } diff --git a/universalClient/chains/common/event_cleaner.go b/universalClient/chains/common/event_cleaner.go index 21203fc0..c293e455 100644 --- a/universalClient/chains/common/event_cleaner.go +++ b/universalClient/chains/common/event_cleaner.go @@ -38,7 +38,7 @@ func NewEventCleaner( // Start begins the periodic cleanup process func (ec *EventCleaner) Start(ctx context.Context) error { - ec.logger.Info(). + ec.logger.Debug(). Str("cleanup_interval", ec.cleanupInterval.String()). Str("retention_period", ec.retentionPeriod.String()). Msg("starting event cleaner") @@ -57,10 +57,10 @@ func (ec *EventCleaner) Start(ctx context.Context) error { for { select { case <-ctx.Done(): - ec.logger.Info().Msg("context cancelled, stopping event cleaner") + ec.logger.Debug().Msg("context cancelled, stopping event cleaner") return case <-ec.stopCh: - ec.logger.Info().Msg("stop signal received, stopping event cleaner") + ec.logger.Debug().Msg("stop signal received, stopping event cleaner") return case <-ec.ticker.C: if err := ec.performCleanup(); err != nil { @@ -75,7 +75,7 @@ func (ec *EventCleaner) Start(ctx context.Context) error { // Stop gracefully stops the event cleaner func (ec *EventCleaner) Stop() { - ec.logger.Info().Msg("stopping event cleaner") + ec.logger.Debug().Msg("stopping event cleaner") if ec.ticker != nil { ec.ticker.Stop() diff --git a/universalClient/chains/common/event_processor.go b/universalClient/chains/common/event_processor.go index 8c1ba957..41099eb7 100644 --- a/universalClient/chains/common/event_processor.go +++ b/universalClient/chains/common/event_processor.go @@ -73,7 +73,7 @@ func (ep *EventProcessor) Stop() error { return nil } - ep.logger.Info().Msg("stopping event processor") + ep.logger.Debug().Msg("stopping event processor") close(ep.stopCh) ep.running = false @@ -97,10 +97,10 @@ func (ep *EventProcessor) processLoop(ctx context.Context) { for { select { case <-ctx.Done(): - ep.logger.Info().Msg("context cancelled, stopping event processor") + ep.logger.Debug().Msg("context cancelled, stopping event processor") return case <-ep.stopCh: - ep.logger.Info().Msg("stop signal received, stopping event processor") + ep.logger.Debug().Msg("stop signal received, stopping event processor") return case <-ticker.C: // Fetch 1000 CONFIRMED events and process them @@ -151,7 +151,7 @@ func (ep *EventProcessor) processConfirmedEvents(ctx context.Context) error { // processOutboundEvent processes an outbound event by voting on it func (ep *EventProcessor) processOutboundEvent(ctx context.Context, event *store.Event) error { - ep.logger.Info(). + ep.logger.Debug(). Str("event_id", event.EventID). Msg("processing outbound event") @@ -188,15 +188,16 @@ func (ep *EventProcessor) processOutboundEvent(ctx context.Context, event *store ep.logger.Info(). Str("event_id", event.EventID). + Str("type", event.Type). Str("vote_tx_hash", voteTxHash). - Msg("outbound event marked as COMPLETED") + Msg("event marked as COMPLETED") return nil } // processInboundEvent processes an inbound event by voting on it and confirming it func (ep *EventProcessor) processInboundEvent(ctx context.Context, event *store.Event) error { - ep.logger.Info(). + ep.logger.Debug(). Str("event_id", event.EventID). Msg("processing inbound event") @@ -228,8 +229,9 @@ func (ep *EventProcessor) processInboundEvent(ctx context.Context, event *store. ep.logger.Info(). Str("event_id", event.EventID). + Str("type", event.Type). Str("vote_tx_hash", voteTxHash). - Msg("inbound event marked as COMPLETED") + Msg("event marked as COMPLETED") return nil } From b25ebeb69f5765f129839d56795959250180f4d4 Mon Sep 17 00:00:00 2001 From: aman035 Date: Fri, 8 May 2026 13:17:39 +0530 Subject: [PATCH 6/8] fix: push client logs --- universalClient/chains/push/client.go | 6 +++--- universalClient/chains/push/event_listener.go | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/universalClient/chains/push/client.go b/universalClient/chains/push/client.go index abbaf17e..5eb52838 100644 --- a/universalClient/chains/push/client.go +++ b/universalClient/chains/push/client.go @@ -73,7 +73,7 @@ func NewClient( func (c *Client) Start(ctx context.Context) error { c.ctx, c.cancel = context.WithCancel(context.Background()) - c.logger.Info().Msg("starting Push chain client") + c.logger.Debug().Msg("starting Push chain client") // Start event listener if err := c.eventListener.Start(c.ctx); err != nil { @@ -94,7 +94,7 @@ func (c *Client) Start(ctx context.Context) error { // Stop gracefully shuts down the Push chain client func (c *Client) Stop() error { - c.logger.Info().Msg("stopping Push chain client") + c.logger.Debug().Msg("stopping Push chain client") // Cancel context if c.cancel != nil { @@ -104,7 +104,7 @@ func (c *Client) Stop() error { // Stop event listener if c.eventListener != nil { if err := c.eventListener.Stop(); err != nil { - c.logger.Error().Err(err).Msg("error stopping event listener") + c.logger.Error().Err(err).Str("subsystem", "event_listener").Msg("subsystem failed to stop") } } diff --git a/universalClient/chains/push/event_listener.go b/universalClient/chains/push/event_listener.go index 170981dd..73c36cf5 100644 --- a/universalClient/chains/push/event_listener.go +++ b/universalClient/chains/push/event_listener.go @@ -82,13 +82,14 @@ func (el *EventListener) Start(ctx context.Context) error { el.cancel = cancel el.running = true - el.logger.Info(). + el.logger.Debug(). Dur("poll_interval", el.cfg.PollInterval). Msg("starting Push event listener") el.wg.Add(1) go el.run(childCtx) + el.logger.Info().Msg("Push event listener started") return nil } From 410afdbdc4a86ffb7d63f962cd5227d608fbcc6b Mon Sep 17 00:00:00 2001 From: aman035 Date: Fri, 8 May 2026 13:54:54 +0530 Subject: [PATCH 7/8] fix: chains log refactor --- universalClient/chains/evm/chain_meta_oracle.go | 6 +++--- universalClient/chains/evm/client.go | 11 +++++------ universalClient/chains/evm/event_confirmer.go | 8 ++++---- universalClient/chains/evm/event_listener.go | 14 ++++++-------- universalClient/chains/evm/rpc_client.go | 11 +++++------ universalClient/chains/evm/tx_builder.go | 9 +++------ universalClient/chains/push/event_listener.go | 2 -- universalClient/chains/svm/chain_meta_oracle.go | 6 +++--- universalClient/chains/svm/client.go | 6 +++--- universalClient/chains/svm/event_confirmer.go | 8 ++++---- universalClient/chains/svm/event_listener.go | 10 ++++------ universalClient/chains/svm/rpc_client.go | 13 ++++++------- universalClient/core/client.go | 2 +- 13 files changed, 47 insertions(+), 59 deletions(-) diff --git a/universalClient/chains/evm/chain_meta_oracle.go b/universalClient/chains/evm/chain_meta_oracle.go index 534eb9f0..842d3e80 100644 --- a/universalClient/chains/evm/chain_meta_oracle.go +++ b/universalClient/chains/evm/chain_meta_oracle.go @@ -68,17 +68,17 @@ func (g *ChainMetaOracle) fetchAndVoteChainMeta(ctx context.Context) { ticker := time.NewTicker(interval) defer ticker.Stop() - g.logger.Info(). + g.logger.Debug(). Dur("interval", interval). Msg("starting gas price fetching and voting") for { select { case <-ctx.Done(): - g.logger.Info().Msg("context cancelled, stopping gas price fetcher") + g.logger.Debug().Msg("context cancelled, stopping gas price fetcher") return case <-g.stopCh: - g.logger.Info().Msg("stop signal received, stopping gas price fetcher") + g.logger.Debug().Msg("stop signal received, stopping gas price fetcher") return case <-ticker.C: // Fetch current gas price diff --git a/universalClient/chains/evm/client.go b/universalClient/chains/evm/client.go index 83c0a1a6..0ef00f26 100644 --- a/universalClient/chains/evm/client.go +++ b/universalClient/chains/evm/client.go @@ -96,7 +96,7 @@ func NewClient( func (c *Client) Start(ctx context.Context) error { c.ctx, c.cancel = context.WithCancel(context.Background()) - c.logger.Info().Str("chain", c.chainIDStr).Msg("starting EVM chain client") + c.logger.Debug().Str("chain", c.chainIDStr).Msg("starting EVM chain client") // Initialize RPC client first (required for other components) if err := c.createRPCClient(); err != nil { @@ -119,7 +119,7 @@ func (c *Client) Start(ctx context.Context) error { // Stop gracefully shuts down the EVM chain client func (c *Client) Stop() error { - c.logger.Info().Msg("stopping EVM chain client") + c.logger.Debug().Msg("stopping EVM chain client") // Cancel context first to signal shutdown if c.cancel != nil { @@ -129,7 +129,7 @@ func (c *Client) Stop() error { // Stop components in reverse order of initialization if c.eventListener != nil { if err := c.eventListener.Stop(); err != nil { - c.logger.Error().Err(err).Msg("error stopping event listener") + c.logger.Error().Err(err).Str("subsystem", "event_listener").Msg("subsystem failed to stop") } } @@ -139,7 +139,7 @@ func (c *Client) Stop() error { if c.eventProcessor != nil { if err := c.eventProcessor.Stop(); err != nil { - c.logger.Error().Err(err).Msg("error stopping event processor") + c.logger.Error().Err(err).Str("subsystem", "event_processor").Msg("subsystem failed to stop") } } @@ -208,7 +208,6 @@ func (c *Client) initializeComponents() error { if err != nil { return fmt.Errorf("failed to fetch vault address from gateway: %w", err) } - c.logger.Info().Str("vault_address", vaultAddr.Hex()).Msg("vault address fetched from gateway") eventListener, err := NewEventListener( c.rpcClient, @@ -320,7 +319,7 @@ func (c *Client) createRPCClient() error { } c.rpcClient = rpcClient - c.logger.Info().Int("connected_count", len(rpcClient.clients)).Msg("EVM RPC clients initialized successfully") + c.logger.Info().Int("connected_count", len(rpcClient.clients)).Msg("RPC clients initialized successfully") return nil } diff --git a/universalClient/chains/evm/event_confirmer.go b/universalClient/chains/evm/event_confirmer.go index 719b6f97..ab51894f 100644 --- a/universalClient/chains/evm/event_confirmer.go +++ b/universalClient/chains/evm/event_confirmer.go @@ -78,17 +78,17 @@ func (ec *EventConfirmer) checkAndConfirmEvents(ctx context.Context) { ticker := time.NewTicker(interval) defer ticker.Stop() - ec.logger.Info(). + ec.logger.Debug(). Dur("interval", interval). Msg("starting event confirmation checking") for { select { case <-ctx.Done(): - ec.logger.Info().Msg("context cancelled, stopping event confirmer") + ec.logger.Debug().Msg("context cancelled, stopping event confirmer") return case <-ec.stopCh: - ec.logger.Info().Msg("stop signal received, stopping event confirmer") + ec.logger.Debug().Msg("stop signal received, stopping event confirmer") return case <-ticker.C: if err := ec.processPendingEvents(ctx); err != nil { @@ -202,7 +202,7 @@ func (ec *EventConfirmer) processPendingEvents(ctx context.Context) error { if rowsAffected > 0 { confirmedCount++ - ec.logger.Info(). + ec.logger.Debug(). Str("event_id", event.EventID). Str("event_type", event.Type). Uint64("confirmations", confirmations). diff --git a/universalClient/chains/evm/event_listener.go b/universalClient/chains/evm/event_listener.go index d3e159df..294ddcc3 100644 --- a/universalClient/chains/evm/event_listener.go +++ b/universalClient/chains/evm/event_listener.go @@ -120,7 +120,6 @@ func (el *EventListener) Start(ctx context.Context) error { el.wg.Add(1) go el.listen(ctx) - el.logger.Info().Msg("EVM event listener started") return nil } @@ -130,12 +129,11 @@ func (el *EventListener) Stop() error { return nil } - el.logger.Info().Msg("stopping EVM event listener") + el.logger.Debug().Msg("stopping EVM event listener") close(el.stopCh) el.running = false el.wg.Wait() - el.logger.Info().Msg("EVM event listener stopped") return nil } @@ -161,11 +159,11 @@ func (el *EventListener) listen(ctx context.Context) { // Get event topics topics := el.eventTopics if len(topics) == 0 { - el.logger.Warn().Msg("no event topics configured, event listener will not process events") + el.logger.Error().Msg("no event topics configured, event listener will not process events") return } - el.logger.Info(). + el.logger.Debug(). Int("topic_count", len(topics)). Uint64("from_block", fromBlock). Dur("poll_interval", pollInterval). @@ -178,10 +176,10 @@ func (el *EventListener) listen(ctx context.Context) { for { select { case <-ctx.Done(): - el.logger.Info().Msg("context cancelled, stopping event listener") + el.logger.Debug().Msg("context cancelled, stopping event listener") return case <-el.stopCh: - el.logger.Info().Msg("stop signal received, stopping event listener") + el.logger.Debug().Msg("stop signal received, stopping event listener") return case <-ticker.C: if err := el.processNewBlocks(ctx, ¤tBlock, topics); err != nil { @@ -289,7 +287,7 @@ func (el *EventListener) processBlockChunk( // Log when events are found if len(logs) > 0 { - el.logger.Info(). + el.logger.Debug(). Uint64("from_block", fromBlock). Uint64("to_block", toBlock). Int("logs_found", len(logs)). diff --git a/universalClient/chains/evm/rpc_client.go b/universalClient/chains/evm/rpc_client.go index 2c486500..d2d45118 100644 --- a/universalClient/chains/evm/rpc_client.go +++ b/universalClient/chains/evm/rpc_client.go @@ -37,10 +37,10 @@ func NewRPCClient(rpcURLs []string, expectedChainID int64, logger zerolog.Logger ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel() - for _, url := range rpcURLs { + for i, url := range rpcURLs { client, err := ethclient.DialContext(ctx, url) if err != nil { - log.Warn().Err(err).Str("url", url).Msg("failed to connect to RPC endpoint, skipping") + log.Warn().Err(err).Int("index", i).Msg("failed to connect to RPC endpoint, skipping") continue } @@ -51,18 +51,17 @@ func NewRPCClient(rpcURLs []string, expectedChainID int64, logger zerolog.Logger // This allows the system to continue even if verification is slow/unavailable log.Warn(). Err(err). - Str("url", url). + Int("index", i). Int64("expected_chain_id", expectedChainID). Msg("failed to verify chain ID (timeout or error), proceeding with client anyway") clients = append(clients, client) - log.Info().Str("url", url).Msg("connected to RPC endpoint (chain ID verification skipped)") continue } if clientChainID.Int64() != expectedChainID { client.Close() log.Warn(). - Str("url", url). + Int("index", i). Int64("expected_chain_id", expectedChainID). Int64("actual_chain_id", clientChainID.Int64()). Msg("chain ID mismatch, closing client") @@ -70,7 +69,7 @@ func NewRPCClient(rpcURLs []string, expectedChainID int64, logger zerolog.Logger } clients = append(clients, client) - log.Info().Str("url", url).Msg("connected to RPC endpoint") + log.Debug().Int("index", i).Msg("RPC client added to pool") } if len(clients) == 0 { diff --git a/universalClient/chains/evm/tx_builder.go b/universalClient/chains/evm/tx_builder.go index 7976f9af..1e614c01 100644 --- a/universalClient/chains/evm/tx_builder.go +++ b/universalClient/chains/evm/tx_builder.go @@ -69,7 +69,7 @@ func NewTxBuilder( logger: logger.With().Str("component", "evm_tx_builder").Str("chain", chainID).Logger(), } - tb.logger.Info(). + tb.logger.Debug(). Str("vault", vaultAddress.Hex()). Str("gateway", gwAddr.Hex()). Msg("tx builder initialized") @@ -493,7 +493,7 @@ func (tb *TxBuilder) GetFundMigrationSigningRequest(ctx context.Context, data *c return nil, fmt.Errorf("insufficient balance for gas: balance=%s gasCost=%s", balance.String(), gasCost.String()) } - tb.logger.Info(). + tb.logger.Debug(). Str("from", data.From). Str("to", data.To). Str("balance", balance.String()). @@ -516,7 +516,7 @@ func (tb *TxBuilder) GetFundMigrationSigningRequest(ctx context.Context, data *c return &common.UnsignedSigningReq{ SigningHash: txHash, - Nonce: nonce, + Nonce: nonce, }, nil } @@ -567,9 +567,6 @@ func (tb *TxBuilder) BroadcastFundMigrationTx(ctx context.Context, req *common.U tb.logger.Info(). Str("tx_hash", txHashStr). - Str("from", data.From). - Str("to", data.To). - Str("amount", maxTransfer.String()). Msg("fund migration tx broadcast successfully") return txHashStr, nil diff --git a/universalClient/chains/push/event_listener.go b/universalClient/chains/push/event_listener.go index 73c36cf5..3b620ad9 100644 --- a/universalClient/chains/push/event_listener.go +++ b/universalClient/chains/push/event_listener.go @@ -89,7 +89,6 @@ func (el *EventListener) Start(ctx context.Context) error { el.wg.Add(1) go el.run(childCtx) - el.logger.Info().Msg("Push event listener started") return nil } @@ -106,7 +105,6 @@ func (el *EventListener) Stop() error { el.wg.Wait() el.running = false - el.logger.Info().Msg("Push event listener stopped") return nil } diff --git a/universalClient/chains/svm/chain_meta_oracle.go b/universalClient/chains/svm/chain_meta_oracle.go index 63fcab7b..e70a0d4d 100644 --- a/universalClient/chains/svm/chain_meta_oracle.go +++ b/universalClient/chains/svm/chain_meta_oracle.go @@ -68,17 +68,17 @@ func (g *ChainMetaOracle) fetchAndVoteChainMeta(ctx context.Context) { ticker := time.NewTicker(interval) defer ticker.Stop() - g.logger.Info(). + g.logger.Debug(). Dur("interval", interval). Msg("starting gas price fetching and voting") for { select { case <-ctx.Done(): - g.logger.Info().Msg("context cancelled, stopping gas price fetcher") + g.logger.Debug().Msg("context cancelled, stopping gas price fetcher") return case <-g.stopCh: - g.logger.Info().Msg("stop signal received, stopping gas price fetcher") + g.logger.Debug().Msg("stop signal received, stopping gas price fetcher") return case <-ticker.C: // Fetch current gas price diff --git a/universalClient/chains/svm/client.go b/universalClient/chains/svm/client.go index 84a75ab1..2593ce81 100644 --- a/universalClient/chains/svm/client.go +++ b/universalClient/chains/svm/client.go @@ -105,7 +105,7 @@ func NewClient( func (c *Client) Start(ctx context.Context) error { c.ctx, c.cancel = context.WithCancel(context.Background()) - c.logger.Info().Str("chain", c.chainIDStr).Msg("starting Solana chain client") + c.logger.Debug().Str("chain", c.chainIDStr).Msg("starting Solana chain client") // Initialize RPC client first (required for other components) if err := c.createRPCClient(); err != nil { @@ -128,7 +128,7 @@ func (c *Client) Start(ctx context.Context) error { // Stop gracefully shuts down the Solana chain client func (c *Client) Stop() error { - c.logger.Info().Msg("stopping Solana chain client") + c.logger.Debug().Msg("stopping Solana chain client") // Cancel context first to signal shutdown if c.cancel != nil { @@ -314,7 +314,7 @@ func (c *Client) createRPCClient() error { } c.rpcClient = rpcClient - c.logger.Info().Msg("Solana RPC clients initialized successfully") + c.logger.Info().Int("connected_count", len(rpcClient.clients)).Msg("RPC clients initialized successfully") return nil } diff --git a/universalClient/chains/svm/event_confirmer.go b/universalClient/chains/svm/event_confirmer.go index 192f06ba..17075446 100644 --- a/universalClient/chains/svm/event_confirmer.go +++ b/universalClient/chains/svm/event_confirmer.go @@ -76,17 +76,17 @@ func (ec *EventConfirmer) checkAndConfirmEvents(ctx context.Context) { ticker := time.NewTicker(interval) defer ticker.Stop() - ec.logger.Info(). + ec.logger.Debug(). Dur("interval", interval). Msg("starting event confirmation checking") for { select { case <-ctx.Done(): - ec.logger.Info().Msg("context cancelled, stopping event confirmer") + ec.logger.Debug().Msg("context cancelled, stopping event confirmer") return case <-ec.stopCh: - ec.logger.Info().Msg("stop signal received, stopping event confirmer") + ec.logger.Debug().Msg("stop signal received, stopping event confirmer") return case <-ticker.C: if err := ec.processPendingEvents(ctx); err != nil { @@ -182,7 +182,7 @@ func (ec *EventConfirmer) processPendingEvents(ctx context.Context) error { if rowsAffected > 0 { confirmedCount++ - ec.logger.Info(). + ec.logger.Debug(). Str("event_id", event.EventID). Str("event_type", event.Type). Uint64("confirmations", confirmations). diff --git a/universalClient/chains/svm/event_listener.go b/universalClient/chains/svm/event_listener.go index 40afad95..aff9f027 100644 --- a/universalClient/chains/svm/event_listener.go +++ b/universalClient/chains/svm/event_listener.go @@ -113,7 +113,6 @@ func (el *EventListener) Start(ctx context.Context) error { el.wg.Add(1) go el.listen(ctx) - el.logger.Info().Msg("SVM event listener started") return nil } @@ -123,12 +122,11 @@ func (el *EventListener) Stop() error { return nil } - el.logger.Info().Msg("stopping SVM event listener") + el.logger.Debug().Msg("stopping SVM event listener") close(el.stopCh) el.running = false el.wg.Wait() - el.logger.Info().Msg("SVM event listener stopped") return nil } @@ -151,7 +149,7 @@ func (el *EventListener) listen(ctx context.Context) { return } - el.logger.Info(). + el.logger.Debug(). Uint64("from_slot", fromSlot). Dur("poll_interval", pollInterval). Msg("starting event watching") @@ -163,10 +161,10 @@ func (el *EventListener) listen(ctx context.Context) { for { select { case <-ctx.Done(): - el.logger.Info().Msg("context cancelled, stopping event listener") + el.logger.Debug().Msg("context cancelled, stopping event listener") return case <-el.stopCh: - el.logger.Info().Msg("stop signal received, stopping event listener") + el.logger.Debug().Msg("stop signal received, stopping event listener") return case <-ticker.C: if err := el.processNewSlots(ctx, ¤tSlot); err != nil { diff --git a/universalClient/chains/svm/rpc_client.go b/universalClient/chains/svm/rpc_client.go index 626c4d92..7ce351ea 100644 --- a/universalClient/chains/svm/rpc_client.go +++ b/universalClient/chains/svm/rpc_client.go @@ -36,19 +36,19 @@ func NewRPCClient(rpcURLs []string, expectedGenesisHash string, logger zerolog.L ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel() - for _, url := range rpcURLs { + for i, url := range rpcURLs { client := rpc.New(url) // Verify connection by checking health health, err := client.GetHealth(ctx) if err != nil { - log.Warn().Err(err).Str("url", url).Msg("failed to connect to RPC endpoint, skipping") + log.Warn().Err(err).Int("index", i).Msg("failed to connect to RPC endpoint, skipping") continue } if health != "ok" { log.Warn(). - Str("url", url). + Int("index", i). Str("health", health). Msg("node is not healthy, skipping") continue @@ -62,11 +62,10 @@ func NewRPCClient(rpcURLs []string, expectedGenesisHash string, logger zerolog.L // This allows the system to continue even if verification is slow/unavailable log.Warn(). Err(err). - Str("url", url). + Int("index", i). Str("expected_genesis_hash", expectedGenesisHash). Msg("failed to verify genesis hash (timeout or error), proceeding with client anyway") clients = append(clients, client) - log.Info().Str("url", url).Msg("connected to RPC endpoint (genesis hash verification skipped)") continue } @@ -77,7 +76,7 @@ func NewRPCClient(rpcURLs []string, expectedGenesisHash string, logger zerolog.L if actualHash != expectedGenesisHash { log.Warn(). - Str("url", url). + Int("index", i). Str("expected_genesis_hash", expectedGenesisHash). Str("actual_genesis_hash", genesisHash.String()). Msg("genesis hash mismatch, skipping") @@ -86,7 +85,7 @@ func NewRPCClient(rpcURLs []string, expectedGenesisHash string, logger zerolog.L } clients = append(clients, client) - log.Info().Str("url", url).Msg("connected to RPC endpoint") + log.Debug().Int("index", i).Msg("RPC client added to pool") } if len(clients) == 0 { diff --git a/universalClient/core/client.go b/universalClient/core/client.go index 54a9df15..e2f6833e 100644 --- a/universalClient/core/client.go +++ b/universalClient/core/client.go @@ -115,7 +115,7 @@ func (uc *UniversalClient) Start() error { // shutdown stops all subsystems in reverse startup order. func (uc *UniversalClient) shutdown() { - uc.log.Info().Msg("shutting down universal client") + uc.log.Debug().Msg("shutting down universal client") if err := uc.queryServer.Stop(); err != nil { uc.log.Error().Err(err).Str("subsystem", "query_server").Msg("subsystem failed to stop") From e202ec03e65ab57b375198b9a0f1e6052b9ee508 Mon Sep 17 00:00:00 2001 From: aman035 Date: Fri, 8 May 2026 14:09:16 +0530 Subject: [PATCH 8/8] fix: tss logs --- .../tss/coordinator/coordinator.go | 24 +++++++++++-------- universalClient/tss/expirysweeper/sweeper.go | 8 ++++++- .../tss/sessionmanager/sessionmanager.go | 10 ++++++-- universalClient/tss/tss.go | 9 ++----- 4 files changed, 31 insertions(+), 20 deletions(-) diff --git a/universalClient/tss/coordinator/coordinator.go b/universalClient/tss/coordinator/coordinator.go index f48239b3..14aed8d5 100644 --- a/universalClient/tss/coordinator/coordinator.go +++ b/universalClient/tss/coordinator/coordinator.go @@ -298,7 +298,7 @@ func (c *Coordinator) Start(ctx context.Context) { c.running = true c.mu.Unlock() - c.logger.Info().Msg("starting coordinator") + c.logger.Debug().Msg("starting coordinator") go c.pollLoop(ctx) } @@ -313,7 +313,7 @@ func (c *Coordinator) Stop() { close(c.stopCh) c.mu.Unlock() - c.logger.Info().Msg("stopping coordinator") + c.logger.Debug().Msg("stopping coordinator") } // pollLoop polls the database for pending events and processes them. @@ -380,7 +380,7 @@ func (c *Coordinator) processConfirmedEvents(ctx context.Context) error { return nil } - c.logger.Info().Msg("processConfirmedEvents: we ARE coordinator, processing events") + c.logger.Debug().Msg("processConfirmedEvents: we ARE coordinator, processing events") events, err := c.eventStore.GetNonExpiredConfirmedEvents(currentBlock, 10, 0) if err != nil { @@ -392,10 +392,14 @@ func (c *Coordinator) processConfirmedEvents(ctx context.Context) error { return fmt.Errorf("failed to get in-flight sign count per chain: %w", err) } - c.logger.Info(). - Int("count", len(events)). - Uint64("current_block", currentBlock). - Msg("found confirmed events") + // Only surface at Info when we actually have events to process; otherwise + // the per-poll Debug above is sufficient and avoids steady-state log noise. + if len(events) > 0 { + c.logger.Info(). + Int("count", len(events)). + Uint64("current_block", currentBlock). + Msg("found confirmed events") + } // Per-chain nonce cache: fetched once per chain per poll, then incremented locally (n, n+1, n+2, …). nonceByChain := make(map[string]uint64) @@ -440,7 +444,7 @@ func (c *Coordinator) processConfirmedEvents(ctx context.Context) error { } } - c.logger.Info(). + c.logger.Debug(). Str("event_id", event.EventID). Str("type", event.Type). Uint64("block_height", event.BlockHeight). @@ -565,7 +569,7 @@ func (c *Coordinator) processEventAsCoordinator(ctx context.Context, event store Msg("failed to send setup message") // Continue - other participants may still receive it } else { - c.logger.Info(). + c.logger.Debug(). Str("event_id", event.EventID). Str("receiver", receiverAddr). Msg("sent setup message to participant") @@ -1109,7 +1113,7 @@ func (c *Coordinator) assignSignNonce( // Cap is intentionally bypassed: stuck events have stale nonces and will // be cleared by broadcaster → resolver → REVERTED. useFinalized = true - c.logger.Info(). + c.logger.Debug(). Str("chain", chain). Int("in_flight", inFlightPerChain[chain]). Int("consecutive_wait", consecutiveWait). diff --git a/universalClient/tss/expirysweeper/sweeper.go b/universalClient/tss/expirysweeper/sweeper.go index 40b2cfd7..4967aba4 100644 --- a/universalClient/tss/expirysweeper/sweeper.go +++ b/universalClient/tss/expirysweeper/sweeper.go @@ -114,7 +114,13 @@ func (s *Sweeper) sweep(ctx context.Context) { swept++ } - s.logger.Info(). + // Only surface at Info when we actually swept something; routine no-op + // sweeps drop to Debug to avoid steady-state log noise. + level := s.logger.Debug() + if swept > 0 { + level = s.logger.Info() + } + level. Int("swept", swept). Int("total_expired", len(events)). Uint64("current_block", currentBlock). diff --git a/universalClient/tss/sessionmanager/sessionmanager.go b/universalClient/tss/sessionmanager/sessionmanager.go index c0c896de..46c8aa36 100644 --- a/universalClient/tss/sessionmanager/sessionmanager.go +++ b/universalClient/tss/sessionmanager/sessionmanager.go @@ -423,10 +423,13 @@ func (sm *SessionManager) handleSessionFinished(ctx context.Context, eventID str // handleSignFinished handles a completed SIGN session by broadcasting the signed transaction. func (sm *SessionManager) handleSignFinished(ctx context.Context, eventID string, result *dkls.Result, signingReq *common.UnsignedSigningReq) error { sm.logger.Info(). + Str("event_id", eventID). + Msg("signature generated from sign session") + sm.logger.Debug(). Str("event_id", eventID). Str("signature", hex.EncodeToString(result.Signature)). Str("public_key", hex.EncodeToString(result.PublicKey)). - Msg("signature generated from sign session") + Msg("sign session crypto material") event, err := sm.eventStore.GetEvent(eventID) if err != nil { @@ -459,9 +462,12 @@ func (sm *SessionManager) handleKeyFinished(ctx context.Context, eventID, protoc Str("event_id", eventID). Str("protocol", protocolType). Str("storage_id", storageID). + Msg("saved keyshare") + sm.logger.Debug(). + Str("event_id", eventID). Str("public_key", hex.EncodeToString(result.PublicKey)). Str("keyshare_hash", hex.EncodeToString(keyshareHash[:])). - Msg("saved keyshare") + Msg("saved keyshare crypto material") // Vote on Push chain var voteTxHash string diff --git a/universalClient/tss/tss.go b/universalClient/tss/tss.go index 35b4f0ee..a22eadc4 100644 --- a/universalClient/tss/tss.go +++ b/universalClient/tss/tss.go @@ -281,7 +281,7 @@ func (n *Node) Start(ctx context.Context) error { n.ctx = ctx n.mu.Unlock() - n.logger.Info().Msg("starting TSS node") + n.logger.Debug().Msg("starting TSS node") // Start libp2p network net, err := libp2pnet.New(ctx, n.networkCfg, n.logger) @@ -296,11 +296,6 @@ func (n *Node) Start(ctx context.Context) error { return fmt.Errorf("failed to register message handler: %w", err) } - n.logger.Info(). - Str("peer_id", net.ID()). - Strs("addrs", net.ListenAddrs()). - Msg("libp2p network started") - // Reset all IN_PROGRESS events to PENDING on startup // This handles cases where the node crashed while events were in progress, // causing sessions to be lost from memory but events remaining in IN_PROGRESS state @@ -386,7 +381,7 @@ func (n *Node) Stop() error { close(n.stopCh) n.mu.Unlock() - n.logger.Info().Msg("stopping TSS node") + n.logger.Debug().Msg("stopping TSS node") // Stop coordinator n.coordinator.Stop()