This commit is contained in:
GroovieGermanikus 2023-09-05 15:57:50 +02:00
parent 8ea8e8fa65
commit 21c0ab08da
8 changed files with 39 additions and 23 deletions

View File

@ -1,6 +1,9 @@
#![allow(unused_variables)]
use mango_feeds_connector::{grpc_plugin_source, metrics, AccountWrite, FilterConfig, GrpcSourceConfig, MetricsConfig, SlotUpdate, SnapshotSourceConfig, SourceConfig, EntityFilter};
use mango_feeds_connector::{
grpc_plugin_source, metrics, AccountWrite, EntityFilter, FilterConfig, GrpcSourceConfig,
MetricsConfig, SlotUpdate, SnapshotSourceConfig, SourceConfig,
};
use std::sync::atomic::AtomicBool;
use std::sync::Arc;
@ -74,14 +77,14 @@ async fn main() -> anyhow::Result<()> {
// an account that exists
let filter_config2 = FilterConfig {
entity_filter: EntityFilter::filter_by_account_ids(vec![
"2z5cFZAmL5HgDYXPAfEVpWn33Nixsu3iSsg5PDCFDWSb"
"2z5cFZAmL5HgDYXPAfEVpWn33Nixsu3iSsg5PDCFDWSb",
]),
};
// an account that does not exist
let filter_config3 = FilterConfig {
entity_filter: EntityFilter::filter_by_account_ids(vec![
"aorYUvexUBb6cRFpmauF3ofgUDDpFZcRpHpcp5B2Zip"
"aorYUvexUBb6cRFpmauF3ofgUDDpFZcRpHpcp5B2Zip",
]),
};

View File

@ -1,6 +1,9 @@
#![allow(unused_variables)]
use mango_feeds_connector::{grpc_plugin_source, metrics, AccountWrite, FilterConfig, GrpcSourceConfig, MetricsConfig, SlotUpdate, SnapshotSourceConfig, SourceConfig, EntityFilter};
use mango_feeds_connector::{
grpc_plugin_source, metrics, AccountWrite, EntityFilter, FilterConfig, GrpcSourceConfig,
MetricsConfig, SlotUpdate, SnapshotSourceConfig, SourceConfig,
};
use std::sync::atomic::AtomicBool;
use std::sync::Arc;
@ -74,14 +77,14 @@ async fn main() -> anyhow::Result<()> {
// an account that exists
let filter_config2 = FilterConfig {
entity_filter: EntityFilter::filter_by_account_ids(vec![
"2z5cFZAmL5HgDYXPAfEVpWn33Nixsu3iSsg5PDCFDWSb"
"2z5cFZAmL5HgDYXPAfEVpWn33Nixsu3iSsg5PDCFDWSb",
]),
};
// an account that does not exist
let filter_config3 = FilterConfig {
entity_filter: EntityFilter::filter_by_account_ids(vec![
"aorYUvexUBb6cRFpmauF3ofgUDDpFZcRpHpcp5B2Zip"
"aorYUvexUBb6cRFpmauF3ofgUDDpFZcRpHpcp5B2Zip",
]),
};

View File

@ -10,7 +10,6 @@ use solana_sdk::commitment_config::CommitmentConfig;
use solana_sdk::pubkey::Pubkey;
// use solana_rpc::rpc::rpc_accounts_scan::AccountsScanClient as GetProgramAccountsClient;
/// this tool tests the differences between rpc_accounts and rpc_accounts_scan (should be same)
#[derive(Parser, Debug, Clone)]
@ -27,9 +26,7 @@ struct Cli {
#[tokio::main]
async fn main() -> anyhow::Result<()> {
solana_logger::setup_with_default(
"info",
);
solana_logger::setup_with_default("info");
let cli = Cli::parse_from(std::env::args_os());
@ -37,7 +34,8 @@ async fn main() -> anyhow::Result<()> {
let program_id = cli.program_account;
let rpc_client = http::connect::<GetProgramAccountsClient>(&rpc_http_url)
.await.unwrap();
.await
.unwrap();
let account_info_config = RpcAccountInfoConfig {
encoding: Some(UiAccountEncoding::Base64),
@ -52,7 +50,9 @@ async fn main() -> anyhow::Result<()> {
with_context: Some(true),
};
let snapshot = rpc_client.get_program_accounts(program_id.to_string(), Some(program_info_config)).await;
let snapshot = rpc_client
.get_program_accounts(program_id.to_string(), Some(program_info_config))
.await;
if let OptionalContext::Context(snapshot_data) = snapshot.unwrap() {
println!("api version: {:?}", snapshot_data.context.api_version);
println!("#accounts {:?}", snapshot_data.value.len());

View File

@ -1,6 +1,9 @@
#![allow(unused_variables)]
use mango_feeds_connector::{websocket_source, AccountWrite, FilterConfig, SlotUpdate, SnapshotSourceConfig, SourceConfig, EntityFilter};
use mango_feeds_connector::{
websocket_source, AccountWrite, EntityFilter, FilterConfig, SlotUpdate, SnapshotSourceConfig,
SourceConfig,
};
///
/// test with local test-valiator (1.16.1)
@ -37,14 +40,14 @@ async fn main() -> anyhow::Result<()> {
// an account that exists
let filter_config2 = FilterConfig {
entity_filter: EntityFilter::filter_by_account_ids(vec![
"2z5cFZAmL5HgDYXPAfEVpWn33Nixsu3iSsg5PDCFDWSb"
"2z5cFZAmL5HgDYXPAfEVpWn33Nixsu3iSsg5PDCFDWSb",
]),
};
// an account that does not exis
let filter_config3 = FilterConfig {
entity_filter: EntityFilter::filter_by_account_ids(vec![
"aorYUvexUBb6cRFpmauF3ofgUDDpFZcRpHpcp5B2Zip"
"aorYUvexUBb6cRFpmauF3ofgUDDpFZcRpHpcp5B2Zip",
]),
};

View File

@ -5,8 +5,8 @@ pub mod metrics;
pub mod snapshot;
pub mod websocket_source;
use std::str::FromStr;
use itertools::Itertools;
use std::str::FromStr;
use {
serde_derive::Deserialize,
solana_sdk::{account::Account, pubkey::Pubkey},
@ -112,10 +112,10 @@ impl EntityFilter {
EntityFilter::FilterByProgramId(Pubkey::from_str(program_id).unwrap())
}
pub fn filter_by_account_ids(account_ids: Vec<&str>) -> Self {
let accounts_ids_typed =
account_ids.into_iter()
.map(|id| Pubkey::from_str(id).unwrap())
.collect_vec();
let accounts_ids_typed = account_ids
.into_iter()
.map(|id| Pubkey::from_str(id).unwrap())
.collect_vec();
EntityFilter::FilterByAccountIds(accounts_ids_typed)
}
}

View File

@ -13,6 +13,7 @@ use bytemuck::bytes_of;
use log::*;
use mango_v4_client::{Client, MangoGroupContext, TransactionBuilderConfig};
use solana_client::nonblocking::rpc_client::RpcClient;
use std::iter::FromIterator;
use std::{
collections::HashSet,
convert::TryFrom,
@ -22,7 +23,6 @@ use std::{
sync::{atomic::AtomicBool, Arc},
time::Duration,
};
use std::iter::FromIterator;
use mango_feeds_lib::EntityFilter::FilterByAccountIds;
use mango_feeds_lib::FilterConfig;

View File

@ -12,7 +12,12 @@ use futures_util::{
pin_mut, SinkExt, StreamExt, TryStreamExt,
};
use log::*;
use mango_feeds_lib::{grpc_plugin_source, metrics, metrics::{MetricType, MetricU64}, websocket_source, FilterConfig, MarketConfig, MetricsConfig, PostgresConfig, SourceConfig, StatusResponse, EntityFilter};
use mango_feeds_lib::{
grpc_plugin_source, metrics,
metrics::{MetricType, MetricU64},
websocket_source, EntityFilter, FilterConfig, MarketConfig, MetricsConfig, PostgresConfig,
SourceConfig, StatusResponse,
};
use mango_v4_client::{Client, MangoGroupContext, TransactionBuilderConfig};
use service_mango_fills::{Command, FillCheckpoint, FillEventFilterMessage, FillEventType};
use std::{

View File

@ -302,7 +302,9 @@ async fn main() -> anyhow::Result<()> {
// start filling chain_data from the grpc plugin source
let (account_write_queue_sender, slot_queue_sender) = memory_target::init(chain_data).await?;
let filter_config = FilterConfig {
entity_filter: EntityFilter::filter_by_program_id("4MangoMjqJ2firMokCjjGgoK8d4MXcrgL7XJaL3w6fVg"),
entity_filter: EntityFilter::filter_by_program_id(
"4MangoMjqJ2firMokCjjGgoK8d4MXcrgL7XJaL3w6fVg",
),
};
grpc_plugin_source::process_events(
&config.source,