UNPKG

raiden-ts

Version:

Raiden Light Client Typescript/Javascript SDK

1,436 lines (1,435 loc) 48.1 kB
import * as t from 'io-ts'; import { BalanceProof } from '../channels/types'; import { LockedTransfer, LockExpired, Processed, SecretRequest, SecretReveal, Unlock, WithdrawConfirmation, WithdrawExpired, WithdrawRequest } from '../messages/types'; import type { ActionType } from '../utils/actions'; import { Address, UInt } from '../utils/types'; import { TransferState } from './state'; /** * A transfer async action set * * A transfer is considered as having succeeded from the time the secret is revealed to the target, * as from there, target and mediators can claim the payment down to us. But the full off-chain * happy case completes only after partner/neighbor acknowledges receiving the Unlock. * So, we usually only emits this action in the end of the happy case, and it'll then contain the * unlock's balanceProof, which indicates the full off-chain path succeeded. * It'll be emitted without a balanceProof if something forces the transfer to complete * (e.g. channel closed), the secret was revealed (so target was paid) but for any reason the * unlock didn't happen yet. * * transfer.failure is emitted as soon as we know the transfer failed definitely, like when a * RefundTransfer is received or the lock expires before revealing the secret. It notifies the user * (e.g. pending Promises) that the transfer failed and won't be paid (eventually, locked amount * will be recovered by expiring the lock). */ export declare const transfer: { readonly request: ((payload: { tokenNetwork: Address; target: Address; value: UInt<32>; paymentId: UInt<8>; } & (({ resolved: false; } & { paths?: readonly Readonly<({ route: readonly Address[]; } | { path: readonly Address[]; }) & ({ fee: import("../utils/types").Int<32>; } | { estimated_fee: import("../utils/types").Int<32>; }) & { address_metadata?: Readonly<{ [x: string]: import("../services/types").AddressMetadata; }> | undefined; }>[] | undefined; pfs?: Readonly<{ address: Address; url: string; matrixServer: string; rtt: number; price: UInt<32>; token: Address; validTill: number; }> | null | undefined; encryptSecret?: boolean | undefined; }) | ({ resolved: true; metadata: unknown; fee: import("../utils/types").Int<32>; partner: Address; } & { userId?: string | undefined; })) & { secret?: import("../utils/types").HexString<32> | undefined; initiator?: Address | undefined; } & ({ expiration?: number | undefined; } | { lockTimeout?: number | undefined; }), meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/request"; readonly payload: { tokenNetwork: Address; target: Address; value: UInt<32>; paymentId: UInt<8>; } & (({ resolved: false; } & { paths?: readonly Readonly<({ route: readonly Address[]; } | { path: readonly Address[]; }) & ({ fee: import("../utils/types").Int<32>; } | { estimated_fee: import("../utils/types").Int<32>; }) & { address_metadata?: Readonly<{ [x: string]: import("../services/types").AddressMetadata; }> | undefined; }>[] | undefined; pfs?: Readonly<{ address: Address; url: string; matrixServer: string; rtt: number; price: UInt<32>; token: Address; validTill: number; }> | null | undefined; encryptSecret?: boolean | undefined; }) | ({ resolved: true; metadata: unknown; fee: import("../utils/types").Int<32>; partner: Address; } & { userId?: string | undefined; })) & { secret?: import("../utils/types").HexString<32> | undefined; initiator?: Address | undefined; } & ({ expiration?: number | undefined; } | { lockTimeout?: number | undefined; }); readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/request"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/request"; readonly payload: { tokenNetwork: Address; target: Address; value: UInt<32>; paymentId: UInt<8>; } & (({ resolved: false; } & { paths?: readonly Readonly<({ route: readonly Address[]; } | { path: readonly Address[]; }) & ({ fee: import("../utils/types").Int<32>; } | { estimated_fee: import("../utils/types").Int<32>; }) & { address_metadata?: Readonly<{ [x: string]: import("../services/types").AddressMetadata; }> | undefined; }>[] | undefined; pfs?: Readonly<{ address: Address; url: string; matrixServer: string; rtt: number; price: UInt<32>; token: Address; validTill: number; }> | null | undefined; encryptSecret?: boolean | undefined; }) | ({ resolved: true; metadata: unknown; fee: import("../utils/types").Int<32>; partner: Address; } & { userId?: string | undefined; })) & { secret?: import("../utils/types").HexString<32> | undefined; initiator?: Address | undefined; } & ({ expiration?: number | undefined; } | { lockTimeout?: number | undefined; }); readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; /** Partner acknowledge they received and processed our LockExpired */ readonly success: ((payload: { balanceProof?: (BalanceProof & Readonly<{ signature: import("../utils/types").HexString<65>; }>) | undefined; }, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/success"; readonly payload: { balanceProof?: (BalanceProof & Readonly<{ signature: import("../utils/types").HexString<65>; }>) | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/success"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/success"; readonly payload: { balanceProof?: (BalanceProof & Readonly<{ signature: import("../utils/types").HexString<65>; }>) | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; readonly failure: ((payload: unknown, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/failure"; readonly payload: unknown; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; readonly error: true; }) & { type: "transfer/failure"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/failure"; readonly payload: unknown; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; readonly error: true; }; error: true; }; }; export declare namespace transfer { interface request extends ActionType<typeof transfer.request> { } interface success extends ActionType<typeof transfer.success> { } interface failure extends ActionType<typeof transfer.failure> { } } /** A LockedTransfer was signed and should be sent to partner */ export declare const transferSigned: ((payload: { message: LockedTransfer & Readonly<{ signature: import("../utils/types").HexString<65>; }>; fee: import("../utils/types").Int<32>; partner: Address; } & { userId?: string | undefined; }, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/signed"; readonly payload: { message: LockedTransfer & Readonly<{ signature: import("../utils/types").HexString<65>; }>; fee: import("../utils/types").Int<32>; partner: Address; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/signed"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/signed"; readonly payload: { message: LockedTransfer & Readonly<{ signature: import("../utils/types").HexString<65>; }>; fee: import("../utils/types").Int<32>; partner: Address; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; export interface transferSigned extends ActionType<typeof transferSigned> { } /** Partner acknowledge they received and processed our LockedTransfer */ export declare const transferProcessed: ((payload: { message: Processed & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/processed"; readonly payload: { message: Processed & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/processed"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/processed"; readonly payload: { message: Processed & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; export interface transferProcessed extends ActionType<typeof transferProcessed> { } /** Register a secret */ export declare const transferSecret: ((payload: { secret: import("../utils/types").HexString<32>; }, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/secret"; readonly payload: { secret: import("../utils/types").HexString<32>; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/secret"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/secret"; readonly payload: { secret: import("../utils/types").HexString<32>; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; export interface transferSecret extends ActionType<typeof transferSecret> { } export declare const transferSecretRegister: { readonly request: ((payload: { secret: import("../utils/types").HexString<32>; }, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/secret/register/request"; readonly payload: { secret: import("../utils/types").HexString<32>; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/secret/register/request"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/secret/register/request"; readonly payload: { secret: import("../utils/types").HexString<32>; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; /** Partner acknowledge they received and processed our LockExpired */ readonly success: ((payload: { secret: import("../utils/types").HexString<32>; txTimestamp: number; txHash: import("../utils/types").HexString<32>; txBlock: number; confirmed: boolean | undefined; }, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/secret/register/success"; readonly payload: { secret: import("../utils/types").HexString<32>; txTimestamp: number; txHash: import("../utils/types").HexString<32>; txBlock: number; confirmed: boolean | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/secret/register/success"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/secret/register/success"; readonly payload: { secret: import("../utils/types").HexString<32>; txTimestamp: number; txHash: import("../utils/types").HexString<32>; txBlock: number; confirmed: boolean | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; readonly failure: ((payload: unknown, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/secret/register/failure"; readonly payload: unknown; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; readonly error: true; }) & { type: "transfer/secret/register/failure"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/secret/register/failure"; readonly payload: unknown; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; readonly error: true; }; error: true; }; }; export declare namespace transferSecretRegister { interface request extends ActionType<typeof transferSecretRegister.request> { } interface success extends ActionType<typeof transferSecretRegister.success> { } interface failure extends ActionType<typeof transferSecretRegister.failure> { } } /** A valid SecretRequest received from target */ export declare const transferSecretRequest: ((payload: { message: SecretRequest & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/secret/request"; readonly payload: { message: SecretRequest & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/secret/request"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/secret/request"; readonly payload: { message: SecretRequest & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; export interface transferSecretRequest extends ActionType<typeof transferSecretRequest> { } /** A SecretReveal sent to target */ export declare const transferSecretReveal: ((payload: { message: SecretReveal & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/secret/reveal"; readonly payload: { message: SecretReveal & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/secret/reveal"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/secret/reveal"; readonly payload: { message: SecretReveal & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; export interface transferSecretReveal extends ActionType<typeof transferSecretReveal> { } export declare const transferUnlock: { readonly request: ((payload: { userId?: string | undefined; } | undefined, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/unlock/request"; readonly payload: { userId?: string | undefined; } | undefined; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/unlock/request"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/unlock/request"; readonly payload: { userId?: string | undefined; } | undefined; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; /** Partner acknowledge they received and processed our LockExpired */ readonly success: ((payload: { message: Unlock & Readonly<{ signature: import("../utils/types").HexString<65>; }>; partner: Address; } & { userId?: string | undefined; }, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/unlock/success"; readonly payload: { message: Unlock & Readonly<{ signature: import("../utils/types").HexString<65>; }>; partner: Address; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/unlock/success"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/unlock/success"; readonly payload: { message: Unlock & Readonly<{ signature: import("../utils/types").HexString<65>; }>; partner: Address; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; readonly failure: ((payload: unknown, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/unlock/failure"; readonly payload: unknown; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; readonly error: true; }) & { type: "transfer/unlock/failure"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/unlock/failure"; readonly payload: unknown; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; readonly error: true; }; error: true; }; }; export declare namespace transferUnlock { interface request extends ActionType<typeof transferUnlock.request> { } interface success extends ActionType<typeof transferUnlock.success> { } interface failure extends ActionType<typeof transferUnlock.failure> { } } /** Partner acknowledge they received and processed our Unlock */ export declare const transferUnlockProcessed: ((payload: { message: Processed & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/unlock/processed"; readonly payload: { message: Processed & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/unlock/processed"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/unlock/processed"; readonly payload: { message: Processed & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; export interface transferUnlockProcessed extends ActionType<typeof transferUnlockProcessed> { } /** * A request to expire a given transfer * * A transfer expiration request may fail for any reason * e.g. user rejected sign prompt. It should eventually get prompted again, on a future newBlock * action which sees this transfer should be expired but sent.expired didn't get set yet. */ export declare const transferExpire: { readonly request: ((_: undefined, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/expire/request"; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/expire/request"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/expire/request"; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; /** Partner acknowledge they received and processed our LockExpired */ readonly success: ((payload: { message: LockExpired & Readonly<{ signature: import("../utils/types").HexString<65>; }>; partner: Address; }, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/expire/success"; readonly payload: { message: LockExpired & Readonly<{ signature: import("../utils/types").HexString<65>; }>; partner: Address; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/expire/success"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/expire/success"; readonly payload: { message: LockExpired & Readonly<{ signature: import("../utils/types").HexString<65>; }>; partner: Address; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; readonly failure: ((payload: unknown, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/expire/failure"; readonly payload: unknown; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; readonly error: true; }) & { type: "transfer/expire/failure"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/expire/failure"; readonly payload: unknown; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; readonly error: true; }; error: true; }; }; export declare namespace transferExpire { interface request extends ActionType<typeof transferExpire.request> { } interface success extends ActionType<typeof transferExpire.success> { } interface failure extends ActionType<typeof transferExpire.failure> { } } /** Partner acknowledge they received and processed our LockExpired */ export declare const transferExpireProcessed: ((payload: { message: Processed & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/expire/processed"; readonly payload: { message: Processed & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/expire/processed"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/expire/processed"; readonly payload: { message: Processed & Readonly<{ signature: import("../utils/types").HexString<65>; }>; } & { userId?: string | undefined; }; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; export interface transferExpireProcessed extends ActionType<typeof transferExpireProcessed> { } export declare const transferClear: ((payload: undefined, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/clear"; readonly payload: undefined; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/clear"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/clear"; readonly payload: undefined; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; export interface transferClear extends ActionType<typeof transferClear> { } export declare const transferLoad: ((payload: TransferState, meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }) => { readonly type: "transfer/load"; readonly payload: TransferState; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }) & { type: "transfer/load"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "transfer/load"; readonly payload: TransferState; readonly meta: { secrethash: import("../utils/types").HexString<32>; direction: import("./state").Direction; }; }; error: undefined; }; export interface transferLoad extends ActionType<typeof transferLoad> { } /** * Request withdrawResolveEpic to resolve and emit a withdraw.request */ export declare const withdrawResolve: ((payload: { coopSettle: true; } | undefined, meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }) => { readonly type: "withdraw/resolve"; readonly payload: { coopSettle: true; } | undefined; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }) & { type: "withdraw/resolve"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "withdraw/resolve"; readonly payload: { coopSettle: true; } | undefined; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }; error: undefined; }; export interface withdrawResolve extends ActionType<typeof withdrawResolve> { } /** * Start a withdraw * - request: request to start a withdraw * - success: withdraw finished on-chain * - failure: something went wrong generating or processing a request */ export declare const withdraw: { readonly request: ((payload: { coopSettle: boolean; } | undefined, meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }) => { readonly type: "withdraw/request"; readonly payload: { coopSettle: boolean; } | undefined; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }) & { type: "withdraw/request"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "withdraw/request"; readonly payload: { coopSettle: boolean; } | undefined; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }; error: undefined; }; /** Partner acknowledge they received and processed our LockExpired */ readonly success: ((payload: { txHash: import("../utils/types").HexString<32>; txBlock: number; confirmed: boolean | undefined; }, meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }) => { readonly type: "withdraw/success"; readonly payload: { txHash: import("../utils/types").HexString<32>; txBlock: number; confirmed: boolean | undefined; }; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }) & { type: "withdraw/success"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "withdraw/success"; readonly payload: { txHash: import("../utils/types").HexString<32>; txBlock: number; confirmed: boolean | undefined; }; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }; error: undefined; }; readonly failure: ((payload: unknown, meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }) => { readonly type: "withdraw/failure"; readonly payload: unknown; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; readonly error: true; }) & { type: "withdraw/failure"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "withdraw/failure"; readonly payload: unknown; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; readonly error: true; }; error: true; }; }; export declare namespace withdraw { interface request extends ActionType<typeof withdraw.request> { } interface success extends ActionType<typeof withdraw.success> { } interface failure extends ActionType<typeof withdraw.failure> { } } /** * Withdraw messages going through: * - request: WithdrawRequest sent or received * - success: WithdrawConfirmation sent or received * - failure: something went wrong processing WithdrawRequest or WithdrawConfirmation messages */ export declare const withdrawMessage: { readonly request: ((payload: { message: WithdrawRequest & Readonly<{ signature: import("../utils/types").HexString<65>; }>; }, meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }) => { readonly type: "withdraw/message/request"; readonly payload: { message: WithdrawRequest & Readonly<{ signature: import("../utils/types").HexString<65>; }>; }; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }) & { type: "withdraw/message/request"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "withdraw/message/request"; readonly payload: { message: WithdrawRequest & Readonly<{ signature: import("../utils/types").HexString<65>; }>; }; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }; error: undefined; }; /** Partner acknowledge they received and processed our LockExpired */ readonly success: ((payload: { message: WithdrawConfirmation & Readonly<{ signature: import("../utils/types").HexString<65>; }>; }, meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }) => { readonly type: "withdraw/message/success"; readonly payload: { message: WithdrawConfirmation & Readonly<{ signature: import("../utils/types").HexString<65>; }>; }; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }) & { type: "withdraw/message/success"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "withdraw/message/success"; readonly payload: { message: WithdrawConfirmation & Readonly<{ signature: import("../utils/types").HexString<65>; }>; }; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }; error: undefined; }; readonly failure: ((payload: unknown, meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }) => { readonly type: "withdraw/message/failure"; readonly payload: unknown; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; readonly error: true; }) & { type: "withdraw/message/failure"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "withdraw/message/failure"; readonly payload: unknown; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; readonly error: true; }; error: true; }; }; export declare namespace withdrawMessage { interface request extends ActionType<typeof withdrawMessage.request> { } interface success extends ActionType<typeof withdrawMessage.success> { } interface failure extends ActionType<typeof withdrawMessage.failure> { } } /** * Signals this withdraw is "busy" performing contract's transaction (either setTotalWithdraw * or cooperativeSettle). Is "unlocked" by the respective withdraw.success|failure */ export declare const withdrawBusy: ((payload: undefined, meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }) => { readonly type: "withdraw/busy"; readonly payload: undefined; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }) & { type: "withdraw/busy"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "withdraw/busy"; readonly payload: undefined; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }; error: undefined; }; export interface withdrawBusy extends ActionType<typeof withdrawBusy> { } /** * Expires a withdraw * - request: request to expire a past request * - success: WithdrawExpired sent or received * - failure: something went wrong generating or processing a request */ export declare const withdrawExpire: { readonly request: ((payload: undefined, meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }) => { readonly type: "withdraw/expire/request"; readonly payload: undefined; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }) & { type: "withdraw/expire/request"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "withdraw/expire/request"; readonly payload: undefined; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }; error: undefined; }; /** Partner acknowledge they received and processed our LockExpired */ readonly success: ((payload: { message: WithdrawExpired & Readonly<{ signature: import("../utils/types").HexString<65>; }>; }, meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }) => { readonly type: "withdraw/expire/success"; readonly payload: { message: WithdrawExpired & Readonly<{ signature: import("../utils/types").HexString<65>; }>; }; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }) & { type: "withdraw/expire/success"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "withdraw/expire/success"; readonly payload: { message: WithdrawExpired & Readonly<{ signature: import("../utils/types").HexString<65>; }>; }; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }; error: undefined; }; readonly failure: ((payload: unknown, meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }) => { readonly type: "withdraw/expire/failure"; readonly payload: unknown; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; readonly error: true; }) & { type: "withdraw/expire/failure"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "withdraw/expire/failure"; readonly payload: unknown; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; readonly error: true; }; error: true; }; }; export declare namespace withdrawExpire { interface request extends ActionType<typeof withdrawExpire.request> { } interface success extends ActionType<typeof withdrawExpire.success> { } interface failure extends ActionType<typeof withdrawExpire.failure> { } } export declare const withdrawCompleted: ((payload: undefined, meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }) => { readonly type: "withdraw/completed"; readonly payload: undefined; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }) & { type: "withdraw/completed"; codec: t.Mixed; is: (a: unknown) => a is { readonly type: "withdraw/completed"; readonly payload: undefined; readonly meta: { direction: import("./state").Direction; tokenNetwork: Address; partner: Address; totalWithdraw: UInt<32>; expiration: number; }; }; error: undefined; }; export interface withdrawCompleted extends ActionType<typeof withdrawCompleted> { }