From e25d8730d44f2065a744b90292640740d81867b3 Mon Sep 17 00:00:00 2001 From: zachanon Date: Mon, 1 Aug 2022 17:54:50 -0600 Subject: [PATCH 01/34] pause logic --- program/src/instruction.rs | 29 +++++++++ program/src/processor.rs | 6 ++ program/src/processor/create_market.rs | 10 +-- program/src/processor/new_order.rs | 11 +++- program/src/processor/pause_matching.rs | 67 ++++++++++++++++++++ program/src/state/market_state.rs | 22 +++++++ program/src/state/orderbook.rs | 84 +++++++++++++++++++++++++ 7 files changed, 222 insertions(+), 7 deletions(-) create mode 100644 program/src/processor/pause_matching.rs diff --git a/program/src/instruction.rs b/program/src/instruction.rs index d0c604c..dc78df0 100644 --- a/program/src/instruction.rs +++ b/program/src/instruction.rs @@ -7,6 +7,7 @@ use solana_program::{ use bonfida_utils::{BorshSize, InstructionsAccount}; +use crate::processor::pause_matching; pub use crate::processor::{ cancel_order, close_market, consume_events, create_market, mass_cancel_orders, new_order, }; @@ -88,6 +89,14 @@ pub enum AgnosticOrderbookInstruction { /// | 3 | ✅ | ❌ | The asks account | /// | 4 | ❌ | ✅ | The caller authority | MassCancelOrders, + /// Pause the matching engine. + /// + /// Required accounts + /// + /// | index | writable | signer | description | + /// |-------|----------|----------|-----------------------------| + /// | 0 | ✅ | ❌ | The market account | + PauseMatching, } /** @@ -225,3 +234,23 @@ pub fn mass_cancel_orders( }); i } + +/// Pause the matching engine. +pub fn pause_matching( + accounts: pause_matching::Accounts, + register_account: Pubkey, + params: close_market::Params, +) -> Instruction { + let mut i = accounts.get_instruction( + crate::id(), + AgnosticOrderbookInstruction::PauseMatching as u8, + params, + ); + + i.accounts.push(AccountMeta { + pubkey: register_account, + is_signer: false, + is_writable: true, + }); + i +} diff --git a/program/src/processor.rs b/program/src/processor.rs index 264f203..dca44d2 100644 --- a/program/src/processor.rs +++ b/program/src/processor.rs @@ -15,6 +15,7 @@ pub mod consume_events; pub mod create_market; pub mod mass_cancel_orders; pub mod new_order; +pub mod pause_matching; pub fn process_instruction( program_id: &Pubkey, @@ -71,6 +72,11 @@ where .map_err(|_| ProgramError::InvalidInstructionData)?; return mass_cancel_orders::process::(program_id, accounts, params).map(Some); } + AgnosticOrderbookInstruction::PauseMatching => { + msg!("Instruction: Pause Matching"); + let accounts = pause_matching::Accounts::parse(accounts)?; + pause_matching::process::(program_id, accounts, pause_matching::Params {})?; + } } Ok(None) } diff --git a/program/src/processor/create_market.rs b/program/src/processor/create_market.rs index 08e74a8..f5038ad 100644 --- a/program/src/processor/create_market.rs +++ b/program/src/processor/create_market.rs @@ -96,13 +96,13 @@ pub fn process<'a, 'b: 'a, C: Pod>( let market_state = MarketState::from_buffer(&mut market_data, AccountTag::Uninitialized)?; - *market_state = MarketState { - event_queue: *accounts.event_queue.key, - bids: *accounts.bids.key, - asks: *accounts.asks.key, + *market_state = MarketState::init_new( + accounts.event_queue.key, + accounts.bids.key, + accounts.asks.key, min_base_order_size, tick_size, - }; + ); let mut event_queue_data = accounts.event_queue.data.borrow_mut(); diff --git a/program/src/processor/new_order.rs b/program/src/processor/new_order.rs index 8611171..018edf6 100644 --- a/program/src/processor/new_order.rs +++ b/program/src/processor/new_order.rs @@ -141,8 +141,15 @@ where let mut event_queue_guard = accounts.event_queue.data.borrow_mut(); let mut event_queue = EventQueue::from_buffer(&mut event_queue_guard, AccountTag::EventQueue)?; - let order_summary = - order_book.new_order(params, &mut event_queue, market_state.min_base_order_size)?; + let order_summary = match market_state.pause_matching { + 0 => order_book.new_order(params, &mut event_queue, market_state.min_base_order_size)?, + 1 => order_book.insert_without_matching( + params, + &mut event_queue, + market_state.min_base_order_size, + )?, + _ => panic!("unreachable"), + }; msg!("Order summary : {:?}", order_summary); Ok(order_summary) diff --git a/program/src/processor/pause_matching.rs b/program/src/processor/pause_matching.rs new file mode 100644 index 0000000..e6c883e --- /dev/null +++ b/program/src/processor/pause_matching.rs @@ -0,0 +1,67 @@ +//! Close an existing market. +use crate::{ + error::AoError, + state::{market_state::MarketState, orderbook::CallbackInfo, AccountTag}, + utils::check_account_owner, +}; +use bonfida_utils::{BorshSize, InstructionsAccount}; +use borsh::{BorshDeserialize, BorshSerialize}; +use bytemuck::Pod; +use solana_program::{ + account_info::{next_account_info, AccountInfo}, + entrypoint::ProgramResult, + program_error::ProgramError, + pubkey::Pubkey, +}; + +#[derive(BorshDeserialize, BorshSerialize, BorshSize)] +/** +The required arguments for a close_market instruction. +*/ +pub struct Params {} + +/// The required accounts for a close_market instruction. +#[derive(InstructionsAccount)] +pub struct Accounts<'a, T> { + #[allow(missing_docs)] + #[cons(writable)] + pub market: &'a T, +} + +impl<'a, 'b: 'a> Accounts<'a, AccountInfo<'b>> { + pub(crate) fn parse(accounts: &'a [AccountInfo<'b>]) -> Result { + let accounts_iter = &mut accounts.iter(); + + let a = Self { + market: next_account_info(accounts_iter)?, + }; + Ok(a) + } + + pub(crate) fn perform_checks(&self, program_id: &Pubkey) -> Result<(), ProgramError> { + check_account_owner( + self.market, + &program_id.to_bytes(), + AoError::WrongMarketOwner, + )?; + Ok(()) + } +} +/// Apply the close_market instruction to the provided accounts +pub fn process<'a, 'b: 'a, C: CallbackInfo + PartialEq + Pod>( + program_id: &Pubkey, + accounts: Accounts<'a, AccountInfo<'b>>, + _params: Params, +) -> ProgramResult +where + ::CallbackId: PartialEq, +{ + accounts.perform_checks(program_id)?; + let mut market_data = accounts.market.data.borrow_mut(); + let market_state = MarketState::from_buffer(&mut market_data, AccountTag::Market)?; + + // bytemuck does not like boolean values + market_state.pause_matching = 1; + + Ok(()) +} diff --git a/program/src/state/market_state.rs b/program/src/state/market_state.rs index 6535b58..1f20f37 100644 --- a/program/src/state/market_state.rs +++ b/program/src/state/market_state.rs @@ -24,11 +24,33 @@ pub struct MarketState { pub min_base_order_size: u64, /// Tick size (FP32) pub tick_size: u64, + /// When set to '1' orders will remain on their respective slabs without matching + pub pause_matching: u8, + _padding: [u8; 7], } impl MarketState { /// Expected size in bytes of MarketState pub const LEN: usize = size_of::(); + #[allow(missing_docs)] + pub fn init_new( + event_queue: &Pubkey, + bids: &Pubkey, + asks: &Pubkey, + min_base_order_size: u64, + tick_size: u64, + ) -> Self { + Self { + event_queue: *event_queue, + bids: *bids, + asks: *asks, + min_base_order_size, + tick_size, + pause_matching: 0, + _padding: [0u8; 7], + } + } + #[allow(missing_docs)] pub fn from_buffer( account_data: &mut [u8], diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 941706f..4502554 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -321,6 +321,90 @@ where total_base_qty_posted: base_qty_to_post, }) } + + pub fn insert_without_matching( + &mut self, + params: new_order::Params, + event_queue: &mut EventQueue<'a, C>, + min_base_order_size: u64, + ) -> Result { + let new_order::Params { + max_base_qty, + max_quote_qty, + side, + limit_price, + callback_info, + post_allowed, + .. + } = params; + + let base_qty_to_post = std::cmp::min( + fp32_div(max_quote_qty, limit_price).unwrap_or(u64::MAX), + max_base_qty, + ); + + if base_qty_to_post < min_base_order_size || !post_allowed { + return Ok(OrderSummary { + posted_order_id: None, + total_base_qty: max_base_qty, + total_quote_qty: max_quote_qty, + total_base_qty_posted: base_qty_to_post, + }); + } + + let new_leaf_order_id = event_queue.gen_order_id(limit_price, side); + let new_leaf = LeafNode { + key: new_leaf_order_id, + base_quantity: base_qty_to_post, + }; + let insert_result = self.get_tree(side).insert_leaf(&new_leaf); + let k = if let Err(AoError::SlabOutOfSpace) = insert_result { + // Boot out the least aggressive orders + msg!("Orderbook is full! booting least aggressive orders..."); + let slab = self.get_tree(side); + let boot_candidate = match side { + Side::Bid => slab.find_min().unwrap(), + Side::Ask => slab.find_max().unwrap(), + }; + let boot_candidate_key = slab.leaf_nodes[boot_candidate as usize].key; + let boot_candidate_price = LeafNode::price_from_key(boot_candidate_key); + let should_boot = match side { + Side::Bid => boot_candidate_price < limit_price, + Side::Ask => boot_candidate_price > limit_price, + }; + if should_boot { + let (order, callback_info_booted) = slab.remove_by_key(boot_candidate_key).unwrap(); + let out = OutEvent { + side: side as u8, + order_id: order.order_id(), + base_size: order.base_quantity, + tag: EventTag::Out as u8, + _padding: [0; 14], + }; + event_queue + .push_back(out, Some(callback_info_booted), None) + .map_err(|_| AoError::EventQueueFull)?; + slab.insert_leaf(&new_leaf).unwrap().0 + } else { + return Ok(OrderSummary { + posted_order_id: None, + total_base_qty: max_base_qty, + total_quote_qty: max_quote_qty, + total_base_qty_posted: 0, + }); + } + } else { + insert_result.unwrap().0 + }; + + *self.get_tree(side).get_callback_info_mut(k) = callback_info; + Ok(OrderSummary { + posted_order_id: Some(new_leaf_order_id), + total_base_qty: max_base_qty, + total_quote_qty: max_quote_qty, + total_base_qty_posted: base_qty_to_post, + }) + } } #[cfg(test)] From 8d7a46a2c2784fff3cd510ff6424c70f3bd9e187 Mon Sep 17 00:00:00 2001 From: zachanon Date: Mon, 1 Aug 2022 19:19:53 -0600 Subject: [PATCH 02/34] frame --- program/src/instruction.rs | 37 ++++++- program/src/processor.rs | 6 ++ program/src/processor/resume_matching.rs | 121 +++++++++++++++++++++++ program/src/state/orderbook.rs | 8 ++ 4 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 program/src/processor/resume_matching.rs diff --git a/program/src/instruction.rs b/program/src/instruction.rs index dc78df0..eb341f4 100644 --- a/program/src/instruction.rs +++ b/program/src/instruction.rs @@ -7,10 +7,10 @@ use solana_program::{ use bonfida_utils::{BorshSize, InstructionsAccount}; -use crate::processor::pause_matching; pub use crate::processor::{ cancel_order, close_market, consume_events, create_market, mass_cancel_orders, new_order, }; +use crate::processor::{pause_matching, resume_matching}; #[derive(BorshDeserialize, BorshSerialize, FromPrimitive)] /// Describes all possible instructions and their required accounts pub enum AgnosticOrderbookInstruction { @@ -97,6 +97,20 @@ pub enum AgnosticOrderbookInstruction { /// |-------|----------|----------|-----------------------------| /// | 0 | ✅ | ❌ | The market account | PauseMatching, + /// Resume matching on the order book + /// + /// The instruction will proceed to match all crossing orders currently extant on the book + /// + /// Required accounts + /// + /// + /// | index | writable | signer | description | + /// |-------|----------|--------|-------------------------| + /// | 0 | ✅ | ❌ | The market account | + /// | 1 | ✅ | ❌ | The event queue account | + /// | 2 | ✅ | ❌ | The bids account | + /// | 3 | ✅ | ❌ | The asks account | + ResumeMatching, } /** @@ -239,7 +253,7 @@ pub fn mass_cancel_orders( pub fn pause_matching( accounts: pause_matching::Accounts, register_account: Pubkey, - params: close_market::Params, + params: pause_matching::Params, ) -> Instruction { let mut i = accounts.get_instruction( crate::id(), @@ -254,3 +268,22 @@ pub fn pause_matching( }); i } +/// Pause the matching engine. +pub fn resume_matching( + accounts: resume_matching::Accounts, + register_account: Pubkey, + params: resume_matching::Params, +) -> Instruction { + let mut i = accounts.get_instruction( + crate::id(), + AgnosticOrderbookInstruction::ResumeMatching as u8, + params, + ); + + i.accounts.push(AccountMeta { + pubkey: register_account, + is_signer: false, + is_writable: true, + }); + i +} diff --git a/program/src/processor.rs b/program/src/processor.rs index dca44d2..7f515a3 100644 --- a/program/src/processor.rs +++ b/program/src/processor.rs @@ -16,6 +16,7 @@ pub mod create_market; pub mod mass_cancel_orders; pub mod new_order; pub mod pause_matching; +pub mod resume_matching; pub fn process_instruction( program_id: &Pubkey, @@ -77,6 +78,11 @@ where let accounts = pause_matching::Accounts::parse(accounts)?; pause_matching::process::(program_id, accounts, pause_matching::Params {})?; } + AgnosticOrderbookInstruction::ResumeMatching => { + msg!("Instruction: Resume Matching"); + let accounts = resume_matching::Accounts::parse(accounts)?; + resume_matching::process::(program_id, accounts, resume_matching::Params {})?; + } } Ok(None) } diff --git a/program/src/processor/resume_matching.rs b/program/src/processor/resume_matching.rs new file mode 100644 index 0000000..cdd363a --- /dev/null +++ b/program/src/processor/resume_matching.rs @@ -0,0 +1,121 @@ +//! Execute a new order on the orderbook + +use bonfida_utils::{BorshSize, InstructionsAccount}; +use borsh::{BorshDeserialize, BorshSerialize}; +use bytemuck::Pod; +use solana_program::{ + account_info::{next_account_info, AccountInfo}, + entrypoint::ProgramResult, + program_error::ProgramError, + pubkey::Pubkey, +}; + +use crate::{ + error::AoError, + state::{ + event_queue::EventQueue, + market_state::MarketState, + orderbook::{CallbackInfo, OrderBookState}, + AccountTag, + }, + utils::{check_account_key, check_account_owner}, +}; + +#[derive(BorshDeserialize, BorshSerialize, BorshSize)] +/** +The required arguments for a new_order instruction. +*/ +pub struct Params {} + +/// The required accounts for a new_order instruction. +#[derive(InstructionsAccount)] +pub struct Accounts<'a, T> { + #[allow(missing_docs)] + pub market: &'a T, + #[allow(missing_docs)] + #[cons(writable)] + pub event_queue: &'a T, + #[allow(missing_docs)] + #[cons(writable)] + pub bids: &'a T, + #[allow(missing_docs)] + #[cons(writable)] + pub asks: &'a T, +} + +impl<'a, 'b: 'a> Accounts<'a, AccountInfo<'b>> { + pub(crate) fn parse(accounts: &'a [AccountInfo<'b>]) -> Result { + let accounts_iter = &mut accounts.iter(); + + let a = Self { + market: next_account_info(accounts_iter)?, + event_queue: next_account_info(accounts_iter)?, + bids: next_account_info(accounts_iter)?, + asks: next_account_info(accounts_iter)?, + }; + Ok(a) + } + pub(crate) fn perform_checks(&self, program_id: &Pubkey) -> Result<(), ProgramError> { + check_account_owner( + self.market, + &program_id.to_bytes(), + AoError::WrongMarketOwner, + )?; + check_account_owner( + self.event_queue, + &program_id.to_bytes(), + AoError::WrongEventQueueOwner, + )?; + check_account_owner(self.bids, &program_id.to_bytes(), AoError::WrongBidsOwner)?; + check_account_owner(self.asks, &program_id.to_bytes(), AoError::WrongAsksOwner)?; + Ok(()) + } +} + +/// Apply the new_order instruction to the provided accounts +pub fn process<'a, 'b: 'a, C: Pod + CallbackInfo + PartialEq>( + program_id: &Pubkey, + accounts: Accounts<'a, AccountInfo<'b>>, + _params: Params, +) -> ProgramResult +where + ::CallbackId: PartialEq, +{ + accounts.perform_checks(program_id)?; + let mut market_data = accounts.market.data.borrow_mut(); + let market_state = MarketState::from_buffer(&mut market_data, AccountTag::Market)?; + + check_accounts(&accounts, market_state)?; + + let mut bids_guard = accounts.bids.data.borrow_mut(); + let mut asks_guard = accounts.asks.data.borrow_mut(); + + let mut order_book = OrderBookState::::new_safe(&mut bids_guard, &mut asks_guard)?; + + let mut event_queue_guard = accounts.event_queue.data.borrow_mut(); + let mut event_queue = + EventQueue::::from_buffer(&mut event_queue_guard, AccountTag::EventQueue)?; + + match order_book.match_existing_orders(&mut event_queue, market_state.min_base_order_size) { + Ok(_) => { + market_state.pause_matching = 1; + Ok(()) + } + Err(e) => Err(e.into()), + } +} + +fn check_accounts<'a, 'b: 'a>( + accounts: &Accounts<'a, AccountInfo<'b>>, + market_state: &MarketState, +) -> ProgramResult { + check_account_key( + accounts.event_queue, + &market_state.event_queue, + AoError::WrongEventQueueAccount, + )?; + check_account_key(accounts.bids, &market_state.bids, AoError::WrongBidsAccount)?; + check_account_key(accounts.asks, &market_state.asks, AoError::WrongAsksAccount)?; + + Ok(()) +} diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 4502554..0484efe 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -405,6 +405,14 @@ where total_base_qty_posted: base_qty_to_post, }) } + + pub fn match_existing_orders( + &mut self, + event_queue: &mut EventQueue<'a, C>, + min_base_order_size: u64, + ) -> Result { + Ok(0) + } } #[cfg(test)] From 17e1af2ed706b9e63224839ddf4f708acf12a4a0 Mon Sep 17 00:00:00 2001 From: zachanon Date: Tue, 2 Aug 2022 09:35:33 -0600 Subject: [PATCH 03/34] resume logic, untested --- program/src/processor/resume_matching.rs | 11 ++++-- program/src/state/orderbook.rs | 43 ++++++++++++++++++++++-- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/program/src/processor/resume_matching.rs b/program/src/processor/resume_matching.rs index cdd363a..9ffc5e6 100644 --- a/program/src/processor/resume_matching.rs +++ b/program/src/processor/resume_matching.rs @@ -6,6 +6,7 @@ use bytemuck::Pod; use solana_program::{ account_info::{next_account_info, AccountInfo}, entrypoint::ProgramResult, + msg, program_error::ProgramError, pubkey::Pubkey, }; @@ -97,8 +98,14 @@ where EventQueue::::from_buffer(&mut event_queue_guard, AccountTag::EventQueue)?; match order_book.match_existing_orders(&mut event_queue, market_state.min_base_order_size) { - Ok(_) => { - market_state.pause_matching = 1; + Ok(completed) => { + if completed { + msg!("All sitting orders have been filled. Regular mathcing behavior resumed."); + market_state.pause_matching = 1; + } else { + msg!("Unmatched orders remain. Please run this instruction again to clear them before resuming regular behavior."); + } + Ok(()) } Err(e) => Err(e.into()), diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 0484efe..a5d7af0 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -56,6 +56,10 @@ impl CallbackInfo for [u8; 32] { /// The serialized size of an OrderSummary object. pub const ORDER_SUMMARY_SIZE: u32 = 41; +/// The maximum number of matches a single transaction can handle, based on compute limit +/// TODO: Find this value empirically +pub const MAX_MATCHES_PER_TRANSACTION: u32 = 5; + #[doc(hidden)] pub struct OrderBookState<'a, C> { pub bids: Slab<'a, C>, @@ -406,12 +410,47 @@ where }) } + /// Attempts to match all spread-crossing orders currently on the book. Limed by `MAX_MATCHES_PER_TRANSACTION`. + /// + /// Returns the number of successful matches. pub fn match_existing_orders( &mut self, event_queue: &mut EventQueue<'a, C>, min_base_order_size: u64, - ) -> Result { - Ok(0) + ) -> Result { + for _ in 0..MAX_MATCHES_PER_TRANSACTION { + let order_params = match self.asks.find_min() { + Some(h) => { + // pop the order off the tree + let (order, callback_info) = self + .asks + .remove_by_key(self.asks.leaf_nodes[h as usize].key) + .unwrap(); + + let limit_price = order.price(); + let max_quote_qty = fp32_div(limit_price, order.base_quantity) + .ok_or(AoError::NumericalOverflow)?; + + new_order::Params { + max_base_qty: order.base_quantity, + max_quote_qty, + limit_price, + side: Side::Ask, + match_limit: u64::MAX, + callback_info: *callback_info, + post_only: false, + post_allowed: true, + self_trade_behavior: SelfTradeBehavior::CancelProvide, + } + } + None => { + // no orders to match + return Ok(true); + } + }; + self.new_order(order_params, event_queue, min_base_order_size)?; + } + Ok(false) } } From cbc2fb2ea15624acd235951be9c65f262aa97b3d Mon Sep 17 00:00:00 2001 From: zach Date: Sat, 13 Aug 2022 21:23:28 -0600 Subject: [PATCH 04/34] unchecked --- program/src/state/critbit.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/program/src/state/critbit.rs b/program/src/state/critbit.rs index de84311..87716b7 100644 --- a/program/src/state/critbit.rs +++ b/program/src/state/critbit.rs @@ -142,6 +142,25 @@ impl<'a, C: Pod> Slab<'a, C> { callback_infos: bytemuck::cast_slice_mut::<_, C>(callback_infos), }) } + + pub fn from_buffer_unchecked(buf: &'a mut [u8]) -> Result { + let callback_info_len = std::mem::size_of::(); + let leaf_size = LeafNode::LEN + callback_info_len; + let capacity = (buf.len() - SlabHeader::LEN - 8 - leaf_size) / (leaf_size + InnerNode::LEN); + + let (_, rem) = buf.split_at_mut(8); + let (header, rem) = rem.split_at_mut(SlabHeader::LEN); + let (leaves, rem) = rem.split_at_mut((capacity + 1) * LeafNode::LEN); + let (inner_nodes, callback_infos) = rem.split_at_mut(capacity * InnerNode::LEN); + let header = bytemuck::from_bytes_mut::(header); + + Ok(Self { + header, + leaf_nodes: bytemuck::cast_slice_mut::<_, LeafNode>(leaves), + inner_nodes: bytemuck::cast_slice_mut::<_, InnerNode>(inner_nodes), + callback_infos: bytemuck::cast_slice_mut::<_, C>(callback_infos), + }) + } } impl<'a, C> Slab<'a, C> { From 9c9736388c87b71577133ce0902976e0d9f4bf98 Mon Sep 17 00:00:00 2001 From: zachanon Date: Mon, 22 Aug 2022 20:01:07 -0600 Subject: [PATCH 05/34] pub use --- program/src/instruction.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/program/src/instruction.rs b/program/src/instruction.rs index eb341f4..c45c76c 100644 --- a/program/src/instruction.rs +++ b/program/src/instruction.rs @@ -9,8 +9,8 @@ use bonfida_utils::{BorshSize, InstructionsAccount}; pub use crate::processor::{ cancel_order, close_market, consume_events, create_market, mass_cancel_orders, new_order, + pause_matching, resume_matching, }; -use crate::processor::{pause_matching, resume_matching}; #[derive(BorshDeserialize, BorshSerialize, FromPrimitive)] /// Describes all possible instructions and their required accounts pub enum AgnosticOrderbookInstruction { From 4ea13bb7eea7f5e404e72a1b7bb12bb03f4682d2 Mon Sep 17 00:00:00 2001 From: zachanon Date: Mon, 22 Aug 2022 20:15:28 -0600 Subject: [PATCH 06/34] better bool type handling --- program/src/processor/new_order.rs | 7 +++---- program/src/processor/pause_matching.rs | 2 +- program/src/processor/resume_matching.rs | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/program/src/processor/new_order.rs b/program/src/processor/new_order.rs index 16f0eae..4d2f941 100644 --- a/program/src/processor/new_order.rs +++ b/program/src/processor/new_order.rs @@ -148,14 +148,13 @@ where let mut event_queue_guard = accounts.event_queue.data.borrow_mut(); let mut event_queue = EventQueue::from_buffer(&mut event_queue_guard, AccountTag::EventQueue)?; - let order_summary = match market_state.pause_matching { - 0 => order_book.new_order(params, &mut event_queue, market_state.min_base_order_size)?, - 1 => order_book.insert_without_matching( + let order_summary = match market_state.pause_matching == 0 { + true => order_book.new_order(params, &mut event_queue, market_state.min_base_order_size)?, + false => order_book.insert_without_matching( params, &mut event_queue, market_state.min_base_order_size, )?, - _ => panic!("unreachable"), }; msg!("Order summary : {:?}", order_summary); diff --git a/program/src/processor/pause_matching.rs b/program/src/processor/pause_matching.rs index e6c883e..36049dd 100644 --- a/program/src/processor/pause_matching.rs +++ b/program/src/processor/pause_matching.rs @@ -61,7 +61,7 @@ where let market_state = MarketState::from_buffer(&mut market_data, AccountTag::Market)?; // bytemuck does not like boolean values - market_state.pause_matching = 1; + market_state.pause_matching = true as u8; Ok(()) } diff --git a/program/src/processor/resume_matching.rs b/program/src/processor/resume_matching.rs index 9ffc5e6..793346b 100644 --- a/program/src/processor/resume_matching.rs +++ b/program/src/processor/resume_matching.rs @@ -101,7 +101,7 @@ where Ok(completed) => { if completed { msg!("All sitting orders have been filled. Regular mathcing behavior resumed."); - market_state.pause_matching = 1; + market_state.pause_matching = false as u8; } else { msg!("Unmatched orders remain. Please run this instruction again to clear them before resuming regular behavior."); } From db55e5fe0d7571c0f3b3caed8c6c7efa6c95c781 Mon Sep 17 00:00:00 2001 From: zachanon Date: Tue, 23 Aug 2022 11:35:49 -0600 Subject: [PATCH 07/34] price in order summary --- program/src/state/orderbook.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index a5d7af0..1c93f3e 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -33,6 +33,8 @@ pub struct OrderSummary { pub total_quote_qty: u64, #[allow(missing_docs)] pub total_base_qty_posted: u64, + #[allow(missing_docs)] + pub price: u64, } /// This trait defines a subobject which can be used to compare two callback information object to determine @@ -267,6 +269,7 @@ where total_base_qty: max_base_qty - base_qty_remaining, total_quote_qty: max_quote_qty - quote_qty_remaining, total_base_qty_posted: 0, + price: trade_price, }); } @@ -309,6 +312,7 @@ where total_base_qty: max_base_qty - base_qty_remaining, total_quote_qty: max_quote_qty - quote_qty_remaining, total_base_qty_posted: 0, + price: trade_price, }); } } else { @@ -323,6 +327,7 @@ where total_base_qty: max_base_qty - base_qty_remaining, total_quote_qty: max_quote_qty - quote_qty_remaining, total_base_qty_posted: base_qty_to_post, + price: trade_price, }) } @@ -353,6 +358,7 @@ where total_base_qty: max_base_qty, total_quote_qty: max_quote_qty, total_base_qty_posted: base_qty_to_post, + price: limit_price, }); } @@ -395,6 +401,7 @@ where total_base_qty: max_base_qty, total_quote_qty: max_quote_qty, total_base_qty_posted: 0, + price: limit_price, }); } } else { @@ -407,6 +414,7 @@ where total_base_qty: max_base_qty, total_quote_qty: max_quote_qty, total_base_qty_posted: base_qty_to_post, + price: limit_price, }) } @@ -529,6 +537,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -557,6 +566,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -585,6 +595,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -614,6 +625,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -704,6 +716,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -778,6 +791,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -807,6 +821,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -836,6 +851,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -881,6 +897,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -918,6 +935,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -975,6 +993,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -1004,6 +1023,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -1033,6 +1053,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -1078,6 +1099,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { From 93b1a9bac052f571ca48dc6bdcdd4ab7261a9868 Mon Sep 17 00:00:00 2001 From: zachanon Date: Tue, 23 Aug 2022 11:49:52 -0600 Subject: [PATCH 08/34] Revert "price in order summary" This reverts commit db55e5fe0d7571c0f3b3caed8c6c7efa6c95c781. --- program/src/state/orderbook.rs | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 7460d0f..0a578a1 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -33,8 +33,6 @@ pub struct OrderSummary { pub total_quote_qty: u64, #[allow(missing_docs)] pub total_base_qty_posted: u64, - #[allow(missing_docs)] - pub price: u64, } /// This trait defines a subobject which can be used to compare two callback information object to determine @@ -273,7 +271,6 @@ where total_base_qty: max_base_qty - base_qty_remaining, total_quote_qty: max_quote_qty - quote_qty_remaining, total_base_qty_posted: 0, - price: trade_price, }); } @@ -316,7 +313,6 @@ where total_base_qty: max_base_qty - base_qty_remaining, total_quote_qty: max_quote_qty - quote_qty_remaining, total_base_qty_posted: 0, - price: trade_price, }); } } else { @@ -334,7 +330,6 @@ where total_base_qty: max_base_qty - base_qty_remaining, total_quote_qty: max_quote_qty - quote_qty_remaining, total_base_qty_posted: base_qty_to_post, - price: trade_price, }) } @@ -365,7 +360,6 @@ where total_base_qty: max_base_qty, total_quote_qty: max_quote_qty, total_base_qty_posted: base_qty_to_post, - price: limit_price, }); } @@ -408,7 +402,6 @@ where total_base_qty: max_base_qty, total_quote_qty: max_quote_qty, total_base_qty_posted: 0, - price: limit_price, }); } } else { @@ -421,7 +414,6 @@ where total_base_qty: max_base_qty, total_quote_qty: max_quote_qty, total_base_qty_posted: base_qty_to_post, - price: limit_price, }) } @@ -544,7 +536,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -573,7 +564,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -602,7 +592,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -632,7 +621,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -723,7 +711,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -798,7 +785,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -828,7 +814,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -858,7 +843,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -904,7 +888,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -942,7 +925,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -1000,7 +982,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -1030,7 +1011,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -1060,7 +1040,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -1106,7 +1085,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { From 4d3412e25b3104206f089ff106621548251f5620 Mon Sep 17 00:00:00 2001 From: zachanon Date: Tue, 23 Aug 2022 16:49:55 -0600 Subject: [PATCH 09/34] hopefully no more infinite loop --- program/src/state/orderbook.rs | 59 ++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 0a578a1..a52449f 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -426,35 +426,40 @@ where min_base_order_size: u64, ) -> Result { for _ in 0..MAX_MATCHES_PER_TRANSACTION { - let order_params = match self.asks.find_min() { - Some(h) => { - // pop the order off the tree - let (order, callback_info) = self - .asks - .remove_by_key(self.asks.leaf_nodes[h as usize].key) - .unwrap(); + let (best_bid, best_ask) = self.get_spread(); + if let None = best_bid { + // no bids to match, orderbook caught up + return Ok(true); + } + if let None = best_ask { + // no asks to match, orderbook caught up + return Ok(true); + } - let limit_price = order.price(); - let max_quote_qty = fp32_div(limit_price, order.base_quantity) - .ok_or(AoError::NumericalOverflow)?; - - new_order::Params { - max_base_qty: order.base_quantity, - max_quote_qty, - limit_price, - side: Side::Ask, - match_limit: u64::MAX, - callback_info: *callback_info, - post_only: false, - post_allowed: true, - self_trade_behavior: SelfTradeBehavior::CancelProvide, - } - } - None => { - // no orders to match - return Ok(true); - } + let handle = self.asks.find_min().unwrap(); + + // pop the order off the tree + let (order, callback_info) = self + .asks + .remove_by_key(self.asks.leaf_nodes[handle as usize].key) + .unwrap(); + + let limit_price = order.price(); + let max_quote_qty = + fp32_div(limit_price, order.base_quantity).ok_or(AoError::NumericalOverflow)?; + + let order_params = new_order::Params { + max_base_qty: order.base_quantity, + max_quote_qty, + limit_price, + side: Side::Ask, + match_limit: u64::MAX, + callback_info: *callback_info, + post_only: false, + post_allowed: true, + self_trade_behavior: SelfTradeBehavior::CancelProvide, }; + self.new_order(order_params, event_queue, min_base_order_size)?; } Ok(false) From b4196320e8fb11c27f6395b96690becbe8e47c7e Mon Sep 17 00:00:00 2001 From: zachanon Date: Thu, 8 Sep 2022 23:16:43 +0700 Subject: [PATCH 10/34] make push event public --- program/src/state/event_queue.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/program/src/state/event_queue.rs b/program/src/state/event_queue.rs index f2bacff..ea98a77 100644 --- a/program/src/state/event_queue.rs +++ b/program/src/state/event_queue.rs @@ -166,7 +166,7 @@ impl<'queue, C: Pod> EventQueue<'queue, C> { } impl<'queue, C: Clone> EventQueue<'queue, C> { - pub(crate) fn push_back( + pub fn push_back( &mut self, mut event: Ev, maker_callback_info: Option<&C>, From 82006bd7561b100b2b33d37eead7faba37002d22 Mon Sep 17 00:00:00 2001 From: zachanon Date: Thu, 8 Sep 2022 23:36:26 +0700 Subject: [PATCH 11/34] make public --- program/Cargo.lock | 1607 ++++++++++++++++++------------ program/src/state/event_queue.rs | 7 +- 2 files changed, 988 insertions(+), 626 deletions(-) diff --git a/program/Cargo.lock b/program/Cargo.lock index b7d6a20..46936d6 100644 --- a/program/Cargo.lock +++ b/program/Cargo.lock @@ -87,16 +87,16 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", "once_cell", "version_check", ] [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" dependencies = [ "memchr", ] @@ -107,6 +107,30 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" +[[package]] +name = "alloc-no-stdlib" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ef4730490ad1c4eae5c4325b2a95f521d023e5c885853ff7aca0a6a1631db3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "697ed7edc0f1711de49ce108c541623a0af97c6c60b2f6e2b65229847ac843c2" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "ansi_term" version = "0.12.1" @@ -118,9 +142,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.57" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" +checksum = "b9a8f622bcf6ff3df478e9deba3e03e4e04b300f8e6a139e192c05fa3490afc7" [[package]] name = "arrayref" @@ -146,12 +170,65 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" +[[package]] +name = "asn1-rs" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time 0.3.14", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", +] + [[package]] name = "assert_matches" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-compression" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345fd392ab01f746c717b1357165b76f0b67a60192007b234058c9045fdcf695" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + [[package]] name = "async-mutex" version = "1.4.0" @@ -163,13 +240,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.53" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600" +checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -203,9 +280,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "base64ct" -version = "1.5.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea908e7347a8c64e378c17e30ef880ad73e3b4498346b055c2c00ea342f3179" +checksum = "ea2b2456fd614d856680dcd9fcc660a51a820fa09daef2e49772b56a193c8474" [[package]] name = "bincode" @@ -257,9 +334,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ "generic-array", ] @@ -272,19 +349,20 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "bonfida-macros" -version = "0.2.3" -source = "git+https://github.com/Bonfida/bonfida-utils.git?branch=add-rounding-direction#f24f508be40c541a463e308c4dbe05de13b97a5d" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f5ace5ed40eb56cd6d6a0de41bc2e919af6047d98f7e502d06fa201a7814ad4" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", + "proc-macro2 1.0.43", + "quote 1.0.21", "solana-program", - "syn 1.0.93", + "syn 1.0.99", ] [[package]] name = "bonfida-utils" version = "0.3.0" -source = "git+https://github.com/Bonfida/bonfida-utils.git?branch=add-rounding-direction#f24f508be40c541a463e308c4dbe05de13b97a5d" +source = "git+https://github.com/Bonfida/bonfida-utils.git?branch=add-rounding-direction#11abafa345b5486062e8e3e1e8ca8077a4a9b507" dependencies = [ "bonfida-macros", "borsh", @@ -305,7 +383,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" dependencies = [ "borsh-derive", - "hashbrown", + "hashbrown 0.11.2", ] [[package]] @@ -317,8 +395,8 @@ dependencies = [ "borsh-derive-internal", "borsh-schema-derive-internal", "proc-macro-crate 0.1.5", - "proc-macro2 1.0.38", - "syn 1.0.93", + "proc-macro2 1.0.43", + "syn 1.0.99", ] [[package]] @@ -327,9 +405,9 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -338,9 +416,30 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", +] + +[[package]] +name = "brotli" +version = "3.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", ] [[package]] @@ -351,9 +450,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bumpalo" -version = "3.9.1" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "bv" @@ -367,22 +466,22 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.9.1" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdead85bdec19c194affaeeb670c0e41fe23de31459efd1c174d049269cf02cc" +checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562e382481975bc61d11275ac5e62a19abd00b0547d99516a415336f183dcd0e" +checksum = "1b9e1f5fa78f69496407a27ae9ed989e3c3b072310286f5ef385525e4cbc24a9" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -393,9 +492,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" [[package]] name = "bzip2" @@ -420,11 +519,10 @@ dependencies = [ [[package]] name = "caps" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61bf7211aad104ce2769ec05efcdfabf85ee84ac92461d142f22cf8badd0e54c" +checksum = "938c50180feacea622ef3b8f4a496057c868dcf8ac7a64d781dd8f3f51a9c143" dependencies = [ - "errno", "libc", "thiserror", ] @@ -446,23 +544,25 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.19" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" dependencies = [ - "libc", + "iana-time-zone", + "js-sys", "num-integer", "num-traits", "serde", - "time 0.1.43", + "time 0.1.44", + "wasm-bindgen", "winapi", ] [[package]] name = "chrono-humanize" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eddc119501d583fd930cb92144e605f44e0252c38dd89d9247fffa1993375cb" +checksum = "32dce1ea1988dbdf9f9815ff11425828523bd2a134ec0805d2ac8af26ee6096e" dependencies = [ "chrono", ] @@ -495,12 +595,37 @@ dependencies = [ "ansi_term", "atty", "bitflags", - "strsim", - "textwrap", + "strsim 0.8.0", + "textwrap 0.11.0", "unicode-width", "vec_map", ] +[[package]] +name = "clap" +version = "3.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b71c3ce99b7611011217b366d923f1d0a7e07a92bb2dbf1e84508c673ca3bd" +dependencies = [ + "atty", + "bitflags", + "clap_lex", + "indexmap", + "once_cell", + "strsim 0.10.0", + "termcolor", + "textwrap 0.15.0", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + [[package]] name = "combine" version = "3.8.1" @@ -516,14 +641,13 @@ dependencies = [ [[package]] name = "console" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28b32d32ca44b70c3e4acd7db1babf555fa026e385fb95f18028f88848b3c31" +checksum = "89eab4d20ce20cea182308bca13088fecea9c05f6776cf287205d41a0ed3c847" dependencies = [ "encode_unicode", "libc", "once_cell", - "regex", "terminal_size", "unicode-width", "winapi", @@ -579,9 +703,9 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] @@ -597,9 +721,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ "cfg-if", "crossbeam-utils", @@ -607,9 +731,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -618,26 +742,26 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.8" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" +checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "lazy_static", "memoffset", + "once_cell", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" dependencies = [ "cfg-if", - "lazy_static", + "once_cell", ] [[package]] @@ -648,9 +772,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-common" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", "typenum", @@ -700,6 +824,12 @@ dependencies = [ "rayon", ] +[[package]] +name = "data-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" + [[package]] name = "der" version = "0.5.1" @@ -709,6 +839,20 @@ dependencies = [ "const-oid", ] +[[package]] +name = "der-parser" +version = "8.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint 0.4.3", + "num-traits", + "rusticata-macros", +] + [[package]] name = "derivation-path" version = "0.2.0" @@ -717,9 +861,9 @@ checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" [[package]] name = "dialoguer" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8c8ae48e400addc32a8710c8d62d55cb84249a7d58ac4cd959daecfbaddc545" +checksum = "a92e7e37ecef6857fdc0c0c5d42fd5b0938e46590c2183cc92dd310a6d078eb1" dependencies = [ "console", "tempfile", @@ -741,7 +885,7 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" dependencies = [ - "block-buffer 0.10.2", + "block-buffer 0.10.3", "crypto-common", "subtle", ] @@ -776,6 +920,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "displaydoc" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" +dependencies = [ + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", +] + [[package]] name = "dlopen" version = "0.1.8" @@ -801,15 +956,21 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.5" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e50f3adc76d6a43f5ed73b698a87d0760ca74617f60f7c3b879003536fdd28" +checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" [[package]] name = "ed25519" -version = "1.5.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d916019f70ae3a1faa1195685e290287f39207d38e6dfee727197cffcc002214" +checksum = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369" dependencies = [ "signature", ] @@ -837,7 +998,7 @@ dependencies = [ "derivation-path", "ed25519-dalek", "hmac 0.12.1", - "sha2 0.10.2", + "sha2 0.10.5", ] [[package]] @@ -847,16 +1008,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c07b7cc9cd8c08d10db74fca3b20949b9b6199725c04a0cce6d543496098fcac" dependencies = [ "enum-ordinalize", - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "either" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "encode_unicode" @@ -875,22 +1036,22 @@ dependencies = [ [[package]] name = "enum-iterator" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" +checksum = "2953d1df47ac0eb70086ccabf0275aa8da8591a28bd358ee2b52bd9f9e3ff9e9" dependencies = [ "enum-iterator-derive", ] [[package]] name = "enum-iterator-derive" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" +checksum = "8958699f9359f0b04e691a13850d48b7de329138023876d07cbd024c2c820598" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -899,12 +1060,24 @@ version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2170fc0efee383079a8bdd05d6ea2a184d2a0f07a1c1dcabdb2fd5e9f24bc36c" dependencies = [ - "num-bigint", + "num-bigint 0.4.3", "num-traits", - "proc-macro2 1.0.38", - "quote 1.0.18", + "proc-macro2 1.0.43", + "quote 1.0.21", "rustc_version", - "syn 1.0.93", + "syn 1.0.99", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eb359f1476bf611266ac1f5355bc14aeca37b299d0ebccc038ee7058891c9cb" +dependencies = [ + "once_cell", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -922,9 +1095,9 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -940,38 +1113,17 @@ dependencies = [ "termcolor", ] -[[package]] -name = "errno" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "event-listener" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] @@ -984,25 +1136,23 @@ checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" [[package]] name = "filetime" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0408e2626025178a6a7f7ffc05a25bc47103229f19c113755de7bf63816290c" +checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" dependencies = [ "cfg-if", "libc", "redox_syscall", - "winapi", + "windows-sys", ] [[package]] name = "flate2" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39522e96686d38f4bc984b9198e3a0613264abaebaff2c5c918bfa6b6da09af" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ - "cfg-if", "crc32fast", - "libc", "miniz_oxide", ] @@ -1014,19 +1164,18 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "matches", "percent-encoding", ] [[package]] name = "futures" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c" dependencies = [ "futures-channel", "futures-core", @@ -1039,9 +1188,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" dependencies = [ "futures-core", "futures-sink", @@ -1049,15 +1198,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" dependencies = [ "futures-core", "futures-task", @@ -1066,38 +1215,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" [[package]] name = "futures-macro" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "futures-sink" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" dependencies = [ "futures-channel", "futures-core", @@ -1122,9 +1271,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "serde", "typenum", @@ -1156,13 +1305,15 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.10.2+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -1176,9 +1327,9 @@ dependencies = [ [[package]] name = "goblin" -version = "0.4.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32401e89c6446dcd28185931a01b1093726d0356820ac744023e6850689bf926" +checksum = "a7666983ed0dd8d21a6f6576ee00053ca0926fb281a5522577a4dbd0f1b54143" dependencies = [ "log", "plain", @@ -1187,9 +1338,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" +checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" dependencies = [ "bytes", "fnv", @@ -1200,15 +1351,15 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.1", + "tokio-util 0.7.2", "tracing", ] [[package]] name = "hash32" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4041af86e63ac4298ce40e5cca669066e75b6f1aa3390fe2561ffa5e1d9f4cc" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" dependencies = [ "byteorder", ] @@ -1222,6 +1373,21 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + [[package]] name = "hermit-abi" version = "0.1.19" @@ -1288,9 +1454,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", @@ -1299,9 +1465,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http", @@ -1310,9 +1476,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" @@ -1328,9 +1494,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.18" +version = "0.14.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2" +checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" dependencies = [ "bytes", "futures-channel", @@ -1363,13 +1529,26 @@ dependencies = [ "tokio-rustls", ] +[[package]] +name = "iana-time-zone" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c495f162af0bf17656d0014a0eded5f3cd2f365fdd204548c2869db89359dc7" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "js-sys", + "once_cell", + "wasm-bindgen", + "winapi", +] + [[package]] name = "idna" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] @@ -1398,12 +1577,12 @@ checksum = "5a9d968042a4902e08810946fc7cd5851eb75e80301342305af755ca06cb82ce" [[package]] name = "indexmap" -version = "1.8.1" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", ] [[package]] @@ -1459,9 +1638,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" +checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" [[package]] name = "jobserver" @@ -1474,9 +1653,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.57" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" dependencies = [ "wasm-bindgen", ] @@ -1498,9 +1677,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "lazy_static" @@ -1510,9 +1689,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.125" +version = "0.2.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" [[package]] name = "libloading" @@ -1574,15 +1753,15 @@ dependencies = [ [[package]] name = "linked-hash-map" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "lock_api" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +checksum = "9f80bf5aacaf25cbfc8210d1cfb718f2bf3b11c4c54e5afe36c236853a8ec390" dependencies = [ "autocfg", "scopeguard", @@ -1598,19 +1777,24 @@ dependencies = [ ] [[package]] -name = "lru" -version = "0.7.5" +name = "lz4" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32613e41de4c47ab04970c348ca7ae7382cf116625755af070b008a15516a889" +checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" dependencies = [ - "hashbrown", + "libc", + "lz4-sys", ] [[package]] -name = "matches" -version = "0.1.9" +name = "lz4-sys" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +dependencies = [ + "cc", + "libc", +] [[package]] name = "memchr" @@ -1620,9 +1804,9 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memmap2" -version = "0.5.3" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057a3db23999c867821a7a59feb06a578fcb03685e983dff90daf9e7d24ac08f" +checksum = "95af15f345b17af2efc8ead6080fb8bc376f8cec1b35277b935637595fe77498" dependencies = [ "libc", ] @@ -1654,11 +1838,17 @@ version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" -version = "0.5.1" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" dependencies = [ "adler", ] @@ -1676,18 +1866,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "mio" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799" -dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", -] - [[package]] name = "miow" version = "0.3.7" @@ -1713,24 +1891,33 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "nix" -version = "0.23.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" +checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" dependencies = [ "bitflags", - "cc", "cfg-if", "libc", "memoffset", ] +[[package]] +name = "nom" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +dependencies = [ + "memchr", + "minimal-lexical", +] + [[package]] name = "ntapi" version = "0.3.7" @@ -1740,35 +1927,93 @@ dependencies = [ "winapi", ] +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-bigint" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ "autocfg", - "num-integer", "num-traits", ] [[package]] -name = "num-derive" -version = "0.3.3" +name = "num-iter" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "autocfg", + "num-integer", + "num-traits", ] [[package]] -name = "num-integer" -version = "0.1.45" +name = "num-rational" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" dependencies = [ "autocfg", + "num-bigint 0.2.6", + "num-integer", "num-traits", ] @@ -1806,10 +2051,10 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" dependencies = [ - "proc-macro-crate 1.1.3", - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro-crate 1.2.1", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -1827,11 +2072,20 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +[[package]] +name = "oid-registry" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d4bda43fd1b844cbc6e6e54b5444e2b1bc7838bce59ad205902cccbb26d6761" +dependencies = [ + "asn1-rs", +] + [[package]] name = "once_cell" -version = "1.10.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" +checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0" [[package]] name = "opaque-debug" @@ -1847,13 +2101,15 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "opentelemetry" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf9b1c4e9a6c4de793c632496fa490bdc0e1eea73f0c91394f7b6990935d22" +checksum = "6105e89802af13fdf48c49d7646d3b533a70e536d818aae7e78ba0433d01acb8" dependencies = [ "async-trait", "crossbeam-channel", - "futures", + "futures-channel", + "futures-executor", + "futures-util", "js-sys", "lazy_static", "percent-encoding", @@ -1862,38 +2118,68 @@ dependencies = [ "thiserror", ] +[[package]] +name = "os_str_bytes" +version = "6.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" + [[package]] name = "ouroboros" -version = "0.14.2" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71643f290d126e18ac2598876d01e1d57aed164afc78fdb6e2a0c6589a1f6662" +checksum = "7f56a2b0aa5fc88687aaf63e85a7974422790ce3419a2e1a15870f8a55227822" dependencies = [ "aliasable", "ouroboros_macro", - "stable_deref_trait", ] [[package]] name = "ouroboros_macro" -version = "0.14.2" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9a247206016d424fe8497bc611e510887af5c261fbbf977877c4bb55ca4d82" +checksum = "6c40641e27d0eb38cae3dee081d920104d2db47a8e853c1a592ef68d33f5ebf4" dependencies = [ "Inflector", "proc-macro-error", - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "parking_lot" -version = "0.12.0" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.5", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core", + "parking_lot_core 0.9.3", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi", ] [[package]] @@ -1920,46 +2206,55 @@ dependencies = [ [[package]] name = "pbkdf2" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271779f35b581956db91a3e55737327a03aa051e90b1c47aeb189508533adfd7" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ "digest 0.10.3", ] [[package]] name = "pem" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9a3b09a20e374558580a4914d3b7d89bd61b954a5a5e1dcbea98753addb1947" +checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4" dependencies = [ "base64 0.13.0", ] [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "percentage" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] [[package]] name = "pin-project" -version = "1.0.10" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.10" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -2026,10 +2321,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.1.3" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" dependencies = [ + "once_cell", "thiserror", "toml", ] @@ -2041,9 +2337,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", "version_check", ] @@ -2053,8 +2349,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", + "proc-macro2 1.0.43", + "quote 1.0.21", "version_check", ] @@ -2069,11 +2365,11 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.38" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9027b48e9d4c9175fa2218adf3557f91c1137021739951d4932f5f8268ac48aa" +checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" dependencies = [ - "unicode-xid 0.2.3", + "unicode-ident", ] [[package]] @@ -2091,9 +2387,9 @@ dependencies = [ [[package]] name = "pyth-sdk-solana" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e37614ced8a0a61637111f714a08811fb7a677df3719c0a5b261e1d13d50de6" +checksum = "2aed1a0b714f91cb104cc025eb806782e30aa63c23259724e79efd609294a2c9" dependencies = [ "borsh", "borsh-derive", @@ -2117,9 +2413,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d147472bc9a09f13b06c044787b6683cdffa02e2865b7f0fb53d67c49ed2988e" +checksum = "5b435e71d9bfa0d8889927231970c51fb89c58fa63bffcab117c9c7a41e5ef8f" dependencies = [ "bytes", "futures-channel", @@ -2136,9 +2432,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "359c5eb33845f3ee05c229e65f87cdbc503eea394964b8f1330833d460b4ff3e" +checksum = "3fce546b9688f767a57530652488420d419a8b1f44a478b451c3d1ab6d992a55" dependencies = [ "bytes", "fxhash", @@ -2156,13 +2452,12 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df185e5e5f7611fa6e628ed8f9633df10114b03bbaecab186ec55822c44ac727" +checksum = "9f832d8958db3e84d2ec93b5eb2272b45aa23cf7f8fe6e79f578896f4e6c231b" dependencies = [ "futures-util", "libc", - "mio 0.7.14", "quinn-proto", "socket2", "tokio", @@ -2180,11 +2475,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.18" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" dependencies = [ - "proc-macro2 1.0.38", + "proc-macro2 1.0.43", ] [[package]] @@ -2198,7 +2493,6 @@ dependencies = [ "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc", - "rand_pcg", ] [[package]] @@ -2247,7 +2541,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", ] [[package]] @@ -2259,15 +2553,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - [[package]] name = "rand_xoshiro" version = "0.6.0" @@ -2279,9 +2564,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd249e82c21598a9a426a4e00dd7adc1d640b22445ec8545feef801d1a74c221" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" dependencies = [ "autocfg", "crossbeam-deque", @@ -2291,9 +2576,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f51245e1e62e1f1629cbfec37b5793bbabcaeb90f30e94d2ba03564687353e4" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -2303,21 +2588,21 @@ dependencies = [ [[package]] name = "rcgen" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fa2d386df8533b02184941c76ae2e0d0c1d053f5d43339169d80f21275fc5e" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" dependencies = [ "pem", "ring", - "time 0.3.9", + "time 0.3.14", "yasna", ] [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -2328,16 +2613,16 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", "redox_syscall", "thiserror", ] [[package]] name = "regex" -version = "1.5.5" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" dependencies = [ "aho-corasick", "memchr", @@ -2346,9 +2631,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.25" +version = "0.6.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "remove_dir_all" @@ -2361,10 +2646,11 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.10" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb" +checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92" dependencies = [ + "async-compression", "base64 0.13.0", "bytes", "encoding_rs", @@ -2383,12 +2669,14 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustls", - "rustls-pemfile 0.3.0", + "rustls-pemfile 1.0.1", "serde", "serde_json", "serde_urlencoded", "tokio", "tokio-rustls", + "tokio-util 0.7.2", + "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", @@ -2445,11 +2733,20 @@ dependencies = [ "semver", ] +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + [[package]] name = "rustls" -version = "0.20.4" +version = "0.20.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" +checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" dependencies = [ "log", "ring", @@ -2464,7 +2761,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" dependencies = [ "openssl-probe", - "rustls-pemfile 1.0.0", + "rustls-pemfile 1.0.1", "schannel", "security-framework", ] @@ -2480,33 +2777,24 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" -dependencies = [ - "base64 0.13.0", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7522c9de787ff061458fe9a829dc790a3f5b22dc571694fc5883f448b94d9a9" +checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" dependencies = [ "base64 0.13.0", ] [[package]] name = "rustversion" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" [[package]] name = "ryu" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" [[package]] name = "same-file" @@ -2519,19 +2807,19 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" dependencies = [ "lazy_static", - "winapi", + "windows-sys", ] [[package]] name = "schemars" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b5a3c80cea1ab61f4260238409510e814e38b4b563c06044edf91e7dc070e3" +checksum = "1847b767a3d62d95cbf3d8a9f0e421cf57a0d8aa4f411d4b16525afb0284d4ed" dependencies = [ "dyn-clone", "schemars_derive", @@ -2541,14 +2829,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ae4dce13e8614c46ac3c38ef1c0d668b101df6ac39817aebdaa26642ddae9b" +checksum = "af4d7e1b012cb3d9129567661a63755ea4b8a7386d339dc945ae187e403c6743" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", + "proc-macro2 1.0.43", + "quote 1.0.21", "serde_derive_internals", - "syn 1.0.93", + "syn 1.0.99", ] [[package]] @@ -2559,22 +2847,22 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scroll" -version = "0.10.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec" +checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" dependencies = [ "scroll_derive", ] [[package]] name = "scroll_derive" -version = "0.10.5" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" +checksum = "bdbda6ac5cd1321e724fa9cee216f3a61885889b896f073b8f82322789c5250e" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -2589,9 +2877,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" dependencies = [ "bitflags", "core-foundation", @@ -2612,55 +2900,55 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.9" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cb243bdfdb5936c8dc3c45762a19d12ab4550cdc753bc247637d4ec35a040fd" +checksum = "93f6841e709003d68bb2deee8c343572bf446003ec20a583e76f7b15cebf3711" [[package]] name = "serde" -version = "1.0.137" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.6" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212e73464ebcde48d723aa02eb270ba62eff38a9b732df31f33f1b4e145f3a54" +checksum = "cfc50e8183eeeb6178dcb167ae34a8051d63535023ae38b5d8d12beae193d37b" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.137" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "serde_derive_internals" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dbab34ca63057a1f15280bdf3c39f2b1eb1b54c17e98360e511637aef7418c6" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "serde_json" -version = "1.0.81" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ "itoa", "ryu", @@ -2681,9 +2969,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.8.24" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707d15895415db6628332b737c838b88c598522e4dc70647e59b72312924aebc" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" dependencies = [ "indexmap", "ryu", @@ -2717,9 +3005,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.2" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +checksum = "cf9db03534dff993187064c4e0c05a5708d2a9728ace9a8959b77bedf415dac5" dependencies = [ "cfg-if", "cpufeatures", @@ -2740,9 +3028,9 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.1" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881bf8156c87b6301fc5ca6b27f11eeb2761224c7081e69b409d5a1951a70c86" +checksum = "eaedf34ed289ea47c2b741bb72e5357a209512d67bcd4bda44359e5bf0470f56" dependencies = [ "digest 0.10.3", "keccak", @@ -2768,9 +3056,9 @@ dependencies = [ [[package]] name = "signature" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4" +checksum = "f0ea32af43239f0d353a7dd75a22d94c329c8cdaafdcb4c1c1335aa10c298a4a" [[package]] name = "sized-chunks" @@ -2784,21 +3072,24 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" [[package]] name = "socket2" -version = "0.4.4" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ "libc", "winapi", @@ -2806,9 +3097,9 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f895bda8ab988f3ba439f939470a1709b55e70c640d6b4d1a7fa5ecd9ac6018f" +checksum = "e2a9294637f3d466ade226190781dd6eb1801ce2c00aee84e3895d7b1babe469" dependencies = [ "Inflector", "base64 0.13.0", @@ -2830,9 +3121,9 @@ dependencies = [ [[package]] name = "solana-address-lookup-table-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305bd2aa07a7d6166a75ddcc9241016ec502adfc3e7566bb7488ec4cb4fc90d9" +checksum = "299c5c7c987ab0c904eeb9d147dafcd753a6c6c574880915a00729aa403a9b89" dependencies = [ "bincode", "bytemuck", @@ -2851,9 +3142,9 @@ dependencies = [ [[package]] name = "solana-banks-client" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6030ac296d056a9f52db3afa49eaca19801a4098997805bd7500eac818cf8210" +checksum = "5dd9493e6dba538a2979f82571bec3c91028fa7c77177b8d12b1c8c0218761a2" dependencies = [ "borsh", "futures", @@ -2868,9 +3159,9 @@ dependencies = [ [[package]] name = "solana-banks-interface" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeeca4dfcdf4512482b082e070db23d3d26748e15e6a31b7a7c1067a7fd2f80f" +checksum = "b0160d830a8a037b3bfbbdedb28d70b0378265325b9c8b0eb7bcdf4c610bba15" dependencies = [ "serde", "solana-sdk", @@ -2879,14 +3170,15 @@ dependencies = [ [[package]] name = "solana-banks-server" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f71f7c223214a097b033dbdba24a753b7c458fd3a5567220e25829f9dbed76e" +checksum = "d3c7a968940d4d51477dd532d989f1ecafa49e582cc4fa0234c02db8ea020d5e" dependencies = [ "bincode", "crossbeam-channel", "futures", "solana-banks-interface", + "solana-client", "solana-runtime", "solana-sdk", "solana-send-transaction-service", @@ -2898,9 +3190,9 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dfa6e63e026daa60061c5f380509b502b9624f15a96cee4976cfccff6750355" +checksum = "e631b87d8deca0db997fa0a3a44b366c490302ebafb94c52542d754369e6fd7b" dependencies = [ "bincode", "byteorder", @@ -2910,16 +3202,16 @@ dependencies = [ "solana-metrics", "solana-program-runtime", "solana-sdk", - "solana-zk-token-sdk 1.10.12", + "solana-zk-token-sdk", "solana_rbpf", "thiserror", ] [[package]] name = "solana-bucket-map" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80880add6d22db8e0ea98968ee3d5b73008c0bf0eacad1978aafbef1164e3f25" +checksum = "68bc150efa6678ae3333a2ea83dc25accf9a600637a56217b4cc7d8374952d8d" dependencies = [ "log", "memmap2", @@ -2932,12 +3224,12 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d15c654581ce751047450611f36846e7572a806113a27f91335e3b54e8e489" +checksum = "53d65d5edb4dd03bed3486793ae444ca29bd00add6d1569ae0bee969930983fb" dependencies = [ "chrono", - "clap", + "clap 2.34.0", "rpassword", "solana-perf", "solana-remote-wallet", @@ -2950,9 +3242,9 @@ dependencies = [ [[package]] name = "solana-cli-config" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "959e2367d23fa9144b2208ff8b21d96ae59ed1b09e57f13b1c55e1b99b0a4fba" +checksum = "e05cd969be3f53f2541b7b3b2c4ca6a3a8e1fe97b864a691f26b19923339530b" dependencies = [ "dirs-next", "lazy_static", @@ -2966,9 +3258,9 @@ dependencies = [ [[package]] name = "solana-client" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1b76d4221490b03b78b22ad32f96309592793a9f1ad6b4e2dacabb866521fe" +checksum = "4073b45755121b97458d0fc65c653129df594a2f3bdc72af82534f903c736530" dependencies = [ "async-mutex", "async-trait", @@ -2976,16 +3268,17 @@ dependencies = [ "bincode", "bs58", "bytes", - "clap", + "clap 2.34.0", "crossbeam-channel", + "enum_dispatch", "futures", "futures-util", + "indexmap", "indicatif", "itertools 0.10.3", "jsonrpc-core", "lazy_static", "log", - "lru", "quinn", "quinn-proto", "rand 0.7.3", @@ -3008,6 +3301,7 @@ dependencies = [ "solana-transaction-status", "solana-version", "solana-vote-program", + "spl-token-2022", "thiserror", "tokio", "tokio-stream", @@ -3018,9 +3312,9 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5435b7dbe5873d5aa6050cdbb7fdc2d6e3c0315a0bc1b191dfade44ffa49b7e" +checksum = "492627aeb6e4633ec1676266198d405f2170b666e763fd44300ede30f57efe27" dependencies = [ "solana-program-runtime", "solana-sdk", @@ -3028,9 +3322,9 @@ dependencies = [ [[package]] name = "solana-config-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a123ddaa07afaf5cfe83a359c49a78e739e4c6d28f534ef9b90a201bf12be47e" +checksum = "ae5210b8f76d8b04c0020cff054babd62a9325bfe3076f373e355a6ec2c64b45" dependencies = [ "bincode", "chrono", @@ -3042,13 +3336,13 @@ dependencies = [ [[package]] name = "solana-faucet" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87b5b4d4ba0161e4d46b71844d8feb7824fb8fb5b82e3e8357708277afa119b1" +checksum = "43008e5d503c690df6c743ace82d7cbfd765df88f38743bc837cbcaf36413f0a" dependencies = [ "bincode", "byteorder", - "clap", + "clap 2.34.0", "crossbeam-channel", "log", "serde", @@ -3066,43 +3360,55 @@ dependencies = [ [[package]] name = "solana-frozen-abi" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab258b4a9746b205eece4ddd7e28267b4442e9c9d4ebffb84318352326340413" +checksum = "9883042ea10896bee61e045810da3c0a7684b6c375abec80a73687a3468d156b" dependencies = [ + "ahash", + "blake3", + "block-buffer 0.9.0", "bs58", "bv", + "byteorder", + "cc", + "either", "generic-array", + "getrandom 0.1.16", + "hashbrown 0.12.3", "im", "lazy_static", "log", "memmap2", + "once_cell", + "rand_core 0.6.3", "rustc_version", "serde", "serde_bytes", "serde_derive", - "sha2 0.10.2", + "serde_json", + "sha2 0.10.5", "solana-frozen-abi-macro", + "subtle", "thiserror", ] [[package]] name = "solana-frozen-abi-macro" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda321c32c7018afd8477ef509992473c4a659b8cc97596f6280df45364a2048" +checksum = "e820520e6fa2697960535ede69b8db5bb02d9055554fdead7dc50220f70bf470" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", + "proc-macro2 1.0.43", + "quote 1.0.21", "rustc_version", - "syn 1.0.93", + "syn 1.0.99", ] [[package]] name = "solana-logger" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0abc5fc566904cd626c7c55f26292c2cd06571c3edca2a3618694632a276a46" +checksum = "c06a738fbb438f0154ac30f177fb6e68dace34c0fc7177608792da37d2c6ee96" dependencies = [ "env_logger", "lazy_static", @@ -3111,9 +3417,9 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e609c677ae3a6269b9551e7428fda37b644d867dc6763ca1940d70d528cfd0" +checksum = "11c2da8d3b01167a17042ad7d8fafa8f16b37e42a6a7cd133493d2c030b792ae" dependencies = [ "log", "solana-sdk", @@ -3121,9 +3427,9 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3c48f1f301b6d084cca58adfdcf6aacf9d333a80d84133a2a10636469e3755" +checksum = "447adfe0de4c39ab9fbad1ffeedef6807572c1bea223fb7786e7e9d5936e4aeb" dependencies = [ "crossbeam-channel", "gethostname", @@ -3135,12 +3441,12 @@ dependencies = [ [[package]] name = "solana-net-utils" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413acbf96bfea2aaf387a5162fc65e2171dcd14af8c97116b58b5cdeaa5c80aa" +checksum = "71b75e7416d2e02a73ae91b1930e671a5390ca9a0859d5208349977a9cd8efcc" dependencies = [ "bincode", - "clap", + "clap 3.2.20", "crossbeam-channel", "log", "nix", @@ -3157,9 +3463,9 @@ dependencies = [ [[package]] name = "solana-perf" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0aa32ade8b1d8ca1ffa3db2aa5b1f3d119a5092f74424c6b4253b83bc8d8392" +checksum = "a8575843ad9c3b71ae5ce208221a5e28f6a7d66e2c6b1ac6c9fd0127f2bf28d9" dependencies = [ "ahash", "bincode", @@ -3184,9 +3490,9 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0543a6c96b49062fb0bcd691c609e558f01994e9a56d66fd7448a9f683b3be9" +checksum = "413acde1b294751b1f1526ec6d3850ebc9be48009a186eb9ba47af00df406188" dependencies = [ "base64 0.13.0", "bincode", @@ -3197,41 +3503,49 @@ dependencies = [ "bs58", "bv", "bytemuck", + "cc", "console_error_panic_hook", "console_log", "curve25519-dalek", - "getrandom 0.1.16", + "getrandom 0.2.7", "itertools 0.10.3", "js-sys", "lazy_static", + "libc", "libsecp256k1", "log", + "memoffset", "num-derive", "num-traits", - "parking_lot", + "parking_lot 0.12.1", "rand 0.7.3", + "rand_chacha 0.2.2", "rustc_version", "rustversion", "serde", "serde_bytes", "serde_derive", - "sha2 0.10.2", - "sha3 0.10.1", + "serde_json", + "sha2 0.10.5", + "sha3 0.10.4", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-sdk-macro", "thiserror", + "tiny-bip39", "wasm-bindgen", + "zeroize", ] [[package]] name = "solana-program-runtime" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4130e19e76a2cdfda2c510e7f5653bb6c7eb4750a76148a136f82afeb5466313" +checksum = "183237d0d1224b1142a48a901a339943b712b94cb0c241143d34c0739dabd801" dependencies = [ "base64 0.13.0", "bincode", + "eager", "enum-iterator", "itertools 0.10.3", "libc", @@ -3244,16 +3558,18 @@ dependencies = [ "solana-frozen-abi", "solana-frozen-abi-macro", "solana-measure", + "solana-metrics", "solana-sdk", "thiserror", ] [[package]] name = "solana-program-test" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e720c57bd0daf6f8b852c9e730126f58badf0a2c81b892ab9867b14a11bf89a4" +checksum = "1c755c663956c12afdf9ea0eacc8bc60de361cbfe0b8066bb2c16e08312df161" dependencies = [ + "assert_matches", "async-trait", "base64 0.13.0", "bincode", @@ -3274,9 +3590,9 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "853273fe30026ff4adbced44672347f8093178331814e256dab1c4ebea44eb18" +checksum = "0a32e14c782afc12921ad473fd6b9e3a676b5080b2a77078903e457c53c9bbd0" dependencies = [ "lazy_static", "num_cpus", @@ -3284,16 +3600,16 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86657ae276213810aa80748a1b09ee7bc0b4d5c73606f0fd54e5d6e957191a8" +checksum = "99b90262455e23600fa6acb44e156b1103dd42483983a465d1631e16514766b0" dependencies = [ "console", "dialoguer", "log", "num-derive", "num-traits", - "parking_lot", + "parking_lot 0.12.1", "qstring", "semver", "solana-sdk", @@ -3303,9 +3619,9 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a5dc8698f81eadbec9eca68f84bb570bf3d8082effcd84adb7080b96fa523a9" +checksum = "24fbbe293b917570e7f9540f87c0868b835e80008fbef0d6b359b36fefe992fb" dependencies = [ "arrayref", "bincode", @@ -3324,10 +3640,12 @@ dependencies = [ "itertools 0.10.3", "lazy_static", "log", + "lz4", "memmap2", "num-derive", "num-traits", "num_cpus", + "once_cell", "ouroboros", "rand 0.7.3", "rayon", @@ -3349,7 +3667,9 @@ dependencies = [ "solana-stake-program", "solana-vote-program", "solana-zk-token-proof-program", - "solana-zk-token-sdk 1.10.12", + "solana-zk-token-sdk", + "strum", + "strum_macros", "symlink", "tar", "tempfile", @@ -3359,9 +3679,9 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6c2ce8c90257d41a69abc2dbc757075898bc5385e739dcf15dbd0937f7fce3" +checksum = "97f5cb9ab455292ed026ecabd4e440411dd6bd419a068f5a72a0a1a74c9b95ad" dependencies = [ "assert_matches", "base64 0.13.0", @@ -3386,7 +3706,7 @@ dependencies = [ "memmap2", "num-derive", "num-traits", - "pbkdf2 0.10.1", + "pbkdf2 0.11.0", "qstring", "rand 0.7.3", "rand_chacha 0.2.2", @@ -3396,8 +3716,8 @@ dependencies = [ "serde_bytes", "serde_derive", "serde_json", - "sha2 0.10.2", - "sha3 0.10.1", + "sha2 0.10.5", + "sha3 0.10.4", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-logger", @@ -3410,22 +3730,22 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "515995f994c9750b5908d635b47672f98aee8ea65a422ea622d553a69a6fbc7b" +checksum = "65de9f24bb8c335992e7d627c0c4570138c9539bb298eecd4af7c01183db520b" dependencies = [ "bs58", - "proc-macro2 1.0.38", - "quote 1.0.18", + "proc-macro2 1.0.43", + "quote 1.0.21", "rustversion", - "syn 1.0.93", + "syn 1.0.99", ] [[package]] name = "solana-send-transaction-service" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee12cf20158af0a3f916ed32a9c3086c59746bc5dc6aac98c9e841cd31ea2a3" +checksum = "098ad0fd1722a0cbfe5c942e0a05ca1a3afe93a7d7321a18e11502009d2889d3" dependencies = [ "crossbeam-channel", "log", @@ -3438,9 +3758,9 @@ dependencies = [ [[package]] name = "solana-stake-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccc419090697ee18bf236f0a3d2e3bb905dc43095955db81c76b574d2a9df684" +checksum = "3d22df7d5d245928f740fb9afffbe7d56c2446db5cb3542001b762ca1ad3a108" dependencies = [ "bincode", "log", @@ -3461,18 +3781,20 @@ dependencies = [ [[package]] name = "solana-streamer" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34661b8e4c31b1c640922e8b88b5a8245dbe398e7605d60cb7f9f39c59823ba0" +checksum = "e1cae451f23ba92db67875c49d2d62022d4ca1be0640a17b3ed57fe7c7091772" dependencies = [ "crossbeam-channel", "futures-util", "histogram", + "indexmap", "itertools 0.10.3", "libc", "log", "nix", "pem", + "percentage", "pkcs8", "quinn", "rand 0.7.3", @@ -3483,13 +3805,14 @@ dependencies = [ "solana-sdk", "thiserror", "tokio", + "x509-parser", ] [[package]] name = "solana-transaction-status" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0512229e76b136b8430e7b9bca323e587306125dbd632332506171fa1d85c01a" +checksum = "eee5938770f8b003e0fa4d89f2e2174c3dff56208820d7ffdb5fe2b9b13e489d" dependencies = [ "Inflector", "base64 0.13.0", @@ -3504,7 +3827,6 @@ dependencies = [ "solana-account-decoder", "solana-measure", "solana-metrics", - "solana-runtime", "solana-sdk", "solana-vote-program", "spl-associated-token-account", @@ -3516,12 +3838,13 @@ dependencies = [ [[package]] name = "solana-version" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b694f307451d9db9c383d804db192082f7899901d64555ccb9c1b5231ac6f3" +checksum = "ad8026ea74e28a46905b4743129d6cf8f34535414fd01fa6feff190c91fb15df" dependencies = [ "log", "rustc_version", + "semver", "serde", "serde_derive", "solana-frozen-abi", @@ -3531,9 +3854,9 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52481154607c40c22fbf098a9eb63119c554dfa9160746bc5a9f5a174ae1c018" +checksum = "c8c43f4a98901cf9b81c7ef84981672f0e9cb51faab7a221797f0a2371868b69" dependencies = [ "bincode", "log", @@ -3552,9 +3875,9 @@ dependencies = [ [[package]] name = "solana-zk-token-proof-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d8c4eaae1222fe45f4bcc31e85a37d192a2e3ec641c2cee8c18f0d1fdd015" +checksum = "6297d34c58547fea47779a61cbb2fe6f6aaf8afc24f02af35703e04252cb1ca5" dependencies = [ "bytemuck", "getrandom 0.1.16", @@ -3562,44 +3885,14 @@ dependencies = [ "num-traits", "solana-program-runtime", "solana-sdk", - "solana-zk-token-sdk 1.10.12", -] - -[[package]] -name = "solana-zk-token-sdk" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b149253f9ed1afb68b3161b53b62b637d0dd7a3b328dffdc8bb5878d48358e" -dependencies = [ - "aes-gcm-siv", - "arrayref", - "base64 0.13.0", - "bincode", - "bytemuck", - "byteorder", - "cipher 0.3.0", - "curve25519-dalek", - "getrandom 0.1.16", - "lazy_static", - "merlin", - "num-derive", - "num-traits", - "rand 0.7.3", - "serde", - "serde_json", - "sha3 0.9.1", - "solana-program", - "solana-sdk", - "subtle", - "thiserror", - "zeroize", + "solana-zk-token-sdk", ] [[package]] name = "solana-zk-token-sdk" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b92ba12ecc8cd2574a8ea57f3ccedd2a346cab03f1bf4224e927519c6d151b" +checksum = "b06109ff5d374ff6b9e7accf2e6cb1adf464de3640ab0469661b0c6a85315b08" dependencies = [ "aes-gcm-siv", "arrayref", @@ -3627,9 +3920,9 @@ dependencies = [ [[package]] name = "solana_rbpf" -version = "0.2.24" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41e138f6d6d4eb6a65f8e9f01ca620bc9907d79648d5038a69dd3f07b6ed3f1f" +checksum = "80a28c5dfe7e8af38daa39d6561c8e8b9ed7a2f900951ebe7362ad6348d36c73" dependencies = [ "byteorder", "combine", @@ -3637,11 +3930,10 @@ dependencies = [ "hash32", "libc", "log", - "rand 0.7.3", + "rand 0.8.5", "rustc-demangle", "scroll", "thiserror", - "time 0.1.43", ] [[package]] @@ -3662,13 +3954,18 @@ dependencies = [ [[package]] name = "spl-associated-token-account" -version = "1.0.5" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b013067447a1396303ddfc294f36e3d260a32f8a16c501c295bcdc7de39b490" +checksum = "16a33ecc83137583902c3e13c02f34151c8b2f2b74120f9c2b3ff841953e083d" dependencies = [ + "assert_matches", "borsh", + "num-derive", + "num-traits", "solana-program", "spl-token", + "spl-token-2022", + "thiserror", ] [[package]] @@ -3682,11 +3979,12 @@ dependencies = [ [[package]] name = "spl-token" -version = "3.3.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc67166ef99d10c18cb5e9c208901e6d8255c6513bb1f877977eba48e6cc4fb" +checksum = "8e85e168a785e82564160dcb87b2a8e04cee9bfd1f4d488c729d53d6a4bd300d" dependencies = [ "arrayref", + "bytemuck", "num-derive", "num-traits", "num_enum", @@ -3696,9 +3994,9 @@ dependencies = [ [[package]] name = "spl-token-2022" -version = "0.2.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fce48c69350134e8678de5c0956a531b7de586b28eebdddc03211ceec0660983" +checksum = "f0a97cbf60b91b610c846ccf8eecca96d92a24a19ffbf9fe06cd0c84e76ec45e" dependencies = [ "arrayref", "bytemuck", @@ -3706,18 +4004,12 @@ dependencies = [ "num-traits", "num_enum", "solana-program", - "solana-zk-token-sdk 0.8.1", + "solana-zk-token-sdk", "spl-memo", "spl-token", "thiserror", ] -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - [[package]] name = "static_assertions" version = "1.1.0" @@ -3730,6 +4022,34 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck", + "proc-macro2 1.0.43", + "quote 1.0.21", + "rustversion", + "syn 1.0.99", +] + [[package]] name = "subtle" version = "2.4.1" @@ -3755,13 +4075,13 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.93" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04066589568b72ec65f42d65a1a52436e954b168773148893c020269563decf2" +checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "unicode-xid 0.2.3", + "proc-macro2 1.0.43", + "quote 1.0.21", + "unicode-ident", ] [[package]] @@ -3770,9 +4090,9 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", "unicode-xid 0.2.3", ] @@ -3789,9 +4109,9 @@ dependencies = [ [[package]] name = "tarpc" -version = "0.27.2" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b85d0a9369a919ba0db919b142a2b704cd207dfc676f7a43c2d105d0bc225487" +checksum = "1c38a012bed6fb9681d3bf71ffaa4f88f3b4b9ed3198cda6e4c8462d24d4bb80" dependencies = [ "anyhow", "fnv", @@ -3806,7 +4126,7 @@ dependencies = [ "thiserror", "tokio", "tokio-serde", - "tokio-util 0.6.9", + "tokio-util 0.6.10", "tracing", "tracing-opentelemetry", ] @@ -3817,9 +4137,9 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee42b4e559f17bce0385ebf511a7beb67d5cc33c12c96b7f4e9789919d9c10f" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -3864,24 +4184,30 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "textwrap" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" + [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "8c1b05ca9d106ba7d2e31a9dab4a64e7be2cce415321966ea3132c49a656e252" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "e8f2591983642de85c921015f3f070c665a197ed69e417af436115e3a1407487" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -3895,24 +4221,33 @@ dependencies = [ [[package]] name = "time" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" dependencies = [ "libc", + "wasi 0.10.0+wasi-snapshot-preview1", "winapi", ] [[package]] name = "time" -version = "0.3.9" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd" +checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" dependencies = [ + "itoa", "libc", "num_threads", + "time-macros", ] +[[package]] +name = "time-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792" + [[package]] name = "tiny-bip39" version = "0.8.2" @@ -3949,33 +4284,33 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.18.2" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4903bf0427cf68dddd5aa6a93220756f8be0c34fcfa9f5e6191e103e15a31395" +checksum = "b9d0183f6f6001549ab68f8c7585093bb732beefbcf6d23a10b9b95c73a1dd49" dependencies = [ + "autocfg", "bytes", "libc", "memchr", - "mio 0.8.3", + "mio", "num_cpus", "once_cell", - "parking_lot", + "parking_lot 0.11.2", "pin-project-lite", "signal-hook-registry", - "socket2", "tokio-macros", "winapi", ] [[package]] name = "tokio-macros" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -4007,9 +4342,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" +checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" dependencies = [ "futures-core", "pin-project-lite", @@ -4018,9 +4353,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.17.1" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06cda1232a49558c46f8a504d5b93101d42c0bf7f911f12a105ba48168f821ae" +checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ "futures-util", "log", @@ -4034,9 +4369,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.6.9" +version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ "bytes", "futures-core", @@ -4049,9 +4384,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +checksum = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c" dependencies = [ "bytes", "futures-core", @@ -4072,15 +4407,15 @@ dependencies = [ [[package]] name = "tower-service" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09" +checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" dependencies = [ "cfg-if", "log", @@ -4091,31 +4426,32 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "tracing-core" -version = "0.1.26" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f" +checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" dependencies = [ - "lazy_static", + "once_cell", "valuable", ] [[package]] name = "tracing-opentelemetry" -version = "0.15.0" +version = "0.17.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "599f388ecb26b28d9c1b2e4437ae019a7b336018b45ed911458cd9ebf91129f6" +checksum = "fbbe89715c1dbbb790059e2565353978564924ee85017b5fff365c872ff6721f" dependencies = [ + "once_cell", "opentelemetry", "tracing", "tracing-core", @@ -4124,9 +4460,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.25" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" dependencies = [ "sharded-slab", "thread_local", @@ -4141,9 +4477,9 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "tungstenite" -version = "0.17.2" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96a2dea40e7570482f28eb57afbe42d97551905da6a9400acc5c328d24004f5" +checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" dependencies = [ "base64 0.13.0", "byteorder", @@ -4173,11 +4509,17 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +[[package]] +name = "unicode-ident" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" + [[package]] name = "unicode-normalization" -version = "0.1.19" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" dependencies = [ "tinyvec", ] @@ -4237,13 +4579,12 @@ dependencies = [ [[package]] name = "url" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", ] @@ -4306,9 +4647,9 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" +version = "0.10.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasi" @@ -4318,9 +4659,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -4328,24 +4669,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" dependencies = [ "bumpalo", - "lazy_static", "log", - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "once_cell", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.30" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" +checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" dependencies = [ "cfg-if", "js-sys", @@ -4355,38 +4696,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" dependencies = [ - "quote 1.0.18", + "quote 1.0.21", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" [[package]] name = "web-sys" -version = "0.3.57" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -4404,9 +4745,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.3" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" +checksum = "f1c760f0d366a6c24a02ed7816e23e691f5d92291f94d15e836006fd11b04daf" dependencies = [ "webpki", ] @@ -4494,6 +4835,24 @@ dependencies = [ "winapi", ] +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.0", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time 0.3.14", +] + [[package]] name = "xattr" version = "0.2.3" @@ -4518,7 +4877,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "346d34a236c9d3e5f3b9b74563f238f955bbd05fa0b8b4efa53c130c43982f4c" dependencies = [ - "time 0.3.9", + "time 0.3.14", ] [[package]] @@ -4536,26 +4895,26 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", "synstructure", ] [[package]] name = "zstd" -version = "0.11.1+zstd.1.5.2" +version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a16b8414fde0414e90c612eba70985577451c4c504b99885ebed24762cb81a" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "5.0.1+zstd.1.5.2" +version = "5.0.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c12659121420dd6365c5c3de4901f97145b79651fb1d25814020ed2ed0585ae" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" dependencies = [ "libc", "zstd-sys", diff --git a/program/src/state/event_queue.rs b/program/src/state/event_queue.rs index ea98a77..74d1f0c 100644 --- a/program/src/state/event_queue.rs +++ b/program/src/state/event_queue.rs @@ -88,9 +88,11 @@ pub(crate) enum EventTag { Out, } -pub(crate) type GenericEvent = FillEvent; +#[allow(missing_docs)] +pub type GenericEvent = FillEvent; -pub(crate) trait Event { +#[allow(missing_docs)] +pub trait Event { fn to_generic(&mut self) -> &GenericEvent; } @@ -166,6 +168,7 @@ impl<'queue, C: Pod> EventQueue<'queue, C> { } impl<'queue, C: Clone> EventQueue<'queue, C> { + #[allow(missing_docs)] pub fn push_back( &mut self, mut event: Ev, From 14054127cad7ef1f72b0365c0d26af95cb0d5bde Mon Sep 17 00:00:00 2001 From: zachanon Date: Wed, 19 Oct 2022 17:07:43 +0700 Subject: [PATCH 12/34] pub --- program/src/state/orderbook.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index a52449f..40956f6 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -69,7 +69,7 @@ pub struct OrderBookState<'a, C> { // pub type OrderBookStateRef<'slab, C> = OrderBookState>; impl<'slab, C: Pod + Copy> OrderBookState<'slab, C> { - pub(crate) fn new_safe( + pub fn new_safe( bids_account: &'slab mut [u8], asks_account: &'slab mut [u8], ) -> Result { From 2fb8ce6878e47f62e5714ddd78905bb2745b8bf5 Mon Sep 17 00:00:00 2001 From: Drew Nutter Date: Thu, 20 Oct 2022 16:02:25 -0400 Subject: [PATCH 13/34] when matching is disabled, the order summary returns the posted amounts instead of the max amounts --- program/src/state/orderbook.rs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 40956f6..e40ad19 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -353,12 +353,17 @@ where fp32_div(max_quote_qty, limit_price).unwrap_or(u64::MAX), max_base_qty, ); + let quote_qty_to_post = match side { + Side::Bid => fp32_mul_ceil(base_qty_to_post, limit_price), + Side::Ask => fp32_mul_floor(base_qty_to_post, limit_price), + } + .ok_or(AoError::NumericalOverflow)?; if base_qty_to_post < min_base_order_size || !post_allowed { return Ok(OrderSummary { posted_order_id: None, - total_base_qty: max_base_qty, - total_quote_qty: max_quote_qty, + total_base_qty: base_qty_to_post, + total_quote_qty: quote_qty_to_post, total_base_qty_posted: base_qty_to_post, }); } @@ -399,8 +404,8 @@ where } else { return Ok(OrderSummary { posted_order_id: None, - total_base_qty: max_base_qty, - total_quote_qty: max_quote_qty, + total_base_qty: base_qty_to_post, + total_quote_qty: quote_qty_to_post, total_base_qty_posted: 0, }); } @@ -411,8 +416,8 @@ where *self.get_tree(side).get_callback_info_mut(k) = callback_info; Ok(OrderSummary { posted_order_id: Some(new_leaf_order_id), - total_base_qty: max_base_qty, - total_quote_qty: max_quote_qty, + total_base_qty: base_qty_to_post, + total_quote_qty: quote_qty_to_post, total_base_qty_posted: base_qty_to_post, }) } From bb0d2c23b1689d2563d016506589a033865bf0df Mon Sep 17 00:00:00 2001 From: zachanon Date: Mon, 1 Aug 2022 17:54:50 -0600 Subject: [PATCH 14/34] pause logic --- program/src/instruction.rs | 29 +++++++++ program/src/processor.rs | 6 ++ program/src/processor/create_market.rs | 10 +-- program/src/processor/new_order.rs | 11 +++- program/src/processor/pause_matching.rs | 67 ++++++++++++++++++++ program/src/state/market_state.rs | 22 +++++++ program/src/state/orderbook.rs | 84 +++++++++++++++++++++++++ 7 files changed, 222 insertions(+), 7 deletions(-) create mode 100644 program/src/processor/pause_matching.rs diff --git a/program/src/instruction.rs b/program/src/instruction.rs index d0c604c..dc78df0 100644 --- a/program/src/instruction.rs +++ b/program/src/instruction.rs @@ -7,6 +7,7 @@ use solana_program::{ use bonfida_utils::{BorshSize, InstructionsAccount}; +use crate::processor::pause_matching; pub use crate::processor::{ cancel_order, close_market, consume_events, create_market, mass_cancel_orders, new_order, }; @@ -88,6 +89,14 @@ pub enum AgnosticOrderbookInstruction { /// | 3 | ✅ | ❌ | The asks account | /// | 4 | ❌ | ✅ | The caller authority | MassCancelOrders, + /// Pause the matching engine. + /// + /// Required accounts + /// + /// | index | writable | signer | description | + /// |-------|----------|----------|-----------------------------| + /// | 0 | ✅ | ❌ | The market account | + PauseMatching, } /** @@ -225,3 +234,23 @@ pub fn mass_cancel_orders( }); i } + +/// Pause the matching engine. +pub fn pause_matching( + accounts: pause_matching::Accounts, + register_account: Pubkey, + params: close_market::Params, +) -> Instruction { + let mut i = accounts.get_instruction( + crate::id(), + AgnosticOrderbookInstruction::PauseMatching as u8, + params, + ); + + i.accounts.push(AccountMeta { + pubkey: register_account, + is_signer: false, + is_writable: true, + }); + i +} diff --git a/program/src/processor.rs b/program/src/processor.rs index 264f203..dca44d2 100644 --- a/program/src/processor.rs +++ b/program/src/processor.rs @@ -15,6 +15,7 @@ pub mod consume_events; pub mod create_market; pub mod mass_cancel_orders; pub mod new_order; +pub mod pause_matching; pub fn process_instruction( program_id: &Pubkey, @@ -71,6 +72,11 @@ where .map_err(|_| ProgramError::InvalidInstructionData)?; return mass_cancel_orders::process::(program_id, accounts, params).map(Some); } + AgnosticOrderbookInstruction::PauseMatching => { + msg!("Instruction: Pause Matching"); + let accounts = pause_matching::Accounts::parse(accounts)?; + pause_matching::process::(program_id, accounts, pause_matching::Params {})?; + } } Ok(None) } diff --git a/program/src/processor/create_market.rs b/program/src/processor/create_market.rs index 4df4a09..9fe61ee 100644 --- a/program/src/processor/create_market.rs +++ b/program/src/processor/create_market.rs @@ -97,13 +97,13 @@ pub fn process<'a, 'b: 'a, C: Pod>( MarketState::check_buffer_size(&market_data)?; let market_state = MarketState::from_buffer(&mut market_data, AccountTag::Uninitialized)?; - *market_state = MarketState { - event_queue: *accounts.event_queue.key, - bids: *accounts.bids.key, - asks: *accounts.asks.key, + *market_state = MarketState::init_new( + accounts.event_queue.key, + accounts.bids.key, + accounts.asks.key, min_base_order_size, tick_size, - }; + ); let mut event_queue_data = accounts.event_queue.data.borrow_mut(); diff --git a/program/src/processor/new_order.rs b/program/src/processor/new_order.rs index f6c0a2b..16f0eae 100644 --- a/program/src/processor/new_order.rs +++ b/program/src/processor/new_order.rs @@ -148,8 +148,15 @@ where let mut event_queue_guard = accounts.event_queue.data.borrow_mut(); let mut event_queue = EventQueue::from_buffer(&mut event_queue_guard, AccountTag::EventQueue)?; - let order_summary = - order_book.new_order(params, &mut event_queue, market_state.min_base_order_size)?; + let order_summary = match market_state.pause_matching { + 0 => order_book.new_order(params, &mut event_queue, market_state.min_base_order_size)?, + 1 => order_book.insert_without_matching( + params, + &mut event_queue, + market_state.min_base_order_size, + )?, + _ => panic!("unreachable"), + }; msg!("Order summary : {:?}", order_summary); Ok(order_summary) diff --git a/program/src/processor/pause_matching.rs b/program/src/processor/pause_matching.rs new file mode 100644 index 0000000..e6c883e --- /dev/null +++ b/program/src/processor/pause_matching.rs @@ -0,0 +1,67 @@ +//! Close an existing market. +use crate::{ + error::AoError, + state::{market_state::MarketState, orderbook::CallbackInfo, AccountTag}, + utils::check_account_owner, +}; +use bonfida_utils::{BorshSize, InstructionsAccount}; +use borsh::{BorshDeserialize, BorshSerialize}; +use bytemuck::Pod; +use solana_program::{ + account_info::{next_account_info, AccountInfo}, + entrypoint::ProgramResult, + program_error::ProgramError, + pubkey::Pubkey, +}; + +#[derive(BorshDeserialize, BorshSerialize, BorshSize)] +/** +The required arguments for a close_market instruction. +*/ +pub struct Params {} + +/// The required accounts for a close_market instruction. +#[derive(InstructionsAccount)] +pub struct Accounts<'a, T> { + #[allow(missing_docs)] + #[cons(writable)] + pub market: &'a T, +} + +impl<'a, 'b: 'a> Accounts<'a, AccountInfo<'b>> { + pub(crate) fn parse(accounts: &'a [AccountInfo<'b>]) -> Result { + let accounts_iter = &mut accounts.iter(); + + let a = Self { + market: next_account_info(accounts_iter)?, + }; + Ok(a) + } + + pub(crate) fn perform_checks(&self, program_id: &Pubkey) -> Result<(), ProgramError> { + check_account_owner( + self.market, + &program_id.to_bytes(), + AoError::WrongMarketOwner, + )?; + Ok(()) + } +} +/// Apply the close_market instruction to the provided accounts +pub fn process<'a, 'b: 'a, C: CallbackInfo + PartialEq + Pod>( + program_id: &Pubkey, + accounts: Accounts<'a, AccountInfo<'b>>, + _params: Params, +) -> ProgramResult +where + ::CallbackId: PartialEq, +{ + accounts.perform_checks(program_id)?; + let mut market_data = accounts.market.data.borrow_mut(); + let market_state = MarketState::from_buffer(&mut market_data, AccountTag::Market)?; + + // bytemuck does not like boolean values + market_state.pause_matching = 1; + + Ok(()) +} diff --git a/program/src/state/market_state.rs b/program/src/state/market_state.rs index 94793e5..ca57700 100644 --- a/program/src/state/market_state.rs +++ b/program/src/state/market_state.rs @@ -25,11 +25,33 @@ pub struct MarketState { pub min_base_order_size: u64, /// Tick size (FP32) pub tick_size: u64, + /// When set to '1' orders will remain on their respective slabs without matching + pub pause_matching: u8, + _padding: [u8; 7], } impl MarketState { /// Expected size in bytes of MarketState pub const LEN: usize = size_of::(); + #[allow(missing_docs)] + pub fn init_new( + event_queue: &Pubkey, + bids: &Pubkey, + asks: &Pubkey, + min_base_order_size: u64, + tick_size: u64, + ) -> Self { + Self { + event_queue: *event_queue, + bids: *bids, + asks: *asks, + min_base_order_size, + tick_size, + pause_matching: 0, + _padding: [0u8; 7], + } + } + #[allow(missing_docs)] pub fn from_buffer( account_data: &mut [u8], diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 0e81cdf..9e96c40 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -328,6 +328,90 @@ where total_base_qty_posted: base_qty_to_post, }) } + + pub fn insert_without_matching( + &mut self, + params: new_order::Params, + event_queue: &mut EventQueue<'a, C>, + min_base_order_size: u64, + ) -> Result { + let new_order::Params { + max_base_qty, + max_quote_qty, + side, + limit_price, + callback_info, + post_allowed, + .. + } = params; + + let base_qty_to_post = std::cmp::min( + fp32_div(max_quote_qty, limit_price).unwrap_or(u64::MAX), + max_base_qty, + ); + + if base_qty_to_post < min_base_order_size || !post_allowed { + return Ok(OrderSummary { + posted_order_id: None, + total_base_qty: max_base_qty, + total_quote_qty: max_quote_qty, + total_base_qty_posted: base_qty_to_post, + }); + } + + let new_leaf_order_id = event_queue.gen_order_id(limit_price, side); + let new_leaf = LeafNode { + key: new_leaf_order_id, + base_quantity: base_qty_to_post, + }; + let insert_result = self.get_tree(side).insert_leaf(&new_leaf); + let k = if let Err(AoError::SlabOutOfSpace) = insert_result { + // Boot out the least aggressive orders + msg!("Orderbook is full! booting least aggressive orders..."); + let slab = self.get_tree(side); + let boot_candidate = match side { + Side::Bid => slab.find_min().unwrap(), + Side::Ask => slab.find_max().unwrap(), + }; + let boot_candidate_key = slab.leaf_nodes[boot_candidate as usize].key; + let boot_candidate_price = LeafNode::price_from_key(boot_candidate_key); + let should_boot = match side { + Side::Bid => boot_candidate_price < limit_price, + Side::Ask => boot_candidate_price > limit_price, + }; + if should_boot { + let (order, callback_info_booted) = slab.remove_by_key(boot_candidate_key).unwrap(); + let out = OutEvent { + side: side as u8, + order_id: order.order_id(), + base_size: order.base_quantity, + tag: EventTag::Out as u8, + _padding: [0; 14], + }; + event_queue + .push_back(out, Some(callback_info_booted), None) + .map_err(|_| AoError::EventQueueFull)?; + slab.insert_leaf(&new_leaf).unwrap().0 + } else { + return Ok(OrderSummary { + posted_order_id: None, + total_base_qty: max_base_qty, + total_quote_qty: max_quote_qty, + total_base_qty_posted: 0, + }); + } + } else { + insert_result.unwrap().0 + }; + + *self.get_tree(side).get_callback_info_mut(k) = callback_info; + Ok(OrderSummary { + posted_order_id: Some(new_leaf_order_id), + total_base_qty: max_base_qty, + total_quote_qty: max_quote_qty, + total_base_qty_posted: base_qty_to_post, + }) + } } #[cfg(test)] From 87957afde481f8c8c85c06e437f763ca40d43fdc Mon Sep 17 00:00:00 2001 From: zachanon Date: Mon, 1 Aug 2022 19:19:53 -0600 Subject: [PATCH 15/34] frame --- program/src/instruction.rs | 37 ++++++- program/src/processor.rs | 6 ++ program/src/processor/resume_matching.rs | 121 +++++++++++++++++++++++ program/src/state/orderbook.rs | 8 ++ 4 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 program/src/processor/resume_matching.rs diff --git a/program/src/instruction.rs b/program/src/instruction.rs index dc78df0..eb341f4 100644 --- a/program/src/instruction.rs +++ b/program/src/instruction.rs @@ -7,10 +7,10 @@ use solana_program::{ use bonfida_utils::{BorshSize, InstructionsAccount}; -use crate::processor::pause_matching; pub use crate::processor::{ cancel_order, close_market, consume_events, create_market, mass_cancel_orders, new_order, }; +use crate::processor::{pause_matching, resume_matching}; #[derive(BorshDeserialize, BorshSerialize, FromPrimitive)] /// Describes all possible instructions and their required accounts pub enum AgnosticOrderbookInstruction { @@ -97,6 +97,20 @@ pub enum AgnosticOrderbookInstruction { /// |-------|----------|----------|-----------------------------| /// | 0 | ✅ | ❌ | The market account | PauseMatching, + /// Resume matching on the order book + /// + /// The instruction will proceed to match all crossing orders currently extant on the book + /// + /// Required accounts + /// + /// + /// | index | writable | signer | description | + /// |-------|----------|--------|-------------------------| + /// | 0 | ✅ | ❌ | The market account | + /// | 1 | ✅ | ❌ | The event queue account | + /// | 2 | ✅ | ❌ | The bids account | + /// | 3 | ✅ | ❌ | The asks account | + ResumeMatching, } /** @@ -239,7 +253,7 @@ pub fn mass_cancel_orders( pub fn pause_matching( accounts: pause_matching::Accounts, register_account: Pubkey, - params: close_market::Params, + params: pause_matching::Params, ) -> Instruction { let mut i = accounts.get_instruction( crate::id(), @@ -254,3 +268,22 @@ pub fn pause_matching( }); i } +/// Pause the matching engine. +pub fn resume_matching( + accounts: resume_matching::Accounts, + register_account: Pubkey, + params: resume_matching::Params, +) -> Instruction { + let mut i = accounts.get_instruction( + crate::id(), + AgnosticOrderbookInstruction::ResumeMatching as u8, + params, + ); + + i.accounts.push(AccountMeta { + pubkey: register_account, + is_signer: false, + is_writable: true, + }); + i +} diff --git a/program/src/processor.rs b/program/src/processor.rs index dca44d2..7f515a3 100644 --- a/program/src/processor.rs +++ b/program/src/processor.rs @@ -16,6 +16,7 @@ pub mod create_market; pub mod mass_cancel_orders; pub mod new_order; pub mod pause_matching; +pub mod resume_matching; pub fn process_instruction( program_id: &Pubkey, @@ -77,6 +78,11 @@ where let accounts = pause_matching::Accounts::parse(accounts)?; pause_matching::process::(program_id, accounts, pause_matching::Params {})?; } + AgnosticOrderbookInstruction::ResumeMatching => { + msg!("Instruction: Resume Matching"); + let accounts = resume_matching::Accounts::parse(accounts)?; + resume_matching::process::(program_id, accounts, resume_matching::Params {})?; + } } Ok(None) } diff --git a/program/src/processor/resume_matching.rs b/program/src/processor/resume_matching.rs new file mode 100644 index 0000000..cdd363a --- /dev/null +++ b/program/src/processor/resume_matching.rs @@ -0,0 +1,121 @@ +//! Execute a new order on the orderbook + +use bonfida_utils::{BorshSize, InstructionsAccount}; +use borsh::{BorshDeserialize, BorshSerialize}; +use bytemuck::Pod; +use solana_program::{ + account_info::{next_account_info, AccountInfo}, + entrypoint::ProgramResult, + program_error::ProgramError, + pubkey::Pubkey, +}; + +use crate::{ + error::AoError, + state::{ + event_queue::EventQueue, + market_state::MarketState, + orderbook::{CallbackInfo, OrderBookState}, + AccountTag, + }, + utils::{check_account_key, check_account_owner}, +}; + +#[derive(BorshDeserialize, BorshSerialize, BorshSize)] +/** +The required arguments for a new_order instruction. +*/ +pub struct Params {} + +/// The required accounts for a new_order instruction. +#[derive(InstructionsAccount)] +pub struct Accounts<'a, T> { + #[allow(missing_docs)] + pub market: &'a T, + #[allow(missing_docs)] + #[cons(writable)] + pub event_queue: &'a T, + #[allow(missing_docs)] + #[cons(writable)] + pub bids: &'a T, + #[allow(missing_docs)] + #[cons(writable)] + pub asks: &'a T, +} + +impl<'a, 'b: 'a> Accounts<'a, AccountInfo<'b>> { + pub(crate) fn parse(accounts: &'a [AccountInfo<'b>]) -> Result { + let accounts_iter = &mut accounts.iter(); + + let a = Self { + market: next_account_info(accounts_iter)?, + event_queue: next_account_info(accounts_iter)?, + bids: next_account_info(accounts_iter)?, + asks: next_account_info(accounts_iter)?, + }; + Ok(a) + } + pub(crate) fn perform_checks(&self, program_id: &Pubkey) -> Result<(), ProgramError> { + check_account_owner( + self.market, + &program_id.to_bytes(), + AoError::WrongMarketOwner, + )?; + check_account_owner( + self.event_queue, + &program_id.to_bytes(), + AoError::WrongEventQueueOwner, + )?; + check_account_owner(self.bids, &program_id.to_bytes(), AoError::WrongBidsOwner)?; + check_account_owner(self.asks, &program_id.to_bytes(), AoError::WrongAsksOwner)?; + Ok(()) + } +} + +/// Apply the new_order instruction to the provided accounts +pub fn process<'a, 'b: 'a, C: Pod + CallbackInfo + PartialEq>( + program_id: &Pubkey, + accounts: Accounts<'a, AccountInfo<'b>>, + _params: Params, +) -> ProgramResult +where + ::CallbackId: PartialEq, +{ + accounts.perform_checks(program_id)?; + let mut market_data = accounts.market.data.borrow_mut(); + let market_state = MarketState::from_buffer(&mut market_data, AccountTag::Market)?; + + check_accounts(&accounts, market_state)?; + + let mut bids_guard = accounts.bids.data.borrow_mut(); + let mut asks_guard = accounts.asks.data.borrow_mut(); + + let mut order_book = OrderBookState::::new_safe(&mut bids_guard, &mut asks_guard)?; + + let mut event_queue_guard = accounts.event_queue.data.borrow_mut(); + let mut event_queue = + EventQueue::::from_buffer(&mut event_queue_guard, AccountTag::EventQueue)?; + + match order_book.match_existing_orders(&mut event_queue, market_state.min_base_order_size) { + Ok(_) => { + market_state.pause_matching = 1; + Ok(()) + } + Err(e) => Err(e.into()), + } +} + +fn check_accounts<'a, 'b: 'a>( + accounts: &Accounts<'a, AccountInfo<'b>>, + market_state: &MarketState, +) -> ProgramResult { + check_account_key( + accounts.event_queue, + &market_state.event_queue, + AoError::WrongEventQueueAccount, + )?; + check_account_key(accounts.bids, &market_state.bids, AoError::WrongBidsAccount)?; + check_account_key(accounts.asks, &market_state.asks, AoError::WrongAsksAccount)?; + + Ok(()) +} diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 9e96c40..d4c1693 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -412,6 +412,14 @@ where total_base_qty_posted: base_qty_to_post, }) } + + pub fn match_existing_orders( + &mut self, + event_queue: &mut EventQueue<'a, C>, + min_base_order_size: u64, + ) -> Result { + Ok(0) + } } #[cfg(test)] From 948275227f7dfc0ae237cc1abaf966cd8488c35b Mon Sep 17 00:00:00 2001 From: zachanon Date: Tue, 2 Aug 2022 09:35:33 -0600 Subject: [PATCH 16/34] resume logic, untested --- program/src/processor/resume_matching.rs | 11 ++++-- program/src/state/orderbook.rs | 43 ++++++++++++++++++++++-- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/program/src/processor/resume_matching.rs b/program/src/processor/resume_matching.rs index cdd363a..9ffc5e6 100644 --- a/program/src/processor/resume_matching.rs +++ b/program/src/processor/resume_matching.rs @@ -6,6 +6,7 @@ use bytemuck::Pod; use solana_program::{ account_info::{next_account_info, AccountInfo}, entrypoint::ProgramResult, + msg, program_error::ProgramError, pubkey::Pubkey, }; @@ -97,8 +98,14 @@ where EventQueue::::from_buffer(&mut event_queue_guard, AccountTag::EventQueue)?; match order_book.match_existing_orders(&mut event_queue, market_state.min_base_order_size) { - Ok(_) => { - market_state.pause_matching = 1; + Ok(completed) => { + if completed { + msg!("All sitting orders have been filled. Regular mathcing behavior resumed."); + market_state.pause_matching = 1; + } else { + msg!("Unmatched orders remain. Please run this instruction again to clear them before resuming regular behavior."); + } + Ok(()) } Err(e) => Err(e.into()), diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index d4c1693..0a578a1 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -56,6 +56,10 @@ impl CallbackInfo for [u8; 32] { /// The serialized size of an OrderSummary object. pub const ORDER_SUMMARY_SIZE: u32 = 41; +/// The maximum number of matches a single transaction can handle, based on compute limit +/// TODO: Find this value empirically +pub const MAX_MATCHES_PER_TRANSACTION: u32 = 5; + #[doc(hidden)] pub struct OrderBookState<'a, C> { pub bids: Slab<'a, C>, @@ -413,12 +417,47 @@ where }) } + /// Attempts to match all spread-crossing orders currently on the book. Limed by `MAX_MATCHES_PER_TRANSACTION`. + /// + /// Returns the number of successful matches. pub fn match_existing_orders( &mut self, event_queue: &mut EventQueue<'a, C>, min_base_order_size: u64, - ) -> Result { - Ok(0) + ) -> Result { + for _ in 0..MAX_MATCHES_PER_TRANSACTION { + let order_params = match self.asks.find_min() { + Some(h) => { + // pop the order off the tree + let (order, callback_info) = self + .asks + .remove_by_key(self.asks.leaf_nodes[h as usize].key) + .unwrap(); + + let limit_price = order.price(); + let max_quote_qty = fp32_div(limit_price, order.base_quantity) + .ok_or(AoError::NumericalOverflow)?; + + new_order::Params { + max_base_qty: order.base_quantity, + max_quote_qty, + limit_price, + side: Side::Ask, + match_limit: u64::MAX, + callback_info: *callback_info, + post_only: false, + post_allowed: true, + self_trade_behavior: SelfTradeBehavior::CancelProvide, + } + } + None => { + // no orders to match + return Ok(true); + } + }; + self.new_order(order_params, event_queue, min_base_order_size)?; + } + Ok(false) } } From 0e477ec57326dc7023f9d13afe697c741d5f1cf6 Mon Sep 17 00:00:00 2001 From: zachanon Date: Tue, 23 Aug 2022 11:35:49 -0600 Subject: [PATCH 17/34] price in order summary --- program/src/state/orderbook.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 0a578a1..7460d0f 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -33,6 +33,8 @@ pub struct OrderSummary { pub total_quote_qty: u64, #[allow(missing_docs)] pub total_base_qty_posted: u64, + #[allow(missing_docs)] + pub price: u64, } /// This trait defines a subobject which can be used to compare two callback information object to determine @@ -271,6 +273,7 @@ where total_base_qty: max_base_qty - base_qty_remaining, total_quote_qty: max_quote_qty - quote_qty_remaining, total_base_qty_posted: 0, + price: trade_price, }); } @@ -313,6 +316,7 @@ where total_base_qty: max_base_qty - base_qty_remaining, total_quote_qty: max_quote_qty - quote_qty_remaining, total_base_qty_posted: 0, + price: trade_price, }); } } else { @@ -330,6 +334,7 @@ where total_base_qty: max_base_qty - base_qty_remaining, total_quote_qty: max_quote_qty - quote_qty_remaining, total_base_qty_posted: base_qty_to_post, + price: trade_price, }) } @@ -360,6 +365,7 @@ where total_base_qty: max_base_qty, total_quote_qty: max_quote_qty, total_base_qty_posted: base_qty_to_post, + price: limit_price, }); } @@ -402,6 +408,7 @@ where total_base_qty: max_base_qty, total_quote_qty: max_quote_qty, total_base_qty_posted: 0, + price: limit_price, }); } } else { @@ -414,6 +421,7 @@ where total_base_qty: max_base_qty, total_quote_qty: max_quote_qty, total_base_qty_posted: base_qty_to_post, + price: limit_price, }) } @@ -536,6 +544,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -564,6 +573,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -592,6 +602,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -621,6 +632,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -711,6 +723,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -785,6 +798,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -814,6 +828,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -843,6 +858,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -888,6 +904,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -925,6 +942,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -982,6 +1000,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -1011,6 +1030,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -1040,6 +1060,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { @@ -1085,6 +1106,7 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, + price, } = orderbook .new_order( new_order::Params { From 8e9e68e19f1e04183df90a07e646d52ee9256885 Mon Sep 17 00:00:00 2001 From: zach Date: Sat, 13 Aug 2022 21:23:28 -0600 Subject: [PATCH 18/34] unchecked --- program/src/state/critbit.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/program/src/state/critbit.rs b/program/src/state/critbit.rs index 71d6bbc..6a36bba 100644 --- a/program/src/state/critbit.rs +++ b/program/src/state/critbit.rs @@ -142,6 +142,25 @@ impl<'a, C: Pod> Slab<'a, C> { callback_infos: bytemuck::cast_slice_mut::<_, C>(callback_infos), }) } + + pub fn from_buffer_unchecked(buf: &'a mut [u8]) -> Result { + let callback_info_len = std::mem::size_of::(); + let leaf_size = LeafNode::LEN + callback_info_len; + let capacity = (buf.len() - SlabHeader::LEN - 8 - leaf_size) / (leaf_size + InnerNode::LEN); + + let (_, rem) = buf.split_at_mut(8); + let (header, rem) = rem.split_at_mut(SlabHeader::LEN); + let (leaves, rem) = rem.split_at_mut((capacity + 1) * LeafNode::LEN); + let (inner_nodes, callback_infos) = rem.split_at_mut(capacity * InnerNode::LEN); + let header = bytemuck::from_bytes_mut::(header); + + Ok(Self { + header, + leaf_nodes: bytemuck::cast_slice_mut::<_, LeafNode>(leaves), + inner_nodes: bytemuck::cast_slice_mut::<_, InnerNode>(inner_nodes), + callback_infos: bytemuck::cast_slice_mut::<_, C>(callback_infos), + }) + } } impl<'a, C> Slab<'a, C> { From da4119387c896362faf5c1c9a36c02266255e322 Mon Sep 17 00:00:00 2001 From: zachanon Date: Mon, 22 Aug 2022 20:01:07 -0600 Subject: [PATCH 19/34] pub use --- program/src/instruction.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/program/src/instruction.rs b/program/src/instruction.rs index eb341f4..c45c76c 100644 --- a/program/src/instruction.rs +++ b/program/src/instruction.rs @@ -9,8 +9,8 @@ use bonfida_utils::{BorshSize, InstructionsAccount}; pub use crate::processor::{ cancel_order, close_market, consume_events, create_market, mass_cancel_orders, new_order, + pause_matching, resume_matching, }; -use crate::processor::{pause_matching, resume_matching}; #[derive(BorshDeserialize, BorshSerialize, FromPrimitive)] /// Describes all possible instructions and their required accounts pub enum AgnosticOrderbookInstruction { From 7866d0fc9e20cf86546196aaa942e4acea925100 Mon Sep 17 00:00:00 2001 From: zachanon Date: Mon, 22 Aug 2022 20:15:28 -0600 Subject: [PATCH 20/34] better bool type handling --- program/src/processor/new_order.rs | 7 +++---- program/src/processor/pause_matching.rs | 2 +- program/src/processor/resume_matching.rs | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/program/src/processor/new_order.rs b/program/src/processor/new_order.rs index 16f0eae..4d2f941 100644 --- a/program/src/processor/new_order.rs +++ b/program/src/processor/new_order.rs @@ -148,14 +148,13 @@ where let mut event_queue_guard = accounts.event_queue.data.borrow_mut(); let mut event_queue = EventQueue::from_buffer(&mut event_queue_guard, AccountTag::EventQueue)?; - let order_summary = match market_state.pause_matching { - 0 => order_book.new_order(params, &mut event_queue, market_state.min_base_order_size)?, - 1 => order_book.insert_without_matching( + let order_summary = match market_state.pause_matching == 0 { + true => order_book.new_order(params, &mut event_queue, market_state.min_base_order_size)?, + false => order_book.insert_without_matching( params, &mut event_queue, market_state.min_base_order_size, )?, - _ => panic!("unreachable"), }; msg!("Order summary : {:?}", order_summary); diff --git a/program/src/processor/pause_matching.rs b/program/src/processor/pause_matching.rs index e6c883e..36049dd 100644 --- a/program/src/processor/pause_matching.rs +++ b/program/src/processor/pause_matching.rs @@ -61,7 +61,7 @@ where let market_state = MarketState::from_buffer(&mut market_data, AccountTag::Market)?; // bytemuck does not like boolean values - market_state.pause_matching = 1; + market_state.pause_matching = true as u8; Ok(()) } diff --git a/program/src/processor/resume_matching.rs b/program/src/processor/resume_matching.rs index 9ffc5e6..793346b 100644 --- a/program/src/processor/resume_matching.rs +++ b/program/src/processor/resume_matching.rs @@ -101,7 +101,7 @@ where Ok(completed) => { if completed { msg!("All sitting orders have been filled. Regular mathcing behavior resumed."); - market_state.pause_matching = 1; + market_state.pause_matching = false as u8; } else { msg!("Unmatched orders remain. Please run this instruction again to clear them before resuming regular behavior."); } From 93e9c1f433cb1e7bfb7acde41652b45fbfc301ab Mon Sep 17 00:00:00 2001 From: zachanon Date: Tue, 23 Aug 2022 11:49:52 -0600 Subject: [PATCH 21/34] Revert "price in order summary" This reverts commit db55e5fe0d7571c0f3b3caed8c6c7efa6c95c781. --- program/src/state/orderbook.rs | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 7460d0f..0a578a1 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -33,8 +33,6 @@ pub struct OrderSummary { pub total_quote_qty: u64, #[allow(missing_docs)] pub total_base_qty_posted: u64, - #[allow(missing_docs)] - pub price: u64, } /// This trait defines a subobject which can be used to compare two callback information object to determine @@ -273,7 +271,6 @@ where total_base_qty: max_base_qty - base_qty_remaining, total_quote_qty: max_quote_qty - quote_qty_remaining, total_base_qty_posted: 0, - price: trade_price, }); } @@ -316,7 +313,6 @@ where total_base_qty: max_base_qty - base_qty_remaining, total_quote_qty: max_quote_qty - quote_qty_remaining, total_base_qty_posted: 0, - price: trade_price, }); } } else { @@ -334,7 +330,6 @@ where total_base_qty: max_base_qty - base_qty_remaining, total_quote_qty: max_quote_qty - quote_qty_remaining, total_base_qty_posted: base_qty_to_post, - price: trade_price, }) } @@ -365,7 +360,6 @@ where total_base_qty: max_base_qty, total_quote_qty: max_quote_qty, total_base_qty_posted: base_qty_to_post, - price: limit_price, }); } @@ -408,7 +402,6 @@ where total_base_qty: max_base_qty, total_quote_qty: max_quote_qty, total_base_qty_posted: 0, - price: limit_price, }); } } else { @@ -421,7 +414,6 @@ where total_base_qty: max_base_qty, total_quote_qty: max_quote_qty, total_base_qty_posted: base_qty_to_post, - price: limit_price, }) } @@ -544,7 +536,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -573,7 +564,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -602,7 +592,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -632,7 +621,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -723,7 +711,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -798,7 +785,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -828,7 +814,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -858,7 +843,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -904,7 +888,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -942,7 +925,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -1000,7 +982,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -1030,7 +1011,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -1060,7 +1040,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { @@ -1106,7 +1085,6 @@ mod tests { total_base_qty, total_quote_qty, total_base_qty_posted, - price, } = orderbook .new_order( new_order::Params { From 756ea2da48d739c85eb08428dab154b491c0c462 Mon Sep 17 00:00:00 2001 From: zachanon Date: Tue, 23 Aug 2022 16:49:55 -0600 Subject: [PATCH 22/34] hopefully no more infinite loop --- program/src/state/orderbook.rs | 59 ++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 0a578a1..a52449f 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -426,35 +426,40 @@ where min_base_order_size: u64, ) -> Result { for _ in 0..MAX_MATCHES_PER_TRANSACTION { - let order_params = match self.asks.find_min() { - Some(h) => { - // pop the order off the tree - let (order, callback_info) = self - .asks - .remove_by_key(self.asks.leaf_nodes[h as usize].key) - .unwrap(); + let (best_bid, best_ask) = self.get_spread(); + if let None = best_bid { + // no bids to match, orderbook caught up + return Ok(true); + } + if let None = best_ask { + // no asks to match, orderbook caught up + return Ok(true); + } - let limit_price = order.price(); - let max_quote_qty = fp32_div(limit_price, order.base_quantity) - .ok_or(AoError::NumericalOverflow)?; - - new_order::Params { - max_base_qty: order.base_quantity, - max_quote_qty, - limit_price, - side: Side::Ask, - match_limit: u64::MAX, - callback_info: *callback_info, - post_only: false, - post_allowed: true, - self_trade_behavior: SelfTradeBehavior::CancelProvide, - } - } - None => { - // no orders to match - return Ok(true); - } + let handle = self.asks.find_min().unwrap(); + + // pop the order off the tree + let (order, callback_info) = self + .asks + .remove_by_key(self.asks.leaf_nodes[handle as usize].key) + .unwrap(); + + let limit_price = order.price(); + let max_quote_qty = + fp32_div(limit_price, order.base_quantity).ok_or(AoError::NumericalOverflow)?; + + let order_params = new_order::Params { + max_base_qty: order.base_quantity, + max_quote_qty, + limit_price, + side: Side::Ask, + match_limit: u64::MAX, + callback_info: *callback_info, + post_only: false, + post_allowed: true, + self_trade_behavior: SelfTradeBehavior::CancelProvide, }; + self.new_order(order_params, event_queue, min_base_order_size)?; } Ok(false) From fc3ade632326d7e78bb3bd6813c745ec854c945d Mon Sep 17 00:00:00 2001 From: zachanon Date: Thu, 8 Sep 2022 23:16:43 +0700 Subject: [PATCH 23/34] make push event public --- program/src/state/event_queue.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/program/src/state/event_queue.rs b/program/src/state/event_queue.rs index 49df5a7..0fcb84d 100644 --- a/program/src/state/event_queue.rs +++ b/program/src/state/event_queue.rs @@ -167,7 +167,7 @@ impl<'queue, C: Pod> EventQueue<'queue, C> { } impl<'queue, C: Clone> EventQueue<'queue, C> { - pub(crate) fn push_back( + pub fn push_back( &mut self, mut event: Ev, maker_callback_info: Option<&C>, From 1efd26a765356f32892c33cf8901db1ed3ef4a5e Mon Sep 17 00:00:00 2001 From: zachanon Date: Thu, 8 Sep 2022 23:36:26 +0700 Subject: [PATCH 24/34] make public --- program/Cargo.lock | 1600 ++++++++++++++++++----------- program/src/state/event_queue.rs | 7 +- program/src/state/market_state.rs | 2 +- 3 files changed, 985 insertions(+), 624 deletions(-) diff --git a/program/Cargo.lock b/program/Cargo.lock index 418322b..c67b7d2 100644 --- a/program/Cargo.lock +++ b/program/Cargo.lock @@ -87,16 +87,16 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", "once_cell", "version_check", ] [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" dependencies = [ "memchr", ] @@ -107,6 +107,30 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" +[[package]] +name = "alloc-no-stdlib" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ef4730490ad1c4eae5c4325b2a95f521d023e5c885853ff7aca0a6a1631db3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "697ed7edc0f1711de49ce108c541623a0af97c6c60b2f6e2b65229847ac843c2" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + [[package]] name = "ansi_term" version = "0.12.1" @@ -118,9 +142,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.57" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc" +checksum = "b9a8f622bcf6ff3df478e9deba3e03e4e04b300f8e6a139e192c05fa3490afc7" [[package]] name = "arrayref" @@ -146,12 +170,65 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" +[[package]] +name = "asn1-rs" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time 0.3.14", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", +] + [[package]] name = "assert_matches" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-compression" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345fd392ab01f746c717b1357165b76f0b67a60192007b234058c9045fdcf695" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + [[package]] name = "async-mutex" version = "1.4.0" @@ -163,13 +240,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.53" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600" +checksum = "76464446b8bc32758d7e88ee1a804d9914cd9b1cb264c029899680b0be29826f" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -203,9 +280,9 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "base64ct" -version = "1.5.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dea908e7347a8c64e378c17e30ef880ad73e3b4498346b055c2c00ea342f3179" +checksum = "ea2b2456fd614d856680dcd9fcc660a51a820fa09daef2e49772b56a193c8474" [[package]] name = "bincode" @@ -257,9 +334,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ "generic-array", ] @@ -276,11 +353,11 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e738a4d372a24c4194250859a310db4a2c019d5da1a29445291bb4a40085c40c" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", + "proc-macro2 1.0.43", + "quote 1.0.21", "solana-program", "spl-name-service", - "syn 1.0.93", + "syn 1.0.99", ] [[package]] @@ -308,7 +385,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" dependencies = [ "borsh-derive", - "hashbrown", + "hashbrown 0.11.2", ] [[package]] @@ -320,8 +397,8 @@ dependencies = [ "borsh-derive-internal", "borsh-schema-derive-internal", "proc-macro-crate 0.1.5", - "proc-macro2 1.0.38", - "syn 1.0.93", + "proc-macro2 1.0.43", + "syn 1.0.99", ] [[package]] @@ -330,9 +407,9 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -341,9 +418,30 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", +] + +[[package]] +name = "brotli" +version = "3.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", ] [[package]] @@ -354,9 +452,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bumpalo" -version = "3.9.1" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "bv" @@ -370,22 +468,22 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.9.1" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdead85bdec19c194affaeeb670c0e41fe23de31459efd1c174d049269cf02cc" +checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562e382481975bc61d11275ac5e62a19abd00b0547d99516a415336f183dcd0e" +checksum = "1b9e1f5fa78f69496407a27ae9ed989e3c3b072310286f5ef385525e4cbc24a9" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -396,9 +494,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" +checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" [[package]] name = "bzip2" @@ -423,11 +521,10 @@ dependencies = [ [[package]] name = "caps" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61bf7211aad104ce2769ec05efcdfabf85ee84ac92461d142f22cf8badd0e54c" +checksum = "938c50180feacea622ef3b8f4a496057c868dcf8ac7a64d781dd8f3f51a9c143" dependencies = [ - "errno", "libc", "thiserror", ] @@ -449,23 +546,25 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.19" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" dependencies = [ - "libc", + "iana-time-zone", + "js-sys", "num-integer", "num-traits", "serde", - "time 0.1.43", + "time 0.1.44", + "wasm-bindgen", "winapi", ] [[package]] name = "chrono-humanize" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eddc119501d583fd930cb92144e605f44e0252c38dd89d9247fffa1993375cb" +checksum = "32dce1ea1988dbdf9f9815ff11425828523bd2a134ec0805d2ac8af26ee6096e" dependencies = [ "chrono", ] @@ -498,12 +597,37 @@ dependencies = [ "ansi_term", "atty", "bitflags", - "strsim", - "textwrap", + "strsim 0.8.0", + "textwrap 0.11.0", "unicode-width", "vec_map", ] +[[package]] +name = "clap" +version = "3.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b71c3ce99b7611011217b366d923f1d0a7e07a92bb2dbf1e84508c673ca3bd" +dependencies = [ + "atty", + "bitflags", + "clap_lex", + "indexmap", + "once_cell", + "strsim 0.10.0", + "termcolor", + "textwrap 0.15.0", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + [[package]] name = "combine" version = "3.8.1" @@ -519,14 +643,13 @@ dependencies = [ [[package]] name = "console" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28b32d32ca44b70c3e4acd7db1babf555fa026e385fb95f18028f88848b3c31" +checksum = "89eab4d20ce20cea182308bca13088fecea9c05f6776cf287205d41a0ed3c847" dependencies = [ "encode_unicode", "libc", "once_cell", - "regex", "terminal_size", "unicode-width", "winapi", @@ -582,9 +705,9 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] @@ -600,9 +723,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" dependencies = [ "cfg-if", "crossbeam-utils", @@ -610,9 +733,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -621,26 +744,26 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.8" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c" +checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "lazy_static", "memoffset", + "once_cell", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.8" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" dependencies = [ "cfg-if", - "lazy_static", + "once_cell", ] [[package]] @@ -651,9 +774,9 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" [[package]] name = "crypto-common" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ "generic-array", "typenum", @@ -703,6 +826,12 @@ dependencies = [ "rayon", ] +[[package]] +name = "data-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" + [[package]] name = "der" version = "0.5.1" @@ -712,6 +841,20 @@ dependencies = [ "const-oid", ] +[[package]] +name = "der-parser" +version = "8.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint 0.4.3", + "num-traits", + "rusticata-macros", +] + [[package]] name = "derivation-path" version = "0.2.0" @@ -720,9 +863,9 @@ checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" [[package]] name = "dialoguer" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8c8ae48e400addc32a8710c8d62d55cb84249a7d58ac4cd959daecfbaddc545" +checksum = "a92e7e37ecef6857fdc0c0c5d42fd5b0938e46590c2183cc92dd310a6d078eb1" dependencies = [ "console", "tempfile", @@ -744,7 +887,7 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" dependencies = [ - "block-buffer 0.10.2", + "block-buffer 0.10.3", "crypto-common", "subtle", ] @@ -779,6 +922,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "displaydoc" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" +dependencies = [ + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", +] + [[package]] name = "dlopen" version = "0.1.8" @@ -804,15 +958,21 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.5" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21e50f3adc76d6a43f5ed73b698a87d0760ca74617f60f7c3b879003536fdd28" +checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" + +[[package]] +name = "eager" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" [[package]] name = "ed25519" -version = "1.5.0" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d916019f70ae3a1faa1195685e290287f39207d38e6dfee727197cffcc002214" +checksum = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369" dependencies = [ "signature", ] @@ -840,7 +1000,7 @@ dependencies = [ "derivation-path", "ed25519-dalek", "hmac 0.12.1", - "sha2 0.10.2", + "sha2 0.10.5", ] [[package]] @@ -850,16 +1010,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c07b7cc9cd8c08d10db74fca3b20949b9b6199725c04a0cce6d543496098fcac" dependencies = [ "enum-ordinalize", - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "either" -version = "1.6.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" [[package]] name = "encode_unicode" @@ -878,22 +1038,22 @@ dependencies = [ [[package]] name = "enum-iterator" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" +checksum = "2953d1df47ac0eb70086ccabf0275aa8da8591a28bd358ee2b52bd9f9e3ff9e9" dependencies = [ "enum-iterator-derive", ] [[package]] name = "enum-iterator-derive" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" +checksum = "8958699f9359f0b04e691a13850d48b7de329138023876d07cbd024c2c820598" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -902,12 +1062,24 @@ version = "3.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2170fc0efee383079a8bdd05d6ea2a184d2a0f07a1c1dcabdb2fd5e9f24bc36c" dependencies = [ - "num-bigint", + "num-bigint 0.4.3", "num-traits", - "proc-macro2 1.0.38", - "quote 1.0.18", + "proc-macro2 1.0.43", + "quote 1.0.21", "rustc_version", - "syn 1.0.93", + "syn 1.0.99", +] + +[[package]] +name = "enum_dispatch" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eb359f1476bf611266ac1f5355bc14aeca37b299d0ebccc038ee7058891c9cb" +dependencies = [ + "once_cell", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -925,9 +1097,9 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -943,38 +1115,17 @@ dependencies = [ "termcolor", ] -[[package]] -name = "errno" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - [[package]] name = "event-listener" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" dependencies = [ "instant", ] @@ -987,25 +1138,23 @@ checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" [[package]] name = "filetime" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0408e2626025178a6a7f7ffc05a25bc47103229f19c113755de7bf63816290c" +checksum = "e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c" dependencies = [ "cfg-if", "libc", "redox_syscall", - "winapi", + "windows-sys", ] [[package]] name = "flate2" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39522e96686d38f4bc984b9198e3a0613264abaebaff2c5c918bfa6b6da09af" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" dependencies = [ - "cfg-if", "crc32fast", - "libc", "miniz_oxide", ] @@ -1017,19 +1166,18 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "matches", "percent-encoding", ] [[package]] name = "futures" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e" +checksum = "7f21eda599937fba36daeb58a22e8f5cee2d14c4a17b5b7739c7c8e5e3b8230c" dependencies = [ "futures-channel", "futures-core", @@ -1042,9 +1190,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +checksum = "30bdd20c28fadd505d0fd6712cdfcb0d4b5648baf45faef7f852afb2399bb050" dependencies = [ "futures-core", "futures-sink", @@ -1052,15 +1200,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +checksum = "4e5aa3de05362c3fb88de6531e6296e85cde7739cccad4b9dfeeb7f6ebce56bf" [[package]] name = "futures-executor" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +checksum = "9ff63c23854bee61b6e9cd331d523909f238fc7636290b96826e9cfa5faa00ab" dependencies = [ "futures-core", "futures-task", @@ -1069,38 +1217,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b" +checksum = "bbf4d2a7a308fd4578637c0b17c7e1c7ba127b8f6ba00b29f717e9655d85eb68" [[package]] name = "futures-macro" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512" +checksum = "42cd15d1c7456c04dbdf7e88bcd69760d74f3a798d6444e16974b505b0e62f17" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "futures-sink" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +checksum = "21b20ba5a92e727ba30e72834706623d94ac93a725410b6a6b6fbc1b07f7ba56" [[package]] name = "futures-task" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" +checksum = "a6508c467c73851293f390476d4491cf4d227dbabcd4170f3bb6044959b294f1" [[package]] name = "futures-util" -version = "0.3.21" +version = "0.3.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +checksum = "44fb6cb1be61cc1d2e43b262516aafcf63b241cffdb1d3fa115f91d9c7b09c90" dependencies = [ "futures-channel", "futures-core", @@ -1125,9 +1273,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" dependencies = [ "serde", "typenum", @@ -1159,13 +1307,15 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.10.2+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -1179,9 +1329,9 @@ dependencies = [ [[package]] name = "goblin" -version = "0.4.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32401e89c6446dcd28185931a01b1093726d0356820ac744023e6850689bf926" +checksum = "a7666983ed0dd8d21a6f6576ee00053ca0926fb281a5522577a4dbd0f1b54143" dependencies = [ "log", "plain", @@ -1190,9 +1340,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57" +checksum = "5ca32592cf21ac7ccab1825cd87f6c9b3d9022c44d086172ed0966bec8af30be" dependencies = [ "bytes", "fnv", @@ -1203,15 +1353,15 @@ dependencies = [ "indexmap", "slab", "tokio", - "tokio-util 0.7.1", + "tokio-util 0.7.2", "tracing", ] [[package]] name = "hash32" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4041af86e63ac4298ce40e5cca669066e75b6f1aa3390fe2561ffa5e1d9f4cc" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" dependencies = [ "byteorder", ] @@ -1225,6 +1375,21 @@ dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + [[package]] name = "hermit-abi" version = "0.1.19" @@ -1291,9 +1456,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb" +checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" dependencies = [ "bytes", "fnv", @@ -1302,9 +1467,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", "http", @@ -1313,9 +1478,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" @@ -1331,9 +1496,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.18" +version = "0.14.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2" +checksum = "02c929dc5c39e335a03c405292728118860721b10190d98c2a0f0efd5baafbac" dependencies = [ "bytes", "futures-channel", @@ -1366,13 +1531,26 @@ dependencies = [ "tokio-rustls", ] +[[package]] +name = "iana-time-zone" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c495f162af0bf17656d0014a0eded5f3cd2f365fdd204548c2869db89359dc7" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "js-sys", + "once_cell", + "wasm-bindgen", + "winapi", +] + [[package]] name = "idna" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] @@ -1401,12 +1579,12 @@ checksum = "5a9d968042a4902e08810946fc7cd5851eb75e80301342305af755ca06cb82ce" [[package]] name = "indexmap" -version = "1.8.1" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", ] [[package]] @@ -1462,9 +1640,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" +checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" [[package]] name = "jobserver" @@ -1477,9 +1655,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.57" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" dependencies = [ "wasm-bindgen", ] @@ -1501,9 +1679,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" +checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" [[package]] name = "lazy_static" @@ -1513,9 +1691,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.125" +version = "0.2.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b" +checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5" [[package]] name = "libloading" @@ -1577,15 +1755,15 @@ dependencies = [ [[package]] name = "linked-hash-map" -version = "0.5.4" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "lock_api" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +checksum = "9f80bf5aacaf25cbfc8210d1cfb718f2bf3b11c4c54e5afe36c236853a8ec390" dependencies = [ "autocfg", "scopeguard", @@ -1601,19 +1779,24 @@ dependencies = [ ] [[package]] -name = "lru" -version = "0.7.5" +name = "lz4" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32613e41de4c47ab04970c348ca7ae7382cf116625755af070b008a15516a889" +checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" dependencies = [ - "hashbrown", + "libc", + "lz4-sys", ] [[package]] -name = "matches" -version = "0.1.9" +name = "lz4-sys" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +dependencies = [ + "cc", + "libc", +] [[package]] name = "memchr" @@ -1623,9 +1806,9 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memmap2" -version = "0.5.3" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057a3db23999c867821a7a59feb06a578fcb03685e983dff90daf9e7d24ac08f" +checksum = "95af15f345b17af2efc8ead6080fb8bc376f8cec1b35277b935637595fe77498" dependencies = [ "libc", ] @@ -1657,11 +1840,17 @@ version = "0.3.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" -version = "0.5.1" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" dependencies = [ "adler", ] @@ -1679,18 +1868,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "mio" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799" -dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys", -] - [[package]] name = "miow" version = "0.3.7" @@ -1716,24 +1893,33 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "nix" -version = "0.23.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f866317acbd3a240710c63f065ffb1e4fd466259045ccb504130b7f668f35c6" +checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" dependencies = [ "bitflags", - "cc", "cfg-if", "libc", "memoffset", ] +[[package]] +name = "nom" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +dependencies = [ + "memchr", + "minimal-lexical", +] + [[package]] name = "ntapi" version = "0.3.7" @@ -1743,35 +1929,93 @@ dependencies = [ "winapi", ] +[[package]] +name = "num" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +dependencies = [ + "num-bigint 0.2.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-bigint" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ "autocfg", - "num-integer", "num-traits", ] [[package]] -name = "num-derive" -version = "0.3.3" +name = "num-iter" +version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "autocfg", + "num-integer", + "num-traits", ] [[package]] -name = "num-integer" -version = "0.1.45" +name = "num-rational" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" dependencies = [ "autocfg", + "num-bigint 0.2.6", + "num-integer", "num-traits", ] @@ -1809,10 +2053,10 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" dependencies = [ - "proc-macro-crate 1.1.3", - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro-crate 1.2.1", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -1830,11 +2074,20 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +[[package]] +name = "oid-registry" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d4bda43fd1b844cbc6e6e54b5444e2b1bc7838bce59ad205902cccbb26d6761" +dependencies = [ + "asn1-rs", +] + [[package]] name = "once_cell" -version = "1.10.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" +checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0" [[package]] name = "opaque-debug" @@ -1850,13 +2103,15 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "opentelemetry" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf9b1c4e9a6c4de793c632496fa490bdc0e1eea73f0c91394f7b6990935d22" +checksum = "6105e89802af13fdf48c49d7646d3b533a70e536d818aae7e78ba0433d01acb8" dependencies = [ "async-trait", "crossbeam-channel", - "futures", + "futures-channel", + "futures-executor", + "futures-util", "js-sys", "lazy_static", "percent-encoding", @@ -1865,38 +2120,68 @@ dependencies = [ "thiserror", ] +[[package]] +name = "os_str_bytes" +version = "6.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ff7415e9ae3fff1225851df9e0d9e4e5479f947619774677a63572e55e80eff" + [[package]] name = "ouroboros" -version = "0.14.2" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71643f290d126e18ac2598876d01e1d57aed164afc78fdb6e2a0c6589a1f6662" +checksum = "7f56a2b0aa5fc88687aaf63e85a7974422790ce3419a2e1a15870f8a55227822" dependencies = [ "aliasable", "ouroboros_macro", - "stable_deref_trait", ] [[package]] name = "ouroboros_macro" -version = "0.14.2" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9a247206016d424fe8497bc611e510887af5c261fbbf977877c4bb55ca4d82" +checksum = "6c40641e27d0eb38cae3dee081d920104d2db47a8e853c1a592ef68d33f5ebf4" dependencies = [ "Inflector", "proc-macro-error", - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "parking_lot" -version = "0.12.0" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.5", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core", + "parking_lot_core 0.9.3", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall", + "smallvec", + "winapi", ] [[package]] @@ -1923,46 +2208,55 @@ dependencies = [ [[package]] name = "pbkdf2" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271779f35b581956db91a3e55737327a03aa051e90b1c47aeb189508533adfd7" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ "digest 0.10.3", ] [[package]] name = "pem" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9a3b09a20e374558580a4914d3b7d89bd61b954a5a5e1dcbea98753addb1947" +checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4" dependencies = [ "base64 0.13.0", ] [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "percentage" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "2fd23b938276f14057220b707937bcb42fa76dda7560e57a2da30cb52d557937" +dependencies = [ + "num", +] [[package]] name = "pin-project" -version = "1.0.10" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.10" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -2029,10 +2323,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.1.3" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" dependencies = [ + "once_cell", "thiserror", "toml", ] @@ -2044,9 +2339,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", "version_check", ] @@ -2056,8 +2351,8 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", + "proc-macro2 1.0.43", + "quote 1.0.21", "version_check", ] @@ -2072,11 +2367,11 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.38" +version = "1.0.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9027b48e9d4c9175fa2218adf3557f91c1137021739951d4932f5f8268ac48aa" +checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" dependencies = [ - "unicode-xid 0.2.3", + "unicode-ident", ] [[package]] @@ -2094,9 +2389,9 @@ dependencies = [ [[package]] name = "pyth-sdk-solana" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e37614ced8a0a61637111f714a08811fb7a677df3719c0a5b261e1d13d50de6" +checksum = "2aed1a0b714f91cb104cc025eb806782e30aa63c23259724e79efd609294a2c9" dependencies = [ "borsh", "borsh-derive", @@ -2120,9 +2415,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d147472bc9a09f13b06c044787b6683cdffa02e2865b7f0fb53d67c49ed2988e" +checksum = "5b435e71d9bfa0d8889927231970c51fb89c58fa63bffcab117c9c7a41e5ef8f" dependencies = [ "bytes", "futures-channel", @@ -2139,9 +2434,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.8.2" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "359c5eb33845f3ee05c229e65f87cdbc503eea394964b8f1330833d460b4ff3e" +checksum = "3fce546b9688f767a57530652488420d419a8b1f44a478b451c3d1ab6d992a55" dependencies = [ "bytes", "fxhash", @@ -2159,13 +2454,12 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df185e5e5f7611fa6e628ed8f9633df10114b03bbaecab186ec55822c44ac727" +checksum = "9f832d8958db3e84d2ec93b5eb2272b45aa23cf7f8fe6e79f578896f4e6c231b" dependencies = [ "futures-util", "libc", - "mio 0.7.14", "quinn-proto", "socket2", "tokio", @@ -2183,11 +2477,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.18" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" +checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" dependencies = [ - "proc-macro2 1.0.38", + "proc-macro2 1.0.43", ] [[package]] @@ -2201,7 +2495,6 @@ dependencies = [ "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc", - "rand_pcg", ] [[package]] @@ -2250,7 +2543,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", ] [[package]] @@ -2262,15 +2555,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - [[package]] name = "rand_xoshiro" version = "0.6.0" @@ -2282,9 +2566,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd249e82c21598a9a426a4e00dd7adc1d640b22445ec8545feef801d1a74c221" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" dependencies = [ "autocfg", "crossbeam-deque", @@ -2294,9 +2578,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f51245e1e62e1f1629cbfec37b5793bbabcaeb90f30e94d2ba03564687353e4" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -2306,21 +2590,21 @@ dependencies = [ [[package]] name = "rcgen" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fa2d386df8533b02184941c76ae2e0d0c1d053f5d43339169d80f21275fc5e" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" dependencies = [ "pem", "ring", - "time 0.3.9", + "time 0.3.14", "yasna", ] [[package]] name = "redox_syscall" -version = "0.2.13" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] @@ -2331,16 +2615,16 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.6", + "getrandom 0.2.7", "redox_syscall", "thiserror", ] [[package]] name = "regex" -version = "1.5.5" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" +checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" dependencies = [ "aho-corasick", "memchr", @@ -2349,9 +2633,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.25" +version = "0.6.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" [[package]] name = "remove_dir_all" @@ -2364,10 +2648,11 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.11.10" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46a1f7aa4f35e5e8b4160449f51afc758f0ce6454315a9fa7d0d113e958c41eb" +checksum = "b75aa69a3f06bbcc66ede33af2af253c6f7a86b1ca0033f60c580a27074fbf92" dependencies = [ + "async-compression", "base64 0.13.0", "bytes", "encoding_rs", @@ -2386,12 +2671,14 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustls", - "rustls-pemfile 0.3.0", + "rustls-pemfile 1.0.1", "serde", "serde_json", "serde_urlencoded", "tokio", "tokio-rustls", + "tokio-util 0.7.2", + "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", @@ -2448,11 +2735,20 @@ dependencies = [ "semver", ] +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + [[package]] name = "rustls" -version = "0.20.4" +version = "0.20.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fbfeb8d0ddb84706bc597a5574ab8912817c52a397f819e5b614e2265206921" +checksum = "5aab8ee6c7097ed6057f43c187a62418d0c05a4bd5f18b3571db50ee0f9ce033" dependencies = [ "log", "ring", @@ -2467,7 +2763,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" dependencies = [ "openssl-probe", - "rustls-pemfile 1.0.0", + "rustls-pemfile 1.0.1", "schannel", "security-framework", ] @@ -2483,33 +2779,24 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" -dependencies = [ - "base64 0.13.0", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7522c9de787ff061458fe9a829dc790a3f5b22dc571694fc5883f448b94d9a9" +checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" dependencies = [ "base64 0.13.0", ] [[package]] name = "rustversion" -version = "1.0.6" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f" +checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" [[package]] name = "ryu" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" +checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" [[package]] name = "same-file" @@ -2522,19 +2809,19 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.19" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" dependencies = [ "lazy_static", - "winapi", + "windows-sys", ] [[package]] name = "schemars" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b5a3c80cea1ab61f4260238409510e814e38b4b563c06044edf91e7dc070e3" +checksum = "1847b767a3d62d95cbf3d8a9f0e421cf57a0d8aa4f411d4b16525afb0284d4ed" dependencies = [ "dyn-clone", "schemars_derive", @@ -2544,14 +2831,14 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ae4dce13e8614c46ac3c38ef1c0d668b101df6ac39817aebdaa26642ddae9b" +checksum = "af4d7e1b012cb3d9129567661a63755ea4b8a7386d339dc945ae187e403c6743" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", + "proc-macro2 1.0.43", + "quote 1.0.21", "serde_derive_internals", - "syn 1.0.93", + "syn 1.0.99", ] [[package]] @@ -2562,22 +2849,22 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scroll" -version = "0.10.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec" +checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" dependencies = [ "scroll_derive", ] [[package]] name = "scroll_derive" -version = "0.10.5" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaaae8f38bb311444cfb7f1979af0bc9240d95795f75f9ceddf6a59b79ceffa0" +checksum = "bdbda6ac5cd1321e724fa9cee216f3a61885889b896f073b8f82322789c5250e" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -2592,9 +2879,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" dependencies = [ "bitflags", "core-foundation", @@ -2615,55 +2902,55 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.9" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cb243bdfdb5936c8dc3c45762a19d12ab4550cdc753bc247637d4ec35a040fd" +checksum = "93f6841e709003d68bb2deee8c343572bf446003ec20a583e76f7b15cebf3711" [[package]] name = "serde" -version = "1.0.137" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" +checksum = "0f747710de3dcd43b88c9168773254e809d8ddbdf9653b84e2554ab219f17860" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.6" +version = "0.11.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212e73464ebcde48d723aa02eb270ba62eff38a9b732df31f33f1b4e145f3a54" +checksum = "cfc50e8183eeeb6178dcb167ae34a8051d63535023ae38b5d8d12beae193d37b" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.137" +version = "1.0.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" +checksum = "94ed3a816fb1d101812f83e789f888322c34e291f894f19590dc310963e87a00" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "serde_derive_internals" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dbab34ca63057a1f15280bdf3c39f2b1eb1b54c17e98360e511637aef7418c6" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "serde_json" -version = "1.0.81" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ "itoa", "ryu", @@ -2684,9 +2971,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.8.24" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707d15895415db6628332b737c838b88c598522e4dc70647e59b72312924aebc" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" dependencies = [ "indexmap", "ryu", @@ -2720,9 +3007,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.2" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +checksum = "cf9db03534dff993187064c4e0c05a5708d2a9728ace9a8959b77bedf415dac5" dependencies = [ "cfg-if", "cpufeatures", @@ -2743,9 +3030,9 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.1" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881bf8156c87b6301fc5ca6b27f11eeb2761224c7081e69b409d5a1951a70c86" +checksum = "eaedf34ed289ea47c2b741bb72e5357a209512d67bcd4bda44359e5bf0470f56" dependencies = [ "digest 0.10.3", "keccak", @@ -2771,9 +3058,9 @@ dependencies = [ [[package]] name = "signature" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4" +checksum = "f0ea32af43239f0d353a7dd75a22d94c329c8cdaafdcb4c1c1335aa10c298a4a" [[package]] name = "sized-chunks" @@ -2787,21 +3074,24 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" +checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" [[package]] name = "socket2" -version = "0.4.4" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" dependencies = [ "libc", "winapi", @@ -2809,9 +3099,9 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f895bda8ab988f3ba439f939470a1709b55e70c640d6b4d1a7fa5ecd9ac6018f" +checksum = "e2a9294637f3d466ade226190781dd6eb1801ce2c00aee84e3895d7b1babe469" dependencies = [ "Inflector", "base64 0.13.0", @@ -2833,9 +3123,9 @@ dependencies = [ [[package]] name = "solana-address-lookup-table-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305bd2aa07a7d6166a75ddcc9241016ec502adfc3e7566bb7488ec4cb4fc90d9" +checksum = "299c5c7c987ab0c904eeb9d147dafcd753a6c6c574880915a00729aa403a9b89" dependencies = [ "bincode", "bytemuck", @@ -2854,9 +3144,9 @@ dependencies = [ [[package]] name = "solana-banks-client" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6030ac296d056a9f52db3afa49eaca19801a4098997805bd7500eac818cf8210" +checksum = "5dd9493e6dba538a2979f82571bec3c91028fa7c77177b8d12b1c8c0218761a2" dependencies = [ "borsh", "futures", @@ -2871,9 +3161,9 @@ dependencies = [ [[package]] name = "solana-banks-interface" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeeca4dfcdf4512482b082e070db23d3d26748e15e6a31b7a7c1067a7fd2f80f" +checksum = "b0160d830a8a037b3bfbbdedb28d70b0378265325b9c8b0eb7bcdf4c610bba15" dependencies = [ "serde", "solana-sdk", @@ -2882,14 +3172,15 @@ dependencies = [ [[package]] name = "solana-banks-server" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f71f7c223214a097b033dbdba24a753b7c458fd3a5567220e25829f9dbed76e" +checksum = "d3c7a968940d4d51477dd532d989f1ecafa49e582cc4fa0234c02db8ea020d5e" dependencies = [ "bincode", "crossbeam-channel", "futures", "solana-banks-interface", + "solana-client", "solana-runtime", "solana-sdk", "solana-send-transaction-service", @@ -2901,9 +3192,9 @@ dependencies = [ [[package]] name = "solana-bpf-loader-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dfa6e63e026daa60061c5f380509b502b9624f15a96cee4976cfccff6750355" +checksum = "e631b87d8deca0db997fa0a3a44b366c490302ebafb94c52542d754369e6fd7b" dependencies = [ "bincode", "byteorder", @@ -2913,16 +3204,16 @@ dependencies = [ "solana-metrics", "solana-program-runtime", "solana-sdk", - "solana-zk-token-sdk 1.10.12", + "solana-zk-token-sdk", "solana_rbpf", "thiserror", ] [[package]] name = "solana-bucket-map" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80880add6d22db8e0ea98968ee3d5b73008c0bf0eacad1978aafbef1164e3f25" +checksum = "68bc150efa6678ae3333a2ea83dc25accf9a600637a56217b4cc7d8374952d8d" dependencies = [ "log", "memmap2", @@ -2935,12 +3226,12 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d15c654581ce751047450611f36846e7572a806113a27f91335e3b54e8e489" +checksum = "53d65d5edb4dd03bed3486793ae444ca29bd00add6d1569ae0bee969930983fb" dependencies = [ "chrono", - "clap", + "clap 2.34.0", "rpassword", "solana-perf", "solana-remote-wallet", @@ -2953,9 +3244,9 @@ dependencies = [ [[package]] name = "solana-cli-config" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "959e2367d23fa9144b2208ff8b21d96ae59ed1b09e57f13b1c55e1b99b0a4fba" +checksum = "e05cd969be3f53f2541b7b3b2c4ca6a3a8e1fe97b864a691f26b19923339530b" dependencies = [ "dirs-next", "lazy_static", @@ -2969,9 +3260,9 @@ dependencies = [ [[package]] name = "solana-client" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b1b76d4221490b03b78b22ad32f96309592793a9f1ad6b4e2dacabb866521fe" +checksum = "4073b45755121b97458d0fc65c653129df594a2f3bdc72af82534f903c736530" dependencies = [ "async-mutex", "async-trait", @@ -2979,16 +3270,17 @@ dependencies = [ "bincode", "bs58", "bytes", - "clap", + "clap 2.34.0", "crossbeam-channel", + "enum_dispatch", "futures", "futures-util", + "indexmap", "indicatif", "itertools 0.10.3", "jsonrpc-core", "lazy_static", "log", - "lru", "quinn", "quinn-proto", "rand 0.7.3", @@ -3011,6 +3303,7 @@ dependencies = [ "solana-transaction-status", "solana-version", "solana-vote-program", + "spl-token-2022", "thiserror", "tokio", "tokio-stream", @@ -3021,9 +3314,9 @@ dependencies = [ [[package]] name = "solana-compute-budget-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5435b7dbe5873d5aa6050cdbb7fdc2d6e3c0315a0bc1b191dfade44ffa49b7e" +checksum = "492627aeb6e4633ec1676266198d405f2170b666e763fd44300ede30f57efe27" dependencies = [ "solana-program-runtime", "solana-sdk", @@ -3031,9 +3324,9 @@ dependencies = [ [[package]] name = "solana-config-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a123ddaa07afaf5cfe83a359c49a78e739e4c6d28f534ef9b90a201bf12be47e" +checksum = "ae5210b8f76d8b04c0020cff054babd62a9325bfe3076f373e355a6ec2c64b45" dependencies = [ "bincode", "chrono", @@ -3045,13 +3338,13 @@ dependencies = [ [[package]] name = "solana-faucet" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87b5b4d4ba0161e4d46b71844d8feb7824fb8fb5b82e3e8357708277afa119b1" +checksum = "43008e5d503c690df6c743ace82d7cbfd765df88f38743bc837cbcaf36413f0a" dependencies = [ "bincode", "byteorder", - "clap", + "clap 2.34.0", "crossbeam-channel", "log", "serde", @@ -3069,43 +3362,55 @@ dependencies = [ [[package]] name = "solana-frozen-abi" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab258b4a9746b205eece4ddd7e28267b4442e9c9d4ebffb84318352326340413" +checksum = "9883042ea10896bee61e045810da3c0a7684b6c375abec80a73687a3468d156b" dependencies = [ + "ahash", + "blake3", + "block-buffer 0.9.0", "bs58", "bv", + "byteorder", + "cc", + "either", "generic-array", + "getrandom 0.1.16", + "hashbrown 0.12.3", "im", "lazy_static", "log", "memmap2", + "once_cell", + "rand_core 0.6.3", "rustc_version", "serde", "serde_bytes", "serde_derive", - "sha2 0.10.2", + "serde_json", + "sha2 0.10.5", "solana-frozen-abi-macro", + "subtle", "thiserror", ] [[package]] name = "solana-frozen-abi-macro" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda321c32c7018afd8477ef509992473c4a659b8cc97596f6280df45364a2048" +checksum = "e820520e6fa2697960535ede69b8db5bb02d9055554fdead7dc50220f70bf470" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", + "proc-macro2 1.0.43", + "quote 1.0.21", "rustc_version", - "syn 1.0.93", + "syn 1.0.99", ] [[package]] name = "solana-logger" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0abc5fc566904cd626c7c55f26292c2cd06571c3edca2a3618694632a276a46" +checksum = "c06a738fbb438f0154ac30f177fb6e68dace34c0fc7177608792da37d2c6ee96" dependencies = [ "env_logger", "lazy_static", @@ -3114,9 +3419,9 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83e609c677ae3a6269b9551e7428fda37b644d867dc6763ca1940d70d528cfd0" +checksum = "11c2da8d3b01167a17042ad7d8fafa8f16b37e42a6a7cd133493d2c030b792ae" dependencies = [ "log", "solana-sdk", @@ -3124,9 +3429,9 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3c48f1f301b6d084cca58adfdcf6aacf9d333a80d84133a2a10636469e3755" +checksum = "447adfe0de4c39ab9fbad1ffeedef6807572c1bea223fb7786e7e9d5936e4aeb" dependencies = [ "crossbeam-channel", "gethostname", @@ -3138,12 +3443,12 @@ dependencies = [ [[package]] name = "solana-net-utils" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413acbf96bfea2aaf387a5162fc65e2171dcd14af8c97116b58b5cdeaa5c80aa" +checksum = "71b75e7416d2e02a73ae91b1930e671a5390ca9a0859d5208349977a9cd8efcc" dependencies = [ "bincode", - "clap", + "clap 3.2.20", "crossbeam-channel", "log", "nix", @@ -3160,9 +3465,9 @@ dependencies = [ [[package]] name = "solana-perf" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0aa32ade8b1d8ca1ffa3db2aa5b1f3d119a5092f74424c6b4253b83bc8d8392" +checksum = "a8575843ad9c3b71ae5ce208221a5e28f6a7d66e2c6b1ac6c9fd0127f2bf28d9" dependencies = [ "ahash", "bincode", @@ -3187,9 +3492,9 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0543a6c96b49062fb0bcd691c609e558f01994e9a56d66fd7448a9f683b3be9" +checksum = "413acde1b294751b1f1526ec6d3850ebc9be48009a186eb9ba47af00df406188" dependencies = [ "base64 0.13.0", "bincode", @@ -3200,41 +3505,49 @@ dependencies = [ "bs58", "bv", "bytemuck", + "cc", "console_error_panic_hook", "console_log", "curve25519-dalek", - "getrandom 0.1.16", + "getrandom 0.2.7", "itertools 0.10.3", "js-sys", "lazy_static", + "libc", "libsecp256k1", "log", + "memoffset", "num-derive", "num-traits", - "parking_lot", + "parking_lot 0.12.1", "rand 0.7.3", + "rand_chacha 0.2.2", "rustc_version", "rustversion", "serde", "serde_bytes", "serde_derive", - "sha2 0.10.2", - "sha3 0.10.1", + "serde_json", + "sha2 0.10.5", + "sha3 0.10.4", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-sdk-macro", "thiserror", + "tiny-bip39", "wasm-bindgen", + "zeroize", ] [[package]] name = "solana-program-runtime" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4130e19e76a2cdfda2c510e7f5653bb6c7eb4750a76148a136f82afeb5466313" +checksum = "183237d0d1224b1142a48a901a339943b712b94cb0c241143d34c0739dabd801" dependencies = [ "base64 0.13.0", "bincode", + "eager", "enum-iterator", "itertools 0.10.3", "libc", @@ -3247,16 +3560,18 @@ dependencies = [ "solana-frozen-abi", "solana-frozen-abi-macro", "solana-measure", + "solana-metrics", "solana-sdk", "thiserror", ] [[package]] name = "solana-program-test" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e720c57bd0daf6f8b852c9e730126f58badf0a2c81b892ab9867b14a11bf89a4" +checksum = "1c755c663956c12afdf9ea0eacc8bc60de361cbfe0b8066bb2c16e08312df161" dependencies = [ + "assert_matches", "async-trait", "base64 0.13.0", "bincode", @@ -3277,9 +3592,9 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "853273fe30026ff4adbced44672347f8093178331814e256dab1c4ebea44eb18" +checksum = "0a32e14c782afc12921ad473fd6b9e3a676b5080b2a77078903e457c53c9bbd0" dependencies = [ "lazy_static", "num_cpus", @@ -3287,16 +3602,16 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86657ae276213810aa80748a1b09ee7bc0b4d5c73606f0fd54e5d6e957191a8" +checksum = "99b90262455e23600fa6acb44e156b1103dd42483983a465d1631e16514766b0" dependencies = [ "console", "dialoguer", "log", "num-derive", "num-traits", - "parking_lot", + "parking_lot 0.12.1", "qstring", "semver", "solana-sdk", @@ -3306,9 +3621,9 @@ dependencies = [ [[package]] name = "solana-runtime" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a5dc8698f81eadbec9eca68f84bb570bf3d8082effcd84adb7080b96fa523a9" +checksum = "24fbbe293b917570e7f9540f87c0868b835e80008fbef0d6b359b36fefe992fb" dependencies = [ "arrayref", "bincode", @@ -3327,10 +3642,12 @@ dependencies = [ "itertools 0.10.3", "lazy_static", "log", + "lz4", "memmap2", "num-derive", "num-traits", "num_cpus", + "once_cell", "ouroboros", "rand 0.7.3", "rayon", @@ -3352,7 +3669,9 @@ dependencies = [ "solana-stake-program", "solana-vote-program", "solana-zk-token-proof-program", - "solana-zk-token-sdk 1.10.12", + "solana-zk-token-sdk", + "strum", + "strum_macros", "symlink", "tar", "tempfile", @@ -3362,9 +3681,9 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6c2ce8c90257d41a69abc2dbc757075898bc5385e739dcf15dbd0937f7fce3" +checksum = "97f5cb9ab455292ed026ecabd4e440411dd6bd419a068f5a72a0a1a74c9b95ad" dependencies = [ "assert_matches", "base64 0.13.0", @@ -3389,7 +3708,7 @@ dependencies = [ "memmap2", "num-derive", "num-traits", - "pbkdf2 0.10.1", + "pbkdf2 0.11.0", "qstring", "rand 0.7.3", "rand_chacha 0.2.2", @@ -3399,8 +3718,8 @@ dependencies = [ "serde_bytes", "serde_derive", "serde_json", - "sha2 0.10.2", - "sha3 0.10.1", + "sha2 0.10.5", + "sha3 0.10.4", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-logger", @@ -3413,22 +3732,22 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "515995f994c9750b5908d635b47672f98aee8ea65a422ea622d553a69a6fbc7b" +checksum = "65de9f24bb8c335992e7d627c0c4570138c9539bb298eecd4af7c01183db520b" dependencies = [ "bs58", - "proc-macro2 1.0.38", - "quote 1.0.18", + "proc-macro2 1.0.43", + "quote 1.0.21", "rustversion", - "syn 1.0.93", + "syn 1.0.99", ] [[package]] name = "solana-send-transaction-service" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee12cf20158af0a3f916ed32a9c3086c59746bc5dc6aac98c9e841cd31ea2a3" +checksum = "098ad0fd1722a0cbfe5c942e0a05ca1a3afe93a7d7321a18e11502009d2889d3" dependencies = [ "crossbeam-channel", "log", @@ -3441,9 +3760,9 @@ dependencies = [ [[package]] name = "solana-stake-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccc419090697ee18bf236f0a3d2e3bb905dc43095955db81c76b574d2a9df684" +checksum = "3d22df7d5d245928f740fb9afffbe7d56c2446db5cb3542001b762ca1ad3a108" dependencies = [ "bincode", "log", @@ -3464,18 +3783,20 @@ dependencies = [ [[package]] name = "solana-streamer" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34661b8e4c31b1c640922e8b88b5a8245dbe398e7605d60cb7f9f39c59823ba0" +checksum = "e1cae451f23ba92db67875c49d2d62022d4ca1be0640a17b3ed57fe7c7091772" dependencies = [ "crossbeam-channel", "futures-util", "histogram", + "indexmap", "itertools 0.10.3", "libc", "log", "nix", "pem", + "percentage", "pkcs8", "quinn", "rand 0.7.3", @@ -3486,13 +3807,14 @@ dependencies = [ "solana-sdk", "thiserror", "tokio", + "x509-parser", ] [[package]] name = "solana-transaction-status" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0512229e76b136b8430e7b9bca323e587306125dbd632332506171fa1d85c01a" +checksum = "eee5938770f8b003e0fa4d89f2e2174c3dff56208820d7ffdb5fe2b9b13e489d" dependencies = [ "Inflector", "base64 0.13.0", @@ -3507,7 +3829,6 @@ dependencies = [ "solana-account-decoder", "solana-measure", "solana-metrics", - "solana-runtime", "solana-sdk", "solana-vote-program", "spl-associated-token-account", @@ -3519,12 +3840,13 @@ dependencies = [ [[package]] name = "solana-version" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b694f307451d9db9c383d804db192082f7899901d64555ccb9c1b5231ac6f3" +checksum = "ad8026ea74e28a46905b4743129d6cf8f34535414fd01fa6feff190c91fb15df" dependencies = [ "log", "rustc_version", + "semver", "serde", "serde_derive", "solana-frozen-abi", @@ -3534,9 +3856,9 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52481154607c40c22fbf098a9eb63119c554dfa9160746bc5a9f5a174ae1c018" +checksum = "c8c43f4a98901cf9b81c7ef84981672f0e9cb51faab7a221797f0a2371868b69" dependencies = [ "bincode", "log", @@ -3555,9 +3877,9 @@ dependencies = [ [[package]] name = "solana-zk-token-proof-program" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d8c4eaae1222fe45f4bcc31e85a37d192a2e3ec641c2cee8c18f0d1fdd015" +checksum = "6297d34c58547fea47779a61cbb2fe6f6aaf8afc24f02af35703e04252cb1ca5" dependencies = [ "bytemuck", "getrandom 0.1.16", @@ -3565,44 +3887,14 @@ dependencies = [ "num-traits", "solana-program-runtime", "solana-sdk", - "solana-zk-token-sdk 1.10.12", -] - -[[package]] -name = "solana-zk-token-sdk" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b149253f9ed1afb68b3161b53b62b637d0dd7a3b328dffdc8bb5878d48358e" -dependencies = [ - "aes-gcm-siv", - "arrayref", - "base64 0.13.0", - "bincode", - "bytemuck", - "byteorder", - "cipher 0.3.0", - "curve25519-dalek", - "getrandom 0.1.16", - "lazy_static", - "merlin", - "num-derive", - "num-traits", - "rand 0.7.3", - "serde", - "serde_json", - "sha3 0.9.1", - "solana-program", - "solana-sdk", - "subtle", - "thiserror", - "zeroize", + "solana-zk-token-sdk", ] [[package]] name = "solana-zk-token-sdk" -version = "1.10.12" +version = "1.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b92ba12ecc8cd2574a8ea57f3ccedd2a346cab03f1bf4224e927519c6d151b" +checksum = "b06109ff5d374ff6b9e7accf2e6cb1adf464de3640ab0469661b0c6a85315b08" dependencies = [ "aes-gcm-siv", "arrayref", @@ -3630,9 +3922,9 @@ dependencies = [ [[package]] name = "solana_rbpf" -version = "0.2.24" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41e138f6d6d4eb6a65f8e9f01ca620bc9907d79648d5038a69dd3f07b6ed3f1f" +checksum = "80a28c5dfe7e8af38daa39d6561c8e8b9ed7a2f900951ebe7362ad6348d36c73" dependencies = [ "byteorder", "combine", @@ -3640,11 +3932,10 @@ dependencies = [ "hash32", "libc", "log", - "rand 0.7.3", + "rand 0.8.5", "rustc-demangle", "scroll", "thiserror", - "time 0.1.43", ] [[package]] @@ -3665,13 +3956,18 @@ dependencies = [ [[package]] name = "spl-associated-token-account" -version = "1.0.5" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b013067447a1396303ddfc294f36e3d260a32f8a16c501c295bcdc7de39b490" +checksum = "16a33ecc83137583902c3e13c02f34151c8b2f2b74120f9c2b3ff841953e083d" dependencies = [ + "assert_matches", "borsh", + "num-derive", + "num-traits", "solana-program", "spl-token", + "spl-token-2022", + "thiserror", ] [[package]] @@ -3698,11 +3994,12 @@ dependencies = [ [[package]] name = "spl-token" -version = "3.3.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc67166ef99d10c18cb5e9c208901e6d8255c6513bb1f877977eba48e6cc4fb" +checksum = "8e85e168a785e82564160dcb87b2a8e04cee9bfd1f4d488c729d53d6a4bd300d" dependencies = [ "arrayref", + "bytemuck", "num-derive", "num-traits", "num_enum", @@ -3712,9 +4009,9 @@ dependencies = [ [[package]] name = "spl-token-2022" -version = "0.2.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fce48c69350134e8678de5c0956a531b7de586b28eebdddc03211ceec0660983" +checksum = "f0a97cbf60b91b610c846ccf8eecca96d92a24a19ffbf9fe06cd0c84e76ec45e" dependencies = [ "arrayref", "bytemuck", @@ -3722,18 +4019,12 @@ dependencies = [ "num-traits", "num_enum", "solana-program", - "solana-zk-token-sdk 0.8.1", + "solana-zk-token-sdk", "spl-memo", "spl-token", "thiserror", ] -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - [[package]] name = "static_assertions" version = "1.1.0" @@ -3746,6 +4037,34 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck", + "proc-macro2 1.0.43", + "quote 1.0.21", + "rustversion", + "syn 1.0.99", +] + [[package]] name = "subtle" version = "2.4.1" @@ -3771,13 +4090,13 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.93" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04066589568b72ec65f42d65a1a52436e954b168773148893c020269563decf2" +checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "unicode-xid 0.2.3", + "proc-macro2 1.0.43", + "quote 1.0.21", + "unicode-ident", ] [[package]] @@ -3786,9 +4105,9 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", "unicode-xid 0.2.3", ] @@ -3805,9 +4124,9 @@ dependencies = [ [[package]] name = "tarpc" -version = "0.27.2" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b85d0a9369a919ba0db919b142a2b704cd207dfc676f7a43c2d105d0bc225487" +checksum = "1c38a012bed6fb9681d3bf71ffaa4f88f3b4b9ed3198cda6e4c8462d24d4bb80" dependencies = [ "anyhow", "fnv", @@ -3822,7 +4141,7 @@ dependencies = [ "thiserror", "tokio", "tokio-serde", - "tokio-util 0.6.9", + "tokio-util 0.6.10", "tracing", "tracing-opentelemetry", ] @@ -3833,9 +4152,9 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee42b4e559f17bce0385ebf511a7beb67d5cc33c12c96b7f4e9789919d9c10f" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -3880,24 +4199,30 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "textwrap" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" + [[package]] name = "thiserror" -version = "1.0.31" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +checksum = "8c1b05ca9d106ba7d2e31a9dab4a64e7be2cce415321966ea3132c49a656e252" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.31" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +checksum = "e8f2591983642de85c921015f3f070c665a197ed69e417af436115e3a1407487" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -3911,24 +4236,33 @@ dependencies = [ [[package]] name = "time" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" dependencies = [ "libc", + "wasi 0.10.0+wasi-snapshot-preview1", "winapi", ] [[package]] name = "time" -version = "0.3.9" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd" +checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" dependencies = [ + "itoa", "libc", "num_threads", + "time-macros", ] +[[package]] +name = "time-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792" + [[package]] name = "tiny-bip39" version = "0.8.2" @@ -3965,33 +4299,33 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" [[package]] name = "tokio" -version = "1.18.2" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4903bf0427cf68dddd5aa6a93220756f8be0c34fcfa9f5e6191e103e15a31395" +checksum = "b9d0183f6f6001549ab68f8c7585093bb732beefbcf6d23a10b9b95c73a1dd49" dependencies = [ + "autocfg", "bytes", "libc", "memchr", - "mio 0.8.3", + "mio", "num_cpus", "once_cell", - "parking_lot", + "parking_lot 0.11.2", "pin-project-lite", "signal-hook-registry", - "socket2", "tokio-macros", "winapi", ] [[package]] name = "tokio-macros" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] @@ -4023,9 +4357,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" +checksum = "df54d54117d6fdc4e4fea40fe1e4e566b3505700e148a6827e59b34b0d2600d9" dependencies = [ "futures-core", "pin-project-lite", @@ -4034,9 +4368,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.17.1" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06cda1232a49558c46f8a504d5b93101d42c0bf7f911f12a105ba48168f821ae" +checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" dependencies = [ "futures-util", "log", @@ -4050,9 +4384,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.6.9" +version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ "bytes", "futures-core", @@ -4065,9 +4399,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0edfdeb067411dba2044da6d1cb2df793dd35add7888d73c16e3381ded401764" +checksum = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c" dependencies = [ "bytes", "futures-core", @@ -4088,15 +4422,15 @@ dependencies = [ [[package]] name = "tower-service" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09" +checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307" dependencies = [ "cfg-if", "log", @@ -4107,31 +4441,32 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", ] [[package]] name = "tracing-core" -version = "0.1.26" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f" +checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7" dependencies = [ - "lazy_static", + "once_cell", "valuable", ] [[package]] name = "tracing-opentelemetry" -version = "0.15.0" +version = "0.17.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "599f388ecb26b28d9c1b2e4437ae019a7b336018b45ed911458cd9ebf91129f6" +checksum = "fbbe89715c1dbbb790059e2565353978564924ee85017b5fff365c872ff6721f" dependencies = [ + "once_cell", "opentelemetry", "tracing", "tracing-core", @@ -4140,9 +4475,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.25" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b" dependencies = [ "sharded-slab", "thread_local", @@ -4157,9 +4492,9 @@ checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" [[package]] name = "tungstenite" -version = "0.17.2" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96a2dea40e7570482f28eb57afbe42d97551905da6a9400acc5c328d24004f5" +checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" dependencies = [ "base64 0.13.0", "byteorder", @@ -4189,11 +4524,17 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +[[package]] +name = "unicode-ident" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" + [[package]] name = "unicode-normalization" -version = "0.1.19" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "854cbdc4f7bc6ae19c820d44abdc3277ac3e1b2b93db20a636825d9322fb60e6" dependencies = [ "tinyvec", ] @@ -4253,13 +4594,12 @@ dependencies = [ [[package]] name = "url" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", ] @@ -4322,9 +4662,9 @@ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" +version = "0.10.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" [[package]] name = "wasi" @@ -4334,9 +4674,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -4344,24 +4684,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" dependencies = [ "bumpalo", - "lazy_static", "log", - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "once_cell", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.30" +version = "0.4.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" +checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad" dependencies = [ "cfg-if", "js-sys", @@ -4371,38 +4711,38 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" dependencies = [ - "quote 1.0.18", + "quote 1.0.21", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.80" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" [[package]] name = "web-sys" -version = "0.3.57" +version = "0.3.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" +checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" dependencies = [ "js-sys", "wasm-bindgen", @@ -4420,9 +4760,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.3" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" +checksum = "f1c760f0d366a6c24a02ed7816e23e691f5d92291f94d15e836006fd11b04daf" dependencies = [ "webpki", ] @@ -4510,6 +4850,24 @@ dependencies = [ "winapi", ] +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.0", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time 0.3.14", +] + [[package]] name = "xattr" version = "0.2.3" @@ -4534,7 +4892,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "346d34a236c9d3e5f3b9b74563f238f955bbd05fa0b8b4efa53c130c43982f4c" dependencies = [ - "time 0.3.9", + "time 0.3.14", ] [[package]] @@ -4552,26 +4910,26 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" dependencies = [ - "proc-macro2 1.0.38", - "quote 1.0.18", - "syn 1.0.93", + "proc-macro2 1.0.43", + "quote 1.0.21", + "syn 1.0.99", "synstructure", ] [[package]] name = "zstd" -version = "0.11.1+zstd.1.5.2" +version = "0.11.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a16b8414fde0414e90c612eba70985577451c4c504b99885ebed24762cb81a" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "5.0.1+zstd.1.5.2" +version = "5.0.2+zstd.1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c12659121420dd6365c5c3de4901f97145b79651fb1d25814020ed2ed0585ae" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" dependencies = [ "libc", "zstd-sys", diff --git a/program/src/state/event_queue.rs b/program/src/state/event_queue.rs index 0fcb84d..3e5b6a0 100644 --- a/program/src/state/event_queue.rs +++ b/program/src/state/event_queue.rs @@ -89,9 +89,11 @@ pub(crate) enum EventTag { Out, } -pub(crate) type GenericEvent = FillEvent; +#[allow(missing_docs)] +pub type GenericEvent = FillEvent; -pub(crate) trait Event { +#[allow(missing_docs)] +pub trait Event { fn to_generic(&mut self) -> &GenericEvent; } @@ -167,6 +169,7 @@ impl<'queue, C: Pod> EventQueue<'queue, C> { } impl<'queue, C: Clone> EventQueue<'queue, C> { + #[allow(missing_docs)] pub fn push_back( &mut self, mut event: Ev, diff --git a/program/src/state/market_state.rs b/program/src/state/market_state.rs index ca57700..f99cc5c 100644 --- a/program/src/state/market_state.rs +++ b/program/src/state/market_state.rs @@ -83,5 +83,5 @@ fn market_cast() { let mut buffer = [0u8; MarketState::LEN + 8]; let r = MarketState::from_buffer(&mut buffer, AccountTag::Market); assert!(r.is_err()); - assert_eq!(r.unwrap_err(), ProgramError::InvalidAccountData) + assert_eq!(r.unwrap_err(), AoError::AccountTagMismatch.into()); } From f0127f6069fdd06b7fcc4b125526311989bfaad0 Mon Sep 17 00:00:00 2001 From: zachanon Date: Wed, 19 Oct 2022 17:07:43 +0700 Subject: [PATCH 25/34] pub --- program/src/state/orderbook.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index a52449f..40956f6 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -69,7 +69,7 @@ pub struct OrderBookState<'a, C> { // pub type OrderBookStateRef<'slab, C> = OrderBookState>; impl<'slab, C: Pod + Copy> OrderBookState<'slab, C> { - pub(crate) fn new_safe( + pub fn new_safe( bids_account: &'slab mut [u8], asks_account: &'slab mut [u8], ) -> Result { From 9d15bcae1de6e872484d7a2357507f26cbb8bcbf Mon Sep 17 00:00:00 2001 From: Drew Nutter Date: Thu, 20 Oct 2022 16:02:25 -0400 Subject: [PATCH 26/34] when matching is disabled, the order summary returns the posted amounts instead of the max amounts --- program/src/state/orderbook.rs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 40956f6..e40ad19 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -353,12 +353,17 @@ where fp32_div(max_quote_qty, limit_price).unwrap_or(u64::MAX), max_base_qty, ); + let quote_qty_to_post = match side { + Side::Bid => fp32_mul_ceil(base_qty_to_post, limit_price), + Side::Ask => fp32_mul_floor(base_qty_to_post, limit_price), + } + .ok_or(AoError::NumericalOverflow)?; if base_qty_to_post < min_base_order_size || !post_allowed { return Ok(OrderSummary { posted_order_id: None, - total_base_qty: max_base_qty, - total_quote_qty: max_quote_qty, + total_base_qty: base_qty_to_post, + total_quote_qty: quote_qty_to_post, total_base_qty_posted: base_qty_to_post, }); } @@ -399,8 +404,8 @@ where } else { return Ok(OrderSummary { posted_order_id: None, - total_base_qty: max_base_qty, - total_quote_qty: max_quote_qty, + total_base_qty: base_qty_to_post, + total_quote_qty: quote_qty_to_post, total_base_qty_posted: 0, }); } @@ -411,8 +416,8 @@ where *self.get_tree(side).get_callback_info_mut(k) = callback_info; Ok(OrderSummary { posted_order_id: Some(new_leaf_order_id), - total_base_qty: max_base_qty, - total_quote_qty: max_quote_qty, + total_base_qty: base_qty_to_post, + total_quote_qty: quote_qty_to_post, total_base_qty_posted: base_qty_to_post, }) } From 3d861c125d208c0f8eac40484fc5a38c7f7a1843 Mon Sep 17 00:00:00 2001 From: zachanon Date: Tue, 15 Nov 2022 23:59:12 +0900 Subject: [PATCH 27/34] cancel event --- program/src/processor/cancel_order.rs | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/program/src/processor/cancel_order.rs b/program/src/processor/cancel_order.rs index a42e5dc..8a70dba 100644 --- a/program/src/processor/cancel_order.rs +++ b/program/src/processor/cancel_order.rs @@ -10,6 +10,7 @@ use solana_program::{ pubkey::Pubkey, }; +use crate::state::event_queue::{EventQueue, EventTag, OutEvent}; use crate::state::orderbook::{CallbackInfo, OrderBookState, OrderSummary}; use crate::state::AccountTag; use crate::{ @@ -77,7 +78,7 @@ pub fn process<'a, 'b: 'a, C: CallbackInfo + Pod + PartialEq>( program_id: &Pubkey, accounts: Accounts<'a, AccountInfo<'b>>, params: Params, -) -> Result +) -> Result<(OrderSummary, C), ProgramError> where ::CallbackId: PartialEq, { @@ -92,8 +93,9 @@ where let mut order_book = OrderBookState::::new_safe(&mut bids_guard, &mut asks_guard)?; - let slab = order_book.get_tree(get_side_from_order_id(params.order_id)); - let (leaf_node, _) = slab + let side = get_side_from_order_id(params.order_id); + let slab = order_book.get_tree(side); + let (leaf_node, callback_info) = slab .remove_by_key(params.order_id) .ok_or(AoError::OrderNotFound)?; let total_base_qty = leaf_node.base_quantity; @@ -107,7 +109,21 @@ where total_base_qty_posted: 0, }; - Ok(order_summary) + let eq_guard = accounts.event_queue.data.borrow_mut(); + let mut eq = EventQueue::::from_buffer(*eq_guard, AccountTag::EventQueue)?; + eq.push_back( + OutEvent { + tag: EventTag::Out as u8, + side: side as u8, + _padding: [0; 14], + order_id: params.order_id, + base_size: order_summary.total_base_qty, + }, + Some(callback_info), + None, + ); + + Ok((order_summary, *callback_info)) } fn check_accounts<'a, 'b: 'a>( From d97b6e1b562b70e1446e1baea515d9e4e679b944 Mon Sep 17 00:00:00 2001 From: zachanon Date: Wed, 16 Nov 2022 02:13:11 +0900 Subject: [PATCH 28/34] cannot return callback, made fields public --- program/src/processor/cancel_order.rs | 21 +++------------------ program/src/state/event_queue.rs | 6 ++++-- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/program/src/processor/cancel_order.rs b/program/src/processor/cancel_order.rs index 8a70dba..38c26ec 100644 --- a/program/src/processor/cancel_order.rs +++ b/program/src/processor/cancel_order.rs @@ -10,7 +10,6 @@ use solana_program::{ pubkey::Pubkey, }; -use crate::state::event_queue::{EventQueue, EventTag, OutEvent}; use crate::state::orderbook::{CallbackInfo, OrderBookState, OrderSummary}; use crate::state::AccountTag; use crate::{ @@ -78,7 +77,7 @@ pub fn process<'a, 'b: 'a, C: CallbackInfo + Pod + PartialEq>( program_id: &Pubkey, accounts: Accounts<'a, AccountInfo<'b>>, params: Params, -) -> Result<(OrderSummary, C), ProgramError> +) -> Result where ::CallbackId: PartialEq, { @@ -95,7 +94,7 @@ where let side = get_side_from_order_id(params.order_id); let slab = order_book.get_tree(side); - let (leaf_node, callback_info) = slab + let (leaf_node, _) = slab .remove_by_key(params.order_id) .ok_or(AoError::OrderNotFound)?; let total_base_qty = leaf_node.base_quantity; @@ -109,21 +108,7 @@ where total_base_qty_posted: 0, }; - let eq_guard = accounts.event_queue.data.borrow_mut(); - let mut eq = EventQueue::::from_buffer(*eq_guard, AccountTag::EventQueue)?; - eq.push_back( - OutEvent { - tag: EventTag::Out as u8, - side: side as u8, - _padding: [0; 14], - order_id: params.order_id, - base_size: order_summary.total_base_qty, - }, - Some(callback_info), - None, - ); - - Ok((order_summary, *callback_info)) + Ok(order_summary) } fn check_accounts<'a, 'b: 'a>( diff --git a/program/src/state/event_queue.rs b/program/src/state/event_queue.rs index 3e5b6a0..c1e063b 100644 --- a/program/src/state/event_queue.rs +++ b/program/src/state/event_queue.rs @@ -24,7 +24,8 @@ pub struct FillEvent { pub tag: u8, /// The u8 representation for a [`Side`] enum pub taker_side: u8, - pub(crate) _padding: [u8; 6], + /// zero padding for alignment + pub _padding: [u8; 6], /// The total quote size of the transaction pub quote_size: u64, /// The order id of the maker order @@ -46,7 +47,8 @@ pub struct OutEvent { pub tag: u8, /// The u8 representation for a [`Side`] enum pub side: u8, - pub(crate) _padding: [u8; 14], + /// zero padding for alignment + pub _padding: [u8; 14], /// The order id of the maker order pub order_id: u128, /// The total base size of the transaction From b7a7986a2a37650fc774c887301308a740f9ed75 Mon Sep 17 00:00:00 2001 From: zach Date: Fri, 17 Feb 2023 20:11:55 +0000 Subject: [PATCH 29/34] fill event uses price information --- program/src/state/event_queue.rs | 10 +++++----- program/src/state/orderbook.rs | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/program/src/state/event_queue.rs b/program/src/state/event_queue.rs index c1e063b..2c6d70d 100644 --- a/program/src/state/event_queue.rs +++ b/program/src/state/event_queue.rs @@ -26,8 +26,8 @@ pub struct FillEvent { pub taker_side: u8, /// zero padding for alignment pub _padding: [u8; 6], - /// The total quote size of the transaction - pub quote_size: u64, + /// The trade price of the order fill + pub trade_price: u64, /// The order id of the maker order pub maker_order_id: u128, /// The total base size of the transaction @@ -349,7 +349,7 @@ mod tests { tag: EventTag::Fill as u8, taker_side: Side::Ask as u8, _padding: [0; 6], - quote_size: seq_gen.next().unwrap(), + trade_price: seq_gen.next().unwrap(), maker_order_id: seq_gen.next().unwrap() as u128, base_size: seq_gen.next().unwrap(), }, @@ -377,7 +377,7 @@ mod tests { tag: EventTag::Fill as u8, taker_side: Side::Ask as u8, _padding: [0; 6], - quote_size: seq_gen.next().unwrap(), + trade_price: seq_gen.next().unwrap(), maker_order_id: seq_gen.next().unwrap() as u128, base_size: seq_gen.next().unwrap(), }; @@ -419,7 +419,7 @@ mod tests { tag: EventTag::Fill as u8, taker_side: Side::Ask as u8, _padding: [0; 6], - quote_size: seq_gen.next().unwrap(), + trade_price: seq_gen.next().unwrap(), maker_order_id: seq_gen.next().unwrap() as u128, base_size: seq_gen.next().unwrap(), }, diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index e40ad19..13e22a7 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -224,7 +224,7 @@ where let maker_fill = FillEvent { taker_side: side as u8, maker_order_id: best_bo_ref.order_id(), - quote_size: quote_maker_qty, + trade_price, base_size: base_trade_qty, tag: EventTag::Fill as u8, _padding: [0; 6], @@ -663,7 +663,7 @@ mod tests { tag: EventTag::Fill as u8, taker_side: Side::Ask as u8, _padding: [0; 6], - quote_size: 500_000 * 15, + trade_price: 15 << 32, maker_order_id: bob_order_id_0.unwrap(), base_size: 500_000 }, From 2cc3731b80b61d611a1acd86864364df4d5b36ae Mon Sep 17 00:00:00 2001 From: Vladimir Demidov Date: Tue, 18 Jun 2024 19:27:06 +0200 Subject: [PATCH 30/34] struct not aligned properly --- program/src/state/critbit.rs | 2 ++ program/src/state/event_queue.rs | 25 ++++++++++++------------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/program/src/state/critbit.rs b/program/src/state/critbit.rs index 6a36bba..558ed45 100644 --- a/program/src/state/critbit.rs +++ b/program/src/state/critbit.rs @@ -40,6 +40,8 @@ pub struct Slab<'a, C> { pub struct LeafNode { /// The key is the associated order id pub key: u128, + /// Explicit padding or another field (64 bits) + pub padding_or_other_field: u64, /// The quantity of base asset associated with the underlying order pub base_quantity: u64, } diff --git a/program/src/state/event_queue.rs b/program/src/state/event_queue.rs index 2c6d70d..456f751 100644 --- a/program/src/state/event_queue.rs +++ b/program/src/state/event_queue.rs @@ -20,18 +20,17 @@ use super::{AccountTag, Side}; #[repr(C)] /// Represents an order being filled, a match between two parties. pub struct FillEvent { - /// The u8 representation for an [`AccountTag`] enum - pub tag: u8, - /// The u8 representation for a [`Side`] enum - pub taker_side: u8, - /// zero padding for alignment - pub _padding: [u8; 6], - /// The trade price of the order fill - pub trade_price: u64, /// The order id of the maker order pub maker_order_id: u128, /// The total base size of the transaction pub base_size: u64, + /// The trade price of the order fill + pub trade_price: u64, + /// The u8 representation for an [`AccountTag`] enum + pub tag: u8, + /// The u8 representation for a [`Side`] enum + pub taker_side: u8, + pub _padding: [u8; 14], } impl FillEvent { @@ -43,16 +42,16 @@ impl FillEvent { #[repr(C)] /// Represents an order being modified or yanked from the orderbook without being matched pub struct OutEvent { + /// The order id of the maker order + pub order_id: u128, + /// The total base size of the transaction + pub base_size: u64, /// The u8 representation for an [`AccountTag`] enum pub tag: u8, /// The u8 representation for a [`Side`] enum pub side: u8, /// zero padding for alignment - pub _padding: [u8; 14], - /// The order id of the maker order - pub order_id: u128, - /// The total base size of the transaction - pub base_size: u64, + pub _padding: [u8; 6], } #[derive(PartialEq, Debug)] From 053ef62bed028f1aee4c4ebdef8e4c197e9e6853 Mon Sep 17 00:00:00 2001 From: Vladimir Demidov Date: Tue, 18 Jun 2024 19:35:10 +0200 Subject: [PATCH 31/34] struct not aligned properly --- program/src/state/orderbook.rs | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index 13e22a7..d893ea5 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -203,7 +203,7 @@ where order_id: best_offer_id, base_size: best_bo_ref.base_quantity, tag: EventTag::Out as u8, - _padding: [0; 14], + _padding: [0; 6], }; event_queue .push_back(provide_out, Some(provide_out_callback_info), None) @@ -227,7 +227,7 @@ where trade_price, base_size: base_trade_qty, tag: EventTag::Fill as u8, - _padding: [0; 6], + _padding: [0; 14], }; event_queue .push_back(maker_fill, Some(maker_callback_info), Some(&callback_info)) @@ -245,7 +245,7 @@ where order_id: best_offer_id, base_size: best_bo_ref.base_quantity, tag: EventTag::Out as u8, - _padding: [0; 14], + _padding: [0; 6], }; let (_, out_event_callback_info) = self @@ -278,6 +278,7 @@ where let new_leaf = LeafNode { key: new_leaf_order_id, base_quantity: base_qty_to_post, + padding_or_other_field: 0, }; let insert_result = self.get_tree(side).insert_leaf(&new_leaf); let k = if let Err(AoError::SlabOutOfSpace) = insert_result { @@ -301,7 +302,7 @@ where order_id: order.order_id(), base_size: order.base_quantity, tag: EventTag::Out as u8, - _padding: [0; 14], + _padding: [0; 6], }; event_queue .push_back(out, Some(callback_info_booted), None) @@ -372,6 +373,7 @@ where let new_leaf = LeafNode { key: new_leaf_order_id, base_quantity: base_qty_to_post, + padding_or_other_field: 0, }; let insert_result = self.get_tree(side).insert_leaf(&new_leaf); let k = if let Err(AoError::SlabOutOfSpace) = insert_result { @@ -395,7 +397,7 @@ where order_id: order.order_id(), base_size: order.base_quantity, tag: EventTag::Out as u8, - _padding: [0; 14], + _padding: [0; 6], }; event_queue .push_back(out, Some(callback_info_booted), None) @@ -662,7 +664,7 @@ mod tests { event: &FillEvent { tag: EventTag::Fill as u8, taker_side: Side::Ask as u8, - _padding: [0; 6], + _padding: [0; 14], trade_price: 15 << 32, maker_order_id: bob_order_id_0.unwrap(), base_size: 500_000 @@ -678,7 +680,7 @@ mod tests { event: &OutEvent { tag: EventTag::Out as u8, side: Side::Bid as u8, - _padding: [0; 14], + _padding: [0; 6], base_size: 0, order_id: bob_order_id_0.unwrap() }, @@ -751,7 +753,7 @@ mod tests { event: &OutEvent { tag: EventTag::Out as u8, side: Side::Ask as u8, - _padding: [0; 14], + _padding: [0; 6], base_size: 250_000, order_id: alice_order_id_0.unwrap() }, @@ -882,7 +884,7 @@ mod tests { event: &OutEvent { tag: EventTag::Out as u8, side: Side::Ask as u8, - _padding: [0; 14], + _padding: [0; 6], base_size: 6_000_000, order_id: order_id_to_be_booted.unwrap() }, @@ -1079,7 +1081,7 @@ mod tests { event: &OutEvent { tag: EventTag::Out as u8, side: Side::Bid as u8, - _padding: [0; 14], + _padding: [0; 6], base_size: 6_000_000, order_id: order_id_to_be_booted.unwrap() }, From 916416f2084b5513264347b5efd6a02df467f614 Mon Sep 17 00:00:00 2001 From: Vladimir Demidov Date: Thu, 20 Jun 2024 17:20:21 +0200 Subject: [PATCH 32/34] version upgrade --- program/Cargo.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/program/Cargo.toml b/program/Cargo.toml index ee5b55a..6402616 100644 --- a/program/Cargo.toml +++ b/program/Cargo.toml @@ -18,7 +18,7 @@ utils = [] benchmarking = ["bonfida-utils/benchmarking"] [dependencies] -solana-program = "1.8.0" +solana-program = "1.16.25" bytemuck = {version = "1.7.2", features= ["derive"]} num_enum = "0.5.4" borsh = "0.9.1" @@ -31,10 +31,10 @@ bonfida-utils = "0.3.1" [dev-dependencies] hexdump = "0.1.0" -solana-sdk = "1.8.0" +solana-sdk = "1.16.25" rand = "0.8.4" arrayref = "0.3.6" -solana-program-test = "1.8.0" +solana-program-test =1.16.25.0" tokio = {version="1.6", features = ["macros"]} regex = "1.5.5" gnuplot = "0.0.37" From 7e7472b5cedfb11a18ec56647b061c4a8c4a44d7 Mon Sep 17 00:00:00 2001 From: Vladimir Demidov Date: Thu, 20 Jun 2024 17:48:11 +0200 Subject: [PATCH 33/34] version upgrade --- program/Cargo.lock | 3570 +++++++++++++++++++++++++++++--------------- program/Cargo.toml | 2 +- 2 files changed, 2331 insertions(+), 1241 deletions(-) diff --git a/program/Cargo.lock b/program/Cargo.lock index 8a9237f..84ecca3 100644 --- a/program/Cargo.lock +++ b/program/Cargo.lock @@ -12,6 +12,15 @@ dependencies = [ "regex", ] +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + [[package]] name = "adler" version = "1.0.2" @@ -34,7 +43,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if", - "cipher 0.3.0", + "cipher", "cpufeatures", "opaque-debug", ] @@ -47,7 +56,7 @@ checksum = "589c637f0e68c877bbd59a4599bbe849cac8e5f3e4b5a3ebae8f528cd218dcdc" dependencies = [ "aead", "aes", - "cipher 0.3.0", + "cipher", "ctr", "polyval", "subtle", @@ -60,15 +69,15 @@ version = "1.0.0" dependencies = [ "arrayref", "bonfida-utils", - "borsh", + "borsh 0.9.3", "bytemuck", "enumflags2", "gnuplot", "hexdump", "lazy_static", - "num-derive", + "num-derive 0.3.3", "num-traits", - "num_enum", + "num_enum 0.5.11", "rand 0.8.5", "regex", "serde", @@ -76,27 +85,40 @@ dependencies = [ "solana-program", "solana-program-test", "solana-sdk", - "spl-token", + "spl-token 3.5.0", "thiserror", "tokio", ] [[package]] name = "ahash" -version = "0.7.6" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.15", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ - "getrandom 0.2.8", + "cfg-if", + "getrandom 0.2.15", "once_cell", "version_check", + "zerocopy", ] [[package]] name = "aho-corasick" -version = "0.7.19" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -122,6 +144,12 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -142,15 +170,146 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.66" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "aquamarine" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760" +dependencies = [ + "include_dir", + "itertools", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools", + "num-traits", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools", + "num-bigint 0.4.5", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.5", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint 0.4.5", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216261ddc8289130e551ddcd5ce8a064710c0d064a4d2895c67151c92b5443f6" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", +] [[package]] name = "arrayref" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" @@ -160,9 +319,9 @@ checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" [[package]] name = "arrayvec" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "ascii" @@ -172,9 +331,9 @@ checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" [[package]] name = "asn1-rs" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf6690c370453db30743b373a60ba498fc0d6d83b11f4abfd87a84a075db5dd4" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ "asn1-rs-derive", "asn1-rs-impl", @@ -183,7 +342,7 @@ dependencies = [ "num-traits", "rusticata-macros", "thiserror", - "time 0.3.17", + "time", ] [[package]] @@ -192,9 +351,9 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 1.0.109", "synstructure", ] @@ -204,9 +363,9 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -215,11 +374,22 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener", + "futures-core", +] + [[package]] name = "async-compression" -version = "0.3.15" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +checksum = "cd066d0b4ef8ecb03a55319dc13aa6910616d0f44008a045bb1835af830abff5" dependencies = [ "brotli", "flate2", @@ -240,13 +410,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.58" +version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] @@ -255,16 +425,31 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi", + "hermit-abi 0.1.19", "libc", "winapi", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "backtrace" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] [[package]] name = "base64" @@ -278,11 +463,17 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + [[package]] name = "base64ct" -version = "1.5.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "bincode" @@ -299,6 +490,15 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +dependencies = [ + "serde", +] + [[package]] name = "bitmaps" version = "2.1.0" @@ -310,16 +510,16 @@ dependencies = [ [[package]] name = "blake3" -version = "1.3.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" +checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec 0.7.4", "cc", "cfg-if", "constant_time_eq", - "digest 0.10.5", + "digest 0.10.7", ] [[package]] @@ -334,9 +534,9 @@ dependencies = [ [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] @@ -349,25 +549,25 @@ checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" [[package]] name = "bonfida-macros" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e738a4d372a24c4194250859a310db4a2c019d5da1a29445291bb4a40085c40c" +checksum = "cd5e1068f5ce49b37565552ad659c96599601bb81e320491eef6545d5e7e1286" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2", + "quote", "solana-program", "spl-name-service", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] name = "bonfida-utils" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b64d60281fe4c19dfe91fa1783b4bdf9101d8303f354aec07ba738dee5450d" +checksum = "aede865c16b88d0c8beec8ad32fe92b057e0a7e8bbe97d4b96ea3361bb2778be" dependencies = [ "bonfida-macros", - "borsh", + "borsh 0.9.3", "bytemuck", "lazy_static", "pyth-sdk-solana", @@ -375,7 +575,7 @@ dependencies = [ "serde", "serde_json", "solana-program", - "spl-token", + "spl-token 3.5.0", ] [[package]] @@ -384,21 +584,68 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" dependencies = [ - "borsh-derive", + "borsh-derive 0.9.3", "hashbrown 0.11.2", ] +[[package]] +name = "borsh" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" +dependencies = [ + "borsh-derive 0.10.3", + "hashbrown 0.13.2", +] + +[[package]] +name = "borsh" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" +dependencies = [ + "borsh-derive 1.5.1", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", + "borsh-derive-internal 0.9.3", + "borsh-schema-derive-internal 0.9.3", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" +dependencies = [ + "borsh-derive-internal 0.10.3", + "borsh-schema-derive-internal 0.10.3", "proc-macro-crate 0.1.5", - "proc-macro2 1.0.47", - "syn 1.0.103", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" +dependencies = [ + "once_cell", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.66", + "syn_derive", ] [[package]] @@ -407,9 +654,20 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -418,16 +676,27 @@ version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "borsh-schema-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] name = "brotli" -version = "3.3.4" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -436,9 +705,9 @@ dependencies = [ [[package]] name = "brotli-decompressor" -version = "2.3.2" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80" +checksum = "9a45bd2e4095a8b518033b128020dd4a55aab1c0a381ba4404a472630f4bc362" dependencies = [ "alloc-no-stdlib", "alloc-stdlib", @@ -452,9 +721,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bv" @@ -468,41 +737,41 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.12.3" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaa3a8d9a1ca92e282c96a32d6511b695d7d994d1d102ba85d279f9b2756947f" +checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.3.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fe233b960f12f8007e3db2d136e3cb1c291bfd7396e384ee76025fc1a3932b4" +checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] name = "byteorder" -version = "1.4.3" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.2.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "bzip2" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6afcd980b5f3a45017c57e57a2fcccbb351cc43a356ce117ef760ef8052b89b0" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" dependencies = [ "bzip2-sys", "libc", @@ -531,11 +800,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.76" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a284da2e6fe2092f2353e51713435363112dfd60030e22add80be333fb928f" +checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695" dependencies = [ "jobserver", + "libc", + "once_cell", ] [[package]] @@ -544,27 +815,32 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chrono" -version = "0.4.23" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", - "num-integer", "num-traits", "serde", - "time 0.1.44", "wasm-bindgen", - "winapi", + "windows-targets 0.52.5", ] [[package]] name = "chrono-humanize" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32dce1ea1988dbdf9f9815ff11425828523bd2a134ec0805d2ac8af26ee6096e" +checksum = "799627e6b4d27827a814e837b9d8a504832086081806d45b1afa34dc982b023b" dependencies = [ "chrono", ] @@ -578,16 +854,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "cipher" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clap" version = "2.34.0" @@ -596,7 +862,7 @@ checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" dependencies = [ "ansi_term", "atty", - "bitflags", + "bitflags 1.3.2", "strsim 0.8.0", "textwrap 0.11.0", "unicode-width", @@ -605,18 +871,18 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.23" +version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ "atty", - "bitflags", + "bitflags 1.3.2", "clap_lex", - "indexmap", + "indexmap 1.9.3", "once_cell", "strsim 0.10.0", "termcolor", - "textwrap 0.16.0", + "textwrap 0.16.1", ] [[package]] @@ -628,16 +894,6 @@ dependencies = [ "os_str_bytes", ] -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - [[package]] name = "combine" version = "3.8.1" @@ -651,18 +907,26 @@ dependencies = [ "unreachable", ] +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "console" -version = "0.15.2" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c050367d967ced717c04b65d8c619d863ef9292ce0c5760028655a2fb298718c" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ "encode_unicode", "lazy_static", "libc", - "terminal_size", "unicode-width", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -677,9 +941,9 @@ dependencies = [ [[package]] name = "console_log" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501a375961cef1a0d44767200e66e4a559283097e91d0730b1d75dfb2f8a1494" +checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" dependencies = [ "log", "web-sys", @@ -693,15 +957,15 @@ checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" [[package]] name = "constant_time_eq" -version = "0.1.5" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -709,70 +973,61 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" dependencies = [ - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.11" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f916dfc5d356b0ed9dae65f1db9fc9770aa2851d2662b988ccf4fe3516e86348" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", - "memoffset", - "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.12" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" -dependencies = [ - "cfg-if", -] +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crunchy" @@ -806,7 +1061,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "cipher 0.3.0", + "cipher", ] [[package]] @@ -824,65 +1079,59 @@ dependencies = [ ] [[package]] -name = "cxx" -version = "1.0.81" +name = "darling" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97abf9f0eca9e52b7f81b945524e76710e6cb2366aead23b7d4fbf72e281f888" +checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", + "darling_core", + "darling_macro", ] [[package]] -name = "cxx-build" -version = "1.0.81" +name = "darling_core" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cc32cc5fea1d894b77d269ddb9f192110069a8a9c1f1d441195fba90553dea3" +checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2 1.0.47", - "quote 1.0.21", - "scratch", - "syn 1.0.103", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim 0.11.1", + "syn 2.0.66", ] [[package]] -name = "cxxbridge-flags" -version = "1.0.81" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca220e4794c934dc6b1207c3b42856ad4c302f2df1712e9f8d2eec5afaacf1f" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.81" +name = "darling_macro" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b846f081361125bfc8dc9d3940c84e1fd83ba54bbca7b17cd29483c828be0704" +checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "darling_core", + "quote", + "syn 2.0.66", ] [[package]] name = "dashmap" -version = "4.0.2" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e77a43b28d0668df09411cb0bc9a8c2adc40f9a048afe863e05fd43251e8e39c" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ "cfg-if", - "num_cpus", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", "rayon", ] [[package]] name = "data-encoding" -version = "2.3.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "der" @@ -895,18 +1144,27 @@ dependencies = [ [[package]] name = "der-parser" -version = "8.1.0" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d4bc9b0db0a0df9ae64634ac5bdefb7afcb534e182275ca0beadbe486701c1" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ "asn1-rs", "displaydoc", "nom", - "num-bigint 0.4.3", + "num-bigint 0.4.5", "num-traits", "rusticata-macros", ] +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + [[package]] name = "derivation-path" version = "0.2.0" @@ -914,16 +1172,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e5c37193a1db1d8ed868c03ec7b152175f26160a5b740e5e484143877e0adf0" [[package]] -name = "dialoguer" -version = "0.10.2" +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "dialoguer" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92e7e37ecef6857fdc0c0c5d42fd5b0938e46590c2183cc92dd310a6d078eb1" +checksum = "59c6f2989294b9a498d3ad5491a79c6deb604617378e1cdc4bfc1c1361fe2f87" dependencies = [ "console", + "shell-words", "tempfile", "zeroize", ] +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + [[package]] name = "digest" version = "0.9.0" @@ -935,84 +1211,69 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.5" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.3", + "block-buffer 0.10.4", "crypto-common", "subtle", ] [[package]] name = "dir-diff" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2860407d7d7e2e004bb2128510ad9e8d669e76fa005ccf567977b5d71b8b4a0b" +checksum = "a7ad16bf5f84253b50d6557681c58c3ab67c47c77d39fed9aeb56e947290bd10" dependencies = [ "walkdir", ] [[package]] -name = "dirs-next" -version = "2.0.0" +name = "displaydoc" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ - "cfg-if", - "dirs-sys-next", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] -name = "dirs-sys-next" -version = "0.1.2" +name = "dlopen2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa" dependencies = [ + "dlopen2_derive", "libc", - "redox_users", + "once_cell", "winapi", ] [[package]] -name = "displaydoc" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" -dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", -] - -[[package]] -name = "dlopen" -version = "0.1.8" +name = "dlopen2_derive" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e80ad39f814a9abe68583cd50a2d45c8a67561c3361ab8da240587dda80937" +checksum = "a6cbae11b3de8fce2a456e8ea3dada226b35fe791f0dc1d360c0941f0bb681f3" dependencies = [ - "dlopen_derive", - "lazy_static", - "libc", - "winapi", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] -name = "dlopen_derive" -version = "0.1.4" +name = "downcast" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f236d9e1b1fbd81cea0f9cbdc8dcc7e8ebcd80e6659cd7cb2ad5f6c05946c581" -dependencies = [ - "libc", - "quote 0.6.13", - "syn 0.15.44", -] +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "dyn-clone" -version = "1.0.9" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f94fa09c2aeea5b8839e414b7b841bf429fd25b9c522116ac97ee87856d88b2" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "eager" @@ -1022,9 +1283,9 @@ checksum = "abe71d579d1812060163dff96056261deb5bf6729b100fa2e36a68b9649ba3d3" [[package]] name = "ed25519" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ "signature", ] @@ -1052,26 +1313,26 @@ dependencies = [ "derivation-path", "ed25519-dalek", "hmac 0.12.1", - "sha2 0.10.6", + "sha2 0.10.8", ] [[package]] name = "educe" -version = "0.4.20" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0188e3c3ba8df5753894d54461f0e39bc91741dc5b22e1c46999ec2c71f4e4" +checksum = "0f0042ff8246a363dbe77d2ceedb073339e85a804b9a47636c6e016a9a32c05f" dependencies = [ "enum-ordinalize", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] name = "either" -version = "1.8.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" [[package]] name = "encode_unicode" @@ -1081,77 +1342,64 @@ checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" [[package]] name = "encoding_rs" -version = "0.8.31" +version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ "cfg-if", ] [[package]] name = "enum-iterator" -version = "0.8.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2953d1df47ac0eb70086ccabf0275aa8da8591a28bd358ee2b52bd9f9e3ff9e9" +checksum = "9fd242f399be1da0a5354aa462d57b4ab2b4ee0683cc552f7c007d2d12d36e94" dependencies = [ "enum-iterator-derive", ] [[package]] name = "enum-iterator-derive" -version = "0.8.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8958699f9359f0b04e691a13850d48b7de329138023876d07cbd024c2c820598" +checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] name = "enum-ordinalize" -version = "3.1.12" +version = "3.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bb1df8b45ecb7ffa78dca1c17a438fb193eb083db0b1b494d2a61bcb5096a" +checksum = "1bf1fa3f06bbff1ea5b1a9c7b14aa992a39657db60a2759457328d7e058f49ee" dependencies = [ - "num-bigint 0.4.3", + "num-bigint 0.4.5", "num-traits", - "proc-macro2 1.0.47", - "quote 1.0.21", - "rustc_version", - "syn 1.0.103", -] - -[[package]] -name = "enum_dispatch" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eb359f1476bf611266ac1f5355bc14aeca37b299d0ebccc038ee7058891c9cb" -dependencies = [ - "once_cell", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] name = "enumflags2" -version = "0.7.5" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.4" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] @@ -1167,6 +1415,22 @@ dependencies = [ "termcolor", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + [[package]] name = "event-listener" version = "2.5.3" @@ -1175,12 +1439,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "1.8.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" -dependencies = [ - "instant", -] +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "feature-probe" @@ -1190,26 +1451,35 @@ checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" [[package]] name = "filetime" -version = "0.2.18" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" dependencies = [ "cfg-if", "libc", - "redox_syscall", - "windows-sys 0.42.0", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", ] [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" dependencies = [ "crc32fast", "miniz_oxide", ] +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1218,18 +1488,24 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + [[package]] name = "futures" -version = "0.3.25" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -1242,9 +1518,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.25" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -1252,15 +1528,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.25" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.25" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -1269,38 +1545,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.25" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-macro" -version = "0.3.25" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] name = "futures-sink" -version = "0.3.25" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.25" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-util" -version = "0.3.25" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -1314,20 +1590,11 @@ dependencies = [ "slab", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "serde", "typenum", @@ -1359,9 +1626,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "js-sys", @@ -1370,6 +1637,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + [[package]] name = "gnuplot" version = "0.0.37" @@ -1392,9 +1665,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.15" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -1402,10 +1675,10 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 2.2.6", "slab", "tokio", - "tokio-util 0.7.2", + "tokio-util 0.7.11", "tracing", ] @@ -1424,7 +1697,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" dependencies = [ - "ahash", + "ahash 0.7.8", ] [[package]] @@ -1433,14 +1706,29 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash", + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.11", ] +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + [[package]] name = "heck" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -1451,6 +1739,12 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + [[package]] name = "hex" version = "0.4.3" @@ -1462,12 +1756,11 @@ dependencies = [ [[package]] name = "hexdump" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e40283dadb02f3af778878be1d717b17b4e4ab92e1d935ab03a730b0542905f2" +checksum = "cf31ab66ed8145a1c7427bd8e9b42a6131bd74ccf444f69b9e620c2e73ded832" dependencies = [ "arrayvec 0.5.2", - "itertools 0.4.19", ] [[package]] @@ -1492,7 +1785,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.5", + "digest 0.10.7", ] [[package]] @@ -1508,9 +1801,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.8" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -1519,9 +1812,9 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", @@ -1530,15 +1823,15 @@ dependencies = [ [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "humantime" @@ -1548,9 +1841,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.23" +version = "0.14.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" +checksum = "f361cde2f109281a220d4307746cdfd5ee3f410da58a70377762396775634b33" dependencies = [ "bytes", "futures-channel", @@ -1572,10 +1865,11 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.23.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ + "futures-util", "http", "hyper", "rustls", @@ -1585,33 +1879,38 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.53" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "winapi", + "windows-core", ] [[package]] name = "iana-time-zone-haiku" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "cxx", - "cxx-build", + "cc", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" -version = "0.3.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -1633,63 +1932,78 @@ dependencies = [ "version_check", ] +[[package]] +name = "include_dir" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" +dependencies = [ + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" +dependencies = [ + "proc-macro2", + "quote", +] + [[package]] name = "index_list" -version = "0.2.7" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9d968042a4902e08810946fc7cd5851eb75e80301342305af755ca06cb82ce" +checksum = "70891286cb8e844fdfcf1178b47569699f9e20b5ecc4b45a6240a64771444638" [[package]] name = "indexmap" -version = "1.9.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", ] [[package]] -name = "indicatif" -version = "0.16.2" +name = "indexmap" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ - "console", - "lazy_static", - "number_prefix", - "regex", + "equivalent", + "hashbrown 0.14.5", ] [[package]] -name = "inout" -version = "0.1.3" +name = "indicatif" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" dependencies = [ - "generic-array", + "console", + "instant", + "number_prefix", + "portable-atomic", + "unicode-width", ] [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", ] [[package]] name = "ipnet" -version = "2.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f88c5561171189e69df9d98bcf18fd5f9558300f7ea7b801eb8a0fd748bd8745" - -[[package]] -name = "itertools" -version = "0.4.19" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a9b56eb56058f43dc66e58f40a214b2ccbc9f3df51861b63d51dec7b65bc3f" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "itertools" @@ -1702,24 +2016,24 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.4" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.25" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -1741,9 +2055,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.3" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ "cpufeatures", ] @@ -1756,19 +2070,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.137" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" - -[[package]] -name = "libloading" -version = "0.7.4" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libsecp256k1" @@ -1819,25 +2123,28 @@ dependencies = [ ] [[package]] -name = "link-cplusplus" -version = "1.0.7" +name = "light-poseidon" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9272ab7b96c9046fbc5bc56c06c117cb639fe2d509df0c421cad82d2915cf369" +checksum = "3c9a85a9752c549ceb7578064b4ed891179d20acd85f27318573b64d2d7ee7ee" dependencies = [ - "cc", + "ark-bn254", + "ark-ff", + "num-bigint 0.4.5", + "thiserror", ] [[package]] -name = "linked-hash-map" -version = "0.5.6" +name = "linux-raw-sys" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -1845,18 +2152,24 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "lru" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +checksum = "e999beba7b6e8345721bd280141ed958096a2e4abdf74f67ff4ce49b4b54e47a" dependencies = [ - "cfg-if", + "hashbrown 0.12.3", ] [[package]] name = "lz4" -version = "1.24.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1" +checksum = "d6eab492fe7f8651add23237ea56dbf11b3c4ff762ab83d40a47f11433421f91" dependencies = [ "libc", "lz4-sys", @@ -1864,9 +2177,9 @@ dependencies = [ [[package]] name = "lz4-sys" -version = "1.9.4" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +checksum = "e9764018d143cc854c9f17f0b907de70f14393b1f502da6375dce70f00514eb3" dependencies = [ "cc", "libc", @@ -1874,24 +2187,33 @@ dependencies = [ [[package]] name = "memchr" -version = "2.5.0" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" -version = "0.5.8" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" dependencies = [ "libc", ] [[package]] name = "memoffset" -version = "0.6.5" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ "autocfg", ] @@ -1910,9 +2232,9 @@ dependencies = [ [[package]] name = "mime" -version = "0.3.16" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "minimal-lexical" @@ -1922,33 +2244,49 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.4" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.7.14" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", - "log", - "miow", - "ntapi", - "winapi", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", ] [[package]] -name = "miow" -version = "0.3.7" +name = "mockall" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" dependencies = [ - "winapi", + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -1967,41 +2305,39 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] name = "nix" -version = "0.24.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ - "bitflags", + "bitflags 1.3.2", "cfg-if", "libc", - "memoffset", + "memoffset 0.7.1", + "pin-utils", ] [[package]] name = "nom" -version = "7.1.1" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", ] [[package]] -name = "ntapi" -version = "0.3.7" +name = "normalize-line-endings" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" -dependencies = [ - "winapi", -] +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "num" @@ -2030,11 +2366,10 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" dependencies = [ - "autocfg", "num-integer", "num-traits", ] @@ -2049,32 +2384,48 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-derive" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", @@ -2095,70 +2446,121 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "num_cpus" -version = "1.14.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6058e64324c71e02bc2b150e4f3bc8286db6c83092132ffa3f6b1eab0f9def5" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.9", "libc", ] [[package]] name = "num_enum" -version = "0.5.7" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ - "num_enum_derive", + "num_enum_derive 0.5.11", ] [[package]] -name = "num_enum_derive" -version = "0.5.7" +name = "num_enum" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" dependencies = [ - "proc-macro-crate 1.2.1", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "num_enum_derive 0.6.1", ] [[package]] -name = "number_prefix" -version = "0.4.0" +name = "num_enum" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive 0.7.2", +] [[package]] -name = "oid-registry" -version = "0.6.0" +name = "num_enum_derive" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d4bda43fd1b844cbc6e6e54b5444e2b1bc7838bce59ad205902cccbb26d6761" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ - "asn1-rs", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "object" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434" +dependencies = [ + "memchr", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", ] [[package]] name = "once_cell" -version = "1.16.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl-probe" @@ -2187,15 +2589,15 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.4.0" +version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5bf27447411e9ee3ff51186bf7a08e16c341efdde93f4d823e8844429bed7e" +checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" [[package]] name = "ouroboros" -version = "0.15.5" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbb50b356159620db6ac971c6d5c9ab788c9cc38a6f49619fca2a27acb062ca" +checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db" dependencies = [ "aliasable", "ouroboros_macro", @@ -2203,64 +2605,45 @@ dependencies = [ [[package]] name = "ouroboros_macro" -version = "0.15.5" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0d9d1a6191c4f391f87219d1ea42b23f09ee84d64763cd05ee6ea88d9f384d" +checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7" dependencies = [ "Inflector", "proc-macro-error", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", -] - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.5", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.4", + "parking_lot_core", ] [[package]] name = "parking_lot_core" -version = "0.8.5" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", - "instant", "libc", - "redox_syscall", + "redox_syscall 0.5.2", "smallvec", - "winapi", + "windows-targets 0.52.5", ] [[package]] -name = "parking_lot_core" -version = "0.9.4" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-sys 0.42.0", -] +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" @@ -2277,23 +2660,23 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.5", + "digest 0.10.7", ] [[package]] name = "pem" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" dependencies = [ "base64 0.13.1", ] [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "percentage" @@ -2306,29 +2689,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.0.12" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.0.12" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] name = "pin-project-lite" -version = "0.2.9" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -2349,9 +2732,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.26" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "plain" @@ -2371,12 +2754,54 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "portable-atomic" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp", + "itertools", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + [[package]] name = "proc-macro-crate" version = "0.1.5" @@ -2388,13 +2813,21 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "thiserror", - "toml", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", ] [[package]] @@ -2404,9 +2837,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" dependencies = [ "proc-macro-error-attr", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 1.0.109", "version_check", ] @@ -2416,25 +2849,16 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2", + "quote", "version_check", ] [[package]] name = "proc-macro2" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -dependencies = [ - "unicode-xid 0.1.0", -] - -[[package]] -name = "proc-macro2" -version = "1.0.47" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea3d908b0e36316caf9e9e2c4625cdde190a7e6f440d794667ed17a1855e725" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" dependencies = [ "unicode-ident", ] @@ -2445,8 +2869,8 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f262b88557d8f152a247e1be786a8359d63112fac0a6e49fa41082a8ef789e8d" dependencies = [ - "borsh", - "borsh-derive", + "borsh 0.9.3", + "borsh-derive 0.9.3", "hex", "schemars", "serde", @@ -2458,10 +2882,10 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2aed1a0b714f91cb104cc025eb806782e30aa63c23259724e79efd609294a2c9" dependencies = [ - "borsh", - "borsh-derive", + "borsh 0.9.3", + "borsh-derive 0.9.3", "bytemuck", - "num-derive", + "num-derive 0.3.3", "num-traits", "pyth-sdk", "serde", @@ -2478,75 +2902,72 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "qualifier_attr" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e2e25ee72f5b24d773cae88422baddefff7714f97aab68d96fe2b6fc4a28fb2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "quinn" -version = "0.8.5" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b435e71d9bfa0d8889927231970c51fb89c58fa63bffcab117c9c7a41e5ef8f" +checksum = "8cc2c5017e4b43d5995dcea317bc46c1e09404c0a9664d2908f7f02dfe943d75" dependencies = [ "bytes", - "futures-channel", - "futures-util", - "fxhash", + "pin-project-lite", "quinn-proto", "quinn-udp", + "rustc-hash", "rustls", "thiserror", "tokio", "tracing", - "webpki", ] [[package]] name = "quinn-proto" -version = "0.8.4" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fce546b9688f767a57530652488420d419a8b1f44a478b451c3d1ab6d992a55" +checksum = "141bf7dfde2fbc246bfd3fe12f2455aa24b0fbd9af535d8c86c7bd1381ff2b1a" dependencies = [ "bytes", - "fxhash", "rand 0.8.5", - "ring", + "ring 0.16.20", + "rustc-hash", "rustls", "rustls-native-certs", - "rustls-pemfile 0.2.1", "slab", "thiserror", "tinyvec", "tracing", - "webpki", ] [[package]] name = "quinn-udp" -version = "0.1.3" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f832d8958db3e84d2ec93b5eb2272b45aa23cf7f8fe6e79f578896f4e6c231b" +checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" dependencies = [ - "futures-util", + "bytes", "libc", - "quinn-proto", "socket2", - "tokio", "tracing", + "windows-sys 0.48.0", ] [[package]] name = "quote" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -dependencies = [ - "proc-macro2 0.4.30", -] - -[[package]] -name = "quote" -version = "1.0.21" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ - "proc-macro2 1.0.47", + "proc-macro2", ] [[package]] @@ -2608,7 +3029,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.15", ] [[package]] @@ -2631,94 +3052,91 @@ dependencies = [ [[package]] name = "rayon" -version = "1.5.3" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ - "autocfg", - "crossbeam-deque", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.9.3" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] name = "rcgen" -version = "0.9.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" dependencies = [ "pem", - "ring", - "time 0.3.17", + "ring 0.16.20", + "time", "yasna", ] [[package]] name = "redox_syscall" -version = "0.2.16" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ - "bitflags", + "bitflags 1.3.2", ] [[package]] -name = "redox_users" -version = "0.4.3" +name = "redox_syscall" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd" dependencies = [ - "getrandom 0.2.8", - "redox_syscall", - "thiserror", + "bitflags 2.5.0", ] [[package]] name = "regex" -version = "1.7.0" +version = "1.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", + "regex-automata", "regex-syntax", ] [[package]] -name = "regex-syntax" -version = "0.6.28" +name = "regex-automata" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] [[package]] -name = "remove_dir_all" -version = "0.5.3" +name = "regex-syntax" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "reqwest" -version = "0.11.12" +version = "0.11.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "431949c384f4e2ae07605ccaa56d1d9d2ecdb5cadd4f9577ccfab29f2e5149fc" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "async-compression", - "base64 0.13.1", + "base64 0.21.7", "bytes", "encoding_rs", "futures-core", @@ -2736,19 +3154,21 @@ dependencies = [ "percent-encoding", "pin-project-lite", "rustls", - "rustls-pemfile 1.0.1", + "rustls-pemfile", "serde", "serde_json", "serde_urlencoded", + "sync_wrapper", + "system-configuration", "tokio", "tokio-rustls", - "tokio-util 0.7.2", + "tokio-util 0.7.11", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots", + "webpki-roots 0.25.4", "winreg", ] @@ -2761,29 +3181,53 @@ dependencies = [ "cc", "libc", "once_cell", - "spin", - "untrusted", + "spin 0.5.2", + "untrusted 0.7.1", "web-sys", "winapi", ] +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + [[package]] name = "rpassword" -version = "6.0.1" +version = "7.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf099a1888612545b683d2661a1940089f6c2e5a8e38979b2159da876bfd956" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" dependencies = [ "libc", - "serde", - "serde_json", - "winapi", + "rtoolbox", + "windows-sys 0.48.0", +] + +[[package]] +name = "rtoolbox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +dependencies = [ + "libc", + "windows-sys 0.48.0", ] [[package]] name = "rustc-demangle" -version = "0.1.21" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" @@ -2809,59 +3253,73 @@ dependencies = [ "nom", ] +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.5.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + [[package]] name = "rustls" -version = "0.20.7" +version = "0.21.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring", + "ring 0.17.8", + "rustls-webpki", "sct", - "webpki", ] [[package]] name = "rustls-native-certs" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile 1.0.1", + "rustls-pemfile", "schannel", "security-framework", ] [[package]] name = "rustls-pemfile" -version = "0.2.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.13.1", + "base64 0.21.7", ] [[package]] -name = "rustls-pemfile" -version = "1.0.1" +name = "rustls-webpki" +version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "base64 0.13.1", + "ring 0.17.8", + "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.9" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "same-file" @@ -2874,19 +3332,18 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.20" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "lazy_static", - "windows-sys 0.36.1", + "windows-sys 0.52.0", ] [[package]] name = "schemars" -version = "0.8.11" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a5fb6c61f29e723026dc8e923d94c694313212abbecbbe5f55a7748eec5b307" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" dependencies = [ "dyn-clone", "schemars_derive", @@ -2896,27 +3353,21 @@ dependencies = [ [[package]] name = "schemars_derive" -version = "0.8.11" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f188d036977451159430f3b8dc82ec76364a42b7e289c2b18a9a18f4470058e9" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2", + "quote", "serde_derive_internals", - "syn 1.0.103", + "syn 2.0.66", ] [[package]] name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "scratch" -version = "1.0.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scroll" @@ -2929,32 +3380,32 @@ dependencies = [ [[package]] name = "scroll_derive" -version = "0.11.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdbda6ac5cd1321e724fa9cee216f3a61885889b896f073b8f82322789c5250e" +checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] name = "sct" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring", - "untrusted", + "ring 0.17.8", + "untrusted 0.9.0", ] [[package]] name = "security-framework" -version = "2.7.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags", + "bitflags 2.5.0", "core-foundation", "core-foundation-sys", "libc", @@ -2963,9 +3414,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.6.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ "core-foundation-sys", "libc", @@ -2973,55 +3424,64 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.14" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" + +[[package]] +name = "seqlock" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +checksum = "b5c67b6f14ecc5b86c66fa63d76b5092352678545a8a3cdae80aef5128371910" +dependencies = [ + "parking_lot", +] [[package]] name = "serde" -version = "1.0.147" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.7" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfc50e8183eeeb6178dcb167ae34a8051d63535023ae38b5d8d12beae193d37b" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.147" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] name = "serde_derive_internals" -version = "0.26.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] name = "serde_json" -version = "1.0.87" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ "itoa", "ryu", @@ -3041,26 +3501,36 @@ dependencies = [ ] [[package]] -name = "serde_yaml" -version = "0.8.26" +name = "serde_with" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" dependencies = [ - "indexmap", - "ryu", "serde", - "yaml-rust", + "serde_with_macros", ] [[package]] -name = "sha-1" -version = "0.10.0" +name = "serde_with_macros" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "sha1" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.5", + "digest 0.10.7", ] [[package]] @@ -3078,13 +3548,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.5", + "digest 0.10.7", ] [[package]] @@ -3101,28 +3571,34 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.5", + "digest 0.10.7", "keccak", ] [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] +[[package]] +name = "shell-words" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" + [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] @@ -3133,6 +3609,12 @@ version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + [[package]] name = "sized-chunks" version = "0.6.5" @@ -3145,37 +3627,37 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.10.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.4.7" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "winapi", + "windows-sys 0.52.0", ] [[package]] name = "solana-account-decoder" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301f42bfbb5fc3dae9068f485544d4260af768d34b773ae9bfc9faf09ea737a" +checksum = "4973213a11c2e1b924b36e0c6688682b5aa4623f8d4eeaa1204c32cee524e6d6" dependencies = [ "Inflector", - "base64 0.13.1", + "base64 0.21.7", "bincode", "bs58", "bv", @@ -3183,29 +3665,90 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "solana-address-lookup-table-program", "solana-config-program", "solana-sdk", - "solana-vote-program", - "spl-token", + "spl-token 4.0.0", "spl-token-2022", + "spl-token-group-interface", + "spl-token-metadata-interface", "thiserror", "zstd", ] [[package]] -name = "solana-address-lookup-table-program" -version = "1.14.7" +name = "solana-accounts-db" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a3d1316bdac7ec880e2e73be90ccaaf13d1f868cbc15904d3e8030f6c65169" +checksum = "74c06263320e399af20d46c8cebea7a1d5dc1bc56f31f8dfaacf7119576c48a7" dependencies = [ + "arrayref", "bincode", + "blake3", + "bv", "bytemuck", + "byteorder", + "bzip2", + "crossbeam-channel", + "dashmap", + "flate2", + "fnv", + "im", + "index_list", + "itertools", + "lazy_static", "log", - "num-derive", + "lz4", + "memmap2", + "modular-bitfield", + "num-derive 0.4.2", "num-traits", - "rustc_version", - "serde", + "num_cpus", + "num_enum 0.7.2", + "ouroboros", + "percentage", + "qualifier_attr", + "rand 0.8.5", + "rayon", + "regex", + "rustc_version", + "seqlock", + "serde", + "serde_derive", + "smallvec", + "solana-bucket-map", + "solana-config-program", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-measure", + "solana-metrics", + "solana-nohash-hasher", + "solana-program-runtime", + "solana-rayon-threadlimit", + "solana-sdk", + "solana-stake-program", + "solana-system-program", + "solana-vote-program", + "static_assertions", + "strum", + "strum_macros", + "tar", + "tempfile", + "thiserror", +] + +[[package]] +name = "solana-address-lookup-table-program" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e57cb8f2e90361280b246f70bb7f5f86f4e4ff1ad5bbdfe18a81bea141f03a" +dependencies = [ + "bincode", + "bytemuck", + "log", + "num-derive 0.4.2", + "num-traits", + "rustc_version", + "serde", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-program", @@ -3216,11 +3759,11 @@ dependencies = [ [[package]] name = "solana-banks-client" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4b07f90c5eba4ce3e4ac4dcf7a87c21e5289153050e0039fddcded4d775b451" +checksum = "7c65a9540370523f3ade7190526309337cc50f1d742b3341dfa7357da3f59a56" dependencies = [ - "borsh", + "borsh 1.5.1", "futures", "solana-banks-interface", "solana-program", @@ -3233,9 +3776,9 @@ dependencies = [ [[package]] name = "solana-banks-interface" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a137862450fe7c60736e3343a136d5af7111a70ecbcf3d5199746acbf50aefd" +checksum = "62b1dc20a7a71cf37bcbc2a3a5dfd73d7410a13850aa68d954a9c09e6a77e652" dependencies = [ "serde", "solana-sdk", @@ -3244,13 +3787,14 @@ dependencies = [ [[package]] name = "solana-banks-server" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "912cc6b1b997271869fe6083b265eb021f0b71370f5f758bb9b4666fb6253d43" +checksum = "d449d55d3c5c3fe4c9f0c9f790a9feabe294f8ff0b4c6b771a20b2313ad8974a" dependencies = [ "bincode", "crossbeam-channel", "futures", + "solana-accounts-db", "solana-banks-interface", "solana-client", "solana-runtime", @@ -3259,21 +3803,20 @@ dependencies = [ "tarpc", "tokio", "tokio-serde", - "tokio-stream", ] [[package]] name = "solana-bpf-loader-program" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d906627789e0cb016ee45be364f5e818ebdd729126a36e87c78de584e0d73735" +checksum = "6b1a55b8533f2dc716602e7c1b2bd555d5ac598ef6e80d28a517e6f31baf042e" dependencies = [ "bincode", "byteorder", "libsecp256k1", "log", + "scopeguard", "solana-measure", - "solana-metrics", "solana-program-runtime", "solana-sdk", "solana-zk-token-sdk", @@ -3283,14 +3826,17 @@ dependencies = [ [[package]] name = "solana-bucket-map" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18f85ece62d9e147f08a49c6fa49d34c5fd5e8af89ac26c0a92c331fe29a1283" +checksum = "fda213af7ae26ce249120f211060d2a85d87fe367c6490ee19b70845cbd320fc" dependencies = [ + "bv", + "bytemuck", "log", "memmap2", "modular-bitfield", - "rand 0.7.3", + "num_enum 0.7.2", + "rand 0.8.5", "solana-measure", "solana-sdk", "tempfile", @@ -3298,14 +3844,13 @@ dependencies = [ [[package]] name = "solana-clap-utils" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dae89175548ab57598ec68051b99234cd4a92a92ea3dac90fa6c48c74a3af28" +checksum = "909f4553d0b31bb5b97533a6b64cc321a4eace9112d6efbabcf4408ea1b3f1db" dependencies = [ "chrono", "clap 2.34.0", "rpassword", - "solana-perf", "solana-remote-wallet", "solana-sdk", "thiserror", @@ -3314,81 +3859,44 @@ dependencies = [ "url", ] -[[package]] -name = "solana-cli-config" -version = "1.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d75a1cd1e7f04b50a2df322721ba76dd1fafd94623ceb3eab64479bd21571a0" -dependencies = [ - "dirs-next", - "lazy_static", - "serde", - "serde_derive", - "serde_yaml", - "solana-clap-utils", - "solana-sdk", - "url", -] - [[package]] name = "solana-client" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f420729f477b91581874613f917f4bba9d8e96bf778b22f866f2913fa8f4546d" +checksum = "c5cc431df6cc1dd964134fa4ec7df765d3af3fae9c2148f96a3c4fb500290633" dependencies = [ - "async-mutex", "async-trait", - "base64 0.13.1", "bincode", - "bs58", - "bytes", - "clap 2.34.0", - "crossbeam-channel", - "enum_dispatch", + "dashmap", "futures", "futures-util", - "indexmap", + "indexmap 2.2.6", "indicatif", - "itertools 0.10.5", - "jsonrpc-core", - "lazy_static", "log", "quinn", - "quinn-proto", - "rand 0.7.3", - "rand_chacha 0.2.2", "rayon", - "reqwest", - "rustls", - "semver", - "serde", - "serde_derive", - "serde_json", - "solana-account-decoder", - "solana-clap-utils", - "solana-faucet", + "solana-connection-cache", "solana-measure", "solana-metrics", - "solana-net-utils", + "solana-pubsub-client", + "solana-quic-client", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-rpc-client-nonce-utils", "solana-sdk", "solana-streamer", - "solana-transaction-status", - "solana-version", - "solana-vote-program", - "spl-token-2022", + "solana-thin-client", + "solana-tpu-client", + "solana-udp-client", "thiserror", "tokio", - "tokio-stream", - "tokio-tungstenite", - "tungstenite", - "url", ] [[package]] name = "solana-compute-budget-program" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c69e403ffb42b9da1cb06a937b208a293269f031ace82fe57e3a70be51e65761" +checksum = "9eb36ef3c3a1f38515c1ae0d255c4d6e5e635a856ac2aa1cd5f892b3db58e857" dependencies = [ "solana-program-runtime", "solana-sdk", @@ -3396,9 +3904,9 @@ dependencies = [ [[package]] name = "solana-config-program" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2afc57e9a42e836bfc5363293969f464106db22a2fd653968708e0313429dba8" +checksum = "e38b040d3a42e8f7d80c4a86bb0d49d7aed663b56b0fe0ae135d2d145fb7ae3a" dependencies = [ "bincode", "chrono", @@ -3409,58 +3917,71 @@ dependencies = [ ] [[package]] -name = "solana-faucet" -version = "1.14.7" +name = "solana-connection-cache" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f0fb1e5de36e1828a4885deb5e06f299d9983c23ab81fdc890f4d03db844ea" +checksum = "ae02622c63943485f0af3d0896626eaf6478e734f0b6bc61c7cc5320963c6e75" dependencies = [ + "async-trait", "bincode", - "byteorder", - "clap 2.34.0", "crossbeam-channel", + "futures-util", + "indexmap 2.2.6", "log", - "serde", - "serde_derive", - "solana-clap-utils", - "solana-cli-config", - "solana-logger", + "rand 0.8.5", + "rayon", + "rcgen", + "solana-measure", "solana-metrics", "solana-sdk", - "solana-version", - "spl-memo", "thiserror", "tokio", ] +[[package]] +name = "solana-cost-model" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "838532d8437d00958621d2589d6033e9c69ea95cd0936efa8964146e49dcff53" +dependencies = [ + "lazy_static", + "log", + "rustc_version", + "solana-address-lookup-table-program", + "solana-bpf-loader-program", + "solana-compute-budget-program", + "solana-config-program", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-loader-v4-program", + "solana-metrics", + "solana-program-runtime", + "solana-sdk", + "solana-stake-program", + "solana-system-program", + "solana-vote-program", +] + [[package]] name = "solana-frozen-abi" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e9d5107e663df4a87c658ee764e9f0e4d15adf8bc1d1c9088b45ed8eaaf4958" +checksum = "4867f66e9527fa44451c861c1dc6d9b2a7c7a668d7c6a297cdefbe39f4395b33" dependencies = [ - "ahash", - "blake3", - "block-buffer 0.9.0", + "block-buffer 0.10.4", "bs58", "bv", - "byteorder", - "cc", "either", "generic-array", - "getrandom 0.1.16", - "hashbrown 0.12.3", "im", "lazy_static", "log", "memmap2", - "once_cell", - "rand_core 0.6.4", "rustc_version", "serde", "serde_bytes", "serde_derive", - "serde_json", - "sha2 0.10.6", + "sha2 0.10.8", "solana-frozen-abi-macro", "subtle", "thiserror", @@ -3468,21 +3989,34 @@ dependencies = [ [[package]] name = "solana-frozen-abi-macro" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e4600fe5ae28cec848debc4ea3b41f34d9d8fd088aca209fbb1e8205489d08d" +checksum = "168f24d97347b85f05192df58d6be3e3047a4aadc4001bc1b9e711a5ec878eea" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2", + "quote", "rustc_version", - "syn 1.0.103", + "syn 2.0.66", +] + +[[package]] +name = "solana-loader-v4-program" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98c426482234b7c267a5e0dfa8198442e1ffad2ad6c521f6b810949bc2719215" +dependencies = [ + "log", + "solana-measure", + "solana-program-runtime", + "solana-sdk", + "solana_rbpf", ] [[package]] name = "solana-logger" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f78a1849908659ed28696b92f030b1048b8ddafadfad0e95e79dcd21fe31072" +checksum = "a0511082fc62f2d086520fff5aa1917c389d8c840930c08ad255ae05952c08a2" dependencies = [ "env_logger", "lazy_static", @@ -3491,9 +4025,9 @@ dependencies = [ [[package]] name = "solana-measure" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7597f7bc74f86e77aad037369b5f5176dfb23fe01a58df350e4d19c12faf8f7f" +checksum = "be55a3df105431d25f86f2a7da0cbbde5f54c1f0782ca59367ea4a8037bc6797" dependencies = [ "log", "solana-sdk", @@ -3501,9 +4035,9 @@ dependencies = [ [[package]] name = "solana-metrics" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7d280910a33496a33222f3a15f0537d33c55aadf16616ed02cc4731a2bf465f" +checksum = "ddec097ed7572804389195128dbd57958b427829153c6cd8ec3343c86fe3cd22" dependencies = [ "crossbeam-channel", "gethostname", @@ -3511,20 +4045,21 @@ dependencies = [ "log", "reqwest", "solana-sdk", + "thiserror", ] [[package]] name = "solana-net-utils" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bda47bc41e4e6f43de660786541325550f21383b44bf163a04ca4b214fec850" +checksum = "258fa7c29fb7605b8d2ed89aa0d43c640d14f4147ad1f5b3fdad19a1ac145ca5" dependencies = [ "bincode", - "clap 3.2.23", + "clap 3.2.25", "crossbeam-channel", "log", "nix", - "rand 0.7.3", + "rand 0.8.5", "serde", "serde_derive", "socket2", @@ -3535,27 +4070,35 @@ dependencies = [ "url", ] +[[package]] +name = "solana-nohash-hasher" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8a731ed60e89177c8a7ab05fe0f1511cedd3e70e773f288f9de33a9cfdc21e" + [[package]] name = "solana-perf" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fccf3d9e7f6f75727811a618ccd4016d11073023ae9e459ae35d46fb009bde1c" +checksum = "ca422edcf16a6e64003ca118575ea641f7b750f14a0ad28c71dd84f33dcb912a" dependencies = [ - "ahash", + "ahash 0.8.11", "bincode", "bv", "caps", "curve25519-dalek", - "dlopen", - "dlopen_derive", + "dlopen2", "fnv", "lazy_static", "libc", "log", "nix", - "rand 0.7.3", + "rand 0.8.5", "rayon", + "rustc_version", "serde", + "solana-frozen-abi", + "solana-frozen-abi-macro", "solana-metrics", "solana-rayon-threadlimit", "solana-sdk", @@ -3564,16 +4107,21 @@ dependencies = [ [[package]] name = "solana-program" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512475cccb7e13f96ba76ed091b2d79a8431a485c73be728cd2235f9adba5a4e" +checksum = "2bc5a636dc75e5c25651e34f7a36afc9ae60d38166687c5b0375abb580ac81a2" dependencies = [ - "base64 0.13.1", + "ark-bn254", + "ark-ec", + "ark-ff", + "ark-serialize", + "base64 0.21.7", "bincode", - "bitflags", + "bitflags 2.5.0", "blake3", - "borsh", - "borsh-derive", + "borsh 0.10.3", + "borsh 0.9.3", + "borsh 1.5.1", "bs58", "bv", "bytemuck", @@ -3581,27 +4129,28 @@ dependencies = [ "console_error_panic_hook", "console_log", "curve25519-dalek", - "getrandom 0.2.8", - "itertools 0.10.5", + "getrandom 0.2.15", + "itertools", "js-sys", "lazy_static", "libc", "libsecp256k1", + "light-poseidon", "log", - "memoffset", - "num-derive", + "memoffset 0.9.1", + "num-bigint 0.4.5", + "num-derive 0.4.2", "num-traits", - "parking_lot 0.12.1", - "rand 0.7.3", - "rand_chacha 0.2.2", + "parking_lot", + "rand 0.8.5", "rustc_version", "rustversion", "serde", "serde_bytes", "serde_derive", "serde_json", - "sha2 0.10.6", - "sha3 0.10.6", + "sha2 0.10.8", + "sha3 0.10.8", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-sdk-macro", @@ -3613,21 +4162,21 @@ dependencies = [ [[package]] name = "solana-program-runtime" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0741578bbee3a0170a620a4185202d8a559ac4bbba4435fd3d56c8cf432e5ca4" +checksum = "bf373c3da0387f47fee4c5ed2465a9628b9db026a62211a692a9285aa9251544" dependencies = [ - "base64 0.13.1", + "base64 0.21.7", "bincode", "eager", "enum-iterator", - "itertools 0.10.5", + "itertools", "libc", - "libloading", "log", - "num-derive", + "num-derive 0.4.2", "num-traits", - "rand 0.7.3", + "percentage", + "rand 0.8.5", "rustc_version", "serde", "solana-frozen-abi", @@ -3635,23 +4184,27 @@ dependencies = [ "solana-measure", "solana-metrics", "solana-sdk", + "solana_rbpf", "thiserror", ] [[package]] name = "solana-program-test" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3856afee22b7b5bfac80f25066ea9d884621a81c9586a6f1fa96ea0c8acea8" +checksum = "9194b8744c5b135401ab4a2923a1072d3a67697bd50f7450a4ed5302f36a6999" dependencies = [ "assert_matches", "async-trait", - "base64 0.13.1", + "base64 0.21.7", "bincode", "chrono-humanize", + "crossbeam-channel", "log", "serde", + "solana-accounts-db", "solana-banks-client", + "solana-banks-interface", "solana-banks-server", "solana-bpf-loader-program", "solana-logger", @@ -3659,15 +4212,69 @@ dependencies = [ "solana-runtime", "solana-sdk", "solana-vote-program", + "solana_rbpf", + "test-case", + "thiserror", + "tokio", +] + +[[package]] +name = "solana-pubsub-client" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b9abc76168d19927561db6a3685b98752bd0961b4ce4f8b7f85ee12238c017" +dependencies = [ + "crossbeam-channel", + "futures-util", + "log", + "reqwest", + "semver", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-rpc-client-api", + "solana-sdk", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tungstenite", + "url", +] + +[[package]] +name = "solana-quic-client" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7952c5306a0be5f5276448cd20246b31265bfa884f29a077a24303c6a16aeb34" +dependencies = [ + "async-mutex", + "async-trait", + "futures", + "itertools", + "lazy_static", + "log", + "quinn", + "quinn-proto", + "rcgen", + "rustls", + "solana-connection-cache", + "solana-measure", + "solana-metrics", + "solana-net-utils", + "solana-rpc-client-api", + "solana-sdk", + "solana-streamer", "thiserror", "tokio", ] [[package]] name = "solana-rayon-threadlimit" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5acea18b6b1270e8bbb5fb47b8fd943bd30d673bb12b74ae6b485a0ae87da50" +checksum = "a4fa0cc66f8e73d769bca2ede3012ba2ef8ab67963e832808665369f2cf81743" dependencies = [ "lazy_static", "num_cpus", @@ -3675,16 +4282,16 @@ dependencies = [ [[package]] name = "solana-remote-wallet" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdabea51bcec2773d7a65a37f6e9e9f497ffd6f0b2e8bdc719a9e17c8f711f64" +checksum = "289803796d4ff7b4699504d3ab9e9d9c5205ea3892b2ebe397b377494dbd75d4" dependencies = [ "console", "dialoguer", "log", - "num-derive", + "num-derive 0.4.2", "num-traits", - "parking_lot 0.12.1", + "parking_lot", "qstring", "semver", "solana-sdk", @@ -3692,13 +4299,76 @@ dependencies = [ "uriparse", ] +[[package]] +name = "solana-rpc-client" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cb55a08018776a62ecff52139fbcdab1a7baa4e8f077202be58156e8dde4d5f" +dependencies = [ + "async-trait", + "base64 0.21.7", + "bincode", + "bs58", + "indicatif", + "log", + "reqwest", + "semver", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-rpc-client-api", + "solana-sdk", + "solana-transaction-status", + "solana-version", + "solana-vote-program", + "tokio", +] + +[[package]] +name = "solana-rpc-client-api" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72a8403038f4d6ab65bc7e7afb3afe8d9824c592232553c5cef55cf3de36025d" +dependencies = [ + "base64 0.21.7", + "bs58", + "jsonrpc-core", + "reqwest", + "semver", + "serde", + "serde_derive", + "serde_json", + "solana-account-decoder", + "solana-sdk", + "solana-transaction-status", + "solana-version", + "spl-token-2022", + "thiserror", +] + +[[package]] +name = "solana-rpc-client-nonce-utils" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4caca735caf76d51c074c3bacbfe38094bf7f92cfbe7b5b13f3bc4946e64f889" +dependencies = [ + "clap 2.34.0", + "solana-clap-utils", + "solana-rpc-client", + "solana-sdk", + "thiserror", +] + [[package]] name = "solana-runtime" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3db3e7607c02193b84e6fefc66ee2aa24df4b8741ec85e0bc585e9248fe5eac" +checksum = "b699943045665038bfa4e76dd2582b4c390f1aec6ab5edef36da43afe3469f1d" dependencies = [ + "aquamarine", "arrayref", + "base64 0.21.7", "bincode", "blake3", "bv", @@ -3712,37 +4382,52 @@ dependencies = [ "fnv", "im", "index_list", - "itertools 0.10.5", + "itertools", "lazy_static", "log", + "lru", "lz4", "memmap2", - "num-derive", + "mockall", + "modular-bitfield", + "num-derive 0.4.2", "num-traits", "num_cpus", - "once_cell", + "num_enum 0.7.2", "ouroboros", - "rand 0.7.3", + "percentage", + "qualifier_attr", + "rand 0.8.5", "rayon", "regex", "rustc_version", "serde", "serde_derive", + "serde_json", + "solana-accounts-db", "solana-address-lookup-table-program", + "solana-bpf-loader-program", "solana-bucket-map", "solana-compute-budget-program", "solana-config-program", + "solana-cost-model", "solana-frozen-abi", "solana-frozen-abi-macro", + "solana-loader-v4-program", "solana-measure", "solana-metrics", + "solana-perf", "solana-program-runtime", "solana-rayon-threadlimit", "solana-sdk", "solana-stake-program", + "solana-system-program", + "solana-version", + "solana-vote", "solana-vote-program", "solana-zk-token-proof-program", "solana-zk-token-sdk", + "static_assertions", "strum", "strum_macros", "symlink", @@ -3754,45 +4439,49 @@ dependencies = [ [[package]] name = "solana-sdk" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cb45fd782d3793c3821dd961b9c7a28b675e187f7f22cff06e694c7743904ce" +checksum = "df43d3a1e1637397ab43cbc216a5a8f977ec8a3cc3f3ae8c3851c83a3255dbcf" dependencies = [ "assert_matches", - "base64 0.13.1", + "base64 0.21.7", "bincode", - "bitflags", - "borsh", + "bitflags 2.5.0", + "borsh 1.5.1", "bs58", "bytemuck", "byteorder", "chrono", "derivation-path", - "digest 0.10.5", + "digest 0.10.7", "ed25519-dalek", "ed25519-dalek-bip32", "generic-array", "hmac 0.12.1", - "itertools 0.10.5", + "itertools", "js-sys", "lazy_static", "libsecp256k1", "log", "memmap2", - "num-derive", + "num-derive 0.4.2", "num-traits", + "num_enum 0.7.2", "pbkdf2 0.11.0", "qstring", + "qualifier_attr", "rand 0.7.3", - "rand_chacha 0.2.2", + "rand 0.8.5", "rustc_version", "rustversion", "serde", "serde_bytes", "serde_derive", "serde_json", - "sha2 0.10.6", - "sha3 0.10.6", + "serde_with", + "sha2 0.10.8", + "sha3 0.10.8", + "siphasher", "solana-frozen-abi", "solana-frozen-abi-macro", "solana-logger", @@ -3805,22 +4494,28 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08cc4804804ecb9eb07a16c7ff2d4a770fe0533298f36f867a5efc2e3284745" +checksum = "86c76414183a325038ff020b22c07d1e9d2da0703ddc0244acfed37ee2921d96" dependencies = [ "bs58", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2", + "quote", "rustversion", - "syn 1.0.103", + "syn 2.0.66", ] +[[package]] +name = "solana-security-txt" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" + [[package]] name = "solana-send-transaction-service" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120b591e73ce2397bfd60f818ca90a118b98d85959edddadbb18f801ff581e32" +checksum = "e056d865d22548bb7228121e118aa632486fc1a33a100961e5e98b5663371384" dependencies = [ "crossbeam-channel", "log", @@ -3829,42 +4524,37 @@ dependencies = [ "solana-metrics", "solana-runtime", "solana-sdk", + "solana-tpu-client", ] [[package]] name = "solana-stake-program" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5a4bfd62f9a81e1a87f461e9f61e449ff6c6d0a3bd129d8db8d108412e7393" +checksum = "c5dd1bc07beb75da5df5e07301d3d0d6104872c9afade22b910af9061fb4bc15" dependencies = [ "bincode", "log", - "num-derive", - "num-traits", "rustc_version", - "serde", - "serde_derive", "solana-config-program", - "solana-frozen-abi", - "solana-frozen-abi-macro", - "solana-metrics", "solana-program-runtime", "solana-sdk", "solana-vote-program", - "thiserror", ] [[package]] name = "solana-streamer" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ced03c13b40fb283782ddc302d8bb7343e3c5f0ce07eb5412a641875b0d4f9" +checksum = "fad1bdb955ec6d23a1dbf87e403ff3e610d68616275693125a893d7ed4b2d323" dependencies = [ + "async-channel", + "bytes", "crossbeam-channel", "futures-util", "histogram", - "indexmap", - "itertools 0.10.5", + "indexmap 2.2.6", + "itertools", "libc", "log", "nix", @@ -3872,9 +4562,11 @@ dependencies = [ "percentage", "pkcs8", "quinn", - "rand 0.7.3", + "quinn-proto", + "rand 0.8.5", "rcgen", "rustls", + "smallvec", "solana-metrics", "solana-perf", "solana-sdk", @@ -3883,16 +4575,69 @@ dependencies = [ "x509-parser", ] +[[package]] +name = "solana-system-program" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78733745268c96d5a29c09cde9f0a6c9d662abba43e661b75dd858da8e3d0b2e" +dependencies = [ + "bincode", + "log", + "serde", + "serde_derive", + "solana-program-runtime", + "solana-sdk", +] + +[[package]] +name = "solana-thin-client" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc301310ba0755c449a8800136f67f8ad14419b366404629894cd10021495360" +dependencies = [ + "bincode", + "log", + "rayon", + "solana-connection-cache", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-sdk", +] + +[[package]] +name = "solana-tpu-client" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb887bd5078ff015e103e9ee54a6713380590efa8ff1804b3a653f07188928c6" +dependencies = [ + "async-trait", + "bincode", + "futures-util", + "indexmap 2.2.6", + "indicatif", + "log", + "rayon", + "solana-connection-cache", + "solana-measure", + "solana-metrics", + "solana-pubsub-client", + "solana-rpc-client", + "solana-rpc-client-api", + "solana-sdk", + "thiserror", + "tokio", +] + [[package]] name = "solana-transaction-status" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89bd8aad27d2f4f9eabcb8979ec360a2cc2237845dfe9f9c53bb2a9bfd377029" +checksum = "4a0cdfdf63192fb60de094fae8e81159e4e3e9aac9659fe3f9ef0e707023fb32" dependencies = [ "Inflector", - "base64 0.13.1", + "base64 0.21.7", "bincode", - "borsh", + "borsh 0.10.3", "bs58", "lazy_static", "log", @@ -3900,23 +4645,34 @@ dependencies = [ "serde_derive", "serde_json", "solana-account-decoder", - "solana-address-lookup-table-program", - "solana-measure", - "solana-metrics", "solana-sdk", - "solana-vote-program", "spl-associated-token-account", "spl-memo", - "spl-token", + "spl-token 4.0.0", "spl-token-2022", "thiserror", ] +[[package]] +name = "solana-udp-client" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ea0d6d8d66e36371577f51c4d1d6192a66f1fa4efe7161a36d94677640dcadb" +dependencies = [ + "async-trait", + "solana-connection-cache", + "solana-net-utils", + "solana-sdk", + "solana-streamer", + "thiserror", + "tokio", +] + [[package]] name = "solana-version" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079bd2671de7c61165e25b2002c5b7178f216b221fe2ba3c8fd8b2af96f6a93" +checksum = "6f4c2f531c22ce806b211118be8928a791425f97de4592371fb57b246ed33e34" dependencies = [ "log", "rustc_version", @@ -3928,15 +4684,34 @@ dependencies = [ "solana-sdk", ] +[[package]] +name = "solana-vote" +version = "1.18.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28ab95a5d19ff0464def1777adaae5a74e1edc9e6818103064c18fdc2643f6cb" +dependencies = [ + "crossbeam-channel", + "itertools", + "log", + "rustc_version", + "serde", + "serde_derive", + "solana-frozen-abi", + "solana-frozen-abi-macro", + "solana-sdk", + "solana-vote-program", + "thiserror", +] + [[package]] name = "solana-vote-program" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b83e383b6e1810ae9b3ececd1e9a620e19983e3959ed22866ece6fd6c39c0658" +checksum = "6d8a6486017e71a3714a8e1a635e17209135cc20535ba9808ccf106d80ff6e8b" dependencies = [ "bincode", "log", - "num-derive", + "num-derive 0.4.2", "num-traits", "rustc_version", "serde", @@ -3944,6 +4719,7 @@ dependencies = [ "solana-frozen-abi", "solana-frozen-abi-macro", "solana-metrics", + "solana-program", "solana-program-runtime", "solana-sdk", "thiserror", @@ -3951,13 +4727,12 @@ dependencies = [ [[package]] name = "solana-zk-token-proof-program" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d5b9282116c97e83211b5feb861b6e7c2366512b8eda79835ef7f644e57636" +checksum = "f1e3dfb2deb449f7eb1dbd0c7e66dd95ec7b1303a5788673f9fbc9b5a5ea59f2" dependencies = [ "bytemuck", - "getrandom 0.1.16", - "num-derive", + "num-derive 0.4.2", "num-traits", "solana-program-runtime", "solana-sdk", @@ -3966,23 +4741,21 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "1.14.7" +version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d4f9818b158e7a49266b83e0c06e551ba429d2395a55de5803eb6e2daa1260c" +checksum = "513407f88394e437b4ff5aad892bc5bf51a655ae2401e6e63549734d3695c46f" dependencies = [ "aes-gcm-siv", - "arrayref", - "base64 0.13.1", + "base64 0.21.7", "bincode", "bytemuck", "byteorder", - "cipher 0.4.3", "curve25519-dalek", "getrandom 0.1.16", - "itertools 0.10.5", + "itertools", "lazy_static", "merlin", - "num-derive", + "num-derive 0.4.2", "num-traits", "rand 0.7.3", "serde", @@ -3997,9 +4770,9 @@ dependencies = [ [[package]] name = "solana_rbpf" -version = "0.2.31" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80a28c5dfe7e8af38daa39d6561c8e8b9ed7a2f900951ebe7362ad6348d36c73" +checksum = "3d457cc2ba742c120492a64b7fa60e22c575e891f6b55039f4d736568fb112a3" dependencies = [ "byteorder", "combine", @@ -4011,95 +4784,266 @@ dependencies = [ "rustc-demangle", "scroll", "thiserror", + "winapi", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spki" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "spl-associated-token-account" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "992d9c64c2564cc8f63a4b508bf3ebcdf2254b0429b13cd1d31adb6162432a5f" +dependencies = [ + "assert_matches", + "borsh 0.10.3", + "num-derive 0.4.2", + "num-traits", + "solana-program", + "spl-token 4.0.0", + "spl-token-2022", + "thiserror", +] + +[[package]] +name = "spl-discriminator" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daa600f2fe56f32e923261719bae640d873edadbc5237681a39b8e37bfd4d263" +dependencies = [ + "bytemuck", + "solana-program", + "spl-discriminator-derive", +] + +[[package]] +name = "spl-discriminator-derive" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07fd7858fc4ff8fb0e34090e41d7eb06a823e1057945c26d480bfc21d2338a93" +dependencies = [ + "quote", + "spl-discriminator-syn", + "syn 2.0.66", +] + +[[package]] +name = "spl-discriminator-syn" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fea7be851bd98d10721782ea958097c03a0c2a07d8d4997041d0ece6319a63" +dependencies = [ + "proc-macro2", + "quote", + "sha2 0.10.8", + "syn 2.0.66", + "thiserror", +] + +[[package]] +name = "spl-memo" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f180b03318c3dbab3ef4e1e4d46d5211ae3c780940dd0a28695aba4b59a75a" +dependencies = [ + "solana-program", ] [[package]] -name = "spin" -version = "0.5.2" +name = "spl-name-service" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "4c2920a0762e3fdbd02a24469787d9217f658776502265a9b99903557be28adf" +dependencies = [ + "borsh 0.9.3", + "num-derive 0.3.3", + "num-traits", + "solana-program", + "thiserror", +] [[package]] -name = "spki" -version = "0.5.4" +name = "spl-pod" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27" +checksum = "85a5db7e4efb1107b0b8e52a13f035437cdcb36ef99c58f6d467f089d9b2915a" dependencies = [ - "base64ct", - "der", + "borsh 0.10.3", + "bytemuck", + "solana-program", + "solana-zk-token-sdk", + "spl-program-error", ] [[package]] -name = "spl-associated-token-account" -version = "1.1.1" +name = "spl-program-error" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16a33ecc83137583902c3e13c02f34151c8b2f2b74120f9c2b3ff841953e083d" +checksum = "7e0657b6490196971d9e729520ba934911ff41fbb2cb9004463dbe23cf8b4b4f" dependencies = [ - "assert_matches", - "borsh", - "num-derive", + "num-derive 0.4.2", "num-traits", "solana-program", - "spl-token", - "spl-token-2022", + "spl-program-error-derive", "thiserror", ] [[package]] -name = "spl-memo" -version = "3.0.1" +name = "spl-program-error-derive" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1845dfe71fd68f70382232742e758557afe973ae19e6c06807b2c30f5d5cb474" +dependencies = [ + "proc-macro2", + "quote", + "sha2 0.10.8", + "syn 2.0.66", +] + +[[package]] +name = "spl-tlv-account-resolution" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325" +checksum = "56f335787add7fa711819f9e7c573f8145a5358a709446fe2d24bf2a88117c90" dependencies = [ + "bytemuck", "solana-program", + "spl-discriminator", + "spl-pod", + "spl-program-error", + "spl-type-length-value", ] [[package]] -name = "spl-name-service" -version = "0.2.0" +name = "spl-token" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2920a0762e3fdbd02a24469787d9217f658776502265a9b99903557be28adf" +checksum = "8e85e168a785e82564160dcb87b2a8e04cee9bfd1f4d488c729d53d6a4bd300d" dependencies = [ - "borsh", - "num-derive", + "arrayref", + "bytemuck", + "num-derive 0.3.3", "num-traits", + "num_enum 0.5.11", "solana-program", "thiserror", ] [[package]] name = "spl-token" -version = "3.5.0" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e85e168a785e82564160dcb87b2a8e04cee9bfd1f4d488c729d53d6a4bd300d" +checksum = "08459ba1b8f7c1020b4582c4edf0f5c7511a5e099a7a97570c9698d4f2337060" dependencies = [ "arrayref", "bytemuck", - "num-derive", + "num-derive 0.3.3", "num-traits", - "num_enum", + "num_enum 0.6.1", "solana-program", "thiserror", ] [[package]] name = "spl-token-2022" -version = "0.4.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0a97cbf60b91b610c846ccf8eecca96d92a24a19ffbf9fe06cd0c84e76ec45e" +checksum = "d697fac19fd74ff472dfcc13f0b442dd71403178ce1de7b5d16f83a33561c059" dependencies = [ "arrayref", "bytemuck", - "num-derive", + "num-derive 0.4.2", "num-traits", - "num_enum", + "num_enum 0.7.2", "solana-program", + "solana-security-txt", "solana-zk-token-sdk", "spl-memo", - "spl-token", + "spl-pod", + "spl-token 4.0.0", + "spl-token-group-interface", + "spl-token-metadata-interface", + "spl-transfer-hook-interface", + "spl-type-length-value", "thiserror", ] +[[package]] +name = "spl-token-group-interface" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b889509d49fa74a4a033ca5dae6c2307e9e918122d97e58562f5c4ffa795c75d" +dependencies = [ + "bytemuck", + "solana-program", + "spl-discriminator", + "spl-pod", + "spl-program-error", +] + +[[package]] +name = "spl-token-metadata-interface" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c16ce3ba6979645fb7627aa1e435576172dd63088dc7848cb09aa331fa1fe4f" +dependencies = [ + "borsh 0.10.3", + "solana-program", + "spl-discriminator", + "spl-pod", + "spl-program-error", + "spl-type-length-value", +] + +[[package]] +name = "spl-transfer-hook-interface" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aabdb7c471566f6ddcee724beb8618449ea24b399e58d464d6b5bc7db550259" +dependencies = [ + "arrayref", + "bytemuck", + "solana-program", + "spl-discriminator", + "spl-pod", + "spl-program-error", + "spl-tlv-account-resolution", + "spl-type-length-value", +] + +[[package]] +name = "spl-type-length-value" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f9ebd75d29c5f48de5f6a9c114e08531030b75b8ac2c557600ac7da0b73b1e8" +dependencies = [ + "bytemuck", + "solana-program", + "spl-discriminator", + "spl-pod", + "spl-program-error", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -4118,6 +5062,12 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "strum" version = "0.24.1" @@ -4134,10 +5084,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ "heck", - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2", + "quote", "rustversion", - "syn 1.0.103", + "syn 1.0.109", ] [[package]] @@ -4154,43 +5104,82 @@ checksum = "a7973cce6668464ea31f176d85b13c7ab3bba2cb3b77a2ed26abd7801688010a" [[package]] name = "syn" -version = "0.15.44" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "unicode-xid 0.1.0", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] name = "syn" -version = "1.0.103" +version = "2.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", + "proc-macro2", + "quote", "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + [[package]] name = "synstructure" version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", - "unicode-xid 0.2.4", + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", ] [[package]] name = "tar" -version = "0.4.38" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b55807c0344e1e6c04d7c965f5289c39a8d94ae23ed5c0b57aabac549f871c6" +checksum = "cb797dad5fb5b76fcf519e702f4a589483b5ef06567f160c392832c1f5e44909" dependencies = [ "filetime", "libc", @@ -4227,42 +5216,69 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee42b4e559f17bce0385ebf511a7beb67d5cc33c12c96b7f4e9789919d9c10f" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] name = "tempfile" -version = "3.3.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi", + "rustix", + "windows-sys 0.52.0", ] [[package]] name = "termcolor" -version = "1.1.3" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] [[package]] -name = "terminal_size" -version = "0.1.17" +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "test-case" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2550dd13afcd286853192af8601920d959b14c401fcece38071d53bf0768a8" +dependencies = [ + "test-case-macros", +] + +[[package]] +name = "test-case-core" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df" +checksum = "adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f" dependencies = [ - "libc", - "winapi", + "cfg-if", + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "test-case-macros" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", + "test-case-core", ] [[package]] @@ -4276,57 +5292,50 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" [[package]] name = "thiserror" -version = "1.0.37" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.37" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ + "cfg-if", "once_cell", ] [[package]] name = "time" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "time" -version = "0.3.17" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ + "deranged", "itoa", + "num-conv", + "powerfmt", "serde", "time-core", "time-macros", @@ -4334,16 +5343,17 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.6" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ + "num-conv", "time-core", ] @@ -4377,50 +5387,48 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.14.1" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d0183f6f6001549ab68f8c7585093bb732beefbcf6d23a10b9b95c73a1dd49" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" dependencies = [ - "autocfg", + "backtrace", "bytes", "libc", - "memchr", "mio", "num_cpus", - "once_cell", - "parking_lot 0.11.2", + "parking_lot", "pin-project-lite", "signal-hook-registry", + "socket2", "tokio-macros", - "winapi", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "1.8.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] name = "tokio-rustls" -version = "0.23.4" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ "rustls", "tokio", - "webpki", ] [[package]] @@ -4441,9 +5449,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.11" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -4452,9 +5460,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.17.2" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f714dd15bead90401d77e04243611caec13726c2408afd5b31901dfcdcb3b181" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" dependencies = [ "futures-util", "log", @@ -4462,8 +5470,7 @@ dependencies = [ "tokio", "tokio-rustls", "tungstenite", - "webpki", - "webpki-roots", + "webpki-roots 0.25.4", ] [[package]] @@ -4483,27 +5490,54 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.2" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] name = "toml" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow", +] + [[package]] name = "tower-service" version = "0.3.2" @@ -4512,11 +5546,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if", "log", "pin-project-lite", "tracing-attributes", @@ -4525,20 +5558,20 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", "valuable", @@ -4559,9 +5592,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.16" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "sharded-slab", "thread_local", @@ -4570,70 +5603,63 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.17.3" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" dependencies = [ - "base64 0.13.1", "byteorder", "bytes", + "data-encoding", "http", "httparse", "log", "rand 0.8.5", "rustls", - "sha-1", + "sha1", "thiserror", "url", "utf-8", - "webpki", - "webpki-roots", + "webpki-roots 0.24.0", ] [[package]] name = "typenum" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.5" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] [[package]] name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" - -[[package]] -name = "unicode-xid" -version = "0.1.0" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" [[package]] name = "unicode-xid" @@ -4666,6 +5692,12 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "uriparse" version = "0.6.4" @@ -4678,9 +5710,9 @@ dependencies = [ [[package]] name = "url" -version = "2.3.1" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -4719,22 +5751,20 @@ checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", - "winapi", "winapi-util", ] [[package]] name = "want" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" dependencies = [ - "log", "try-lock", ] @@ -4744,12 +5774,6 @@ version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -4758,9 +5782,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -4768,24 +5792,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -4795,61 +5819,57 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ - "quote 1.0.21", + "quote", "wasm-bindgen-macro-support", ] [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", + "proc-macro2", + "quote", + "syn 2.0.66", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", ] [[package]] -name = "webpki" -version = "0.22.0" +name = "webpki-roots" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "b291546d5d9d1eab74f069c77749f2cb8504a12caa20f0f2de93ddbf6f411888" dependencies = [ - "ring", - "untrusted", + "rustls-webpki", ] [[package]] name = "webpki-roots" -version = "0.22.5" +version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368bfe657969fb01238bb756d351dcade285e0f6fcbd36dcb23359a5169975be" -dependencies = [ - "webpki", -] +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "winapi" @@ -4869,11 +5889,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -4882,113 +5902,171 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.5", +] + [[package]] name = "windows-sys" -version = "0.36.1" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", + "windows-targets 0.48.5", ] [[package]] name = "windows-sys" -version = "0.42.0" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.0", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" [[package]] name = "windows_aarch64_msvc" -version = "0.36.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.42.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" [[package]] name = "windows_i686_gnu" -version = "0.36.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.42.0" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" [[package]] name = "windows_i686_msvc" -version = "0.36.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.42.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" [[package]] name = "windows_x86_64_gnu" -version = "0.36.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.42.0" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.42.0" +version = "0.52.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] [[package]] name = "winreg" -version = "0.10.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi", + "cfg-if", + "windows-sys 0.48.0", ] [[package]] @@ -5006,34 +6084,47 @@ dependencies = [ "oid-registry", "rusticata-macros", "thiserror", - "time 0.3.17", + "time", ] [[package]] name = "xattr" -version = "0.2.3" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" +checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" dependencies = [ "libc", + "linux-raw-sys", + "rustix", ] [[package]] -name = "yaml-rust" -version = "0.4.5" +name = "yasna" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "linked-hash-map", + "time", ] [[package]] -name = "yasna" -version = "0.5.0" +name = "zerocopy" +version = "0.7.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346d34a236c9d3e5f3b9b74563f238f955bbd05fa0b8b4efa53c130c43982f4c" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ - "time 0.3.17", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] @@ -5047,14 +6138,13 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "proc-macro2 1.0.47", - "quote 1.0.21", - "syn 1.0.103", - "synstructure", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] @@ -5078,10 +6168,10 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.1+zstd.1.5.2" +version = "2.0.11+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fd07cbbc53846d9145dbffdf6dd09a7a0aa52be46741825f5c97bdd4f73f12b" +checksum = "75652c55c0b6f3e6f12eb786fe1bc960396bf05a1eb3bf1f3691c3610ac2e6d4" dependencies = [ "cc", - "libc", + "pkg-config", ] diff --git a/program/Cargo.toml b/program/Cargo.toml index 6402616..a1e6da0 100644 --- a/program/Cargo.toml +++ b/program/Cargo.toml @@ -34,7 +34,7 @@ hexdump = "0.1.0" solana-sdk = "1.16.25" rand = "0.8.4" arrayref = "0.3.6" -solana-program-test =1.16.25.0" +solana-program-test = "1.16.25" tokio = {version="1.6", features = ["macros"]} regex = "1.5.5" gnuplot = "0.0.37" From 9c7f43b246aa5cc6129e27fa730e7387c0c20ac8 Mon Sep 17 00:00:00 2001 From: Vladimir Demidov Date: Mon, 24 Jun 2024 16:31:58 +0200 Subject: [PATCH 34/34] add anchor serialize and deserialize --- program/Cargo.lock | 221 +++++++++++++++++++++++++++++++-- program/Cargo.toml | 9 +- program/src/state/orderbook.rs | 4 +- 3 files changed, 218 insertions(+), 16 deletions(-) diff --git a/program/Cargo.lock b/program/Cargo.lock index 84ecca3..126cf00 100644 --- a/program/Cargo.lock +++ b/program/Cargo.lock @@ -67,6 +67,7 @@ dependencies = [ name = "agnostic-orderbook" version = "1.0.0" dependencies = [ + "anchor-lang", "arrayref", "bonfida-utils", "borsh 0.9.3", @@ -144,6 +145,184 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "anchor-attribute-access-control" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47fe28365b33e8334dd70ae2f34a43892363012fe239cf37d2ee91693575b1f8" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "anchor-attribute-account" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c288d496168268d198d9b53ee9f4f9d260a55ba4df9877ea1d4486ad6109e0f" +dependencies = [ + "anchor-syn", + "bs58 0.5.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "anchor-attribute-constant" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49b77b6948d0eeaaa129ce79eea5bbbb9937375a9241d909ca8fb9e006bb6e90" +dependencies = [ + "anchor-syn", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "anchor-attribute-error" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d20bb569c5a557c86101b944721d865e1fd0a4c67c381d31a44a84f07f84828" +dependencies = [ + "anchor-syn", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "anchor-attribute-event" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cebd8d0671a3a9dc3160c48598d652c34c77de6be4d44345b8b514323284d57" +dependencies = [ + "anchor-syn", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "anchor-attribute-program" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb2a5eb0860e661ab31aff7bb5e0288357b176380e985bade4ccb395981b42d" +dependencies = [ + "anchor-lang-idl", + "anchor-syn", + "anyhow", + "bs58 0.5.1", + "heck 0.3.3", + "proc-macro2", + "quote", + "serde_json", + "syn 1.0.109", +] + +[[package]] +name = "anchor-derive-accounts" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04368b5abef4266250ca8d1d12f4dff860242681e4ec22b885dcfe354fd35aa1" +dependencies = [ + "anchor-syn", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "anchor-derive-serde" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0bb0e0911ad4a70cab880cdd6287fe1e880a1a9d8e4e6defa8e9044b9796a6c" +dependencies = [ + "anchor-syn", + "borsh-derive-internal 0.10.3", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "anchor-derive-space" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef415ff156dc82e9ecb943189b0cb241b3a6bfc26a180234dc21bd3ef3ce0cb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "anchor-lang" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6620c9486d9d36a4389cab5e37dc34a42ed0bfaa62e6a75a2999ce98f8f2e373" +dependencies = [ + "anchor-attribute-access-control", + "anchor-attribute-account", + "anchor-attribute-constant", + "anchor-attribute-error", + "anchor-attribute-event", + "anchor-attribute-program", + "anchor-derive-accounts", + "anchor-derive-serde", + "anchor-derive-space", + "arrayref", + "base64 0.21.7", + "bincode", + "borsh 0.10.3", + "bytemuck", + "getrandom 0.2.15", + "solana-program", + "thiserror", +] + +[[package]] +name = "anchor-lang-idl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31cf97b4e6f7d6144a05e435660fcf757dbc3446d38d0e2b851d11ed13625bba" +dependencies = [ + "anchor-lang-idl-spec", + "anyhow", + "heck 0.3.3", + "serde", + "serde_json", + "sha2 0.10.8", +] + +[[package]] +name = "anchor-lang-idl-spec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" +dependencies = [ + "anyhow", + "serde", +] + +[[package]] +name = "anchor-syn" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f99daacb53b55cfd37ce14d6c9905929721137fd4c67bbab44a19802aecb622f" +dependencies = [ + "anyhow", + "bs58 0.5.1", + "heck 0.3.3", + "proc-macro2", + "quote", + "serde", + "serde_json", + "sha2 0.10.8", + "syn 1.0.109", + "thiserror", +] + [[package]] name = "android-tzdata" version = "0.1.1" @@ -719,6 +898,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + [[package]] name = "bumpalo" version = "3.16.0" @@ -1724,6 +1912,15 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "heck" version = "0.4.1" @@ -3659,7 +3856,7 @@ dependencies = [ "Inflector", "base64 0.21.7", "bincode", - "bs58", + "bs58 0.4.0", "bv", "lazy_static", "serde", @@ -3969,7 +4166,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4867f66e9527fa44451c861c1dc6d9b2a7c7a668d7c6a297cdefbe39f4395b33" dependencies = [ "block-buffer 0.10.4", - "bs58", + "bs58 0.4.0", "bv", "either", "generic-array", @@ -4122,7 +4319,7 @@ dependencies = [ "borsh 0.10.3", "borsh 0.9.3", "borsh 1.5.1", - "bs58", + "bs58 0.4.0", "bv", "bytemuck", "cc", @@ -4308,7 +4505,7 @@ dependencies = [ "async-trait", "base64 0.21.7", "bincode", - "bs58", + "bs58 0.4.0", "indicatif", "log", "reqwest", @@ -4332,7 +4529,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72a8403038f4d6ab65bc7e7afb3afe8d9824c592232553c5cef55cf3de36025d" dependencies = [ "base64 0.21.7", - "bs58", + "bs58 0.4.0", "jsonrpc-core", "reqwest", "semver", @@ -4448,7 +4645,7 @@ dependencies = [ "bincode", "bitflags 2.5.0", "borsh 1.5.1", - "bs58", + "bs58 0.4.0", "bytemuck", "byteorder", "chrono", @@ -4498,7 +4695,7 @@ version = "1.18.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86c76414183a325038ff020b22c07d1e9d2da0703ddc0244acfed37ee2921d96" dependencies = [ - "bs58", + "bs58 0.4.0", "proc-macro2", "quote", "rustversion", @@ -4638,7 +4835,7 @@ dependencies = [ "base64 0.21.7", "bincode", "borsh 0.10.3", - "bs58", + "bs58 0.4.0", "lazy_static", "log", "serde", @@ -5083,7 +5280,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", @@ -5655,6 +5852,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-segmentation" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" + [[package]] name = "unicode-width" version = "0.1.13" diff --git a/program/Cargo.toml b/program/Cargo.toml index a1e6da0..56c48ea 100644 --- a/program/Cargo.toml +++ b/program/Cargo.toml @@ -18,7 +18,7 @@ utils = [] benchmarking = ["bonfida-utils/benchmarking"] [dependencies] -solana-program = "1.16.25" +solana-program = "1.18.17" bytemuck = {version = "1.7.2", features= ["derive"]} num_enum = "0.5.4" borsh = "0.9.1" @@ -31,18 +31,17 @@ bonfida-utils = "0.3.1" [dev-dependencies] hexdump = "0.1.0" -solana-sdk = "1.16.25" +solana-sdk = "1.18.17" rand = "0.8.4" arrayref = "0.3.6" -solana-program-test = "1.16.25" +solana-program-test = "1.18.17" tokio = {version="1.6", features = ["macros"]} regex = "1.5.5" gnuplot = "0.0.37" lazy_static = "1.4.0" serde = "1" serde_json = "1" - - +anchor-lang = "0.30.1" [lib] crate-type = ["cdylib", "lib"] diff --git a/program/src/state/orderbook.rs b/program/src/state/orderbook.rs index d893ea5..c71949e 100644 --- a/program/src/state/orderbook.rs +++ b/program/src/state/orderbook.rs @@ -13,9 +13,9 @@ use crate::{ }, }; use bonfida_utils::fp_math::{fp32_div, fp32_mul_ceil, fp32_mul_floor}; -use borsh::{BorshDeserialize, BorshSerialize}; use bytemuck::Pod; use solana_program::{msg, program_error::ProgramError}; +use anchor_lang::{AnchorSerialize, AnchorDeserialize}; /// This struct is written back into the event queue's register after new_order or cancel_order. /// @@ -23,7 +23,7 @@ use solana_program::{msg, program_error::ProgramError}; /// were either matched against other orders or written into the orderbook. /// /// In the case of an order cancellation, the quantities describe what was left of the order in the orderbook. -#[derive(Debug, BorshDeserialize, BorshSerialize)] +#[derive(Debug, AnchorSerialize, AnchorDeserialize)] pub struct OrderSummary { /// When applicable, the order id of the newly created order. pub posted_order_id: Option,