Add vault note
This skill adda s human readable note to a specific vault in the database.
Required inputs
Before starting, gather the following information from the user:
- Vault smart contract address - The address of an example vault contract on a blockchain
- Message: A human readable message
- Flags (optional): Flags from
VaultFlagenum - if not given set toNone
1. Resolve vault name
Can be resolved from https://top-defi-vaults.tradingstrategy.ai/top_vaults_by_chain.json JSON file
- It's a list of JSON object records
- Use search to find the record
- Extract its name
- Don't try to open the JSON file, as it is too large
Alternatively use check-vault-onchain.py.
2. Edit the flag.py
The vault notes are stored in ``eth_defi/vault/flag.py`.
Add the vault address VAULT_FLAGS_AND_NOTES
- If the address already exist ask for user input
- Make sure the address is lowercased
- For the message create a Python constant like other messages have in
flag.py - Set the message and flag in the dictionary
- If the user explicitly did not tell you to use any flag, set flag to
None - If the user is unsure whether the vault should be flagged, or AI-assisted
research does not reach the same conclusion every time, use
VaultFlag.review_needed. It does not blacklist the vault; its note tells readers the vault is under review. For a review a person asks for, use theREVIEW_NEEDED_MANUALmessage constant. The check-specific constantsREVIEW_NEEDED_OFF_MARKET_COLLATERAL,REVIEW_NEEDED_EXIT_LIQUIDITYandREVIEW_NEEDED_DATA_QUALITYsay the automated investability checks did not agree, so use them only for findings of the vault report investability check. Record in the comment block what is uncertain and what a reviewer should check to decide - Add an extensive line comment above the entry, as the Instructions for adding entries in the
flag.pymodule docstring require: the vault name, protocol and chain, the date, what is wrong and why this flag, and canonical source URLs (the tradingstrategy.ai vault page, the block explorer page, and any announcement or incident report). A bare address or a name-only comment is not enough
3. Format code
Run ruff to make sure Python code is formatted.
4. Open PR
- Open a pull request.
- This is not a feature pull request - no need to add changelog entry
- Prefix the pull request "notes" instead of "feat"