status-go/wakuv2/nwaku_test_utils.go
Ivan Folgueira Bande a3bff47800
refactor_: start using nwaku
- some minor progress to add nwaku in status-go
- nwaku.go: GetNumConnectedPeers controls when passed pubsub is empty
- waku_test.go: adapt TestWakuV2Store
- add missing shard.go
- feat_: build nwaku with nix and use build tags to choose between go-waku and nwaku (#5896)
- chore_: update nwaku
- nwaku bump (#5911)
- bump: nwaku
- chore: add USE_NWAKU env flag
- fix: build libwaku only if needed
- feat: testing discovery and dialing with nwaku integration (#5940)
- message publisher and sent verifier (#5966)
- storenode requestor for missing message retrieval and result iterator impl (#5971)
- uncomment code that would allow status-go/go-waku to compile and libwaku test to run (#5986)
- supporting peer exchange with nwaku (#5983)
- store queries
- ping
- ping storenodes using AddrInfo (#6004)
- dial, drop and retrieve connected peers  (#6013)
- integrate on-demand DNS discovery and implement discoverAndConnectPeers (#6017)
- extract libwaku calls into WakuNode struct (#6027)
- async nwaku
- remove nwaku process loop
- receive messages via relay (#6185)
- extract timeout from context
- use correct port field, get free ports and uncomment some functions (#6200)
- enable filter/lightpush/px and setup rate limits
- add protected topics
2024-12-18 15:25:39 -04:00

59 lines
1.1 KiB
Go

package wakuv2
import (
"encoding/json"
"fmt"
"io"
"net/http"
"os"
"strconv"
)
type NwakuInfo struct {
ListenAddresses []string `json:"listenAddresses"`
EnrUri string `json:"enrUri"`
}
func GetNwakuInfo(host *string, port *int) (NwakuInfo, error) {
nwakuRestPort := 8645
if port != nil {
nwakuRestPort = *port
}
envNwakuRestPort := os.Getenv("NWAKU_REST_PORT")
if envNwakuRestPort != "" {
v, err := strconv.Atoi(envNwakuRestPort)
if err != nil {
return NwakuInfo{}, err
}
nwakuRestPort = v
}
nwakuRestHost := "localhost"
if host != nil {
nwakuRestHost = *host
}
envNwakuRestHost := os.Getenv("NWAKU_REST_HOST")
if envNwakuRestHost != "" {
nwakuRestHost = envNwakuRestHost
}
resp, err := http.Get(fmt.Sprintf("http://%s:%d/debug/v1/info", nwakuRestHost, nwakuRestPort))
if err != nil {
return NwakuInfo{}, err
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return NwakuInfo{}, err
}
var data NwakuInfo
err = json.Unmarshal(body, &data)
if err != nil {
return NwakuInfo{}, err
}
return data, nil
}