diff --git a/go.mod b/go.mod index 28e9e0a4..1e9f762c 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/sourcegraph/conc v0.3.0 github.com/stretchr/testify v1.8.4 github.com/tonkeeper/scam_backoffice_rules v0.0.0-20231207072018-fb6051191f8e - github.com/tonkeeper/tongo v1.4.2-0.20231213140948-5149f5e93a2b + github.com/tonkeeper/tongo v1.4.2-0.20231214105758-5913463ccac7 go.opentelemetry.io/otel v1.19.0 go.opentelemetry.io/otel/metric v1.19.0 go.opentelemetry.io/otel/trace v1.19.0 diff --git a/go.sum b/go.sum index 1bbf82c2..118c82e9 100644 --- a/go.sum +++ b/go.sum @@ -264,8 +264,8 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/tonkeeper/scam_backoffice_rules v0.0.0-20231207072018-fb6051191f8e h1:Av1unDqMPNWHKw1pqJpngDJhr0MfVzAHrH4UZtwK1Y4= github.com/tonkeeper/scam_backoffice_rules v0.0.0-20231207072018-fb6051191f8e/go.mod h1:SqZXYO9vbID8ku+xnnaKXeNGmehxigODGrk5V1KqbRA= -github.com/tonkeeper/tongo v1.4.2-0.20231213140948-5149f5e93a2b h1:/nBh5AAUS8TgmH7hOQWmcZxYNslqGqkXA7yi+HVRn90= -github.com/tonkeeper/tongo v1.4.2-0.20231213140948-5149f5e93a2b/go.mod h1:LdOBjpUz6vLp1EdX3E0XLNks9YI5XMSqaQahfOMrBEY= +github.com/tonkeeper/tongo v1.4.2-0.20231214105758-5913463ccac7 h1:H7hJTBX+mcKeMiZ/u/H6u0fUhmnhrumRzyFbmBaPmNc= +github.com/tonkeeper/tongo v1.4.2-0.20231214105758-5913463ccac7/go.mod h1:LdOBjpUz6vLp1EdX3E0XLNks9YI5XMSqaQahfOMrBEY= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= diff --git a/pkg/blockchain/msg_sender.go b/pkg/blockchain/msg_sender.go index 916e0f4f..fa80236e 100644 --- a/pkg/blockchain/msg_sender.go +++ b/pkg/blockchain/msg_sender.go @@ -3,12 +3,14 @@ package blockchain import ( "context" "fmt" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promauto" "math/rand" "sync" "time" + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/promauto" + "github.com/sourcegraph/conc/iter" + "github.com/tonkeeper/tongo" "github.com/tonkeeper/tongo/config" "github.com/tonkeeper/tongo/liteapi" @@ -70,12 +72,20 @@ func NewMsgSender(logger *zap.Logger, servers []config.LiteServer, receivers map } clients = append(clients, client) } else { - for _, s := range servers { - c, err := liteapi.NewClient(liteapi.WithLiteServers([]config.LiteServer{s})) + ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second) + defer cancel() + + tmpClients := iter.Map[config.LiteServer, *liteapi.Client](servers, func(s *config.LiteServer) *liteapi.Client { + c, err := liteapi.NewClient(liteapi.WithInitializationContext(ctx), liteapi.WithLiteServers([]config.LiteServer{*s})) if err != nil { - continue + return nil + } + return c + }) + for _, cli := range tmpClients { + if cli != nil { + clients = append(clients, cli) } - clients = append(clients, c) } } if len(clients) == 0 {