๐Ÿ“šCommon Types

The following are common data types used across White Whale's contracts. There might be few more that are used internally, though this list contains the types that are exposed via the entry points.

StructDescriptionContains

Asset

Represents an asset

  • info: AssetInfo - asset information

  • amount: Uint128 - asset amount

Contract

Represents a contract, either a Pool or Vault

  • address: String - contract address

  • contract_type: ContractType - type of the contract, vault or pool

Factory

Represents a Factory for either Collecting or Querying fees for

  • factory_addr: String - factory address

  • factory_type: FactoryType - the type of factory, either pool or vault

FeatureToggle

Feature toggle for the pair/pool contract

  • withdrawals_enabled: bool - toggle for withdrawals

  • deposits_enabled: bool - toggle for deposits

  • swaps_enabled: bool - toggle for swaps

Fee

Represents a fee

  • share: Decimal - fee share

Flow

Represents an incentive flow

  • flow_id: u64 - A unique identifier of the flow.

  • flow_label: Option<String> - An alternative flow label.

  • flow_creator: Addr - The account which opened the flow and can manage it.

  • flow_asset: Asset - The asset the flow was created to distribute.

  • claimed_amount: Uint128 - The amount of the flow_asset that has been claimed so far.

  • curve: Curve - The type of curve the flow has.

  • start_epoch: u64 - The epoch at which the flow starts.

  • end_epoch: u64 - The epoch at which the flow ends.

  • emitted_tokens: HashMap<u64, Uint128> - Map containing emitted tokens.

  • asset_history: BTreeMap<u64, (Uint128, u64)> - Map containing the amount of tokens it was expanded to at a given epoch.

IncentivesContract

Provides an incentive contract information

  • incentive_address: Addr - The address of the incentive contract

  • lp_reference: Vec<u8> - A byte-array reference to the LP address

PairInfo

Defines information about a pair/pool

  • asset_infos: [AssetInfo; 2] - asset infos within the pool

  • contract_addr: String - pool address

  • liquidity_token: String - LP token address

  • asset_decimals: [u8; 2] - decimals for the assets in the pool

PoolFee

Fees used by the pool

  • protocol_fee: Fee - protocol fees

  • swap_fee: Fee - swap fees

  • burn_fee: Fee - burn fees

UpdateConfigParams

Parameters to update the vault configuration with

  • flash_loan_enabled: Option<bool> - if users should be allowed to perform flash-loans

  • deposit_enabled: Option<bool> - if users should be able to deposit funds to the contract

  • withdraw_enabled: Option<bool> - if users should be able to withdraw funds from the contract

  • new_owner: Option<String> - the new owner of the contract

  • new_vault_fees: Option<VaultFee> - the new fees used for the vault

  • new_fee_collector_addr: Option<String> - the new address of the fee collector

VaultFee

Fees used by the vault

  • protocol_fee: Fee - protocol fees

  • flash_loan_fee: Fee - flash loan fees

  • burn_fee: Fee - burn fees

VaultInfo

Response for the vaults query

  • vault: String - vault address

  • asset_info_reference: Vec<u8> - Asset info reference

EnumsDescriptionAlternatives

AssetInfo

Represents asset information

  • Token { contract_addr: String } - used for cw20 tokens

  • NativeToken { denom: String } - used for native or IBC tokens

CallbackMsg

Callback messages for the vault

  • AfterTrade { old_balance: Uint128, loan_balance: Uint128 } - used for making sure the flash loan is paid back after all operations were executed

CollectFeesFor

Represents what to collect fees from

  • Contracts { contracts: Vec<Contract> } - collects the fees accumulated by the given contracts

  • Factory { factory_addr: String, factory_type: FactoryType } - collects the fees accumulated by the contracts the given factory created

FactoryType

Represents the type of factory

  • Vault { start_after: Option<Vec<u8>>, limit: Option<u32> } - vault factory option, supports pagination

  • Pool { start_after: Option<[AssetInfo; 2]>, limit: Option<u32> } - pool factory option, supports pagination

FlowIdentifier

A flow identifier

  • Id(u64) - flow id

  • Label(String) - flow label

QueryFeesFor

Represents what to query fees from

  • Contracts { contracts: Vec<Contract> } - specifies list of Contracts to query fees for

  • Factory { factory_addr: String, factory_type: FactoryType } - defines a factory for which to query fees from its children

SwapOperation

A swap operation, used by the pool router

  • TerraSwap { offer_asset_info: AssetInfo, ask_asset_info: AssetInfo } - terraswap type of operation

Last updated