@flowx-finance/sdk
TypeScript icon, indicating that this package has built-in type declarations

1.9.3 • Public • Published

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 coin
  • Retrieve transaction block liquidity management V2 (add,remove)
  • Retrieve transaction block for swap aggregator

Getting Started

npm i @flowx-finance/sdk

Retrieve coin

Get instance of Coin[]

const coins = await coinProvider.getCoins({
  coinTypes: ['0x2::sui::SUI'],
});

Swap Aggregator

Get Swap Route

To find best route for swap

const quoter = new AggregatorQuoter('mainnet');
const params: AggregatorQuoterQueryParams = {
  tokenIn: '0x2::sui::SUI',
  tokenOut: '0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN',
  amountIn: '1000000000',
  includeSources: null, //optional
  excludeSources: null, //optional
  commission: null, //optional, and will be explain later
};

const routes = await quoter.getRoutes(params);

Use function getRoutes in instance AggregatorQuoter with it's arguments to create a Route

Arguments Description Type Example
tokenIn Token to be swapped from string '0x2::sui::SUI'
tokenOut Token to be received string '0x5d....f::coin::COIN'
amountIn Amount of tokenIn to be swapped string '1000000000'
includeSources Optional: Sources to include in aggregation null | Protocol[] null
excludeSources Optional: Sources to exclude in aggregation null | Protocol[] null
commission Optional: Commission amount for the transaction, use when you want calculate commission with partner fee null | Commission null

Build Transaction for aggregator swap

Build transaction that you can use with SuiClient or Dapp-kit

const tradeBuilder = new TradeBuilder(NETWORK.MAINNET, routes); //routes get from quoter
const trade = tradeBuilder
  .sender('0xSenderAddress') //Optional if you want pass coin later
  .amountIn('1000000000')
  .amountOut('500000000000000000') // Estimate amount out, usual get from quoter
  .slippage((1 / 100) * 1e6) // Slippage 1%
  .deadline(Date.now() + 3600) // 1 hour from now
  .commission(null) // Commission will be explain later
  .build();
console.log(trade); // Output: Trade object with configured parameters
const txb = trade.swap({ client }) // You can also pass coinIn and exist TractionBlock if you want

Find route and build transaction with commission

The Commission class represents a commission configuration for transactions, defining the partner, commission type, and value. It includes methods for computing the commission amount based on the specified type.

const commission = new Commission('0xPartnerAddress', new Coin('0x2::sui:SUI'), CommissionType.PERCENTAGE, '500', true);

if CommissionType.PERCENTAGE then value should be input 1/100 * 1e6 it is example of 1% if CommissionType.FLAT then value should be the amount of token you want to fee include decimals Then you should pass commission variable to both tradeBuilder and getRoutes for exact values

Readme

Keywords

none

Package Sidebar

Install

npm i @flowx-finance/sdk

Weekly Downloads

587

Version

1.9.3

License

none

Unpacked Size

397 kB

Total Files

119

Last publish

Collaborators

  • hou.dev