Sigil documentation
ReferenceRust referencesigil-core

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.

On this page