/** * Ethereum contract utilities for Audius. * * Exports EthereumService — a configured service that exposes viem contract * instances for all Audius Ethereum contracts, using ABIs + addresses from * @audius/eth with optional per-environment address overrides. * * Also re-exports all contract definitions from @audius/eth for discoverability, * and provides standalone client factories for advanced use cases. */ import { AudiusToken, AudiusWormhole, ClaimsManager, DelegateManager, EthRewardsManager, Governance, Registry, ServiceProviderFactory, ServiceTypeManager, Staking, TrustedNotifierManager } from '@audius/eth'; import { type Hex, type GetContractReturnType, type PublicClient, type WalletClient } from 'viem'; import type { EthereumServiceConfig } from './types'; export * from '@audius/eth'; export type { EthereumServiceConfig }; /** * Configured Ethereum service for Audius protocol contracts. * * Exposes viem contract instances (`.read.*`, `.simulate.*`) for each * Audius contract, plus composite helpers for permit and Wormhole bridge transfer. */ export declare class EthereumService { readonly publicClient: PublicClient; readonly walletClient: WalletClient; private readonly audiusWalletClient; readonly audiusToken: GetContractReturnType; readonly audiusWormhole: GetContractReturnType; readonly staking: GetContractReturnType; readonly delegateManager: GetContractReturnType; readonly governance: GetContractReturnType; readonly serviceProviderFactory: GetContractReturnType; readonly claimsManager: GetContractReturnType; readonly ethRewardsManager: GetContractReturnType; readonly serviceTypeManager: GetContractReturnType; readonly trustedNotifierManager: GetContractReturnType; readonly registry: GetContractReturnType; constructor(config: EthereumServiceConfig); /** * EIP-2612 permit: approve a spender to transfer AUDIO tokens on behalf of * the owner using a signed message instead of an on-chain approve() tx. */ permitAudioToken({ spender, value }: { spender: Hex; value: bigint; }): Promise; /** * Transfer AUDIO tokens through the Wormhole bridge to Solana. */ wormholeTransferTokens({ amount, recipient }: { amount: bigint; recipient: Hex; }): Promise; }