1.0.1 • Published 6 months ago

@xfilecom/gopax-client v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

GOPAX API Client

GOPAX 거��소의 REST API와 WebSocket API를 위한 Node.js 클라이언트 라이브러리입니다.

설치

npm install @xfilecom/gopax-client

REST API 사용 방법

import GopaxClient from '@xfilecom/gopax-client';

// 클라이언트 인스턴스 생성
const client = new GopaxClient({
  apiKey: 'YOUR_API_KEY',      // Private API 사용 시 필요
  secretKey: 'YOUR_SECRET_KEY', // Private API 사용 시 필요
});

// Public API 예제
async function publicApiExample() {
  // 전체 거래쌍 조회
  const tradingPairs = await client.getTradingPairs();
  console.log('Trading Pairs:', tradingPairs);

  // 특정 거래쌍의 시세 조회
  const ticker = await client.getTicker('BTC-KRW');
  console.log('BTC-KRW Ticker:', ticker);

  // 호가창 조회
  const orderbook = await client.getOrderBook('BTC-KRW');
  console.log('BTC-KRW Orderbook:', orderbook);

  // 거래 내역 조회
  const trades = await client.getTradeHistory('BTC-KRW');
  console.log('BTC-KRW Trades:', trades);
}

// Private API 예제
async function privateApiExample() {
  // 계정 잔고 조회
  const balances = await client.getBalances();
  console.log('Balances:', balances);

  // 주문 생성
  const order = await client.createOrder({
    tradingPair: 'BTC-KRW',
    side: 'buy',
    type: 'limit',
    price: 50000000,
    amount: 0.1
  });
  console.log('Created Order:', order);

  // 주문 취소
  await client.cancelOrder('ORDER_ID');

  // 주문 조회
  const myOrder = await client.getOrder('ORDER_ID');
  console.log('Order Details:', myOrder);
}

WebSocket API 사용 방법

import GopaxClient, { EventType } from '@xfilecom/gopax-client';

// WebSocket 클라이언트 인스턴스 생성
const client = new GopaxClient({
  apiKey: 'YOUR_API_KEY',      // Private API 사용 시 필요
  secretKey: 'YOUR_SECRET_KEY', // Private API 사용 시 필요
  autoReconnect: true,
  callbacks: {
    onOpen: () => console.log('Connected'),
    onClose: () => console.log('Disconnected'),
    onMessage: (msg) => console.log('Message:', msg),
    onError: (error) => console.error('Error:', error),
    onOrderBook: (data) => console.log('OrderBook:', data),
    onTrade: (data) => console.log('Trade:', data),
    onOrder: (data) => console.log('Order:', data)
  }
});

// WebSocket 연결
await client.connect();

// 주문 구독
client.subscribeToOrders();

// 특정 거래쌍의 오더북 구독
client.subscribeToOrderBook('BTC-KRW');

// 특정 거래쌍의 체결 내역 구독
client.subscribeToTrades('BTC-KRW');

// 구독 취소
client.unsubscribeFromTrades('BTC-KRW');
client.unsubscribeFromOrderBook('BTC-KRW');

// 연결 종료
client.disconnect();

주요 기능

REST API

  • Public API

    • 거래쌍 조회
    • 시세 조회
    • 호가창 조회
    • 거래 내역 조회
    • 차트 데이터(OHLCV) 조회
  • Private API

    • 계정 잔고 조회
    • 주문 생성/취소/조회
    • 거래 내역 조회
    • 입출금 내역 조회

WebSocket API

  • 자동 재연결
  • 실시간 주문 구독
  • 실시간 오더북 구독
  • 실시간 체결 내역 구독
  • 이벤트 기반 메시지 처리
  • Private API 인증 지원

에러 처리

try {
  const ticker = await client.getTicker('INVALID-PAIR');
} catch (error) {
  if (error instanceof GopaxAPIError) {
    console.error('API Error:', error.message);
    console.error('Status Code:', error.statusCode);
    console.error('Response:', error.response);
  }
}

TypeScript 지원

이 라이브러리는 TypeScript로 작성되어 있어 타입 정의가 기본으로 제공됩니다.

라이선스

MIT

1.0.1

6 months ago

1.0.0

6 months ago