// Export all contract ABIs
import ERC6551RegistryAbi from './abi/ERC6551Registry.json';
import ERC6551AccountAbi from './abi/ERC6551Account.json';
import IPNFTAbi from './abi/IPNFT.json';
import VideoPaymentAbi from './abi/VideoPayment.json';

// Export ABI constants
export const ERC6551REGISTRY_ABI = ERC6551RegistryAbi;
export const ERC6551ACCOUNT_ABI = ERC6551AccountAbi;
export const IPNFT_ABI = IPNFTAbi;
export const VIDEOPAYMENT_ABI = VideoPaymentAbi;

// Export old names for backward compatibility
export const REGISTRY_ABI = ERC6551REGISTRY_ABI;
export const ACCOUNT_ABI = ERC6551ACCOUNT_ABI;
export const VIDEO_PAYMENT_ABI = VIDEOPAYMENT_ABI;

// Export ABI object
export const abis = {
  ERC6551Registry: ERC6551REGISTRY_ABI,
  ERC6551Account: ERC6551ACCOUNT_ABI,
  IPNFT: IPNFT_ABI,
  VideoPayment: VIDEOPAYMENT_ABI,
};

// Export types
export * from './types/contracts';
export * from './types/abi';

// Export constants
export * from './constants/addresses';

// Export typechain types
export * from './typechain';
