@firefly-exchange/library-sui
Version:
Sui library housing helper methods, classes to interact with Bluefin protocol(s) deployed on Sui
93 lines (92 loc) • 1.92 kB
TypeScript
import { Pool } from "../spot/types";
import { BigNumberable } from "../types";
import { Address, ID } from "../types";
export type AuqadityContracts = {
BasePackage: Address;
CurrentPackage: Address;
UpgradeCap: Address;
AdminCap: Address;
ProtocolConfig: Address;
VaultStore: Address;
Operators: {
[key: string]: Address;
};
Vaults?: Array<Vault>;
};
export type Vault = {
id: ID;
manager: Address;
name: string;
index: string;
type: number;
users?: Array<Address>;
sequence_number?: string;
};
export type Reserves = {
id: ID;
coinType: string;
value: number;
};
export type CreateVaultArgs = {
name: string;
type?: number;
manager?: Address;
users?: Array<Address>;
};
export type FundVaultArgs = {
vault: ID;
coinType: string;
amount: BigNumberable;
};
export type WithdrawFundArgs = {
vault: ID;
coinType: string;
amount: BigNumberable;
};
export type UpdateUsersArgs = {
vault: ID;
add: boolean;
users: Array<Address>;
};
export type OpenPositionArgs = {
vault: ID;
pool: Pool;
lowerTickBits: number;
upperTickBits: number;
};
export type ProvideLiquidityArgs = {
vault: ID;
pool: Pool;
position: ID;
amount: BigNumberable;
coinAMax: BigNumberable;
coinBMax: BigNumberable;
isFixedA: boolean;
};
export type RemoveLiquidityArgs = {
vault: ID;
pool: Pool;
position: ID;
liquidity: BigNumberable;
coinAMin: BigNumberable;
coinBMin: BigNumberable;
};
export type CollectFeeArgs = {
vault: ID;
pool: Pool;
position: ID;
destination: Address;
};
export type CollectRewardArgs = {
vault: ID;
pool: Pool;
position: ID;
rewardCoinType: string;
destination: Address;
};
export type ClosePositionArgs = {
vault: ID;
pool: Pool;
position: ID;
destination: Address;
};