lightning
Version:
Lightning Network client library
134 lines (128 loc) • 3.83 kB
TypeScript
import type {MergeExclusive} from 'type-fest';
import type {
AuthenticatedLightningArgs,
AuthenticatedLightningMethod,
RouteNode,
} from '../../typescript';
export type ProbeForRouteNode = RouteNode & {
/** Channel Capacity Tokens Number */
channel_capacity?: number;
};
export type ProbeForRouteRoutes = ProbeForRouteNode[][];
export type ProbeForRouteArgs = AuthenticatedLightningArgs<
{
/** Final CLTV Delta Number */
cltv_delta?: number;
/** Destination Public Key Hex String */
destination: string;
features?: {
/** Feature Bit Number */
bit: number;
}[];
ignore?: {
/** Channel Id String */
channel?: string;
/** Public Key Hex String */
from_public_key: string;
/** To Public Key Hex String */
to_public_key?: string;
}[];
/** Incoming Peer Public Key Hex String */
incoming_peer?: string;
/** Adjust Probe For Past Routing Failures Bool */
is_ignoring_past_failures?: boolean;
/** Maximum Fee Tokens Number */
max_fee?: number;
/** Maximum Fee Millitokens to Pay String */
max_fee_mtokens?: string;
/** Maximum Height of Payment Timeout Number */
max_timeout_height?: number;
messages?: {
/** Message To Final Destination Type Number String */
type: string;
/** Message To Final Destination Raw Value Hex Encoded String */
value: string;
}[];
/** Outgoing Channel Id String */
outgoing_channel?: string;
/** Time to Spend On A Path Milliseconds Number */
path_timeout_ms?: number;
/** Payment Identifier Hex String */
payment?: string;
/** Probe Timeout Milliseconds Number */
probe_timeout_ms?: number;
routes?: ProbeForRouteRoutes;
/** Total Millitokens Across Paths String */
total_mtokens?: string;
} & MergeExclusive<
{
/** Millitokens to Pay String */
mtokens: string;
},
{
/** Tokens Number */
tokens: number;
}
>
>;
export type ProbeForRouteResult = {
route?: {
/** Route Confidence Score Out Of One Million Number */
confidence?: number;
/** Route Fee Tokens Rounded Down Number */
fee: number;
/** Route Fee Millitokens String */
fee_mtokens: string;
hops: {
/** Standard Format Channel Id String */
channel: string;
/** Channel Capacity Tokens Number */
channel_capacity: number;
/** Fee Number */
fee: number;
/** Fee Millitokens String */
fee_mtokens: string;
/** Forward Tokens Number */
forward: number;
/** Forward Millitokens String */
forward_mtokens: string;
/** Forward Edge Public Key Hex String */
public_key: string;
/** Timeout Block Height Number */
timeout: number;
}[];
messages?: {
/** Message Type Number String */
type: string;
/** Message Raw Value Hex Encoded String */
value: string;
}[];
/** Total Fee-Inclusive Millitokens String */
mtokens: string;
/** Payment Identifier Hex String */
payment?: string;
/** Payment Forwarding Fee Rounded Up Tokens Number */
safe_fee: number;
/** Payment Tokens Rounded Up Number */
safe_tokens: number;
/** Timeout Block Height Number */
timeout: number;
/** Total Fee-Inclusive Tokens Rounded Down Number */
tokens: number;
/** Total Millitokens String */
total_mtokens?: string;
};
};
/**
* Probe to find a successful route
*
* When probing to a payment request, make sure to specify the fields encoded in the payment request such as `cltv_delta`.
*
* If `total_mtokens` are specified, a `payment` nonce is required.
*
* Requires `offchain:write` permission
*/
export const probeForRoute: AuthenticatedLightningMethod<
ProbeForRouteArgs,
ProbeForRouteResult
>;