@ethersphere/bee-js
Version:
Javascript client for Bee
53 lines (52 loc) • 2.42 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAllSettlements = exports.getSettlements = void 0;
const cafe_utility_1 = require("cafe-utility");
const http_1 = require("../../utils/http");
const tokens_1 = require("../../utils/tokens");
const type_1 = require("../../utils/type");
const settlementsEndpoint = 'settlements';
/**
* Get amount of sent and received from settlements with a peer
*
* @param requestOptions Options for making requests
* @param peer Swarm address of peer
*/
async function getSettlements(requestOptions, peer) {
const response = await (0, http_1.http)(requestOptions, {
url: `${settlementsEndpoint}/${peer}`,
responseType: 'json',
});
const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
return {
peer: cafe_utility_1.Types.asString(body.peer, { name: 'peer' }),
sent: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.sent, { name: 'sent' })),
received: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.received, { name: 'received' })),
};
}
exports.getSettlements = getSettlements;
/**
* Get settlements with all known peers and total amount sent or received
*
* @param requestOptions Options for making requests
*/
async function getAllSettlements(requestOptions) {
const response = await (0, http_1.http)(requestOptions, {
url: settlementsEndpoint,
responseType: 'json',
});
const body = cafe_utility_1.Types.asObject(response.data, { name: 'response.data' });
const totalSent = tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.totalSent, { name: 'totalSent' }));
const totalReceived = tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(body.totalReceived, { name: 'totalReceived' }));
const settlements = cafe_utility_1.Types.asArray(body.settlements, { name: 'settlements' }).map(x => cafe_utility_1.Types.asObject(x, { name: 'settlement' }));
return {
totalSent,
totalReceived,
settlements: settlements.map(x => ({
peer: cafe_utility_1.Types.asString(x.peer, { name: 'peer' }),
sent: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(x.sent, { name: 'sent' })),
received: tokens_1.BZZ.fromPLUR((0, type_1.asNumberString)(x.received, { name: 'received' })),
})),
};
}
exports.getAllSettlements = getAllSettlements;