flashloan-profit-calculator
Version:
A library for analyzing flashloan transactions and calculating profits
68 lines (67 loc) • 2.33 kB
TypeScript
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;
}>;