CuratorInfo

Documentation for eth_defi.vault.curator.CuratorInfo Python class.

class CuratorInfo

Bases: TypedDict

Metadata for a single curator loaded from YAML.

Represents the in-memory view of a curator feeder file from eth_defi/data/feeds/curators/.

Attributes summary

slug

URL-safe slug identifier, matches the YAML filename stem and feeder-id field (e.g.

name

Human-readable display name (e.g.

website

Company website URL, or None if not configured in YAML.

curatorwatch

CuratorWatch profile URL, or None if not configured in YAML.

short_description

One-line description of the curator.

long_description

Multi-paragraph Markdown description of the curator.

twitter

Twitter/X handle without @ prefix (e.g.

linkedin

LinkedIn company identifier (e.g.

rss

RSS or Atom feed URL for the curator's blog or newsletter, or None if not configured.

protocol_curator

Whether this is a protocol-native curator (the protocol itself acts as curator) rather than a third-party risk manager.

canonical_feeder_id

When set, this curator's feed sources are provided by another feeder identified by this slug.

protocol_manager_names

Exact protocol manager names keyed by protocol slug.

Methods summary

__init__(*args, **kwargs)

clear()

Remove all items from the dict.

copy()

Return a shallow copy of the dict.

fromkeys([value])

Create a new dictionary with keys from iterable and values set to value.

get(key[, default])

Return the value for key if key is in the dictionary, else default.

items()

Return a set-like object providing a view on the dict's items.

keys()

Return a set-like object providing a view on the dict's keys.

pop(k[,d])

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()

Remove and return a (key, value) pair as a 2-tuple.

setdefault(key[, default])

Insert key with a value of default if key is not in the dictionary.

update([E, ]**F)

If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values()

Return an object providing a view on the dict's values.

slug: str

URL-safe slug identifier, matches the YAML filename stem and feeder-id field (e.g. "gauntlet", "re7-labs").

name: str

Human-readable display name (e.g. "Gauntlet", "RE7 Labs").

website: Optional[str]

Company website URL, or None if not configured in YAML.

curatorwatch: Optional[str]

CuratorWatch profile URL, or None if not configured in YAML.

short_description: Optional[str]

One-line description of the curator.

long_description: Optional[str]

Multi-paragraph Markdown description of the curator.

twitter: Optional[str]

Twitter/X handle without @ prefix (e.g. "gauntlet_xyz"), or None if not configured.

linkedin: Optional[str]

LinkedIn company identifier (e.g. "gauntlet-xyz"), or None if not configured.

rss: Optional[str]

RSS or Atom feed URL for the curator’s blog or newsletter, or None if not configured.

protocol_curator: bool

Whether this is a protocol-native curator (the protocol itself acts as curator) rather than a third-party risk manager.

True for protocol-curated vaults (Ostium, Gains Network, HLP, LLP). False for third-party curators (Gauntlet, RE7 Labs, etc.).

canonical_feeder_id: Optional[str]

When set, this curator’s feed sources are provided by another feeder identified by this slug. The canonical feeder may be in a different role (e.g. a stablecoin feeder). Posts for this curator should be looked up under the canonical feeder’s sources. None for curators that have their own feed sources.

protocol_manager_names: dict[str, str | tuple[str, ...]]

Exact protocol manager names keyed by protocol slug.

These values are sourced from protocol-specific YAML fields such as euler-entity, lagoon-curator and upshift-strategist.

__init__(*args, **kwargs)
__new__(**kwargs)
clear()

Remove all items from the dict.

copy()

Return a shallow copy of the dict.

fromkeys(value=None, /)

Create a new dictionary with keys from iterable and values set to value.

get(key, default=None, /)

Return the value for key if key is in the dictionary, else default.

items()

Return a set-like object providing a view on the dict’s items.

keys()

Return a set-like object providing a view on the dict’s keys.

pop(k[, d]) v, remove specified key and return the corresponding value.

If the key is not found, return the default if given; otherwise, raise a KeyError.

popitem()

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

setdefault(key, default=None, /)

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) None.  Update D from mapping/iterable E and F.

If E is present and has a .keys() method, then does: for k in E.keys(): D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values()

Return an object providing a view on the dict’s values.