/yearn-meta

🗄 Yearn metadata storage on IPFS (static)

Primary LanguageJavaScriptMIT LicenseMIT

Yearn metadata storage

Validation Deployment Styled With Prettier

What?

This repo contains all the metadata of the yearn ecosystem. Contents of the data directory are synced to IPFS for storage, accessible through our gateway meta.yearn.network. Consistency of the stored data is verified by smalls scripts and schemas.

Adding documents

Any document can be added to the data directory, but there are some special checks to ensure consistency and ease of accessibility:

  • All JSON files that share names with the files in the schema directory must follow the defined schema, otherwise verification will fail.
  • Any folder that begins with 0x is considered as an address. The address must be checksummed, otherwise verification will fail.
  • All files named index.json will be ignored by git and will be overwritten by the indexing process. (see indexing)

Yearn has also a naming standard that is not enforced programmatically but should be followed.

Adding schemas

Schemas can be created in the root of the schema folder. For syntax you can take a look at the JSON schema specs. The AJV library is used to validate the data with the provided schemas.

Syncing with IPFS

After each commit to master, direct or as a result of a merged pull request, a sync to IPFS is triggered. After the upload is complete the meta.yearn.network is updated automatically to point to the latest IPFS cid.

We rely on pinata.cloud for the IPFS hosting, and on cloudflare for the the gateway proxy.

Indexes

Before each deployment the data directory is scanned and an index.json file is generated inside each directory (root included). The file follows the index.json schema and will contain information about the files and folders stored in that directory. For an example see meta.yearn.network/index.json

Translations

Anything under protocols, strategies, and tokens are able to be translated. In the json files listed, we have locale codes and the English text to be translated. The name (if applicable) and description are what should be translated. If you dont see your locale code, make an issue and it will be added manually. To update new json's with the locale information run the python script toLocale.py located in the scripts folder.

Helpful links

Contributing

Code style follows prettier conventions (yarn format). Commit messages follow Conventional Commits.