0.0.48 • Published 4 months ago

@symmetry-hq/liquidity-sdk v0.0.48

Weekly downloads
-
License
ISC
Repository
github
Last release
4 months ago

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