Skip to content

1sol-io/1sol-sdk-ts

Repository files navigation

Onesol SDK

npm version

Onesol SDK is designed to be easier to use.

Getting routes for a given token pair,
getting transactions for one route,
signing and excuting transactions,
then it's all done.


Usage

→ STEP #0

Install

yarn add @onesol/onesol-sdk

→ STEP #1

Load OnesolProtocol instance

import {
  Connection,
} from "@solana/web3.js";

const SOLANA_RPC_ENDPOINT = 'https://mainnet.rpcpool.com'
const connection = new Connection()

const onesolProtocol = new OnesolProtocol(connection)

→ STEP #2

Get supported token list

import {
  TokenInfo
} from '@onesol/onesol-sdk'

// export interface TokenInfo {
//   readonly chainId: number;
//   readonly address: string;
//   readonly name: string;
//   readonly decimals: number;
//   readonly symbol: string;
//   readonly logoURI?: string;
//   readonly tags?: string[];
//   readonly extensions?: TokenExtensions;
//   readonly feeAccount?: string
// }

const tokenList: TokenInfo[] = await onesolProtocol.getTokenList()

→ STEP #3

Get routes form a given token pair

import {
  Distribution
} from '@onesol/onesol-sdk'

// interface Distribution {
//   routeType: string,
//   routes: Route[][],
//   destinationTokenMint: {
//     decimals: number,
//     address: string
//   },
//   sourceTokenMint: {
//     decimals: number,
//     address: string
//   },
//   amountIn: number,
//   amountOut: number,
// }

const routes: Distribution[] = await onesolProtocol.getRoutes({
  amount: number, // amount of the input token(should be with input token decimail) e.g `10 * 10 ** 6`,
  sourceTokenMintKey: string, // mint address of the input token
  destinationTokenMintKey: string, // mint address of the output token
  size: number, // number of the result
  signal: AbortSignal // [AbortController](https://developer.mozilla.org/zh-CN/docs/Web/API/AbortController) signal, if needed, it can be used to abort the fetch request
})

→ STEP #4

Get transactions for one route

import { Transaction } from '@solana/web3.js'
import {
  Distribution
} from '@onesol/onesol-sdk'

const transactions: Transaction[] = await onesolProtocol.getTransactions({
  wallet: PublicKey,
  distribution: Distribution, // one distribution from the results of the `getRoutes`
  slippage: number, //default is 0.005
})

→ STEP #5

Sign these transactions and excute them to swap.


Code in action

1sol-io/1sol-interface

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published