@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
TypeScript
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;
}