raiden-api-sdk
Version:
SDK for interacting with the Raiden API
91 lines (90 loc) • 3.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var rxjs_1 = require("rxjs");
var operators_1 = require("rxjs/operators");
var apis_1 = require("./apis");
var errors_1 = require("./errors");
var ajax_1 = require("rxjs/ajax");
var Tokens = /** @class */ (function () {
function Tokens(tokensApi) {
this.tokensApi = tokensApi;
}
Tokens.create = function (config) {
var tokensApi = new apis_1.TokensApi(config);
return new Tokens(tokensApi);
};
/**
* Addresses of all registered tokens
*
* @since 0.100.3
* @throws {@link RaidenAPIError}
* @see {@link https://raiden-network.readthedocs.io/en/latest/rest_api.html#get--api-(version)-tokens}
*/
Tokens.prototype.findAllRegistered = function () {
return this.tokensApi.getTokens().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);
}));
};
/**
* Token network address
*
* @remarks
* The address of the corresponding token network for the given token, if the token is registered.
* @param tokenAddress - The address of the token
* @since 0.100.3
* @throws {@link RaidenAPIError}
* @see {@link https://raiden-network.readthedocs.io/en/latest/rest_api.html#get--api-(version)-tokens-(token_address)}
*/
Tokens.prototype.networkAddressFor = function (tokenAddress) {
return this.tokensApi.getToken({ 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);
}));
};
/**
* List of all partners with whom you have non-settled channels for a certain token
*
* @param tokenAddress - the address of the token
*
* @since 0.100.3
* @throws {@link RaidenAPIError}
* @see {@link https://raiden-network.readthedocs.io/en/latest/rest_api.html#get--api-(version)-tokens-(token_address)-partners}
*/
Tokens.prototype.partners = function (tokenAddress) {
return this.tokensApi.getTokenPartners({ 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);
}));
};
/**
* Register a token
*
* @remarks
* If a token is not registered yet
* (i.e.: A token network for that token does not exist in the registry),
* we need to register it by deploying a token network contract for
* that token.
* @param tokenAddress - the address of the token
*
* @since 0.100.3
* @throws {@link RaidenAPIError}
* @see {@link https://raiden-network.readthedocs.io/en/latest/rest_api.html#put--api-(version)-tokens-(token_address)}
*/
Tokens.prototype.register = function (tokenAddress) {
return this.tokensApi.registerToken({ tokenAddress: tokenAddress }).pipe(operators_1.map(function (res) { return res.tokenNetworkAddress; }), 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 Tokens;
}());
exports.Tokens = Tokens;