import { type Address } from 'viem' export type ContractAddress = { address: Address; chainId: chainId; blockCreated?: number } export type Addresses = { portal: ContractAddress l2OutputOracle: ContractAddress l1StandardBridge: ContractAddress l1CrossDomainMessenger: ContractAddress l1Erc721Bridge: ContractAddress } export type RawOrContractAddress = Address | ContractAddress export function resolveAddress(address: RawOrContractAddress): `0x${string}` { if (typeof address !== 'string' && !address?.address) throw new Error('Invalid address') return typeof address === 'string' ? address : address.address }