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 }