crypto-client
Version:
An unified client for all cryptocurrency exchanges.
38 lines (37 loc) • 1.65 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
/* eslint-disable max-classes-per-file */
// TODO: use bp node directly
const assert_1 = require("assert");
const axios_1 = __importDefault(require("axios"));
class Bloks {
static async getTransaction(transactionId) {
const url = `https://www.api.bloks.io/dfuse?type=fetch_transaction&id=${transactionId}`;
const response = await axios_1.default.get(url);
assert_1.strict.equal(response.status, 200);
assert_1.strict.equal(response.statusText, 'OK');
return response.data;
}
static extractOrderResponse(transaction) {
assert_1.strict.equal(transaction.transaction_status, 'executed');
assert_1.strict.ok(transaction.id);
assert_1.strict.ok(transaction.execution_trace);
assert_1.strict.ok(transaction.execution_trace);
assert_1.strict.equal(transaction.execution_trace.action_traces.length, 1);
assert_1.strict.equal(transaction.execution_trace.action_traces[0].inline_traces.length, 3);
return transaction.execution_trace.action_traces[0].inline_traces[2].act
.data;
}
static async getOrderId(transactionId) {
const transaction = await Bloks.getTransaction(transactionId);
const orderResponse = Bloks.extractOrderResponse(transaction);
return {
order_id: orderResponse.order_id,
pair_id: orderResponse.pair_id,
};
}
}
exports.default = Bloks;