Bolt Archway TypeScript SDK
Integrate with Bolt Liquidity Protocol on Archway network using TypeScript
Overview
Quickstart
1
2
npm install @bolt-liquidity-hq/cosmwasm-clientyarn add @bolt-liquidity-hq/cosmwasm-clientpnpm add @bolt-liquidity-hq/cosmwasm-client3
type Environment = 'mainnet' | 'testnet';import { BoltCosmWasmClient } from '@bolt-liquidity-hq/cosmwasm-client';
const client = new BoltCosmWasmClient();import { BoltCosmWasmClient } from '@bolt-liquidity-hq/cosmwasm-client';
const client = new BoltCosmWasmClient({
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 archAsset = assets.find((a) => a.symbol === 'ARCH');
console.log(`ARCH denom: ${archAsset?.denom}`); // "aarch"5
import { DirectSecp256k1HdWallet } from '@cosmjs/proto-signing';
// Get signer from wallet (implementation depends on wallet)
const signer = await DirectSecp256k1HdWallet.fromMnemonic("my mnemonic goes here", {
prefix: 'archway',
});
// Execute a swap: exactly 1 ARCH for USDC
const result = await client.swap({
assetIn: 'aarch',
amountIn: '1000000000000000000', // 1 ARCH (18 decimals)
assetOut: 'ibc/43897B9739BD63E3A08A88191999C632E052724AB96BD4C74AE31375C991F48D', // USDC
minimumAmountOut: '1900000', // Minimum 1.9 USDC (6 decimals)
, signer});
console.log(`Swapped 1 ARCH for ${result.amountOut} USDC`);
console.log(`Transaction hash: ${result.txHash}`);
console.log(`Gas cost: ${result.txOutput.gasUsed}`);
console.log(`Status: ${result.txOutput.code === 0 ? 'success' : 'failed'}`);API
Client Initialization
import { BoltCosmWasmClient } from '@bolt-liquidity-hq/cosmwasm-client';
// Initialize client
const client = new BoltCosmWasmClient({
environment: 'mainnet', // 'testnet' | 'mainnet'
customOverride: {
chainConfig: {
rpcEndpoint: 'https://my-custom-rpc-endpoint...', // Remove this if you want to use default public RPC endpoint
}
}
});