0.0.48 • Published 4 months ago
@symmetry-hq/liquidity-sdk v0.0.48
Symmetry Liquidity SDK
Exchange functionality using symmetry funds liquidity
Documentation: https://docs.symmetry.fi/sdks/liquidity-sdk
Initialization
import { TokenSwap } from "@symmetry-hq/liquidity-sdk";
let tokenSwap = await TokenSwap.init(
// rpc connection
connection: Connection,
// wallet (optional | can be provided later, using tokenSwap.setWallet
wallet: Wallet,
);
OR
import { TokenSwap } from "@symmetry-hq/liquidity-sdk";
let accountInfos = await TokenSwap.getAccountInfosForTokenSwap(connection);
let tokenSwap = new TokenSwap(accountInfos); // Synchronous
Update
await tokenSwap.updateLiquiditySources();
OR
let pubkeys: PublicKey[] = tokenSwap.getAccountsForUpdate(); // Synchronous
let accountInfos: AccountInfo<Buffer>[] =
await connection.getMultipleAccountsInfo(pubkeys);
tokenSwap.update(accountInfos); // Synchronous
Get output amount and Route data
let routeData: RouteData = tokenSwap.getRouteData( // Synchronous
tokenFrom: PublicKey, // mint address
tokenTo: PublicKey, // mint address
fromAmount: number,
);
type RouteData = {
fromAmount: number,
toAmount: number, // Expected output amount
fromTokenId: number,
toTokenId: number,
swapAccounts: {...} // accounts used for swap
}
Executing swap
let tx: TransactionSignature = await tokenSwap.executeSwap(
routeData,
fromTokenAccount?: PublicKey, // default = user's ATA
toTokenAccount?: PublicKey, // default = user's ATA
slippage?: number, // slippage percentage 1 = 1%, default = 0.5%
);
Helpers
// set wallet before executing swap if it wasn't provided upon initialization
tokenSwap.setWallet(wallet: Wallet); // Synchronous
// generate swap instruction
let instruction: TransactionInstruction = await tokenSwap
.generateSwapInstruction(
routeData: RouteData,
fromTokenAccount: PublicKey,
toTokenAccount: PublicKey,
user?: PublicKey, // no need to provide if wallet was provided,
slippage?: number, // slippage percentage 1 = 1%, default = 0.5%
);
// get available tokens for swap
let tokenList: {
tokenId: number,
coingeckoId: string,
tokenMint: string,
}[] = tokenSwap.getTokenList(); // Synchronous
0.0.48
4 months ago
0.0.47
5 months ago
0.0.46
5 months ago
0.0.40
7 months ago
0.0.41
7 months ago
0.0.42
7 months ago
0.0.44
7 months ago
0.0.45
7 months ago
0.0.37
7 months ago
0.0.38
7 months ago
0.0.39
7 months ago
0.0.30
1 year ago
0.0.31
1 year ago
0.0.32
1 year ago
0.0.33
1 year ago
0.0.34
1 year ago
0.0.35
1 year ago
0.0.36
1 year ago
0.0.28
1 year ago
0.0.29
1 year ago
0.0.25
1 year ago
0.0.26
1 year ago
0.0.27
1 year ago
0.0.20
2 years ago
0.0.21
2 years ago
0.0.22
2 years ago
0.0.23
2 years ago
0.0.24
2 years ago
0.0.18
2 years ago
0.0.19
2 years ago
0.0.15
2 years ago
0.0.16
2 years ago
0.0.17
2 years ago
0.0.14
2 years ago
0.0.13
2 years ago
0.0.12
2 years ago
0.0.11
2 years ago
0.0.10
2 years ago
0.0.9
2 years ago
0.0.8
2 years ago
0.0.7
2 years ago
0.0.6
2 years ago
0.0.5
2 years ago
0.0.4
2 years ago
0.0.3
2 years ago
0.0.2
2 years ago
0.0.1
2 years ago