import { PopulatedTransaction } from '@ethersproject/contracts' import { BigNumberish } from 'ethers' import { Query } from './query' export interface SynapseModule { readonly address: string /** * Populates the transaction data for a bridge transaction. * * @param to - The address to send the bridged tokens to. * @param destChainId - The ID of the destination chain. * @param token - The address of the token to bridge. * @param amount - The amount of tokens to bridge. * @param originQuery - The Query struct with the information about swap to be executed on the origin chain. * @param destQuery - The Query struct with the information about swap to be executed on the destination chain. * @returns A promise that resolves to the populated transaction data. */ bridge( to: string, destChainId: number, token: string, amount: BigNumberish, originQuery: Query, destQuery: Query ): Promise /** * Returns the Synapse transaction ID for a given transaction hash on the current chain. * This is used to track the status of a bridge transaction originating from the current chain. * * @param txHash - The transaction hash of the bridge transaction. * @returns A promise that resolves to the Synapse transaction ID. */ getSynapseTxId(txHash: string): Promise /** * Checks whether a bridge transaction has been completed on the current chain. * This is used to track the status of a bridge transaction originating from another chain, having * current chain as the destination chain. * * @param synapseTxId - The unique Synapse txId of the bridge transaction. * @returns A promise that resolves to a boolean indicating whether the bridge transaction has been completed. */ getBridgeTxStatus(synapseTxId: string): Promise }