python-proxy-scraper-client
Version:
A TypeScript client for interacting with a Python proxy scraper service
374 lines (373 loc) • 9.87 kB
TypeScript
export interface AxiomProtocolDetails {
isTokenSideX: boolean;
tokenProgram: string;
pairSolAccount: string;
pairTokenAccount: string;
}
export interface AxiomPairInfoResponse {
pairAddress: string;
signature: string;
tokenAddress: string;
tokenTicker: string;
pairTokenAccount: string;
pairSolAccount: string;
tokenName: string;
tokenImage: string;
tokenUri: string;
tokenDecimals: number;
protocol: string;
protocolDetails: PumpAmmDetails | RaydiumV4Details | RaydiumCpmDetails;
website: string | null;
twitter: string | null;
telegram: string | null;
discord: string | null;
mintAuthority: string | null;
openTrading: string;
initialLiquiditySol: number;
initialLiquidityToken: number;
supply: number;
deployerAddress: string;
top10Holders: number;
lpBurned: number;
freezeAuthority: string | null;
extra: AxiomExtra;
slot: number;
createdAt: string;
updatedAt: string;
dexPaid: boolean;
isWatchlisted: boolean;
twitterHandleHistory: TwitterHandle[];
}
export interface AxiomTopTradersItem {
makerAddress: string;
buyTransactions: number;
sellTransactions: number;
tokensBought: number;
tokensSold: number;
solInvested: number;
solSold: number;
usdInvested: number;
usdSold: number;
tokenBalance: number;
walletAddress?: string;
isInsider: boolean;
isBundler: boolean;
isSniper: boolean;
isProUser: boolean;
}
export type AxiomTopTradersResponse = AxiomTopTradersItem[];
export interface AxiomTransactionItem {
created_at: string;
liquidity_sol: number;
liquidity_token: number;
maker_address: string;
pair_address: string;
price_sol: number;
price_usd: number;
token_amount: number;
signature: string;
total_sol: number;
total_usd: number;
type: 'buy' | 'sell';
}
export type AxiomTransactionsResponse = AxiomTransactionItem[];
export interface AxiomTokenInfoResponse {
top10HoldersPercent: number;
devHoldsPercent: number;
snipersHoldPercent: number;
insidersHoldPercent: number;
bundlersHoldPercent: number;
dexPaid: boolean;
numHolders: number;
numBotUsers: number;
numBluechipHolders: number;
}
export interface AxiomDevTokensResponse {
tokens: AxiomToken[];
counts: Counts;
}
export interface Counts {
totalCount: number;
migratedCount: number;
}
export interface AxiomToken {
pairAddress: string;
tokenAddress: string;
tokenTicker: string;
tokenName: string;
tokenImage: string;
protocol: string;
supply: number;
extra: AxiomExtra;
createdAt: string;
migrated: boolean;
liquiditySol: number;
liquidityToken: number;
hourlyVolumeSol: number;
}
export interface AxiomTokenAnalysisResponse {
creatorRiskLevel: 'Low' | 'Medium' | 'High';
creatorRugCount: number;
creatorTokenCount: number;
topMarketCapCoins: AxiomTokenAnalysisItem[];
topOgCoins: AxiomTokenAnalysisItem[];
}
export interface AxiomTokenAnalysisItem {
tokenTicker: string;
tokenName: string;
pairAddress: string;
tokenAddress: string;
image: string;
marketCap: number;
createdAt: string;
lastTradeTime: string;
migrated: boolean;
bondingCurvePercent: number;
}
export interface AxiomPairStatsItem {
buyCount: number;
sellCount: number;
buyVolumeSol: number;
sellVolumeSol: number;
priceSol: number;
createdAt: string;
}
export type AxiomPairStatsResponse = AxiomPairStatsItem[];
export interface AxiomHolderDataItem {
walletAddress: string;
tokenBalance: number;
isInsider: boolean;
isBundler: boolean;
createdAt: number;
solBalance: number;
buyTransactions: number | null;
sellTransactions: number | null;
tokensBought: number | null;
tokensSold: number | null;
solInvested: number | null;
solSold: number | null;
usdInvested: number | null;
usdSold: number | null;
traderTokenBalance: number | null;
isProUser: boolean;
isSniper: boolean;
}
export type PairChartInterval = '1s' | '5s' | '15s' | '30s' | '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '4h' | '6h' | '12h' | '24h';
export type AxiomHolderDataResponse = AxiomHolderDataItem[];
export type AxiomMemeTrendingResponse = AxiomMemeTrendingItem[];
export interface AxiomMemeTrendingItem {
pairAddress: string;
tokenAddress: string;
tokenName: string | null;
tokenTicker: string | null;
tokenImage: string | null;
tokenDecimals: number;
protocol: string;
protocolDetails: PumpAmmDetails | RaydiumV4Details | RaydiumCpmDetails;
prevMarketCapSol: number;
marketCapSol: number;
marketCapPercentChange: number;
liquiditySol: number;
liquidityToken: number;
volumeSol: number;
buyCount: number;
sellCount: number;
top10Holders: number;
lpBurned: number;
mintAuthority: string | null;
freezeAuthority: string | null;
dexPaid: boolean;
website: string | null;
twitter: string | null;
telegram: string | null;
discord: string | null;
createdAt: string;
extra: AxiomExtra | null;
supply: number;
twitterHandleHistory: TwitterHandle[];
}
export type PumpAmmDetails = AxiomProtocolDetails;
export interface RaydiumV4Details {
id: string;
lpMint: string;
lpVault: string;
version: number;
baseMint: string;
marketId: string;
authority: string;
baseVault: string;
programId: string;
quoteMint: string;
lpDecimals: number;
marketAsks: string;
marketBids: string;
openOrders: string;
quoteVault: string;
baseDecimals: number;
targetOrders: string;
marketVersion: number;
quoteDecimals: number;
withdrawQueue: string;
marketAuthority: string;
marketBaseVault: string;
marketProgramId: string;
marketEventQueue: string;
marketQuoteVault: string;
lookupTableAccount: string;
}
export interface RaydiumCpmDetails {
lpMint: string;
solVault: string;
ammConfig: string;
authority: string;
tokenVault: string;
tokenProgram: string;
tradeFeeRate: number;
observationState: string;
transferFeeConfig: TransferFeeConfig;
}
export interface TransferFeeConfig {
withheld_amount: number;
newer_transfer_fee: TransferFee;
older_transfer_fee: TransferFee;
withdraw_withheld_authority: string;
transfer_fee_config_authority: string;
}
export interface TransferFee {
epoch: number;
maximum_fee: number;
transfer_fee_basis_points: number;
}
export interface AxiomExtra {
migratedFrom: string;
pumpDeployerAddress: string;
}
export interface TwitterHandle {
handle: string;
createdAt: string;
}
export interface AxiomBar {
time: number;
open: number;
high: number;
low: number;
close: number;
volume: number;
}
export interface AxiomPairChartResponse {
bars: AxiomBar[];
noData: boolean;
}
export interface AxiomPortfolioResponse {
activePositions: AxiomPosition[];
historyPositions: AxiomPosition[];
topPositions: AxiomPosition[];
transactions: AxiomTransaction[];
balanceStats: AxiomBalanceStats;
performanceMetrics: PerformanceMetrics;
chartData: AxiomChartDatum[];
}
export interface AxiomPosition {
tokenAddress: string;
tokensBought: number;
tokensSold: number;
solReceived: number;
solSpent: number;
usdSpent: number;
usdReceived: number;
buyCount: number;
sellCount: number;
createdAt: Date;
updatedAt: Date;
remainingTokens: number;
pairAddress: string;
tokenTicker: string;
tokenImage: string;
tokenName: string;
protocol: AxiomProtocol;
priceSol: number;
extra: Extra | null;
tokenDecimals: number;
liquiditySol: number;
liquidityToken: number;
}
export interface Extra {
migratedFrom: AxiomProtocol;
pumpDeployerAddress: string;
}
export declare enum AxiomProtocol {
MeteoraDLMM = "Meteora DLMM",
PumpAMM = "Pump AMM",
PumpV1 = "Pump V1",
RaydiumV4 = "Raydium V4"
}
export interface AxiomBalanceStats {
totalValueSol: number;
availableBalanceSol: number;
unrealizedPnlSol: number;
}
export interface AxiomChartDatum {
value: number;
time: number;
}
export interface PerformanceMetrics {
sevenDay: AllTime;
thirtyDay: AllTime;
allTime: AllTime;
}
export interface AllTime {
totalPnl: number;
buyCount: number;
sellCount: number;
pnlBreakdown: PnlBreakdown;
}
export interface PnlBreakdown {
over500Percent: number;
between200And500Percent: number;
between0And200Percent: number;
between0AndNeg50Percent: number;
underNeg50Percent: number;
}
export interface AxiomTransaction {
makerAddress: string;
pairAddress: string;
signature: string;
totalSol: number;
totalUsd: number;
liquiditySol: number;
liquidityToken: number;
type: 'buy' | 'sell';
priceSol: number;
priceUsd: number;
createdAt: Date;
tokenTicker: string;
tokenDecimals: number;
tokenName: string;
tokenImage: string;
protocol: AxiomProtocol;
supply: number;
marketCapSol: number;
marketCapUsd: number;
extra: Extra;
}
export type AxiomSearchResponse = AxiomSearchResponseItem[];
export interface AxiomSearchResponseItem {
tokenName: string;
tokenImage: string;
tokenTicker: string;
createdAt: Date;
pairAddress: string;
tokenAddress: string;
protocol: string;
supply: number;
liquiditySol: number;
liquidityToken: number;
marketCapSol: number;
bondingCurvePercent: number;
volumeSol: number;
extra: Extra;
website: string | null;
twitter: string | null;
telegram: string | null;
discord: string | null;
}