UNPKG

raiden-api-sdk

Version:

SDK for interacting with the Raiden API

52 lines (47 loc) 1.41 kB
import { Observable, throwError } from 'rxjs'; import { map, catchError } from 'rxjs/operators'; import { Configuration, RaidenNodeApi } from './apis'; import { AjaxError } from 'rxjs/ajax'; import { RaidenAPIError } from './errors'; export class Node { public static create(config?: Configuration) { const nodeApi = new RaidenNodeApi(config); return new Node(nodeApi); } constructor(private readonly nodeApi: RaidenNodeApi) {} /** * Query your address * * @remarks * When raiden starts, you choose an ethereum address which will * also be your raiden address. * * @example * ```typescript * import Raiden from 'raiden-api-sdk'; * * (async function() { * const raiden = Raiden.create(); * const ourAddress = await raiden.node.ourAddress().toPromise(); * * // 0xA44e09ea90eAF80DC1B59aA45687e2c4d572049D * console.log(ourAddress); * })() * ``` * * @since 0.100.3 * @throws {@link RaidenAPIError} * @see {@link https://raiden-network.readthedocs.io/en/latest/rest_api.html#get--api-(version)-address} */ public ourAddress(): Observable<string> { return this.nodeApi.getAddress().pipe( map((val) => val.ourAddress), catchError((err) => { if (err instanceof AjaxError) { return throwError(new RaidenAPIError(err)); } return throwError(err); }), ); } }