python-proxy-scraper-client
Version:
A TypeScript client for interacting with a Python proxy scraper service
98 lines (97 loc) • 3.42 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PumpFunClient = void 0;
const base_client_1 = require("../../shared/base-client");
const types_1 = require("./types");
class PumpFunClient extends base_client_1.BaseClient {
constructor(config = { baseUrl: 'http://localhost:8000' }) {
super(config);
}
/**
* Get the current king of the hill token data
* @returns Token data for the current king of the hill
*/
async getKingOfTheHill() {
return this.get('/pump-fun/king-of-the-hill');
}
/**
* Get token data by mint address
* @param mintAddress The token's mint address
* @returns Token data
*/
async getTokenByMintAddress(mintAddress) {
return this.get(`/pump-fun/token/${mintAddress}`);
}
/**
* Get user data
* @param userAddress The user's wallet address
* @returns User data
*/
async getUserData(userAddress) {
return this.get(`/pump-fun/user/${userAddress}`);
}
/**
* Get user token balances
* @param userAddress The user's wallet address
* @param limit Number of results to return
* @param offset Number of results to skip
* @returns User token balances
*/
async getUserBalances(userAddress, limit = 50, offset = 0) {
const params = new URLSearchParams({
limit: limit.toString(),
offset: offset.toString()
});
return this.get(`/pump-fun/user/${userAddress}/balances?${params.toString()}`);
}
/**
* Get coins created by a user
* @param userAddress The user's wallet address
* @param limit Number of results to return
* @param offset Number of results to skip
* @returns Coins created by the user
*/
async getUserCreatedCoins(userAddress, limit = 100, offset = 0) {
const params = new URLSearchParams({
limit: limit.toString(),
offset: offset.toString(),
includeNsfw: 'true'
});
return this.get(`/pump-fun/user/${userAddress}/created-coins?${params.toString()}`);
}
/**
* Get coins
* @param offset Number of results to skip
* @param limit Number of results to return
* @param sort Field to sort by
* @param order Sort order (ASC or DESC)
* @returns Coin data
*/
async getCoins(offset = 0, limit = 50, sort = types_1.PumpFunSort.MARKET_CAP, order = 'DESC') {
const params = new URLSearchParams({
offset: offset.toString(),
limit: limit.toString(),
sort,
order,
includeNsfw: 'false'
});
return this.get(`/pump-fun/coins?${params.toString()}`);
}
/**
* Get candlestick data for a token
* @param mintAddress The token's mint address
* @param offset Number of results to skip
* @param limit Number of results to return
* @param timeframe Timeframe in minutes
* @returns Candlestick data
*/
async getCandlesticks(mintAddress, offset = 0, limit = 1000, timeframe = 5) {
const params = new URLSearchParams({
offset: offset.toString(),
limit: limit.toString(),
timeframe: timeframe.toString()
});
return this.get(`/pump-fun/token/${mintAddress}/candlesticks?${params.toString()}`);
}
}
exports.PumpFunClient = PumpFunClient;