Bolt SUI TypeScript SDK
Integrate with Bolt Liquidity Protocol using TypeScript.
Overview
Quickstart
1
2
npm install @bolt-liquidity-hq/sui-clientyarn add @bolt-liquidity-hq/sui-clientpnpm install @bolt-liquidity-hq/sui-client3
type Environment = 'mainnet' | 'testnet';import { BoltSuiClient } from '@bolt-liquidity-hq/sui-client';
const client = new BoltSuiClient();import { BoltSuiClient } from '@bolt-liquidity-hq/sui-client';
const client = new BoltSuiClient({
environment: 'testnet',
});4
// Get all supported assets
const assets = await client.getAssets();
assets.forEach((asset) => {
console.log(`${asset.symbol} (${asset.name}): ${asset.denom}`);
console.log(` Decimals: ${asset.decimals}`);
});
// Find a specific asset
const suiAsset = assets.find((a) => a.symbol === 'SUI');
console.log(`SUI type: ${suiAsset?.denom}`); // "0x2::sui::SUI"5
// Get signer from wallet (implementation depends on wallet)
const signer: Signer = await getSuiWalletSigner();
// Execute a swap: exactly 1 SUI for USDC
const result = await client.swap({
assetIn: '0x2::sui::SUI',
amountIn: '1000000000', // 1 SUI (9 decimals)
assetOut: '0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC', // USDC
minimumAmountOut: '1900000', // Minimum 1.9 USDC (6 decimals)
}, signer);
console.log(`Swapped 1 SUI for ${result.amountOut} USDC`);
console.log(`Transaction digest: ${result.txHash}`);
console.log(`Gas cost: ${result.txOutput.effects.gasUsed.computationCost}`);
console.log(`Status: ${result.txOutput.effects.status.status}`);API
Client Initialization
import { BoltSuiClient } from '@bolt-liquidity-hq/sui-client';
// Initialize client
const client = new BoltSuiClient({
environment: 'mainnet', // 'testnet' | 'mainnet'
customOverride: {
chainConfig: {
rpcEndpoint: 'https://my-custom-rpc-endpoint...', // Remove this if you want to use the default public RPC endpoint
}
}
});