mirror of
https://github.com/0xfnzero/solana-streamer.git
synced 2026-08-14 01:18:04 +00:00
Release solana-streamer-sdk v1.5.4
This commit is contained in:
@@ -187,7 +187,10 @@ fn push_streamer_event_sdk_grpc_types(
|
||||
out.push(Sdk::PumpFunCreate);
|
||||
out.push(Sdk::PumpFunCreateV2);
|
||||
}
|
||||
St::PumpFunCreateV2Token => out.push(Sdk::PumpFunCreateV2),
|
||||
St::PumpFunCreateV2Token => {
|
||||
out.push(Sdk::PumpFunCreate);
|
||||
out.push(Sdk::PumpFunCreateV2);
|
||||
}
|
||||
St::PumpFunBuy => {
|
||||
if matches!(mode, FilterMapMode::Include) {
|
||||
out.push(Sdk::PumpFunTrade);
|
||||
@@ -423,6 +426,7 @@ fn event_type_matches(filter_type: &EventType, event_type: &EventType) -> bool {
|
||||
|| matches!(
|
||||
(filter_type, event_type),
|
||||
(EventType::PumpFunCreateToken, EventType::PumpFunCreateV2Token)
|
||||
| (EventType::PumpFunCreateV2Token, EventType::PumpFunCreateToken)
|
||||
| (EventType::PumpFunBuy, EventType::PumpFunBuyExactSolIn)
|
||||
| (EventType::PumpFunBuyExactSolIn, EventType::PumpFunBuy)
|
||||
| (EventType::TokenAccount, EventType::TokenInfo)
|
||||
@@ -578,11 +582,11 @@ mod tests {
|
||||
include: vec![EventType::PumpFunCreateV2Token],
|
||||
..Default::default()
|
||||
};
|
||||
assert!(!f.passes_event_type(&EventType::PumpFunCreateToken));
|
||||
assert!(f.passes_event_type(&EventType::PumpFunCreateToken));
|
||||
assert!(f.passes_event_type(&EventType::PumpFunCreateV2Token));
|
||||
|
||||
let sdk_f = build_sdk_parse_event_filter(Some(&f)).expect("mapped");
|
||||
assert!(!sdk_f.should_include(SdkGrpcEventType::PumpFunCreate));
|
||||
assert!(sdk_f.should_include(SdkGrpcEventType::PumpFunCreate));
|
||||
assert!(sdk_f.should_include(SdkGrpcEventType::PumpFunCreateV2));
|
||||
}
|
||||
|
||||
|
||||
@@ -52,6 +52,18 @@ pub struct PumpFunCreateTokenEvent {
|
||||
pub event_authority: Pubkey,
|
||||
#[borsh(skip)]
|
||||
pub program: Pubkey,
|
||||
#[borsh(skip)]
|
||||
pub mayhem_program_id: Pubkey,
|
||||
#[borsh(skip)]
|
||||
pub global_params: Pubkey,
|
||||
#[borsh(skip)]
|
||||
pub sol_vault: Pubkey,
|
||||
#[borsh(skip)]
|
||||
pub mayhem_state: Pubkey,
|
||||
#[borsh(skip)]
|
||||
pub mayhem_token_vault: Pubkey,
|
||||
#[borsh(skip)]
|
||||
pub observed_fee_recipient: Pubkey,
|
||||
}
|
||||
|
||||
/// CreateV2 事件:与 create_v2 指令 16 个账户一致(见 parser 注释)。
|
||||
|
||||
@@ -60,10 +60,10 @@ pub(crate) fn convert_parser_event(
|
||||
bt,
|
||||
recv_wall_us,
|
||||
ProtocolType::PumpFun,
|
||||
EventType::PumpFunCreateV2Token,
|
||||
EventType::PumpFunCreateToken,
|
||||
pump_program(),
|
||||
);
|
||||
Some(DexEvent::PumpFunCreateV2TokenEvent(pumpfun_create_v2_from_parser(c, meta)))
|
||||
Some(DexEvent::PumpFunCreateTokenEvent(pumpfun_create_token_from_parser_v2(c, meta)))
|
||||
}
|
||||
PbDexEvent::PumpFunMigrate(m) => {
|
||||
let meta = adapt_pm(
|
||||
|
||||
@@ -41,8 +41,9 @@ mod tests {
|
||||
use crate::streaming::event_parser::{DexEvent, Protocol};
|
||||
use sol_parser_sdk::core::events::{
|
||||
BonkTradeEvent as PbBonkTrade, EventMetadata, MeteoraDlmmSwapEvent as PbDlmmSwap,
|
||||
OrcaWhirlpoolSwapEvent as PbOrcaSwap, PumpFunTradeEvent as PbPumpTrade,
|
||||
TokenInfoEvent as PbTokenInfo, TradeDirection as PbBonkDir,
|
||||
OrcaWhirlpoolSwapEvent as PbOrcaSwap, PumpFunCreateV2TokenEvent as PbPumpCreateV2,
|
||||
PumpFunTradeEvent as PbPumpTrade, TokenInfoEvent as PbTokenInfo,
|
||||
TradeDirection as PbBonkDir,
|
||||
};
|
||||
use sol_parser_sdk::DexEvent as PbDexEvent;
|
||||
use solana_sdk::{pubkey::Pubkey, signature::Signature};
|
||||
@@ -141,6 +142,44 @@ mod tests {
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn converts_pumpfun_create_v2_as_canonical_create() {
|
||||
let mint = Pubkey::new_unique();
|
||||
let global = Pubkey::new_unique();
|
||||
let event_authority = Pubkey::new_unique();
|
||||
let c = PbPumpCreateV2 {
|
||||
metadata: EventMetadata {
|
||||
signature: Signature::default(),
|
||||
slot: 42,
|
||||
tx_index: 7,
|
||||
block_time_us: 1_000_000,
|
||||
grpc_recv_us: 88,
|
||||
recent_blockhash: None,
|
||||
},
|
||||
name: "Token".to_string(),
|
||||
symbol: "TOK".to_string(),
|
||||
mint,
|
||||
global,
|
||||
event_authority,
|
||||
is_mayhem_mode: true,
|
||||
is_cashback_enabled: true,
|
||||
..Default::default()
|
||||
};
|
||||
|
||||
let ev = convert_parser_event(PbDexEvent::PumpFunCreateV2(c), None, 999).expect("convert");
|
||||
match ev {
|
||||
DexEvent::PumpFunCreateTokenEvent(st) => {
|
||||
assert_eq!(st.metadata.event_type, EventType::PumpFunCreateToken);
|
||||
assert_eq!(st.mint, mint);
|
||||
assert_eq!(st.global, global);
|
||||
assert_eq!(st.event_authority, event_authority);
|
||||
assert!(st.is_mayhem_mode);
|
||||
assert!(st.is_cashback_enabled);
|
||||
}
|
||||
other => panic!("expected canonical PumpFunCreateTokenEvent, got {other:?}"),
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn converts_pumpfun_buy_exact_quote_in_v2_as_buy_event() {
|
||||
let mut t = PbPumpTrade::default();
|
||||
|
||||
@@ -7,12 +7,11 @@ use crate::streaming::event_parser::protocols::pumpfun::events::{
|
||||
PumpFeesRevokeFeeSharingAuthorityEvent, PumpFeesShareholder,
|
||||
PumpFeesTransferFeeSharingAuthorityEvent, PumpFeesUpdateAdminEvent,
|
||||
PumpFeesUpdateFeeConfigEvent, PumpFeesUpdateFeeSharesEvent, PumpFeesUpsertFeeTiersEvent,
|
||||
PumpFunBondingCurveAccountEvent, PumpFunCreateTokenEvent, PumpFunCreateV2TokenEvent,
|
||||
PumpFunFeeConfig, PumpFunFeeConfigAccountEvent, PumpFunGlobalAccountEvent,
|
||||
PumpFunGlobalVolumeAccumulator, PumpFunGlobalVolumeAccumulatorAccountEvent,
|
||||
PumpFunMigrateBondingCurveCreatorEvent, PumpFunMigrateEvent, PumpFunSharingConfig,
|
||||
PumpFunSharingConfigAccountEvent, PumpFunTradeEvent, PumpFunUserVolumeAccumulator,
|
||||
PumpFunUserVolumeAccumulatorAccountEvent,
|
||||
PumpFunBondingCurveAccountEvent, PumpFunCreateTokenEvent, PumpFunFeeConfig,
|
||||
PumpFunFeeConfigAccountEvent, PumpFunGlobalAccountEvent, PumpFunGlobalVolumeAccumulator,
|
||||
PumpFunGlobalVolumeAccumulatorAccountEvent, PumpFunMigrateBondingCurveCreatorEvent,
|
||||
PumpFunMigrateEvent, PumpFunSharingConfig, PumpFunSharingConfigAccountEvent, PumpFunTradeEvent,
|
||||
PumpFunUserVolumeAccumulator, PumpFunUserVolumeAccumulatorAccountEvent,
|
||||
};
|
||||
use crate::streaming::event_parser::protocols::pumpfun::types::{BondingCurve, Global};
|
||||
use crate::streaming::event_parser::protocols::pumpswap::events::{
|
||||
@@ -65,11 +64,11 @@ pub(crate) fn pumpfun_create_token_from_parser(
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn pumpfun_create_v2_from_parser(
|
||||
pub(crate) fn pumpfun_create_token_from_parser_v2(
|
||||
c: sol_parser_sdk::core::events::PumpFunCreateV2TokenEvent,
|
||||
meta: EventMetadata,
|
||||
) -> PumpFunCreateV2TokenEvent {
|
||||
PumpFunCreateV2TokenEvent {
|
||||
) -> PumpFunCreateTokenEvent {
|
||||
PumpFunCreateTokenEvent {
|
||||
metadata: meta,
|
||||
name: c.name,
|
||||
symbol: c.symbol,
|
||||
@@ -100,6 +99,7 @@ pub(crate) fn pumpfun_create_v2_from_parser(
|
||||
mayhem_token_vault: c.mayhem_token_vault,
|
||||
event_authority: c.event_authority,
|
||||
program: c.program,
|
||||
..Default::default()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user