This is now mango-fills

- mango-fills-connector: Is about getting data from rpc, websockets,
  geyser. Shall be reused in v4/client and other places.
- mango-fills-lib: is a library we'll probably remove
- service-* is the individual services
This commit is contained in:
Christian Kamm 2023-03-17 12:57:11 +01:00
parent ebd392e628
commit 6731496fde
23 changed files with 122 additions and 128 deletions

196
Cargo.lock generated
View File

@ -3040,6 +3040,97 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "mango-feeds-connector"
version = "0.1.0"
dependencies = [
"anyhow",
"arrayref",
"async-channel",
"async-stream 0.2.1",
"async-trait",
"base64 0.21.0",
"bs58 0.4.0",
"bytemuck",
"bytes 1.4.0",
"chrono",
"fixed",
"futures 0.3.26",
"futures-core",
"futures-util",
"itertools 0.10.5",
"jsonrpc-core 18.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"jsonrpc-core-client",
"log 0.4.17",
"native-tls",
"prost 0.9.0",
"rand 0.7.3",
"rustls 0.20.8",
"rustls-pemfile 1.0.2",
"serde",
"serde_derive",
"serde_json",
"solana-account-decoder",
"solana-client",
"solana-rpc",
"solana-sdk",
"tokio",
"tokio-stream",
"tonic 0.6.2",
"tonic-build 0.6.2",
"warp",
]
[[package]]
name = "mango-feeds-lib"
version = "0.1.0"
dependencies = [
"anchor-lang",
"anyhow",
"arrayref",
"async-channel",
"async-stream 0.2.1",
"async-trait",
"base64 0.21.0",
"bs58 0.4.0",
"bytemuck",
"bytes 1.4.0",
"chrono",
"fixed",
"futures 0.3.26",
"futures-core",
"futures-util",
"itertools 0.10.5",
"jsonrpc-core 18.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"jsonrpc-core-client",
"log 0.4.17",
"mango-feeds-connector",
"mango-v4",
"native-tls",
"postgres-native-tls",
"postgres-types",
"postgres_query",
"prost 0.9.0",
"rand 0.7.3",
"rustls 0.20.8",
"rustls-pemfile 1.0.2",
"serde",
"serde_derive",
"serde_json",
"serum_dex 0.5.10 (git+https://github.com/jup-ag/openbook-program?branch=feat/expose-things)",
"solana-account-decoder",
"solana-client",
"solana-rpc",
"solana-sdk",
"tokio",
"tokio-postgres",
"tokio-postgres-rustls",
"tokio-stream",
"tonic 0.6.2",
"tonic-build 0.6.2",
"warp",
]
[[package]] [[package]]
name = "mango-v4" name = "mango-v4"
version = "0.6.0" version = "0.6.0"
@ -5221,24 +5312,24 @@ dependencies = [
"anyhow", "anyhow",
"async-channel", "async-channel",
"async-trait", "async-trait",
"bs58 0.3.1", "bs58 0.4.0",
"bytemuck", "bytemuck",
"client", "client",
"futures-channel", "futures-channel",
"futures-util", "futures-util",
"log 0.3.9", "log 0.4.17",
"mango-feeds-lib",
"mango-v4", "mango-v4",
"serde", "serde",
"serde_derive", "serde_derive",
"serde_json", "serde_json",
"serum_dex 0.5.10 (git+https://github.com/openbook-dex/program)", "serum_dex 0.5.10 (git+https://github.com/openbook-dex/program)",
"solana-client", "solana-client",
"solana-geyser-connector-lib",
"solana-logger", "solana-logger",
"solana-sdk", "solana-sdk",
"tokio", "tokio",
"tokio-tungstenite", "tokio-tungstenite",
"toml 0.5.11", "toml 0.7.1",
"ws", "ws",
] ]
@ -5258,12 +5349,12 @@ dependencies = [
"futures-util", "futures-util",
"jemallocator", "jemallocator",
"log 0.4.17", "log 0.4.17",
"mango-feeds-lib",
"mango-v4", "mango-v4",
"serde", "serde",
"serde_derive", "serde_derive",
"serde_json", "serde_json",
"serum_dex 0.5.10 (git+https://github.com/jup-ag/openbook-program?branch=feat/expose-things)", "serum_dex 0.5.10 (git+https://github.com/jup-ag/openbook-program?branch=feat/expose-things)",
"solana-geyser-connector-lib",
"solana-logger", "solana-logger",
"tokio", "tokio",
"tokio-tungstenite", "tokio-tungstenite",
@ -5286,12 +5377,12 @@ dependencies = [
"futures-channel", "futures-channel",
"futures-util", "futures-util",
"log 0.4.17", "log 0.4.17",
"mango-feeds-lib",
"mango-v4", "mango-v4",
"serde", "serde",
"serde_derive", "serde_derive",
"serde_json", "serde_json",
"serum_dex 0.5.10 (git+https://github.com/openbook-dex/program?branch=master)", "serum_dex 0.5.10 (git+https://github.com/openbook-dex/program?branch=master)",
"solana-geyser-connector-lib",
"solana-logger", "solana-logger",
"tokio", "tokio",
"tokio-tungstenite", "tokio-tungstenite",
@ -5313,10 +5404,10 @@ dependencies = [
"fixed", "fixed",
"jsonrpsee", "jsonrpsee",
"log 0.4.17", "log 0.4.17",
"mango-feeds-lib",
"mango-v4", "mango-v4",
"serde", "serde",
"serde_derive", "serde_derive",
"solana-geyser-connector-lib",
"solana-logger", "solana-logger",
"solana-sdk", "solana-sdk",
"tokio", "tokio",
@ -5843,97 +5934,6 @@ dependencies = [
"syn 1.0.107", "syn 1.0.107",
] ]
[[package]]
name = "solana-geyser-connector-data-streams"
version = "0.1.0"
dependencies = [
"anyhow",
"arrayref",
"async-channel",
"async-stream 0.2.1",
"async-trait",
"base64 0.9.3",
"bs58 0.3.1",
"bytemuck",
"bytes 1.4.0",
"chrono",
"fixed",
"futures 0.3.26",
"futures-core",
"futures-util",
"itertools 0.10.5",
"jsonrpc-core 18.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"jsonrpc-core-client",
"log 0.4.17",
"native-tls",
"prost 0.9.0",
"rand 0.7.3",
"rustls 0.20.8",
"rustls-pemfile 1.0.2",
"serde",
"serde_derive",
"serde_json",
"solana-account-decoder",
"solana-client",
"solana-rpc",
"solana-sdk",
"tokio",
"tokio-stream",
"tonic 0.6.2",
"tonic-build 0.6.2",
"warp",
]
[[package]]
name = "solana-geyser-connector-lib"
version = "0.1.0"
dependencies = [
"anchor-lang",
"anyhow",
"arrayref",
"async-channel",
"async-stream 0.2.1",
"async-trait",
"base64 0.21.0",
"bs58 0.4.0",
"bytemuck",
"bytes 1.4.0",
"chrono",
"fixed",
"futures 0.3.26",
"futures-core",
"futures-util",
"itertools 0.10.5",
"jsonrpc-core 18.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"jsonrpc-core-client",
"log 0.4.17",
"mango-v4",
"native-tls",
"postgres-native-tls",
"postgres-types",
"postgres_query",
"prost 0.9.0",
"rand 0.7.3",
"rustls 0.20.8",
"rustls-pemfile 1.0.2",
"serde",
"serde_derive",
"serde_json",
"serum_dex 0.5.10 (git+https://github.com/jup-ag/openbook-program?branch=feat/expose-things)",
"solana-account-decoder",
"solana-client",
"solana-geyser-connector-data-streams",
"solana-rpc",
"solana-sdk",
"tokio",
"tokio-postgres",
"tokio-postgres-rustls",
"tokio-stream",
"tonic 0.6.2",
"tonic-build 0.6.2",
"warp",
]
[[package]] [[package]]
name = "solana-gossip" name = "solana-gossip"
version = "1.14.13" version = "1.14.13"

View File

@ -1,6 +1,6 @@
[workspace] [workspace]
members = [ members = [
"data-streams", "connector",
"lib", "lib",
"service-mango-crank", "service-mango-crank",
"service-mango-fills", "service-mango-fills",

View File

@ -1,5 +1,5 @@
[package] [package]
name = "solana-geyser-connector-data-streams" name = "mango-feeds-connector"
version = "0.1.0" version = "0.1.0"
authors = ["Christian Kamm <mail@ckamm.de>"] authors = ["Christian Kamm <mail@ckamm.de>"]
edition = "2021" edition = "2021"

View File

@ -1,5 +1,5 @@
[package] [package]
name = "solana-geyser-connector-lib" name = "mango-feeds-lib"
version = "0.1.0" version = "0.1.0"
authors = ["Christian Kamm <mail@ckamm.de>"] authors = ["Christian Kamm <mail@ckamm.de>"]
edition = "2021" edition = "2021"
@ -8,7 +8,7 @@ edition = "2021"
[dependencies] [dependencies]
solana-geyser-connector-data-streams = { file = "0.1.0", path = "../data-streams" } mango-feeds-connector = { path = "../connector" }
jsonrpc-core = "18.0.0" jsonrpc-core = "18.0.0"
jsonrpc-core-client = { version = "18.0.0", features = ["ws", "http"] } jsonrpc-core-client = { version = "18.0.0", features = ["ws", "http"] }

View File

@ -8,7 +8,7 @@ pub mod serum;
use serde::{ser::SerializeStruct, Serialize, Serializer}; use serde::{ser::SerializeStruct, Serialize, Serializer};
use serde_derive::Deserialize; use serde_derive::Deserialize;
pub use solana_geyser_connector_data_streams::*; pub use mango_feeds_connector::*;
#[derive(Clone, Debug, Deserialize)] #[derive(Clone, Debug, Deserialize)]
pub struct PostgresConfig { pub struct PostgresConfig {

View File

@ -5,7 +5,7 @@ authors = ["Maximilian Schneider <max@mango.markets>"]
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-geyser-connector-lib = { path = "../lib" } mango-feeds-lib = { path = "../lib" }
solana-client = "1" solana-client = "1"
solana-logger = "1" solana-logger = "1"
solana-sdk = "1" solana-sdk = "1"

View File

@ -15,11 +15,9 @@ use log::*;
use solana_client::nonblocking::rpc_client::RpcClient; use solana_client::nonblocking::rpc_client::RpcClient;
use std::{collections::HashSet, fs::File, io::Read, str::FromStr, sync::Arc, time::Duration}; use std::{collections::HashSet, fs::File, io::Read, str::FromStr, sync::Arc, time::Duration};
use mango_feeds_lib::FilterConfig;
use mango_feeds_lib::{grpc_plugin_source, metrics, websocket_source, MetricsConfig, SourceConfig};
use serde::Deserialize; use serde::Deserialize;
use solana_geyser_connector_lib::FilterConfig;
use solana_geyser_connector_lib::{
grpc_plugin_source, metrics, websocket_source, MetricsConfig, SourceConfig,
};
#[derive(Clone, Debug, Deserialize)] #[derive(Clone, Debug, Deserialize)]
pub struct Config { pub struct Config {
pub source: SourceConfig, pub source: SourceConfig,

View File

@ -7,9 +7,7 @@ use std::{
use async_channel::Sender; use async_channel::Sender;
use async_trait::async_trait; use async_trait::async_trait;
use log::*; use log::*;
use solana_geyser_connector_lib::{ use mango_feeds_lib::{account_write_filter::AccountWriteSink, chain_data::AccountData};
account_write_filter::AccountWriteSink, chain_data::AccountData,
};
use solana_sdk::{ use solana_sdk::{
account::ReadableAccount, account::ReadableAccount,
instruction::{AccountMeta, Instruction}, instruction::{AccountMeta, Instruction},

View File

@ -6,10 +6,10 @@ use std::{
use async_channel::Sender; use async_channel::Sender;
use async_trait::async_trait; use async_trait::async_trait;
use log::*; use log::*;
use serum_dex::{instruction::MarketInstruction, state::EventView}; use mango_feeds_lib::{
use solana_geyser_connector_lib::{
account_write_filter::AccountWriteSink, chain_data::AccountData, serum::SerumEventQueueHeader, account_write_filter::AccountWriteSink, chain_data::AccountData, serum::SerumEventQueueHeader,
}; };
use serum_dex::{instruction::MarketInstruction, state::EventView};
use solana_sdk::{ use solana_sdk::{
account::ReadableAccount, account::ReadableAccount,
instruction::{AccountMeta, Instruction}, instruction::{AccountMeta, Instruction},

View File

@ -1,4 +1,4 @@
use solana_geyser_connector_lib::{ use mango_feeds_lib::{
account_write_filter::{self, AccountWriteRoute}, account_write_filter::{self, AccountWriteRoute},
metrics::Metrics, metrics::Metrics,
AccountWrite, SlotUpdate, AccountWrite, SlotUpdate,

View File

@ -5,7 +5,7 @@ authors = ["Christian Kamm <mail@ckamm.de>", "Maximilian Schneider <max@mango.ma
edition = "2018" edition = "2018"
[dependencies] [dependencies]
solana-geyser-connector-lib = { path = "../lib" } mango-feeds-lib = { path = "../lib" }
solana-logger = "*" solana-logger = "*"
bs58 = "*" bs58 = "*"
log = "*" log = "*"

View File

@ -26,18 +26,18 @@ use tokio::{
}; };
use tokio_tungstenite::tungstenite::{protocol::Message, Error}; use tokio_tungstenite::tungstenite::{protocol::Message, Error};
use serde::Deserialize; use mango_feeds_lib::{
use solana_geyser_connector_lib::{
fill_event_filter::FillEventType, fill_event_filter::FillEventType,
fill_event_postgres_target, fill_event_postgres_target,
metrics::{MetricType, MetricU64}, metrics::{MetricType, MetricU64},
orderbook_filter::MarketConfig, orderbook_filter::MarketConfig,
FilterConfig, PostgresConfig, PostgresTlsConfig, StatusResponse, FilterConfig, PostgresConfig, PostgresTlsConfig, StatusResponse,
}; };
use solana_geyser_connector_lib::{ use mango_feeds_lib::{
fill_event_filter::{self, FillCheckpoint, FillEventFilterMessage}, fill_event_filter::{self, FillCheckpoint, FillEventFilterMessage},
grpc_plugin_source, metrics, websocket_source, MetricsConfig, SourceConfig, grpc_plugin_source, metrics, websocket_source, MetricsConfig, SourceConfig,
}; };
use serde::Deserialize;
type CheckpointMap = Arc<Mutex<HashMap<String, FillCheckpoint>>>; type CheckpointMap = Arc<Mutex<HashMap<String, FillCheckpoint>>>;
type PeerMap = Arc<Mutex<HashMap<SocketAddr, Peer>>>; type PeerMap = Arc<Mutex<HashMap<SocketAddr, Peer>>>;

View File

@ -5,7 +5,7 @@ authors = ["Riordan Panayides <riordan@panayid.es>"]
edition = "2021" edition = "2021"
[dependencies] [dependencies]
solana-geyser-connector-lib = { path = "../lib" } mango-feeds-lib = { path = "../lib" }
solana-logger = "*" solana-logger = "*"
bs58 = "*" bs58 = "*"
log = "*" log = "*"

View File

@ -26,15 +26,13 @@ use tokio::{
}; };
use tokio_tungstenite::tungstenite::{protocol::Message, Error}; use tokio_tungstenite::tungstenite::{protocol::Message, Error};
use serde::Deserialize; use mango_feeds_lib::{grpc_plugin_source, metrics, websocket_source, MetricsConfig, SourceConfig};
use solana_geyser_connector_lib::{ use mango_feeds_lib::{
grpc_plugin_source, metrics, websocket_source, MetricsConfig, SourceConfig,
};
use solana_geyser_connector_lib::{
metrics::{MetricType, MetricU64}, metrics::{MetricType, MetricU64},
orderbook_filter::{self, MarketConfig, OrderbookCheckpoint, OrderbookFilterMessage}, orderbook_filter::{self, MarketConfig, OrderbookCheckpoint, OrderbookFilterMessage},
FilterConfig, StatusResponse, FilterConfig, StatusResponse,
}; };
use serde::Deserialize;
type CheckpointMap = Arc<Mutex<HashMap<String, OrderbookCheckpoint>>>; type CheckpointMap = Arc<Mutex<HashMap<String, OrderbookCheckpoint>>>;
type PeerMap = Arc<Mutex<HashMap<SocketAddr, Peer>>>; type PeerMap = Arc<Mutex<HashMap<SocketAddr, Peer>>>;

View File

@ -5,7 +5,7 @@ authors = ["Christian Kamm <mail@ckamm.de>"]
edition = "2021" edition = "2021"
[dependencies] [dependencies]
solana-geyser-connector-lib = { path = "../lib" } mango-feeds-lib = { path = "../lib" }
solana-logger = "~1.14.9" solana-logger = "~1.14.9"
solana-sdk = "~1.14.9" solana-sdk = "~1.14.9"
log = "0.4" log = "0.4"

View File

@ -1,8 +1,8 @@
use { use {
log::*, log::*,
mango_feeds_lib::chain_data::ChainData,
mango_feeds_lib::*,
serde_derive::{Deserialize, Serialize}, serde_derive::{Deserialize, Serialize},
solana_geyser_connector_lib::chain_data::ChainData,
solana_geyser_connector_lib::*,
solana_sdk::pubkey::Pubkey, solana_sdk::pubkey::Pubkey,
std::str::FromStr, std::str::FromStr,
std::{ std::{
@ -18,8 +18,8 @@ use anchor_client::Cluster;
use anchor_lang::Discriminator; use anchor_lang::Discriminator;
use client::{chain_data, health_cache, AccountFetcher, Client, MangoGroupContext}; use client::{chain_data, health_cache, AccountFetcher, Client, MangoGroupContext};
use fixed::types::I80F48; use fixed::types::I80F48;
use mango_feeds_lib::metrics::*;
use mango_v4::state::{MangoAccount, MangoAccountValue, PerpMarketIndex}; use mango_v4::state::{MangoAccount, MangoAccountValue, PerpMarketIndex};
use solana_geyser_connector_lib::metrics::*;
use solana_sdk::commitment_config::CommitmentConfig; use solana_sdk::commitment_config::CommitmentConfig;
use solana_sdk::{account::ReadableAccount, signature::Keypair}; use solana_sdk::{account::ReadableAccount, signature::Keypair};
#[derive(Clone, Debug, Deserialize)] #[derive(Clone, Debug, Deserialize)]