raiden-api-sdk
Version:
SDK for interacting with the Raiden API
96 lines (95 loc) • 3.7 kB
JavaScript
;
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;