跳转到主要内容

安装

npm install @chainstream-io/sdk

快速开始

import { ChainStreamClient } from '@chainstream-io/sdk';

const client = new ChainStreamClient('YOUR_ACCESS_TOKEN');

REST API 示例

查询代币信息:
import { ChainStreamClient } from '@chainstream-io/sdk';

const ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN';

async function main() {
  // 初始化 SDK 客户端
  const client = new ChainStreamClient(ACCESS_TOKEN);

  const chain = 'sol';
  const tokenAddress = 'So11111111111111111111111111111111111111112'; // SOL

  console.log(`查询代币: ${chain}/${tokenAddress}`);

  try {
    // 通过 SDK 调用 API
    const result = await client.token.getToken(chain, tokenAddress);
    
    console.log('结果:');
    console.log(JSON.stringify(result, null, 2));
  } catch (error) {
    console.error('API 调用失败:', error);
  }
}

main();

WebSocket 示例

订阅实时代币 K 线数据:
import { ChainStreamClient, Resolution } from '@chainstream-io/sdk';

const ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN';

async function main() {
  const client = new ChainStreamClient(ACCESS_TOKEN, {
    autoConnectWebSocket: true,
  });

  const chain = 'sol';
  const tokenAddress = 'So11111111111111111111111111111111111111112'; // SOL

  console.log(`订阅代币 K 线: ${chain}/${tokenAddress}`);
  console.log('监听中... (按 Ctrl+C 停止)\n');

  // 通过 SDK 订阅 WebSocket
  client.stream.subscribeTokenCandles({
    chain,
    tokenAddress,
    resolution: Resolution['1s'],
    callback: data => {
      console.log(new Date().toISOString(), JSON.stringify(data));
    },
  });

  // 保持进程运行
  process.on('SIGINT', () => {
    console.log('\n关闭连接...');
    process.exit(0);
  });

  // 持续运行
  await new Promise(() => {});
}

main().catch(error => {
  console.error('测试失败:', error.message);
  process.exit(1);
});

错误处理

import { ChainStreamClient, ChainStreamError } from '@chainstream-io/sdk';

try {
  const token = await client.token.getToken('sol', 'INVALID_ADDRESS');
} catch (error) {
  if (error instanceof ChainStreamError) {
    console.error(`错误代码: ${error.code}`);
    console.error(`错误信息: ${error.message}`);
  }
}

相关资源