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  }