Source code for o2_sdk.config
"""Network configuration for the O2 Exchange SDK."""
from __future__ import annotations
from dataclasses import dataclass
from enum import Enum
[docs]
class Network(Enum):
TESTNET = "testnet"
DEVNET = "devnet"
MAINNET = "mainnet"
[docs]
@dataclass(frozen=True)
class NetworkConfig:
api_base: str
ws_url: str
fuel_rpc: str
faucet_url: str | None
whitelist_required: bool = False
NETWORK_CONFIGS: dict[Network, NetworkConfig] = {
Network.TESTNET: NetworkConfig(
api_base="https://api.testnet.o2.app",
ws_url="wss://api.testnet.o2.app/v1/ws",
fuel_rpc="https://testnet.fuel.network/v1/graphql",
faucet_url="https://fuel-o2-faucet.vercel.app/api/testnet/mint-v2",
whitelist_required=True,
),
Network.DEVNET: NetworkConfig(
api_base="https://api.devnet.o2.app",
ws_url="wss://api.devnet.o2.app/v1/ws",
fuel_rpc="https://devnet.fuel.network/v1/graphql",
faucet_url="https://fuel-o2-faucet.vercel.app/api/devnet/mint-v2",
whitelist_required=False,
),
Network.MAINNET: NetworkConfig(
api_base="https://api.o2.app",
ws_url="wss://api.o2.app/v1/ws",
fuel_rpc="https://mainnet.fuel.network/v1/graphql",
faucet_url=None,
whitelist_required=False,
),
}
[docs]
def get_config(network: Network) -> NetworkConfig:
"""Return the network configuration for the given network."""
return NETWORK_CONFIGS[network]