Flutter Bitkub Exchange
Flutter Bitkub Exchange is a Flutter's library for calling API of the https://www.bitkub.com/
Installation
Add dependencies in pubspec.yaml
flutter_bitkub_exchange: 1.0.1
Usage
Import the package to your project.
import 'package:flutter_bitkub_exchange/bitkub_exchange.dart';
Using Public API
Create instance without API Key.
var bk = BitkubExchangeService();
Market Data (Ticker)
Get ticker information such as last price, high in 24Hr , volume. In the case that the wrong currency is returned to a empty list
var ticker = await bk.fetchMarketTicker(currency: "THB_BTC");
for(var currency in ticker.list){
// currency.id;
// currency.pairName;
// currency.last;
// currency.lowestAsk;
// currency.highestBid;
// currency.percentChange;
// currency.baseVolume;
// currency.quoteVolume;
// currency.high24hr;
// currency.lowestAsk;
}
Get Server Timestamp
Get server timestamp in seconds (Epoch Unix).
var server = await bk.fetchServerTime();
// server.serverTime;
}
Get Available Pair-Currency
Get List all available symbols.
var data = await bk.fetchMarketSymbols();
for(var currency in data.items){
// currency.id;
// currency.symbol;
// currency.info
}
Get Recent Trade
Get list recent trades. (limit is number of rows)
var recent = await bk.fetchRecentTrades(currency: "THB_BTC", limit: 100);
if(recent.isError()){
// recent.errorMessage;
}else{
for(var trade in recent.items){
// trade.type;
// trade.amount;
// trade.rate;
// trade.timestamp;
}
}
Get Current Open Order on Market
Get list open orders with bid/ask condition.
var openOrder = await bk.fetchMarketOpenOrders(orderType: BitkubOpenOrderType.BIDS, currency: "THB_BTC", limit: 10);
if(openOrder.isError()){
// openOrder.errorMessage;
}else{
for(var order in openOrder.orders){
// order.orderId;
// order.amount;
// order.rate;
// order.volume;
// order.timestam;
}
}
Get all open orders.
var market = await bk.fetchMarketOpenOrdersAll(currency: "THB_BTC", limit: 10);
if (market.isError()) {
// market.errorMessage;
} else {
// market.bids;
// market.asks;
}
Prepare Private API
Prepare 3 API keys.
1. General API key
General API key are used for reading general information, such as balance, open orders , deposit address.
2. Crate Order API key
Crate Order API key are used for creating order.
3. Cancel Order API key
Cancel Order API key are used for canceling order.
Using Private API
Create instance with 3 API keys.
var bk = BitkubExchangeService(
apiKeyGeneral: BitkubApiKey(apiKey: "-", secret: "-"),
apiKeyCreateOrder: BitkubApiKey(apiKey: "-", secret: "-"),
apiKeyCancelOrder: BitkubApiKey(apiKey: "-", secret: "-"));
Get Balances
Get balances info: this includes both available and reserved balances.
var data = await bk.fetchWalletBalance();
if(data.isError()){
// data.errorMessage;
}else{
for(var wallet in data.wallets){
// wallet.currency;
// wallet.balance;
// wallet.detail.balance;
// wallet.detail.available;
// wallet.detail.reserved;
}
}
Get Open Orders
List all open orders of the given symbol.
var openOrder = await bk.fetchUserOpenOrders(currency: "THB_ETH");
if(openOrder.isError()){
// data.errorMessage;
}else{
for(var order in openOrder.orders){
// order.id;
// order.type;
// order.rate;
// order.amount;
// order.side;
// order.fee;
// order.credit;
// order.receive
}
}
Get Transaction History
List all open orders of the given symbol.
var data = await bk.fetchUserOrderHistory(currency: "THB_ETH");
if(data.isError()){
// data.errorMessage;
}else{
for(var tx in data.history){
// tx.txnId;
// tx.orderId;
// tx.side;
// tx.rate;
// tx.amount;
// tx.fee;
// tx.credit;
// tx.takenByMe;
// row.balance;
}
}
Get Transaction History
List all open orders of the given symbol.
var data = await bk.fetchUserOrderHistory(currency: "THB_ETH");
if(data.isError()){
// data.errorMessage;
}else{
for(var tx in data.history){
// tx.txnId;
// tx.orderId;
// tx.side;
// tx.rate;
// tx.amount;
// tx.fee;
// tx.credit;
// tx.takenByMe;
// row.balance;
}
}
Create Order
Create a buy/sell order. Example : BUY ETH with 30 THB in rate 100 THB/ETH so you will receive 0.3 ETH.
var response =await bk.createOrder(currency: "THB_ETH",side: BitkubOpenOrderSide.BUY,amount: 30,rate: 100);
if(response.isError()){
// response.errorMessage;
} else{
// response.detail.id;
// response.detail.amount;
// response.detail.credit;
// response.detail.rate;
// response.detail.amount;
// response.detail.fee;
// response.detail.type;
// response.detail.receive;
}
Trading type
BitkubOpenOrderSide.BUY
BitkubOpenOrderSide.SELL
Cancel Order
Cancel order with OrderId.
var response = await bk.cancelOrder(currency: "THB_ETH",side: BitkubOpenOrderSide.BUY,orderId: 3132207,printJson: true);
if(response.isError()){
// response.errorMessage;
}
Other uses
Suggestions for other uses
Pairing Currency ID
You can use BitkubCurrency class instead Currency String.
Example
var recent = await bk.fetchRecentTrades(currency: BitkubCurrency.THB_BTC, limit: 100);
Print JSON
display JSON response on console or logcat.
var recent = await bk.fetchRecentTrades(currency: BitkubCurrency.THB_BTC, limit: 100,printJson: true);
Libraries
- bitkub_api_key
- bitkub_auth_utils
- bitkub_cancel_order_result_dao
- bitkub_create_order_result_dao
- bitkub_create_order_result_detail_dao
- bitkub_currency_balance_dao
- bitkub_currency_balance_detail_dao
- bitkub_error_manager
- bitkub_exchange
- bitkub_market_open_order_all_dao
- bitkub_market_open_order_dao
- bitkub_market_open_order_item_dao
- bitkub_market_symbol_dao
- bitkub_market_symbol_item_dao
- bitkub_market_ticker_dao
- bitkub_open_order_side
- bitkub_open_order_type
- bitkub_order_information_dao
- bitkub_order_information_detail_dao
- bitkub_order_information_history_dao
- bitkub_pair_currency_data_dao
- bitkub_pair_currency_manager
- bitkub_recent_trade_item_dao
- bitkub_recent_trades_dao
- bitkub_server_time_dao
- bitkub_trade_type
- bitkub_user_open_order_dao
- bitkub_user_open_order_item_dao
- bitkub_user_order_history_dao
- bitkub_user_order_history_item_dao
- bitkub_user_order_history_pagination_dao
- bitkub_utils
- bitkub_wallet_balance_dao