import { BigNumber } from '@ethersproject/bignumber' ; import { SafeTransaction , SafeTransactionData } from '@gnosis.pm/safe-core-sdk-types' ; import { TransactionOptions , TransactionResult } from '../../utils/transactions/types' ; interface GnosisSafeContract { getVersion ( ) : Promise < string > ; getAddress ( ) : string ; getNonce ( ) : Promise < number > ; getThreshold ( ) : Promise < number > ; getOwners ( ) : Promise < string [ ] > ; isOwner ( address ) : Promise < boolean > ; getTransactionHash ( safeTransactionData ) : Promise < string > ; approvedHashes ( ownerAddress , hash ) : Promise < BigNumber > ; approveHash ( hash , options ? ) : Promise < TransactionResult > ; getModules ( ) : Promise < string [ ] > ; isModuleEnabled ( moduleAddress ) : Promise < boolean > ; execTransaction ( safeTransaction , options ? ) : Promise < TransactionResult > ; encode ( methodName , params ) : string ; estimateGas ( methodName , params , options ) : Promise < number > ; } export default GnosisSafeContract ;