2.1.4 • Published 9 months ago
@7kprotocol/sdk-ts v2.1.4
7K TypeScript SDK
Installation
npm i @7kprotocol/sdk-ts
Usage
v2.x.x (used with @mysten/sui)
1. Set Sui Client (Optional)
import { SuiClient, getFullnodeUrl } from "@mysten/sui/client";
import { setSuiClient } from "@7kprotocol/sdk-ts";
const network = "mainnet";
const suiClient = new SuiClient({ url: getFullnodeUrl(network) });
setSuiClient(suiClient);
Note: this package only supports mainnet for now.
2. Get Quote
import { getQuote } from "@7kprotocol/sdk-ts";
const quoteResponse = await getQuote({
tokenIn: "0x2::sui::SUI",
tokenOut:
"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",
amountIn: "1000000000",
});
or
import { getQuote } from "@7kprotocol/sdk-ts";
const quoteResponse = await getQuote({
tokenIn: "0x2::sui::SUI",
tokenOut:
"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",
amountIn: "1000000000",
sources: [
"suiswap",
"turbos",
"cetus",
"bluemove",
"kriya",
"kriya_v3",
"aftermath",
"deepbook",
"flowx",
], // Optional: if empty, the latest sources supported by the current SDK version will be used.
});
3. Build Transaction
import { buildTx } from "@7kprotocol/sdk-ts";
const result = await buildTx({
quoteResponse,
accountAddress: "0xSenderAddress",
slippage: 0.01, // 1%
commission: {
partner: "<address to receive fee if any>",
commissionBps: 0, // 0 means no fee, 1bps = 0.01%, for example, 20bps = 0.2%
},
});
const { tx, coinOut } = result || {};
or
import { Transaction } from "@mysten/sui/transactions";
import { buildTx } from "@7kprotocol/sdk-ts";
const tx = new Transaction();
const result = await buildTx({
quoteResponse,
accountAddress: "0xSenderAddress",
slippage: 0.01, // 1%
commission: {
partner: "<address to receive fee if any>",
commissionBps: 0, // 0 means no fee, 1bps = 0.01%, for example, 20bps = 0.2%
},
extendTx: {
tx,
// explicit consume this coin object instead of loading all available coin objects from wallet
coinIn: tx.object("0xCoinObjectAddress"),
},
});
const { coinOut } = result || {};
Full Example
import { SuiClient, getFullnodeUrl } from "@mysten/sui/client";
import { setSuiClient, getQuote, buildTx } from "@7kprotocol/sdk-ts";
// optional
const network = "mainnet";
const suiClient = new SuiClient({ url: getFullnodeUrl(network) });
setSuiClient(suiClient);
const quoteResponse = await getQuote({
tokenIn: "0x2::sui::SUI",
tokenOut:
"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",
amountIn: "1000000000",
});
const result = await buildTx({
quoteResponse,
accountAddress: "0xSenderAddress",
slippage: 0.01, // 1%
commission: {
partner: "<address to receive fee if any>",
commissionBps: 0, // 0 means no fee, 1bps = 0.01%, for example, 20bps = 0.2%
},
});
console.log(result);
Estimate Gas Fee
import { estimateGasFee } from "@7kprotocol/sdk-ts";
const feeInUsd = await estimateGasFee({
quoteResponse,
accountAddress: "0xSenderAddress",
slippage: 0.01, // 1%
commission: {
partner: "<address to receive fee if any>",
commissionBps: 0, // 0 means no fee, 1bps = 0.01%, for example, 20bps = 0.2%
},
});
or
import { getSuiPrice, estimateGasFee } from "@7kprotocol/sdk-ts";
// get sui price using sdk or from else where
const suiPrice = await getSuiPrice();
const feeInUsd = await estimateGasFee({
quoteResponse,
accountAddress: "0xSenderAddress",
slippage: 0.01, // 1%
suiPrice,
commission: {
partner: "<address to receive fee if any>",
commissionBps: 0, // 0 means no fee, 1bps = 0.01%, for example, 20bps = 0.2%
},
});
v1.x.x (used with @mysten/sui.js)
1. Set Sui Client (Optional)
import { SuiClient, getFullnodeUrl } from "@mysten/sui.js/client";
import { setSuiClient } from "@7kprotocol/sdk-ts";
const network = "mainnet";
const suiClient = new SuiClient({ url: getFullnodeUrl(network) });
setSuiClient(suiClient);
Note: this package only supports mainnet for now.
2. Get Quote
import { getQuote } from "@7kprotocol/sdk-ts";
const quoteResponse = await getQuote({
tokenIn: "0x2::sui::SUI",
tokenOut:
"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",
amountIn: "1000000000",
});
or
import { getQuote } from "@7kprotocol/sdk-ts";
const quoteResponse = await getQuote({
tokenIn: "0x2::sui::SUI",
tokenOut:
"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",
amountIn: "1000000000",
sources: [
"suiswap",
"turbos",
"cetus",
"bluemove",
"kriya",
"kriya_v3",
"aftermath",
"deepbook",
"flowx",
], // Optional: if empty, the latest sources supported by the current SDK version will be used.
});
3. Build Transaction
import { buildTx } from "@7kprotocol/sdk-ts";
const tx = await buildTx({
quoteResponse,
accountAddress: "0xSenderAddress",
slippage: 0.01, // 1%
commission: {
partner: "<address to receive fee if any>",
commissionBps: 0, // 0 means no fee, 1bps = 0.01%, for example, 20bps = 0.2%
},
});
or
import { TransactionBlock } from "@mysten/sui.js/transactions";
import { buildTx } from "@7kprotocol/sdk-ts";
const tx = new TransactionBlock();
await buildTx({
quoteResponse,
accountAddress: "0xSenderAddress",
slippage: 0.01, // 1%
commission: {
partner: "<address to receive fee if any>",
commissionBps: 0, // 0 means no fee, 1bps = 0.01%, for example, 20bps = 0.2%
},
extendTx: {
tx,
// explicit consume this coin object instead of loading all available coin objects from wallet
coinIn: tx.object("0xCoinObjectAddress"),
},
});
Full Example
import { SuiClient, getFullnodeUrl } from "@mysten/sui.js/client";
import { setSuiClient, getQuote, buildTx } from "@7kprotocol/sdk-ts";
// optional
const network = "mainnet";
const suiClient = new SuiClient({ url: getFullnodeUrl(network) });
setSuiClient(suiClient);
const quoteResponse = await getQuote({
tokenIn: "0x2::sui::SUI",
tokenOut:
"0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN",
amountIn: "1000000000",
});
const tx = await buildTx({
quoteResponse,
accountAddress: "0xSenderAddress",
slippage: 0.01, // 1%
commission: {
partner: "<address to receive fee if any>",
commissionBps: 0, // 0 means no fee, 1bps = 0.01%, for example, 20bps = 0.2%
},
});
console.log(tx);
Estimate Gas Fee
import { estimateGasFee } from "@7kprotocol/sdk-ts";
const feeInUsd = await estimateGasFee({
quoteResponse,
accountAddress: "0xSenderAddress",
slippage: 0.01, // 1%
commission: {
partner: "<address to receive fee if any>",
commissionBps: 0, // 0 means no fee, 1bps = 0.01%, for example, 20bps = 0.2%
},
});
or
import { getSuiPrice, estimateGasFee } from "@7kprotocol/sdk-ts";
// get sui price using sdk or from else where
const suiPrice = await getSuiPrice();
const feeInUsd = await estimateGasFee({
quoteResponse,
accountAddress: "0xSenderAddress",
slippage: 0.01, // 1%
suiPrice,
commission: {
partner: "<address to receive fee if any>",
commissionBps: 0, // 0 means no fee, 1bps = 0.01%, for example, 20bps = 0.2%
},
});
License
7K TypeScript SDK released under the MIT license. See the LICENSE file for details.
2.1.4
9 months ago
2.1.2
9 months ago
2.1.1
9 months ago
2.1.3
9 months ago
2.1.0
11 months ago
2.0.4
11 months ago
2.0.3
11 months ago
2.0.2
11 months ago
2.0.1
11 months ago
2.0.0
11 months ago
1.3.4
11 months ago
1.3.3
11 months ago
1.3.2
11 months ago
1.3.1
11 months ago
1.3.0
11 months ago
1.2.7
12 months ago
1.2.6
12 months ago
1.2.5
12 months ago
1.2.4
12 months ago
1.2.3
12 months ago
1.2.2
12 months ago
1.2.1
12 months ago
1.2.0
12 months ago
1.1.1
12 months ago
1.1.0
12 months ago
1.0.0
1 year ago