node-bitbankccはNode.js用のbitabank.cc APIのSDKです。
-
bitbank.ccについて - https://bitbank.cc/
-
bitbank.cc APIについて - https://docs.bitbank.cc/
TypeScriptのimport、JavaScriptのrequireはそれぞれ以下のように行います。
import * as bitbank from 'node-bitbankcc';
また、tscコマンドでのコンパイルの際は以下のように行います。
$ tsc --lib ES2016 app.ts
var bitbank = require("node-bitbankcc");
PublicApiの初期化にはApiConfigが必要です。
const conf: ApiConfig = {
endPoint: 'https://public.bitbank.cc', // required
keepAlive: false, // optional, default false
timeout: 3000, // optional, default 3000
};
const publicApi =new PublicApi(conf);
また、ApiOptionsとして、APIリクエストのOptionsを受け取れるoptionsCallbackと、レスポンスを受け取れるresponseCallbackにfunctionを指定することもできます。
...
const options: ApiOptions = {
optionsCallback: function(...) {...},
responseCallback: function(...) {...},
};
const publicApi = new PublicApi(conf, options);
以下にPublic APIの呼び出しサンプル実装を記載します。
const params: GetTickerRequest = {
pair: 'btc_jpy', // required
};
const res = await publicApi.getTicker(params);
const params: GetDepthRequest = {
pair: 'btc_jpy', // required
};
const res = await publicApi.getDepth(params);
const params: GetTransactionsRequest = {
pair: 'btc_jpy', // required
yyyymmdd: '20180401', // optional
};
const res = await publicApi.getTransactions(params);
const params: GetCandleStickRequest = {
pair: 'btc_jpy', // required
candleType: '1hour', // required
yyyymmdd: '20180401', // required
};
const res = await publicApi.getCandlestick(params);
const params: GetCircuitBreakInfoRequest = {
pair: 'btc_jpy', // required
};
const res = await publicApi.getCircuitBreakInfo(params);
PrivateAPIの初期化にはPrivateApiConfigが必要になります。
// # ACCESS-TIME-WINDOW 方式
const conf: PrivateApiConfig = {
apiKey: 'YOUR_API_KEY', // required
apiSecret: 'YOUR_SECRET_KEY', // required
endPoint: 'https://api.bitbank.cc/v1', // optional, default->'https://api.bitbank.cc/v1'
keepAlive: false, // optional, default->false
timeout: 3000, // optional, default->3000
authMethod: 'RequestTime', // optional, default->'RequestTime'
timeWindow: 5000, // optional, default->5000
};
// # ACCESS-NONCE 方式
const conf: PrivateApiConfig = {
apiKey: 'YOUR_API_KEY', // required
apiSecret: 'YOUR_SECRET_KEY', // required
endPoint: 'https://api.bitbank.cc/v1', // optional, default->'https://api.bitbank.cc/v1'
keepAlive: false, // optional, default->false
timeout: 3000, // optional, default->3000
authMethod: 'Nonce', // optional, default->'RequestTime'
};
const privateApi = new PrivateApi(conf);
また、PublicAPIと同様に、ApiOptionsを指定することが可能です。
...
const options: ApiOptions = {
optionsCallback: function(...) {...},
responseCallback: function(...) {...},
};
const privateApi = new PrivateApi(conf, options);
以下にPrivate APIの呼び出しサンプル実装を記載します。
const res = await privateApi.getAssets();
assert.equal(res.success, 1);
const params: GetOrderRequest = {
order_id: 14541343, // required
pair: 'btc_jpy', // optional
};
const res = await privateApi.getOrder(params);
const params: OrderRequest = {
pair: 'btc_jpy', // required
amount: '0.01', // required
price: 1000, // optional
side: 'buy', // required
type: 'market', // required
post_only: false, // optional. Except for circuit_break_info.mode is NONE, this parm is ignored.
};
const res = await privateApi.postOrder(params);
const params: CancelOrderRequest = {
order_id: 14541507, // required
pair: 'btc_jpy', // required
};
const res = await privateApi.cancelOrder(params);
const params: CancelOrdersRequest = {
order_ids: [14541370, 14541371], // required
pair: 'btc_jpy', // required
};
const res = await privateApi.cancelOrders(params);
const params: GetOrdersRequest = {
order_ids: [14541343, 14541344], // required
pair: 'btc_jpy', // optional
};
const res = await privateApi.getOrdersInfo(params);
const params: ActiveOrderRequest = {
pair: 'btc_jpy', // optional
count: 1, // optional
from_id: 14541346, // optional
end_id: 14541343, // optional
since: 1523419311277, // optional
end: 1523419024484, // optional
};
const res = await privateApi.getActiveOrders(params);
const params: TradeHistoryRequest = {
pair: 'btc_jpy', // optional
count: 1, // optional
order_id: 14541370, // optional
since: 1523419311277, // optional
end: 1523419024484, // optional
order: 'asc', // optional
};
const res = await privateApi.getTradeHistory(params);
const params: DepositHistoryRequest = {
asset: 'btc', // required
count: 1, // optional
since: 1523419311277, // optional
end: 1523419024484, // optional
order: 'asc', // optional
};
const res = await privateApi.getDepositHistory(params);
const params: WithdrawalAccountRequest = {
asset: 'jpy', // required
};
const res = await privateApi.getWithdrawalAccount(params);
const params: WithdrawalRequest = {
asset: 'jpy', // required
uuid: '00000000-0000-0000-0000-000000000000', // required
amount: '1000', // required
otp_token: '652036', // optional, sms_tokenとどちらか必須
sms_token: '******', // optional, otp_tokenとどちらか必須
};
const res = await privateApi.requestWithdrawal(params);
const params: WithdrawalHistoryRequest = {
asset: 'btc', // required
count: 1, // optional
since: 1523419311277, // optional
end: 1523419024484, // optional
order: 'asc', // optional
};
const res = await privateApi.getWithdrawalHistory(params);
以下のリポジトリのモックサーバーを用いて SDKが正しく実装されているかを確認することができます。 https://github.com/bitbankinc/mock-bitbankcc