github.com/jimpick/sp-kyc-checks@v0.0.0-20230201194251-fa84fca72da8/checks/geoip/multiaddrs_ips.go (about) 1 package geoip 2 3 import ( 4 "encoding/json" 5 "os" 6 ) 7 8 type MultiaddrsIPsReport struct { 9 Date *string 10 MultiaddrsIPs []MultiaddrsIPsRecord 11 } 12 13 type MultiaddrsIPsRecord struct { 14 Miner string `json:"miner"` 15 Maddr string `json:"maddr"` 16 PeerID string `json:"peerId"` 17 IP string `json:"ip"` 18 Epoch uint `json:"epoch"` 19 Timestamp string `json:"timestamp"` 20 DHT bool `json:"dht"` 21 Chain bool `json:"chain"` 22 } 23 24 func LoadMultiAddrsIPs() ([]MultiaddrsIPsRecord, error) { 25 file := os.Getenv("MULTIADDRS_IPS") 26 if file == "" { 27 file = "testdata/multiaddrs-ips-latest.json" 28 } 29 bytes, err := os.ReadFile(file) 30 if err != nil { 31 return nil, err 32 } 33 var report MultiaddrsIPsReport 34 json.Unmarshal(bytes, &report) 35 return report.MultiaddrsIPs, nil 36 }