CD / schema / py / Chain.py
Chain.py
Raw
from __future__ import annotations

from typing import List, Optional

from pydantic import BaseModel, Field


class NativeCurrency(BaseModel):
    name: str
    symbol: str
    decimals: int


class RpcUrls(BaseModel):
    infura: Optional[str] = None
    default: str
    public: str
    alchemy: Optional[str] = None


class Ens(BaseModel):
    address: str


class Multicall(BaseModel):
    address: str
    blockCreated: int


class Default(BaseModel):
    name: str
    url: str


class Public(BaseModel):
    name: str
    url: str


class BlockExplorers(BaseModel):
    default: Default
    public: Public


class Chain(BaseModel):
    nativeCurrency: NativeCurrency
    chainId: int = Field(0, alias="id")
    name: str
    network: str
    rpc: List[str]
    rpcUrls: RpcUrls
    ens: Optional[Ens] = None
    multicall: Optional[Multicall] = None
    blockExplorers: Optional[BlockExplorers] = None
    testnet: bool