Skip to content

Commit 44800a6

Browse files
committed
fix: use liteclient.GetConfigFromUrl
1 parent b306549 commit 44800a6

File tree

5 files changed

+68
-101
lines changed

5 files changed

+68
-101
lines changed

framework/components/blockchain/ton.go

Lines changed: 27 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,15 @@ package blockchain
22

33
import (
44
"context"
5-
"encoding/json"
65
"fmt"
7-
"net/http"
8-
"net/url"
96
"strconv"
107
"time"
118

129
"github.com/docker/docker/api/types/container"
1310
"github.com/testcontainers/testcontainers-go"
1411
"github.com/testcontainers/testcontainers-go/network"
1512
"github.com/testcontainers/testcontainers-go/wait"
13+
"github.com/xssnick/tonutils-go/liteclient"
1614

1715
"github.com/smartcontractkit/chainlink-testing-framework/framework"
1816
)
@@ -27,60 +25,13 @@ const (
2725
liteServerPortOffset = 100 // internal, arbitrary offset for lite server port
2826
)
2927

30-
// TON config structures (e.g.: ton-blockchain.github.io/testnet-global.config.json)
31-
type tonLiteServer struct {
32-
IP int64 `json:"ip"`
33-
Port int `json:"port"`
34-
ID struct {
35-
Key string `json:"key"`
36-
Type string `json:"@type"`
37-
} `json:"id"`
38-
}
39-
40-
type tonConfig struct {
41-
LiteServers []tonLiteServer `json:"liteservers"`
42-
}
43-
44-
// convert int64 IP to string format (matches https://github.com/xssnick/tonutils-go/liteclient/connection.go/intToIP4)
45-
func intToIP4(ip int64) string {
46-
uip := uint32(ip) //nolint:gosec // IP conversion is safe for TON format
47-
return fmt.Sprintf("%d.%d.%d.%d",
48-
(uip>>24)&0xFF,
49-
(uip>>16)&0xFF,
50-
(uip>>8)&0xFF,
51-
uip&0xFF)
52-
}
53-
54-
// fetch and parse TON config to generate liteserver URLs
55-
func fetchTonConfig(configURL string) ([]string, error) {
56-
parsedURL, err := url.Parse(configURL)
57-
if err != nil {
58-
return nil, fmt.Errorf("invalid config URL: %w", err)
59-
}
60-
if parsedURL.Scheme != "http" && parsedURL.Scheme != "https" {
61-
return nil, fmt.Errorf("invalid URL scheme: %s", parsedURL.Scheme)
62-
}
63-
64-
resp, err := http.Get(configURL) //nolint:gosec // URL is validated above
65-
if err != nil {
66-
return nil, fmt.Errorf("failed to fetch config: %w", err)
67-
}
68-
defer resp.Body.Close()
69-
defer resp.Body.Close()
70-
71-
var config tonConfig
72-
if err := json.NewDecoder(resp.Body).Decode(&config); err != nil {
73-
return nil, fmt.Errorf("failed to decode config: %w", err)
74-
}
75-
76-
var liteServerURLs []string
77-
for _, ls := range config.LiteServers {
78-
ipStr := intToIP4(ls.IP)
79-
url := fmt.Sprintf("liteserver://%s@%s:%d", ls.ID.Key, ipStr, ls.Port)
80-
liteServerURLs = append(liteServerURLs, url)
81-
}
82-
83-
return liteServerURLs, nil
28+
// intToIP4 converts int64 IP to string format (matches tonutils-go implementation)
29+
func intToIP4(ipInt int64) string {
30+
b0 := strconv.FormatInt((ipInt>>24)&0xff, 10)
31+
b1 := strconv.FormatInt((ipInt>>16)&0xff, 10)
32+
b2 := strconv.FormatInt((ipInt>>8)&0xff, 10)
33+
b3 := strconv.FormatInt((ipInt & 0xff), 10)
34+
return b0 + "." + b1 + "." + b2 + "." + b3
8435
}
8536

8637
type portMapping struct {
@@ -163,11 +114,11 @@ func newTon(in *Input) (*Output, error) {
163114
"-t", "3", "-c", "last",
164115
}).WithStartupTimeout(2 * time.Minute),
165116
Mounts: testcontainers.ContainerMounts{
166-
{
117+
testcontainers.ContainerMount{
167118
Source: testcontainers.GenericVolumeMountSource{Name: fmt.Sprintf("shared-data-%s", networkName)},
168119
Target: "/usr/share/data",
169120
},
170-
{
121+
testcontainers.ContainerMount{
171122
Source: testcontainers.GenericVolumeMountSource{Name: fmt.Sprintf("ton-db-%s", networkName)},
172123
Target: "/var/ton-work/db",
173124
},
@@ -190,18 +141,28 @@ func newTon(in *Input) (*Output, error) {
190141
return nil, err
191142
}
192143

193-
// fetch config and generate liteserver URLs from actual config
144+
// Fetch config using tonutils-go
194145
configURL := fmt.Sprintf("http://localhost:%s/localhost.global.config.json", ports.SimpleServer)
195146

196-
liteServerURLs, err := fetchTonConfig(configURL)
147+
config, err := liteclient.GetConfigFromUrl(ctx, configURL)
197148
if err != nil {
198-
return nil, err
149+
return nil, fmt.Errorf("failed to fetch TON config: %w", err)
199150
}
200151

201-
if len(liteServerURLs) == 0 {
152+
if len(config.Liteservers) == 0 {
202153
return nil, fmt.Errorf("no liteservers found in config")
203154
}
204155

156+
// Use the first liteserver to create URLs
157+
ls := config.Liteservers[0]
158+
ipStr := intToIP4(ls.IP)
159+
publicKey := ls.ID.Key
160+
port := ls.Port
161+
162+
// Create external and internal URLs
163+
externalURL := fmt.Sprintf("liteserver://%s@%s:%d", publicKey, ipStr, port)
164+
internalURL := fmt.Sprintf("liteserver://%s@%s:%d", publicKey, name, port)
165+
205166
return &Output{
206167
UseCache: true,
207168
ChainID: in.ChainID,
@@ -210,9 +171,9 @@ func newTon(in *Input) (*Output, error) {
210171
ContainerName: name,
211172
Container: c,
212173
Nodes: []*Node{{
213-
// URLs now contain liteserver://publickey@host:port
214-
ExternalHTTPUrl: liteServerURLs[0],
215-
InternalHTTPUrl: liteServerURLs[0],
174+
// URLs now contain liteserver://publickey@host:port connections
175+
ExternalHTTPUrl: externalURL,
176+
InternalHTTPUrl: internalURL,
216177
}},
217178
}, nil
218179
}

framework/examples/myproject/go.mod

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ require (
8585
github.com/moby/sys/signal v0.7.1 // indirect
8686
github.com/moby/sys/symlink v0.3.0 // indirect
8787
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect
88-
github.com/oasisprotocol/curve25519-voi v0.0.0-20220328075252-7dd334e3daae // indirect
8988
github.com/pelletier/go-toml v1.9.5 // indirect
9089
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
9190
github.com/r3labs/sse v0.0.0-20210224172625-26fe804710bc // indirect
@@ -352,7 +351,7 @@ require (
352351
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
353352
github.com/ugorji/go/codec v1.2.12 // indirect
354353
github.com/x448/float16 v0.8.4 // indirect
355-
github.com/xssnick/tonutils-go v1.12.0
354+
github.com/xssnick/tonutils-go v1.14.1
356355
github.com/yusufpapurcu/wmi v1.2.4 // indirect
357356
go.etcd.io/etcd/api/v3 v3.5.14 // indirect
358357
go.etcd.io/etcd/client/pkg/v3 v3.5.14 // indirect
@@ -378,17 +377,17 @@ require (
378377
go.uber.org/zap v1.27.0 // indirect
379378
go4.org/netipx v0.0.0-20230125063823-8449b0a6169f // indirect
380379
golang.org/x/arch v0.11.0 // indirect
381-
golang.org/x/crypto v0.38.0 // indirect
380+
golang.org/x/crypto v0.39.0 // indirect
382381
golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect
383-
golang.org/x/mod v0.22.0 // indirect
382+
golang.org/x/mod v0.25.0 // indirect
384383
golang.org/x/net v0.40.0 // indirect
385384
golang.org/x/oauth2 v0.27.0 // indirect
386-
golang.org/x/sync v0.14.0 // indirect
385+
golang.org/x/sync v0.15.0 // indirect
387386
golang.org/x/sys v0.33.0 // indirect
388387
golang.org/x/term v0.32.0 // indirect
389-
golang.org/x/text v0.25.0 // indirect
388+
golang.org/x/text v0.26.0 // indirect
390389
golang.org/x/time v0.10.0 // indirect
391-
golang.org/x/tools v0.29.0 // indirect
390+
golang.org/x/tools v0.33.0 // indirect
392391
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
393392
google.golang.org/api v0.221.0 // indirect
394393
google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a // indirect

framework/examples/myproject/go.sum

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1087,8 +1087,6 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J
10871087
github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
10881088
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
10891089
github.com/nrwiersma/avro-benchmarks v0.0.0-20210913175520-21aec48c8f76/go.mod h1:iKyFMidsk/sVYONJRE372sJuX/QTRPacU7imPqqsu7g=
1090-
github.com/oasisprotocol/curve25519-voi v0.0.0-20220328075252-7dd334e3daae h1:7smdlrfdcZic4VfsGKD2ulWL804a4GVphr4s7WZxGiY=
1091-
github.com/oasisprotocol/curve25519-voi v0.0.0-20220328075252-7dd334e3daae/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s=
10921090
github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
10931091
github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU=
10941092
github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=
@@ -1466,8 +1464,8 @@ github.com/xhit/go-str2duration/v2 v2.1.0 h1:lxklc02Drh6ynqX+DdPyp5pCKLUQpRT8bp8
14661464
github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU=
14671465
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4=
14681466
github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM=
1469-
github.com/xssnick/tonutils-go v1.12.0 h1:Qn1yf/S6OEFD4a1sdpq8qHMzqJFjHaOWxmuXiDNWvZs=
1470-
github.com/xssnick/tonutils-go v1.12.0/go.mod h1:Wj8TFiUUc7IGdLn2X/ZDzmMs/1b4fsF3iJzH/l+PXTI=
1467+
github.com/xssnick/tonutils-go v1.14.1 h1:zV/iVYl/h3hArS+tPsd9XrSFfGert3r21caMltPSeHg=
1468+
github.com/xssnick/tonutils-go v1.14.1/go.mod h1:68xwWjpoGGqiTbLJ0gT63sKu1Z1moCnDLLzA+DKanIg=
14711469
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
14721470
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
14731471
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
@@ -1603,8 +1601,8 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh
16031601
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
16041602
golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
16051603
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
1606-
golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
1607-
golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
1604+
golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM=
1605+
golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
16081606
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
16091607
golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA=
16101608
golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU=
@@ -1614,8 +1612,8 @@ golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHl
16141612
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
16151613
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
16161614
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
1617-
golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
1618-
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
1615+
golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w=
1616+
golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
16191617
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
16201618
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
16211619
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1654,8 +1652,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
16541652
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
16551653
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
16561654
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
1657-
golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
1658-
golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
1655+
golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8=
1656+
golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
16591657
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
16601658
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
16611659
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1717,8 +1715,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
17171715
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
17181716
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
17191717
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
1720-
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
1721-
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
1718+
golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
1719+
golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
17221720
golang.org/x/time v0.10.0 h1:3usCWA8tQn0L8+hFJQNgzpWbd89begxN66o1Ojdn5L4=
17231721
golang.org/x/time v0.10.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
17241722
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -1732,8 +1730,8 @@ golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roY
17321730
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
17331731
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
17341732
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
1735-
golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
1736-
golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
1733+
golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc=
1734+
golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI=
17371735
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
17381736
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
17391737
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

framework/go.mod

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,17 @@ require (
2929
github.com/stretchr/testify v1.10.0
3030
github.com/testcontainers/testcontainers-go v0.37.0
3131
github.com/urfave/cli/v2 v2.27.5
32+
github.com/xssnick/tonutils-go v1.14.1
3233
go.opentelemetry.io/otel v1.35.0
3334
go.opentelemetry.io/otel/sdk v1.34.0
3435
go.opentelemetry.io/otel/trace v1.35.0
3536
go.uber.org/multierr v1.11.0
36-
golang.org/x/sync v0.13.0
37+
golang.org/x/sync v0.15.0
3738
gopkg.in/guregu/null.v4 v4.0.0
3839
)
3940

4041
require (
42+
filippo.io/edwards25519 v1.1.0 // indirect
4143
github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect
4244
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
4345
github.com/Microsoft/go-winio v0.6.2 // indirect
@@ -115,6 +117,7 @@ require (
115117
github.com/russross/blackfriday/v2 v2.1.0 // indirect
116118
github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect
117119
github.com/shirou/gopsutil/v4 v4.25.1 // indirect
120+
github.com/sigurn/crc16 v0.0.0-20211026045750-20ab5afb07e3 // indirect
118121
github.com/sirupsen/logrus v1.9.3 // indirect
119122
github.com/supranational/blst v0.3.13 // indirect
120123
github.com/tidwall/gjson v1.14.4 // indirect
@@ -128,11 +131,11 @@ require (
128131
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 // indirect
129132
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 // indirect
130133
go.opentelemetry.io/otel/metric v1.35.0 // indirect
131-
golang.org/x/crypto v0.37.0 // indirect
134+
golang.org/x/crypto v0.39.0 // indirect
132135
golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect
133136
golang.org/x/net v0.38.0 // indirect
134-
golang.org/x/sys v0.32.0 // indirect
135-
golang.org/x/text v0.24.0 // indirect
137+
golang.org/x/sys v0.33.0 // indirect
138+
golang.org/x/text v0.26.0 // indirect
136139
google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 // indirect
137140
google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f // indirect
138141
google.golang.org/grpc v1.71.0 // indirect

0 commit comments

Comments
 (0)