Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@toanbku/flowx-ts-sdk

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@toanbku/flowx-ts-sdk

An FlowX Typescript SDK is a software development kit that allows developers to interact with FlowX protocols using the Typescript programming language.

latest
npmnpm
Version
0.0.15
Version published
Weekly downloads
2
-33.33%
Maintainers
1
Weekly downloads
 
Created
Source

Official FlowX Finance TypeScript SDK for Sui

An FlowX Typescript SDK is a software development kit that allows developers to interact with FlowX protocols using the Typescript programming language.

Features

  • Retrieve list token in flowx and their's metadata.
  • Retrieve user liquidity.
  • Retrieve list farm genesix and user position.
  • Retrieve list farm FaaS and user position.
  • Retrieve transaction block for swap V2
  • Retrieve transaction block for swap V3
  • Retrieve transaction block liquidity management V3 (add,remove,increase liquid, collect reward)

Getting Started

npm i @flowx-pkg/ts-sdk

FlowX SDK

1. Retrieve token list in Flowx

import {getLiquidity, CoinMetadata} from "@flowx-pkg/ts-sdk"

const coins: CoinMetadata[] = await getCoinsFlowX()

1. Retrieve user liquidity

import {getLiquidity,ILiquidity} from "@flowx-pkg/ts-sdk"

const userLiquidity: ILiquidity[] = await getLiquidity(address, sortType, sortOrder)
ArgumentsDescriptionType
addressAddress to retrieve informationstring
sortType(Optional) The criteria to sort data retrievedlpValue, userLpBalance, totalLpSupply
sortOrder(Optional) The order of sortingascending , descending

2. Retrieve list farm genesix and user position

import {getGenesisFarm} from "@flowx-pkg/ts-sdk"

let address: string = "..." //optional: user address
let listGenesisX: IGenesisPoolsData[] = await getGenesisFarm(address)

3. Retrieve list farm FaaS v2 and user position

import {getFaasV2} from "@flowx-pkg/ts-sdk"

let address: string = "..." //optional: user address
let listFaaS: IFaasV2[] = await getFaasV2(address)

4. SWAP V2 Function

import {calculateAmountIn, swapExactInput} from "@flowx-pkg/ts-sdk"

const coinIn = {
	type: "0x2::sui::SUI",
	symbol: "SUI",
	decimals: 9,
};
const coinOut = {
	type: "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",
	symbol: "wUSDC",
	decimals: 6,
};

const data = await calculateAmountIn(0.8, coinIn, coinOut); //0.8 mean the amount you want to swap

const tx: TransactionBock = await swapExactInput(
	false, //it should be false for now
	data.amountIn, //amount want to swap
	data.amountOut, //amount want to receive
	data.trades, //trades from calculate amount
	coinIn, //coin In data
	coinOut, //coin Out data
	"YOUR_ACCOUNT_RECEIVE TOKEN", //amount swap
	0.005 //slippage (0.05%)
);

5. SWAP Aggregator (V3)

getSmartRouting

Retrieve the most optimal route of smart routing for swap and amount of token user may receive.

import {getSmartRouting} from "@flowx-pkg/ts-sdk"
const smartRouting:ISmartRouting  = await getSmartRouting(
	tokenIn,
	tokenOut,
	amountIn,
	signal,
	source
)

interface ISmartRouting {
	paths: ISmartPathV3[],
	amountOut:string
}

