Skip to content
Open
  •  
  •  
  •  
8,527 changes: 7,172 additions & 1,355 deletions Cargo.lock

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,11 @@ tonic-reflection = "^0.12.1"
tonic-build = "^0.12.1"
toml = "^0.8.0"
topograph = "^0.4.0"
tokio-util = "^0.7"
tokio = "^1.37.0"
tracing = "^0.1.40"
zstd = "^0.13.0"
anyhow = "^1.0"

yellowstone-fumarole-client = "^0.2.0"
yellowstone-grpc-client = { version = "9" }
Expand Down Expand Up @@ -104,4 +106,4 @@ yellowstone-vixen-solana-rpc-source = { path = "crates/solana-rpc-source", versi
yellowstone-vixen-yellowstone-grpc-source = { path = "crates/yellowstone-grpc-source", version = "0.3.1" }
yellowstone-vixen-yellowstone-fumarole-source = { path = "crates/yellowstone-fumarole-source", version = "0.3.1" }
yellowstone-vixen-solana-snapshot-source = { path = "crates/solana-snapshot-source", version = "0.3.1" }

yellowstone-vixen-jetstream-source = { path = "crates/jetstreamer-source", version = "0.3.1" }
16 changes: 16 additions & 0 deletions Vixen.example.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,21 @@ timeout = 60
# x-token = "<X-TOKEN>"
# subscriber-name = "my_subscribe_group"

# Jetstream source configuration (alternative to Yellowstone gRPC)
[source]
archive_url = "https://api.old-faithful.net"
epoch = 800 # Or use slot_start/slot_end instead
threads = 4
reorder_buffer_size = 1000
slot_timeout_secs = 30
network = "mainnet"
compact_index_base_url = "https://files.old-faithful.net"
network_capacity_mb = 1000

[filters]
# Add filters for specific programs/accounts if needed
# programs = ["11111111111111111111111111111112"]

Comment on lines +36 to +39
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The filters should come from the parser's attached filters which mimic grpc subscribe filter notation for selecting account owner or address in accounts list for transactions we shouldn't need to specify filters on the source.

# Metrics configuration section.
# Uncomment the following lines if you are running Prometheus

Expand All @@ -44,3 +59,4 @@ timeout = 60
# The metrics export interval in seconds.
# This defines how often metrics data is exported.
#export-interval = 60

12 changes: 9 additions & 3 deletions crates/boop-parser/src/generated_parser/accounts_parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,9 @@ impl yellowstone_vixen_core::Parser for AccountParser {
type Input = yellowstone_vixen_core::AccountUpdate;
type Output = BoopProgramState;

fn id(&self) -> std::borrow::Cow<'static, str> { "boop::AccountParser".into() }
fn id(&self) -> std::borrow::Cow<'static, str> {
"boop::AccountParser".into()
}

fn prefilter(&self) -> yellowstone_vixen_core::Prefilter {
yellowstone_vixen_core::Prefilter::builder()
Expand Down Expand Up @@ -113,7 +115,9 @@ impl yellowstone_vixen_core::Parser for AccountParser {

impl yellowstone_vixen_core::ProgramParser for AccountParser {
#[inline]
fn program_id(&self) -> yellowstone_vixen_core::Pubkey { ID.to_bytes().into() }
fn program_id(&self) -> yellowstone_vixen_core::Pubkey {
ID.to_bytes().into()
}
}

// #[cfg(feature = "proto")]
Expand Down Expand Up @@ -229,6 +233,8 @@ mod proto_parser {
impl ParseProto for AccountParser {
type Message = proto_def::ProgramState;

fn output_into_message(value: Self::Output) -> Self::Message { value.into_proto() }
fn output_into_message(value: Self::Output) -> Self::Message {
value.into_proto()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,9 @@ impl yellowstone_vixen_core::Parser for InstructionParser {
#[cfg(feature = "shared-data")]
type Output = InstructionUpdateOutput<BoopProgramIx>;

fn id(&self) -> std::borrow::Cow<'static, str> { "Boop::InstructionParser".into() }
fn id(&self) -> std::borrow::Cow<'static, str> {
"Boop::InstructionParser".into()
}

fn prefilter(&self) -> yellowstone_vixen_core::Prefilter {
yellowstone_vixen_core::Prefilter::builder()
Expand Down Expand Up @@ -141,7 +143,9 @@ impl yellowstone_vixen_core::Parser for InstructionParser {

impl yellowstone_vixen_core::ProgramParser for InstructionParser {
#[inline]
fn program_id(&self) -> yellowstone_vixen_core::Pubkey { ID.to_bytes().into() }
fn program_id(&self) -> yellowstone_vixen_core::Pubkey {
ID.to_bytes().into()
}
}

impl InstructionParser {
Expand Down
4 changes: 3 additions & 1 deletion crates/boop-parser/src/generated_sdk/accounts/amm_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,9 @@ impl anchor_lang::AccountSerialize for AmmConfig {}

#[cfg(feature = "anchor")]
impl anchor_lang::Owner for AmmConfig {
fn owner() -> Pubkey { crate::BOOP_ID }
fn owner() -> Pubkey {
crate::BOOP_ID
}
}

#[cfg(feature = "anchor-idl-build")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,9 @@ impl anchor_lang::AccountSerialize for BondingCurve {}

#[cfg(feature = "anchor")]
impl anchor_lang::Owner for BondingCurve {
fn owner() -> Pubkey { crate::BOOP_ID }
fn owner() -> Pubkey {
crate::BOOP_ID
}
}

#[cfg(feature = "anchor-idl-build")]
Expand Down
4 changes: 3 additions & 1 deletion crates/boop-parser/src/generated_sdk/accounts/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,9 @@ impl anchor_lang::AccountSerialize for Config {}

#[cfg(feature = "anchor")]
impl anchor_lang::Owner for Config {
fn owner() -> Pubkey { crate::BOOP_ID }
fn owner() -> Pubkey {
crate::BOOP_ID
}
}

#[cfg(feature = "anchor-idl-build")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,9 @@ impl anchor_lang::AccountSerialize for LockedCpLiquidityState {}

#[cfg(feature = "anchor")]
impl anchor_lang::Owner for LockedCpLiquidityState {
fn owner() -> Pubkey { crate::BOOP_ID }
fn owner() -> Pubkey {
crate::BOOP_ID
}
}

#[cfg(feature = "anchor-idl-build")]
Expand Down
4 changes: 3 additions & 1 deletion crates/boop-parser/src/generated_sdk/errors/boop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,5 +122,7 @@ impl solana_program_error::PrintProgramError for BoopError {

#[allow(deprecated)]
impl<T> solana_decode_error::DecodeError<T> for BoopError {
fn type_of() -> &'static str { "BoopError" }
fn type_of() -> &'static str {
"BoopError"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,9 @@ impl AddOperatorsInstructionData {
}

impl Default for AddOperatorsInstructionData {
fn default() -> Self { Self::new() }
fn default() -> Self {
Self::new()
}
}

#[derive(BorshSerialize, BorshDeserialize, Clone, Debug, Eq, PartialEq)]
Expand All @@ -94,7 +96,9 @@ pub struct AddOperatorsBuilder {
}

impl AddOperatorsBuilder {
pub fn new() -> Self { Self::default() }
pub fn new() -> Self {
Self::default()
}

#[inline(always)]
pub fn config(&mut self, config: solana_pubkey::Pubkey) -> &mut Self {
Expand Down Expand Up @@ -350,7 +354,9 @@ impl<'a, 'b> AddOperatorsCpiBuilder<'a, 'b> {
}

#[inline(always)]
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult { self.invoke_signed(&[]) }
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult {
self.invoke_signed(&[])
}

#[allow(clippy::clone_on_copy)]
#[allow(clippy::vec_init_then_push)]
Expand Down
12 changes: 9 additions & 3 deletions crates/boop-parser/src/generated_sdk/instructions/buy_token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,9 @@ impl BuyTokenInstructionData {
}

impl Default for BuyTokenInstructionData {
fn default() -> Self { Self::new() }
fn default() -> Self {
Self::new()
}
}

#[derive(BorshSerialize, BorshDeserialize, Clone, Debug, Eq, PartialEq)]
Expand Down Expand Up @@ -173,7 +175,9 @@ pub struct BuyTokenBuilder {
}

impl BuyTokenBuilder {
pub fn new() -> Self { Self::default() }
pub fn new() -> Self {
Self::default()
}

#[inline(always)]
pub fn mint(&mut self, mint: solana_pubkey::Pubkey) -> &mut Self {
Expand Down Expand Up @@ -743,7 +747,9 @@ impl<'a, 'b> BuyTokenCpiBuilder<'a, 'b> {
}

#[inline(always)]
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult { self.invoke_signed(&[]) }
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult {
self.invoke_signed(&[])
}

#[allow(clippy::clone_on_copy)]
#[allow(clippy::vec_init_then_push)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,9 @@ impl CancelAuthorityTransferInstructionData {
}

impl Default for CancelAuthorityTransferInstructionData {
fn default() -> Self { Self::new() }
fn default() -> Self {
Self::new()
}
}

/// Instruction builder for `CancelAuthorityTransfer`.
Expand All @@ -83,7 +85,9 @@ pub struct CancelAuthorityTransferBuilder {
}

impl CancelAuthorityTransferBuilder {
pub fn new() -> Self { Self::default() }
pub fn new() -> Self {
Self::default()
}

#[inline(always)]
pub fn authority(&mut self, authority: solana_pubkey::Pubkey) -> &mut Self {
Expand Down Expand Up @@ -317,7 +321,9 @@ impl<'a, 'b> CancelAuthorityTransferCpiBuilder<'a, 'b> {
}

#[inline(always)]
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult { self.invoke_signed(&[]) }
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult {
self.invoke_signed(&[])
}

#[allow(clippy::clone_on_copy)]
#[allow(clippy::vec_init_then_push)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,9 @@ impl CloseBondingCurveVaultInstructionData {
}

impl Default for CloseBondingCurveVaultInstructionData {
fn default() -> Self { Self::new() }
fn default() -> Self {
Self::new()
}
}

/// Instruction builder for `CloseBondingCurveVault`.
Expand Down Expand Up @@ -150,7 +152,9 @@ pub struct CloseBondingCurveVaultBuilder {
}

impl CloseBondingCurveVaultBuilder {
pub fn new() -> Self { Self::default() }
pub fn new() -> Self {
Self::default()
}

#[inline(always)]
pub fn config(&mut self, config: solana_pubkey::Pubkey) -> &mut Self {
Expand Down Expand Up @@ -648,7 +652,9 @@ impl<'a, 'b> CloseBondingCurveVaultCpiBuilder<'a, 'b> {
}

#[inline(always)]
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult { self.invoke_signed(&[]) }
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult {
self.invoke_signed(&[])
}

#[allow(clippy::clone_on_copy)]
#[allow(clippy::vec_init_then_push)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,9 @@ impl CollectTradingFeesInstructionData {
}

impl Default for CollectTradingFeesInstructionData {
fn default() -> Self { Self::new() }
fn default() -> Self {
Self::new()
}
}

/// Instruction builder for `CollectTradingFees`.
Expand Down Expand Up @@ -246,7 +248,9 @@ pub struct CollectTradingFeesBuilder {
}

impl CollectTradingFeesBuilder {
pub fn new() -> Self { Self::default() }
pub fn new() -> Self {
Self::default()
}

#[inline(always)]
pub fn operator(&mut self, operator: solana_pubkey::Pubkey) -> &mut Self {
Expand Down Expand Up @@ -1132,7 +1136,9 @@ impl<'a, 'b> CollectTradingFeesCpiBuilder<'a, 'b> {
}

#[inline(always)]
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult { self.invoke_signed(&[]) }
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult {
self.invoke_signed(&[])
}

#[allow(clippy::clone_on_copy)]
#[allow(clippy::vec_init_then_push)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,9 @@ impl CompleteAuthorityTransferInstructionData {
}

impl Default for CompleteAuthorityTransferInstructionData {
fn default() -> Self { Self::new() }
fn default() -> Self {
Self::new()
}
}

/// Instruction builder for `CompleteAuthorityTransfer`.
Expand All @@ -83,7 +85,9 @@ pub struct CompleteAuthorityTransferBuilder {
}

impl CompleteAuthorityTransferBuilder {
pub fn new() -> Self { Self::default() }
pub fn new() -> Self {
Self::default()
}

#[inline(always)]
pub fn pending_authority(&mut self, pending_authority: solana_pubkey::Pubkey) -> &mut Self {
Expand Down Expand Up @@ -322,7 +326,9 @@ impl<'a, 'b> CompleteAuthorityTransferCpiBuilder<'a, 'b> {
}

#[inline(always)]
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult { self.invoke_signed(&[]) }
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult {
self.invoke_signed(&[])
}

#[allow(clippy::clone_on_copy)]
#[allow(clippy::vec_init_then_push)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,9 @@ impl CreateRaydiumPoolInstructionData {
}

impl Default for CreateRaydiumPoolInstructionData {
fn default() -> Self { Self::new() }
fn default() -> Self {
Self::new()
}
}

/// Instruction builder for `CreateRaydiumPool`.
Expand Down Expand Up @@ -228,7 +230,9 @@ pub struct CreateRaydiumPoolBuilder {
}

impl CreateRaydiumPoolBuilder {
pub fn new() -> Self { Self::default() }
pub fn new() -> Self {
Self::default()
}

/// `[optional account, default to 'CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C']`
#[inline(always)]
Expand Down Expand Up @@ -1029,7 +1033,9 @@ impl<'a, 'b> CreateRaydiumPoolCpiBuilder<'a, 'b> {
}

#[inline(always)]
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult { self.invoke_signed(&[]) }
pub fn invoke(&self) -> solana_program_entrypoint::ProgramResult {
self.invoke_signed(&[])
}

#[allow(clippy::clone_on_copy)]
#[allow(clippy::vec_init_then_push)]
Expand Down
Loading