diff --git a/src/coin_gecko.rs b/src/coin_gecko.rs index 328e23f..5fe9be1 100644 --- a/src/coin_gecko.rs +++ b/src/coin_gecko.rs @@ -33,6 +33,7 @@ fn token_to_coin(token: &MaybeToken) -> Result<&'static str, Box "solana", Some(token) => match token { Token::USDC => "usd-coin", + Token::USDT => "tether", Token::UXD => "uxd-stablecoin", Token::bSOL => "blazestake-staked-sol", Token::mSOL => "msol", @@ -84,6 +85,8 @@ pub async fn get_current_price(token: &MaybeToken) -> Result, #[serde(rename = "lido-staked-sol")] stsol: Option, + #[serde(rename = "tether")] + tether: Option, #[serde(rename = "uxd-stablecoin")] uxd: Option, } @@ -94,6 +97,7 @@ pub async fn get_current_price(token: &MaybeToken) -> Result Pubkey { match self { Token::USDC => pubkey!("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"), + Token::USDT => pubkey!("BQcdHdAQW1hczDbBi9hiegXAR7A98Q9jx3X3iBBBDiq4"), Token::UXD => pubkey!("7kbnvuGBxxj8AG9qp8Scn56muWGaRaFqxg1FsRp3PaFT"), Token::tuUSDC => pubkey!("Amig8TisuLpzun8XyGfC5HJHHGUQEscjLgoTWsCCKihg"), Token::bSOL => pubkey!("bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1"), @@ -66,6 +68,7 @@ impl Token { pub fn symbol(&self) -> &'static str { match self { Token::USDC => "($)", + Token::USDT => "USDT$", Token::UXD => "UXD$", Token::tuUSDC => "tu($)", Token::bSOL => "b◎", @@ -80,7 +83,7 @@ impl Token { pub fn decimals(&self) -> u8 { match self { - Token::USDC | Token::UXD | Token::tuUSDC => 6, + Token::USDC | Token::USDT | Token::UXD | Token::tuUSDC => 6, Token::stSOL | Token::tuSOL | Token::bSOL @@ -111,7 +114,7 @@ impl Token { pub fn liquidity_token(&self) -> Option { match self { - Token::USDC | Token::UXD | Token::bSOL | Token::mSOL | Token::stSOL | Token::wSOL => { + Token::USDC | Token::USDT | Token::UXD | Token::bSOL | Token::mSOL | Token::stSOL | Token::wSOL => { None } Token::tuUSDC | Token::tuSOL | Token::tumSOL | Token::tustSOL => { @@ -126,7 +129,7 @@ impl Token { _rpc_client: &RpcClient, ) -> Result> { match self { - Token::USDC | Token::UXD | Token::bSOL | Token::mSOL | Token::stSOL | Token::wSOL => { + Token::USDC | Token::USDT | Token::UXD | Token::bSOL | Token::mSOL | Token::stSOL | Token::wSOL => { unreachable!() } Token::tuUSDC | Token::tuSOL | Token::tumSOL | Token::tustSOL => { @@ -165,7 +168,7 @@ impl Token { return Ok(Decimal::from_f64(1.).unwrap()); } match self { - Token::USDC | Token::UXD | Token::bSOL | Token::mSOL | Token::stSOL | Token::wSOL => { + Token::USDC | Token::USDT | Token::UXD | Token::bSOL | Token::mSOL | Token::stSOL | Token::wSOL => { coin_gecko::get_current_price(&MaybeToken(Some(*self))).await } Token::tuUSDC | Token::tuSOL | Token::tumSOL | Token::tustSOL => {