raiden-ts
Version:
Raiden Light Client Typescript/Javascript SDK
80 lines (79 loc) • 4.39 kB
TypeScript
import type { Observable } from 'rxjs';
import type { RaidenAction } from '../../actions';
import { messageSend } from '../../messages/actions';
import type { RaidenState } from '../../state';
import { matrixPresence } from '../../transport/actions';
import type { RaidenEpicDeps } from '../../types';
import { withdraw, withdrawBusy, withdrawCompleted, withdrawExpire, withdrawMessage } from '../actions';
/**
* Emits withdraw action once for each own non-confirmed message at startup
*
* @param state$ - Observable of RaidenStates
* @returns Observable of withdrawMessage.request|withdrawExpire.success actions
*/
export declare function initWithdrawMessagesEpic({}: Observable<RaidenAction>, state$: Observable<RaidenState>): Observable<withdrawMessage.request | withdrawExpire.success>;
/**
* Resolve a withdrawResolve action and emit withdraw.request
* Resolving withdraws require that partner is online and contracts support `cooperativeSettle`.
*
* @param action$ - Observable of withdrawResolve actions
* @param state$ - Observable of RaidenStates
* @param deps - Epics dependencies
* @param deps.getTokenNetworkContract - TokenNetwork contract getter
* @returns Observable of withdraw.request|withdraw.failure actions
*/
export declare function withdrawResolveEpic(action$: Observable<RaidenAction>, {}: Observable<RaidenState>, { getTokenNetworkContract }: RaidenEpicDeps): Observable<matrixPresence.request | withdraw.request | withdraw.failure>;
/**
* Retry sending 'WithdrawRequest' messages to partner until WithdrawConfirmation is received
*
* @param action$ - Observable of withdrawRequest.request actions
* @param state$ - Observable of RaidenStates
* @param deps - Epics dependencies
* @param deps.config$ - Config observable
* @returns Observable of messageSend.request actions
*/
export declare function withdrawSendRequestMessageEpic(action$: Observable<RaidenAction>, state$: Observable<RaidenState>, { config$ }: RaidenEpicDeps): Observable<messageSend.request>;
/**
* Upon valid [[WithdrawConfirmation]], send the on-chain withdraw transaction
*
* @param action$ - Observable of withdrawMessage.success actions
* @param state$ - Observable of RaidenStates
* @param deps - Epics dependencies
* @returns Observable of withdraw.success|withdraw.failure actions
*/
export declare function withdrawSendTxEpic(action$: Observable<RaidenAction>, {}: Observable<RaidenState>, deps: RaidenEpicDeps): Observable<withdraw.success | withdraw.failure | withdrawBusy>;
/**
* Upon receiving withdraw request or confirmation, send partner the respective Processed message
*
* SDK-based clients (with caps.Delivery set) don't need it, so skip. They, instead, confirm
* the request with the confirmation, and re-sends confirmation on request retries
*
* @param action$ - Observable of withdrawMessage.request|withdrawMessage.success actions
* @param state$ - Observable of RaidenStates
* @param deps - Epics dependencies
* @param deps.signer - Signer instance
* @param deps.log - Logger instance
* @returns Observable of messageSend.request actions
*/
export declare function withdrawMessageProcessedEpic(action$: Observable<RaidenAction>, {}: Observable<RaidenState>, { signer, log }: RaidenEpicDeps): Observable<messageSend.request>;
/**
* Dispatch withdrawExpire.request when one of our sent WithdrawRequests expired
*
* @param action$ - Observable of newBlock actions
* @param state$ - Observable of RaidenStates
* @param deps - Epics dependencies
* @param deps.config$ - Config observable
* @param deps.latest$ - Latest observable
* @returns Observable of withdrawExpired actions
*/
export declare function withdrawAutoExpireEpic(action$: Observable<RaidenAction>, {}: Observable<RaidenState>, { config$, latest$ }: RaidenEpicDeps): Observable<withdrawExpire.request | withdraw.failure>;
/**
* Retry sending own WithdrawExpired messages until Processed, completes withdraw then
*
* @param action$ - Observable of withdrawExpire.success actions
* @param state$ - Observable of RaidenStates
* @param deps - Epics dependencies
* @param deps.config$ - Config observable
* @returns Observable of messageSend.request actions
*/
export declare function withdrawSendExpireMessageEpic(action$: Observable<RaidenAction>, {}: Observable<RaidenState>, { config$ }: RaidenEpicDeps): Observable<messageSend.request | withdrawCompleted>;