sigil-core · dex
Source declarations, signatures and documentation for dex.
Source: sigil/node/sigil-core/src/dex.rs. SHA-256: df8fecf898c6cb385b0b43bac72dbce3f8f428d0845a3bb599803e7d1a23b7b1.
This reference follows declared source modules, retains conditional attributes, and includes public declarations and implementation methods. Private-module re-exports and trait resolution require the compiler; this is a source reference, not a claim that every listed item is a root import. Function bodies and constant values are omitted.
dex::DEX_POOL_ID_PREFIX
pub const DEX_POOL_ID_PREFIX: &str;Source line: 7.
dex::DEX_FEE_DENOMINATOR_BPS
pub const DEX_FEE_DENOMINATOR_BPS: u128;Source line: 8.
dex::DEX_MAX_FEE_BPS
pub const DEX_MAX_FEE_BPS: u16;Source line: 9.
dex::DexPoolAsset
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
#[serde(transparent)]
pub struct DexPoolAsset(String);Source line: 13.
dex::DexPoolAsset::new
pub fn new(value: impl Into<String>) -> Result<Self, DexQuoteError>;Source line: 16.
dex::DexPoolAsset::as_str
pub fn as_str(&self) -> &str;Source line: 25.
dex::DexPool
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct DexPool {
pub pool_id: String,
pub asset_a: DexPoolAsset,
pub asset_b: DexPoolAsset,
pub reserve_a: u64,
pub reserve_b: u64,
pub lp_total_shares: u64,
pub fee_bps: u16
}Source line: 37.
dex::DexPool::reserves_for_input
pub fn reserves_for_input(
&self,
asset_in: &DexPoolAsset,
) -> Result<(u64, u64, DexPoolSide), DexQuoteError>;Source line: 48.
dex::DexPool::reserves_for_output
pub fn reserves_for_output(
&self,
asset_out: &DexPoolAsset,
) -> Result<(u64, u64, DexPoolSide), DexQuoteError>;Source line: 61.
dex::DexPoolSide
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum DexPoolSide {
A,
B,
}Source line: 76.
dex::DexPosition
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct DexPosition {
pub pool_id: String,
pub owner_did: String,
pub lp_shares: u64
}Source line: 82.
dex::DexEvent
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct DexEvent {
pub sequence: u64,
pub block_height: u64,
pub tx_hash: SigilHash,
pub pool_id: String,
pub kind: String,
pub actor_did: String,
pub payload: serde_json::Value
}Source line: 89.
dex::CreatePoolQuote
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct CreatePoolQuote {
pub lp_shares: u64
}Source line: 100.
dex::AddLiquidityQuote
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct AddLiquidityQuote {
pub amount_a: u64,
pub amount_b: u64,
pub lp_shares: u64
}Source line: 105.
dex::RemoveLiquidityQuote
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct RemoveLiquidityQuote {
pub amount_a: u64,
pub amount_b: u64
}Source line: 112.
dex::SwapExactInQuote
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SwapExactInQuote {
pub amount_in: u64,
pub amount_out: u64,
pub fee_amount: u64,
pub post_reserve_in: u64,
pub post_reserve_out: u64,
pub input_side: DexPoolSide
}Source line: 118.
dex::SwapExactOutQuote
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SwapExactOutQuote {
pub amount_in: u64,
pub amount_out: u64,
pub fee_amount: u64,
pub post_reserve_in: u64,
pub post_reserve_out: u64,
pub output_side: DexPoolSide
}Source line: 128.
dex::DexQuoteError
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum DexQuoteError {
InvalidAsset,
SameAsset,
InvalidFee,
ZeroAmount,
InsufficientLiquidity,
InsufficientLpShares,
AssetNotInPool,
SlippageExceeded,
Overflow,
}Source line: 138.
dex::canonical_pool_assets
pub fn canonical_pool_assets(
asset_a: DexPoolAsset,
asset_b: DexPoolAsset,
) -> Result<(DexPoolAsset, DexPoolAsset), DexQuoteError>;Source line: 169.
dex::canonical_pool_id
pub fn canonical_pool_id(
asset_a: &DexPoolAsset,
asset_b: &DexPoolAsset,
fee_bps: u16,
) -> Result<String, DexQuoteError>;Source line: 183.
dex::create_pool_quote
pub fn create_pool_quote(
amount_a: u64,
amount_b: u64,
fee_bps: u16,
min_lp_shares: u64,
) -> Result<CreatePoolQuote, DexQuoteError>;Source line: 207.
dex::add_liquidity_quote
pub fn add_liquidity_quote(
pool: &DexPool,
amount_a_desired: u64,
amount_b_desired: u64,
amount_a_min: u64,
amount_b_min: u64,
min_lp_shares: u64,
) -> Result<AddLiquidityQuote, DexQuoteError>;Source line: 228.
dex::remove_liquidity_quote
pub fn remove_liquidity_quote(
pool: &DexPool,
lp_shares: u64,
amount_a_min: u64,
amount_b_min: u64,
) -> Result<RemoveLiquidityQuote, DexQuoteError>;Source line: 283.
dex::swap_exact_in_quote
pub fn swap_exact_in_quote(
pool: &DexPool,
asset_in: &str,
amount_in: u64,
min_amount_out: u64,
) -> Result<SwapExactInQuote, DexQuoteError>;Source line: 312.
dex::swap_exact_out_quote
pub fn swap_exact_out_quote(
pool: &DexPool,
asset_out: &str,
amount_out: u64,
max_amount_in: u64,
) -> Result<SwapExactOutQuote, DexQuoteError>;Source line: 369.