UNPKG

raiden-api-sdk

Version:

SDK for interacting with the Raiden API

96 lines (95 loc) 3.7 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); var rxjs_1 = require("rxjs"); var apis_1 = require("./apis"); var operators_1 = require("rxjs/operators"); var ajax_1 = require("rxjs/ajax"); var errors_1 = require("./errors"); var TokenNetworks = /** @class */ (function () { function TokenNetworks(connectionsApi) { this.connectionsApi = connectionsApi; } TokenNetworks.create = function (config) { var connectionsApi = new apis_1.ConnectionsApi(config); return new TokenNetworks(connectionsApi); }; /** * Joined Token Networks * * @remarks * Each key is a token address for which you have open channels. * * @since 0.100.3 * @throws {@link RaidenAPIError} * @see {@link https://raiden-network.readthedocs.io/en/latest/rest_api.html#get--api-(version)-connections} */ TokenNetworks.prototype.findAll = function () { return this.connectionsApi.getConnections().pipe(operators_1.catchError(function (err) { if (err instanceof ajax_1.AjaxError) { return rxjs_1.throwError(new errors_1.RaidenAPIError(err)); } return rxjs_1.throwError(err); })); }; /** * Automatically join a token network. * * @remarks * The request will only return once all blockchain calls * for opening and/or depositing to a channel have completed. * * @param tokenAddress - Token address of the respective token network * @param funds - The amount of funds you want to deposit * @param allocation - Allocation of funds for each channel in the network * * @since 0.100.3 * @throws {@link RaidenAPIError} * @see {@link https://raiden-network.readthedocs.io/en/latest/rest_api.html#put--api-(version)-connections-(token_address)} */ TokenNetworks.prototype.join = function (tokenAddress, funds, allocation) { return this.connectionsApi .joinNetwork({ tokenAddress: tokenAddress, channelAllocation: __assign({ funds: funds }, allocation), }) .pipe(operators_1.catchError(function (err) { if (err instanceof ajax_1.AjaxError) { return rxjs_1.throwError(new errors_1.RaidenAPIError(err)); } return rxjs_1.throwError(err); })); }; /** * Leave a token network * * @remarks * The request will only return once all blockchain calls * for closing/settling a channel have completed. * @param tokenAddress - Token address of the respective token network * * @since 0.100.3 * @throws {@link RaidenAPIError} * @see {@link https://raiden-network.readthedocs.io/en/latest/rest_api.html#delete--api-(version)-connections-(token_address)} */ TokenNetworks.prototype.leave = function (tokenAddress) { return this.connectionsApi.leaveNetwork({ tokenAddress: tokenAddress }).pipe(operators_1.catchError(function (err) { if (err instanceof ajax_1.AjaxError) { return rxjs_1.throwError(new errors_1.RaidenAPIError(err)); } return rxjs_1.throwError(err); })); }; return TokenNetworks; }()); exports.TokenNetworks = TokenNetworks;