UNPKG

flashloan-profit-calculator

Version:

A library for analyzing flashloan transactions and calculating profits

68 lines (67 loc) 2.33 kB
import type { TransferLog, TraceCall } from "./types"; import type { TokenBalanceChange } from "./types"; import { type TokenMetadataResponse } from "alchemy-sdk"; export declare let isFlashLoan: boolean; export declare const revenueBalanceChanges: TokenBalanceChange; export declare const costBalanceChanges: TokenBalanceChange; export interface AddressParticipationData { toCount: number; fromCount: number; participation: number; } export declare const addressParticipation: { [address: string]: { [token: string]: AddressParticipationData; }; }; export declare let blockTimestamp: number; export declare const detectedFlashloanContracts: string[]; /** * Update the builder address by fetching block information */ export declare const updateBuilderAddress: (blockNumber: number) => Promise<void>; /** * Check if an address is a builder */ export declare const isBuilder: (address: string) => boolean; /** * Initialize balance changes for a token and address */ export declare function initializeBalanceChanges(token: string, address: string, isRevenue: boolean, isSenderOrContract: boolean): void; /** * Track address participation in transfers */ export declare function trackAddressParticipation(from: string, to: string, token: string): void; /** * Process a transfer of tokens between addresses */ export declare function processTransfer(token: string, from: string, to: string, amount: bigint): void; /** * Process a transfer log with error handling */ export declare function processTransferLog(log: TransferLog): void; /** * Process trace calls recursively to catch ETH transfers */ export declare const processTraceCall: (calls: TraceCall[]) => Promise<void>; /** * Setup the processor with contract and sender addresses */ export declare function setupProcessor(contract: string, sender: string): void; export declare const getTokenMetadata: (contract: string) => Promise<TokenMetadataResponse>; /** * Reset all state */ export declare function resetState(): void; /** * Get transaction details from a transaction hash */ export declare function getTransactionDetails(txHash: string): Promise<{ blockNumber: number; senderAddress: any; contractAddress: any; trace: unknown[]; logs: TransferLog[]; gasCostETH: number; gasCostWei: string; }>;