diff --git a/CLAUDE.md b/CLAUDE.md index 63c1da9..90c0d96 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -329,9 +329,12 @@ The IDLs under `idl/` are vendored verbatim from `github.com/pump-fun/pump-publi for legacy `create`. Deriving with the wrong program returns a valid-looking address that does not exist on chain. Verified: curve `3jJ83ND…` derives to `Cd4iC3Jn…` under Token2022 (matches chain) and `AhNzZsBp…` under SPL Token. -- `extreme_fast_mode` skips the curve-state price fetch but still refreshes - mayhem/cashback/creator/**quote_mint** from chain, because the wrong quote mint - means spending the wrong balance entirely. Event parsers also populate +- `extreme_fast_mode` skips the curve-state price fetch. Whether it also reads + the curve for mayhem/cashback/creator/**quote_mint** depends on provenance + (see "Verifying the listener-to-buy path" above): CreateEvent-sourced tokens + (`state_from_event`) trade on the event data with zero RPC calls, while + pumpportal/incomplete-event tokens refresh from chain — the wrong quote mint + means spending the wrong balance entirely. Event parsers populate `quote_mint` from `CreateEvent` (which gained `quote_mint` and `virtual_quote_reserves` as trailing fields). diff --git a/learning-examples/simulate_bot_buy_path.py b/learning-examples/simulate_bot_buy_path.py index e591312..c30858f 100644 --- a/learning-examples/simulate_bot_buy_path.py +++ b/learning-examples/simulate_bot_buy_path.py @@ -1,10 +1,12 @@ """Dry-run the bot's real buy path against a freshly created coin. Detects a new pump.fun coin with the bot's own listener, runs the same -PlatformAwareBuyer code the bot uses (including the extreme_fast_mode curve -refresh), but intercepts the transaction just before submission and simulates it -instead. This exercises the listener -> event parser -> curve manager -> -address provider -> instruction builder chain as a unit. +PlatformAwareBuyer code the bot uses (the zero-RPC path for +CreateEvent-sourced tokens, or the curve refresh otherwise — watch the +state_from_event line in the output), but intercepts the transaction just +before submission and simulates it instead. This exercises the listener -> +event parser -> curve manager -> address provider -> instruction builder +chain as a unit. No funds move: `build_and_send_transaction` is monkeypatched to simulate.