Skip to content

blockchain-toolbox/pumpfun-sdk

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PumpFun Rust SDK

A comprehensive Rust SDK for seamless interaction with the PumpFun Solana program. This SDK provides a robust set of tools and interfaces to integrate PumpFun functionality into your applications.

Explanation

  1. Add create, buy, sell for pump.fun.
  2. Add logs_subscribe to subscribe the logs of the PumpFun program.
  3. Add yellowstone grpc to subscribe the logs of the PumpFun program.
  4. Add jito to send transaction with Jito.
  5. Add nextblock to send transaction with nextblock.
  6. Add 0slot to send transaction with 0slot.
  7. Submit a transaction using Jito, Nextblock, and 0slot simultaneously; the fastest one will succeed, while the others will fail.

Usage

cd `your project root directory`
git clone https://github.com/MiracleAI-Labs/pumpfun-sdk
# add to your Cargo.toml
pumpfun-sdk = { path = "./pumpfun-sdk", version = "2.4.3" }

logs subscription for token create and trade transaction

use std::sync::{Arc, OnceLock};
use pumpfun_sdk::grpc::YellowstoneGrpc;

// create grpc client
let grpc_url = "http://127.0.0.1:10000";
let client = YellowstoneGrpc::new(grpc_url);

// Define callback function
let callback = |event: PumpfunEvent| {
    match event {
        PumpfunEvent::NewToken(token_info) => {
            println!("Received new token event: {:?}", token_info);
        },
        PumpfunEvent::NewDevTrade(trade_info) => {
            println!("Received dev trade event: {:?}", trade_info);
        },
        PumpfunEvent::NewUserTrade(trade_info) => {
            println!("Received new trade event: {:?}", trade_info);
        },
        PumpfunEvent::NewBotTrade(trade_info) => {
            println!("Received new bot trade event: {:?}", trade_info);
        }
        PumpfunEvent::Error(err) => {
            println!("Received error: {}", err);
        }
    }
};

let payer_keypair = Keypair::from_base58_string("your private key");
let client = GrpcClient::get_instance();
client.subscribe_pumpfun(callback, Some(payer_keypair.pubkey())).await?;

pumpfun Create, Buy, Sell

use std::sync::{Arc, OnceLock};
use solana_sdk::{
    signature::Keypair,
    commitment_config::CommitmentConfig,
};
use pumpfun_sdk::PumpFun;
use pumpfun_sdk::common::{Cluster, PriorityFee};

let payer = Keypair::from_base58_string(&settings.dex.payer.clone());
let cluster = Cluster::new( 
    rpc_url.clone(),
    jito_url.clone(),
    nextblock_url.clone(),
    nextblock_auth_token.clone(),
    zeroslot_url.clone(),
    zeroslot_auth_token.clone(),
    priority_fee,
    CommitmentConfig::processed(),
    use_jito,
    use_nextblock,
    use_zeroslot,
);

// create pumpfun instance
let pumpfun = PumpFun::new(Arc::new(payer), &cluster).await;

// Mint keypair
let mint_pubkey: Keypair = Keypair::new();

// buy token with tip
pumpfun.buy_with_tip(mint_pubkey, 10000, None).await?;

// sell token by percent with tip
pumpfun.sell_by_percent_with_tip(mint_pubkey, 100, None).await?;

About

A comprehensive Rust SDK for seamless interaction with the PumpFun Solana program. This SDK provides a robust set of tools and interfaces to integrate PumpFun functionality into your applications.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 100.0%