@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/esm/lnurl.js
CHANGED
|
@@ -1310,8 +1310,12 @@ const decodeInvoice = (paymentRequest) => {
|
|
|
1310
1310
|
return null;
|
|
1311
1311
|
const paymentHash = hashTag.value;
|
|
1312
1312
|
let satoshi = 0;
|
|
1313
|
+
let millisatoshi = 0;
|
|
1314
|
+
let amountRaw = "0";
|
|
1313
1315
|
const amountTag = decoded.sections.find((value) => value.name === "amount");
|
|
1314
1316
|
if (amountTag?.name === "amount" && amountTag.value) {
|
|
1317
|
+
amountRaw = amountTag.value;
|
|
1318
|
+
millisatoshi = parseInt(amountTag.value);
|
|
1315
1319
|
satoshi = parseInt(amountTag.value) / 1000; // millisats
|
|
1316
1320
|
}
|
|
1317
1321
|
const timestampTag = decoded.sections.find((value) => value.name === "timestamp");
|
|
@@ -1330,6 +1334,8 @@ const decodeInvoice = (paymentRequest) => {
|
|
|
1330
1334
|
return {
|
|
1331
1335
|
paymentHash,
|
|
1332
1336
|
satoshi,
|
|
1337
|
+
millisatoshi,
|
|
1338
|
+
amountRaw,
|
|
1333
1339
|
timestamp,
|
|
1334
1340
|
expiry,
|
|
1335
1341
|
description,
|
|
@@ -1339,6 +1345,19 @@ const decodeInvoice = (paymentRequest) => {
|
|
|
1339
1345
|
return null;
|
|
1340
1346
|
}
|
|
1341
1347
|
};
|
|
1348
|
+
function validatePreimage(preimage, paymentHash) {
|
|
1349
|
+
try {
|
|
1350
|
+
if (!/^[0-9a-fA-F]{64}$/.test(preimage))
|
|
1351
|
+
return false;
|
|
1352
|
+
if (!/^[0-9a-fA-F]{64}$/.test(paymentHash))
|
|
1353
|
+
return false;
|
|
1354
|
+
const preimageHash = bytesToHex(sha256(fromHexString(preimage)));
|
|
1355
|
+
return paymentHash === preimageHash;
|
|
1356
|
+
}
|
|
1357
|
+
catch {
|
|
1358
|
+
return false;
|
|
1359
|
+
}
|
|
1360
|
+
}
|
|
1342
1361
|
|
|
1343
1362
|
class Invoice {
|
|
1344
1363
|
constructor(args) {
|
|
@@ -1352,6 +1371,8 @@ class Invoice {
|
|
|
1352
1371
|
}
|
|
1353
1372
|
this.paymentHash = decodedInvoice.paymentHash;
|
|
1354
1373
|
this.satoshi = decodedInvoice.satoshi;
|
|
1374
|
+
this.millisatoshi = decodedInvoice.millisatoshi;
|
|
1375
|
+
this.amountRaw = decodedInvoice.amountRaw;
|
|
1355
1376
|
this.timestamp = decodedInvoice.timestamp;
|
|
1356
1377
|
this.expiry = decodedInvoice.expiry;
|
|
1357
1378
|
this.createdDate = new Date(this.timestamp * 1000);
|
|
@@ -1376,13 +1397,7 @@ class Invoice {
|
|
|
1376
1397
|
validatePreimage(preimage) {
|
|
1377
1398
|
if (!preimage || !this.paymentHash)
|
|
1378
1399
|
return false;
|
|
1379
|
-
|
|
1380
|
-
const preimageHash = bytesToHex(sha256(fromHexString(preimage)));
|
|
1381
|
-
return this.paymentHash === preimageHash;
|
|
1382
|
-
}
|
|
1383
|
-
catch {
|
|
1384
|
-
return false;
|
|
1385
|
-
}
|
|
1400
|
+
return validatePreimage(preimage, this.paymentHash);
|
|
1386
1401
|
}
|
|
1387
1402
|
async verifyPayment() {
|
|
1388
1403
|
try {
|