Merge pull request #499 from stakwork/fix/final_cltv_delta

final_cltv_delta = 40 for send_payment, 43 for query_route to equaliz…
This commit is contained in:
Evan Feenstra 2022-11-25 14:54:54 +00:00 committed by GitHub
commit ab5f9dff62
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 24 additions and 6 deletions

View file

@ -2,6 +2,7 @@
Object.defineProperty(exports, "__esModule", { value: true });
const constants = {
min_sat_amount: 3,
final_cltv_delta: 40,
invite_statuses: {
pending: 0,
ready: 1,

View file

@ -1 +1 @@
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;AAAA,MAAM,SAAS,GAAG;IAChB,cAAc,EAAE,CAAC;IACjB,eAAe,EAAE;QACf,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;QACV,eAAe,EAAE,CAAC;KACnB;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,CAAC;KACb;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;KACX;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,CAAC;KACZ;IACD,aAAa,EAAE;QACb,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,CAAC;QACjB,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,EAAE;QACf,wBAAwB,EAAE,EAAE;QAC5B,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,EAAE;QAClB,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,EAAE;QACb,sBAAsB,EAAE,EAAE;QAC1B,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,cAAc,EAAE,EAAE;KACnB;IACD,aAAa,EAAE;QACb,SAAS,EAAE,CAAC;QACZ,IAAI,EAAE,CAAC;KACR;IACD,cAAc,EAAE;QACd,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,sBAAsB;QAChC,KAAK,EAAE,OAAO;QACd,yBAAyB,EAAE,2BAA2B;QACtD,OAAO,EAAE,SAAS;KACnB;IACD,UAAU,EAAE;QACV,YAAY,EAAE,CAAC;QACf,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;KACT;IACD,SAAS,EAAE;QACT,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;KACV;IACD,UAAU,EAAE;QACV,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,CAAC;QACN,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;KACV;IACD,aAAa,EAAE;QACb,GAAG,EAAE,CAAC;QACN,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,CAAC;KACR;IACD,aAAa,EAAE;QACb,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;KACV;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,CAAC;QACR,oBAAoB,EAAE,CAAC;QACvB,gBAAgB,EAAE,CAAC;KACpB;CACF,CAAA;AAED,kBAAe,SAAS,CAAA"}
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;AAAA,MAAM,SAAS,GAAG;IAChB,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,EAAE;IACpB,eAAe,EAAE;QACf,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,CAAC;QACd,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;QACV,eAAe,EAAE,CAAC;KACnB;IACD,gBAAgB,EAAE;QAChB,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,CAAC;KACb;IACD,QAAQ,EAAE;QACR,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,CAAC;QACZ,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;KACX;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,CAAC;KACZ;IACD,aAAa,EAAE;QACb,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,YAAY,EAAE,CAAC;QACf,cAAc,EAAE,CAAC;QACjB,UAAU,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC;QACX,eAAe,EAAE,CAAC;QAClB,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,EAAE;QACf,wBAAwB,EAAE,EAAE;QAC5B,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,EAAE;QAChB,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE;QACb,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,EAAE;QAClB,aAAa,EAAE,EAAE;QACjB,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,EAAE;QACb,sBAAsB,EAAE,EAAE;QAC1B,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,EAAE;QACT,cAAc,EAAE,EAAE;KACnB;IACD,aAAa,EAAE;QACb,SAAS,EAAE,CAAC;QACZ,IAAI,EAAE,CAAC;KACR;IACD,cAAc,EAAE;QACd,OAAO,EAAE,WAAW;QACpB,QAAQ,EAAE,sBAAsB;QAChC,KAAK,EAAE,OAAO;QACd,yBAAyB,EAAE,2BAA2B;QACtD,OAAO,EAAE,SAAS;KACnB;IACD,UAAU,EAAE;QACV,YAAY,EAAE,CAAC;QACf,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;KACT;IACD,SAAS,EAAE;QACT,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;KACV;IACD,UAAU,EAAE;QACV,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;QACR,GAAG,EAAE,CAAC;QACN,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;KACV;IACD,aAAa,EAAE;QACb,GAAG,EAAE,CAAC;QACN,QAAQ,EAAE,CAAC;QACX,IAAI,EAAE,CAAC;KACR;IACD,aAAa,EAAE;QACb,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;KACV;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,CAAC;QACR,oBAAoB,EAAE,CAAC;QACvB,gBAAgB,EAAE,CAAC;KACpB;CACF,CAAA;AAED,kBAAe,SAAS,CAAA"}

View file

@ -162,7 +162,15 @@ function queryRoute(pub_key, amt, route_hint, ownerPubkey) {
}
const lightning = yield loadLightning(true, ownerPubkey); // try proxy
return new Promise((resolve, reject) => {
const options = { pub_key, amt };
// need to manually add 3 block padding
// which is done behind the scenes in SendPayment
// https://github.com/lightningnetwork/lnd/issues/3421
const final_cltv_delta = constants_1.default.final_cltv_delta + 3;
const options = {
pub_key,
amt,
final_cltv_delta,
};
if (route_hint && route_hint.includes(':')) {
const arr = route_hint.split(':');
const node_id = arr[0];
@ -282,7 +290,7 @@ function keysend(opts, ownerPubkey) {
}
const options = {
amt: Math.max(opts.amt, constants_1.default.min_sat_amount || 3),
final_cltv_delta: 10,
final_cltv_delta: constants_1.default.final_cltv_delta,
dest: ByteBuffer.fromHex(opts.dest),
dest_custom_records,
payment_hash: sha.sha256.arrayBuffer(preimage.toBuffer()),

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,6 @@
const constants = {
min_sat_amount: 3,
final_cltv_delta: 40,
invite_statuses: {
pending: 0,
ready: 1,

View file

@ -173,7 +173,15 @@ export async function queryRoute(
}
const lightning = await loadLightning(true, ownerPubkey) // try proxy
return new Promise((resolve, reject) => {
const options: { [k: string]: any } = { pub_key, amt }
// need to manually add 3 block padding
// which is done behind the scenes in SendPayment
// https://github.com/lightningnetwork/lnd/issues/3421
const final_cltv_delta = constants.final_cltv_delta + 3
const options: { [k: string]: any } = {
pub_key,
amt,
final_cltv_delta,
}
if (route_hint && route_hint.includes(':')) {
const arr = route_hint.split(':')
const node_id = arr[0]
@ -300,7 +308,7 @@ export function keysend(
}
const options: interfaces.KeysendRequest = {
amt: Math.max(opts.amt, constants.min_sat_amount || 3),
final_cltv_delta: 10,
final_cltv_delta: constants.final_cltv_delta,
dest: ByteBuffer.fromHex(opts.dest),
dest_custom_records,
payment_hash: sha.sha256.arrayBuffer(preimage.toBuffer()),