github.com/diadata-org/diadata@v1.4.593/pkg/model/chainconfig.go (about)

     1  package models
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  
     7  	"github.com/diadata-org/diadata/pkg/dia"
     8  )
     9  
    10  func (rdb *RelDB) SetChainConfig(chainconfig dia.ChainConfig) (err error) {
    11  	fields := fmt.Sprintf("INSERT INTO %s (rpcurl,wsurl,chainID) VALUES ", chainconfigTable)
    12  	values := "($1,$2,$3)"
    13  
    14  	query := fields + values
    15  	_, err = rdb.postgresClient.Exec(context.Background(), query,
    16  		chainconfig.RestURL,
    17  		chainconfig.WSURL,
    18  		chainconfig.ChainID,
    19  	)
    20  	if err != nil {
    21  		return err
    22  	}
    23  	return nil
    24  }
    25  
    26  func (rdb *RelDB) GetAllChainConfig() (chainconfigs []dia.ChainConfig, err error) {
    27  	query := fmt.Sprintf("SELECT rpcurl,wsurl,chainID FROM %s", chainconfigTable)
    28  	rows, err := rdb.postgresClient.Query(context.Background(), query)
    29  	if err != nil {
    30  		return []dia.ChainConfig{}, err
    31  	}
    32  	defer rows.Close()
    33  
    34  	for rows.Next() {
    35  		var chainconfig dia.ChainConfig
    36  		var rpcurl string
    37  		var wsurl string
    38  		var chainID string
    39  
    40  		err := rows.Scan(
    41  			&rpcurl,
    42  			&wsurl,
    43  			&chainID,
    44  		)
    45  		if err != nil {
    46  			return []dia.ChainConfig{}, err
    47  		}
    48  		chainconfig.RestURL = rpcurl
    49  		chainconfig.WSURL = wsurl
    50  		chainconfig.ChainID = chainID
    51  
    52  		chainconfigs = append(chainconfigs, chainconfig)
    53  	}
    54  
    55  	return chainconfigs, nil
    56  }
    57  
    58  func (rdb *RelDB) GetAllChains() (chainconfigs []dia.ChainConfig, err error) {
    59  	query := fmt.Sprintf("SELECT chainID FROM %s", chainconfigTable)
    60  	rows, err := rdb.postgresClient.Query(context.Background(), query)
    61  	if err != nil {
    62  		return []dia.ChainConfig{}, err
    63  	}
    64  	defer rows.Close()
    65  
    66  	for rows.Next() {
    67  		var chainconfig dia.ChainConfig
    68  		var chainID string
    69  
    70  		err := rows.Scan(
    71  			&chainID,
    72  		)
    73  		if err != nil {
    74  			return []dia.ChainConfig{}, err
    75  		}
    76  
    77  		chainconfig.ChainID = chainID
    78  
    79  		chainconfigs = append(chainconfigs, chainconfig)
    80  	}
    81  
    82  	return chainconfigs, nil
    83  }