MCPcopy Index your code
hub / github.com/trustwallet/assets / ValidateAssetFolder

Method ValidateAssetFolder

internal/processor/validators.go:111–150  ·  view source on GitHub ↗
(f *file.AssetFile)

Source from the content-addressed store, hash-verified

109}
110
111func (s *Service) ValidateAssetFolder(f *file.AssetFile) error {
112 dirFiles, err := file.ReadDir(f.Path())
113 if err != nil {
114 return err
115 }
116
117 var compErr = validation.NewErrComposite()
118
119 err = validation.ValidateAllowedFiles(dirFiles, config.Default.ValidatorsSettings.AssetFolder.AllowedFiles)
120 if err != nil {
121 compErr.Append(err)
122 }
123
124 err = validation.ValidateAssetAddress(f.Chain(), f.Asset())
125 if err != nil {
126 compErr.Append(err)
127 }
128
129 errInfo := validation.ValidateHasFiles(dirFiles, []string{"info.json"})
130 errLogo := validation.ValidateHasFiles(dirFiles, []string{"logo.png"})
131
132 if errLogo != nil || errInfo != nil {
133 assetInfoPath := path.GetAssetInfoPath(f.Chain().Handle, f.Asset())
134
135 var infoJson info.AssetModel
136 if err = file.ReadJSONFile(assetInfoPath, &infoJson); err != nil {
137 return err
138 }
139
140 if infoJson.GetStatus() != "spam" && infoJson.GetStatus() != "abandoned" {
141 compErr.Append(fmt.Errorf("%w: logo.png for non-spam assest", validation.ErrMissingFile))
142 }
143 }
144
145 if compErr.Len() > 0 {
146 return compErr
147 }
148
149 return nil
150}
151
152func (s *Service) ValidateDappsFolder(f *file.AssetFile) error {
153 dirFiles, err := file.ReadDir(f.Path())

Callers

nothing calls this directly

Calls 1

GetStatusMethod · 0.95

Tested by

no test coverage detected