ArgumentsDescriptionType
tokenInType of token instring
tokenOutType of token outstring
amountInAmount of token instring
signalSignal to abort current queryAbortController
source(Optional) List dex that use to searching smart route. Default is included all dexArray("FLOWX","FLOWX_CLMM","KRIYA","TURBOS",CETUS", "AFTERMATH","DEEPBOOK")

estimateGasFee

Estimate gas fee for conducting transaction, amount token out and list of amount token out from each path of smart routing

import {estimateGasFee} from "@flowx-pkg/ts-sdk"

const result:IEstimateGasResult|undefined  = await estimateGasFee(
	tx,
	account)

interface IEstimateGasResult {
	fee: string;
  	amountOut: string;
 	pathsAmountOut: string[];
}

txBuild

Retrieve the transaction block for swap

import {txBuild} from "@flowx-pkg/ts-sdk"
const tx: TransactionBock = await txBuild(
	listSmartPath,
	slippage,
	amountIn,
	amountOut,
	coinInType,
	account,
	pathsAmountOut
)
ArgumentsDescriptionType
listSmartPathList all path of smart routing for current swap, each path may includes one or many routeISmartPathV3[]
slippageSlippage percent (Ex: 1% = 0.01)string
amountInAmount in by decimal value.string
amountOutAmount out by decimal value. In case build Tx for inspect transaction: This amount is equivalent to amountOut get from getSmartRouting. In case build Tx for actual transaction: This amount is equivalent to amountOut get from estimateGasFeestring
coinInTypeType of token instring
accountAddress conducting swap transactionstring
pathsAmountOut(Optional) List amount actual calculated after estimateGasFee. Add this argument may turn txBuild to tx for actual transaction. Pass it may turn txBuild to tx for devInpsecTransactionstring[]

Usage Swap V3

import {txBuild, estimateGasFee, getSmartRouting} from "@flowx-pkg/ts-sdk"

const {paths,amountOut} = await getSmartRouting(coinInType,coinOutType,decimalInAmount,abortQuerySmartRef.current.signal)

const txb = await txBuild(paths,slippage,amountIn,amountOut,coinInType,account);

const { fee, amountOut:amountOutDev, pathsAmountOut } = await estimateGasFee(txb, account);

const tx = await txBuild(paths,slippage,amountIn,amountOutDev,coinInType,account,pathsAmountOut)

6. Liquidity management (V3)

getUserLiquidityV3

Retrieve the list of liquidity position owned by provided address.

import {getUserLiquidityV3, IUserLiquidV3Position} from "@flowx-pkg/ts-sdk"

const result: IUserLiquidV3Position = await getUserLiquidityV3(account)

getPositionDetailV3

Retrieve the information of provided position.

import {getPositionDetailV3, IPDV3State} from "@flowx-pkg/ts-sdk"

const result: IPDV3State = await getPositionDetailV3(positionObjectId,account,callTime);
ArgumentsDescriptionType
positionObjectIdPosition's object idstring
account(Optional) Address for checking rewards and ownership of positionstring
callTime(Optional) Internal served for retry in case of failure fetching data. Leave it blank is recommendnumber

getTickClmm

Retrieve the list of ticks of pool liquid

import {getTickClmm, IGetClmmTicks} from "@flowx-pkg/ts-sdk"

const result: IGetClmmTicks = await getTickClmm(poolId)

buildTxAddLiquidV3

Retrieve the transaction block to add liquidity (creating new position). If the pool liquid does not exist, this also create new pool liquid.

import {buildTxAddLiquidV3} from "@flowx-pkg/ts-sdk"

const tx: TransactionBock = await buildTxAddLiquidV3(
	coinX,
	coinY,
	slippage,
	fee,
	lowerTick,
	upperTick,
	amountX,
	amountY,
	account
)
ArgumentsDescriptionType
coinXToken X metadataCoinMetadata (sdk types)
coinYToken Y metadataCoinMetadata (sdk types)
slippageSlippage (EX: 0.01% = 0.0001)string
feeFee tier value of poolIFeeTierV3
lowerTickTickIndex's value of lower price that user confignumber
upperTickTickIndex's value of upper price that user confignumber
amountXAmount of token X to depositstring
amountYAmount of token Y to depositstring
accountAddress conducting transactionstring

buildTxIncreaseLiquidV3

Retrieve the transaction block to increase liquidity to existed position that user owned.

import {buildTxIncreaseLiquidV3} from "@flowx-pkg/ts-sdk"

const tx: TransactionBock = await buildTxIncreaseLiquidV3(
	amountX,
	amountY,
	account,
	coinX,
	coinY,
	positionObjectId,
	slippage
)
ArgumentsDescriptionType
amountXAmount of token X to depositstring
amountYAmount of token Y to depositstring
accountAddress conducting transactionstring
coinXToken X metadataCoinMetadata (sdk types)
coinYToken Y metadataCoinMetadata (sdk types)
positionObjectIdPosition's object idstring
slippageSlippage (EX: 0.01% = 0.0001)string

buildTxRemoveLiquidV3

Retrieve the transaction block to remove liquidity to existed position that user owned.

import {buildTxRemoveLiquidV3} from "@flowx-pkg/ts-sdk"

const tx: TransactionBock = await buildTxRemoveLiquidV3(
	coinX,
	coinY,
	positionObjectId,
	liquid2Remove,
	amountX,
	amountY,
	account,
	poolReward,
	removeAll
)
ArgumentsDescriptionType
coinXToken X metadataCoinMetadata (sdk types)
coinYToken Y metadataCoinMetadata (sdk types)
positionObjectIdPosition's object idstring
liquid2RemoveAmount liquidity desired to remove (Decimal value)string
amountXAmount of token X to depositstring
amountYAmount of token Y to depositstring
accountAddress conducting transactionstring
poolRewardList of reward tokens and their's amountIPoolRewardV3[]
removeAll(Optional) Defined remove all liquidity or notBoolean

getTxCollectRewardLiquidV3

Retrieve the transaction block to collect all pending reward user have in the positon.

import {getTxCollectRewardLiquidV3} from "@flowx-pkg/ts-sdk"

const tx: TransactionBock = await getTxCollectRewardLiquidV3(
	rewardType,
	positionObjectId,
	account,
	inheritTx
)
ArgumentsDescriptionType
rewardTypeType of reward tokensstring[]
positionObjectIdPosition's object idstring
accountAddress conducting transactionstring
inheritTx(Optional) Inherit transaction block from previous actionTransactionBlock

FAQs

Package last updated on 31 May 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts