// Generated contract addresses constants
// This file is auto-generated, do not edit manually

import { ContractAddresses } from '../types/contracts';

export const CONTRACT_ADDRESSES: ContractAddresses = {
  "base_sepolia": {
    "name": "Base Sepolia",
    "rpc": "https://sepolia.base.org",
    "chainId": 84532,
    "contracts": {
      "contentNFT": "0x9539bD4a28fF84413d176b56056A1059012Abe7b",
      "accountNFT": "0xC90522cc4a90e7918B06723d50d41F9870BAB40c",
      "accountImplementation": "0xe2611c3A52E319D16d1ee91D472F4e43513a8a8f",
      "registry": "0x5FD639Bd6De12AA42fB1Cf00Aa9DaA54C89e3de0",
      "videoPayment": "0x4aEA4573ee6AbC57A9fB87dC4012221bB0182c4e",
      "videoPaymentImplementation": "0x379Cc75e22F71396b6d0460ecF8dbf005beeFC6b"
    },
    "tokens": [
      {
        "address": "0x0000000000000000000000000000000000000000",
        "name": "Base Sepolia ETH",
        "symbol": "ETH",
        "decimals": 18
      },
      {
        "address": "0x4D1F4F683AB7122fBb77aB544aC03c5678acA968",
        "name": "Mock USDC",
        "symbol": "USDC",
        "decimals": 18
      }
    ]
  },
  "base": {
    "name": "Base Mainnet",
    "rpc": "https://mainnet.base.org",
    "chainId": 8453,
    "contracts": {
      "contentNFT": "0x4955F7A0e864bb8723e23EC8901A12F3694CeFf5",
      "accountImplementation": "0xEaf6B86A2a8d8757efB71be90e8E2988c5a7d04C",
      "registry": "0x15B603306a7084ec64Af849B7b094ed8bAc8243f",
      "videoPayment": "0xA674B0430feAa7Ca7dC9713284982aB15350B322",
      "videoPaymentImplementation": "0x9E4D145386d1Dcb5ce732921ea8d4544bC0D638b",
      "accountNFT": "0x421b0910Ca107C12B48e5D215734F5c43B6D72Eb"
    },
    "tokens": [
      {
        "address": "0x0000000000000000000000000000000000000000",
        "name": "Base ETH",
        "symbol": "ETH",
        "decimals": 18
      },
      {
        "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "name": "USD Coin",
        "symbol": "USDC",
        "decimals": 6
      },
      {
        "address": "0x4b451e0DaFeDAA119F9cb55eac19d7011051E1b7",
        "name": "STEPS USD",
        "symbol": "SSU",
        "decimals": 18
      }
    ]
  }
} as const;

// Helper functions for accessing addresses
export function getContractAddress(
  network: string, 
  contractName: string
): string | undefined {
  return CONTRACT_ADDRESSES[network]?.contracts[contractName];
}

export function getNetworkConfig(network: string) {
  return CONTRACT_ADDRESSES[network];
}

export function getAllNetworks(): string[] {
  return Object.keys(CONTRACT_ADDRESSES);
}

export function getChainId(network: string): number | undefined {
  return CONTRACT_ADDRESSES[network]?.chainId;
}
