@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.
Files changed (44) hide show
  1. package/README.md +108 -28
  2. package/dist/cjs/402/l402.cjs +157 -0
  3. package/dist/cjs/402/l402.cjs.map +1 -0
  4. package/dist/cjs/402/mpp.cjs +179 -0
  5. package/dist/cjs/402/mpp.cjs.map +1 -0
  6. package/dist/cjs/402/x402.cjs +1320 -0
  7. package/dist/cjs/402/x402.cjs.map +1 -0
  8. package/dist/cjs/402.cjs +1694 -0
  9. package/dist/cjs/402.cjs.map +1 -0
  10. package/dist/cjs/bolt11.cjs +534 -518
  11. package/dist/cjs/bolt11.cjs.map +1 -1
  12. package/dist/cjs/index.cjs +811 -453
  13. package/dist/cjs/index.cjs.map +1 -1
  14. package/dist/cjs/lnurl.cjs +22 -7
  15. package/dist/cjs/lnurl.cjs.map +1 -1
  16. package/dist/esm/402/l402.js +150 -0
  17. package/dist/esm/402/l402.js.map +1 -0
  18. package/dist/esm/402/mpp.js +177 -0
  19. package/dist/esm/402/mpp.js.map +1 -0
  20. package/dist/esm/402/x402.js +1318 -0
  21. package/dist/esm/402/x402.js.map +1 -0
  22. package/dist/esm/402.js +1683 -0
  23. package/dist/esm/402.js.map +1 -0
  24. package/dist/esm/bolt11.js +534 -519
  25. package/dist/esm/bolt11.js.map +1 -1
  26. package/dist/esm/index.js +803 -451
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/esm/lnurl.js +22 -7
  29. package/dist/esm/lnurl.js.map +1 -1
  30. package/dist/lightning-tools.umd.js +3 -3
  31. package/dist/lightning-tools.umd.js.map +1 -1
  32. package/dist/types/402/l402.d.ts +51 -0
  33. package/dist/types/402/mpp.d.ts +26 -0
  34. package/dist/types/402/x402.d.ts +13 -0
  35. package/dist/types/402.d.ts +78 -0
  36. package/dist/types/bolt11.d.ts +6 -1
  37. package/dist/types/index.d.ts +76 -28
  38. package/dist/types/lnurl.d.ts +2 -0
  39. package/package.json +20 -5
  40. package/dist/cjs/l402.cjs +0 -93
  41. package/dist/cjs/l402.cjs.map +0 -1
  42. package/dist/esm/l402.js +0 -87
  43. package/dist/esm/l402.js.map +0 -1
  44. package/dist/types/l402.d.ts +0 -35
@@ -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
- try {
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 {