Satay Finance
  • Overview
    • Introduction
  • Our Three Pillars
    • Blocks
    • Strategies
    • Vaults
  • Technical Overview
    • Protocol Module
    • Wrapper Module (Legacy)
    • Asset Module
    • Vault Module
    • Base Strategy Module
    • Satay Module
  • Blocks
    • Echelon Block
    • Layerbank Block
    • MovePosition Block
  • Strategy Implementations
    • Leveraged Liquid Staking
    • Liquid Staking + LP Farming
    • Borrow Optimization
    • Echelon Simple
    • Layerbank Simple
    • MovePosition Simple
    • MovePosition Ticket
Powered by GitBook
On this page
  • Overview
  • Structs
  • Functions
  1. Technical Overview

Satay Module

Overview

The satay::satay module serves as the primary interface for interacting with vaults within the Satay protocol. It provides public entry functions that allow users to create and manage vaults, handle deposits and withdrawals, and integrate strategies.

Structs

The satay::satay module does not define any new structs. Instead, it leverages existing structs from the satay::vault and satay::strategy modules to manage vaults and strategies.

Functions

The module primarily exposes public entry functions that facilitate various operations related to vault management.

  • create_vault(account: &signer, deposit_limit: Option<u64>, total_debt_limit: Option<u64>, base_metadata: Object<Metadata>): Creates a new vault with the specified deposit limit, total debt limit, and base asset metadata.

  • create_vault_with_coin<CoinType>(account: &signer, deposit_limit: Option<u64>, total_debt_limit: Option<u64>): Creates a new vault for a specific coin type, wrapping the coin if necessary, and initializing it with a deposit limit and total debt limit.

  • pause_vault(account: &signer, vault: Object<Vault>): Pauses the specified vault, preventing new deposits but allowing withdrawals.

  • unpause_vault(account: &signer, vault: Object<Vault>): Unpauses the specified vault, allowing it to accept deposits again.

  • add_strategy(account: &signer, vault: Object<Vault>, strategy: Object<BaseStrategy>, debt_limit: u64): Adds a new strategy to the specified vault with a maximum debt limit for yield generation or management.

  • remove_strategy(account: &signer, vault: Object<Vault>, strategy: Object<BaseStrategy>, force: bool): Removes an existing strategy from the specified vault, with an option to force removal even if the strategy has outstanding debt.

PreviousBase Strategy ModuleNextEchelon Block

Last updated 3 months ago