import { BigNumber } from '@ethersproject/bignumber' ; import { SafeVersion } from '../contracts/config' ; import GnosisSafeContract from '../contracts/GnosisSafe/GnosisSafeContract' ; import GnosisSafeProxyFactoryContract from '../contracts/GnosisSafeProxyFactory/GnosisSafeProxyFactoryContract' ; import MultiSendContract from '../contracts/MultiSend/MultiSendContract' ; import { AbiItem } from '../types' ; export interface EthAdapterTransaction { to : string ; from : string ; data : string ; value ? : string ; gasPrice ? : number ; gasLimit ? : number ; } export interface GetSafeContractProps { safeVersion : SafeVersion ; chainId : number ; isL1SafeMasterCopy ? : boolean ; customContractAddress ? : string ; } interface EthAdapter { isAddress ( address ) : boolean ; getBalance ( address ) : Promise < BigNumber > ; getChainId ( ) : Promise < number > ; getContract ( address , abi ) : any ; getSafeContract ( { safeVersion , chainId , isL1SafeMasterCopy , customContractAddress } ) : GnosisSafeContract ; getMultiSendContract ( safeVersion , chainId , customContractAddress ? ) : MultiSendContract ; getSafeProxyFactoryContract ( safeVersion , chainId , customContractAddress ? ) : GnosisSafeProxyFactoryContract ; getContractCode ( address ) : Promise < string > ; getTransaction ( transactionHash ) : Promise < any > ; getSignerAddress ( ) : Promise < string > ; signMessage ( message , signerAddress ) : Promise < string > ; estimateGas ( transaction , options ? ) : Promise < number > ; call ( transaction ) : Promise < string > ; } export default EthAdapter ;