├── .gitignore ├── .vscode └── settings.json ├── src ├── utils │ ├── mod.rs │ └── bybit_struct.rs ├── share_state.rs ├── tweet.rs ├── create_tweet.rs ├── main.rs ├── hyperliquid.rs ├── compare_price.rs ├── bybit.rs └── generate_signature.rs ├── Cargo.toml ├── README.md ├── common_ticker.rs └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | .env -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "rust-analyzer.linkedProjects": ["./Cargo.toml"] 3 | } 4 | -------------------------------------------------------------------------------- /src/utils/mod.rs: -------------------------------------------------------------------------------- 1 | mod bybit_struct; 2 | pub use bybit_struct::BybitApiResponse; 3 | pub use bybit_struct::BybitWsResponse; 4 | -------------------------------------------------------------------------------- /src/share_state.rs: -------------------------------------------------------------------------------- 1 | use std::collections::{HashMap, HashSet}; 2 | 3 | use tokio::sync::RwLock; 4 | 5 | #[derive(Debug)] 6 | pub struct SharedState { 7 | pub bybit_prices: RwLock>, 8 | pub hyperliquid_prices: RwLock>, 9 | pub tweeted_symbols: RwLock>, 10 | } 11 | 12 | impl SharedState { 13 | pub fn new() -> Self { 14 | SharedState { 15 | bybit_prices: RwLock::new(HashMap::new()), 16 | hyperliquid_prices: RwLock::new(HashMap::new()), 17 | tweeted_symbols: RwLock::new(HashSet::new()), 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/tweet.rs: -------------------------------------------------------------------------------- 1 | use serde_json::json; 2 | 3 | use crate::generate_signature::generate_oauth_signature; 4 | 5 | pub async fn create_tweet_not_working() -> Result<(), Box> { 6 | let signature = generate_oauth_signature(); 7 | 8 | println!("signature: {}", signature); 9 | 10 | let client = reqwest::Client::new(); 11 | let response = client 12 | .post("https://api.twitter.com/2/tweets") 13 | .header("Authorization", signature) 14 | .header("Content-Type", "application/json") 15 | .json(&json!({"text": "Hello"})) 16 | .send() 17 | .await?; 18 | 19 | println!("asdasdas: {:#?}", &response); 20 | println!("tweet response: {:#?}", response.text().await); 21 | 22 | Ok(()) 23 | } 24 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "hyperliquid" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | hyperliquid_rust_sdk = "0.3.0" 10 | tokio = { version = "1", features = ["full"] } 11 | tokio-tungstenite = { version = "0.15", features = ["rustls-tls"] } 12 | futures-util = "0.3" 13 | tungstenite = "0.12" 14 | serde = { version = "1.0", features = ["derive"] } 15 | serde_json = "1.0.113" 16 | reqwest = { version = "0.11", features = ["json"] } 17 | hmac-sha1 = "0.2.2" 18 | urlencoding = "2.1.3" 19 | base64 = "0.21.7" 20 | dotenv = "0.15.0" 21 | textnonce = "1.0.0" 22 | chrono = "0.4.34" 23 | percent-encoding = "2.3.1" 24 | hmac = "0.12.1" 25 | sha1 = "0.10.6" 26 | base64-url = "2.0.2" 27 | reqwest-oauth1 = "0.2.4" -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Arbitrage 2 | 3 | A crypto arbitrage script that track price from bybit and hyperliquid with twitter notification 4 | 5 | Screenshot 2024-02-19 at 1 41 04 PM 6 | 7 | 8 | ## App Features 9 | 10 | -Notify when there's a 5% price difference on both sides 11 | 12 | -Get notification [here](https://twitter.com/IrregularArb) 13 | 14 | ## Exchange Supported 15 | 16 | Bybit: USDT perps 17 | 18 | Hyperliquid 19 | 20 | ### Clone repository 21 | 22 | To clone the repository, use the following commands: 23 | 24 | ```sh 25 | git clone https://github.com/xatxay/arbitrage 26 | ``` 27 | 28 | ## Future Features 29 | 30 | -Multiple exchanges support 31 | 32 | -Place order 33 | 34 | ## Contributions & Pull Requests 35 | 36 | Feel free to create issues, PRs and start a discussion 37 | -------------------------------------------------------------------------------- /src/create_tweet.rs: -------------------------------------------------------------------------------- 1 | use std::env; 2 | 3 | use dotenv::dotenv; 4 | use reqwest; 5 | use reqwest_oauth1::OAuthClientProvider; 6 | use serde_json::json; 7 | 8 | pub async fn create_tweet(tweet_text: &str) -> Result<(), Box> { 9 | dotenv().ok(); 10 | 11 | let consumer_key = env::var("CONSUMER_KEY").expect("consumer key is missing"); 12 | let consumer_secret = env::var("CONSUMER_SECRET").expect("cosumer secret is missing"); 13 | let access_token = env::var("ACCESS_TOKEN").expect("access token is missing"); 14 | let token_secret = env::var("TOKEN_SECRET").expect("token secret is missing"); 15 | 16 | let secrets = reqwest_oauth1::Secrets::new(consumer_key, consumer_secret) 17 | .token(access_token, token_secret); 18 | 19 | let endpoint = "https://api.twitter.com/2/tweets"; 20 | let tweet_data = json!({"text": tweet_text}).to_string(); 21 | 22 | let client = reqwest::Client::new(); 23 | let resp = client 24 | .oauth1(secrets) 25 | .post(endpoint) 26 | .header("Content-Type", "application/json") 27 | .body(tweet_data) 28 | .send() 29 | .await?; 30 | 31 | println!("tweet response: {:#?}", resp.text().await); 32 | Ok(()) 33 | } 34 | -------------------------------------------------------------------------------- /common_ticker.rs: -------------------------------------------------------------------------------- 1 | /*[ 2 | "1000BONKUSDT", 3 | "1000LUNCUSDT", 4 | "1000PEPEUSDT", 5 | "AAVEUSDT", 6 | "ACEUSDT", 7 | "ADAUSDT", 8 | "ALTUSDT", 9 | "APEUSDT", 10 | "APTUSDT", 11 | "ARBUSDT", 12 | "ARKUSDT", 13 | "ATOMUSDT", 14 | "AVAXUSDT", 15 | "BADGERUSDT", 16 | "BCHUSDT", 17 | "BIGTIMEUSDT", 18 | "BLURUSDT", 19 | "BLZUSDT", 20 | "BNBUSDT", 21 | "BNTUSDT", 22 | "BSVUSDT", 23 | "BTCUSDT", 24 | "CAKEUSDT", 25 | "CFXUSDT", 26 | "COMPUSDT", 27 | "CRVUSDT", 28 | "CYBERUSDT", 29 | "DOGEUSDT", 30 | "DOTUSDT", 31 | "DYDXUSDT", 32 | "DYMUSDT", 33 | "ENSUSDT", 34 | "ETCUSDT", 35 | "ETHUSDT", 36 | "FETUSDT", 37 | "FILUSDT", 38 | "FTMUSDT", 39 | "FXSUSDT", 40 | "GALAUSDT", 41 | "GASUSDT", 42 | "GMTUSDT", 43 | "GMXUSDT", 44 | "ILVUSDT", 45 | "IMXUSDT", 46 | "INJUSDT", 47 | "JTOUSDT", 48 | "JUPUSDT", 49 | "KASUSDT", 50 | "LDOUSDT", 51 | "LINKUSDT", 52 | "LOOMUSDT", 53 | "LTCUSDT", 54 | "MANTAUSDT", 55 | "MATICUSDT", 56 | "MAVIAUSDT", 57 | "MAVUSDT", 58 | "MEMEUSDT", 59 | "MINAUSDT", 60 | "MKRUSDT", 61 | "NEARUSDT", 62 | "NEOUSDT", 63 | "NTRNUSDT", 64 | "OGNUSDT", 65 | "ONDOUSDT", 66 | "OPUSDT", 67 | "ORBSUSDT", 68 | "ORDIUSDT", 69 | "PENDLEUSDT", 70 | "PEOPLEUSDT", 71 | "POLYXUSDT", 72 | "PYTHUSDT", 73 | "RDNTUSDT", 74 | "REQUSDT", 75 | "RNDRUSDT", 76 | "RSRUSDT", 77 | "RUNEUSDT", 78 | "SEIUSDT", 79 | "SNXUSDT", 80 | "SOLUSDT", 81 | "STGUSDT", 82 | "STRAXUSDT", 83 | "STXUSDT", 84 | "SUIUSDT", 85 | "SUPERUSDT", 86 | "SUSHIUSDT", 87 | "TIAUSDT", 88 | "TONUSDT", 89 | "TRBUSDT", 90 | "TRXUSDT", 91 | "UMAUSDT", 92 | "UNIUSDT", 93 | "USTCUSDT", 94 | "WIFUSDT", 95 | "WLDUSDT", 96 | "XAIUSDT", 97 | "XRPUSDT", 98 | "YGGUSDT", 99 | "ZENUSDT", 100 | "ZETAUSDT", 101 | ]*/ 102 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use crate::share_state::SharedState; 2 | use bybit::Bybit; 3 | use hyperliquid::HyperLiquidStruct; 4 | use std::{sync::Arc, time::Duration}; 5 | use tokio::time::interval; 6 | 7 | mod bybit; 8 | mod compare_price; 9 | mod create_tweet; 10 | mod hyperliquid; 11 | mod share_state; 12 | mod utils; 13 | 14 | fn get_common_tickers(bybit_tickers: Vec, hyperliquid_tickers: Vec) -> Vec { 15 | let common_tickers: Vec = bybit_tickers 16 | .iter() 17 | .filter(|ticker| hyperliquid_tickers.contains(&ticker)) 18 | .cloned() 19 | .collect(); 20 | common_tickers 21 | } 22 | 23 | #[tokio::main] 24 | async fn main() { 25 | let hyper_liquid = HyperLiquidStruct::new().await; 26 | let bybit = Bybit::new(); 27 | let shared_state = Arc::new(SharedState::new()); 28 | 29 | let hyperliquid_tickers = hyper_liquid.get_tickers().await; 30 | 31 | let bybit_tickers = bybit 32 | .get_tickers() 33 | .await 34 | .expect("Error calling bybit get tickers"); 35 | 36 | let common_tickers = get_common_tickers(bybit_tickers, hyperliquid_tickers); 37 | 38 | { 39 | let mut bybit_prices = shared_state.bybit_prices.write().await; 40 | let mut hyperliquid_price = shared_state.hyperliquid_prices.write().await; 41 | for ticker in &common_tickers { 42 | bybit_prices.insert(ticker.clone(), 0.0); 43 | hyperliquid_price.insert(ticker.clone(), 0.0); 44 | } 45 | } 46 | 47 | let shared_state_clone_reset = Arc::clone(&shared_state); 48 | tokio::spawn(async move { 49 | let mut interval = interval(Duration::from_secs(3600)); 50 | loop { 51 | interval.tick().await; 52 | { 53 | let mut tweet_symbols = shared_state_clone_reset.tweeted_symbols.write().await; 54 | tweet_symbols.clear(); 55 | println!("**************************************** Tweet symbols reset ****************************************"); 56 | } 57 | } 58 | }); 59 | 60 | tokio::join!( 61 | hyper_liquid.hyperliquid_ws(&shared_state), 62 | bybit.bybit_ws(&common_tickers, &shared_state) 63 | ); 64 | } 65 | -------------------------------------------------------------------------------- /src/hyperliquid.rs: -------------------------------------------------------------------------------- 1 | use crate::{compare_price::compare_prices, share_state::SharedState}; 2 | use hyperliquid_rust_sdk::{BaseUrl, InfoClient, Message, Subscription}; 3 | use std::{collections::HashMap, sync::Arc}; 4 | use tokio::sync::mpsc::unbounded_channel; 5 | 6 | pub struct HyperLiquidStruct { 7 | info_client: InfoClient, 8 | } 9 | 10 | impl HyperLiquidStruct { 11 | pub async fn new() -> Self { 12 | Self { 13 | info_client: InfoClient::new(None, Some(BaseUrl::Mainnet)).await.unwrap(), 14 | } 15 | } 16 | 17 | fn format_hyperliquid_tickers(tickers: &HashMap) -> Vec { 18 | let symbols: Vec = tickers 19 | .keys() 20 | .map(|key| Self::format_ticker_name(key)) 21 | .collect(); 22 | symbols 23 | } 24 | 25 | fn format_ticker_name(ticker: &String) -> String { 26 | let formatted_ticker = if ticker.starts_with("k") { 27 | ticker.replacen("k", "1000", 1) 28 | } else { 29 | ticker.to_string() 30 | }; 31 | format!("{}USDT", formatted_ticker) 32 | } 33 | 34 | pub async fn get_tickers(&self) -> Vec { 35 | let tickers = self.info_client.all_mids().await.unwrap(); 36 | let format_tickers = Self::format_hyperliquid_tickers(&tickers); 37 | format_tickers 38 | } 39 | 40 | pub async fn hyperliquid_ws(mut self, shared_state: &Arc) { 41 | let (sender, mut receiver) = unbounded_channel(); 42 | self.info_client 43 | .subscribe(Subscription::AllMids, sender) 44 | .await 45 | .unwrap(); 46 | 47 | while let Some(Message::AllMids(all_mids)) = receiver.recv().await { 48 | for (ticker, price_str) in all_mids.data.mids.iter() { 49 | let formatted_ticker = Self::format_ticker_name(&ticker); 50 | let price: f64 = price_str.parse().unwrap_or(0.0); 51 | { 52 | let mut hyperliquid_prices = shared_state.hyperliquid_prices.write().await; 53 | hyperliquid_prices.insert(formatted_ticker.clone(), price); 54 | } 55 | // let read_hyperliquid_prices = shared_state.hyperliquid_prices.read().await; 56 | // println!("share state: {:#?}", read_hyperliquid_prices); 57 | // compare_prices(shared_state, &formatted_ticker) 58 | // .await 59 | // .expect("Failed comparing price at hyperliquic"); 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/compare_price.rs: -------------------------------------------------------------------------------- 1 | use crate::{create_tweet::create_tweet, share_state::SharedState}; 2 | use chrono::Utc; 3 | use std::{error, sync::Arc}; 4 | 5 | pub async fn compare_prices( 6 | shared_state: &Arc, 7 | symbol: &str, 8 | ) -> Result<(), Box> { 9 | let bybit_price = { 10 | let bybit_prices = shared_state.bybit_prices.read().await; 11 | *bybit_prices.get(symbol).unwrap_or(&0.0) 12 | }; 13 | 14 | let hyperliquid_price = { 15 | let hyperliquid_prices = shared_state.hyperliquid_prices.read().await; 16 | *hyperliquid_prices.get(symbol).unwrap_or(&0.0) 17 | }; 18 | 19 | if bybit_price == 0.0 || hyperliquid_price == 0.0 { 20 | return Ok(()); 21 | } 22 | 23 | let difference = ((bybit_price - hyperliquid_price) / bybit_price).abs() * 100.0; 24 | // println!( 25 | // "comparing: {:#?}, bybit price: {:#?}, hyperliquid price: {:#?}, difference: {:.5}%", 26 | // symbol, bybit_price, hyperliquid_price, difference 27 | // ); 28 | 29 | if difference >= 5.0 { 30 | let tweeted_symbols = shared_state.tweeted_symbols.read().await; 31 | if !tweeted_symbols.contains(symbol) { 32 | drop(tweeted_symbols); 33 | 34 | let tweet_text = format!( 35 | "5% difference for {}:\nBYBIT price: {}, HYPERLIQUID price: {}\nDIFFERENCE: {:.5}%\nTimestamp: {}", 36 | symbol, bybit_price, hyperliquid_price, difference, Utc::now().to_rfc3339_opts(chrono::SecondsFormat::Millis, true) 37 | ); 38 | println!("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n{}\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", tweet_text); 39 | println!( 40 | ">5%: {:#?}, bybit price: {:#?}, hyperliquid price: {:#?}, difference: {:.5}%", 41 | symbol, bybit_price, hyperliquid_price, difference 42 | ); 43 | create_tweet(&tweet_text).await?; 44 | 45 | let mut tweeted_symbols = shared_state.tweeted_symbols.write().await; 46 | tweeted_symbols.insert(symbol.to_string()); 47 | } 48 | } 49 | 50 | // if symbol == "BTCUSDT" { 51 | // let tweeted_symbols = shared_state.tweeted_symbols.read().await; 52 | // if !tweeted_symbols.contains(symbol) { 53 | // drop(tweeted_symbols); 54 | 55 | // let tweet_text = format!( 56 | // "$BTC BTCUSDT:\nBYBIT price: {}, HYPERLIQUID price: {}, difference: {:.5}%\nTimestamp: {}", 57 | // bybit_price, hyperliquid_price, difference, Utc::now().to_rfc3339_opts(chrono::SecondsFormat::Millis, true) 58 | // ); 59 | // println!("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n{}\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", tweet_text); 60 | // create_tweet(&tweet_text).await?; 61 | 62 | // let mut tweeted_symbols = shared_state.tweeted_symbols.write().await; 63 | // tweeted_symbols.insert(symbol.to_string()); 64 | // } 65 | // } 66 | 67 | Ok(()) 68 | } 69 | -------------------------------------------------------------------------------- /src/utils/bybit_struct.rs: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | use std::collections::HashMap; 3 | 4 | #[derive(Serialize, Deserialize, Debug)] 5 | #[serde(rename_all = "camelCase")] 6 | pub struct LeverageFilter { 7 | min_leverage: String, 8 | max_leverage: String, 9 | leverage_step: String, 10 | } 11 | 12 | #[derive(Serialize, Deserialize, Debug)] 13 | #[serde(rename_all = "camelCase")] 14 | pub struct PriceFilter { 15 | min_price: String, 16 | max_price: String, 17 | tick_size: String, 18 | } 19 | 20 | #[derive(Serialize, Deserialize, Debug)] 21 | #[serde(rename_all = "camelCase")] 22 | pub struct LotSizeFilter { 23 | max_order_qty: String, 24 | min_order_qty: String, 25 | qty_step: String, 26 | post_only_max_order_qty: String, 27 | } 28 | 29 | #[derive(Serialize, Deserialize, Debug)] 30 | pub struct BybitList { 31 | pub symbol: String, 32 | #[serde(rename = "contractType")] 33 | contract_type: String, 34 | status: String, 35 | #[serde(rename = "baseCoin")] 36 | base_coin: String, 37 | #[serde(rename = "quoteCoin")] 38 | quote_coin: String, 39 | #[serde(rename = "launchTime")] 40 | launch_time: String, 41 | #[serde(rename = "deliveryTime")] 42 | delivery_time: String, 43 | #[serde(rename = "deliveryFeeRate")] 44 | delivery_fee_rate: String, 45 | #[serde(rename = "priceScale")] 46 | price_scale: String, 47 | #[serde(rename = "leverageFilter")] 48 | leverage_filter: LeverageFilter, 49 | #[serde(rename = "priceFilter")] 50 | price_filter: PriceFilter, 51 | #[serde(rename = "lotSizeFilter")] 52 | lot_size_filter: LotSizeFilter, 53 | #[serde(rename = "unifiedMarginTrade")] 54 | unified_margin_trade: bool, 55 | #[serde(rename = "fundingInterval")] 56 | funding_interval: i64, 57 | #[serde(rename = "settleCoin")] 58 | settle_coin: String, 59 | #[serde(rename = "copyTrading")] 60 | copy_trading: String, 61 | #[serde(rename = "upperFundingRate")] 62 | upper_funding_rate: String, 63 | #[serde(rename = "lowerFundingRate")] 64 | lower_funding_rate: String, 65 | } 66 | 67 | #[derive(Serialize, Deserialize, Debug)] 68 | pub struct BybitApiResult { 69 | category: String, 70 | pub list: Vec, 71 | #[serde(rename = "nextPageCursor")] 72 | next_page_cursor: String, 73 | } 74 | 75 | #[derive(Serialize, Deserialize, Debug)] 76 | pub struct BybitApiResponse { 77 | #[serde(rename = "retCode")] 78 | ret_code: i32, 79 | #[serde(rename = "retMsg")] 80 | ret_msg: String, 81 | pub result: BybitApiResult, 82 | #[serde(rename = "retExtInfo")] 83 | ret_ext_info: HashMap, 84 | time: u64, 85 | } 86 | 87 | #[derive(Serialize, Deserialize, Debug)] 88 | pub struct BybitWsData { 89 | start: u64, 90 | end: u64, 91 | interval: String, 92 | open: String, 93 | pub close: String, 94 | high: String, 95 | low: String, 96 | volume: String, 97 | turnover: String, 98 | confirm: bool, 99 | timestamp: u64, 100 | } 101 | 102 | #[derive(Serialize, Deserialize, Debug)] 103 | pub struct BybitWsResponse { 104 | pub topic: String, 105 | pub data: Vec, 106 | ts: u64, 107 | #[serde(rename = "type")] 108 | type_field: String, 109 | } 110 | -------------------------------------------------------------------------------- /src/bybit.rs: -------------------------------------------------------------------------------- 1 | use std::sync::Arc; 2 | 3 | use futures_util::{SinkExt, StreamExt}; 4 | use tokio_tungstenite::{connect_async, tungstenite::protocol::Message}; 5 | 6 | use crate::{ 7 | compare_price::compare_prices, 8 | share_state::SharedState, 9 | utils::{BybitApiResponse, BybitWsResponse}, 10 | }; 11 | 12 | pub struct Bybit { 13 | instrument_api_url: String, 14 | ws_url: String, 15 | } 16 | 17 | impl Bybit { 18 | pub fn new() -> Self { 19 | Self { 20 | instrument_api_url: "https://api.bybit.com/v5/market/instruments-info?category=linear" 21 | .into(), 22 | ws_url: "wss://stream.bybit.com/v5/public/linear".into(), 23 | } 24 | } 25 | 26 | pub async fn get_tickers(&self) -> Result, Box> { 27 | let response = reqwest::get(&self.instrument_api_url).await?; 28 | let response_data: BybitApiResponse = response.json().await?; 29 | 30 | let tickers: Vec = response_data 31 | .result 32 | .list 33 | .iter() 34 | .filter_map(|ticker| { 35 | if !ticker.symbol.contains("-") { 36 | Some(ticker.symbol.clone()) 37 | } else { 38 | None 39 | } 40 | }) 41 | .collect(); 42 | 43 | Ok(tickers) 44 | } 45 | pub async fn bybit_ws(&self, common_tickers: &Vec, shared_state: &Arc) { 46 | let (mut ws_stream, _) = connect_async(&self.ws_url) 47 | .await 48 | .expect("Failed connecting to bybit ws"); 49 | println!("Bybit ws connected"); 50 | 51 | let args: Vec = common_tickers 52 | .iter() 53 | .map(|ticker| format!("kline.D.{}", ticker)) 54 | .collect(); 55 | 56 | let subscribe_message = serde_json::json!({ 57 | "op": "subscribe", 58 | "args": args 59 | }) 60 | .to_string(); 61 | 62 | ws_stream 63 | .send(Message::Text(subscribe_message)) 64 | .await 65 | .expect("failed subscribing to topic"); 66 | 67 | while let Some(message) = ws_stream.next().await { 68 | match message { 69 | Ok(Message::Text(text)) => match serde_json::from_str::(&text) { 70 | Ok(parse_msg) => { 71 | let symbol = parse_msg.topic.split(".").last().unwrap().to_string(); 72 | if common_tickers.contains(&symbol) { 73 | let price: f64 = parse_msg.data[0].close.parse().unwrap(); 74 | { 75 | let mut bybit_prices = shared_state.bybit_prices.write().await; 76 | bybit_prices.insert(symbol.clone(), price); 77 | } 78 | // let bybit_price_read = shared_state.bybit_prices.read().await; 79 | // println!("shared state bybit: {:#?}", bybit_price_read); 80 | compare_prices(shared_state, &symbol) 81 | .await 82 | .expect("Failed comparing price in bybit"); 83 | } 84 | } 85 | Err(e) => eprintln!("failed parsing bybit data: {:#?}", e), 86 | }, 87 | Ok(data) => println!("not parse: {:#?}", data), 88 | Err(e) => eprintln!("bybit ws error: {:#?}", e), 89 | } 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /src/generate_signature.rs: -------------------------------------------------------------------------------- 1 | use base64::prelude::*; 2 | use chrono::Utc; 3 | use dotenv::dotenv; 4 | use hmac::{Hmac, Mac}; 5 | use percent_encoding::{utf8_percent_encode, NON_ALPHANUMERIC}; 6 | use sha1::Sha1; 7 | use std::env; 8 | use textnonce::TextNonce; 9 | 10 | pub fn generate_nonce() -> String { 11 | let nonce = TextNonce::sized(16).expect("failed getting nonce"); 12 | nonce.to_string() 13 | } 14 | 15 | pub fn generate_oauth_signature() -> String { 16 | dotenv().ok(); 17 | let timestamp = (Utc::now().timestamp_millis() / 1000).to_string(); 18 | let consumer_key = env::var("CONSUMER_KEY").expect("consumer key is missing"); 19 | let consumer_secret = env::var("CONSUMER_SECRET").expect("cosumer secret is missing"); 20 | let access_token = env::var("ACCESS_TOKEN").expect("access token is missing"); 21 | let token_secret = env::var("TOKEN_SECRET").expect("token secret is missing"); 22 | let http_method = "POST"; 23 | let base_url = "https://api.twitter.com/2/tweets"; 24 | let nonce = generate_nonce(); 25 | 26 | let mut signing_params: Vec<(String, String)> = Vec::new(); 27 | signing_params.push(("oauth_consumer_key".to_string(), consumer_key.to_string())); 28 | signing_params.push(("oauth_nonce".to_string(), nonce.to_string())); 29 | signing_params.push(( 30 | "oauth_signature_method".to_string(), 31 | "HMAC-SHA1".to_string(), 32 | )); 33 | signing_params.push(("oauth_token".to_string(), access_token.to_string())); 34 | signing_params.push(("oauth_timestamp".to_string(), timestamp.to_string())); 35 | signing_params.push(("oauth_version".to_string(), "1.0".to_string())); 36 | 37 | signing_params.sort(); 38 | let param_string = signing_params 39 | .into_iter() 40 | .map(|(key, value)| { 41 | format!( 42 | "{}={}", 43 | utf8_percent_encode(&key, NON_ALPHANUMERIC), 44 | utf8_percent_encode(&value, NON_ALPHANUMERIC) 45 | ) 46 | }) 47 | .collect::>() 48 | .join("&"); 49 | let signature_base_string = format!( 50 | "{}&{}&{}", 51 | http_method, 52 | utf8_percent_encode(base_url, NON_ALPHANUMERIC), 53 | utf8_percent_encode(¶m_string, NON_ALPHANUMERIC) 54 | ); 55 | 56 | let signing_key = format!("{}&{}", consumer_secret, token_secret); 57 | let mut mac = Hmac::::new_from_slice(signing_key.as_bytes()) 58 | .expect("Hmac can take key of any size"); 59 | mac.update(signature_base_string.as_bytes()); 60 | let signature = BASE64_STANDARD.encode(mac.finalize().into_bytes()); 61 | // let signature = base64_url::encode(&mac.finalize().into_bytes()); 62 | 63 | // format!("OAuth oauth_consumer_key=\"{}\", oauth_nonce=\"{}\", oauth_signature=\"{}\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"{}\", oauth_token=\"{}\", oauth_version=\"1.0\"", 64 | // utf8_percent_encode(&consumer_key, NON_ALPHANUMERIC), 65 | // utf8_percent_encode(&nonce, NON_ALPHANUMERIC), 66 | // utf8_percent_encode(&signature, NON_ALPHANUMERIC), 67 | // utf8_percent_encode(×tamp, NON_ALPHANUMERIC), 68 | // utf8_percent_encode(&access_token, NON_ALPHANUMERIC) 69 | // ) 70 | // format!("include_entities=true&oauth_consumer_key={}&oauth_nonce={}&oauth_signature_method=HMAC-SHA1&oauth_timestamp={}&oauth_token={}&oauth_version=1.0&oauth_signature={}&status=Hello", 71 | // utf8_percent_encode(&consumer_key, NON_ALPHANUMERIC), 72 | // utf8_percent_encode(&nonce, NON_ALPHANUMERIC), 73 | // utf8_percent_encode(×tamp, NON_ALPHANUMERIC), 74 | // utf8_percent_encode(&access_token, NON_ALPHANUMERIC), 75 | // utf8_percent_encode(&signature, NON_ALPHANUMERIC), 76 | // ) 77 | signature 78 | } 79 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "Inflector" 7 | version = "0.11.4" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" 10 | dependencies = [ 11 | "lazy_static", 12 | "regex", 13 | ] 14 | 15 | [[package]] 16 | name = "addr2line" 17 | version = "0.21.0" 18 | source = "registry+https://github.com/rust-lang/crates.io-index" 19 | checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" 20 | dependencies = [ 21 | "gimli", 22 | ] 23 | 24 | [[package]] 25 | name = "adler" 26 | version = "1.0.2" 27 | source = "registry+https://github.com/rust-lang/crates.io-index" 28 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 29 | 30 | [[package]] 31 | name = "aes" 32 | version = "0.7.5" 33 | source = "registry+https://github.com/rust-lang/crates.io-index" 34 | checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" 35 | dependencies = [ 36 | "cfg-if 1.0.0", 37 | "cipher", 38 | "cpufeatures", 39 | "opaque-debug 0.3.0", 40 | ] 41 | 42 | [[package]] 43 | name = "ahash" 44 | version = "0.7.8" 45 | source = "registry+https://github.com/rust-lang/crates.io-index" 46 | checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" 47 | dependencies = [ 48 | "getrandom 0.2.12", 49 | "once_cell", 50 | "version_check", 51 | ] 52 | 53 | [[package]] 54 | name = "aho-corasick" 55 | version = "1.1.2" 56 | source = "registry+https://github.com/rust-lang/crates.io-index" 57 | checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" 58 | dependencies = [ 59 | "memchr", 60 | ] 61 | 62 | [[package]] 63 | name = "android-tzdata" 64 | version = "0.1.1" 65 | source = "registry+https://github.com/rust-lang/crates.io-index" 66 | checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" 67 | 68 | [[package]] 69 | name = "android_system_properties" 70 | version = "0.1.5" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 73 | dependencies = [ 74 | "libc", 75 | ] 76 | 77 | [[package]] 78 | name = "arrayvec" 79 | version = "0.7.4" 80 | source = "registry+https://github.com/rust-lang/crates.io-index" 81 | checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" 82 | 83 | [[package]] 84 | name = "async-trait" 85 | version = "0.1.77" 86 | source = "registry+https://github.com/rust-lang/crates.io-index" 87 | checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" 88 | dependencies = [ 89 | "proc-macro2", 90 | "quote", 91 | "syn 2.0.49", 92 | ] 93 | 94 | [[package]] 95 | name = "async_io_stream" 96 | version = "0.3.3" 97 | source = "registry+https://github.com/rust-lang/crates.io-index" 98 | checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" 99 | dependencies = [ 100 | "futures", 101 | "pharos", 102 | "rustc_version", 103 | ] 104 | 105 | [[package]] 106 | name = "auto_impl" 107 | version = "1.1.2" 108 | source = "registry+https://github.com/rust-lang/crates.io-index" 109 | checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" 110 | dependencies = [ 111 | "proc-macro2", 112 | "quote", 113 | "syn 2.0.49", 114 | ] 115 | 116 | [[package]] 117 | name = "autocfg" 118 | version = "1.1.0" 119 | source = "registry+https://github.com/rust-lang/crates.io-index" 120 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 121 | 122 | [[package]] 123 | name = "backtrace" 124 | version = "0.3.69" 125 | source = "registry+https://github.com/rust-lang/crates.io-index" 126 | checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" 127 | dependencies = [ 128 | "addr2line", 129 | "cc", 130 | "cfg-if 1.0.0", 131 | "libc", 132 | "miniz_oxide", 133 | "object", 134 | "rustc-demangle", 135 | ] 136 | 137 | [[package]] 138 | name = "base16ct" 139 | version = "0.1.1" 140 | source = "registry+https://github.com/rust-lang/crates.io-index" 141 | checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" 142 | 143 | [[package]] 144 | name = "base58" 145 | version = "0.1.0" 146 | source = "registry+https://github.com/rust-lang/crates.io-index" 147 | checksum = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" 148 | 149 | [[package]] 150 | name = "base58check" 151 | version = "0.1.0" 152 | source = "registry+https://github.com/rust-lang/crates.io-index" 153 | checksum = "2ee2fe4c9a0c84515f136aaae2466744a721af6d63339c18689d9e995d74d99b" 154 | dependencies = [ 155 | "base58", 156 | "sha2 0.8.2", 157 | ] 158 | 159 | [[package]] 160 | name = "base64" 161 | version = "0.12.3" 162 | source = "registry+https://github.com/rust-lang/crates.io-index" 163 | checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" 164 | 165 | [[package]] 166 | name = "base64" 167 | version = "0.13.1" 168 | source = "registry+https://github.com/rust-lang/crates.io-index" 169 | checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" 170 | 171 | [[package]] 172 | name = "base64" 173 | version = "0.21.7" 174 | source = "registry+https://github.com/rust-lang/crates.io-index" 175 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 176 | 177 | [[package]] 178 | name = "base64-url" 179 | version = "2.0.2" 180 | source = "registry+https://github.com/rust-lang/crates.io-index" 181 | checksum = "fb9fb9fb058cc3063b5fc88d9a21eefa2735871498a04e1650da76ed511c8569" 182 | dependencies = [ 183 | "base64 0.21.7", 184 | ] 185 | 186 | [[package]] 187 | name = "base64ct" 188 | version = "1.0.1" 189 | source = "registry+https://github.com/rust-lang/crates.io-index" 190 | checksum = "8a32fd6af2b5827bce66c29053ba0e7c42b9dcab01835835058558c10851a46b" 191 | 192 | [[package]] 193 | name = "bech32" 194 | version = "0.7.3" 195 | source = "registry+https://github.com/rust-lang/crates.io-index" 196 | checksum = "2dabbe35f96fb9507f7330793dc490461b2962659ac5d427181e451a623751d1" 197 | 198 | [[package]] 199 | name = "bincode" 200 | version = "1.3.3" 201 | source = "registry+https://github.com/rust-lang/crates.io-index" 202 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" 203 | dependencies = [ 204 | "serde", 205 | ] 206 | 207 | [[package]] 208 | name = "bitflags" 209 | version = "1.3.2" 210 | source = "registry+https://github.com/rust-lang/crates.io-index" 211 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 212 | 213 | [[package]] 214 | name = "bitflags" 215 | version = "2.4.2" 216 | source = "registry+https://github.com/rust-lang/crates.io-index" 217 | checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" 218 | 219 | [[package]] 220 | name = "bitvec" 221 | version = "0.17.4" 222 | source = "registry+https://github.com/rust-lang/crates.io-index" 223 | checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c" 224 | dependencies = [ 225 | "either", 226 | "radium 0.3.0", 227 | ] 228 | 229 | [[package]] 230 | name = "bitvec" 231 | version = "1.0.1" 232 | source = "registry+https://github.com/rust-lang/crates.io-index" 233 | checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" 234 | dependencies = [ 235 | "funty", 236 | "radium 0.7.0", 237 | "tap", 238 | "wyz", 239 | ] 240 | 241 | [[package]] 242 | name = "blake2" 243 | version = "0.10.6" 244 | source = "registry+https://github.com/rust-lang/crates.io-index" 245 | checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" 246 | dependencies = [ 247 | "digest 0.10.7", 248 | ] 249 | 250 | [[package]] 251 | name = "block-buffer" 252 | version = "0.7.3" 253 | source = "registry+https://github.com/rust-lang/crates.io-index" 254 | checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" 255 | dependencies = [ 256 | "block-padding", 257 | "byte-tools", 258 | "byteorder", 259 | "generic-array 0.12.4", 260 | ] 261 | 262 | [[package]] 263 | name = "block-buffer" 264 | version = "0.9.0" 265 | source = "registry+https://github.com/rust-lang/crates.io-index" 266 | checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" 267 | dependencies = [ 268 | "generic-array 0.14.7", 269 | ] 270 | 271 | [[package]] 272 | name = "block-buffer" 273 | version = "0.10.4" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" 276 | dependencies = [ 277 | "generic-array 0.14.7", 278 | ] 279 | 280 | [[package]] 281 | name = "block-padding" 282 | version = "0.1.5" 283 | source = "registry+https://github.com/rust-lang/crates.io-index" 284 | checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" 285 | dependencies = [ 286 | "byte-tools", 287 | ] 288 | 289 | [[package]] 290 | name = "borsh" 291 | version = "1.3.0" 292 | source = "registry+https://github.com/rust-lang/crates.io-index" 293 | checksum = "26d4d6dafc1a3bb54687538972158f07b2c948bc57d5890df22c0739098b3028" 294 | dependencies = [ 295 | "borsh-derive", 296 | "cfg_aliases", 297 | ] 298 | 299 | [[package]] 300 | name = "borsh-derive" 301 | version = "1.3.0" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | checksum = "bf4918709cc4dd777ad2b6303ed03cb37f3ca0ccede8c1b0d28ac6db8f4710e0" 304 | dependencies = [ 305 | "once_cell", 306 | "proc-macro-crate 2.0.2", 307 | "proc-macro2", 308 | "quote", 309 | "syn 2.0.49", 310 | "syn_derive", 311 | ] 312 | 313 | [[package]] 314 | name = "bs58" 315 | version = "0.4.0" 316 | source = "registry+https://github.com/rust-lang/crates.io-index" 317 | checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" 318 | 319 | [[package]] 320 | name = "bumpalo" 321 | version = "3.15.0" 322 | source = "registry+https://github.com/rust-lang/crates.io-index" 323 | checksum = "d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f" 324 | 325 | [[package]] 326 | name = "byte-slice-cast" 327 | version = "1.2.2" 328 | source = "registry+https://github.com/rust-lang/crates.io-index" 329 | checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" 330 | 331 | [[package]] 332 | name = "byte-tools" 333 | version = "0.3.1" 334 | source = "registry+https://github.com/rust-lang/crates.io-index" 335 | checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" 336 | 337 | [[package]] 338 | name = "bytecheck" 339 | version = "0.6.12" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" 342 | dependencies = [ 343 | "bytecheck_derive", 344 | "ptr_meta", 345 | "simdutf8", 346 | ] 347 | 348 | [[package]] 349 | name = "bytecheck_derive" 350 | version = "0.6.12" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" 353 | dependencies = [ 354 | "proc-macro2", 355 | "quote", 356 | "syn 1.0.109", 357 | ] 358 | 359 | [[package]] 360 | name = "byteorder" 361 | version = "1.5.0" 362 | source = "registry+https://github.com/rust-lang/crates.io-index" 363 | checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" 364 | 365 | [[package]] 366 | name = "bytes" 367 | version = "1.5.0" 368 | source = "registry+https://github.com/rust-lang/crates.io-index" 369 | checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" 370 | dependencies = [ 371 | "serde", 372 | ] 373 | 374 | [[package]] 375 | name = "camino" 376 | version = "1.1.6" 377 | source = "registry+https://github.com/rust-lang/crates.io-index" 378 | checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" 379 | dependencies = [ 380 | "serde", 381 | ] 382 | 383 | [[package]] 384 | name = "cargo-platform" 385 | version = "0.1.7" 386 | source = "registry+https://github.com/rust-lang/crates.io-index" 387 | checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" 388 | dependencies = [ 389 | "serde", 390 | ] 391 | 392 | [[package]] 393 | name = "cargo_metadata" 394 | version = "0.15.4" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" 397 | dependencies = [ 398 | "camino", 399 | "cargo-platform", 400 | "semver", 401 | "serde", 402 | "serde_json", 403 | "thiserror", 404 | ] 405 | 406 | [[package]] 407 | name = "cc" 408 | version = "1.0.83" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" 411 | dependencies = [ 412 | "libc", 413 | ] 414 | 415 | [[package]] 416 | name = "cfg-if" 417 | version = "0.1.10" 418 | source = "registry+https://github.com/rust-lang/crates.io-index" 419 | checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" 420 | 421 | [[package]] 422 | name = "cfg-if" 423 | version = "1.0.0" 424 | source = "registry+https://github.com/rust-lang/crates.io-index" 425 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 426 | 427 | [[package]] 428 | name = "cfg_aliases" 429 | version = "0.1.1" 430 | source = "registry+https://github.com/rust-lang/crates.io-index" 431 | checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" 432 | 433 | [[package]] 434 | name = "chrono" 435 | version = "0.4.34" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" 438 | dependencies = [ 439 | "android-tzdata", 440 | "iana-time-zone", 441 | "js-sys", 442 | "num-traits", 443 | "wasm-bindgen", 444 | "windows-targets 0.52.0", 445 | ] 446 | 447 | [[package]] 448 | name = "cipher" 449 | version = "0.3.0" 450 | source = "registry+https://github.com/rust-lang/crates.io-index" 451 | checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" 452 | dependencies = [ 453 | "generic-array 0.14.7", 454 | ] 455 | 456 | [[package]] 457 | name = "coins-bip32" 458 | version = "0.7.0" 459 | source = "registry+https://github.com/rust-lang/crates.io-index" 460 | checksum = "634c509653de24b439672164bbf56f5f582a2ab0e313d3b0f6af0b7345cf2560" 461 | dependencies = [ 462 | "bincode", 463 | "bs58", 464 | "coins-core", 465 | "digest 0.10.7", 466 | "getrandom 0.2.12", 467 | "hmac 0.12.1", 468 | "k256", 469 | "lazy_static", 470 | "serde", 471 | "sha2 0.10.8", 472 | "thiserror", 473 | ] 474 | 475 | [[package]] 476 | name = "coins-bip39" 477 | version = "0.7.0" 478 | source = "registry+https://github.com/rust-lang/crates.io-index" 479 | checksum = "2a11892bcac83b4c6e95ab84b5b06c76d9d70ad73548dd07418269c5c7977171" 480 | dependencies = [ 481 | "bitvec 0.17.4", 482 | "coins-bip32", 483 | "getrandom 0.2.12", 484 | "hex", 485 | "hmac 0.12.1", 486 | "pbkdf2 0.11.0", 487 | "rand 0.8.5", 488 | "sha2 0.10.8", 489 | "thiserror", 490 | ] 491 | 492 | [[package]] 493 | name = "coins-core" 494 | version = "0.7.0" 495 | source = "registry+https://github.com/rust-lang/crates.io-index" 496 | checksum = "c94090a6663f224feae66ab01e41a2555a8296ee07b5f20dab8888bdefc9f617" 497 | dependencies = [ 498 | "base58check", 499 | "base64 0.12.3", 500 | "bech32", 501 | "blake2", 502 | "digest 0.10.7", 503 | "generic-array 0.14.7", 504 | "hex", 505 | "ripemd", 506 | "serde", 507 | "serde_derive", 508 | "sha2 0.10.8", 509 | "sha3", 510 | "thiserror", 511 | ] 512 | 513 | [[package]] 514 | name = "const-oid" 515 | version = "0.9.6" 516 | source = "registry+https://github.com/rust-lang/crates.io-index" 517 | checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" 518 | 519 | [[package]] 520 | name = "convert_case" 521 | version = "0.5.0" 522 | source = "registry+https://github.com/rust-lang/crates.io-index" 523 | checksum = "fb4a24b1aaf0fd0ce8b45161144d6f42cd91677fd5940fd431183eb023b3a2b8" 524 | 525 | [[package]] 526 | name = "core-foundation" 527 | version = "0.9.4" 528 | source = "registry+https://github.com/rust-lang/crates.io-index" 529 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 530 | dependencies = [ 531 | "core-foundation-sys", 532 | "libc", 533 | ] 534 | 535 | [[package]] 536 | name = "core-foundation-sys" 537 | version = "0.8.6" 538 | source = "registry+https://github.com/rust-lang/crates.io-index" 539 | checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" 540 | 541 | [[package]] 542 | name = "cpufeatures" 543 | version = "0.2.12" 544 | source = "registry+https://github.com/rust-lang/crates.io-index" 545 | checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" 546 | dependencies = [ 547 | "libc", 548 | ] 549 | 550 | [[package]] 551 | name = "crunchy" 552 | version = "0.2.2" 553 | source = "registry+https://github.com/rust-lang/crates.io-index" 554 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" 555 | 556 | [[package]] 557 | name = "crypto-bigint" 558 | version = "0.4.9" 559 | source = "registry+https://github.com/rust-lang/crates.io-index" 560 | checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" 561 | dependencies = [ 562 | "generic-array 0.14.7", 563 | "rand_core 0.6.4", 564 | "subtle", 565 | "zeroize", 566 | ] 567 | 568 | [[package]] 569 | name = "crypto-common" 570 | version = "0.1.6" 571 | source = "registry+https://github.com/rust-lang/crates.io-index" 572 | checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" 573 | dependencies = [ 574 | "generic-array 0.14.7", 575 | "typenum", 576 | ] 577 | 578 | [[package]] 579 | name = "crypto-mac" 580 | version = "0.9.1" 581 | source = "registry+https://github.com/rust-lang/crates.io-index" 582 | checksum = "58bcd97a54c7ca5ce2f6eb16f6bede5b0ab5f0055fedc17d2f0b4466e21671ca" 583 | dependencies = [ 584 | "generic-array 0.14.7", 585 | "subtle", 586 | ] 587 | 588 | [[package]] 589 | name = "ctr" 590 | version = "0.8.0" 591 | source = "registry+https://github.com/rust-lang/crates.io-index" 592 | checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" 593 | dependencies = [ 594 | "cipher", 595 | ] 596 | 597 | [[package]] 598 | name = "data-encoding" 599 | version = "2.5.0" 600 | source = "registry+https://github.com/rust-lang/crates.io-index" 601 | checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" 602 | 603 | [[package]] 604 | name = "der" 605 | version = "0.6.1" 606 | source = "registry+https://github.com/rust-lang/crates.io-index" 607 | checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" 608 | dependencies = [ 609 | "const-oid", 610 | "zeroize", 611 | ] 612 | 613 | [[package]] 614 | name = "digest" 615 | version = "0.8.1" 616 | source = "registry+https://github.com/rust-lang/crates.io-index" 617 | checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" 618 | dependencies = [ 619 | "generic-array 0.12.4", 620 | ] 621 | 622 | [[package]] 623 | name = "digest" 624 | version = "0.9.0" 625 | source = "registry+https://github.com/rust-lang/crates.io-index" 626 | checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" 627 | dependencies = [ 628 | "generic-array 0.14.7", 629 | ] 630 | 631 | [[package]] 632 | name = "digest" 633 | version = "0.10.7" 634 | source = "registry+https://github.com/rust-lang/crates.io-index" 635 | checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" 636 | dependencies = [ 637 | "block-buffer 0.10.4", 638 | "crypto-common", 639 | "subtle", 640 | ] 641 | 642 | [[package]] 643 | name = "dotenv" 644 | version = "0.15.0" 645 | source = "registry+https://github.com/rust-lang/crates.io-index" 646 | checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" 647 | 648 | [[package]] 649 | name = "dunce" 650 | version = "1.0.4" 651 | source = "registry+https://github.com/rust-lang/crates.io-index" 652 | checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" 653 | 654 | [[package]] 655 | name = "ecdsa" 656 | version = "0.14.8" 657 | source = "registry+https://github.com/rust-lang/crates.io-index" 658 | checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" 659 | dependencies = [ 660 | "der", 661 | "elliptic-curve", 662 | "rfc6979", 663 | "signature", 664 | ] 665 | 666 | [[package]] 667 | name = "either" 668 | version = "1.10.0" 669 | source = "registry+https://github.com/rust-lang/crates.io-index" 670 | checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" 671 | 672 | [[package]] 673 | name = "elliptic-curve" 674 | version = "0.12.3" 675 | source = "registry+https://github.com/rust-lang/crates.io-index" 676 | checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" 677 | dependencies = [ 678 | "base16ct", 679 | "crypto-bigint", 680 | "der", 681 | "digest 0.10.7", 682 | "ff", 683 | "generic-array 0.14.7", 684 | "group", 685 | "pkcs8", 686 | "rand_core 0.6.4", 687 | "sec1", 688 | "subtle", 689 | "zeroize", 690 | ] 691 | 692 | [[package]] 693 | name = "encoding_rs" 694 | version = "0.8.33" 695 | source = "registry+https://github.com/rust-lang/crates.io-index" 696 | checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" 697 | dependencies = [ 698 | "cfg-if 1.0.0", 699 | ] 700 | 701 | [[package]] 702 | name = "env_logger" 703 | version = "0.10.2" 704 | source = "registry+https://github.com/rust-lang/crates.io-index" 705 | checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" 706 | dependencies = [ 707 | "humantime", 708 | "is-terminal", 709 | "log", 710 | "regex", 711 | "termcolor", 712 | ] 713 | 714 | [[package]] 715 | name = "equivalent" 716 | version = "1.0.1" 717 | source = "registry+https://github.com/rust-lang/crates.io-index" 718 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 719 | 720 | [[package]] 721 | name = "errno" 722 | version = "0.3.8" 723 | source = "registry+https://github.com/rust-lang/crates.io-index" 724 | checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" 725 | dependencies = [ 726 | "libc", 727 | "windows-sys 0.52.0", 728 | ] 729 | 730 | [[package]] 731 | name = "eth-keystore" 732 | version = "0.4.2" 733 | source = "registry+https://github.com/rust-lang/crates.io-index" 734 | checksum = "6f65b750ac950f2f825b36d08bef4cda4112e19a7b1a68f6e2bb499413e12440" 735 | dependencies = [ 736 | "aes", 737 | "ctr", 738 | "digest 0.10.7", 739 | "hex", 740 | "hmac 0.12.1", 741 | "pbkdf2 0.11.0", 742 | "rand 0.8.5", 743 | "scrypt", 744 | "serde", 745 | "serde_json", 746 | "sha2 0.10.8", 747 | "sha3", 748 | "thiserror", 749 | "uuid 0.8.2", 750 | ] 751 | 752 | [[package]] 753 | name = "ethabi" 754 | version = "17.2.0" 755 | source = "registry+https://github.com/rust-lang/crates.io-index" 756 | checksum = "e4966fba78396ff92db3b817ee71143eccd98acf0f876b8d600e585a670c5d1b" 757 | dependencies = [ 758 | "ethereum-types", 759 | "hex", 760 | "once_cell", 761 | "regex", 762 | "serde", 763 | "serde_json", 764 | "sha3", 765 | "thiserror", 766 | "uint", 767 | ] 768 | 769 | [[package]] 770 | name = "ethbloom" 771 | version = "0.12.1" 772 | source = "registry+https://github.com/rust-lang/crates.io-index" 773 | checksum = "11da94e443c60508eb62cf256243a64da87304c2802ac2528847f79d750007ef" 774 | dependencies = [ 775 | "crunchy", 776 | "fixed-hash", 777 | "impl-rlp", 778 | "impl-serde", 779 | "tiny-keccak", 780 | ] 781 | 782 | [[package]] 783 | name = "ethereum-types" 784 | version = "0.13.1" 785 | source = "registry+https://github.com/rust-lang/crates.io-index" 786 | checksum = "b2827b94c556145446fcce834ca86b7abf0c39a805883fe20e72c5bfdb5a0dc6" 787 | dependencies = [ 788 | "ethbloom", 789 | "fixed-hash", 790 | "impl-rlp", 791 | "impl-serde", 792 | "primitive-types", 793 | "uint", 794 | ] 795 | 796 | [[package]] 797 | name = "ethers" 798 | version = "0.17.0" 799 | source = "registry+https://github.com/rust-lang/crates.io-index" 800 | checksum = "16142eeb3155cfa5aec6be3f828a28513a28bd995534f945fa70e7d608f16c10" 801 | dependencies = [ 802 | "ethers-addressbook", 803 | "ethers-contract", 804 | "ethers-core", 805 | "ethers-etherscan", 806 | "ethers-middleware", 807 | "ethers-providers", 808 | "ethers-signers", 809 | ] 810 | 811 | [[package]] 812 | name = "ethers-addressbook" 813 | version = "0.17.0" 814 | source = "registry+https://github.com/rust-lang/crates.io-index" 815 | checksum = "e23f8992ecf45ea9dd2983696aabc566c108723585f07f5dc8c9efb24e52d3db" 816 | dependencies = [ 817 | "ethers-core", 818 | "once_cell", 819 | "serde", 820 | "serde_json", 821 | ] 822 | 823 | [[package]] 824 | name = "ethers-contract" 825 | version = "0.17.0" 826 | source = "registry+https://github.com/rust-lang/crates.io-index" 827 | checksum = "2e0010fffc97c5abcf75a30fd75676b1ed917b2b82beb8270391333618e2847d" 828 | dependencies = [ 829 | "ethers-contract-abigen", 830 | "ethers-contract-derive", 831 | "ethers-core", 832 | "ethers-derive-eip712", 833 | "ethers-providers", 834 | "futures-util", 835 | "hex", 836 | "once_cell", 837 | "pin-project", 838 | "serde", 839 | "serde_json", 840 | "thiserror", 841 | ] 842 | 843 | [[package]] 844 | name = "ethers-contract-abigen" 845 | version = "0.17.0" 846 | source = "registry+https://github.com/rust-lang/crates.io-index" 847 | checksum = "bda76ce804d524f693a898dc5857d08f4db443f3da64d0c36237fa05c0ecef30" 848 | dependencies = [ 849 | "Inflector", 850 | "cfg-if 1.0.0", 851 | "dunce", 852 | "ethers-core", 853 | "eyre", 854 | "getrandom 0.2.12", 855 | "hex", 856 | "proc-macro2", 857 | "quote", 858 | "reqwest", 859 | "serde", 860 | "serde_json", 861 | "syn 1.0.109", 862 | "url", 863 | "walkdir", 864 | ] 865 | 866 | [[package]] 867 | name = "ethers-contract-derive" 868 | version = "0.17.0" 869 | source = "registry+https://github.com/rust-lang/crates.io-index" 870 | checksum = "41170ccb5950f559cba5a052158a28ec2d224af3a7d5b266b3278b929538ef55" 871 | dependencies = [ 872 | "ethers-contract-abigen", 873 | "ethers-core", 874 | "hex", 875 | "proc-macro2", 876 | "quote", 877 | "serde_json", 878 | "syn 1.0.109", 879 | ] 880 | 881 | [[package]] 882 | name = "ethers-core" 883 | version = "0.17.0" 884 | source = "registry+https://github.com/rust-lang/crates.io-index" 885 | checksum = "0ebdd63c828f58aa067f40f9adcbea5e114fb1f90144b3a1e2858e0c9b1ff4e8" 886 | dependencies = [ 887 | "arrayvec", 888 | "bytes", 889 | "cargo_metadata", 890 | "chrono", 891 | "convert_case", 892 | "elliptic-curve", 893 | "ethabi", 894 | "fastrlp", 895 | "generic-array 0.14.7", 896 | "hex", 897 | "k256", 898 | "once_cell", 899 | "proc-macro2", 900 | "rand 0.8.5", 901 | "rlp", 902 | "rlp-derive", 903 | "rust_decimal", 904 | "serde", 905 | "serde_json", 906 | "strum", 907 | "syn 1.0.109", 908 | "thiserror", 909 | "tiny-keccak", 910 | "unicode-xid", 911 | ] 912 | 913 | [[package]] 914 | name = "ethers-derive-eip712" 915 | version = "0.17.0" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "8f952a297c55292aed497d3d4f0736ced86d81fbfb04c66cc3d9c383eb032a74" 918 | dependencies = [ 919 | "ethers-core", 920 | "hex", 921 | "quote", 922 | "serde_json", 923 | "syn 1.0.109", 924 | ] 925 | 926 | [[package]] 927 | name = "ethers-etherscan" 928 | version = "0.17.0" 929 | source = "registry+https://github.com/rust-lang/crates.io-index" 930 | checksum = "b279a3d00bd219caa2f9a34451b4accbfa9a1eaafc26dcda9d572591528435f0" 931 | dependencies = [ 932 | "ethers-core", 933 | "getrandom 0.2.12", 934 | "reqwest", 935 | "semver", 936 | "serde", 937 | "serde-aux", 938 | "serde_json", 939 | "thiserror", 940 | "tracing", 941 | ] 942 | 943 | [[package]] 944 | name = "ethers-middleware" 945 | version = "0.17.0" 946 | source = "registry+https://github.com/rust-lang/crates.io-index" 947 | checksum = "b1e7e8632d28175352b9454bbcb604643b6ca1de4d36dc99b3f86860d75c132b" 948 | dependencies = [ 949 | "async-trait", 950 | "ethers-contract", 951 | "ethers-core", 952 | "ethers-etherscan", 953 | "ethers-providers", 954 | "ethers-signers", 955 | "futures-locks", 956 | "futures-util", 957 | "instant", 958 | "reqwest", 959 | "serde", 960 | "serde_json", 961 | "thiserror", 962 | "tokio", 963 | "tracing", 964 | "tracing-futures", 965 | "url", 966 | ] 967 | 968 | [[package]] 969 | name = "ethers-providers" 970 | version = "0.17.0" 971 | source = "registry+https://github.com/rust-lang/crates.io-index" 972 | checksum = "e46482e4d1e79b20c338fd9db9e166184eb387f0a4e7c05c5b5c0aa2e8c8900c" 973 | dependencies = [ 974 | "async-trait", 975 | "auto_impl", 976 | "base64 0.13.1", 977 | "ethers-core", 978 | "futures-core", 979 | "futures-timer", 980 | "futures-util", 981 | "getrandom 0.2.12", 982 | "hashers", 983 | "hex", 984 | "http", 985 | "once_cell", 986 | "parking_lot 0.11.2", 987 | "pin-project", 988 | "reqwest", 989 | "serde", 990 | "serde_json", 991 | "thiserror", 992 | "tokio", 993 | "tracing", 994 | "tracing-futures", 995 | "url", 996 | "wasm-bindgen", 997 | "wasm-bindgen-futures", 998 | "wasm-timer", 999 | "web-sys", 1000 | "ws_stream_wasm", 1001 | ] 1002 | 1003 | [[package]] 1004 | name = "ethers-signers" 1005 | version = "0.17.0" 1006 | source = "registry+https://github.com/rust-lang/crates.io-index" 1007 | checksum = "73a72ecad124e8ccd18d6a43624208cab0199e59621b1f0fa6b776b2e0529107" 1008 | dependencies = [ 1009 | "async-trait", 1010 | "coins-bip32", 1011 | "coins-bip39", 1012 | "elliptic-curve", 1013 | "eth-keystore", 1014 | "ethers-core", 1015 | "hex", 1016 | "rand 0.8.5", 1017 | "sha2 0.10.8", 1018 | "thiserror", 1019 | ] 1020 | 1021 | [[package]] 1022 | name = "eyre" 1023 | version = "0.6.12" 1024 | source = "registry+https://github.com/rust-lang/crates.io-index" 1025 | checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" 1026 | dependencies = [ 1027 | "indenter", 1028 | "once_cell", 1029 | ] 1030 | 1031 | [[package]] 1032 | name = "fake-simd" 1033 | version = "0.1.2" 1034 | source = "registry+https://github.com/rust-lang/crates.io-index" 1035 | checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" 1036 | 1037 | [[package]] 1038 | name = "fastrand" 1039 | version = "2.0.1" 1040 | source = "registry+https://github.com/rust-lang/crates.io-index" 1041 | checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" 1042 | 1043 | [[package]] 1044 | name = "fastrlp" 1045 | version = "0.1.3" 1046 | source = "registry+https://github.com/rust-lang/crates.io-index" 1047 | checksum = "089263294bb1c38ac73649a6ad563dd9a5142c8dc0482be15b8b9acb22a1611e" 1048 | dependencies = [ 1049 | "arrayvec", 1050 | "auto_impl", 1051 | "bytes", 1052 | "ethereum-types", 1053 | "fastrlp-derive", 1054 | ] 1055 | 1056 | [[package]] 1057 | name = "fastrlp-derive" 1058 | version = "0.1.5" 1059 | source = "registry+https://github.com/rust-lang/crates.io-index" 1060 | checksum = "a0f9d074ab623d1b388c12544bfeed759c7df36dc5c300cda053df9ba1232075" 1061 | dependencies = [ 1062 | "bytes", 1063 | "proc-macro2", 1064 | "quote", 1065 | "syn 1.0.109", 1066 | ] 1067 | 1068 | [[package]] 1069 | name = "ff" 1070 | version = "0.12.1" 1071 | source = "registry+https://github.com/rust-lang/crates.io-index" 1072 | checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" 1073 | dependencies = [ 1074 | "rand_core 0.6.4", 1075 | "subtle", 1076 | ] 1077 | 1078 | [[package]] 1079 | name = "fixed-hash" 1080 | version = "0.7.0" 1081 | source = "registry+https://github.com/rust-lang/crates.io-index" 1082 | checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" 1083 | dependencies = [ 1084 | "byteorder", 1085 | "rand 0.8.5", 1086 | "rustc-hex", 1087 | "static_assertions", 1088 | ] 1089 | 1090 | [[package]] 1091 | name = "fnv" 1092 | version = "1.0.7" 1093 | source = "registry+https://github.com/rust-lang/crates.io-index" 1094 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 1095 | 1096 | [[package]] 1097 | name = "foreign-types" 1098 | version = "0.3.2" 1099 | source = "registry+https://github.com/rust-lang/crates.io-index" 1100 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 1101 | dependencies = [ 1102 | "foreign-types-shared", 1103 | ] 1104 | 1105 | [[package]] 1106 | name = "foreign-types-shared" 1107 | version = "0.1.1" 1108 | source = "registry+https://github.com/rust-lang/crates.io-index" 1109 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 1110 | 1111 | [[package]] 1112 | name = "form_urlencoded" 1113 | version = "1.2.1" 1114 | source = "registry+https://github.com/rust-lang/crates.io-index" 1115 | checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" 1116 | dependencies = [ 1117 | "percent-encoding", 1118 | ] 1119 | 1120 | [[package]] 1121 | name = "funty" 1122 | version = "2.0.0" 1123 | source = "registry+https://github.com/rust-lang/crates.io-index" 1124 | checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" 1125 | 1126 | [[package]] 1127 | name = "futures" 1128 | version = "0.3.30" 1129 | source = "registry+https://github.com/rust-lang/crates.io-index" 1130 | checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" 1131 | dependencies = [ 1132 | "futures-channel", 1133 | "futures-core", 1134 | "futures-executor", 1135 | "futures-io", 1136 | "futures-sink", 1137 | "futures-task", 1138 | "futures-util", 1139 | ] 1140 | 1141 | [[package]] 1142 | name = "futures-channel" 1143 | version = "0.3.30" 1144 | source = "registry+https://github.com/rust-lang/crates.io-index" 1145 | checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 1146 | dependencies = [ 1147 | "futures-core", 1148 | "futures-sink", 1149 | ] 1150 | 1151 | [[package]] 1152 | name = "futures-core" 1153 | version = "0.3.30" 1154 | source = "registry+https://github.com/rust-lang/crates.io-index" 1155 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 1156 | 1157 | [[package]] 1158 | name = "futures-executor" 1159 | version = "0.3.30" 1160 | source = "registry+https://github.com/rust-lang/crates.io-index" 1161 | checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" 1162 | dependencies = [ 1163 | "futures-core", 1164 | "futures-task", 1165 | "futures-util", 1166 | ] 1167 | 1168 | [[package]] 1169 | name = "futures-io" 1170 | version = "0.3.30" 1171 | source = "registry+https://github.com/rust-lang/crates.io-index" 1172 | checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" 1173 | 1174 | [[package]] 1175 | name = "futures-locks" 1176 | version = "0.7.1" 1177 | source = "registry+https://github.com/rust-lang/crates.io-index" 1178 | checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" 1179 | dependencies = [ 1180 | "futures-channel", 1181 | "futures-task", 1182 | "tokio", 1183 | ] 1184 | 1185 | [[package]] 1186 | name = "futures-macro" 1187 | version = "0.3.30" 1188 | source = "registry+https://github.com/rust-lang/crates.io-index" 1189 | checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" 1190 | dependencies = [ 1191 | "proc-macro2", 1192 | "quote", 1193 | "syn 2.0.49", 1194 | ] 1195 | 1196 | [[package]] 1197 | name = "futures-sink" 1198 | version = "0.3.30" 1199 | source = "registry+https://github.com/rust-lang/crates.io-index" 1200 | checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" 1201 | 1202 | [[package]] 1203 | name = "futures-task" 1204 | version = "0.3.30" 1205 | source = "registry+https://github.com/rust-lang/crates.io-index" 1206 | checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" 1207 | 1208 | [[package]] 1209 | name = "futures-timer" 1210 | version = "3.0.2" 1211 | source = "registry+https://github.com/rust-lang/crates.io-index" 1212 | checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" 1213 | 1214 | [[package]] 1215 | name = "futures-util" 1216 | version = "0.3.30" 1217 | source = "registry+https://github.com/rust-lang/crates.io-index" 1218 | checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 1219 | dependencies = [ 1220 | "futures-channel", 1221 | "futures-core", 1222 | "futures-io", 1223 | "futures-macro", 1224 | "futures-sink", 1225 | "futures-task", 1226 | "memchr", 1227 | "pin-project-lite", 1228 | "pin-utils", 1229 | "slab", 1230 | ] 1231 | 1232 | [[package]] 1233 | name = "fxhash" 1234 | version = "0.2.1" 1235 | source = "registry+https://github.com/rust-lang/crates.io-index" 1236 | checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" 1237 | dependencies = [ 1238 | "byteorder", 1239 | ] 1240 | 1241 | [[package]] 1242 | name = "generic-array" 1243 | version = "0.12.4" 1244 | source = "registry+https://github.com/rust-lang/crates.io-index" 1245 | checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" 1246 | dependencies = [ 1247 | "typenum", 1248 | ] 1249 | 1250 | [[package]] 1251 | name = "generic-array" 1252 | version = "0.14.7" 1253 | source = "registry+https://github.com/rust-lang/crates.io-index" 1254 | checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" 1255 | dependencies = [ 1256 | "typenum", 1257 | "version_check", 1258 | ] 1259 | 1260 | [[package]] 1261 | name = "getrandom" 1262 | version = "0.1.16" 1263 | source = "registry+https://github.com/rust-lang/crates.io-index" 1264 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" 1265 | dependencies = [ 1266 | "cfg-if 1.0.0", 1267 | "libc", 1268 | "wasi 0.9.0+wasi-snapshot-preview1", 1269 | ] 1270 | 1271 | [[package]] 1272 | name = "getrandom" 1273 | version = "0.2.12" 1274 | source = "registry+https://github.com/rust-lang/crates.io-index" 1275 | checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" 1276 | dependencies = [ 1277 | "cfg-if 1.0.0", 1278 | "js-sys", 1279 | "libc", 1280 | "wasi 0.11.0+wasi-snapshot-preview1", 1281 | "wasm-bindgen", 1282 | ] 1283 | 1284 | [[package]] 1285 | name = "gimli" 1286 | version = "0.28.1" 1287 | source = "registry+https://github.com/rust-lang/crates.io-index" 1288 | checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" 1289 | 1290 | [[package]] 1291 | name = "group" 1292 | version = "0.12.1" 1293 | source = "registry+https://github.com/rust-lang/crates.io-index" 1294 | checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" 1295 | dependencies = [ 1296 | "ff", 1297 | "rand_core 0.6.4", 1298 | "subtle", 1299 | ] 1300 | 1301 | [[package]] 1302 | name = "h2" 1303 | version = "0.3.24" 1304 | source = "registry+https://github.com/rust-lang/crates.io-index" 1305 | checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" 1306 | dependencies = [ 1307 | "bytes", 1308 | "fnv", 1309 | "futures-core", 1310 | "futures-sink", 1311 | "futures-util", 1312 | "http", 1313 | "indexmap", 1314 | "slab", 1315 | "tokio", 1316 | "tokio-util", 1317 | "tracing", 1318 | ] 1319 | 1320 | [[package]] 1321 | name = "hashbrown" 1322 | version = "0.12.3" 1323 | source = "registry+https://github.com/rust-lang/crates.io-index" 1324 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 1325 | dependencies = [ 1326 | "ahash", 1327 | ] 1328 | 1329 | [[package]] 1330 | name = "hashbrown" 1331 | version = "0.14.3" 1332 | source = "registry+https://github.com/rust-lang/crates.io-index" 1333 | checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" 1334 | 1335 | [[package]] 1336 | name = "hashers" 1337 | version = "1.0.1" 1338 | source = "registry+https://github.com/rust-lang/crates.io-index" 1339 | checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" 1340 | dependencies = [ 1341 | "fxhash", 1342 | ] 1343 | 1344 | [[package]] 1345 | name = "heck" 1346 | version = "0.4.1" 1347 | source = "registry+https://github.com/rust-lang/crates.io-index" 1348 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 1349 | 1350 | [[package]] 1351 | name = "hermit-abi" 1352 | version = "0.3.6" 1353 | source = "registry+https://github.com/rust-lang/crates.io-index" 1354 | checksum = "bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd" 1355 | 1356 | [[package]] 1357 | name = "hex" 1358 | version = "0.4.3" 1359 | source = "registry+https://github.com/rust-lang/crates.io-index" 1360 | checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" 1361 | 1362 | [[package]] 1363 | name = "hmac" 1364 | version = "0.9.0" 1365 | source = "registry+https://github.com/rust-lang/crates.io-index" 1366 | checksum = "deae6d9dbb35ec2c502d62b8f7b1c000a0822c3b0794ba36b3149c0a1c840dff" 1367 | dependencies = [ 1368 | "crypto-mac", 1369 | "digest 0.9.0", 1370 | ] 1371 | 1372 | [[package]] 1373 | name = "hmac" 1374 | version = "0.12.1" 1375 | source = "registry+https://github.com/rust-lang/crates.io-index" 1376 | checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" 1377 | dependencies = [ 1378 | "digest 0.10.7", 1379 | ] 1380 | 1381 | [[package]] 1382 | name = "hmac-sha1" 1383 | version = "0.2.2" 1384 | source = "registry+https://github.com/rust-lang/crates.io-index" 1385 | checksum = "6b05da5b9e5d4720bfb691eebb2b9d42da3570745da71eac8a1f5bb7e59aab88" 1386 | dependencies = [ 1387 | "hmac 0.12.1", 1388 | "sha1", 1389 | ] 1390 | 1391 | [[package]] 1392 | name = "http" 1393 | version = "0.2.11" 1394 | source = "registry+https://github.com/rust-lang/crates.io-index" 1395 | checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" 1396 | dependencies = [ 1397 | "bytes", 1398 | "fnv", 1399 | "itoa", 1400 | ] 1401 | 1402 | [[package]] 1403 | name = "http-body" 1404 | version = "0.4.6" 1405 | source = "registry+https://github.com/rust-lang/crates.io-index" 1406 | checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" 1407 | dependencies = [ 1408 | "bytes", 1409 | "http", 1410 | "pin-project-lite", 1411 | ] 1412 | 1413 | [[package]] 1414 | name = "httparse" 1415 | version = "1.8.0" 1416 | source = "registry+https://github.com/rust-lang/crates.io-index" 1417 | checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" 1418 | 1419 | [[package]] 1420 | name = "httpdate" 1421 | version = "1.0.3" 1422 | source = "registry+https://github.com/rust-lang/crates.io-index" 1423 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 1424 | 1425 | [[package]] 1426 | name = "humantime" 1427 | version = "2.1.0" 1428 | source = "registry+https://github.com/rust-lang/crates.io-index" 1429 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" 1430 | 1431 | [[package]] 1432 | name = "hyper" 1433 | version = "0.14.28" 1434 | source = "registry+https://github.com/rust-lang/crates.io-index" 1435 | checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" 1436 | dependencies = [ 1437 | "bytes", 1438 | "futures-channel", 1439 | "futures-core", 1440 | "futures-util", 1441 | "h2", 1442 | "http", 1443 | "http-body", 1444 | "httparse", 1445 | "httpdate", 1446 | "itoa", 1447 | "pin-project-lite", 1448 | "socket2", 1449 | "tokio", 1450 | "tower-service", 1451 | "tracing", 1452 | "want", 1453 | ] 1454 | 1455 | [[package]] 1456 | name = "hyper-rustls" 1457 | version = "0.24.2" 1458 | source = "registry+https://github.com/rust-lang/crates.io-index" 1459 | checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" 1460 | dependencies = [ 1461 | "futures-util", 1462 | "http", 1463 | "hyper", 1464 | "rustls 0.21.10", 1465 | "tokio", 1466 | "tokio-rustls 0.24.1", 1467 | ] 1468 | 1469 | [[package]] 1470 | name = "hyper-tls" 1471 | version = "0.5.0" 1472 | source = "registry+https://github.com/rust-lang/crates.io-index" 1473 | checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" 1474 | dependencies = [ 1475 | "bytes", 1476 | "hyper", 1477 | "native-tls", 1478 | "tokio", 1479 | "tokio-native-tls", 1480 | ] 1481 | 1482 | [[package]] 1483 | name = "hyperliquid" 1484 | version = "0.1.0" 1485 | dependencies = [ 1486 | "base64 0.21.7", 1487 | "base64-url", 1488 | "chrono", 1489 | "dotenv", 1490 | "futures-util", 1491 | "hmac 0.12.1", 1492 | "hmac-sha1", 1493 | "hyperliquid_rust_sdk", 1494 | "percent-encoding", 1495 | "reqwest", 1496 | "reqwest-oauth1", 1497 | "serde", 1498 | "serde_json", 1499 | "sha1", 1500 | "textnonce", 1501 | "tokio", 1502 | "tokio-tungstenite 0.15.0", 1503 | "tungstenite 0.12.0", 1504 | "urlencoding", 1505 | ] 1506 | 1507 | [[package]] 1508 | name = "hyperliquid_rust_sdk" 1509 | version = "0.3.0" 1510 | source = "registry+https://github.com/rust-lang/crates.io-index" 1511 | checksum = "112fefa5675d77e505bdb480408971fc1d09161a9fd238b34aaf63e181149dbd" 1512 | dependencies = [ 1513 | "chrono", 1514 | "env_logger", 1515 | "ethers", 1516 | "futures-util", 1517 | "hex", 1518 | "http", 1519 | "lazy_static", 1520 | "log", 1521 | "rand 0.8.5", 1522 | "reqwest", 1523 | "rmp-serde", 1524 | "serde", 1525 | "serde_json", 1526 | "thiserror", 1527 | "tokio", 1528 | "tokio-tungstenite 0.20.1", 1529 | ] 1530 | 1531 | [[package]] 1532 | name = "iana-time-zone" 1533 | version = "0.1.60" 1534 | source = "registry+https://github.com/rust-lang/crates.io-index" 1535 | checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" 1536 | dependencies = [ 1537 | "android_system_properties", 1538 | "core-foundation-sys", 1539 | "iana-time-zone-haiku", 1540 | "js-sys", 1541 | "wasm-bindgen", 1542 | "windows-core", 1543 | ] 1544 | 1545 | [[package]] 1546 | name = "iana-time-zone-haiku" 1547 | version = "0.1.2" 1548 | source = "registry+https://github.com/rust-lang/crates.io-index" 1549 | checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" 1550 | dependencies = [ 1551 | "cc", 1552 | ] 1553 | 1554 | [[package]] 1555 | name = "idna" 1556 | version = "0.5.0" 1557 | source = "registry+https://github.com/rust-lang/crates.io-index" 1558 | checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" 1559 | dependencies = [ 1560 | "unicode-bidi", 1561 | "unicode-normalization", 1562 | ] 1563 | 1564 | [[package]] 1565 | name = "impl-codec" 1566 | version = "0.6.0" 1567 | source = "registry+https://github.com/rust-lang/crates.io-index" 1568 | checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" 1569 | dependencies = [ 1570 | "parity-scale-codec", 1571 | ] 1572 | 1573 | [[package]] 1574 | name = "impl-rlp" 1575 | version = "0.3.0" 1576 | source = "registry+https://github.com/rust-lang/crates.io-index" 1577 | checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" 1578 | dependencies = [ 1579 | "rlp", 1580 | ] 1581 | 1582 | [[package]] 1583 | name = "impl-serde" 1584 | version = "0.3.2" 1585 | source = "registry+https://github.com/rust-lang/crates.io-index" 1586 | checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" 1587 | dependencies = [ 1588 | "serde", 1589 | ] 1590 | 1591 | [[package]] 1592 | name = "impl-trait-for-tuples" 1593 | version = "0.2.2" 1594 | source = "registry+https://github.com/rust-lang/crates.io-index" 1595 | checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" 1596 | dependencies = [ 1597 | "proc-macro2", 1598 | "quote", 1599 | "syn 1.0.109", 1600 | ] 1601 | 1602 | [[package]] 1603 | name = "indenter" 1604 | version = "0.3.3" 1605 | source = "registry+https://github.com/rust-lang/crates.io-index" 1606 | checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" 1607 | 1608 | [[package]] 1609 | name = "indexmap" 1610 | version = "2.2.3" 1611 | source = "registry+https://github.com/rust-lang/crates.io-index" 1612 | checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" 1613 | dependencies = [ 1614 | "equivalent", 1615 | "hashbrown 0.14.3", 1616 | ] 1617 | 1618 | [[package]] 1619 | name = "input_buffer" 1620 | version = "0.4.0" 1621 | source = "registry+https://github.com/rust-lang/crates.io-index" 1622 | checksum = "f97967975f448f1a7ddb12b0bc41069d09ed6a1c161a92687e057325db35d413" 1623 | dependencies = [ 1624 | "bytes", 1625 | ] 1626 | 1627 | [[package]] 1628 | name = "instant" 1629 | version = "0.1.12" 1630 | source = "registry+https://github.com/rust-lang/crates.io-index" 1631 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 1632 | dependencies = [ 1633 | "cfg-if 1.0.0", 1634 | "js-sys", 1635 | "wasm-bindgen", 1636 | "web-sys", 1637 | ] 1638 | 1639 | [[package]] 1640 | name = "ipnet" 1641 | version = "2.9.0" 1642 | source = "registry+https://github.com/rust-lang/crates.io-index" 1643 | checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" 1644 | 1645 | [[package]] 1646 | name = "is-terminal" 1647 | version = "0.4.12" 1648 | source = "registry+https://github.com/rust-lang/crates.io-index" 1649 | checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" 1650 | dependencies = [ 1651 | "hermit-abi", 1652 | "libc", 1653 | "windows-sys 0.52.0", 1654 | ] 1655 | 1656 | [[package]] 1657 | name = "itoa" 1658 | version = "1.0.10" 1659 | source = "registry+https://github.com/rust-lang/crates.io-index" 1660 | checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" 1661 | 1662 | [[package]] 1663 | name = "js-sys" 1664 | version = "0.3.68" 1665 | source = "registry+https://github.com/rust-lang/crates.io-index" 1666 | checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" 1667 | dependencies = [ 1668 | "wasm-bindgen", 1669 | ] 1670 | 1671 | [[package]] 1672 | name = "k256" 1673 | version = "0.11.6" 1674 | source = "registry+https://github.com/rust-lang/crates.io-index" 1675 | checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" 1676 | dependencies = [ 1677 | "cfg-if 1.0.0", 1678 | "ecdsa", 1679 | "elliptic-curve", 1680 | "sha2 0.10.8", 1681 | "sha3", 1682 | ] 1683 | 1684 | [[package]] 1685 | name = "keccak" 1686 | version = "0.1.5" 1687 | source = "registry+https://github.com/rust-lang/crates.io-index" 1688 | checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" 1689 | dependencies = [ 1690 | "cpufeatures", 1691 | ] 1692 | 1693 | [[package]] 1694 | name = "lazy_static" 1695 | version = "1.4.0" 1696 | source = "registry+https://github.com/rust-lang/crates.io-index" 1697 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1698 | 1699 | [[package]] 1700 | name = "libc" 1701 | version = "0.2.153" 1702 | source = "registry+https://github.com/rust-lang/crates.io-index" 1703 | checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" 1704 | 1705 | [[package]] 1706 | name = "linux-raw-sys" 1707 | version = "0.4.13" 1708 | source = "registry+https://github.com/rust-lang/crates.io-index" 1709 | checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" 1710 | 1711 | [[package]] 1712 | name = "lock_api" 1713 | version = "0.4.11" 1714 | source = "registry+https://github.com/rust-lang/crates.io-index" 1715 | checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" 1716 | dependencies = [ 1717 | "autocfg", 1718 | "scopeguard", 1719 | ] 1720 | 1721 | [[package]] 1722 | name = "log" 1723 | version = "0.4.20" 1724 | source = "registry+https://github.com/rust-lang/crates.io-index" 1725 | checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" 1726 | 1727 | [[package]] 1728 | name = "memchr" 1729 | version = "2.7.1" 1730 | source = "registry+https://github.com/rust-lang/crates.io-index" 1731 | checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" 1732 | 1733 | [[package]] 1734 | name = "mime" 1735 | version = "0.3.17" 1736 | source = "registry+https://github.com/rust-lang/crates.io-index" 1737 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 1738 | 1739 | [[package]] 1740 | name = "mime_guess" 1741 | version = "2.0.4" 1742 | source = "registry+https://github.com/rust-lang/crates.io-index" 1743 | checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" 1744 | dependencies = [ 1745 | "mime", 1746 | "unicase", 1747 | ] 1748 | 1749 | [[package]] 1750 | name = "miniz_oxide" 1751 | version = "0.7.2" 1752 | source = "registry+https://github.com/rust-lang/crates.io-index" 1753 | checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" 1754 | dependencies = [ 1755 | "adler", 1756 | ] 1757 | 1758 | [[package]] 1759 | name = "mio" 1760 | version = "0.8.10" 1761 | source = "registry+https://github.com/rust-lang/crates.io-index" 1762 | checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" 1763 | dependencies = [ 1764 | "libc", 1765 | "wasi 0.11.0+wasi-snapshot-preview1", 1766 | "windows-sys 0.48.0", 1767 | ] 1768 | 1769 | [[package]] 1770 | name = "native-tls" 1771 | version = "0.2.11" 1772 | source = "registry+https://github.com/rust-lang/crates.io-index" 1773 | checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" 1774 | dependencies = [ 1775 | "lazy_static", 1776 | "libc", 1777 | "log", 1778 | "openssl", 1779 | "openssl-probe", 1780 | "openssl-sys", 1781 | "schannel", 1782 | "security-framework", 1783 | "security-framework-sys", 1784 | "tempfile", 1785 | ] 1786 | 1787 | [[package]] 1788 | name = "num-traits" 1789 | version = "0.2.18" 1790 | source = "registry+https://github.com/rust-lang/crates.io-index" 1791 | checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" 1792 | dependencies = [ 1793 | "autocfg", 1794 | ] 1795 | 1796 | [[package]] 1797 | name = "num_cpus" 1798 | version = "1.16.0" 1799 | source = "registry+https://github.com/rust-lang/crates.io-index" 1800 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 1801 | dependencies = [ 1802 | "hermit-abi", 1803 | "libc", 1804 | ] 1805 | 1806 | [[package]] 1807 | name = "oauth-credentials" 1808 | version = "0.1.2" 1809 | source = "registry+https://github.com/rust-lang/crates.io-index" 1810 | checksum = "b8f4a7114ad4a2664de52c0d561df3651ed9686014bf94097f51c163eec6e34b" 1811 | dependencies = [ 1812 | "oauth-credentials 0.2.1", 1813 | ] 1814 | 1815 | [[package]] 1816 | name = "oauth-credentials" 1817 | version = "0.2.1" 1818 | source = "registry+https://github.com/rust-lang/crates.io-index" 1819 | checksum = "997e0dc99791e2deab64a6d6a499fcfd9b39044dd22db00b6e8e01bcfe946c85" 1820 | 1821 | [[package]] 1822 | name = "oauth1-request" 1823 | version = "0.3.3" 1824 | source = "registry+https://github.com/rust-lang/crates.io-index" 1825 | checksum = "c783d6585b7758989bddd62939fa669d7e006013303f82e2d0c8276b04e9b9ca" 1826 | dependencies = [ 1827 | "base64 0.12.3", 1828 | "bitflags 1.3.2", 1829 | "cfg-if 0.1.10", 1830 | "hmac 0.9.0", 1831 | "oauth-credentials 0.1.2", 1832 | "oauth1-request-derive", 1833 | "percent-encoding", 1834 | "rand 0.7.3", 1835 | "sha-1", 1836 | ] 1837 | 1838 | [[package]] 1839 | name = "oauth1-request-derive" 1840 | version = "0.3.3" 1841 | source = "registry+https://github.com/rust-lang/crates.io-index" 1842 | checksum = "4caa51ab4d0efd92f9c7e99466b8be5423d3f710e696ca9141527277cc792500" 1843 | dependencies = [ 1844 | "proc-macro-crate 0.1.5", 1845 | "proc-macro2", 1846 | "quote", 1847 | "syn 1.0.109", 1848 | ] 1849 | 1850 | [[package]] 1851 | name = "object" 1852 | version = "0.32.2" 1853 | source = "registry+https://github.com/rust-lang/crates.io-index" 1854 | checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" 1855 | dependencies = [ 1856 | "memchr", 1857 | ] 1858 | 1859 | [[package]] 1860 | name = "once_cell" 1861 | version = "1.19.0" 1862 | source = "registry+https://github.com/rust-lang/crates.io-index" 1863 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 1864 | 1865 | [[package]] 1866 | name = "opaque-debug" 1867 | version = "0.2.3" 1868 | source = "registry+https://github.com/rust-lang/crates.io-index" 1869 | checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" 1870 | 1871 | [[package]] 1872 | name = "opaque-debug" 1873 | version = "0.3.0" 1874 | source = "registry+https://github.com/rust-lang/crates.io-index" 1875 | checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" 1876 | 1877 | [[package]] 1878 | name = "openssl" 1879 | version = "0.10.63" 1880 | source = "registry+https://github.com/rust-lang/crates.io-index" 1881 | checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" 1882 | dependencies = [ 1883 | "bitflags 2.4.2", 1884 | "cfg-if 1.0.0", 1885 | "foreign-types", 1886 | "libc", 1887 | "once_cell", 1888 | "openssl-macros", 1889 | "openssl-sys", 1890 | ] 1891 | 1892 | [[package]] 1893 | name = "openssl-macros" 1894 | version = "0.1.1" 1895 | source = "registry+https://github.com/rust-lang/crates.io-index" 1896 | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 1897 | dependencies = [ 1898 | "proc-macro2", 1899 | "quote", 1900 | "syn 2.0.49", 1901 | ] 1902 | 1903 | [[package]] 1904 | name = "openssl-probe" 1905 | version = "0.1.5" 1906 | source = "registry+https://github.com/rust-lang/crates.io-index" 1907 | checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" 1908 | 1909 | [[package]] 1910 | name = "openssl-sys" 1911 | version = "0.9.99" 1912 | source = "registry+https://github.com/rust-lang/crates.io-index" 1913 | checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" 1914 | dependencies = [ 1915 | "cc", 1916 | "libc", 1917 | "pkg-config", 1918 | "vcpkg", 1919 | ] 1920 | 1921 | [[package]] 1922 | name = "parity-scale-codec" 1923 | version = "3.6.9" 1924 | source = "registry+https://github.com/rust-lang/crates.io-index" 1925 | checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" 1926 | dependencies = [ 1927 | "arrayvec", 1928 | "bitvec 1.0.1", 1929 | "byte-slice-cast", 1930 | "impl-trait-for-tuples", 1931 | "parity-scale-codec-derive", 1932 | "serde", 1933 | ] 1934 | 1935 | [[package]] 1936 | name = "parity-scale-codec-derive" 1937 | version = "3.6.9" 1938 | source = "registry+https://github.com/rust-lang/crates.io-index" 1939 | checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" 1940 | dependencies = [ 1941 | "proc-macro-crate 2.0.2", 1942 | "proc-macro2", 1943 | "quote", 1944 | "syn 1.0.109", 1945 | ] 1946 | 1947 | [[package]] 1948 | name = "parking_lot" 1949 | version = "0.11.2" 1950 | source = "registry+https://github.com/rust-lang/crates.io-index" 1951 | checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" 1952 | dependencies = [ 1953 | "instant", 1954 | "lock_api", 1955 | "parking_lot_core 0.8.6", 1956 | ] 1957 | 1958 | [[package]] 1959 | name = "parking_lot" 1960 | version = "0.12.1" 1961 | source = "registry+https://github.com/rust-lang/crates.io-index" 1962 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 1963 | dependencies = [ 1964 | "lock_api", 1965 | "parking_lot_core 0.9.9", 1966 | ] 1967 | 1968 | [[package]] 1969 | name = "parking_lot_core" 1970 | version = "0.8.6" 1971 | source = "registry+https://github.com/rust-lang/crates.io-index" 1972 | checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" 1973 | dependencies = [ 1974 | "cfg-if 1.0.0", 1975 | "instant", 1976 | "libc", 1977 | "redox_syscall 0.2.16", 1978 | "smallvec", 1979 | "winapi", 1980 | ] 1981 | 1982 | [[package]] 1983 | name = "parking_lot_core" 1984 | version = "0.9.9" 1985 | source = "registry+https://github.com/rust-lang/crates.io-index" 1986 | checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" 1987 | dependencies = [ 1988 | "cfg-if 1.0.0", 1989 | "libc", 1990 | "redox_syscall 0.4.1", 1991 | "smallvec", 1992 | "windows-targets 0.48.5", 1993 | ] 1994 | 1995 | [[package]] 1996 | name = "password-hash" 1997 | version = "0.3.2" 1998 | source = "registry+https://github.com/rust-lang/crates.io-index" 1999 | checksum = "1d791538a6dcc1e7cb7fe6f6b58aca40e7f79403c45b2bc274008b5e647af1d8" 2000 | dependencies = [ 2001 | "base64ct", 2002 | "rand_core 0.6.4", 2003 | "subtle", 2004 | ] 2005 | 2006 | [[package]] 2007 | name = "password-hash" 2008 | version = "0.4.2" 2009 | source = "registry+https://github.com/rust-lang/crates.io-index" 2010 | checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" 2011 | dependencies = [ 2012 | "base64ct", 2013 | "rand_core 0.6.4", 2014 | "subtle", 2015 | ] 2016 | 2017 | [[package]] 2018 | name = "paste" 2019 | version = "1.0.14" 2020 | source = "registry+https://github.com/rust-lang/crates.io-index" 2021 | checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" 2022 | 2023 | [[package]] 2024 | name = "pbkdf2" 2025 | version = "0.10.1" 2026 | source = "registry+https://github.com/rust-lang/crates.io-index" 2027 | checksum = "271779f35b581956db91a3e55737327a03aa051e90b1c47aeb189508533adfd7" 2028 | dependencies = [ 2029 | "digest 0.10.7", 2030 | ] 2031 | 2032 | [[package]] 2033 | name = "pbkdf2" 2034 | version = "0.11.0" 2035 | source = "registry+https://github.com/rust-lang/crates.io-index" 2036 | checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" 2037 | dependencies = [ 2038 | "digest 0.10.7", 2039 | "hmac 0.12.1", 2040 | "password-hash 0.4.2", 2041 | "sha2 0.10.8", 2042 | ] 2043 | 2044 | [[package]] 2045 | name = "percent-encoding" 2046 | version = "2.3.1" 2047 | source = "registry+https://github.com/rust-lang/crates.io-index" 2048 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 2049 | 2050 | [[package]] 2051 | name = "pharos" 2052 | version = "0.5.3" 2053 | source = "registry+https://github.com/rust-lang/crates.io-index" 2054 | checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" 2055 | dependencies = [ 2056 | "futures", 2057 | "rustc_version", 2058 | ] 2059 | 2060 | [[package]] 2061 | name = "pin-project" 2062 | version = "1.1.4" 2063 | source = "registry+https://github.com/rust-lang/crates.io-index" 2064 | checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" 2065 | dependencies = [ 2066 | "pin-project-internal", 2067 | ] 2068 | 2069 | [[package]] 2070 | name = "pin-project-internal" 2071 | version = "1.1.4" 2072 | source = "registry+https://github.com/rust-lang/crates.io-index" 2073 | checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" 2074 | dependencies = [ 2075 | "proc-macro2", 2076 | "quote", 2077 | "syn 2.0.49", 2078 | ] 2079 | 2080 | [[package]] 2081 | name = "pin-project-lite" 2082 | version = "0.2.13" 2083 | source = "registry+https://github.com/rust-lang/crates.io-index" 2084 | checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" 2085 | 2086 | [[package]] 2087 | name = "pin-utils" 2088 | version = "0.1.0" 2089 | source = "registry+https://github.com/rust-lang/crates.io-index" 2090 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 2091 | 2092 | [[package]] 2093 | name = "pkcs8" 2094 | version = "0.9.0" 2095 | source = "registry+https://github.com/rust-lang/crates.io-index" 2096 | checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" 2097 | dependencies = [ 2098 | "der", 2099 | "spki", 2100 | ] 2101 | 2102 | [[package]] 2103 | name = "pkg-config" 2104 | version = "0.3.30" 2105 | source = "registry+https://github.com/rust-lang/crates.io-index" 2106 | checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" 2107 | 2108 | [[package]] 2109 | name = "ppv-lite86" 2110 | version = "0.2.17" 2111 | source = "registry+https://github.com/rust-lang/crates.io-index" 2112 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 2113 | 2114 | [[package]] 2115 | name = "primitive-types" 2116 | version = "0.11.1" 2117 | source = "registry+https://github.com/rust-lang/crates.io-index" 2118 | checksum = "e28720988bff275df1f51b171e1b2a18c30d194c4d2b61defdacecd625a5d94a" 2119 | dependencies = [ 2120 | "fixed-hash", 2121 | "impl-codec", 2122 | "impl-rlp", 2123 | "impl-serde", 2124 | "uint", 2125 | ] 2126 | 2127 | [[package]] 2128 | name = "proc-macro-crate" 2129 | version = "0.1.5" 2130 | source = "registry+https://github.com/rust-lang/crates.io-index" 2131 | checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" 2132 | dependencies = [ 2133 | "toml", 2134 | ] 2135 | 2136 | [[package]] 2137 | name = "proc-macro-crate" 2138 | version = "2.0.2" 2139 | source = "registry+https://github.com/rust-lang/crates.io-index" 2140 | checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" 2141 | dependencies = [ 2142 | "toml_datetime", 2143 | "toml_edit", 2144 | ] 2145 | 2146 | [[package]] 2147 | name = "proc-macro-error" 2148 | version = "1.0.4" 2149 | source = "registry+https://github.com/rust-lang/crates.io-index" 2150 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 2151 | dependencies = [ 2152 | "proc-macro-error-attr", 2153 | "proc-macro2", 2154 | "quote", 2155 | "version_check", 2156 | ] 2157 | 2158 | [[package]] 2159 | name = "proc-macro-error-attr" 2160 | version = "1.0.4" 2161 | source = "registry+https://github.com/rust-lang/crates.io-index" 2162 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 2163 | dependencies = [ 2164 | "proc-macro2", 2165 | "quote", 2166 | "version_check", 2167 | ] 2168 | 2169 | [[package]] 2170 | name = "proc-macro2" 2171 | version = "1.0.78" 2172 | source = "registry+https://github.com/rust-lang/crates.io-index" 2173 | checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" 2174 | dependencies = [ 2175 | "unicode-ident", 2176 | ] 2177 | 2178 | [[package]] 2179 | name = "ptr_meta" 2180 | version = "0.1.4" 2181 | source = "registry+https://github.com/rust-lang/crates.io-index" 2182 | checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" 2183 | dependencies = [ 2184 | "ptr_meta_derive", 2185 | ] 2186 | 2187 | [[package]] 2188 | name = "ptr_meta_derive" 2189 | version = "0.1.4" 2190 | source = "registry+https://github.com/rust-lang/crates.io-index" 2191 | checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" 2192 | dependencies = [ 2193 | "proc-macro2", 2194 | "quote", 2195 | "syn 1.0.109", 2196 | ] 2197 | 2198 | [[package]] 2199 | name = "quote" 2200 | version = "1.0.35" 2201 | source = "registry+https://github.com/rust-lang/crates.io-index" 2202 | checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" 2203 | dependencies = [ 2204 | "proc-macro2", 2205 | ] 2206 | 2207 | [[package]] 2208 | name = "radium" 2209 | version = "0.3.0" 2210 | source = "registry+https://github.com/rust-lang/crates.io-index" 2211 | checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" 2212 | 2213 | [[package]] 2214 | name = "radium" 2215 | version = "0.7.0" 2216 | source = "registry+https://github.com/rust-lang/crates.io-index" 2217 | checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" 2218 | 2219 | [[package]] 2220 | name = "rand" 2221 | version = "0.7.3" 2222 | source = "registry+https://github.com/rust-lang/crates.io-index" 2223 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 2224 | dependencies = [ 2225 | "getrandom 0.1.16", 2226 | "libc", 2227 | "rand_chacha 0.2.2", 2228 | "rand_core 0.5.1", 2229 | "rand_hc", 2230 | ] 2231 | 2232 | [[package]] 2233 | name = "rand" 2234 | version = "0.8.5" 2235 | source = "registry+https://github.com/rust-lang/crates.io-index" 2236 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 2237 | dependencies = [ 2238 | "libc", 2239 | "rand_chacha 0.3.1", 2240 | "rand_core 0.6.4", 2241 | ] 2242 | 2243 | [[package]] 2244 | name = "rand_chacha" 2245 | version = "0.2.2" 2246 | source = "registry+https://github.com/rust-lang/crates.io-index" 2247 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 2248 | dependencies = [ 2249 | "ppv-lite86", 2250 | "rand_core 0.5.1", 2251 | ] 2252 | 2253 | [[package]] 2254 | name = "rand_chacha" 2255 | version = "0.3.1" 2256 | source = "registry+https://github.com/rust-lang/crates.io-index" 2257 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 2258 | dependencies = [ 2259 | "ppv-lite86", 2260 | "rand_core 0.6.4", 2261 | ] 2262 | 2263 | [[package]] 2264 | name = "rand_core" 2265 | version = "0.5.1" 2266 | source = "registry+https://github.com/rust-lang/crates.io-index" 2267 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 2268 | dependencies = [ 2269 | "getrandom 0.1.16", 2270 | ] 2271 | 2272 | [[package]] 2273 | name = "rand_core" 2274 | version = "0.6.4" 2275 | source = "registry+https://github.com/rust-lang/crates.io-index" 2276 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 2277 | dependencies = [ 2278 | "getrandom 0.2.12", 2279 | ] 2280 | 2281 | [[package]] 2282 | name = "rand_hc" 2283 | version = "0.2.0" 2284 | source = "registry+https://github.com/rust-lang/crates.io-index" 2285 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 2286 | dependencies = [ 2287 | "rand_core 0.5.1", 2288 | ] 2289 | 2290 | [[package]] 2291 | name = "redox_syscall" 2292 | version = "0.2.16" 2293 | source = "registry+https://github.com/rust-lang/crates.io-index" 2294 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 2295 | dependencies = [ 2296 | "bitflags 1.3.2", 2297 | ] 2298 | 2299 | [[package]] 2300 | name = "redox_syscall" 2301 | version = "0.4.1" 2302 | source = "registry+https://github.com/rust-lang/crates.io-index" 2303 | checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" 2304 | dependencies = [ 2305 | "bitflags 1.3.2", 2306 | ] 2307 | 2308 | [[package]] 2309 | name = "regex" 2310 | version = "1.10.3" 2311 | source = "registry+https://github.com/rust-lang/crates.io-index" 2312 | checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" 2313 | dependencies = [ 2314 | "aho-corasick", 2315 | "memchr", 2316 | "regex-automata", 2317 | "regex-syntax", 2318 | ] 2319 | 2320 | [[package]] 2321 | name = "regex-automata" 2322 | version = "0.4.5" 2323 | source = "registry+https://github.com/rust-lang/crates.io-index" 2324 | checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" 2325 | dependencies = [ 2326 | "aho-corasick", 2327 | "memchr", 2328 | "regex-syntax", 2329 | ] 2330 | 2331 | [[package]] 2332 | name = "regex-syntax" 2333 | version = "0.8.2" 2334 | source = "registry+https://github.com/rust-lang/crates.io-index" 2335 | checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" 2336 | 2337 | [[package]] 2338 | name = "rend" 2339 | version = "0.4.2" 2340 | source = "registry+https://github.com/rust-lang/crates.io-index" 2341 | checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" 2342 | dependencies = [ 2343 | "bytecheck", 2344 | ] 2345 | 2346 | [[package]] 2347 | name = "reqwest" 2348 | version = "0.11.24" 2349 | source = "registry+https://github.com/rust-lang/crates.io-index" 2350 | checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251" 2351 | dependencies = [ 2352 | "base64 0.21.7", 2353 | "bytes", 2354 | "encoding_rs", 2355 | "futures-core", 2356 | "futures-util", 2357 | "h2", 2358 | "http", 2359 | "http-body", 2360 | "hyper", 2361 | "hyper-rustls", 2362 | "hyper-tls", 2363 | "ipnet", 2364 | "js-sys", 2365 | "log", 2366 | "mime", 2367 | "mime_guess", 2368 | "native-tls", 2369 | "once_cell", 2370 | "percent-encoding", 2371 | "pin-project-lite", 2372 | "rustls 0.21.10", 2373 | "rustls-pemfile", 2374 | "serde", 2375 | "serde_json", 2376 | "serde_urlencoded", 2377 | "sync_wrapper", 2378 | "system-configuration", 2379 | "tokio", 2380 | "tokio-native-tls", 2381 | "tokio-rustls 0.24.1", 2382 | "tower-service", 2383 | "url", 2384 | "wasm-bindgen", 2385 | "wasm-bindgen-futures", 2386 | "web-sys", 2387 | "webpki-roots 0.25.4", 2388 | "winreg", 2389 | ] 2390 | 2391 | [[package]] 2392 | name = "reqwest-oauth1" 2393 | version = "0.2.4" 2394 | source = "registry+https://github.com/rust-lang/crates.io-index" 2395 | checksum = "fb188ab5f02310b9c44d9ca3567b266a0b0174c7a66bc18a3508e006baf6ebd7" 2396 | dependencies = [ 2397 | "async-trait", 2398 | "http", 2399 | "oauth1-request", 2400 | "reqwest", 2401 | "serde", 2402 | "serde_urlencoded", 2403 | "thiserror", 2404 | "url", 2405 | ] 2406 | 2407 | [[package]] 2408 | name = "rfc6979" 2409 | version = "0.3.1" 2410 | source = "registry+https://github.com/rust-lang/crates.io-index" 2411 | checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" 2412 | dependencies = [ 2413 | "crypto-bigint", 2414 | "hmac 0.12.1", 2415 | "zeroize", 2416 | ] 2417 | 2418 | [[package]] 2419 | name = "ring" 2420 | version = "0.16.20" 2421 | source = "registry+https://github.com/rust-lang/crates.io-index" 2422 | checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" 2423 | dependencies = [ 2424 | "cc", 2425 | "libc", 2426 | "once_cell", 2427 | "spin 0.5.2", 2428 | "untrusted 0.7.1", 2429 | "web-sys", 2430 | "winapi", 2431 | ] 2432 | 2433 | [[package]] 2434 | name = "ring" 2435 | version = "0.17.7" 2436 | source = "registry+https://github.com/rust-lang/crates.io-index" 2437 | checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" 2438 | dependencies = [ 2439 | "cc", 2440 | "getrandom 0.2.12", 2441 | "libc", 2442 | "spin 0.9.8", 2443 | "untrusted 0.9.0", 2444 | "windows-sys 0.48.0", 2445 | ] 2446 | 2447 | [[package]] 2448 | name = "ripemd" 2449 | version = "0.1.3" 2450 | source = "registry+https://github.com/rust-lang/crates.io-index" 2451 | checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" 2452 | dependencies = [ 2453 | "digest 0.10.7", 2454 | ] 2455 | 2456 | [[package]] 2457 | name = "rkyv" 2458 | version = "0.7.44" 2459 | source = "registry+https://github.com/rust-lang/crates.io-index" 2460 | checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0" 2461 | dependencies = [ 2462 | "bitvec 1.0.1", 2463 | "bytecheck", 2464 | "bytes", 2465 | "hashbrown 0.12.3", 2466 | "ptr_meta", 2467 | "rend", 2468 | "rkyv_derive", 2469 | "seahash", 2470 | "tinyvec", 2471 | "uuid 1.7.0", 2472 | ] 2473 | 2474 | [[package]] 2475 | name = "rkyv_derive" 2476 | version = "0.7.44" 2477 | source = "registry+https://github.com/rust-lang/crates.io-index" 2478 | checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65" 2479 | dependencies = [ 2480 | "proc-macro2", 2481 | "quote", 2482 | "syn 1.0.109", 2483 | ] 2484 | 2485 | [[package]] 2486 | name = "rlp" 2487 | version = "0.5.2" 2488 | source = "registry+https://github.com/rust-lang/crates.io-index" 2489 | checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" 2490 | dependencies = [ 2491 | "bytes", 2492 | "rustc-hex", 2493 | ] 2494 | 2495 | [[package]] 2496 | name = "rlp-derive" 2497 | version = "0.1.0" 2498 | source = "registry+https://github.com/rust-lang/crates.io-index" 2499 | checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" 2500 | dependencies = [ 2501 | "proc-macro2", 2502 | "quote", 2503 | "syn 1.0.109", 2504 | ] 2505 | 2506 | [[package]] 2507 | name = "rmp" 2508 | version = "0.8.12" 2509 | source = "registry+https://github.com/rust-lang/crates.io-index" 2510 | checksum = "7f9860a6cc38ed1da53456442089b4dfa35e7cedaa326df63017af88385e6b20" 2511 | dependencies = [ 2512 | "byteorder", 2513 | "num-traits", 2514 | "paste", 2515 | ] 2516 | 2517 | [[package]] 2518 | name = "rmp-serde" 2519 | version = "1.1.2" 2520 | source = "registry+https://github.com/rust-lang/crates.io-index" 2521 | checksum = "bffea85eea980d8a74453e5d02a8d93028f3c34725de143085a844ebe953258a" 2522 | dependencies = [ 2523 | "byteorder", 2524 | "rmp", 2525 | "serde", 2526 | ] 2527 | 2528 | [[package]] 2529 | name = "rust_decimal" 2530 | version = "1.34.3" 2531 | source = "registry+https://github.com/rust-lang/crates.io-index" 2532 | checksum = "b39449a79f45e8da28c57c341891b69a183044b29518bb8f86dbac9df60bb7df" 2533 | dependencies = [ 2534 | "arrayvec", 2535 | "borsh", 2536 | "bytes", 2537 | "num-traits", 2538 | "rand 0.8.5", 2539 | "rkyv", 2540 | "serde", 2541 | "serde_json", 2542 | ] 2543 | 2544 | [[package]] 2545 | name = "rustc-demangle" 2546 | version = "0.1.23" 2547 | source = "registry+https://github.com/rust-lang/crates.io-index" 2548 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 2549 | 2550 | [[package]] 2551 | name = "rustc-hex" 2552 | version = "2.1.0" 2553 | source = "registry+https://github.com/rust-lang/crates.io-index" 2554 | checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" 2555 | 2556 | [[package]] 2557 | name = "rustc_version" 2558 | version = "0.4.0" 2559 | source = "registry+https://github.com/rust-lang/crates.io-index" 2560 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" 2561 | dependencies = [ 2562 | "semver", 2563 | ] 2564 | 2565 | [[package]] 2566 | name = "rustix" 2567 | version = "0.38.31" 2568 | source = "registry+https://github.com/rust-lang/crates.io-index" 2569 | checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" 2570 | dependencies = [ 2571 | "bitflags 2.4.2", 2572 | "errno", 2573 | "libc", 2574 | "linux-raw-sys", 2575 | "windows-sys 0.52.0", 2576 | ] 2577 | 2578 | [[package]] 2579 | name = "rustls" 2580 | version = "0.19.1" 2581 | source = "registry+https://github.com/rust-lang/crates.io-index" 2582 | checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" 2583 | dependencies = [ 2584 | "base64 0.13.1", 2585 | "log", 2586 | "ring 0.16.20", 2587 | "sct 0.6.1", 2588 | "webpki", 2589 | ] 2590 | 2591 | [[package]] 2592 | name = "rustls" 2593 | version = "0.21.10" 2594 | source = "registry+https://github.com/rust-lang/crates.io-index" 2595 | checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" 2596 | dependencies = [ 2597 | "log", 2598 | "ring 0.17.7", 2599 | "rustls-webpki", 2600 | "sct 0.7.1", 2601 | ] 2602 | 2603 | [[package]] 2604 | name = "rustls-native-certs" 2605 | version = "0.5.0" 2606 | source = "registry+https://github.com/rust-lang/crates.io-index" 2607 | checksum = "5a07b7c1885bd8ed3831c289b7870b13ef46fe0e856d288c30d9cc17d75a2092" 2608 | dependencies = [ 2609 | "openssl-probe", 2610 | "rustls 0.19.1", 2611 | "schannel", 2612 | "security-framework", 2613 | ] 2614 | 2615 | [[package]] 2616 | name = "rustls-pemfile" 2617 | version = "1.0.4" 2618 | source = "registry+https://github.com/rust-lang/crates.io-index" 2619 | checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" 2620 | dependencies = [ 2621 | "base64 0.21.7", 2622 | ] 2623 | 2624 | [[package]] 2625 | name = "rustls-webpki" 2626 | version = "0.101.7" 2627 | source = "registry+https://github.com/rust-lang/crates.io-index" 2628 | checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" 2629 | dependencies = [ 2630 | "ring 0.17.7", 2631 | "untrusted 0.9.0", 2632 | ] 2633 | 2634 | [[package]] 2635 | name = "rustversion" 2636 | version = "1.0.14" 2637 | source = "registry+https://github.com/rust-lang/crates.io-index" 2638 | checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" 2639 | 2640 | [[package]] 2641 | name = "ryu" 2642 | version = "1.0.16" 2643 | source = "registry+https://github.com/rust-lang/crates.io-index" 2644 | checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" 2645 | 2646 | [[package]] 2647 | name = "salsa20" 2648 | version = "0.9.0" 2649 | source = "registry+https://github.com/rust-lang/crates.io-index" 2650 | checksum = "0c0fbb5f676da676c260ba276a8f43a8dc67cf02d1438423aeb1c677a7212686" 2651 | dependencies = [ 2652 | "cipher", 2653 | ] 2654 | 2655 | [[package]] 2656 | name = "same-file" 2657 | version = "1.0.6" 2658 | source = "registry+https://github.com/rust-lang/crates.io-index" 2659 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 2660 | dependencies = [ 2661 | "winapi-util", 2662 | ] 2663 | 2664 | [[package]] 2665 | name = "schannel" 2666 | version = "0.1.23" 2667 | source = "registry+https://github.com/rust-lang/crates.io-index" 2668 | checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" 2669 | dependencies = [ 2670 | "windows-sys 0.52.0", 2671 | ] 2672 | 2673 | [[package]] 2674 | name = "scopeguard" 2675 | version = "1.2.0" 2676 | source = "registry+https://github.com/rust-lang/crates.io-index" 2677 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 2678 | 2679 | [[package]] 2680 | name = "scrypt" 2681 | version = "0.8.1" 2682 | source = "registry+https://github.com/rust-lang/crates.io-index" 2683 | checksum = "e73d6d7c6311ebdbd9184ad6c4447b2f36337e327bda107d3ba9e3c374f9d325" 2684 | dependencies = [ 2685 | "hmac 0.12.1", 2686 | "password-hash 0.3.2", 2687 | "pbkdf2 0.10.1", 2688 | "salsa20", 2689 | "sha2 0.10.8", 2690 | ] 2691 | 2692 | [[package]] 2693 | name = "sct" 2694 | version = "0.6.1" 2695 | source = "registry+https://github.com/rust-lang/crates.io-index" 2696 | checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" 2697 | dependencies = [ 2698 | "ring 0.16.20", 2699 | "untrusted 0.7.1", 2700 | ] 2701 | 2702 | [[package]] 2703 | name = "sct" 2704 | version = "0.7.1" 2705 | source = "registry+https://github.com/rust-lang/crates.io-index" 2706 | checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" 2707 | dependencies = [ 2708 | "ring 0.17.7", 2709 | "untrusted 0.9.0", 2710 | ] 2711 | 2712 | [[package]] 2713 | name = "seahash" 2714 | version = "4.1.0" 2715 | source = "registry+https://github.com/rust-lang/crates.io-index" 2716 | checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" 2717 | 2718 | [[package]] 2719 | name = "sec1" 2720 | version = "0.3.0" 2721 | source = "registry+https://github.com/rust-lang/crates.io-index" 2722 | checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" 2723 | dependencies = [ 2724 | "base16ct", 2725 | "der", 2726 | "generic-array 0.14.7", 2727 | "pkcs8", 2728 | "subtle", 2729 | "zeroize", 2730 | ] 2731 | 2732 | [[package]] 2733 | name = "security-framework" 2734 | version = "2.9.2" 2735 | source = "registry+https://github.com/rust-lang/crates.io-index" 2736 | checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" 2737 | dependencies = [ 2738 | "bitflags 1.3.2", 2739 | "core-foundation", 2740 | "core-foundation-sys", 2741 | "libc", 2742 | "security-framework-sys", 2743 | ] 2744 | 2745 | [[package]] 2746 | name = "security-framework-sys" 2747 | version = "2.9.1" 2748 | source = "registry+https://github.com/rust-lang/crates.io-index" 2749 | checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" 2750 | dependencies = [ 2751 | "core-foundation-sys", 2752 | "libc", 2753 | ] 2754 | 2755 | [[package]] 2756 | name = "semver" 2757 | version = "1.0.21" 2758 | source = "registry+https://github.com/rust-lang/crates.io-index" 2759 | checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" 2760 | dependencies = [ 2761 | "serde", 2762 | ] 2763 | 2764 | [[package]] 2765 | name = "send_wrapper" 2766 | version = "0.6.0" 2767 | source = "registry+https://github.com/rust-lang/crates.io-index" 2768 | checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" 2769 | 2770 | [[package]] 2771 | name = "serde" 2772 | version = "1.0.196" 2773 | source = "registry+https://github.com/rust-lang/crates.io-index" 2774 | checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" 2775 | dependencies = [ 2776 | "serde_derive", 2777 | ] 2778 | 2779 | [[package]] 2780 | name = "serde-aux" 2781 | version = "3.1.0" 2782 | source = "registry+https://github.com/rust-lang/crates.io-index" 2783 | checksum = "d0a77223b653fa95f3f9864f3eb25b93e4ed170687eb42d85b6b98af21d5e1de" 2784 | dependencies = [ 2785 | "serde", 2786 | "serde_json", 2787 | ] 2788 | 2789 | [[package]] 2790 | name = "serde_derive" 2791 | version = "1.0.196" 2792 | source = "registry+https://github.com/rust-lang/crates.io-index" 2793 | checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" 2794 | dependencies = [ 2795 | "proc-macro2", 2796 | "quote", 2797 | "syn 2.0.49", 2798 | ] 2799 | 2800 | [[package]] 2801 | name = "serde_json" 2802 | version = "1.0.113" 2803 | source = "registry+https://github.com/rust-lang/crates.io-index" 2804 | checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" 2805 | dependencies = [ 2806 | "itoa", 2807 | "ryu", 2808 | "serde", 2809 | ] 2810 | 2811 | [[package]] 2812 | name = "serde_urlencoded" 2813 | version = "0.7.1" 2814 | source = "registry+https://github.com/rust-lang/crates.io-index" 2815 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 2816 | dependencies = [ 2817 | "form_urlencoded", 2818 | "itoa", 2819 | "ryu", 2820 | "serde", 2821 | ] 2822 | 2823 | [[package]] 2824 | name = "sha-1" 2825 | version = "0.9.8" 2826 | source = "registry+https://github.com/rust-lang/crates.io-index" 2827 | checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" 2828 | dependencies = [ 2829 | "block-buffer 0.9.0", 2830 | "cfg-if 1.0.0", 2831 | "cpufeatures", 2832 | "digest 0.9.0", 2833 | "opaque-debug 0.3.0", 2834 | ] 2835 | 2836 | [[package]] 2837 | name = "sha1" 2838 | version = "0.10.6" 2839 | source = "registry+https://github.com/rust-lang/crates.io-index" 2840 | checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" 2841 | dependencies = [ 2842 | "cfg-if 1.0.0", 2843 | "cpufeatures", 2844 | "digest 0.10.7", 2845 | ] 2846 | 2847 | [[package]] 2848 | name = "sha2" 2849 | version = "0.8.2" 2850 | source = "registry+https://github.com/rust-lang/crates.io-index" 2851 | checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" 2852 | dependencies = [ 2853 | "block-buffer 0.7.3", 2854 | "digest 0.8.1", 2855 | "fake-simd", 2856 | "opaque-debug 0.2.3", 2857 | ] 2858 | 2859 | [[package]] 2860 | name = "sha2" 2861 | version = "0.10.8" 2862 | source = "registry+https://github.com/rust-lang/crates.io-index" 2863 | checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" 2864 | dependencies = [ 2865 | "cfg-if 1.0.0", 2866 | "cpufeatures", 2867 | "digest 0.10.7", 2868 | ] 2869 | 2870 | [[package]] 2871 | name = "sha3" 2872 | version = "0.10.8" 2873 | source = "registry+https://github.com/rust-lang/crates.io-index" 2874 | checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" 2875 | dependencies = [ 2876 | "digest 0.10.7", 2877 | "keccak", 2878 | ] 2879 | 2880 | [[package]] 2881 | name = "signal-hook-registry" 2882 | version = "1.4.1" 2883 | source = "registry+https://github.com/rust-lang/crates.io-index" 2884 | checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" 2885 | dependencies = [ 2886 | "libc", 2887 | ] 2888 | 2889 | [[package]] 2890 | name = "signature" 2891 | version = "1.6.4" 2892 | source = "registry+https://github.com/rust-lang/crates.io-index" 2893 | checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" 2894 | dependencies = [ 2895 | "digest 0.10.7", 2896 | "rand_core 0.6.4", 2897 | ] 2898 | 2899 | [[package]] 2900 | name = "simdutf8" 2901 | version = "0.1.4" 2902 | source = "registry+https://github.com/rust-lang/crates.io-index" 2903 | checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a" 2904 | 2905 | [[package]] 2906 | name = "slab" 2907 | version = "0.4.9" 2908 | source = "registry+https://github.com/rust-lang/crates.io-index" 2909 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 2910 | dependencies = [ 2911 | "autocfg", 2912 | ] 2913 | 2914 | [[package]] 2915 | name = "smallvec" 2916 | version = "1.13.1" 2917 | source = "registry+https://github.com/rust-lang/crates.io-index" 2918 | checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" 2919 | 2920 | [[package]] 2921 | name = "socket2" 2922 | version = "0.5.5" 2923 | source = "registry+https://github.com/rust-lang/crates.io-index" 2924 | checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" 2925 | dependencies = [ 2926 | "libc", 2927 | "windows-sys 0.48.0", 2928 | ] 2929 | 2930 | [[package]] 2931 | name = "spin" 2932 | version = "0.5.2" 2933 | source = "registry+https://github.com/rust-lang/crates.io-index" 2934 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 2935 | 2936 | [[package]] 2937 | name = "spin" 2938 | version = "0.9.8" 2939 | source = "registry+https://github.com/rust-lang/crates.io-index" 2940 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 2941 | 2942 | [[package]] 2943 | name = "spki" 2944 | version = "0.6.0" 2945 | source = "registry+https://github.com/rust-lang/crates.io-index" 2946 | checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" 2947 | dependencies = [ 2948 | "base64ct", 2949 | "der", 2950 | ] 2951 | 2952 | [[package]] 2953 | name = "static_assertions" 2954 | version = "1.1.0" 2955 | source = "registry+https://github.com/rust-lang/crates.io-index" 2956 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 2957 | 2958 | [[package]] 2959 | name = "strum" 2960 | version = "0.24.1" 2961 | source = "registry+https://github.com/rust-lang/crates.io-index" 2962 | checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" 2963 | dependencies = [ 2964 | "strum_macros", 2965 | ] 2966 | 2967 | [[package]] 2968 | name = "strum_macros" 2969 | version = "0.24.3" 2970 | source = "registry+https://github.com/rust-lang/crates.io-index" 2971 | checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" 2972 | dependencies = [ 2973 | "heck", 2974 | "proc-macro2", 2975 | "quote", 2976 | "rustversion", 2977 | "syn 1.0.109", 2978 | ] 2979 | 2980 | [[package]] 2981 | name = "subtle" 2982 | version = "2.4.1" 2983 | source = "registry+https://github.com/rust-lang/crates.io-index" 2984 | checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" 2985 | 2986 | [[package]] 2987 | name = "syn" 2988 | version = "1.0.109" 2989 | source = "registry+https://github.com/rust-lang/crates.io-index" 2990 | checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" 2991 | dependencies = [ 2992 | "proc-macro2", 2993 | "quote", 2994 | "unicode-ident", 2995 | ] 2996 | 2997 | [[package]] 2998 | name = "syn" 2999 | version = "2.0.49" 3000 | source = "registry+https://github.com/rust-lang/crates.io-index" 3001 | checksum = "915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496" 3002 | dependencies = [ 3003 | "proc-macro2", 3004 | "quote", 3005 | "unicode-ident", 3006 | ] 3007 | 3008 | [[package]] 3009 | name = "syn_derive" 3010 | version = "0.1.8" 3011 | source = "registry+https://github.com/rust-lang/crates.io-index" 3012 | checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" 3013 | dependencies = [ 3014 | "proc-macro-error", 3015 | "proc-macro2", 3016 | "quote", 3017 | "syn 2.0.49", 3018 | ] 3019 | 3020 | [[package]] 3021 | name = "sync_wrapper" 3022 | version = "0.1.2" 3023 | source = "registry+https://github.com/rust-lang/crates.io-index" 3024 | checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 3025 | 3026 | [[package]] 3027 | name = "system-configuration" 3028 | version = "0.5.1" 3029 | source = "registry+https://github.com/rust-lang/crates.io-index" 3030 | checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 3031 | dependencies = [ 3032 | "bitflags 1.3.2", 3033 | "core-foundation", 3034 | "system-configuration-sys", 3035 | ] 3036 | 3037 | [[package]] 3038 | name = "system-configuration-sys" 3039 | version = "0.5.0" 3040 | source = "registry+https://github.com/rust-lang/crates.io-index" 3041 | checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 3042 | dependencies = [ 3043 | "core-foundation-sys", 3044 | "libc", 3045 | ] 3046 | 3047 | [[package]] 3048 | name = "tap" 3049 | version = "1.0.1" 3050 | source = "registry+https://github.com/rust-lang/crates.io-index" 3051 | checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" 3052 | 3053 | [[package]] 3054 | name = "tempfile" 3055 | version = "3.10.0" 3056 | source = "registry+https://github.com/rust-lang/crates.io-index" 3057 | checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" 3058 | dependencies = [ 3059 | "cfg-if 1.0.0", 3060 | "fastrand", 3061 | "rustix", 3062 | "windows-sys 0.52.0", 3063 | ] 3064 | 3065 | [[package]] 3066 | name = "termcolor" 3067 | version = "1.4.1" 3068 | source = "registry+https://github.com/rust-lang/crates.io-index" 3069 | checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" 3070 | dependencies = [ 3071 | "winapi-util", 3072 | ] 3073 | 3074 | [[package]] 3075 | name = "textnonce" 3076 | version = "1.0.0" 3077 | source = "registry+https://github.com/rust-lang/crates.io-index" 3078 | checksum = "7743f8d70cd784ed1dc33106a18998d77758d281dc40dc3e6d050cf0f5286683" 3079 | dependencies = [ 3080 | "base64 0.12.3", 3081 | "rand 0.7.3", 3082 | ] 3083 | 3084 | [[package]] 3085 | name = "thiserror" 3086 | version = "1.0.57" 3087 | source = "registry+https://github.com/rust-lang/crates.io-index" 3088 | checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" 3089 | dependencies = [ 3090 | "thiserror-impl", 3091 | ] 3092 | 3093 | [[package]] 3094 | name = "thiserror-impl" 3095 | version = "1.0.57" 3096 | source = "registry+https://github.com/rust-lang/crates.io-index" 3097 | checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" 3098 | dependencies = [ 3099 | "proc-macro2", 3100 | "quote", 3101 | "syn 2.0.49", 3102 | ] 3103 | 3104 | [[package]] 3105 | name = "tiny-keccak" 3106 | version = "2.0.2" 3107 | source = "registry+https://github.com/rust-lang/crates.io-index" 3108 | checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" 3109 | dependencies = [ 3110 | "crunchy", 3111 | ] 3112 | 3113 | [[package]] 3114 | name = "tinyvec" 3115 | version = "1.6.0" 3116 | source = "registry+https://github.com/rust-lang/crates.io-index" 3117 | checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" 3118 | dependencies = [ 3119 | "tinyvec_macros", 3120 | ] 3121 | 3122 | [[package]] 3123 | name = "tinyvec_macros" 3124 | version = "0.1.1" 3125 | source = "registry+https://github.com/rust-lang/crates.io-index" 3126 | checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" 3127 | 3128 | [[package]] 3129 | name = "tokio" 3130 | version = "1.36.0" 3131 | source = "registry+https://github.com/rust-lang/crates.io-index" 3132 | checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" 3133 | dependencies = [ 3134 | "backtrace", 3135 | "bytes", 3136 | "libc", 3137 | "mio", 3138 | "num_cpus", 3139 | "parking_lot 0.12.1", 3140 | "pin-project-lite", 3141 | "signal-hook-registry", 3142 | "socket2", 3143 | "tokio-macros", 3144 | "windows-sys 0.48.0", 3145 | ] 3146 | 3147 | [[package]] 3148 | name = "tokio-macros" 3149 | version = "2.2.0" 3150 | source = "registry+https://github.com/rust-lang/crates.io-index" 3151 | checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" 3152 | dependencies = [ 3153 | "proc-macro2", 3154 | "quote", 3155 | "syn 2.0.49", 3156 | ] 3157 | 3158 | [[package]] 3159 | name = "tokio-native-tls" 3160 | version = "0.3.1" 3161 | source = "registry+https://github.com/rust-lang/crates.io-index" 3162 | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 3163 | dependencies = [ 3164 | "native-tls", 3165 | "tokio", 3166 | ] 3167 | 3168 | [[package]] 3169 | name = "tokio-rustls" 3170 | version = "0.22.0" 3171 | source = "registry+https://github.com/rust-lang/crates.io-index" 3172 | checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6" 3173 | dependencies = [ 3174 | "rustls 0.19.1", 3175 | "tokio", 3176 | "webpki", 3177 | ] 3178 | 3179 | [[package]] 3180 | name = "tokio-rustls" 3181 | version = "0.24.1" 3182 | source = "registry+https://github.com/rust-lang/crates.io-index" 3183 | checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" 3184 | dependencies = [ 3185 | "rustls 0.21.10", 3186 | "tokio", 3187 | ] 3188 | 3189 | [[package]] 3190 | name = "tokio-tungstenite" 3191 | version = "0.15.0" 3192 | source = "registry+https://github.com/rust-lang/crates.io-index" 3193 | checksum = "511de3f85caf1c98983545490c3d09685fa8eb634e57eec22bb4db271f46cbd8" 3194 | dependencies = [ 3195 | "futures-util", 3196 | "log", 3197 | "pin-project", 3198 | "rustls 0.19.1", 3199 | "tokio", 3200 | "tokio-rustls 0.22.0", 3201 | "tungstenite 0.14.0", 3202 | "webpki", 3203 | "webpki-roots 0.21.1", 3204 | ] 3205 | 3206 | [[package]] 3207 | name = "tokio-tungstenite" 3208 | version = "0.20.1" 3209 | source = "registry+https://github.com/rust-lang/crates.io-index" 3210 | checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" 3211 | dependencies = [ 3212 | "futures-util", 3213 | "log", 3214 | "native-tls", 3215 | "tokio", 3216 | "tokio-native-tls", 3217 | "tungstenite 0.20.1", 3218 | ] 3219 | 3220 | [[package]] 3221 | name = "tokio-util" 3222 | version = "0.7.10" 3223 | source = "registry+https://github.com/rust-lang/crates.io-index" 3224 | checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" 3225 | dependencies = [ 3226 | "bytes", 3227 | "futures-core", 3228 | "futures-sink", 3229 | "pin-project-lite", 3230 | "tokio", 3231 | "tracing", 3232 | ] 3233 | 3234 | [[package]] 3235 | name = "toml" 3236 | version = "0.5.11" 3237 | source = "registry+https://github.com/rust-lang/crates.io-index" 3238 | checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" 3239 | dependencies = [ 3240 | "serde", 3241 | ] 3242 | 3243 | [[package]] 3244 | name = "toml_datetime" 3245 | version = "0.6.3" 3246 | source = "registry+https://github.com/rust-lang/crates.io-index" 3247 | checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" 3248 | 3249 | [[package]] 3250 | name = "toml_edit" 3251 | version = "0.20.2" 3252 | source = "registry+https://github.com/rust-lang/crates.io-index" 3253 | checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" 3254 | dependencies = [ 3255 | "indexmap", 3256 | "toml_datetime", 3257 | "winnow", 3258 | ] 3259 | 3260 | [[package]] 3261 | name = "tower-service" 3262 | version = "0.3.2" 3263 | source = "registry+https://github.com/rust-lang/crates.io-index" 3264 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 3265 | 3266 | [[package]] 3267 | name = "tracing" 3268 | version = "0.1.40" 3269 | source = "registry+https://github.com/rust-lang/crates.io-index" 3270 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 3271 | dependencies = [ 3272 | "pin-project-lite", 3273 | "tracing-attributes", 3274 | "tracing-core", 3275 | ] 3276 | 3277 | [[package]] 3278 | name = "tracing-attributes" 3279 | version = "0.1.27" 3280 | source = "registry+https://github.com/rust-lang/crates.io-index" 3281 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 3282 | dependencies = [ 3283 | "proc-macro2", 3284 | "quote", 3285 | "syn 2.0.49", 3286 | ] 3287 | 3288 | [[package]] 3289 | name = "tracing-core" 3290 | version = "0.1.32" 3291 | source = "registry+https://github.com/rust-lang/crates.io-index" 3292 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 3293 | dependencies = [ 3294 | "once_cell", 3295 | ] 3296 | 3297 | [[package]] 3298 | name = "tracing-futures" 3299 | version = "0.2.5" 3300 | source = "registry+https://github.com/rust-lang/crates.io-index" 3301 | checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" 3302 | dependencies = [ 3303 | "pin-project", 3304 | "tracing", 3305 | ] 3306 | 3307 | [[package]] 3308 | name = "try-lock" 3309 | version = "0.2.5" 3310 | source = "registry+https://github.com/rust-lang/crates.io-index" 3311 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 3312 | 3313 | [[package]] 3314 | name = "tungstenite" 3315 | version = "0.12.0" 3316 | source = "registry+https://github.com/rust-lang/crates.io-index" 3317 | checksum = "8ada8297e8d70872fa9a551d93250a9f407beb9f37ef86494eb20012a2ff7c24" 3318 | dependencies = [ 3319 | "base64 0.13.1", 3320 | "byteorder", 3321 | "bytes", 3322 | "http", 3323 | "httparse", 3324 | "input_buffer", 3325 | "log", 3326 | "native-tls", 3327 | "rand 0.8.5", 3328 | "sha-1", 3329 | "url", 3330 | "utf-8", 3331 | ] 3332 | 3333 | [[package]] 3334 | name = "tungstenite" 3335 | version = "0.14.0" 3336 | source = "registry+https://github.com/rust-lang/crates.io-index" 3337 | checksum = "a0b2d8558abd2e276b0a8df5c05a2ec762609344191e5fd23e292c910e9165b5" 3338 | dependencies = [ 3339 | "base64 0.13.1", 3340 | "byteorder", 3341 | "bytes", 3342 | "http", 3343 | "httparse", 3344 | "log", 3345 | "rand 0.8.5", 3346 | "rustls 0.19.1", 3347 | "rustls-native-certs", 3348 | "sha-1", 3349 | "thiserror", 3350 | "url", 3351 | "utf-8", 3352 | "webpki", 3353 | ] 3354 | 3355 | [[package]] 3356 | name = "tungstenite" 3357 | version = "0.20.1" 3358 | source = "registry+https://github.com/rust-lang/crates.io-index" 3359 | checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" 3360 | dependencies = [ 3361 | "byteorder", 3362 | "bytes", 3363 | "data-encoding", 3364 | "http", 3365 | "httparse", 3366 | "log", 3367 | "native-tls", 3368 | "rand 0.8.5", 3369 | "sha1", 3370 | "thiserror", 3371 | "url", 3372 | "utf-8", 3373 | ] 3374 | 3375 | [[package]] 3376 | name = "typenum" 3377 | version = "1.17.0" 3378 | source = "registry+https://github.com/rust-lang/crates.io-index" 3379 | checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" 3380 | 3381 | [[package]] 3382 | name = "uint" 3383 | version = "0.9.5" 3384 | source = "registry+https://github.com/rust-lang/crates.io-index" 3385 | checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" 3386 | dependencies = [ 3387 | "byteorder", 3388 | "crunchy", 3389 | "hex", 3390 | "static_assertions", 3391 | ] 3392 | 3393 | [[package]] 3394 | name = "unicase" 3395 | version = "2.7.0" 3396 | source = "registry+https://github.com/rust-lang/crates.io-index" 3397 | checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" 3398 | dependencies = [ 3399 | "version_check", 3400 | ] 3401 | 3402 | [[package]] 3403 | name = "unicode-bidi" 3404 | version = "0.3.15" 3405 | source = "registry+https://github.com/rust-lang/crates.io-index" 3406 | checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" 3407 | 3408 | [[package]] 3409 | name = "unicode-ident" 3410 | version = "1.0.12" 3411 | source = "registry+https://github.com/rust-lang/crates.io-index" 3412 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 3413 | 3414 | [[package]] 3415 | name = "unicode-normalization" 3416 | version = "0.1.22" 3417 | source = "registry+https://github.com/rust-lang/crates.io-index" 3418 | checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" 3419 | dependencies = [ 3420 | "tinyvec", 3421 | ] 3422 | 3423 | [[package]] 3424 | name = "unicode-xid" 3425 | version = "0.2.4" 3426 | source = "registry+https://github.com/rust-lang/crates.io-index" 3427 | checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" 3428 | 3429 | [[package]] 3430 | name = "untrusted" 3431 | version = "0.7.1" 3432 | source = "registry+https://github.com/rust-lang/crates.io-index" 3433 | checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" 3434 | 3435 | [[package]] 3436 | name = "untrusted" 3437 | version = "0.9.0" 3438 | source = "registry+https://github.com/rust-lang/crates.io-index" 3439 | checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" 3440 | 3441 | [[package]] 3442 | name = "url" 3443 | version = "2.5.0" 3444 | source = "registry+https://github.com/rust-lang/crates.io-index" 3445 | checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" 3446 | dependencies = [ 3447 | "form_urlencoded", 3448 | "idna", 3449 | "percent-encoding", 3450 | ] 3451 | 3452 | [[package]] 3453 | name = "urlencoding" 3454 | version = "2.1.3" 3455 | source = "registry+https://github.com/rust-lang/crates.io-index" 3456 | checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" 3457 | 3458 | [[package]] 3459 | name = "utf-8" 3460 | version = "0.7.6" 3461 | source = "registry+https://github.com/rust-lang/crates.io-index" 3462 | checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" 3463 | 3464 | [[package]] 3465 | name = "uuid" 3466 | version = "0.8.2" 3467 | source = "registry+https://github.com/rust-lang/crates.io-index" 3468 | checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" 3469 | dependencies = [ 3470 | "getrandom 0.2.12", 3471 | "serde", 3472 | ] 3473 | 3474 | [[package]] 3475 | name = "uuid" 3476 | version = "1.7.0" 3477 | source = "registry+https://github.com/rust-lang/crates.io-index" 3478 | checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" 3479 | 3480 | [[package]] 3481 | name = "vcpkg" 3482 | version = "0.2.15" 3483 | source = "registry+https://github.com/rust-lang/crates.io-index" 3484 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 3485 | 3486 | [[package]] 3487 | name = "version_check" 3488 | version = "0.9.4" 3489 | source = "registry+https://github.com/rust-lang/crates.io-index" 3490 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 3491 | 3492 | [[package]] 3493 | name = "walkdir" 3494 | version = "2.4.0" 3495 | source = "registry+https://github.com/rust-lang/crates.io-index" 3496 | checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" 3497 | dependencies = [ 3498 | "same-file", 3499 | "winapi-util", 3500 | ] 3501 | 3502 | [[package]] 3503 | name = "want" 3504 | version = "0.3.1" 3505 | source = "registry+https://github.com/rust-lang/crates.io-index" 3506 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 3507 | dependencies = [ 3508 | "try-lock", 3509 | ] 3510 | 3511 | [[package]] 3512 | name = "wasi" 3513 | version = "0.9.0+wasi-snapshot-preview1" 3514 | source = "registry+https://github.com/rust-lang/crates.io-index" 3515 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 3516 | 3517 | [[package]] 3518 | name = "wasi" 3519 | version = "0.11.0+wasi-snapshot-preview1" 3520 | source = "registry+https://github.com/rust-lang/crates.io-index" 3521 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 3522 | 3523 | [[package]] 3524 | name = "wasm-bindgen" 3525 | version = "0.2.91" 3526 | source = "registry+https://github.com/rust-lang/crates.io-index" 3527 | checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" 3528 | dependencies = [ 3529 | "cfg-if 1.0.0", 3530 | "wasm-bindgen-macro", 3531 | ] 3532 | 3533 | [[package]] 3534 | name = "wasm-bindgen-backend" 3535 | version = "0.2.91" 3536 | source = "registry+https://github.com/rust-lang/crates.io-index" 3537 | checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" 3538 | dependencies = [ 3539 | "bumpalo", 3540 | "log", 3541 | "once_cell", 3542 | "proc-macro2", 3543 | "quote", 3544 | "syn 2.0.49", 3545 | "wasm-bindgen-shared", 3546 | ] 3547 | 3548 | [[package]] 3549 | name = "wasm-bindgen-futures" 3550 | version = "0.4.41" 3551 | source = "registry+https://github.com/rust-lang/crates.io-index" 3552 | checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" 3553 | dependencies = [ 3554 | "cfg-if 1.0.0", 3555 | "js-sys", 3556 | "wasm-bindgen", 3557 | "web-sys", 3558 | ] 3559 | 3560 | [[package]] 3561 | name = "wasm-bindgen-macro" 3562 | version = "0.2.91" 3563 | source = "registry+https://github.com/rust-lang/crates.io-index" 3564 | checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" 3565 | dependencies = [ 3566 | "quote", 3567 | "wasm-bindgen-macro-support", 3568 | ] 3569 | 3570 | [[package]] 3571 | name = "wasm-bindgen-macro-support" 3572 | version = "0.2.91" 3573 | source = "registry+https://github.com/rust-lang/crates.io-index" 3574 | checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" 3575 | dependencies = [ 3576 | "proc-macro2", 3577 | "quote", 3578 | "syn 2.0.49", 3579 | "wasm-bindgen-backend", 3580 | "wasm-bindgen-shared", 3581 | ] 3582 | 3583 | [[package]] 3584 | name = "wasm-bindgen-shared" 3585 | version = "0.2.91" 3586 | source = "registry+https://github.com/rust-lang/crates.io-index" 3587 | checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" 3588 | 3589 | [[package]] 3590 | name = "wasm-timer" 3591 | version = "0.2.5" 3592 | source = "registry+https://github.com/rust-lang/crates.io-index" 3593 | checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" 3594 | dependencies = [ 3595 | "futures", 3596 | "js-sys", 3597 | "parking_lot 0.11.2", 3598 | "pin-utils", 3599 | "wasm-bindgen", 3600 | "wasm-bindgen-futures", 3601 | "web-sys", 3602 | ] 3603 | 3604 | [[package]] 3605 | name = "web-sys" 3606 | version = "0.3.68" 3607 | source = "registry+https://github.com/rust-lang/crates.io-index" 3608 | checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" 3609 | dependencies = [ 3610 | "js-sys", 3611 | "wasm-bindgen", 3612 | ] 3613 | 3614 | [[package]] 3615 | name = "webpki" 3616 | version = "0.21.4" 3617 | source = "registry+https://github.com/rust-lang/crates.io-index" 3618 | checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" 3619 | dependencies = [ 3620 | "ring 0.16.20", 3621 | "untrusted 0.7.1", 3622 | ] 3623 | 3624 | [[package]] 3625 | name = "webpki-roots" 3626 | version = "0.21.1" 3627 | source = "registry+https://github.com/rust-lang/crates.io-index" 3628 | checksum = "aabe153544e473b775453675851ecc86863d2a81d786d741f6b76778f2a48940" 3629 | dependencies = [ 3630 | "webpki", 3631 | ] 3632 | 3633 | [[package]] 3634 | name = "webpki-roots" 3635 | version = "0.25.4" 3636 | source = "registry+https://github.com/rust-lang/crates.io-index" 3637 | checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" 3638 | 3639 | [[package]] 3640 | name = "winapi" 3641 | version = "0.3.9" 3642 | source = "registry+https://github.com/rust-lang/crates.io-index" 3643 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 3644 | dependencies = [ 3645 | "winapi-i686-pc-windows-gnu", 3646 | "winapi-x86_64-pc-windows-gnu", 3647 | ] 3648 | 3649 | [[package]] 3650 | name = "winapi-i686-pc-windows-gnu" 3651 | version = "0.4.0" 3652 | source = "registry+https://github.com/rust-lang/crates.io-index" 3653 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 3654 | 3655 | [[package]] 3656 | name = "winapi-util" 3657 | version = "0.1.6" 3658 | source = "registry+https://github.com/rust-lang/crates.io-index" 3659 | checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" 3660 | dependencies = [ 3661 | "winapi", 3662 | ] 3663 | 3664 | [[package]] 3665 | name = "winapi-x86_64-pc-windows-gnu" 3666 | version = "0.4.0" 3667 | source = "registry+https://github.com/rust-lang/crates.io-index" 3668 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 3669 | 3670 | [[package]] 3671 | name = "windows-core" 3672 | version = "0.52.0" 3673 | source = "registry+https://github.com/rust-lang/crates.io-index" 3674 | checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" 3675 | dependencies = [ 3676 | "windows-targets 0.52.0", 3677 | ] 3678 | 3679 | [[package]] 3680 | name = "windows-sys" 3681 | version = "0.48.0" 3682 | source = "registry+https://github.com/rust-lang/crates.io-index" 3683 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 3684 | dependencies = [ 3685 | "windows-targets 0.48.5", 3686 | ] 3687 | 3688 | [[package]] 3689 | name = "windows-sys" 3690 | version = "0.52.0" 3691 | source = "registry+https://github.com/rust-lang/crates.io-index" 3692 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 3693 | dependencies = [ 3694 | "windows-targets 0.52.0", 3695 | ] 3696 | 3697 | [[package]] 3698 | name = "windows-targets" 3699 | version = "0.48.5" 3700 | source = "registry+https://github.com/rust-lang/crates.io-index" 3701 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 3702 | dependencies = [ 3703 | "windows_aarch64_gnullvm 0.48.5", 3704 | "windows_aarch64_msvc 0.48.5", 3705 | "windows_i686_gnu 0.48.5", 3706 | "windows_i686_msvc 0.48.5", 3707 | "windows_x86_64_gnu 0.48.5", 3708 | "windows_x86_64_gnullvm 0.48.5", 3709 | "windows_x86_64_msvc 0.48.5", 3710 | ] 3711 | 3712 | [[package]] 3713 | name = "windows-targets" 3714 | version = "0.52.0" 3715 | source = "registry+https://github.com/rust-lang/crates.io-index" 3716 | checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" 3717 | dependencies = [ 3718 | "windows_aarch64_gnullvm 0.52.0", 3719 | "windows_aarch64_msvc 0.52.0", 3720 | "windows_i686_gnu 0.52.0", 3721 | "windows_i686_msvc 0.52.0", 3722 | "windows_x86_64_gnu 0.52.0", 3723 | "windows_x86_64_gnullvm 0.52.0", 3724 | "windows_x86_64_msvc 0.52.0", 3725 | ] 3726 | 3727 | [[package]] 3728 | name = "windows_aarch64_gnullvm" 3729 | version = "0.48.5" 3730 | source = "registry+https://github.com/rust-lang/crates.io-index" 3731 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 3732 | 3733 | [[package]] 3734 | name = "windows_aarch64_gnullvm" 3735 | version = "0.52.0" 3736 | source = "registry+https://github.com/rust-lang/crates.io-index" 3737 | checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" 3738 | 3739 | [[package]] 3740 | name = "windows_aarch64_msvc" 3741 | version = "0.48.5" 3742 | source = "registry+https://github.com/rust-lang/crates.io-index" 3743 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 3744 | 3745 | [[package]] 3746 | name = "windows_aarch64_msvc" 3747 | version = "0.52.0" 3748 | source = "registry+https://github.com/rust-lang/crates.io-index" 3749 | checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" 3750 | 3751 | [[package]] 3752 | name = "windows_i686_gnu" 3753 | version = "0.48.5" 3754 | source = "registry+https://github.com/rust-lang/crates.io-index" 3755 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 3756 | 3757 | [[package]] 3758 | name = "windows_i686_gnu" 3759 | version = "0.52.0" 3760 | source = "registry+https://github.com/rust-lang/crates.io-index" 3761 | checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" 3762 | 3763 | [[package]] 3764 | name = "windows_i686_msvc" 3765 | version = "0.48.5" 3766 | source = "registry+https://github.com/rust-lang/crates.io-index" 3767 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 3768 | 3769 | [[package]] 3770 | name = "windows_i686_msvc" 3771 | version = "0.52.0" 3772 | source = "registry+https://github.com/rust-lang/crates.io-index" 3773 | checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" 3774 | 3775 | [[package]] 3776 | name = "windows_x86_64_gnu" 3777 | version = "0.48.5" 3778 | source = "registry+https://github.com/rust-lang/crates.io-index" 3779 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 3780 | 3781 | [[package]] 3782 | name = "windows_x86_64_gnu" 3783 | version = "0.52.0" 3784 | source = "registry+https://github.com/rust-lang/crates.io-index" 3785 | checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" 3786 | 3787 | [[package]] 3788 | name = "windows_x86_64_gnullvm" 3789 | version = "0.48.5" 3790 | source = "registry+https://github.com/rust-lang/crates.io-index" 3791 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 3792 | 3793 | [[package]] 3794 | name = "windows_x86_64_gnullvm" 3795 | version = "0.52.0" 3796 | source = "registry+https://github.com/rust-lang/crates.io-index" 3797 | checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" 3798 | 3799 | [[package]] 3800 | name = "windows_x86_64_msvc" 3801 | version = "0.48.5" 3802 | source = "registry+https://github.com/rust-lang/crates.io-index" 3803 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 3804 | 3805 | [[package]] 3806 | name = "windows_x86_64_msvc" 3807 | version = "0.52.0" 3808 | source = "registry+https://github.com/rust-lang/crates.io-index" 3809 | checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" 3810 | 3811 | [[package]] 3812 | name = "winnow" 3813 | version = "0.5.40" 3814 | source = "registry+https://github.com/rust-lang/crates.io-index" 3815 | checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" 3816 | dependencies = [ 3817 | "memchr", 3818 | ] 3819 | 3820 | [[package]] 3821 | name = "winreg" 3822 | version = "0.50.0" 3823 | source = "registry+https://github.com/rust-lang/crates.io-index" 3824 | checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 3825 | dependencies = [ 3826 | "cfg-if 1.0.0", 3827 | "windows-sys 0.48.0", 3828 | ] 3829 | 3830 | [[package]] 3831 | name = "ws_stream_wasm" 3832 | version = "0.7.4" 3833 | source = "registry+https://github.com/rust-lang/crates.io-index" 3834 | checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" 3835 | dependencies = [ 3836 | "async_io_stream", 3837 | "futures", 3838 | "js-sys", 3839 | "log", 3840 | "pharos", 3841 | "rustc_version", 3842 | "send_wrapper", 3843 | "thiserror", 3844 | "wasm-bindgen", 3845 | "wasm-bindgen-futures", 3846 | "web-sys", 3847 | ] 3848 | 3849 | [[package]] 3850 | name = "wyz" 3851 | version = "0.5.1" 3852 | source = "registry+https://github.com/rust-lang/crates.io-index" 3853 | checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" 3854 | dependencies = [ 3855 | "tap", 3856 | ] 3857 | 3858 | [[package]] 3859 | name = "zeroize" 3860 | version = "1.7.0" 3861 | source = "registry+https://github.com/rust-lang/crates.io-index" 3862 | checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" 3863 | --------------------------------------------------------------------------------