@getalby/lightning-tools 7.0.2 → 8.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -28
- package/dist/cjs/402/l402.cjs +157 -0
- package/dist/cjs/402/l402.cjs.map +1 -0
- package/dist/cjs/402/mpp.cjs +179 -0
- package/dist/cjs/402/mpp.cjs.map +1 -0
- package/dist/cjs/402/x402.cjs +1320 -0
- package/dist/cjs/402/x402.cjs.map +1 -0
- package/dist/cjs/402.cjs +1694 -0
- package/dist/cjs/402.cjs.map +1 -0
- package/dist/cjs/bolt11.cjs +534 -518
- package/dist/cjs/bolt11.cjs.map +1 -1
- package/dist/cjs/index.cjs +811 -453
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/lnurl.cjs +22 -7
- package/dist/cjs/lnurl.cjs.map +1 -1
- package/dist/esm/402/l402.js +150 -0
- package/dist/esm/402/l402.js.map +1 -0
- package/dist/esm/402/mpp.js +177 -0
- package/dist/esm/402/mpp.js.map +1 -0
- package/dist/esm/402/x402.js +1318 -0
- package/dist/esm/402/x402.js.map +1 -0
- package/dist/esm/402.js +1683 -0
- package/dist/esm/402.js.map +1 -0
- package/dist/esm/bolt11.js +534 -519
- package/dist/esm/bolt11.js.map +1 -1
- package/dist/esm/index.js +803 -451
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lnurl.js +22 -7
- package/dist/esm/lnurl.js.map +1 -1
- package/dist/lightning-tools.umd.js +3 -3
- package/dist/lightning-tools.umd.js.map +1 -1
- package/dist/types/402/l402.d.ts +51 -0
- package/dist/types/402/mpp.d.ts +26 -0
- package/dist/types/402/x402.d.ts +13 -0
- package/dist/types/402.d.ts +78 -0
- package/dist/types/bolt11.d.ts +6 -1
- package/dist/types/index.d.ts +76 -28
- package/dist/types/lnurl.d.ts +2 -0
- package/package.json +20 -5
- package/dist/cjs/l402.cjs +0 -93
- package/dist/cjs/l402.cjs.map +0 -1
- package/dist/esm/l402.js +0 -87
- package/dist/esm/l402.js.map +0 -1
- package/dist/types/l402.d.ts +0 -35
package/dist/cjs/lnurl.cjs
CHANGED
|
@@ -1312,8 +1312,12 @@ const decodeInvoice = (paymentRequest) => {
|
|
|
1312
1312
|
return null;
|
|
1313
1313
|
const paymentHash = hashTag.value;
|
|
1314
1314
|
let satoshi = 0;
|
|
1315
|
+
let millisatoshi = 0;
|
|
1316
|
+
let amountRaw = "0";
|
|
1315
1317
|
const amountTag = decoded.sections.find((value) => value.name === "amount");
|
|
1316
1318
|
if (amountTag?.name === "amount" && amountTag.value) {
|
|
1319
|
+
amountRaw = amountTag.value;
|
|
1320
|
+
millisatoshi = parseInt(amountTag.value);
|
|
1317
1321
|
satoshi = parseInt(amountTag.value) / 1000; // millisats
|
|
1318
1322
|
}
|
|
1319
1323
|
const timestampTag = decoded.sections.find((value) => value.name === "timestamp");
|
|
@@ -1332,6 +1336,8 @@ const decodeInvoice = (paymentRequest) => {
|
|
|
1332
1336
|
return {
|
|
1333
1337
|
paymentHash,
|
|
1334
1338
|
satoshi,
|
|
1339
|
+
millisatoshi,
|
|
1340
|
+
amountRaw,
|
|
1335
1341
|
timestamp,
|
|
1336
1342
|
expiry,
|
|
1337
1343
|
description,
|
|
@@ -1341,6 +1347,19 @@ const decodeInvoice = (paymentRequest) => {
|
|
|
1341
1347
|
return null;
|
|
1342
1348
|
}
|
|
1343
1349
|
};
|
|
1350
|
+
function validatePreimage(preimage, paymentHash) {
|
|
1351
|
+
try {
|
|
1352
|
+
if (!/^[0-9a-fA-F]{64}$/.test(preimage))
|
|
1353
|
+
return false;
|
|
1354
|
+
if (!/^[0-9a-fA-F]{64}$/.test(paymentHash))
|
|
1355
|
+
return false;
|
|
1356
|
+
const preimageHash = bytesToHex(sha256(fromHexString(preimage)));
|
|
1357
|
+
return paymentHash === preimageHash;
|
|
1358
|
+
}
|
|
1359
|
+
catch {
|
|
1360
|
+
return false;
|
|
1361
|
+
}
|
|
1362
|
+
}
|
|
1344
1363
|
|
|
1345
1364
|
class Invoice {
|
|
1346
1365
|
constructor(args) {
|
|
@@ -1354,6 +1373,8 @@ class Invoice {
|
|
|
1354
1373
|
}
|
|
1355
1374
|
this.paymentHash = decodedInvoice.paymentHash;
|
|
1356
1375
|
this.satoshi = decodedInvoice.satoshi;
|
|
1376
|
+
this.millisatoshi = decodedInvoice.millisatoshi;
|
|
1377
|
+
this.amountRaw = decodedInvoice.amountRaw;
|
|
1357
1378
|
this.timestamp = decodedInvoice.timestamp;
|
|
1358
1379
|
this.expiry = decodedInvoice.expiry;
|
|
1359
1380
|
this.createdDate = new Date(this.timestamp * 1000);
|
|
@@ -1378,13 +1399,7 @@ class Invoice {
|
|
|
1378
1399
|
validatePreimage(preimage) {
|
|
1379
1400
|
if (!preimage || !this.paymentHash)
|
|
1380
1401
|
return false;
|
|
1381
|
-
|
|
1382
|
-
const preimageHash = bytesToHex(sha256(fromHexString(preimage)));
|
|
1383
|
-
return this.paymentHash === preimageHash;
|
|
1384
|
-
}
|
|
1385
|
-
catch {
|
|
1386
|
-
return false;
|
|
1387
|
-
}
|
|
1402
|
+
return validatePreimage(preimage, this.paymentHash);
|
|
1388
1403
|
}
|
|
1389
1404
|
async verifyPayment() {
|
|
1390
1405
|
try {
|