Bolt Solana TypeScript SDK
Integrate with Bolt Liquidity Protocol using TypeScript.
Overview
Quickstart
1
2
npm install @bolt-liquidity-hq/solana-clientyarn add @bolt-liquidity-hq/solana-clientpnpm install @bolt-liquidity-hq/solana-client3
type Environment = 'mainnet' | 'devnet';import { BoltSolanaClient } from '@bolt-liquidity-hq/solana-client';
const client = new BoltSolanaClient();import { BoltSolanaClient } from '@bolt-liquidity-hq/solana-client';
const client = new BoltSolanaClient({
environment: 'devnet',
});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 solAsset = assets.find((a) => a.symbol === 'SOL');
console.log(`SOL type: ${solAsset?.denom}`); // "So11111111111111111111111111111111111111112"5
// Get signer from wallet (implementation depends on wallet)
const signer: Signer = await getSolanaWalletSigner();
// Execute a swap: exactly 1 SOL for USDC
const result = await client.swap({
assetIn: 'So11111111111111111111111111111111111111112',
amountIn: '1000000000', // 1 SOL (9 decimals)
assetOut: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC
minimumAmountOut: '1900000', // Minimum 1.9 USDC (6 decimals)
}, signer);
console.log(`Swapped 1 SOL 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 { BoltSolanaClient } from '@bolt-liquidity-hq/solana-client';
// Initialize client
const client = new BoltSolanaClient({
environment: 'mainnet', // 'devnet' | 'mainnet'
customOverride: {
chainConfig: {
rpcEndpoint: 'https://my-custom-rpc-endpoint...', // Remove this if you want to use the default public RPC endpoint
}
}
});