UNPKG

raiden-ts

Version:

Raiden Light Client Typescript/Javascript SDK

80 lines (79 loc) 4.39 kB
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>;