import Big from 'big.js'; import { Blockchain } from '../types/config.js'; interface TransactionDetails { tokenSymbol: string; amount: Big; } type EthChains = Blockchain.ETHEREUM | Blockchain.AVALANCHE; interface BridgeTransaction { /** C-chain address */ addressC: string; /** C-chain derived BTC address */ addressBTC: string; /** The amount requested by the user to transfer */ amount: Big; /** Token being transferred */ symbol: string; /** * The transaction was successfully created on the target blockchain and * bridging is finished. */ complete: boolean; completedAt?: number; /** Set when there is an error with transaction tracking */ error?: any; /** The network environment */ environment: 'main' | 'test'; sourceChain: Blockchain; /** When tracking the source confirmations started */ sourceStartedAt: number; sourceTxHash: string; sourceNetworkFee?: Big; confirmationCount: number; requiredConfirmationCount: number; targetChain: Blockchain; /** When tracking the target transaction started */ targetStartedAt?: number; targetTxHash?: string; /** * The fee paid to the bridge operators * (paid from the transferred asset e.g. LINK or WETH) */ targetBridgeFee?: Big; /** * The fee paid to the blockchain * (paid in the native token e.g. ETH or AVAX) */ targetNetworkFee?: Big; /** Block number used to find the target transaction hash */ startBlockNumber?: number; } type TxHash = string; declare enum WrapStatus { INITIAL = 0, WAITING_FOR_DEPOSIT_CONFIRMATION = 1, WAITING_FOR_DEPOSIT = 2, WAITING_FOR_CONFIRMATION = 3, COMPLETE = 4, VULNERABLE_ADDRESS = 5 } export { BridgeTransaction, EthChains, TransactionDetails, TxHash, WrapStatus };