import { Account } from '../../../common/api/src' ; /**
 * Contains info about current recommended fees to use in a transaction
 */ export interface GasFees { gasPrice : string ; maxFeePerGas : string ; maxPriorityFeePerGas : string ; } /**
 * Contains info about a token including balance for an address
 */ export interface Token { balance : string ; contract : string ; decimals : number ; name : string ; symbol : string ; type : string ; } /**
 * Contains additional ethereum specific info
 */ export interface EthereumAccount extends Account { nonce : number ; tokens : Array < Token > ; } /**
 * Contains ethereum specific transaction info as returned from the node
 */ export interface EthereumTxSpecific { tx : { nonce : string ; gasPrice : string ; gas : string ; to : string ; value : string ; input : string ; hash : string ; blockNumber : string ; blockHash ? : string ; from : string ; transactionIndex : string ; } ; receipt ? : { gasUsed : string ; status : string ; logs : Array < { address : string ; topics : Array < string > ; data : string ; } > ; } ; } /**
 * EthereumAPI coin specific implementation
 */ export interface EthereumAPI { param { string } data param { string } from param { string } to param { string } value returns { Promise < string > } estimateGas ( data , from , to , value ) : Promise < string > ; returns { Promise < GasFees > } getGasFees ( ) : Promise < GasFees > ; }