raiden-ts
Version:
Raiden Light Client Typescript/Javascript SDK
30 lines (29 loc) • 1.68 kB
TypeScript
import type { Observable } from 'rxjs';
import type { RaidenAction } from '../../actions';
import type { RaidenState } from '../../state';
import type { RaidenEpicDeps } from '../../types';
import { channelDeposit } from '../actions';
/**
* A channelDeposit action requested by user or by channelOpenEpic
* Needs to be called on a previously monitored channel. Calls Token.approve for TokenNetwork
* and then set respective setTotalDeposit. If all tx go through successfuly, stop as
* channelDeposit.success action will instead be detected and reacted by channelEventsEpic.
* If anything detectable goes wrong, fires channelDeposit.failure instead
* Fails immediately if channel doesn't exist or isn't open, unless payload.waitOpen is true, in
* which case 'approve' in paralle and wait for confirmed channelOpen.success to 'setTotalDeposit'
*
* @param action$ - Observable of channelDeposit.request|channelOpen.failure actions
* @param state$ - Observable of RaidenStates
* @param deps - RaidenEpicDeps members
* @param deps.log - Logger instance
* @param deps.signer - Signer instance
* @param deps.address - Our address
* @param deps.main - Main signer/address
* @param deps.getTokenContract - Token contract instance getter
* @param deps.getTokenNetworkContract - TokenNetwork contract instance getter
* @param deps.provider - Eth provider
* @param deps.config$ - Config observable
* @param deps.latest$ - Latest observable
* @returns Observable of channelDeposit.failure actions
*/
export declare function channelDepositEpic(action$: Observable<RaidenAction>, {}: Observable<RaidenState>, deps: RaidenEpicDeps): Observable<channelDeposit.failure>;