diff --git a/apps/chain_pusher/pkg/evm/interactor.go b/apps/chain_pusher/pkg/evm/interactor.go index a65383a8..378191b1 100644 --- a/apps/chain_pusher/pkg/evm/interactor.go +++ b/apps/chain_pusher/pkg/evm/interactor.go @@ -106,6 +106,8 @@ func NewContractInteractor( } func (eci *ContractInteractor) ConnectHTTP(ctx context.Context, url string) error { + eci.logger.Info().Str("url", url).Msg("ConnectHTTP") + client, err := ethclient.Dial(url) if err != nil { return fmt.Errorf("failed to connect to RPC: %w", err) @@ -129,13 +131,14 @@ func (eci *ContractInteractor) ConnectHTTP(ctx context.Context, url string) erro versionStr, err := eci.contract.Version(makeCallOpts(ctx)) if err != nil { eci.logger.Error().Err(err).Msg("Failed to get contract version") + } else { + version, err := semver.NewVersion(versionStr) + if err != nil { + eci.logger.Error().Err(err).Msg("Failed to parse contract version") + } + eci.version = version + eci.logger.Info().Interface("version", eci.version).Msg("contract version") } - version, err := semver.NewVersion(versionStr) - if err != nil { - eci.logger.Error().Err(err).Msg("Failed to parse contract version") - } - eci.version = version - eci.logger.Info().Interface("version", eci.version).Msg("contract version") // set single update fee singleUpdateFee, err := eci.getSingleUpdateFee(ctx) @@ -144,6 +147,10 @@ func (eci *ContractInteractor) ConnectHTTP(ctx context.Context, url string) erro } eci.singleUpdateFee = singleUpdateFee + if err = eci.nonceManager.ResetNonce(ctx, eci.client, crypto.PubkeyToAddress(eci.privateKey.PublicKey)); err != nil { + eci.logger.Error().Err(err).Msg("Failed to reset nonce") + } + return nil } @@ -684,7 +691,7 @@ func (eci *ContractInteractor) submitTransaction( if txErr != nil { if strings.Contains(txErr.Error(), "nonce") { - eci.logger.Warn().Msg("Nonce mismatch, resetting nonce") + eci.logger.Warn().Err(txErr).Msg("Nonce mismatch, resetting nonce") err := eci.nonceManager.ResetNonce(ctx, eci.client, crypto.PubkeyToAddress(eci.privateKey.PublicKey)) if err != nil { return nil, fmt.Errorf("failed to reset nonce: %w", err) @@ -707,7 +714,7 @@ func (eci *ContractInteractor) submitTransaction( if revertData, ok := ethclient.RevertErrorData(txErr); ok { eci.logger.Error().Str("revertData", hex.EncodeToString(revertData)).Msg("transaction reverted with data") } else if strings.Contains(txErr.Error(), "nonce") { - eci.logger.Warn().Msg("Nonce mismatch, resetting nonce") + eci.logger.Warn().Err(txErr).Msg("Nonce mismatch, resetting nonce") err := eci.nonceManager.ResetNonce(ctx, eci.client, crypto.PubkeyToAddress(eci.privateKey.PublicKey)) if err != nil { return nil, fmt.Errorf("failed to reset nonce: %w", err) diff --git a/apps/chain_pusher/pkg/evm/interactor_integration_test.go b/apps/chain_pusher/pkg/evm/interactor_integration_test.go index ce822d83..f8577b48 100644 --- a/apps/chain_pusher/pkg/evm/interactor_integration_test.go +++ b/apps/chain_pusher/pkg/evm/interactor_integration_test.go @@ -5,7 +5,6 @@ package evm import ( "context" "errors" - "fmt" "sync" "testing" "time" @@ -38,11 +37,6 @@ func (s *InteractorTestSuite) SetupSuite() { s.Require().NoError(env.Parse(&s.config)) s.ctx, s.cancel = context.WithCancel(context.Background()) - fmt.Println("RpcUrl: ", s.config.RpcUrl) - fmt.Println("WsUrl: ", s.config.WsUrl) - fmt.Println("ContractAddress: ", s.config.ContractAddress) - fmt.Println("PrivateKey: ", s.config.PrivateKey) - s.logger = PusherLogger(s.config.RpcUrl, s.config.ContractAddress) var err error