feat(shred): tx_index, Migrate without CPI, merge fix, doc limits

- Add tx_index to TransactionWithSlot (entry index), pass to parser
- Emit PumpFun Migrate even when no CPI (shred gets instruction-only)
- Merge: only overwrite Create/CreateV2 with CPI when value non-default
- Rename transaction_index -> tx_index across codebase
- Add docs/SHREDSTREAM_LIMITATIONS.md (ALT/CPI limits, field completeness)
- Comment shred path: static_account_keys only, no inner_instructions

Made-with: Cursor
This commit is contained in:
Wood
2026-03-07 12:35:57 +08:00
parent 04df6db0b0
commit 7270372604
14 changed files with 219 additions and 77 deletions
+2 -2
View File
@@ -113,9 +113,9 @@ async fn test_grpc() -> Result<(), Box<dyn std::error::Error>> {
fn create_event_callback() -> impl Fn(DexEvent) {
|event: DexEvent| {
println!(
"🎉 Event received! Type: {:?}, transaction_index: {:?}",
"🎉 Event received! Type: {:?}, tx_index: {:?}",
event.metadata().event_type,
event.metadata().transaction_index
event.metadata().tx_index
);
match event {
DexEvent::BlockMetaEvent(e) => {
+2 -2
View File
@@ -177,7 +177,7 @@ async fn get_single_transaction_details(signature_str: &str) -> Result<()> {
.unwrap()
.as_micros() as i64;
let bot_wallet = None;
let transaction_index = None;
let tx_index = None;
let protocols = vec![
Protocol::Bonk,
@@ -206,7 +206,7 @@ async fn get_single_transaction_details(signature_str: &str) -> Result<()> {
&accounts,
&inner_instructions_vec,
bot_wallet,
transaction_index,
tx_index,
callback,
)
.await?;
+2 -2
View File
@@ -57,9 +57,9 @@ async fn test_shreds() -> Result<(), Box<dyn std::error::Error>> {
fn create_event_callback() -> impl Fn(DexEvent) {
|event: DexEvent| {
println!(
"🎉 Event received! Type: {:?}, transaction_index: {:?}",
"🎉 Event received! Type: {:?}, tx_index: {:?}",
event.metadata().event_type,
event.metadata().transaction_index
event.metadata().tx_index
);
match event {
DexEvent::BlockMetaEvent(e) => {