Prerequisites
1. NPM install
npm install @cetusprotocol/aggregator-sdk
2. Setting Up Configuration
Initialize mainnet Aggregator client
. There are two ways to initialize the aggregator client. One is straightforward, using the default mainnet client, while the other supports a high level of customization.
Example
Fast create mainnet aggregator client default.
import { AggregatorClient } from "@cetusprotocol/aggregator-sdk"
const client = new AggregatorClient({})
(Enhance) Customer create aggregator client by your self rpc node.
import { AggregatorClient } from "@cetusprotocol/aggregator-sdk"
import type { SuiClient } from '@mysten/sui/client';
import dotenv from 'dotenv'
dotenv.config()
// used to do simulate swap and swap
// https://fullnode.mainnet.sui.io:443
const fullNodeURL = process.env.SUI_RPC!
const suiClient = new SuiClient({
url: fullNodeURL,
})
// set your wallet address, used to do simulate
const wallet = "0x..."
// import { Env } from "@cetusprotocol/aggregator-sdk"
// Currently, we provide full support for Mainnet,
// while Testnet is only supported for Cetus and DeepBook providers.
const client = new AggregatorClient({
// endpoint, // If you do not have a exclusive aggregator api domain,just use cetus default aggregator endpoints.
signer: wallet,
client: suiClient,
env: Env.Mainnet,
pythUrls: ["YOUR_PYTH_URL", "ANOTHER_PYTH_URL"],
partner: "YOUR_PARTNER_ID" /// Partner ID for fee sharing. Set once during initialization instead of per swap.
overlayFeeRate: 0.01, // Overlay fee rate (0.01 represents 1%).
overlayFeeReceiver: "0x..", // Address to receive the overlay fees
})
Notes: Some providers, such as HaedalHMM, Metastable, Steamm Omm, SevenK, rely on Pyth oracle prices when build transactions. Currently, we have a default configuration that connects to Pyth's publicly available node. However, if you frequently build transactions, we recommend setting up a private Pyth node interface as an additional backup. This will ensure uninterrupted access to those providers, even if the public node experiences occasional downtime.
(Project integration) Increase QPS limit through specific domain name and API key
import { AggregatorClient } from "@cetusprotocol/aggregator-sdk"
import type { SuiClient } from '@mysten/sui/client';
import dotenv from 'dotenv'
dotenv.config()
// used to do simulate swap and swap
// https://fullnode.mainnet.sui.io:443
const fullNodeURL = process.env.SUI_RPC!
const suiClient = new SuiClient({
url: fullNodeURL,
})
// provider by cetus
const endpoint = "https://<YOUR_DOMAIN>/router_v2"
const apiKey = "<YOUR_API_KEY>"
// set your wallet address, used to do simulate
const wallet = "0x..."
// import { Env } from "@cetusprotocol/aggregator-sdk"
// Currently, we provide full support for Mainnet,
// while Testnet is only supported for Cetus and DeepBook providers.
const client = new AggregatorClient({
endpoint,
apiKey,
signer: wallet,
client: suiClient,
env: Env.Mainnet,
pythUrls: ["YOUR_PYTH_URL", "ANOTHER_PYTH_URL"],
partner: "YOUR_PARTNER_ID" /// Partner ID for fee sharing. Set once during initialization instead of per swap.
overlayFeeRate: 0.01, // Overlay fee rate (0.01 represents 1%).
overlayFeeReceiver: "0x..", // Address to receive the overlay fees
})
Last updated