From fc5d00dd6cc545f63c601f1a45149ca04dcb4b5e Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Wed, 4 Aug 2021 17:09:30 +0200 Subject: [PATCH 01/12] fix AssetInfo indexing, it is key based and not index based --- pallets/oracle/src/lib.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pallets/oracle/src/lib.rs b/pallets/oracle/src/lib.rs index d99734711b9..0eae804b150 100644 --- a/pallets/oracle/src/lib.rs +++ b/pallets/oracle/src/lib.rs @@ -240,8 +240,7 @@ pub mod pallet { #[pallet::hooks] impl Hooks> for Pallet { fn on_initialize(block: T::BlockNumber) -> Weight { - for i in 0..AssetsCount::::get() { - let asset_info = AssetsInfo::::get(i); + for (i, asset_info) in AssetsInfo::::iter() { // TODO maybe add a check if price is requested, is less operations? let pre_pruned_prices = PrePrices::::get(i); let mut pre_prices = Vec::new(); @@ -518,7 +517,7 @@ pub mod pallet { } pub fn check_requests() { - for i in 0..AssetsCount::::get() { + for (i, _) in AssetsInfo::::iter() { if Requested::::get(i) { let _ = Self::fetch_price_and_send_signed(&i); } From faf0f9f411842f0ec7cec56ab31f5bcf95473e74 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Wed, 4 Aug 2021 23:59:54 +0200 Subject: [PATCH 02/12] fix typo --- price-feed/run_pyth.nix | 2 +- price-feed/src/main.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/price-feed/run_pyth.nix b/price-feed/run_pyth.nix index b97751620d0..75828785935 100644 --- a/price-feed/run_pyth.nix +++ b/price-feed/run_pyth.nix @@ -28,7 +28,7 @@ in mkShell { packages = [ pythd ]; SOLANA_ENV = "devnet"; shellHook = '' - echo "Running up pyth_tx & puthd" + echo "Running up pyth_tx & pythd" export PYTH_TX_LOG=$(mktemp) pyth_tx -l $PYTH_TX_LOG -d -r api.$SOLANA_ENV.solana.com & export PYTH_TX_PID=$! diff --git a/price-feed/src/main.rs b/price-feed/src/main.rs index 1e991dc1db9..5e7dc12fb24 100644 --- a/price-feed/src/main.rs +++ b/price-feed/src/main.rs @@ -69,7 +69,7 @@ async fn create_subscriptions(pythd_host: &String) -> (Pyth, mpsc::Receiver Date: Thu, 5 Aug 2021 00:01:02 +0200 Subject: [PATCH 03/12] change the price server default port to match oracle pallet expectation --- price-feed/src/opts.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/price-feed/src/opts.rs b/price-feed/src/opts.rs index e53c74e293f..1d5373c6a70 100644 --- a/price-feed/src/opts.rs +++ b/price-feed/src/opts.rs @@ -6,7 +6,7 @@ use clap::{AppSettings, Clap}; pub struct Opts { #[clap(short, long, default_value = "http://127.0.0.1:8910")] pub pythd_host: String, - #[clap(short, long, default_value = "127.0.0.1:8081")] + #[clap(short, long, default_value = "127.0.0.1:3001")] pub listening_address: String } From a4aa8421cea8e8ee81f57f471af643b224d5de21 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Thu, 5 Aug 2021 00:01:55 +0200 Subject: [PATCH 04/12] integrate the current oracle pallet interface in the price server --- Cargo.lock | 2 + price-feed/Cargo.toml | 2 + price-feed/src/asset.rs | 113 +++++++++++++++++++++++++++++++++--- price-feed/src/feed/mod.rs | 11 +++- price-feed/src/feed/pyth.rs | 46 ++++++++------- price-feed/src/main.rs | 75 ++++++++++++++++++------ 6 files changed, 198 insertions(+), 51 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3a7a0574717..320e5f8cba0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5120,10 +5120,12 @@ dependencies = [ "custom_derive", "enum_derive", "env_logger 0.9.0", + "fnv", "futures 0.3.15", "jsonrpc-client-transports 18.0.0", "jsonrpc-core 18.0.0", "jsonrpc-core-client 18.0.0", + "lazy_static", "log 0.4.14", "serde", "serde_json", diff --git a/price-feed/Cargo.toml b/price-feed/Cargo.toml index 8c82c380d56..db7fc38434d 100644 --- a/price-feed/Cargo.toml +++ b/price-feed/Cargo.toml @@ -21,3 +21,5 @@ warp = "0.3" signal-hook = "0.3" signal-hook-tokio = { version = "0.3", features = [ "futures-v0_3" ] } futures = "0.3" +fnv = "1.0.7" +lazy_static = "1.4.0" diff --git a/price-feed/src/asset.rs b/price-feed/src/asset.rs index b35b554b670..bd906efaf5c 100644 --- a/price-feed/src/asset.rs +++ b/price-feed/src/asset.rs @@ -1,15 +1,112 @@ +use serde::Serialize; +use std::{ + collections::{HashMap, HashSet}, + hash::Hasher, + num::ParseIntError, + str::FromStr, +}; + custom_derive! { - #[derive(EnumFromStr, Copy, Clone, PartialEq, Eq, Hash, Debug)] - pub enum Asset { - BTC, - ETH, - LTC, - USD, - } + #[derive(EnumFromStr, Copy, Clone, PartialEq, Eq, Hash, Debug)] + pub enum Asset { + BTC, + ETH, + LTC, + DOGE, + SOL, + LUNA, + AAPL, + BNB, + TSLA, + BCH, + SRM, + AMZN, + GOOG, + NFLX, + XAU, + AMC, + SPY, + GME, + GE, + QQQ, + + USDT, + USDC, + GBP, + EUR, + USD, + } } pub type AssetPair = (Asset, Asset); -pub fn symbol((x, y): AssetPair) -> String { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize)] +#[repr(transparent)] +pub struct AssetPairHash(u64); + +pub enum AssetPairHashError { + NotANumber(ParseIntError), + AssetNotFound, +} + +lazy_static! { + pub static ref VALID_ASSETPAIRS: Vec = { + [ + Asset::BTC, + Asset::ETH, + Asset::LTC, + Asset::DOGE, + Asset::SOL, + Asset::LUNA, + Asset::AAPL, + Asset::BNB, + Asset::TSLA, + Asset::BCH, + Asset::SRM, + Asset::AMZN, + Asset::GOOG, + Asset::NFLX, + Asset::XAU, + Asset::AMC, + Asset::SPY, + Asset::GME, + Asset::GE, + Asset::QQQ, + Asset::USDT, + Asset::USDC, + Asset::GBP, + Asset::EUR, + ] + .iter() + .map(|&x| (x, Asset::USD)) + .collect() + }; + pub static ref ASSETPAIR_HASHES: HashMap = + VALID_ASSETPAIRS.iter().map(|&x| (x, to_hash(&x))).collect(); + pub static ref VALID_ASSETPAIR_HASHES: HashSet = + ASSETPAIR_HASHES.iter().map(|(_, &h)| h).collect(); +} + +impl FromStr for AssetPairHash { + type Err = AssetPairHashError; + fn from_str(s: &str) -> Result { + let asset_pair_hash = + AssetPairHash(FromStr::from_str(s).map_err(|e| AssetPairHashError::NotANumber(e))?); + if VALID_ASSETPAIR_HASHES.contains(&asset_pair_hash) { + Ok(asset_pair_hash) + } else { + Err(AssetPairHashError::AssetNotFound) + } + } +} + +pub fn to_hash(asset_pair: &AssetPair) -> AssetPairHash { + // not secure but we only need this for indexing + let mut hasher = fnv::FnvHasher::default(); + hasher.write(to_symbol(asset_pair).as_bytes()); + AssetPairHash(hasher.finish()) +} + +pub fn to_symbol((x, y): &AssetPair) -> String { format!("{:?}/{:?}", x, y) } diff --git a/price-feed/src/feed/mod.rs b/price-feed/src/feed/mod.rs index 3af1739bb84..039f12bb0bb 100644 --- a/price-feed/src/feed/mod.rs +++ b/price-feed/src/feed/mod.rs @@ -4,11 +4,16 @@ use serde::Serialize; use crate::asset::AssetPair; #[derive(Serialize, Copy, Clone, Debug)] -pub struct TimeStamp(i64); +#[repr(transparent)] +pub struct TimeStamp(pub(crate) i64); + +#[derive(Serialize, Copy, Clone, Debug)] +#[repr(transparent)] +pub struct Price(pub(crate) u64); #[derive(Serialize, Copy, Clone, Debug)] #[repr(transparent)] -pub struct Price(u64); +pub struct Exponent(pub(crate) i32); #[derive(Serialize, Copy, Clone, Debug)] pub struct TimeStamped { @@ -25,5 +30,5 @@ pub enum Feed { pub enum FeedNotification { Opened(Feed, AssetPair), Closed(Feed, AssetPair), - PriceUpdated(Feed, AssetPair, TimeStamped), + PriceUpdated(Feed, AssetPair, TimeStamped<(Price, Exponent)>), } diff --git a/price-feed/src/feed/pyth.rs b/price-feed/src/feed/pyth.rs index b496a41ffd0..2ebb23c51ba 100644 --- a/price-feed/src/feed/pyth.rs +++ b/price-feed/src/feed/pyth.rs @@ -1,7 +1,7 @@ use super::{Feed, FeedNotification, Price, TimeStamped}; use crate::{ - asset::{symbol, AssetPair}, - feed::TimeStamp, + asset::{to_symbol, AssetPair}, + feed::{Exponent, TimeStamp}, }; use chrono::Utc; use jsonrpc_client_transports::{ @@ -22,6 +22,7 @@ struct PythNotification { #[derive(Clone, Debug, Deserialize)] struct PythProductPrice { account: String, + price_exponent: i32, } #[derive(Clone, Debug, Deserialize)] @@ -64,32 +65,29 @@ impl Pyth { } async fn get_product_list(&self) -> Result, PythError> { - let result = self - .client + self.client .call_method::<(), Vec>("get_product_list", "", ()) .await - .map_err(|e| PythError::RpcError(e))?; - log::info!("Products: {:?}", result); - Ok(result) + .map_err(|e| PythError::RpcError(e)) } async fn subscribe( &mut self, output: mpsc::Sender, asset_pair: AssetPair, - account: String, + product_price: PythProductPrice, ) -> Result<(), PythError> { log::info!( "Subscribing to asset pair {:?} from account {:?}", asset_pair, - account + product_price.account ); let mut stream: TypedSubscriptionStream = self .client .subscribe( "subscribe_price", [PythSubscribeParams { - account: account.to_string(), + account: product_price.account.to_string(), }], "notify_price", "", @@ -105,8 +103,8 @@ impl Pyth { match stream.next().await { Some(notification) => match notification { Ok(price_notification) => { - log::info!( - "received price, {:?} = {:?}", + log::debug!( + "received price, {:?}, {:?}", asset_pair, price_notification ); @@ -115,7 +113,10 @@ impl Pyth { Feed::Pyth, asset_pair, TimeStamped { - value: Price(price_notification.price), + value: ( + Price(price_notification.price), + Exponent(product_price.price_exponent), + ), timestamp: TimeStamp(Utc::now().timestamp()), }, )) @@ -123,7 +124,7 @@ impl Pyth { .map_err(|e| PythError::ChannelError(e))?; } _ => { - log::warn!("invalid notification?: {:?}", notification); + log::error!("invalid notification?: {:?}", notification); } }, None => break 'a, @@ -142,19 +143,20 @@ impl Pyth { pub async fn subscribe_to_asset( &mut self, output: &mpsc::Sender, - asset_pair: AssetPair, + asset_pair: &AssetPair, ) -> Result<(), PythError> { - let asset_pair_symbol = symbol(asset_pair); - let products = self.get_product_list().await?; - let price_accounts = products + let asset_pair_symbol = to_symbol(asset_pair); + let product_prices = self + .get_product_list() + .await? .iter() .filter(|p| p.attr_dict.symbol == asset_pair_symbol) .flat_map(|p| p.price.clone()) - .map(|p| p.account.clone()) .collect::>(); - log::info!("Accounts for {:?}: {:?}", asset_pair_symbol, price_accounts); - for account in price_accounts { - self.subscribe(output.clone(), asset_pair, account).await? + log::info!("Accounts for {:?}: {:?}", asset_pair_symbol, product_prices); + for product_price in product_prices { + self.subscribe(output.clone(), *asset_pair, product_price) + .await? } Ok(()) } diff --git a/price-feed/src/main.rs b/price-feed/src/main.rs index 5e7dc12fb24..7f82bde02c4 100644 --- a/price-feed/src/main.rs +++ b/price-feed/src/main.rs @@ -6,11 +6,16 @@ mod opts; extern crate custom_derive; #[macro_use] extern crate enum_derive; +#[macro_use] +extern crate lazy_static; + use crate::{ - asset::{Asset, AssetPair}, + asset::*, feed::{pyth::Pyth, FeedNotification, Price, TimeStamped}, }; +use feed::Exponent; use futures::stream::StreamExt; +use serde::Serialize; use signal_hook::consts::signal::*; use signal_hook_tokio::Signals; use std::{ @@ -30,18 +35,38 @@ use warp::{ Filter, }; +type PriceMap = HashMap>; + async fn run_http_frontend( listening_address: &String, - prices: Arc>>>, + prices: Arc>, ) -> (oneshot::Sender<()>, JoinHandle<()>) { - let get_price = warp::path!("price" / Asset / Asset) + let get_price = warp::path!("price" / AssetPairHash / u128) .and(warp::get()) - .map(move |x, y| { - let asset_pair = (x, y); - match prices.read().unwrap().get(&asset_pair) { - Some(latest_price) => with_status(json(latest_price), StatusCode::OK), - // TODO: how to 404 without content??? - None => with_status(json(&"NOT_FOUND"), StatusCode::NOT_FOUND), + .map(move |asset_pair_hash, _request_id| { + // TODO: What is the request_id useful for (comming from oracle pallet)? + match prices.read().unwrap().get(&asset_pair_hash) { + Some(&TimeStamped { + value: (Price(p), Exponent(q)), + timestamp: _, + }) => { + /* + The oracle pallet is expecting a price in USD cents. + While this server handle any asset pair. + It make this part of code very specific... + Shouldn't we use the unit of value + exponent for any asset pair? + */ + #[derive(Serialize, Copy, Clone, Debug)] + #[repr(transparent)] + pub struct USDPrice { + pub USD: Price, + } + let usd_unit_exponent = q + 2; + let usd_price = Price(p / u64::pow(10u64, i32::abs(usd_unit_exponent) as u32)); + + with_status(json(&USDPrice { USD: usd_price }), StatusCode::OK) + } + None => with_status(json(&()), StatusCode::NOT_FOUND), } }); @@ -72,9 +97,9 @@ async fn create_subscriptions(pythd_host: &String) -> (Pyth, mpsc::Receiver>>> = - Arc::new(RwLock::new(HashMap::new())); + let prices: Arc> = Arc::new(RwLock::new(HashMap::new())); let (server_shutdown, server_handle) = run_http_frontend(&opts.listening_address, prices.clone()).await; @@ -119,16 +147,27 @@ async fn main() { message = feed_out.recv() => { match message { Some(notification) => { - log::info!("notification received: {:?}", notification); + log::debug!("notification received: {:?}", notification); /* TODO: how are we going to handles X feeds: - do we just expose every one of them from their own endpoint? - do we merge the prices (median?), if so, merging will depend on timestamp? On notification close, do we remove the price as we are no longer getting new prices? */ - if let FeedNotification::PriceUpdated(_, a, p) = notification { - prices.write().expect("failed to acquire write lock...").insert(a, p); - }; + match notification { + FeedNotification::Opened(f, a) => { + log::info!("{:?} has opened a channel for {:?}", f, a); + } + FeedNotification::Closed(f, a) => { + log::info!("{:?} has closed a channel for {:?}", f, a); + } + FeedNotification::PriceUpdated(_, a, p) => { + prices + .write() + .expect("failed to acquire write lock...") + .insert(*ASSETPAIR_HASHES.get(&a).expect("impossible"), p); + } + } } None => { log::info!("no more feed available... exiting handler."); From 9e2dc86f7b0089234311db4750309bc99ffea244 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Thu, 5 Aug 2021 00:02:13 +0200 Subject: [PATCH 05/12] add price server documentation --- price-feed/README.md | 26 ++++++++++++++++++++++++++ price-feed/images/normal_run.png | Bin 0 -> 404222 bytes 2 files changed, 26 insertions(+) create mode 100644 price-feed/README.md create mode 100644 price-feed/images/normal_run.png diff --git a/price-feed/README.md b/price-feed/README.md new file mode 100644 index 00000000000..4d6d65cf9b6 --- /dev/null +++ b/price-feed/README.md @@ -0,0 +1,26 @@ +# Draft + +Currently, in the pallet, the price of an asset is expressed in USD cents, it's not a ratio between two assets like in exchanges. +The price server handle arbitrary asset pair instead of fixing the denominator to USD, e.g. ETH/BTC, ADA/BTC... + +We currently use an arbitrary `asset_id` in the oracle pallet. +To avoid an extra layer of indirection between the pallet and the price server, +the current version assume that the `asset_id` is `FNV1A64(Symbol(AssetPair(X, Y)))` where `Symbol(AssetPair(X, Y)) = "X/Y"`: +- `asset_id(AssetPair(DOGE, USD)) = FNV1A64(Symbol(AssetPair(DOGE, USD))) = 4273408557542323723` +- `asset_id(AssetPair(LUNA, USD)) = FNV1A64(Symbol(AssetPair(LUNA, USD))) = 3340859369462710808` +- `asset_id(AssetPair(ETH, USD)) = FNV1A64(Symbol(AssetPair(ETH, USD))) = 17646658738355831635` +- `asset_id(AssetPair(SOL, USD)) = FNV1A64(Symbol(AssetPair(SOL, USD))) = 10214562193576803066` +- `asset_id(AssetPair(LTC, USD)) = FNV1A64(Symbol(AssetPair(LTC, USD))) = 3321725485492231977` +- `asset_id(AssetPair(BTC, USD)) = FNV1A64(Symbol(AssetPair(BTC, USD))) = 6354621323601249647` + +# Getting started + +1. Run an instance of the composable node. +2. Run `pythd` along with `pyth_tx` using the provided nix script: + - Open a new terminal and run `nix-shell run_pyth.nix`. + - A bash function `run` is now available to start `pythd/pyth_tx` + - Whenever you exit the terminal after having ran the `run` function, the two instances are going to be shutdown. + - You have accesss to both `pythd/pyth_tx` logs by using $PYTHD_LOG and $PYTH_TX_LOG +3. Run the price server, assuming you are running `RUST_LOG=info cargo run --bin price-feed` ![img not found](images/normal_run.png). +4. Go on your local [substrate panel](https://polkadot.js.org/apps) and add a new asset, make sure to use one of the `FNV1A64` hash as `asset_id`. +5. Trigger a price request for each `asset_id` you created and watch the oracle state machine progress. diff --git a/price-feed/images/normal_run.png b/price-feed/images/normal_run.png new file mode 100644 index 0000000000000000000000000000000000000000..b849bddf0c502c6508ad20da23ade7671f7fc704 GIT binary patch literal 404222 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
clEC;5uYZ8Z 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

WJBW#s11xft7wf?>9{U1-S(n$mw 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

jiTlY$1UOxg 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 Date: Thu, 5 Aug 2021 11:05:20 +0200 Subject: [PATCH 06/12] fix missing keystore setup in nix script for pyth --- price-feed/run_pyth.nix | 50 ++++++++++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/price-feed/run_pyth.nix b/price-feed/run_pyth.nix index 75828785935..bc71a933e90 100644 --- a/price-feed/run_pyth.nix +++ b/price-feed/run_pyth.nix @@ -20,28 +20,48 @@ let ''; installPhase = '' mkdir -p $out/bin + mv pyth $out/bin mv pythd $out/bin mv pyth_tx $out/bin + mv ../pctest/init_key_store.sh $out/bin ''; }; in mkShell { - packages = [ pythd ]; + buildInputs = [ pythd ]; SOLANA_ENV = "devnet"; shellHook = '' - echo "Running up pyth_tx & pythd" - export PYTH_TX_LOG=$(mktemp) - pyth_tx -l $PYTH_TX_LOG -d -r api.$SOLANA_ENV.solana.com & - export PYTH_TX_PID=$! - export PYTHD_LOG=$(mktemp) - pythd -l $PYTHD_LOG -d -r api.$SOLANA_ENV.solana.com & - export PYTHD_PID=$! - teardown() { - echo "Shuting down pyth_tx & pythd"; - kill -2 $PYTHD_PID - kill -2 $PYTH_TX_PID - rm $PYTH_TX_LOG - rm $PYTHD_LOG + export PYTHD_KEYSTORE=$HOME/.pythd + + function init_keystore() { + echo "Creating key store" + rm -rf $PYTHD_KEYSTORE || true + mkdir -m 600 -p $PYTHD_KEYSTORE + echo "Initializing key store" + ${pythd}/bin/pyth init_key -k $PYTHD_KEYSTORE + echo "Populating key store" + ${pythd}/bin/init_key_store.sh $SOLANA_ENV $PYTHD_KEYSTORE + } + + function run() { + echo "Running pyth_tx" + export PYTH_TX_LOG=$(mktemp) + ${pythd}/bin/pyth_tx -l $PYTH_TX_LOG -d -r api.$SOLANA_ENV.solana.com & + export PYTH_TX_PID=$! + + echo "Running pythd" + export PYTHD_LOG=$(mktemp) + ${pythd}/bin/pythd -k $PYTHD_KEYSTORE -l $PYTHD_LOG -d -r api.$SOLANA_ENV.solana.com & + export PYTHD_PID=$! + + function teardown() { + echo "Shuting down pyth_tx & pythd"; + kill -2 $PYTHD_PID + kill -2 $PYTH_TX_PID + rm $PYTH_TX_LOG + rm $PYTHD_LOG + } + + trap teardown EXIT } - trap teardown EXIT ''; } From b6e0582e140389ec334208f53c691f9ba9238c9b Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Thu, 5 Aug 2021 13:55:00 +0200 Subject: [PATCH 07/12] filter notification for trading symbols only --- price-feed/src/feed/pyth.rs | 39 ++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/price-feed/src/feed/pyth.rs b/price-feed/src/feed/pyth.rs index 2ebb23c51ba..1ee9b98973f 100644 --- a/price-feed/src/feed/pyth.rs +++ b/price-feed/src/feed/pyth.rs @@ -14,8 +14,17 @@ use tokio::{ task::JoinHandle, }; +#[derive(PartialEq, Eq, Debug, Deserialize)] +#[serde(rename_all = "lowercase")] +enum SymbolStatus { + Trading, + Halted, + Unknown, +} + #[derive(Debug, Deserialize)] struct PythNotification { + status: SymbolStatus, price: u64, } @@ -108,20 +117,22 @@ impl Pyth { asset_pair, price_notification ); - output - .send(FeedNotification::PriceUpdated( - Feed::Pyth, - asset_pair, - TimeStamped { - value: ( - Price(price_notification.price), - Exponent(product_price.price_exponent), - ), - timestamp: TimeStamp(Utc::now().timestamp()), - }, - )) - .await - .map_err(|e| PythError::ChannelError(e))?; + if price_notification.status == SymbolStatus::Trading { + output + .send(FeedNotification::PriceUpdated( + Feed::Pyth, + asset_pair, + TimeStamped { + value: ( + Price(price_notification.price), + Exponent(product_price.price_exponent), + ), + timestamp: TimeStamp(Utc::now().timestamp()), + }, + )) + .await + .map_err(|e| PythError::ChannelError(e))?; + } } _ => { log::error!("invalid notification?: {:?}", notification); From 85ccdfe5c03af7e67ae38fc76b42344c93186e74 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Thu, 5 Aug 2021 13:55:58 +0200 Subject: [PATCH 08/12] add asset_id endpoint for asset pair --- price-feed/src/main.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/price-feed/src/main.rs b/price-feed/src/main.rs index 7f82bde02c4..5aab53488cf 100644 --- a/price-feed/src/main.rs +++ b/price-feed/src/main.rs @@ -41,6 +41,10 @@ async fn run_http_frontend( listening_address: &String, prices: Arc>, ) -> (oneshot::Sender<()>, JoinHandle<()>) { + let get_asset_id = warp::path!("asset_id" / Asset / Asset) + .and(warp::get()) + .map(|x, y| json(&to_hash(&(x, y)))); + let get_price = warp::path!("price" / AssetPairHash / u128) .and(warp::get()) .map(move |asset_pair_hash, _request_id| { @@ -72,7 +76,7 @@ async fn run_http_frontend( // Channel that will allow warp to gracefully shutdown when a signal is comming. let (tx, rx) = oneshot::channel::<()>(); - let (_, server) = warp::serve(get_price).bind_with_graceful_shutdown( + let (_, server) = warp::serve(get_price.or(get_asset_id)).bind_with_graceful_shutdown( SocketAddr::from_str(listening_address).expect("invalid listening address."), async { rx.await.ok(); From 1693569c3545f42a24b796672e067e0fbbf88113 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Thu, 5 Aug 2021 14:07:11 +0200 Subject: [PATCH 09/12] refactoring --- price-feed/src/asset.rs | 35 ++++--- price-feed/src/backend.rs | 150 ++++++++++++++++++++++++++++++ price-feed/src/cache.rs | 9 ++ price-feed/src/feed/mod.rs | 14 +-- price-feed/src/feed/pyth.rs | 150 ++++++++++++++++++++++-------- price-feed/src/frontend.rs | 105 +++++++++++++++++++++ price-feed/src/main.rs | 179 +++++++----------------------------- 7 files changed, 434 insertions(+), 208 deletions(-) create mode 100644 price-feed/src/backend.rs create mode 100644 price-feed/src/cache.rs create mode 100644 price-feed/src/frontend.rs diff --git a/price-feed/src/asset.rs b/price-feed/src/asset.rs index bd906efaf5c..7cc2fb2cd43 100644 --- a/price-feed/src/asset.rs +++ b/price-feed/src/asset.rs @@ -38,7 +38,8 @@ custom_derive! { } } -pub type AssetPair = (Asset, Asset); +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] +pub struct AssetPair(Asset, Asset); #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize)] #[repr(transparent)] @@ -78,12 +79,12 @@ lazy_static! { Asset::EUR, ] .iter() - .map(|&x| (x, Asset::USD)) + .map(|&x| AssetPair(x, Asset::USD)) .collect() }; pub static ref ASSETPAIR_HASHES: HashMap = - VALID_ASSETPAIRS.iter().map(|&x| (x, to_hash(&x))).collect(); - pub static ref VALID_ASSETPAIR_HASHES: HashSet = + VALID_ASSETPAIRS.iter().map(|&x| (x, x.hash())).collect(); + pub static ref ASSETPAIR_HASHES_VALUES: HashSet = ASSETPAIR_HASHES.iter().map(|(_, &h)| h).collect(); } @@ -91,8 +92,8 @@ impl FromStr for AssetPairHash { type Err = AssetPairHashError; fn from_str(s: &str) -> Result { let asset_pair_hash = - AssetPairHash(FromStr::from_str(s).map_err(|e| AssetPairHashError::NotANumber(e))?); - if VALID_ASSETPAIR_HASHES.contains(&asset_pair_hash) { + AssetPairHash(FromStr::from_str(s).map_err(AssetPairHashError::NotANumber)?); + if ASSETPAIR_HASHES_VALUES.contains(&asset_pair_hash) { Ok(asset_pair_hash) } else { Err(AssetPairHashError::AssetNotFound) @@ -100,13 +101,19 @@ impl FromStr for AssetPairHash { } } -pub fn to_hash(asset_pair: &AssetPair) -> AssetPairHash { - // not secure but we only need this for indexing - let mut hasher = fnv::FnvHasher::default(); - hasher.write(to_symbol(asset_pair).as_bytes()); - AssetPairHash(hasher.finish()) -} +impl AssetPair { + pub(crate) fn new(x: Asset, y: Asset) -> Self { + AssetPair(x, y) + } -pub fn to_symbol((x, y): &AssetPair) -> String { - format!("{:?}/{:?}", x, y) + pub fn hash(&self) -> AssetPairHash { + // not secure but we only need this for indexing + let mut hasher = fnv::FnvHasher::default(); + hasher.write(self.symbol().as_bytes()); + AssetPairHash(hasher.finish()) + } + + pub fn symbol(&self) -> String { + format!("{:?}/{:?}", self.0, self.1) + } } diff --git a/price-feed/src/backend.rs b/price-feed/src/backend.rs new file mode 100644 index 00000000000..4bf0f3308d2 --- /dev/null +++ b/price-feed/src/backend.rs @@ -0,0 +1,150 @@ +use crate::{ + asset::*, + cache::{PriceCache, PriceCacheEntry}, + feed::{pyth::Pyth, FeedNotification}, +}; +use futures::stream::{Fuse, StreamExt}; +use signal_hook_tokio::SignalsInfo; +use std::sync::{Arc, RwLock}; +use tokio::{sync::mpsc, task::JoinHandle}; +use url::Url; + +#[derive(PartialEq, Eq, Copy, Clone, Debug)] +enum FeedNotificationAction { + UpdateCache(AssetPairHash, PriceCacheEntry), + NoOp, +} + +pub struct Backend { + pub shutdown_handle: JoinHandle<()>, +} + +/* TODO: how are we going to handles X feeds: + - do we just expose every one of them from their own endpoint? + - do we merge the prices (median?), if so, merging will depend on timestamp? + On notification close, do we remove the price as we are no + longer getting new prices? +*/ +fn feed_notification_action(feed_notification: &FeedNotification) -> FeedNotificationAction { + match feed_notification { + FeedNotification::Opened(f, a) => { + log::info!("{:?} has opened a channel for {:?}", f, a); + FeedNotificationAction::NoOp + } + FeedNotification::Closed(f, a) => { + log::info!("{:?} has closed a channel for {:?}", f, a); + FeedNotificationAction::NoOp + } + FeedNotification::PriceUpdated(_, a, p) => FeedNotificationAction::UpdateCache( + *ASSETPAIR_HASHES.get(&a).expect("unknown asset pair hash"), + *p, + ), + } +} + +impl Backend { + pub async fn new( + prices_cache: Arc>, + mut feed_channel: mpsc::Receiver, + mut shutdown_trigger: Fuse, + ) -> Backend { + let backend = async move { + 'a: loop { + tokio::select! { + _ = shutdown_trigger.next() => { + log::info!("terminating signal received."); + break 'a; + } + message = feed_channel.recv() => { + match message { + Some(feed_notification) => { + log::debug!("notification received: {:?}", feed_notification); + match feed_notification_action(&feed_notification) { + FeedNotificationAction::UpdateCache(k, v) => { + prices_cache + .write() + .expect("failed to acquire write lock...") + .insert( + k, + v, + ); + } + FeedNotificationAction::NoOp => {} + } + } + None => { + log::info!("no more feed available... exiting handler."); + break 'a; + } + } + } + } + } + }; + + let shutdown_handle = tokio::spawn(backend); + + Backend { shutdown_handle } + } +} + +// TODO: manage multiple feeds +pub async fn run_pyth_feed(pythd_host: &String) -> (Pyth, mpsc::Receiver) { + /* Its important to drop the initial feed_in as it will be cloned for all subsequent tasks + The received won't get notified if all cloned senders are closed but not the 'main' one. + */ + let (feed_in, feed_out) = mpsc::channel::(128); + + let mut pyth = Pyth::new(&Url::parse(&pythd_host).expect("invalid pythd host address.")) + .await + .expect("connection to pythd failed"); + + // TODO: subscribe to all asset prices? cli configurable? + log::info!("successfully connected to pythd."); + for asset_pair in VALID_ASSETPAIRS.iter() { + pyth.subscribe_to_asset(&feed_in, asset_pair) + .await + .expect("failed to subscribe to asset"); + } + + (pyth, feed_out) +} + +#[cfg(test)] +mod tests { + use crate::{ + asset::VALID_ASSETPAIRS, + backend::{feed_notification_action, FeedNotificationAction}, + feed::{Exponent, Feed, FeedNotification, Price, TimeStamp, TimeStamped}, + }; + + #[test] + fn test_feed_notification_action() { + let feed = Feed::Pyth; + let timestamped_price = TimeStamped { + value: (Price(0xCAFEBABE), Exponent(0x1337)), + timestamp: TimeStamp(0xDEADC0DE), + }; + VALID_ASSETPAIRS.iter().for_each(|&asset_pair| { + let asset_pair_hash = asset_pair.hash(); + [ + ( + FeedNotification::Opened(feed, asset_pair), + FeedNotificationAction::NoOp, + ), + ( + FeedNotification::Closed(feed, asset_pair), + FeedNotificationAction::NoOp, + ), + ( + FeedNotification::PriceUpdated(feed, asset_pair, timestamped_price), + FeedNotificationAction::UpdateCache(asset_pair_hash, timestamped_price), + ), + ] + .iter() + .for_each(|&(notification, expected_action)| { + assert_eq!(feed_notification_action(¬ification), expected_action); + }); + }); + } +} diff --git a/price-feed/src/cache.rs b/price-feed/src/cache.rs new file mode 100644 index 00000000000..24ad381f64a --- /dev/null +++ b/price-feed/src/cache.rs @@ -0,0 +1,9 @@ +use crate::{ + asset::AssetPairHash, + feed::{Exponent, Price, TimeStamped}, +}; +use std::collections::HashMap; + +pub type PriceCacheEntry = TimeStamped<(Price, Exponent)>; + +pub type PriceCache = HashMap; diff --git a/price-feed/src/feed/mod.rs b/price-feed/src/feed/mod.rs index 039f12bb0bb..325116fa903 100644 --- a/price-feed/src/feed/mod.rs +++ b/price-feed/src/feed/mod.rs @@ -1,32 +1,32 @@ pub mod pyth; -use serde::Serialize; +use serde::{Deserialize, Serialize}; use crate::asset::AssetPair; -#[derive(Serialize, Copy, Clone, Debug)] +#[derive(Serialize, PartialEq, Eq, Copy, Clone, Debug)] #[repr(transparent)] pub struct TimeStamp(pub(crate) i64); -#[derive(Serialize, Copy, Clone, Debug)] +#[derive(Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Debug)] #[repr(transparent)] pub struct Price(pub(crate) u64); -#[derive(Serialize, Copy, Clone, Debug)] +#[derive(Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Debug)] #[repr(transparent)] pub struct Exponent(pub(crate) i32); -#[derive(Serialize, Copy, Clone, Debug)] +#[derive(Serialize, PartialEq, Eq, Copy, Clone, Debug)] pub struct TimeStamped { pub value: T, pub timestamp: TimeStamp, } -#[derive(PartialEq, Eq, Hash, Debug)] +#[derive(PartialEq, Eq, Copy, Clone, Hash, Debug)] pub enum Feed { Pyth, } -#[derive(Debug)] +#[derive(PartialEq, Eq, Copy, Clone, Debug)] pub enum FeedNotification { Opened(Feed, AssetPair), Closed(Feed, AssetPair), diff --git a/price-feed/src/feed/pyth.rs b/price-feed/src/feed/pyth.rs index 1ee9b98973f..9ef0f7a1fd0 100644 --- a/price-feed/src/feed/pyth.rs +++ b/price-feed/src/feed/pyth.rs @@ -1,37 +1,37 @@ use super::{Feed, FeedNotification, Price, TimeStamped}; use crate::{ - asset::{to_symbol, AssetPair}, + asset::AssetPair, feed::{Exponent, TimeStamp}, }; use chrono::Utc; +use futures::stream::StreamExt; use jsonrpc_client_transports::{ transports::ws::connect, RpcError, TypedClient, TypedSubscriptionStream, }; -use jsonrpc_core_client::futures::StreamExt; use serde::{Deserialize, Serialize}; use tokio::{ sync::mpsc::{self, error::SendError}, task::JoinHandle, }; -#[derive(PartialEq, Eq, Debug, Deserialize)] +#[derive(PartialEq, Eq, Copy, Clone, Debug, Deserialize)] #[serde(rename_all = "lowercase")] -enum SymbolStatus { +enum PythSymbolStatus { Trading, Halted, Unknown, } -#[derive(Debug, Deserialize)] -struct PythNotification { - status: SymbolStatus, - price: u64, +#[derive(Copy, Clone, Debug, Deserialize)] +struct PythNotifyPrice { + status: PythSymbolStatus, + price: Price, } #[derive(Clone, Debug, Deserialize)] struct PythProductPrice { account: String, - price_exponent: i32, + price_exponent: Exponent, } #[derive(Clone, Debug, Deserialize)] @@ -62,11 +62,37 @@ pub struct Pyth { handles: Vec>>, } +#[derive(PartialEq, Eq, Copy, Clone, Debug)] +enum PythNotifyPriceAction { + YieldFeedNotification(FeedNotification), + NoOp, +} + +fn notify_price_action( + asset_pair: &AssetPair, + product_price: &PythProductPrice, + notify_price: &PythNotifyPrice, + timestamp: &TimeStamp, +) -> PythNotifyPriceAction { + if notify_price.status == PythSymbolStatus::Trading { + PythNotifyPriceAction::YieldFeedNotification(FeedNotification::PriceUpdated( + Feed::Pyth, + *asset_pair, + TimeStamped { + value: (notify_price.price, product_price.price_exponent), + timestamp: *timestamp, + }, + )) + } else { + PythNotifyPriceAction::NoOp + } +} + impl Pyth { pub async fn new(url: &url::Url) -> Result { let client = connect::(url) .await - .map_err(|e| PythError::RpcError(e))?; + .map_err(PythError::RpcError)?; Ok(Pyth { client, handles: Vec::new(), @@ -77,7 +103,7 @@ impl Pyth { self.client .call_method::<(), Vec>("get_product_list", "", ()) .await - .map_err(|e| PythError::RpcError(e)) + .map_err(PythError::RpcError) } async fn subscribe( @@ -91,7 +117,7 @@ impl Pyth { asset_pair, product_price.account ); - let mut stream: TypedSubscriptionStream = self + let mut stream: TypedSubscriptionStream = self .client .subscribe( "subscribe_price", @@ -102,49 +128,50 @@ impl Pyth { "", "", ) - .map_err(|e| PythError::RpcError(e))?; + .map_err(PythError::RpcError)?; let join_handle = tokio::spawn(async move { output .send(FeedNotification::Opened(Feed::Pyth, asset_pair)) .await - .map_err(|e| PythError::ChannelError(e))?; + .map_err(PythError::ChannelError)?; 'a: loop { match stream.next().await { - Some(notification) => match notification { - Ok(price_notification) => { - log::debug!( - "received price, {:?}, {:?}", - asset_pair, - price_notification - ); - if price_notification.status == SymbolStatus::Trading { + Some(Ok(notify_price)) => { + log::debug!( + "received notify_price, {:?}, {:?}", + asset_pair, + notify_price + ); + let timestamp = TimeStamp(Utc::now().timestamp()); + match notify_price_action( + &asset_pair, + &product_price, + ¬ify_price, + ×tamp, + ) { + PythNotifyPriceAction::YieldFeedNotification(feed_notification) => { output - .send(FeedNotification::PriceUpdated( - Feed::Pyth, - asset_pair, - TimeStamped { - value: ( - Price(price_notification.price), - Exponent(product_price.price_exponent), - ), - timestamp: TimeStamp(Utc::now().timestamp()), - }, - )) + .send(feed_notification) .await - .map_err(|e| PythError::ChannelError(e))?; + .map_err(PythError::ChannelError)?; + } + PythNotifyPriceAction::NoOp => { + // TODO: should we close the feed if the received price don't yield a price update? + // e.g. the SymbolStatus != Trading } } - _ => { - log::error!("invalid notification?: {:?}", notification); - } - }, + } + Some(Err(e)) => { + log::error!("unexpected rpc error: {:?}", e); + break 'a; + } None => break 'a, } } output .send(FeedNotification::Closed(Feed::Pyth, asset_pair)) .await - .map_err(|e| PythError::ChannelError(e))?; + .map_err(PythError::ChannelError)?; Ok(()) }); self.handles.push(join_handle); @@ -156,7 +183,7 @@ impl Pyth { output: &mpsc::Sender, asset_pair: &AssetPair, ) -> Result<(), PythError> { - let asset_pair_symbol = to_symbol(asset_pair); + let asset_pair_symbol = asset_pair.symbol(); let product_prices = self .get_product_list() .await? @@ -176,3 +203,46 @@ impl Pyth { self.handles.iter().for_each(drop); } } + +#[cfg(test)] +mod tests { + use crate::{asset::*, feed::FeedNotification}; + + use super::*; + + #[test] + fn test_notify_price_action() { + let account = "irrelevant".to_string(); + let product_price = PythProductPrice { + account, + price_exponent: Exponent(0x1337), + }; + let price = Price(0xCAFEBABE); + let timestamp = TimeStamp(0xDEADC0DE); + VALID_ASSETPAIRS.iter().for_each(|asset_pair| { + [ + (PythSymbolStatus::Halted, PythNotifyPriceAction::NoOp), + (PythSymbolStatus::Unknown, PythNotifyPriceAction::NoOp), + ( + PythSymbolStatus::Trading, + PythNotifyPriceAction::YieldFeedNotification(FeedNotification::PriceUpdated( + Feed::Pyth, + *asset_pair, + TimeStamped { + value: (price, product_price.price_exponent), + timestamp, + }, + )), + ), + ] + .iter() + .for_each(|&(status, expected_action)| { + let notify_price = PythNotifyPrice { status, price }; + assert_eq!( + expected_action, + notify_price_action(asset_pair, &product_price, ¬ify_price, ×tamp) + ) + }); + }); + } +} diff --git a/price-feed/src/frontend.rs b/price-feed/src/frontend.rs new file mode 100644 index 00000000000..72052c09e88 --- /dev/null +++ b/price-feed/src/frontend.rs @@ -0,0 +1,105 @@ +use crate::{ + asset::{Asset, AssetPair, AssetPairHash, ASSETPAIR_HASHES}, + cache::PriceCache, + feed::{Exponent, Price, TimeStamped}, +}; +use futures::channel::oneshot; +use serde::Serialize; +use std::{ + net::SocketAddr, + str::FromStr, + sync::{Arc, RwLock, RwLockReadGuard}, +}; +use tokio::task::JoinHandle; +use warp::{ + hyper::StatusCode, + reply::{self, Json, WithStatus}, + Filter, +}; + +pub struct Frontend { + pub shutdown_trigger: oneshot::Sender<()>, + pub shutdown_handle: JoinHandle<()>, +} + +impl Frontend { + pub async fn new(listening_address: &String, prices_cache: Arc>) -> Self { + let get_asset_id_endpoint = warp::path!("asset_id" / Asset / Asset) + .and(warp::get()) + .map(get_asset_id); + + let get_price_endpoint = warp::path!("price" / AssetPairHash / u128) + .and(warp::get()) + .map(move |asset_pair_hash, _request_id| { + get_price( + prices_cache + .clone() + .read() + .expect("could not acquire read lock"), + asset_pair_hash, + _request_id, + ) + }); + + let (shutdown_trigger, shutdown) = oneshot::channel::<()>(); + let (_, server) = warp::serve(get_price_endpoint.or(get_asset_id_endpoint)) + .bind_with_graceful_shutdown( + SocketAddr::from_str(listening_address).expect("invalid listening address."), + async { + shutdown.await.ok(); + }, + ); + + let shutdown_handle = tokio::spawn(server); + + Frontend { + shutdown_trigger, + shutdown_handle, + } + } +} + +fn get_asset_id(x: Asset, y: Asset) -> WithStatus { + match ASSETPAIR_HASHES.get(&AssetPair::new(x, y)) { + Some(valid_asset_pair_hash) => { + reply::with_status(reply::json(valid_asset_pair_hash), StatusCode::OK) + } + None => reply::with_status(reply::json(&()), StatusCode::BAD_REQUEST), + } +} + +/* + The oracle pallet is expecting a price in USD cents. + While this server handle any asset pair. + It make this part of code very specific... + Shouldn't we use the unit of value + exponent for any asset pair? + + Also, the price might be outdated, we added the timestamp value to it. + Should the offchain worker handle this or should we put some kind of timeout + here and wipe the cached value? +*/ +fn get_price( + prices: RwLockReadGuard, + asset_pair_hash: AssetPairHash, + _request_id: u128, +) -> WithStatus { + // TODO: What is the request_id useful for (comming from oracle pallet)? + match prices.get(&asset_pair_hash) { + Some(&TimeStamped { + value: (Price(p), Exponent(q)), + timestamp: _, + }) => { + #[derive(Serialize, Copy, Clone, Debug)] + #[serde(rename_all = "UPPERCASE")] + #[repr(transparent)] + pub struct USDPrice { + pub usd: Price, + } + let usd_unit_exponent = q + 2; + let usd_price = Price(p / u64::pow(10u64, i32::abs(usd_unit_exponent) as u32)); + + reply::with_status(reply::json(&USDPrice { usd: usd_price }), StatusCode::OK) + } + None => reply::with_status(reply::json(&()), StatusCode::NOT_FOUND), + } +} diff --git a/price-feed/src/main.rs b/price-feed/src/main.rs index 5aab53488cf..e3d600777fc 100644 --- a/price-feed/src/main.rs +++ b/price-feed/src/main.rs @@ -1,5 +1,8 @@ mod asset; +mod backend; +mod cache; mod feed; +mod frontend; mod opts; #[macro_use] @@ -11,105 +14,17 @@ extern crate lazy_static; use crate::{ asset::*, - feed::{pyth::Pyth, FeedNotification, Price, TimeStamped}, + backend::{run_pyth_feed, Backend}, + cache::PriceCache, + frontend::Frontend, }; -use feed::Exponent; use futures::stream::StreamExt; -use serde::Serialize; use signal_hook::consts::signal::*; use signal_hook_tokio::Signals; use std::{ collections::HashMap, - net::SocketAddr, - str::FromStr, sync::{Arc, RwLock}, }; -use tokio::{ - sync::{mpsc, oneshot}, - task::JoinHandle, -}; -use url::Url; -use warp::{ - hyper::StatusCode, - reply::{json, with_status}, - Filter, -}; - -type PriceMap = HashMap>; - -async fn run_http_frontend( - listening_address: &String, - prices: Arc>, -) -> (oneshot::Sender<()>, JoinHandle<()>) { - let get_asset_id = warp::path!("asset_id" / Asset / Asset) - .and(warp::get()) - .map(|x, y| json(&to_hash(&(x, y)))); - - let get_price = warp::path!("price" / AssetPairHash / u128) - .and(warp::get()) - .map(move |asset_pair_hash, _request_id| { - // TODO: What is the request_id useful for (comming from oracle pallet)? - match prices.read().unwrap().get(&asset_pair_hash) { - Some(&TimeStamped { - value: (Price(p), Exponent(q)), - timestamp: _, - }) => { - /* - The oracle pallet is expecting a price in USD cents. - While this server handle any asset pair. - It make this part of code very specific... - Shouldn't we use the unit of value + exponent for any asset pair? - */ - #[derive(Serialize, Copy, Clone, Debug)] - #[repr(transparent)] - pub struct USDPrice { - pub USD: Price, - } - let usd_unit_exponent = q + 2; - let usd_price = Price(p / u64::pow(10u64, i32::abs(usd_unit_exponent) as u32)); - - with_status(json(&USDPrice { USD: usd_price }), StatusCode::OK) - } - None => with_status(json(&()), StatusCode::NOT_FOUND), - } - }); - - // Channel that will allow warp to gracefully shutdown when a signal is comming. - let (tx, rx) = oneshot::channel::<()>(); - let (_, server) = warp::serve(get_price.or(get_asset_id)).bind_with_graceful_shutdown( - SocketAddr::from_str(listening_address).expect("invalid listening address."), - async { - rx.await.ok(); - }, - ); - - // Allow us to join the shutdown later. - let server_handle = tokio::spawn(server); - - (tx, server_handle) -} - -// TODO: manage multiple feeds -async fn create_subscriptions(pythd_host: &String) -> (Pyth, mpsc::Receiver) { - /* Its important to drop the initial feed_in as it will be cloned for all subsequent tasks - The received won't get notified if all cloned senders are closed but not the 'main' one. - */ - let (feed_in, feed_out) = mpsc::channel::(128); - - let mut pyth = Pyth::new(&Url::parse(&pythd_host).expect("invalid pythd host address.")) - .await - .expect("connection to pythd failed"); - - // TODO: subscribe to all asset prices? cli configurable? - log::info!("successfully connected to pythd."); - for asset_pair in VALID_ASSETPAIRS.iter() { - pyth.subscribe_to_asset(&feed_in, asset_pair) - .await - .expect("failed to subscribe to asset"); - } - - (pyth, feed_out) -} #[tokio::main] async fn main() { @@ -121,67 +36,37 @@ async fn main() { log::info!("AssetPair{:?} = AssetId({:?})", asset_pair, asset_pair_hash); } - let (pyth, mut feed_out) = create_subscriptions(&opts.pythd_host).await; + let prices_cache: Arc> = Arc::new(RwLock::new(HashMap::new())); - let prices: Arc> = Arc::new(RwLock::new(HashMap::new())); + let (pyth, pyth_feed) = run_pyth_feed(&opts.pythd_host).await; - let (server_shutdown, server_handle) = - run_http_frontend(&opts.listening_address, prices.clone()).await; + let backend_shutdown_trigger: futures::stream::Fuse = + Signals::new(&[SIGTERM, SIGINT, SIGQUIT]) + .expect("could not create signals stream") + .fuse(); - let mut signals = Signals::new(&[SIGTERM, SIGINT, SIGQUIT]) - .expect("could not create signals stream") - .fuse(); + let backend = Backend::new(prices_cache.clone(), pyth_feed, backend_shutdown_trigger).await; + let frontend = Frontend::new(&opts.listening_address, prices_cache.clone()).await; - let terminate = async { - log::info!("terminating pyth subscriptions..."); - pyth.terminate().await; - log::info!("signaling warp for termination..."); - server_shutdown.send(()).unwrap(); - log::info!("waiting for warp to terminate..."); - server_handle.await.unwrap(); - }; + backend + .shutdown_handle + .await + .expect("oop, something went wrong"); - 'a: loop { - tokio::select! { - _ = signals.next() => { - log::info!("terminating signal received."); - terminate.await; - break 'a; - } - message = feed_out.recv() => { - match message { - Some(notification) => { - log::debug!("notification received: {:?}", notification); - /* TODO: how are we going to handles X feeds: - - do we just expose every one of them from their own endpoint? - - do we merge the prices (median?), if so, merging will depend on timestamp? - On notification close, do we remove the price as we are no - longer getting new prices? - */ - match notification { - FeedNotification::Opened(f, a) => { - log::info!("{:?} has opened a channel for {:?}", f, a); - } - FeedNotification::Closed(f, a) => { - log::info!("{:?} has closed a channel for {:?}", f, a); - } - FeedNotification::PriceUpdated(_, a, p) => { - prices - .write() - .expect("failed to acquire write lock...") - .insert(*ASSETPAIR_HASHES.get(&a).expect("impossible"), p); - } - } - } - None => { - log::info!("no more feed available... exiting handler."); - terminate.await; - break 'a; - } - } - } - } - } + log::info!("backend terminated, dropping pyth subscriptions"); + pyth.terminate().await; + + log::info!("signaling warp for termination..."); + frontend + .shutdown_trigger + .send(()) + .expect("oop, something went wrong"); + + log::info!("waiting for warp to terminate..."); + frontend + .shutdown_handle + .await + .expect("oop, something went wrong"); log::info!("farewell."); } From 3e7cc18905dc2ade128003b3aa1c30f8557dd637 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Sat, 7 Aug 2021 18:10:29 +0200 Subject: [PATCH 10/12] add more tests on backend --- price-feed/src/backend.rs | 86 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/price-feed/src/backend.rs b/price-feed/src/backend.rs index 4bf0f3308d2..8f40dc7bd4b 100644 --- a/price-feed/src/backend.rs +++ b/price-feed/src/backend.rs @@ -112,11 +112,21 @@ pub async fn run_pyth_feed(pythd_host: &String) -> (Pyth, mpsc::Receiver> = Arc::new(RwLock::new(HashMap::new())); + let (feed_in, feed_out) = mpsc::channel::(8); + let signals = Signals::new(&[]) + .expect("could not create signals stream") + .fuse(); + let backend = Backend::new(prices_cache.clone(), feed_out, signals).await; + + for &event in events { + feed_in + .send(event) + .await + .expect("could not send feed notification"); + } + + /* Drop the channel so that the backend exit and we join it. + This will ensure the events have been processed. + */ + drop(feed_in); + backend + .shutdown_handle + .await + .expect("could not join on backend handle"); + + let prices_cache_r = prices_cache.read().expect("could not acquire read lock"); + assert_eq!( + *prices_cache_r, + expected.iter().copied().collect::() + ); + } + } + } } From 19720b5ae76f115f18ed46508b95a4ea70b29d69 Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Sun, 8 Aug 2021 20:20:56 +0200 Subject: [PATCH 11/12] refactor and abstract --- price-feed/src/asset.rs | 31 ++++-- price-feed/src/backend.rs | 208 +++++++++++++++++++----------------- price-feed/src/cache.rs | 38 +++++-- price-feed/src/feed/mod.rs | 12 +-- price-feed/src/feed/pyth.rs | 92 ++++++++++------ price-feed/src/frontend.rs | 43 ++++---- price-feed/src/main.rs | 25 +++-- 7 files changed, 269 insertions(+), 180 deletions(-) diff --git a/price-feed/src/asset.rs b/price-feed/src/asset.rs index 7cc2fb2cd43..d72e7c49803 100644 --- a/price-feed/src/asset.rs +++ b/price-feed/src/asset.rs @@ -1,10 +1,5 @@ use serde::Serialize; -use std::{ - collections::{HashMap, HashSet}, - hash::Hasher, - num::ParseIntError, - str::FromStr, -}; +use std::{collections::HashMap, convert::TryFrom, hash::Hasher, num::ParseIntError, str::FromStr}; custom_derive! { #[derive(EnumFromStr, Copy, Clone, PartialEq, Eq, Hash, Debug)] @@ -82,10 +77,10 @@ lazy_static! { .map(|&x| AssetPair(x, Asset::USD)) .collect() }; - pub static ref ASSETPAIR_HASHES: HashMap = + pub static ref ASSETPAIR_TO_HASH: HashMap = VALID_ASSETPAIRS.iter().map(|&x| (x, x.hash())).collect(); - pub static ref ASSETPAIR_HASHES_VALUES: HashSet = - ASSETPAIR_HASHES.iter().map(|(_, &h)| h).collect(); + pub static ref HASH_TO_ASSETPAIR: HashMap = + VALID_ASSETPAIRS.iter().map(|&x| (x.hash(), x)).collect(); } impl FromStr for AssetPairHash { @@ -93,7 +88,7 @@ impl FromStr for AssetPairHash { fn from_str(s: &str) -> Result { let asset_pair_hash = AssetPairHash(FromStr::from_str(s).map_err(AssetPairHashError::NotANumber)?); - if ASSETPAIR_HASHES_VALUES.contains(&asset_pair_hash) { + if HASH_TO_ASSETPAIR.contains_key(&asset_pair_hash) { Ok(asset_pair_hash) } else { Err(AssetPairHashError::AssetNotFound) @@ -106,7 +101,7 @@ impl AssetPair { AssetPair(x, y) } - pub fn hash(&self) -> AssetPairHash { + fn hash(&self) -> AssetPairHash { // not secure but we only need this for indexing let mut hasher = fnv::FnvHasher::default(); hasher.write(self.symbol().as_bytes()); @@ -117,3 +112,17 @@ impl AssetPair { format!("{:?}/{:?}", self.0, self.1) } } + +impl TryFrom for AssetPairHash { + type Error = (); + fn try_from(asset_pair: AssetPair) -> Result { + ASSETPAIR_TO_HASH.get(&asset_pair).copied().ok_or(()) + } +} + +impl TryFrom for AssetPair { + type Error = (); + fn try_from(asset_pair_hash: AssetPairHash) -> Result { + HASH_TO_ASSETPAIR.get(&asset_pair_hash).copied().ok_or(()) + } +} diff --git a/price-feed/src/backend.rs b/price-feed/src/backend.rs index 8f40dc7bd4b..3f6e52c7de7 100644 --- a/price-feed/src/backend.rs +++ b/price-feed/src/backend.rs @@ -1,80 +1,97 @@ -use crate::{ - asset::*, - cache::{PriceCache, PriceCacheEntry}, - feed::{pyth::Pyth, FeedNotification}, -}; +use crate::{cache::Cache, feed::FeedNotification}; use futures::stream::{Fuse, StreamExt}; use signal_hook_tokio::SignalsInfo; -use std::sync::{Arc, RwLock}; +use std::{convert::TryFrom, fmt::Debug}; use tokio::{sync::mpsc, task::JoinHandle}; -use url::Url; #[derive(PartialEq, Eq, Copy, Clone, Debug)] -enum FeedNotificationAction { - UpdateCache(AssetPairHash, PriceCacheEntry), - NoOp, +pub enum FeedNotificationAction { + UpdateCache(K, V), } -pub struct Backend { - pub shutdown_handle: JoinHandle<()>, +pub trait Transition { + fn apply(&self, state: &mut S); } -/* TODO: how are we going to handles X feeds: - - do we just expose every one of them from their own endpoint? - - do we merge the prices (median?), if so, merging will depend on timestamp? - On notification close, do we remove the price as we are no - longer getting new prices? -*/ -fn feed_notification_action(feed_notification: &FeedNotification) -> FeedNotificationAction { - match feed_notification { - FeedNotification::Opened(f, a) => { - log::info!("{:?} has opened a channel for {:?}", f, a); - FeedNotificationAction::NoOp +impl Transition for FeedNotificationAction +where + TCache: Cache, + TAsset: Copy, + TPrice: Copy, +{ + fn apply(&self, state: &mut TCache) { + match self { + &FeedNotificationAction::UpdateCache(a, p) => state.insert(a, p), } - FeedNotification::Closed(f, a) => { - log::info!("{:?} has closed a channel for {:?}", f, a); - FeedNotificationAction::NoOp + } +} + +impl TryFrom> + for FeedNotificationAction +where + TAsset: Debug + Copy, + TPrice: Copy, +{ + type Error = (); + /* TODO: how are we going to handles X feeds: + - do we just expose every one of them from their own endpoint? + - do we merge the prices (median?), if so, merging will depend on timestamp? + On notification close, do we remove the price as we are no + longer getting new prices? + */ + fn try_from( + notification: FeedNotification, + ) -> Result, Self::Error> { + match notification { + FeedNotification::Opened(f, a) => { + log::info!("{:?} has opened a channel for {:?}", f, a); + Err(()) + } + FeedNotification::Closed(f, a) => { + log::info!("{:?} has closed a channel for {:?}", f, a); + Err(()) + } + FeedNotification::PriceUpdated(_, a, p) => { + Ok(FeedNotificationAction::UpdateCache(a, p)) + } } - FeedNotification::PriceUpdated(_, a, p) => FeedNotificationAction::UpdateCache( - *ASSETPAIR_HASHES.get(&a).expect("unknown asset pair hash"), - *p, - ), } } +pub struct Backend { + pub shutdown_handle: JoinHandle<()>, +} + impl Backend { - pub async fn new( - prices_cache: Arc>, - mut feed_channel: mpsc::Receiver, + pub async fn new( + mut prices_cache: TCache, + mut feed_channel: mpsc::Receiver, mut shutdown_trigger: Fuse, - ) -> Backend { + ) -> Backend + where + TCache: 'static + Cache + Send, + TNotification: 'static + Send + Debug, + TTransition: Transition + TryFrom, + { let backend = async move { - 'a: loop { + 'l: loop { tokio::select! { _ = shutdown_trigger.next() => { log::info!("terminating signal received."); - break 'a; + break 'l; } message = feed_channel.recv() => { match message { - Some(feed_notification) => { - log::debug!("notification received: {:?}", feed_notification); - match feed_notification_action(&feed_notification) { - FeedNotificationAction::UpdateCache(k, v) => { - prices_cache - .write() - .expect("failed to acquire write lock...") - .insert( - k, - v, - ); - } - FeedNotificationAction::NoOp => {} - } + Some(notification) => { + log::debug!("notification received: {:?}", notification); + let _ = TTransition::try_from(notification) + .map(|action| { + action.apply(&mut prices_cache); + }); } None => { log::info!("no more feed available... exiting handler."); - break 'a; + break 'l; } } } @@ -88,72 +105,59 @@ impl Backend { } } -// TODO: manage multiple feeds -pub async fn run_pyth_feed(pythd_host: &String) -> (Pyth, mpsc::Receiver) { - /* Its important to drop the initial feed_in as it will be cloned for all subsequent tasks - The received won't get notified if all cloned senders are closed but not the 'main' one. - */ - let (feed_in, feed_out) = mpsc::channel::(128); - - let mut pyth = Pyth::new(&Url::parse(&pythd_host).expect("invalid pythd host address.")) - .await - .expect("connection to pythd failed"); - - // TODO: subscribe to all asset prices? cli configurable? - log::info!("successfully connected to pythd."); - for asset_pair in VALID_ASSETPAIRS.iter() { - pyth.subscribe_to_asset(&feed_in, asset_pair) - .await - .expect("failed to subscribe to asset"); - } - - (pyth, feed_out) -} - #[cfg(test)] mod tests { use super::Backend; use crate::{ - asset::ASSETPAIR_HASHES, - asset::VALID_ASSETPAIRS, - backend::{feed_notification_action, FeedNotificationAction}, - cache::PriceCache, - feed::{Exponent, Feed, FeedNotification, Price, TimeStamp, TimeStamped}, + asset::{AssetPair, VALID_ASSETPAIRS}, + backend::{FeedNotificationAction, Transition}, + cache::{PriceCache, ThreadSafePriceCache}, + feed::{Exponent, Feed, FeedNotification, Price, TimeStamp, TimeStamped, TimeStampedPrice}, }; use futures::stream::StreamExt; use signal_hook_tokio::Signals; use std::{ collections::HashMap, + convert::TryFrom, sync::{Arc, RwLock}, }; use tokio::sync::mpsc; #[test] - fn test_feed_notification_action() { + fn test_feed_notification_transition() { let feed = Feed::Pyth; let timestamped_price = TimeStamped { value: (Price(0xCAFEBABE), Exponent(0x1337)), timestamp: TimeStamp(0xDEADC0DE), }; VALID_ASSETPAIRS.iter().for_each(|&asset_pair| { - let asset_pair_hash = asset_pair.hash(); [ - ( - FeedNotification::Opened(feed, asset_pair), - FeedNotificationAction::NoOp, - ), - ( - FeedNotification::Closed(feed, asset_pair), - FeedNotificationAction::NoOp, - ), + (FeedNotification::Opened(feed, asset_pair), None), + (FeedNotification::Closed(feed, asset_pair), None), ( FeedNotification::PriceUpdated(feed, asset_pair, timestamped_price), - FeedNotificationAction::UpdateCache(asset_pair_hash, timestamped_price), + Some(( + FeedNotificationAction::UpdateCache(asset_pair, timestamped_price), + [(asset_pair, timestamped_price)].iter().copied().collect(), + )), ), ] .iter() - .for_each(|&(notification, expected_action)| { - assert_eq!(feed_notification_action(¬ification), expected_action); + .for_each(|(notification, expected)| { + match ( + FeedNotificationAction::::try_from(*notification), + expected, + ) { + (Ok(actual_action), Some((expected_action, expected_state))) => { + assert_eq!(&actual_action, expected_action); + let mut state = HashMap::new(); + actual_action.apply(&mut state); + assert_eq!(&state, expected_state); + } + _ => { + // No action = no transition + } + } }); }); } @@ -170,7 +174,7 @@ mod tests { mk_price(93424, -4, 234), ); let feed = Feed::Pyth; - for (&asset_pair, &asset_pair_hash) in ASSETPAIR_HASHES.iter() { + for &asset_pair in VALID_ASSETPAIRS.iter() { let tests = [ ( vec![ @@ -178,7 +182,7 @@ mod tests { FeedNotification::PriceUpdated(feed, asset_pair, price1), FeedNotification::Closed(feed, asset_pair), ], - [(asset_pair_hash, price1)], + [(asset_pair, price1)], ), ( vec![ @@ -188,7 +192,7 @@ mod tests { FeedNotification::PriceUpdated(feed, asset_pair, price2), FeedNotification::Closed(feed, asset_pair), ], - [(asset_pair_hash, price2)], + [(asset_pair, price2)], ), ( vec![ @@ -198,16 +202,24 @@ mod tests { FeedNotification::PriceUpdated(feed, asset_pair, price3), FeedNotification::Closed(feed, asset_pair), ], - [(asset_pair_hash, price3)], + [(asset_pair, price3)], ), ]; for (events, expected) in &tests { - let prices_cache: Arc> = Arc::new(RwLock::new(HashMap::new())); - let (feed_in, feed_out) = mpsc::channel::(8); + let prices_cache: ThreadSafePriceCache = Arc::new(RwLock::new(HashMap::new())); + let (feed_in, feed_out) = + mpsc::channel::>(8); let signals = Signals::new(&[]) .expect("could not create signals stream") .fuse(); - let backend = Backend::new(prices_cache.clone(), feed_out, signals).await; + let backend = Backend::new::< + FeedNotification, + FeedNotificationAction, + _, + _, + _, + >(prices_cache.clone(), feed_out, signals) + .await; for &event in events { feed_in diff --git a/price-feed/src/cache.rs b/price-feed/src/cache.rs index 24ad381f64a..5430fb900b8 100644 --- a/price-feed/src/cache.rs +++ b/price-feed/src/cache.rs @@ -1,9 +1,35 @@ -use crate::{ - asset::AssetPairHash, - feed::{Exponent, Price, TimeStamped}, +use crate::{asset::AssetPair, feed::TimeStampedPrice}; +use std::{ + collections::HashMap, + hash::Hash, + sync::{Arc, RwLock}, }; -use std::collections::HashMap; -pub type PriceCacheEntry = TimeStamped<(Price, Exponent)>; +pub type PriceCache = HashMap; -pub type PriceCache = HashMap; +pub type ThreadSafePriceCache = Arc>; + +pub trait Cache { + fn insert(&mut self, k: K, v: V); + fn get(&self, k: &K) -> Option; +} + +impl Cache for HashMap { + fn insert(&mut self, k: K, v: V) { + self.insert(k, v); + } + fn get(&self, k: &K) -> Option { + self.get(k).copied() + } +} + +impl, K: Eq + Hash, V: Copy> Cache for Arc> { + fn insert(&mut self, k: K, v: V) { + self.write() + .expect("could not acquire write lock") + .insert(k, v); + } + fn get(&self, k: &K) -> Option { + self.read().expect("could not acquire read lock").get(k) + } +} diff --git a/price-feed/src/feed/mod.rs b/price-feed/src/feed/mod.rs index 325116fa903..106cf8286e1 100644 --- a/price-feed/src/feed/mod.rs +++ b/price-feed/src/feed/mod.rs @@ -1,8 +1,6 @@ pub mod pyth; use serde::{Deserialize, Serialize}; -use crate::asset::AssetPair; - #[derive(Serialize, PartialEq, Eq, Copy, Clone, Debug)] #[repr(transparent)] pub struct TimeStamp(pub(crate) i64); @@ -21,14 +19,16 @@ pub struct TimeStamped { pub timestamp: TimeStamp, } +pub type TimeStampedPrice = TimeStamped<(Price, Exponent)>; + #[derive(PartialEq, Eq, Copy, Clone, Hash, Debug)] pub enum Feed { Pyth, } #[derive(PartialEq, Eq, Copy, Clone, Debug)] -pub enum FeedNotification { - Opened(Feed, AssetPair), - Closed(Feed, AssetPair), - PriceUpdated(Feed, AssetPair, TimeStamped<(Price, Exponent)>), +pub enum FeedNotification { + Opened(Feed, A), + Closed(Feed, A), + PriceUpdated(Feed, A, P), } diff --git a/price-feed/src/feed/pyth.rs b/price-feed/src/feed/pyth.rs index 9ef0f7a1fd0..0a6331d3729 100644 --- a/price-feed/src/feed/pyth.rs +++ b/price-feed/src/feed/pyth.rs @@ -1,6 +1,6 @@ -use super::{Feed, FeedNotification, Price, TimeStamped}; +use super::{Feed, FeedNotification, Price, TimeStamped, TimeStampedPrice}; use crate::{ - asset::AssetPair, + asset::{AssetPair, VALID_ASSETPAIRS}, feed::{Exponent, TimeStamp}, }; use chrono::Utc; @@ -13,6 +13,9 @@ use tokio::{ sync::mpsc::{self, error::SendError}, task::JoinHandle, }; +use url::Url; + +pub type PythFeedNotification = FeedNotification; #[derive(PartialEq, Eq, Copy, Clone, Debug, Deserialize)] #[serde(rename_all = "lowercase")] @@ -49,7 +52,7 @@ struct PythProduct { #[derive(Debug)] pub enum PythError { RpcError(RpcError), - ChannelError(SendError), + ChannelError(SendError), } #[derive(Serialize)] @@ -64,8 +67,7 @@ pub struct Pyth { #[derive(PartialEq, Eq, Copy, Clone, Debug)] enum PythNotifyPriceAction { - YieldFeedNotification(FeedNotification), - NoOp, + YieldFeedNotification(PythFeedNotification), } fn notify_price_action( @@ -73,18 +75,20 @@ fn notify_price_action( product_price: &PythProductPrice, notify_price: &PythNotifyPrice, timestamp: &TimeStamp, -) -> PythNotifyPriceAction { - if notify_price.status == PythSymbolStatus::Trading { - PythNotifyPriceAction::YieldFeedNotification(FeedNotification::PriceUpdated( - Feed::Pyth, - *asset_pair, - TimeStamped { - value: (notify_price.price, product_price.price_exponent), - timestamp: *timestamp, - }, - )) - } else { - PythNotifyPriceAction::NoOp +) -> Option { + match notify_price.status { + PythSymbolStatus::Trading => Some(PythNotifyPriceAction::YieldFeedNotification( + FeedNotification::PriceUpdated( + Feed::Pyth, + *asset_pair, + TimeStamped { + value: (notify_price.price, product_price.price_exponent), + timestamp: *timestamp, + }, + ), + )), + PythSymbolStatus::Halted => None, + PythSymbolStatus::Unknown => None, } } @@ -108,7 +112,7 @@ impl Pyth { async fn subscribe( &mut self, - output: mpsc::Sender, + output: mpsc::Sender, asset_pair: AssetPair, product_price: PythProductPrice, ) -> Result<(), PythError> { @@ -149,13 +153,15 @@ impl Pyth { ¬ify_price, ×tamp, ) { - PythNotifyPriceAction::YieldFeedNotification(feed_notification) => { + Some(PythNotifyPriceAction::YieldFeedNotification( + feed_notification, + )) => { output .send(feed_notification) .await .map_err(PythError::ChannelError)?; } - PythNotifyPriceAction::NoOp => { + None => { // TODO: should we close the feed if the received price don't yield a price update? // e.g. the SymbolStatus != Trading } @@ -180,7 +186,7 @@ impl Pyth { pub async fn subscribe_to_asset( &mut self, - output: &mpsc::Sender, + output: &mpsc::Sender, asset_pair: &AssetPair, ) -> Result<(), PythError> { let asset_pair_symbol = asset_pair.symbol(); @@ -204,6 +210,30 @@ impl Pyth { } } +// TODO: manage multiple feeds +pub async fn run_full_subscriptions( + pythd_host: &String, +) -> (Pyth, mpsc::Receiver) { + /* Its important to drop the initial feed_in as it will be cloned for all subsequent tasks + The received won't get notified if all cloned senders are closed but not the 'main' one. + */ + let (feed_in, feed_out) = mpsc::channel::(128); + + let mut pyth = Pyth::new(&Url::parse(&pythd_host).expect("invalid pythd host address.")) + .await + .expect("connection to pythd failed"); + + // TODO: subscribe to all asset prices? cli configurable? + log::info!("successfully connected to pythd."); + for asset_pair in VALID_ASSETPAIRS.iter() { + pyth.subscribe_to_asset(&feed_in, asset_pair) + .await + .expect("failed to subscribe to asset"); + } + + (pyth, feed_out) +} + #[cfg(test)] mod tests { use crate::{asset::*, feed::FeedNotification}; @@ -221,17 +251,19 @@ mod tests { let timestamp = TimeStamp(0xDEADC0DE); VALID_ASSETPAIRS.iter().for_each(|asset_pair| { [ - (PythSymbolStatus::Halted, PythNotifyPriceAction::NoOp), - (PythSymbolStatus::Unknown, PythNotifyPriceAction::NoOp), + (PythSymbolStatus::Halted, None), + (PythSymbolStatus::Unknown, None), ( PythSymbolStatus::Trading, - PythNotifyPriceAction::YieldFeedNotification(FeedNotification::PriceUpdated( - Feed::Pyth, - *asset_pair, - TimeStamped { - value: (price, product_price.price_exponent), - timestamp, - }, + Some(PythNotifyPriceAction::YieldFeedNotification( + FeedNotification::PriceUpdated( + Feed::Pyth, + *asset_pair, + TimeStamped { + value: (price, product_price.price_exponent), + timestamp, + }, + ), )), ), ] diff --git a/price-feed/src/frontend.rs b/price-feed/src/frontend.rs index 72052c09e88..e67494b2c6a 100644 --- a/price-feed/src/frontend.rs +++ b/price-feed/src/frontend.rs @@ -1,14 +1,15 @@ use crate::{ - asset::{Asset, AssetPair, AssetPairHash, ASSETPAIR_HASHES}, - cache::PriceCache, + asset::{Asset, AssetPair, AssetPairHash}, + cache::{PriceCache, ThreadSafePriceCache}, feed::{Exponent, Price, TimeStamped}, }; use futures::channel::oneshot; use serde::Serialize; use std::{ + convert::TryFrom, net::SocketAddr, str::FromStr, - sync::{Arc, RwLock, RwLockReadGuard}, + sync::{Arc, RwLock}, }; use tokio::task::JoinHandle; use warp::{ @@ -31,14 +32,7 @@ impl Frontend { let get_price_endpoint = warp::path!("price" / AssetPairHash / u128) .and(warp::get()) .map(move |asset_pair_hash, _request_id| { - get_price( - prices_cache - .clone() - .read() - .expect("could not acquire read lock"), - asset_pair_hash, - _request_id, - ) + get_price(&prices_cache, asset_pair_hash, _request_id) }); let (shutdown_trigger, shutdown) = oneshot::channel::<()>(); @@ -60,11 +54,11 @@ impl Frontend { } fn get_asset_id(x: Asset, y: Asset) -> WithStatus { - match ASSETPAIR_HASHES.get(&AssetPair::new(x, y)) { - Some(valid_asset_pair_hash) => { - reply::with_status(reply::json(valid_asset_pair_hash), StatusCode::OK) + match AssetPairHash::try_from(AssetPair::new(x, y)) { + Ok(valid_asset_pair_hash) => { + reply::with_status(reply::json(&valid_asset_pair_hash), StatusCode::OK) } - None => reply::with_status(reply::json(&()), StatusCode::BAD_REQUEST), + Err(_) => reply::with_status(reply::json(&()), StatusCode::BAD_REQUEST), } } @@ -79,13 +73,20 @@ fn get_asset_id(x: Asset, y: Asset) -> WithStatus { here and wipe the cached value? */ fn get_price( - prices: RwLockReadGuard, + prices: &ThreadSafePriceCache, asset_pair_hash: AssetPairHash, _request_id: u128, ) -> WithStatus { // TODO: What is the request_id useful for (comming from oracle pallet)? - match prices.get(&asset_pair_hash) { - Some(&TimeStamped { + match AssetPair::try_from(asset_pair_hash).and_then(|x| { + prices + .read() + .expect("could not acquire read lock") + .get(&x) + .copied() + .ok_or(()) + }) { + Ok(TimeStamped { value: (Price(p), Exponent(q)), timestamp: _, }) => { @@ -95,11 +96,11 @@ fn get_price( pub struct USDPrice { pub usd: Price, } - let usd_unit_exponent = q + 2; - let usd_price = Price(p / u64::pow(10u64, i32::abs(usd_unit_exponent) as u32)); + let usd_adjust_cent_exponent = q + 2; + let usd_price = Price(p / u64::pow(10u64, i32::abs(usd_adjust_cent_exponent) as u32)); reply::with_status(reply::json(&USDPrice { usd: usd_price }), StatusCode::OK) } - None => reply::with_status(reply::json(&()), StatusCode::NOT_FOUND), + Err(_) => reply::with_status(reply::json(&()), StatusCode::NOT_FOUND), } } diff --git a/price-feed/src/main.rs b/price-feed/src/main.rs index e3d600777fc..d44bd262d4c 100644 --- a/price-feed/src/main.rs +++ b/price-feed/src/main.rs @@ -13,9 +13,10 @@ extern crate enum_derive; extern crate lazy_static; use crate::{ - asset::*, - backend::{run_pyth_feed, Backend}, - cache::PriceCache, + asset::AssetPair, + backend::{Backend, FeedNotificationAction}, + cache::ThreadSafePriceCache, + feed::{pyth, FeedNotification, TimeStampedPrice}, frontend::Frontend, }; use futures::stream::StreamExt; @@ -32,21 +33,29 @@ async fn main() { let opts = opts::get_opts(); - for (asset_pair, asset_pair_hash) in ASSETPAIR_HASHES.iter() { + for (asset_pair, asset_pair_hash) in asset::ASSETPAIR_TO_HASH.iter() { log::info!("AssetPair{:?} = AssetId({:?})", asset_pair, asset_pair_hash); } - let prices_cache: Arc> = Arc::new(RwLock::new(HashMap::new())); + let prices_cache: ThreadSafePriceCache = Arc::new(RwLock::new(HashMap::new())); - let (pyth, pyth_feed) = run_pyth_feed(&opts.pythd_host).await; + let (pyth, pyth_feed) = pyth::run_full_subscriptions(&opts.pythd_host).await; let backend_shutdown_trigger: futures::stream::Fuse = Signals::new(&[SIGTERM, SIGINT, SIGQUIT]) .expect("could not create signals stream") .fuse(); - let backend = Backend::new(prices_cache.clone(), pyth_feed, backend_shutdown_trigger).await; - let frontend = Frontend::new(&opts.listening_address, prices_cache.clone()).await; + let backend = Backend::new::< + FeedNotification, + FeedNotificationAction, + _, + _, + _, + >(prices_cache.clone(), pyth_feed, backend_shutdown_trigger) + .await; + + let frontend = Frontend::new(&opts.listening_address, prices_cache).await; backend .shutdown_handle From f12c108718797d2463cd0d8b45f39372753f11bf Mon Sep 17 00:00:00 2001 From: Hussein Ait Lahcen Date: Tue, 10 Aug 2021 12:05:40 +0200 Subject: [PATCH 12/12] apply advices --- price-feed/Cargo.toml | 1 - price-feed/README.md | 9 +- price-feed/src/asset.rs | 130 ++++++++++++++------------- price-feed/src/backend.rs | 68 +++++++------- price-feed/src/cache.rs | 4 +- price-feed/src/feed/mod.rs | 12 ++- price-feed/src/feed/pyth.rs | 38 ++++---- price-feed/src/frontend.rs | 173 +++++++++++++++++++++++++++++------- price-feed/src/main.rs | 10 +-- 9 files changed, 279 insertions(+), 166 deletions(-) diff --git a/price-feed/Cargo.toml b/price-feed/Cargo.toml index db7fc38434d..63863f27820 100644 --- a/price-feed/Cargo.toml +++ b/price-feed/Cargo.toml @@ -21,5 +21,4 @@ warp = "0.3" signal-hook = "0.3" signal-hook-tokio = { version = "0.3", features = [ "futures-v0_3" ] } futures = "0.3" -fnv = "1.0.7" lazy_static = "1.4.0" diff --git a/price-feed/README.md b/price-feed/README.md index 4d6d65cf9b6..bcc966ca36f 100644 --- a/price-feed/README.md +++ b/price-feed/README.md @@ -4,14 +4,7 @@ Currently, in the pallet, the price of an asset is expressed in USD cents, it's The price server handle arbitrary asset pair instead of fixing the denominator to USD, e.g. ETH/BTC, ADA/BTC... We currently use an arbitrary `asset_id` in the oracle pallet. -To avoid an extra layer of indirection between the pallet and the price server, -the current version assume that the `asset_id` is `FNV1A64(Symbol(AssetPair(X, Y)))` where `Symbol(AssetPair(X, Y)) = "X/Y"`: -- `asset_id(AssetPair(DOGE, USD)) = FNV1A64(Symbol(AssetPair(DOGE, USD))) = 4273408557542323723` -- `asset_id(AssetPair(LUNA, USD)) = FNV1A64(Symbol(AssetPair(LUNA, USD))) = 3340859369462710808` -- `asset_id(AssetPair(ETH, USD)) = FNV1A64(Symbol(AssetPair(ETH, USD))) = 17646658738355831635` -- `asset_id(AssetPair(SOL, USD)) = FNV1A64(Symbol(AssetPair(SOL, USD))) = 10214562193576803066` -- `asset_id(AssetPair(LTC, USD)) = FNV1A64(Symbol(AssetPair(LTC, USD))) = 3321725485492231977` -- `asset_id(AssetPair(BTC, USD)) = FNV1A64(Symbol(AssetPair(BTC, USD))) = 6354621323601249647` +The server has a hardcoded map (u8 => Asset) to represent this ID. # Getting started diff --git a/price-feed/src/asset.rs b/price-feed/src/asset.rs index d72e7c49803..e5c220162dc 100644 --- a/price-feed/src/asset.rs +++ b/price-feed/src/asset.rs @@ -1,5 +1,10 @@ use serde::Serialize; -use std::{collections::HashMap, convert::TryFrom, hash::Hasher, num::ParseIntError, str::FromStr}; +use std::{ + collections::{HashMap, HashSet}, + convert::TryFrom, + num::ParseIntError, + str::FromStr, +}; custom_derive! { #[derive(EnumFromStr, Copy, Clone, PartialEq, Eq, Hash, Debug)] @@ -24,7 +29,6 @@ custom_derive! { GME, GE, QQQ, - USDT, USDC, GBP, @@ -34,78 +38,80 @@ custom_derive! { } #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] -pub struct AssetPair(Asset, Asset); +pub struct AssetPair(pub Asset, pub Asset); #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize)] #[repr(transparent)] -pub struct AssetPairHash(u64); +pub struct AssetIndex(u8); -pub enum AssetPairHashError { +pub enum AssetIndexError { NotANumber(ParseIntError), AssetNotFound, } lazy_static! { - pub static ref VALID_ASSETPAIRS: Vec = { - [ - Asset::BTC, - Asset::ETH, - Asset::LTC, - Asset::DOGE, - Asset::SOL, - Asset::LUNA, - Asset::AAPL, - Asset::BNB, - Asset::TSLA, - Asset::BCH, - Asset::SRM, - Asset::AMZN, - Asset::GOOG, - Asset::NFLX, - Asset::XAU, - Asset::AMC, - Asset::SPY, - Asset::GME, - Asset::GE, - Asset::QQQ, - Asset::USDT, - Asset::USDC, - Asset::GBP, - Asset::EUR, - ] - .iter() - .map(|&x| AssetPair(x, Asset::USD)) - .collect() - }; - pub static ref ASSETPAIR_TO_HASH: HashMap = - VALID_ASSETPAIRS.iter().map(|&x| (x, x.hash())).collect(); - pub static ref HASH_TO_ASSETPAIR: HashMap = - VALID_ASSETPAIRS.iter().map(|&x| (x.hash(), x)).collect(); + /* + The map of valid asset we are allowed to ask price for. + We must not swap two indexes. + */ + pub static ref INDEX_TO_ASSET: HashMap = [ + (0, Asset::BTC), + (1, Asset::ETH), + (2, Asset::LTC), + (3, Asset::DOGE), + (4, Asset::SOL), + (5, Asset::LUNA), + (6, Asset::AAPL), + (7, Asset::BNB), + (6, Asset::TSLA), + (7, Asset::BCH), + (8, Asset::SRM), + (9, Asset::AMZN), + (10, Asset::GOOG), + (11, Asset::NFLX), + (12, Asset::XAU), + (13, Asset::AMC), + (14, Asset::SPY), + (15, Asset::GME), + (16, Asset::GE), + (17, Asset::QQQ), + (18, Asset::USDT), + (19, Asset::USDC), + (20, Asset::GBP), + (21, Asset::EUR), + ] + .iter() + .map(|&(i, a)| (AssetIndex(i), a)) + .collect(); + pub static ref ASSET_TO_INDEX: HashMap = + INDEX_TO_ASSET.iter().map(|(&i, &a)| (a, i)).collect(); + pub static ref VALID_ASSETS: HashSet = + INDEX_TO_ASSET.values().copied().collect(); } -impl FromStr for AssetPairHash { - type Err = AssetPairHashError; +impl FromStr for AssetIndex { + type Err = AssetIndexError; fn from_str(s: &str) -> Result { - let asset_pair_hash = - AssetPairHash(FromStr::from_str(s).map_err(AssetPairHashError::NotANumber)?); - if HASH_TO_ASSETPAIR.contains_key(&asset_pair_hash) { - Ok(asset_pair_hash) + let asset_pair_index = + AssetIndex(FromStr::from_str(s).map_err(AssetIndexError::NotANumber)?); + if INDEX_TO_ASSET.contains_key(&asset_pair_index) { + Ok(asset_pair_index) } else { - Err(AssetPairHashError::AssetNotFound) + Err(AssetIndexError::AssetNotFound) } } } impl AssetPair { - pub(crate) fn new(x: Asset, y: Asset) -> Self { - AssetPair(x, y) - } - - fn hash(&self) -> AssetPairHash { - // not secure but we only need this for indexing - let mut hasher = fnv::FnvHasher::default(); - hasher.write(self.symbol().as_bytes()); - AssetPairHash(hasher.finish()) + /* + We currently only allow X/USD + */ + pub fn new(x: Asset, y: Asset) -> Option { + match (x, y) { + (Asset::USD, _) => None, + (_, Asset::USD) => Some(AssetPair(x, y)), + _ => None, + } } pub fn symbol(&self) -> String { @@ -113,16 +119,16 @@ impl AssetPair { } } -impl TryFrom for AssetPairHash { +impl TryFrom for AssetIndex { type Error = (); - fn try_from(asset_pair: AssetPair) -> Result { - ASSETPAIR_TO_HASH.get(&asset_pair).copied().ok_or(()) + fn try_from(asset: Asset) -> Result { + ASSET_TO_INDEX.get(&asset).copied().ok_or(()) } } -impl TryFrom for AssetPair { +impl TryFrom for Asset { type Error = (); - fn try_from(asset_pair_hash: AssetPairHash) -> Result { - HASH_TO_ASSETPAIR.get(&asset_pair_hash).copied().ok_or(()) + fn try_from(asset_index: AssetIndex) -> Result { + INDEX_TO_ASSET.get(&asset_index).copied().ok_or(()) } } diff --git a/price-feed/src/backend.rs b/price-feed/src/backend.rs index 3f6e52c7de7..c00fe5d6cdf 100644 --- a/price-feed/src/backend.rs +++ b/price-feed/src/backend.rs @@ -109,7 +109,7 @@ impl Backend { mod tests { use super::Backend; use crate::{ - asset::{AssetPair, VALID_ASSETPAIRS}, + asset::{Asset, VALID_ASSETS}, backend::{FeedNotificationAction, Transition}, cache::{PriceCache, ThreadSafePriceCache}, feed::{Exponent, Feed, FeedNotification, Price, TimeStamp, TimeStamped, TimeStampedPrice}, @@ -128,24 +128,24 @@ mod tests { let feed = Feed::Pyth; let timestamped_price = TimeStamped { value: (Price(0xCAFEBABE), Exponent(0x1337)), - timestamp: TimeStamp(0xDEADC0DE), + timestamp: TimeStamp::now(), }; - VALID_ASSETPAIRS.iter().for_each(|&asset_pair| { + VALID_ASSETS.iter().for_each(|&asset| { [ - (FeedNotification::Opened(feed, asset_pair), None), - (FeedNotification::Closed(feed, asset_pair), None), + (FeedNotification::Opened(feed, asset), None), + (FeedNotification::Closed(feed, asset), None), ( - FeedNotification::PriceUpdated(feed, asset_pair, timestamped_price), + FeedNotification::PriceUpdated(feed, asset, timestamped_price), Some(( - FeedNotificationAction::UpdateCache(asset_pair, timestamped_price), - [(asset_pair, timestamped_price)].iter().copied().collect(), + FeedNotificationAction::UpdateCache(asset, timestamped_price), + [(asset, timestamped_price)].iter().copied().collect(), )), ), ] .iter() .for_each(|(notification, expected)| { match ( - FeedNotificationAction::::try_from(*notification), + FeedNotificationAction::::try_from(*notification), expected, ) { (Ok(actual_action), Some((expected_action, expected_state))) => { @@ -164,57 +164,53 @@ mod tests { #[tokio::test] async fn test_feed_backend() { - let mk_price = |x, y, z| TimeStamped { + let mk_price = |x, y| TimeStamped { value: (Price(x), Exponent(y)), - timestamp: TimeStamp(z), + timestamp: TimeStamp::now(), }; - let (price1, price2, price3) = ( - mk_price(123, -3, 2), - mk_price(3134, -1, 5), - mk_price(93424, -4, 234), - ); + let (price1, price2, price3) = (mk_price(123, -3), mk_price(3134, -1), mk_price(93424, -4)); let feed = Feed::Pyth; - for &asset_pair in VALID_ASSETPAIRS.iter() { + for &asset in VALID_ASSETS.iter() { let tests = [ ( vec![ - FeedNotification::Opened(feed, asset_pair), - FeedNotification::PriceUpdated(feed, asset_pair, price1), - FeedNotification::Closed(feed, asset_pair), + FeedNotification::Opened(feed, asset), + FeedNotification::PriceUpdated(feed, asset, price1), + FeedNotification::Closed(feed, asset), ], - [(asset_pair, price1)], + [(asset, price1)], ), ( vec![ - FeedNotification::Opened(feed, asset_pair), - FeedNotification::PriceUpdated(feed, asset_pair, price3), - FeedNotification::PriceUpdated(feed, asset_pair, price1), - FeedNotification::PriceUpdated(feed, asset_pair, price2), - FeedNotification::Closed(feed, asset_pair), + FeedNotification::Opened(feed, asset), + FeedNotification::PriceUpdated(feed, asset, price3), + FeedNotification::PriceUpdated(feed, asset, price1), + FeedNotification::PriceUpdated(feed, asset, price2), + FeedNotification::Closed(feed, asset), ], - [(asset_pair, price2)], + [(asset, price2)], ), ( vec![ - FeedNotification::Opened(feed, asset_pair), - FeedNotification::PriceUpdated(feed, asset_pair, price2), - FeedNotification::PriceUpdated(feed, asset_pair, price1), - FeedNotification::PriceUpdated(feed, asset_pair, price3), - FeedNotification::Closed(feed, asset_pair), + FeedNotification::Opened(feed, asset), + FeedNotification::PriceUpdated(feed, asset, price2), + FeedNotification::PriceUpdated(feed, asset, price1), + FeedNotification::PriceUpdated(feed, asset, price3), + FeedNotification::Closed(feed, asset), ], - [(asset_pair, price3)], + [(asset, price3)], ), ]; for (events, expected) in &tests { let prices_cache: ThreadSafePriceCache = Arc::new(RwLock::new(HashMap::new())); let (feed_in, feed_out) = - mpsc::channel::>(8); + mpsc::channel::>(8); let signals = Signals::new(&[]) .expect("could not create signals stream") .fuse(); let backend = Backend::new::< - FeedNotification, - FeedNotificationAction, + FeedNotification, + FeedNotificationAction, _, _, _, diff --git a/price-feed/src/cache.rs b/price-feed/src/cache.rs index 5430fb900b8..217dba83663 100644 --- a/price-feed/src/cache.rs +++ b/price-feed/src/cache.rs @@ -1,11 +1,11 @@ -use crate::{asset::AssetPair, feed::TimeStampedPrice}; +use crate::{asset::Asset, feed::TimeStampedPrice}; use std::{ collections::HashMap, hash::Hash, sync::{Arc, RwLock}, }; -pub type PriceCache = HashMap; +pub type PriceCache = HashMap; pub type ThreadSafePriceCache = Arc>; diff --git a/price-feed/src/feed/mod.rs b/price-feed/src/feed/mod.rs index 106cf8286e1..57e1d0a31ec 100644 --- a/price-feed/src/feed/mod.rs +++ b/price-feed/src/feed/mod.rs @@ -1,9 +1,19 @@ pub mod pyth; +use chrono::{Duration, Utc}; use serde::{Deserialize, Serialize}; #[derive(Serialize, PartialEq, Eq, Copy, Clone, Debug)] #[repr(transparent)] -pub struct TimeStamp(pub(crate) i64); +pub struct TimeStamp(pub i64); + +impl TimeStamp { + pub fn now() -> Self { + TimeStamp(Utc::now().timestamp()) + } + pub fn elapsed_since(&self, previous: &TimeStamp) -> Duration { + Duration::seconds(self.0 - previous.0) + } +} #[derive(Serialize, Deserialize, PartialEq, Eq, Copy, Clone, Debug)] #[repr(transparent)] diff --git a/price-feed/src/feed/pyth.rs b/price-feed/src/feed/pyth.rs index 0a6331d3729..7b1fb7cecc9 100644 --- a/price-feed/src/feed/pyth.rs +++ b/price-feed/src/feed/pyth.rs @@ -1,9 +1,8 @@ use super::{Feed, FeedNotification, Price, TimeStamped, TimeStampedPrice}; use crate::{ - asset::{AssetPair, VALID_ASSETPAIRS}, + asset::{Asset, AssetPair, VALID_ASSETS}, feed::{Exponent, TimeStamp}, }; -use chrono::Utc; use futures::stream::StreamExt; use jsonrpc_client_transports::{ transports::ws::connect, RpcError, TypedClient, TypedSubscriptionStream, @@ -15,7 +14,7 @@ use tokio::{ }; use url::Url; -pub type PythFeedNotification = FeedNotification; +pub type PythFeedNotification = FeedNotification; #[derive(PartialEq, Eq, Copy, Clone, Debug, Deserialize)] #[serde(rename_all = "lowercase")] @@ -71,7 +70,7 @@ enum PythNotifyPriceAction { } fn notify_price_action( - asset_pair: &AssetPair, + asset: Asset, product_price: &PythProductPrice, notify_price: &PythNotifyPrice, timestamp: &TimeStamp, @@ -80,7 +79,7 @@ fn notify_price_action( PythSymbolStatus::Trading => Some(PythNotifyPriceAction::YieldFeedNotification( FeedNotification::PriceUpdated( Feed::Pyth, - *asset_pair, + asset, TimeStamped { value: (notify_price.price, product_price.price_exponent), timestamp: *timestamp, @@ -135,7 +134,7 @@ impl Pyth { .map_err(PythError::RpcError)?; let join_handle = tokio::spawn(async move { output - .send(FeedNotification::Opened(Feed::Pyth, asset_pair)) + .send(FeedNotification::Opened(Feed::Pyth, asset_pair.0)) .await .map_err(PythError::ChannelError)?; 'a: loop { @@ -146,9 +145,9 @@ impl Pyth { asset_pair, notify_price ); - let timestamp = TimeStamp(Utc::now().timestamp()); + let timestamp = TimeStamp::now(); match notify_price_action( - &asset_pair, + asset_pair.0, &product_price, ¬ify_price, ×tamp, @@ -175,7 +174,7 @@ impl Pyth { } } output - .send(FeedNotification::Closed(Feed::Pyth, asset_pair)) + .send(FeedNotification::Closed(Feed::Pyth, asset_pair.0)) .await .map_err(PythError::ChannelError)?; Ok(()) @@ -225,10 +224,12 @@ pub async fn run_full_subscriptions( // TODO: subscribe to all asset prices? cli configurable? log::info!("successfully connected to pythd."); - for asset_pair in VALID_ASSETPAIRS.iter() { - pyth.subscribe_to_asset(&feed_in, asset_pair) - .await - .expect("failed to subscribe to asset"); + for &asset in VALID_ASSETS.iter() { + if let Some(asset_pair) = AssetPair::new(asset, Asset::USD) { + pyth.subscribe_to_asset(&feed_in, &asset_pair) + .await + .expect("failed to subscribe to asset"); + } } (pyth, feed_out) @@ -236,9 +237,8 @@ pub async fn run_full_subscriptions( #[cfg(test)] mod tests { - use crate::{asset::*, feed::FeedNotification}; - use super::*; + use crate::{asset::*, feed::FeedNotification}; #[test] fn test_notify_price_action() { @@ -248,8 +248,8 @@ mod tests { price_exponent: Exponent(0x1337), }; let price = Price(0xCAFEBABE); - let timestamp = TimeStamp(0xDEADC0DE); - VALID_ASSETPAIRS.iter().for_each(|asset_pair| { + let timestamp = TimeStamp::now(); + VALID_ASSETS.iter().for_each(|&asset| { [ (PythSymbolStatus::Halted, None), (PythSymbolStatus::Unknown, None), @@ -258,7 +258,7 @@ mod tests { Some(PythNotifyPriceAction::YieldFeedNotification( FeedNotification::PriceUpdated( Feed::Pyth, - *asset_pair, + asset, TimeStamped { value: (price, product_price.price_exponent), timestamp, @@ -272,7 +272,7 @@ mod tests { let notify_price = PythNotifyPrice { status, price }; assert_eq!( expected_action, - notify_price_action(asset_pair, &product_price, ¬ify_price, ×tamp) + notify_price_action(asset, &product_price, ¬ify_price, ×tamp) ) }); }); diff --git a/price-feed/src/frontend.rs b/price-feed/src/frontend.rs index e67494b2c6a..33ed4a4f17f 100644 --- a/price-feed/src/frontend.rs +++ b/price-feed/src/frontend.rs @@ -1,8 +1,9 @@ use crate::{ - asset::{Asset, AssetPair, AssetPairHash}, + asset::{Asset, AssetIndex}, cache::{PriceCache, ThreadSafePriceCache}, - feed::{Exponent, Price, TimeStamped}, + feed::{Exponent, Price, TimeStamp, TimeStampedPrice}, }; +use chrono::Duration; use futures::channel::oneshot; use serde::Serialize; use std::{ @@ -18,6 +19,11 @@ use warp::{ Filter, }; +#[derive(PartialEq, Eq, Serialize, Copy, Clone, Debug)] +#[serde(rename = "USD")] +#[repr(transparent)] +pub struct USDCentPrice(u64); + pub struct Frontend { pub shutdown_trigger: oneshot::Sender<()>, pub shutdown_handle: JoinHandle<()>, @@ -25,14 +31,14 @@ pub struct Frontend { impl Frontend { pub async fn new(listening_address: &String, prices_cache: Arc>) -> Self { - let get_asset_id_endpoint = warp::path!("asset_id" / Asset / Asset) + let get_asset_id_endpoint = warp::path!("asset_id" / Asset) .and(warp::get()) .map(get_asset_id); - let get_price_endpoint = warp::path!("price" / AssetPairHash / u128) + let get_price_endpoint = warp::path!("price" / AssetIndex / u128) .and(warp::get()) - .map(move |asset_pair_hash, _request_id| { - get_price(&prices_cache, asset_pair_hash, _request_id) + .map(move |asset_index, _request_id| { + get_price(&prices_cache, asset_index, _request_id) }); let (shutdown_trigger, shutdown) = oneshot::channel::<()>(); @@ -53,12 +59,10 @@ impl Frontend { } } -fn get_asset_id(x: Asset, y: Asset) -> WithStatus { - match AssetPairHash::try_from(AssetPair::new(x, y)) { - Ok(valid_asset_pair_hash) => { - reply::with_status(reply::json(&valid_asset_pair_hash), StatusCode::OK) - } - Err(_) => reply::with_status(reply::json(&()), StatusCode::BAD_REQUEST), +fn get_asset_id(x: Asset) -> WithStatus { + match AssetIndex::try_from(x) { + Ok(asset_index) => reply::with_status(reply::json(&asset_index), StatusCode::OK), + Err(_) => reply::with_status(reply::json(&()), StatusCode::NOT_FOUND), } } @@ -74,33 +78,142 @@ fn get_asset_id(x: Asset, y: Asset) -> WithStatus { */ fn get_price( prices: &ThreadSafePriceCache, - asset_pair_hash: AssetPairHash, + asset_index: AssetIndex, _request_id: u128, ) -> WithStatus { // TODO: What is the request_id useful for (comming from oracle pallet)? - match AssetPair::try_from(asset_pair_hash).and_then(|x| { + match Asset::try_from(asset_index).and_then(|asset| { + let now = TimeStamp::now(); + let max_cache_duration = Duration::seconds(10); prices .read() .expect("could not acquire read lock") - .get(&x) + .get(&asset) .copied() + .and_then(|timestamped_price| { + ensure_uptodate_price(&max_cache_duration, &now, ×tamped_price) + }) + .map(get_usd_cent_price) .ok_or(()) }) { - Ok(TimeStamped { - value: (Price(p), Exponent(q)), - timestamp: _, - }) => { - #[derive(Serialize, Copy, Clone, Debug)] - #[serde(rename_all = "UPPERCASE")] - #[repr(transparent)] - pub struct USDPrice { - pub usd: Price, - } - let usd_adjust_cent_exponent = q + 2; - let usd_price = Price(p / u64::pow(10u64, i32::abs(usd_adjust_cent_exponent) as u32)); - - reply::with_status(reply::json(&USDPrice { usd: usd_price }), StatusCode::OK) - } + Ok(usd_cent_price) => reply::with_status(reply::json(&usd_cent_price), StatusCode::OK), Err(_) => reply::with_status(reply::json(&()), StatusCode::NOT_FOUND), } } + +/* + Ensure that the value was registered less than X seconds ago +*/ +fn ensure_uptodate_price( + &max_cache_duration: &Duration, + current_timestamp: &TimeStamp, + timestamped_price: &TimeStampedPrice, +) -> Option<(Price, Exponent)> { + if current_timestamp.elapsed_since(×tamped_price.timestamp) < max_cache_duration { + Some(timestamped_price.value) + } else { + None + } +} + +fn get_usd_cent_price((Price(p), Exponent(q)): (Price, Exponent)) -> USDCentPrice { + let usd_adjust_cent_exponent = q + 2; + let usd_cent_price = match usd_adjust_cent_exponent.signum() { + 0 => p, + 1 => p * u64::pow(10u64, usd_adjust_cent_exponent as u32), + -1 => p / u64::pow(10u64, usd_adjust_cent_exponent.abs() as u32), + _ => unreachable!(), + }; + USDCentPrice(usd_cent_price) +} + +#[cfg(test)] +mod tests { + use super::{get_usd_cent_price, USDCentPrice}; + use crate::{ + feed::{Exponent, Price, TimeStamp, TimeStamped}, + frontend::ensure_uptodate_price, + }; + use chrono::Duration; + + #[test] + fn test_ensure_uptodate_price() { + let value = (Price(0x1337), Exponent(10)); + [ + ( + ( + Duration::seconds(1), + TimeStamp(1), + TimeStamped { + value, + timestamp: TimeStamp(0), + }, + ), + None, + ), + ( + ( + Duration::seconds(5), + TimeStamp(6), + TimeStamped { + value, + timestamp: TimeStamp(0), + }, + ), + None, + ), + ( + ( + Duration::seconds(20), + TimeStamp(20), + TimeStamped { + value, + timestamp: TimeStamp(1), + }, + ), + Some(value), + ), + ( + ( + Duration::seconds(10), + TimeStamp(14), + TimeStamped { + value, + timestamp: TimeStamp(5), + }, + ), + Some(value), + ), + ] + .iter() + .for_each( + |((max_cache_duration, current_timestamp, timestamped_price), expected)| { + assert_eq!( + ensure_uptodate_price(max_cache_duration, current_timestamp, timestamped_price), + *expected + ); + }, + ) + } + + #[test] + fn test_get_usd_cent_price() { + [ + ((Price(0xCAFEBABE), Exponent(-2)), USDCentPrice(0xCAFEBABE)), + ( + (Price(0xDEADBEEF), Exponent(2)), + USDCentPrice(0xDEADBEEF * u64::pow(10, 2 + 2)), + ), + ((Price(1), Exponent(0)), USDCentPrice(1 * u64::pow(10, 2))), + ( + (Price(12), Exponent(-1)), + USDCentPrice(12 * u64::pow(10, 1)), + ), + ((Price(454000), Exponent(-6)), USDCentPrice(45)), + ] + .iter() + .for_each(|&(price, expected_usd_cent)| { + assert_eq!(get_usd_cent_price(price), expected_usd_cent); + }); + } +} diff --git a/price-feed/src/main.rs b/price-feed/src/main.rs index d44bd262d4c..35c6f96d080 100644 --- a/price-feed/src/main.rs +++ b/price-feed/src/main.rs @@ -13,7 +13,7 @@ extern crate enum_derive; extern crate lazy_static; use crate::{ - asset::AssetPair, + asset::Asset, backend::{Backend, FeedNotificationAction}, cache::ThreadSafePriceCache, feed::{pyth, FeedNotification, TimeStampedPrice}, @@ -33,10 +33,6 @@ async fn main() { let opts = opts::get_opts(); - for (asset_pair, asset_pair_hash) in asset::ASSETPAIR_TO_HASH.iter() { - log::info!("AssetPair{:?} = AssetId({:?})", asset_pair, asset_pair_hash); - } - let prices_cache: ThreadSafePriceCache = Arc::new(RwLock::new(HashMap::new())); let (pyth, pyth_feed) = pyth::run_full_subscriptions(&opts.pythd_host).await; @@ -47,8 +43,8 @@ async fn main() { .fuse(); let backend = Backend::new::< - FeedNotification, - FeedNotificationAction, + FeedNotification, + FeedNotificationAction, _, _, _,