UNPKG

@firefly-exchange/library-sui

Version:

Sui library housing helper methods, classes to interact with Bluefin protocol(s) deployed on Sui

193 lines (192 loc) 4.9 kB
import { Address, ID, NumStr, SignedNumber } from "../../types"; import { Side, SupportedAssets } from "../types"; import { ISignedNumber } from "./IOnChainCalls"; import { DepositedAsset, IPosition } from "./IUser"; export interface IWithdrawEvent { eds: ID; ids: ID; account: Address; amount: NumStr; asset: SupportedAssets; assets: Array<DepositedAsset>; sequence_hash: Uint8Array; eds_sequence_number: string; ids_sequence_number: string; } export interface ITaintedAssetRemoved { eds: ID; ids: ID; from: Address; to: Address; amount: NumStr; asset: SupportedAssets; sequence_hash: Uint8Array; nonce: string; eds_sequence_number: string; ids_sequence_number: string; } export interface IDepositEvent extends IWithdrawEvent { nonce: string; } export interface IAssetBankDepositEvent { eds_id: ID; asset: SupportedAssets; from: Address; to: Address; amount: NumStr; nonce: string; sequence_number?: string; } export interface IOnChainAsset { symbol: SupportedAssets; type: string; decimals: number; weight: NumStr; price: NumStr; collateral: boolean; min_deposit: NumStr; max_deposit: NumStr; } export interface IAssetSupportedEvent { eds_id: ID; asset: IOnChainAsset; sequence_number: string; } export interface IAccountAuthorizedEvent { account: Address; users: Array<Address>; authorized: boolean; sequence_number: string; } export interface ITrader { address: Address; order_hash: Uint8Array; position: IPosition; assets: Array<DepositedAsset>; fee_asset: NumStr; fee_usd_qty: NumStr; fee_token_qty: NumStr; } export interface ITradeExecutedEvent { market: string; maker: ITrader; taker: ITrader; fill_quantity: NumStr; fill_price: NumStr; taker_side: Side; taker_gas_fee: NumStr; sequence_hash: Uint8Array; sequence_number: string; } export interface ILiquidationExecutedEvent { market: string; liquidatee_address: Address; liquidator_address: Address; hash: Uint8Array; liquidatee_position: IPosition; liquidator_position: IPosition; liquidatee_assets: Array<DepositedAsset>; liquidator_assets: Array<DepositedAsset>; quantity: NumStr; liq_purchase_price: NumStr; bankruptcy_price: NumStr; oracle_price: NumStr; liquidator_side: Side; premium_or_debt: SignedNumber; insurance_pool_premium_portion: NumStr; sequence_hash: Uint8Array; sequence_number: string; } export interface IADLExecutedEvent { market: string; maker_address: Address; taker_address: Address; hash: Uint8Array; maker_position: IPosition; taker_position: IPosition; maker_assets: Array<DepositedAsset>; taker_assets: Array<DepositedAsset>; quantity: NumStr; bankruptcy_price: NumStr; oracle_price: NumStr; taker_side: Side; sequence_hash: Uint8Array; sequence_number: string; } export interface IMarginAdjustedEvent { account: Address; amount: NumStr; added: boolean; position: IPosition; assets: Array<DepositedAsset>; sequence_hash: Uint8Array; sequence_number: string; } export interface ILeverageAdjustedEvent { account: Address; position: IPosition; assets: Array<DepositedAsset>; sequence_hash: Uint8Array; sequence_number: string; } export interface IOperatorUpdatedEvent { id: Address; operator_type: string; previous_operator: Address; new_operator: Address; sequence_number: string; } export interface IFundingRateUpdatedEvent { market: string; rate: ISignedNumber; timestamp: NumStr; sequence_number: string; } export interface IBankruptLiquidatorAuthorizedEvent { account: Address; authorized: boolean; sequence_number: string; } export interface IFeeTierUpdatedEvent { account: Address; applied: boolean; maker: NumStr; taker: NumStr; } export interface IAccountTypeUpdatedEvent { account: Address; is_institution: boolean; sequence_number: string; } export interface IGasFeeUpdatedEvent { ids: ID; gas_fee: string; sequence_number: string; } export interface IGasPoolUpdatedEvent { ids: ID; previous_gas_pool: Address; current_gas_pool: Address; sequence_number: string; } export interface IPositionClosedEvent { market: string; account: Address; hash: Uint8Array; position: IPosition; assets: Array<DepositedAsset>; delisting_price: NumStr; sequence_hash: Uint8Array; sequence_number: string; } export interface IFundingRateAppliedEvent { account: Address; position: IPosition; assets: Array<DepositedAsset>; funding_rate: { timestamp: NumStr; rate: SignedNumber; }; funding_amount: SignedNumber; sequence_number: string; }