fetch_euler_vaults_file_for_chain

Documentation for eth_defi.erc_4626.vault_protocol.euler.offchain_metadata.fetch_euler_vaults_file_for_chain function.

fetch_euler_vaults_file_for_chain(chain_id, cache_path=PosixPath('/home/runner/.tradingstrategy/cache/euler'), github_base_url='https://raw.githubusercontent.com/euler-xyz/euler-labels/refs/heads/master', now_=None, max_cache_duration=datetime.timedelta(days=2))

Fetch and cache Euler offchain vault metadata for a given chain.

Fetches {chainId}/products.json from the euler-xyz/euler-labels GitHub repository, builds a flat per-vault reverse index via _build_vault_index(), and writes the result to a local JSON cache file.

The cache is per-chain and expires after max_cache_duration (default 2 days). The function is multiprocess-safe via wait_other_writers().

Parameters
  • chain_id (int) – EVM chain ID (e.g. 1 for Ethereum mainnet).

  • cache_path – Directory for the local JSON cache files.

  • github_base_url – Base URL for the euler-xyz/euler-labels raw GitHub files.

  • now – Override for “current time” used in cache-expiry checks (useful in tests).

  • max_cache_duration – How long to keep a cached file before re-fetching from GitHub.

Returns

Dict mapping checksummed vault address → EulerVaultMetadata. Returns an empty dict when the chain has no products file.

Return type

dict[str, eth_defi.erc_4626.vault_protocol.euler.offchain_metadata.EulerVaultMetadata]