import type { Abi, Account, Address, Chain, ContractFunctionArgs, ContractFunctionName, SimulateContractParameters, WriteContractParameters, } from 'viem' export type L2WriteContractParameters< TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends ContractFunctionName< TAbi, 'nonpayable' | 'payable' > = ContractFunctionName, TArgs extends ContractFunctionArgs< TAbi, 'nonpayable' | 'payable', TFunctionName > = ContractFunctionArgs, TChain extends Chain | undefined = Chain, TAccount extends Account | undefined = Account | undefined, TChainOverride extends Chain | undefined = Chain | undefined, > = Omit< WriteContractParameters, 'abi' | 'functionName' | 'args' | 'address' > export type L2SimulateContractParameters< TAbi extends Abi | readonly unknown[] = Abi, TFunctionName extends ContractFunctionName< TAbi, 'nonpayable' | 'payable' > = ContractFunctionName, TArgs extends ContractFunctionArgs< TAbi, 'nonpayable' | 'payable', TFunctionName > = ContractFunctionArgs, TChain extends Chain | undefined = Chain, TChainOverride extends Chain | undefined = Chain | undefined, TAccountOverride extends Account | Address | undefined = undefined, > = Omit< SimulateContractParameters, 'abi' | 'functionName' | 'args' | 'address' >