github.com/cryptohub-digital/blockbook@v0.3.5-0.20240403155730-99ab40b9104c/bchain/coins/xcb/sc_verifier.go (about)

     1  package xcb
     2  
     3  type smartContractVerifier struct {
     4  	verified []*VerifiedSC
     5  }
     6  
     7  type VerifiedSC struct {
     8  	Address     string   `json:"address"`
     9  	Icon        string   `json:"icon"`
    10  	Web         string   `json:"web"`
    11  	TotalSupply int32    `json:"totalSupply"`
    12  	Ticker      string   `json:"ticker"`
    13  	Aliases     []string `json:"aliases"`
    14  }
    15  
    16  func newSmartContractVerifier(verified []*VerifiedSC) *smartContractVerifier {
    17  	verifier := &smartContractVerifier{
    18  		verified: verified,
    19  	}
    20  	return verifier
    21  }
    22  
    23  func (s *smartContractVerifier) GetVerified(addr string) *VerifiedSC {
    24  	for _, sc := range s.verified {
    25  		if sc.Address == addr {
    26  			return sc
    27  		}
    28  	}
    29  	return nil
    30  }
    31  
    32  func (s *smartContractVerifier) IsValidVerifiedSC(addr, ticker string) bool {
    33  	for _, sc := range s.verified {
    34  		if sc.Ticker == ticker {
    35  			return sc.Address == addr
    36  		}
    37  	}
    38  	return true
    39  }
    40  
    41  func (s *smartContractVerifier) GetAllSmartContracts() []*VerifiedSC {
    42  	return s.verified
    43  }