UNPKG

@raiden_network/raiden-cli

Version:

Raiden Light Client standalone app with a REST API via HTTP

61 lines (60 loc) 2.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.makePendingTransfersRouter = exports.ApiTransferRole = void 0; const express_1 = require("express"); const validation_1 = require("../utils/validation"); var ApiTransferRole; (function (ApiTransferRole) { ApiTransferRole["initiator"] = "initiator"; ApiTransferRole["mediator"] = "mediator"; ApiTransferRole["target"] = "target,"; })(ApiTransferRole = exports.ApiTransferRole || (exports.ApiTransferRole = {})); function transformSdkToApiPendingTransfer(transfer) { let role; if (transfer.direction === 'sent' && transfer.initiator === this.raiden.address) role = ApiTransferRole.initiator; else if (transfer.direction === 'received' && transfer.target === this.raiden.address) role = ApiTransferRole.target; else if (transfer.direction === 'sent') role = ApiTransferRole.mediator; else return; // filter out duplicated 'received' side of mediated transfers return { channel_identifier: transfer.channelId.toString(), initiator: transfer.initiator, locked_amount: transfer.amount.toString(), payment_identifier: transfer.paymentId.toString(), role, target: transfer.target, token_address: transfer.token, token_network_address: transfer.tokenNetwork, transferred_amount: transfer.amount.sub(transfer.fee).toString(), }; } async function getPendingTransfers(request, response) { let filter; if (request.params.tokenAddress) { filter = { pending: true, token: request.params.tokenAddress }; if (request.params.partnerAddress) filter['partner'] = request.params.partnerAddress; } else filter = { pending: true }; this.raiden .getTransfers(filter, (0, validation_1.queryAsNumbers)(request.query)) .then((transfers) => transfers.map(transformSdkToApiPendingTransfer)) .then((r) => response.json(r), (e) => { this.log.error(e); response.status(400).send(e); }); } /** * @param this - Cli object * @returns Router instance */ function makePendingTransfersRouter() { const router = (0, express_1.Router)(); router.get('/:tokenAddress?/:partnerAddress?', validation_1.validateOptionalAddressParameter.bind('tokenAddress'), validation_1.validateOptionalAddressParameter.bind('partnerAddress'), getPendingTransfers.bind(this)); return router; } exports.makePendingTransfersRouter = makePendingTransfersRouter;