mirror of
https://github.com/chainstacklabs/pumpfun-bonkfun-bot.git
synced 2026-08-18 01:38:04 +00:00
chore(examples): accept argv override and bump RPC timeouts
Three small ergonomic fixes uncovered while running every learning
example end-to-end:
copytrading/listen_wallet_transactions.py
Was hardcoded to WALLET_TO_TRACK = "...". Now accepts argv[1] so
you can run it without editing the file.
pumpswap/get_pumpswap_pools.py
Same pattern (TOKEN_MINT placeholder) and the underlying
getProgramAccounts call would also time out at the default 30s
on busy mainnet RPCs — bumped both AsyncClient timeouts to 120s.
bonding-curve-progress/get_graduating_tokens.py
Bumped RPC timeout 120s → 240s for the same reason. The threshold
scan over all pump.fun bonding curves still occasionally exceeds
even that on overloaded RPCs (it's a known-heavy query); a smaller
threshold or memcmp-narrowed filter is the proper long-term fix.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
ad6d2cc755
commit
bda9099275
@@ -141,7 +141,7 @@ def get_mint_address(data: bytes) -> str:
|
|||||||
|
|
||||||
async def main() -> None:
|
async def main() -> None:
|
||||||
"""Main entry point for querying and processing bonding curves."""
|
"""Main entry point for querying and processing bonding curves."""
|
||||||
async with AsyncClient(RPC_ENDPOINT, commitment="processed", timeout=120) as client:
|
async with AsyncClient(RPC_ENDPOINT, commitment="processed", timeout=240) as client:
|
||||||
await client.is_connected()
|
await client.is_connected()
|
||||||
|
|
||||||
bonding_curves = await get_bonding_curves_by_reserves(client)
|
bonding_curves = await get_bonding_curves_by_reserves(client)
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ load_dotenv()
|
|||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
WSS_ENDPOINT = os.environ.get("SOLANA_NODE_WSS_ENDPOINT")
|
WSS_ENDPOINT = os.environ.get("SOLANA_NODE_WSS_ENDPOINT")
|
||||||
WALLET_TO_TRACK = "..." # Change this to your target wallet
|
WALLET_TO_TRACK = sys.argv[1] if len(sys.argv) > 1 else "..." # Pass wallet as argv[1] or hardcode
|
||||||
|
|
||||||
# Pump.fun program constants
|
# Pump.fun program constants
|
||||||
PUMP_BONDING_CURVE_PROGRAM_ID = "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"
|
PUMP_BONDING_CURVE_PROGRAM_ID = "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"
|
||||||
|
|||||||
@@ -18,13 +18,15 @@ load_dotenv()
|
|||||||
|
|
||||||
RPC_ENDPOINT = os.environ.get("SOLANA_NODE_RPC_ENDPOINT")
|
RPC_ENDPOINT = os.environ.get("SOLANA_NODE_RPC_ENDPOINT")
|
||||||
PUMP_AMM_PROGRAM_ID = Pubkey.from_string("pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA")
|
PUMP_AMM_PROGRAM_ID = Pubkey.from_string("pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA")
|
||||||
TOKEN_MINT = Pubkey.from_string("...")
|
import sys
|
||||||
|
|
||||||
|
TOKEN_MINT = Pubkey.from_string(sys.argv[1] if len(sys.argv) > 1 else "...") # argv[1] or hardcode
|
||||||
|
|
||||||
|
|
||||||
async def get_market_address_by_base_mint(
|
async def get_market_address_by_base_mint(
|
||||||
base_mint_address: Pubkey, amm_program_id: Pubkey
|
base_mint_address: Pubkey, amm_program_id: Pubkey
|
||||||
):
|
):
|
||||||
async with AsyncClient(RPC_ENDPOINT) as client:
|
async with AsyncClient(RPC_ENDPOINT, timeout=120) as client:
|
||||||
base_mint_bytes = bytes(base_mint_address)
|
base_mint_bytes = bytes(base_mint_address)
|
||||||
|
|
||||||
# Define the offset for base_mint field
|
# Define the offset for base_mint field
|
||||||
@@ -45,7 +47,7 @@ async def get_market_address_by_base_mint(
|
|||||||
|
|
||||||
|
|
||||||
async def get_market_data(market_address: Pubkey):
|
async def get_market_data(market_address: Pubkey):
|
||||||
async with AsyncClient(RPC_ENDPOINT) as client:
|
async with AsyncClient(RPC_ENDPOINT, timeout=120) as client:
|
||||||
response = await client.get_account_info(market_address, encoding="base64")
|
response = await client.get_account_info(market_address, encoding="base64")
|
||||||
data = response.value.data
|
data = response.value.data
|
||||||
parsed_data = {}
|
parsed_data = {}
|
||||||
|
|||||||
Reference in New Issue
Block a user