aboutsummaryrefslogtreecommitdiffstats
path: root/routes
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-09-20 22:48:18 -0700
committerAdam Soltys <[email protected]>2022-09-20 22:48:18 -0700
commit4569736bac949bd2b06ce03b11299b11984e8d3c (patch)
treed4e7c71c5be97903a43e0e25f816b2a4b9fde0a5 /routes
parentf2fb6b587bb171101b0f91722c0c29e358b386e0 (diff)
parentb53875cf6bdf47c359139aa846c6597fa3627c87 (diff)
downloadcoinos-server-4569736bac949bd2b06ce03b11299b11984e8d3c.tar.gz
coinos-server-4569736bac949bd2b06ce03b11299b11984e8d3c.zip
Merge branch 'master' into prod
Diffstat (limited to 'routes')
-rw-r--r--routes/info.js3
-rw-r--r--routes/lightning/channel.js7
-rw-r--r--routes/lightning/channelRequest.js3
-rw-r--r--routes/lightning/invoice.js3
-rw-r--r--routes/lightning/receive.js46
-rw-r--r--routes/lnurl.js23
-rw-r--r--routes/payments.js8
-rw-r--r--routes/send.js1
8 files changed, 62 insertions, 32 deletions
diff --git a/routes/info.js b/routes/info.js
index 63f353a5..fd77c5d1 100644
--- a/routes/info.js
+++ b/routes/info.js
@@ -6,6 +6,7 @@ import store from "$lib/store";
import bc from "$lib/bitcoin";
import lq from "$lib/liquid";
import lnd from "$lib/lnd";
+import ln from "$lib/ln";
import { getChannelBalance, getChainBalance } from "lightning";
import sequelize from "@sequelize/core";
@@ -50,7 +51,7 @@ app.get("/balances", async (req, res, next) => {
if (config.lna) {
if (config.lna.clightning) {
- const funds = await lna.listfunds();
+ const funds = await ln.listfunds();
lnchannel = parseInt(
funds.channels.reduce((a, b) => a + b.channel_sat, 0)
);
diff --git a/routes/lightning/channel.js b/routes/lightning/channel.js
index 1c7bab10..107896f4 100644
--- a/routes/lightning/channel.js
+++ b/routes/lightning/channel.js
@@ -1,6 +1,7 @@
import axios from "axios";
import { addPeer, getIdentity } from "lightning";
import lnd from "$lib/lnd";
+import ln from "$lib/ln";
export default async (req, res) => {
const { params } = req.body;
@@ -24,7 +25,11 @@ export default async (req, res) => {
const { callback, k1 } = params;
let remoteid;
try {
- remoteid = (await getIdentity({ lnd })).public_key;
+ if (config.lna.clightning) {
+ remoteid = (await ln.getinfo()).id;
+ } else {
+ remoteid = (await getIdentity({ lnd })).public_key;
+ }
} catch (e) {
err("problem getting lightning node info", e.message);
return res.code(500).send(e.message);
diff --git a/routes/lightning/channelRequest.js b/routes/lightning/channelRequest.js
index 530fad48..74e4cbba 100644
--- a/routes/lightning/channelRequest.js
+++ b/routes/lightning/channelRequest.js
@@ -1,6 +1,7 @@
import { lnurlServer } from "$routes/lnurl";
+import { err } from "$lib/logging";
-export default async (req, res) => {
+export const channelRequest = async (req, res) => {
let { localAmt, pushAmt } = req.body;
pushAmt = 0;
diff --git a/routes/lightning/invoice.js b/routes/lightning/invoice.js
index 94aac768..94961b35 100644
--- a/routes/lightning/invoice.js
+++ b/routes/lightning/invoice.js
@@ -2,6 +2,7 @@ import config from "$config";
import { createInvoice } from "lightning";
import { err } from "$lib/logging";
import lnd from "$lib/lnd";
+import ln from "$lib/ln";
export default async (req, res) => {
let { amount, memo, tip } = req.body;
@@ -11,7 +12,7 @@ export default async (req, res) => {
try {
if (config.lna.clightning) {
if (!memo) memo = "coinos";
- const invoice = await lna.invoice(
+ const invoice = await ln.invoice(
value ? `${value}sat` : "any",
new Date(),
memo,
diff --git a/routes/lightning/receive.js b/routes/lightning/receive.js
index 56714da7..084161b5 100644
--- a/routes/lightning/receive.js
+++ b/routes/lightning/receive.js
@@ -8,11 +8,11 @@ import { computeConversionFee } from "./conversionFee";
import { sendLiquid } from "$routes/liquid/send";
import { subscribeToInvoices } from "lightning";
import lnd from "$lib/lnd";
+import ln from "$lib/ln";
import { l, err, warn } from "$lib/logging";
const handlePayment = async msg => {
try {
- console.log(msg)
l("incoming lightning payment", msg.received);
if (!msg.secret) return;
@@ -134,29 +134,33 @@ const handlePayment = async msg => {
if (config.lna.clightning) {
const poll = async ln => {
- const wait = async i => {
- const {
- bolt11: payment_request,
- pay_index,
- status,
- msatoshi_received,
- payment_preimage: r_preimage
- } = await ln.waitanyinvoice(i);
+ try {
+ const wait = async i => {
+ const {
+ bolt11: request,
+ pay_index,
+ status,
+ msatoshi_received,
+ payment_preimage: secret
+ } = await ln.waitanyinvoice(i);
+ console.log("um");
- let settled = status === "paid";
- let amt_paid_sat = parseInt(msatoshi_received / 1000);
+ let settled = status === "paid";
+ let received = parseInt(msatoshi_received / 1000);
- await handlePayment({
- payment_request,
- settled,
- amt_paid_sat,
- r_preimage
- });
- wait(pay_index);
- };
+ await handlePayment({
+ request,
+ received,
+ secret
+ });
+ await wait(pay_index);
+ };
- const { invoices } = await ln.listinvoices();
- wait(Math.max(...invoices.map(i => i.pay_index).filter(n => n)));
+ const { invoices } = await ln.listinvoices();
+ await wait(Math.max(...invoices.map(i => i.pay_index).filter(n => n)));
+ } catch (e) {
+ err("problem waiting for c-lightning invoice", e.message);
+ }
};
poll(ln);
diff --git a/routes/lnurl.js b/routes/lnurl.js
index 547a41dd..fc2e5a52 100644
--- a/routes/lnurl.js
+++ b/routes/lnurl.js
@@ -91,7 +91,17 @@ app.post("/withdraw", auth, async (req, res, next) => {
amount: value,
params: { callback, k1 }
} = req.body;
- const invoice = await createInvoice({ lnd, value });
+
+ let invoice;
+ if (config.lna.clightning) {
+ let label = new Date();
+ let desc = label;
+
+ invoice = await ln.invoice(`${value}sats`, label, desc);
+ } else {
+ invoice = await createInvoice({ lnd, value });
+ }
+
const { payment_request: pr } = invoice;
const url = `${callback}?k1=${k1}&pr=${pr}`;
@@ -260,6 +270,7 @@ app.get("/decode", async (req, res, next) => {
}
const { data: params } = await axios.get(url);
+
res.send(params);
} catch (e) {
err("problem decoding lnurl", e.message);
@@ -366,8 +377,14 @@ lnurlServer.bindToHook(
}
try {
- let decoded = await decodePaymentRequest({ lnd, request: pr });
- let amount = decoded.num_satoshis;
+ let amount;
+
+ if (config.lna.clightning) {
+ let { msatoshi } = await ln.decodepay(pr);
+ amount = parseInt(msatoshi/1000);
+ } else {
+ ({ num_satoshis: amount } = await decodePaymentRequest({ lnd, request: pr }));
+ }
let conversionFee = computeConversionFee(amount);
await db.transaction(async transaction => {
diff --git a/routes/payments.js b/routes/payments.js
index 4ffeb6b3..fa7da641 100644
--- a/routes/payments.js
+++ b/routes/payments.js
@@ -62,10 +62,10 @@ app.post("/lightning/invoice", lnRoutes.invoice);
app.post("/lightning/query", auth, lnRoutes.query);
app.post("/lightning/send", auth, lnRoutes.send);
-// if (config.lnurl) {
-// let channelRequest = await import("$routes/lightning/channelRequest");
-// app.post("/lightning/channelRequest", channelRequest)
-// }
+if (config.lnurl) {
+ let { channelRequest } = await import("$routes/lightning/channelRequest");
+ app.post("/lightning/channelRequest", channelRequest)
+}
app.post("/bitcoin/broadcast", optionalAuth, btcRoutes.broadcast);
app.get("/bitcoin/generate", auth, btcRoutes.generate);
diff --git a/routes/send.js b/routes/send.js
index 360ad5b2..b57d8fc3 100644
--- a/routes/send.js
+++ b/routes/send.js
@@ -1,3 +1,4 @@
+import { err } from "$lib/logging";
import sendInternal from "$lib/sendInternal";
export default async (req, res, next) => {