aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-12-02 22:06:01 -0800
committerAdam Soltys <[email protected]>2024-12-02 22:06:01 -0800
commit7fc51785cd190f51f5ef7cfbcb262a238b68e175 (patch)
tree4717d95e85af94afe63678f73c8c56ec75dd0978 /lib
parenta25cd41e1c38b91465ea95e4bcba66c4a089091e (diff)
downloadcoinos-server-7fc51785cd190f51f5ef7cfbcb262a238b68e175.tar.gz
coinos-server-7fc51785cd190f51f5ef7cfbcb262a238b68e175.zip
keysend
Diffstat (limited to 'lib')
-rw-r--r--lib/nwc.ts5
-rw-r--r--lib/payments.ts19
2 files changed, 10 insertions, 14 deletions
diff --git a/lib/nwc.ts b/lib/nwc.ts
index 3f6f24e7..5432cc62 100644
--- a/lib/nwc.ts
+++ b/lib/nwc.ts
@@ -143,15 +143,14 @@ const handle = (method, params, user) =>
async pay_keysend() {
const { amount, pubkey } = params;
- await sendKeysend({
+ const { payment_hash } = await sendKeysend({
amount,
pubkey,
- fee: Math.max(5, Math.round(amount * 0.005)),
user,
});
for (let i = 0; i < 10; i++) {
- const { pays } = await ln.listpays(pr);
+ const { pays } = await ln.listpays({ payment_hash });
const p = pays.find((p) => p.status === "complete");
if (p) {
const { preimage } = p;
diff --git a/lib/payments.ts b/lib/payments.ts
index 2b344817..bc3d73d2 100644
--- a/lib/payments.ts
+++ b/lib/payments.ts
@@ -418,12 +418,14 @@ export const sendOnchain = async (params) => {
export const sendKeysend = async ({
amount,
pubkey,
- fee,
+ fee = undefined,
memo = undefined,
user,
}) => {
- let p = await debit({
- hash: pubkey,
+ fee = Math.max(parseInt(fee || amount * 0.005), 5);
+
+ const p = await debit({
+ hash: v4(),
amount,
fee,
memo,
@@ -431,9 +433,6 @@ export const sendKeysend = async ({
type: types.lightning,
});
- fee = Math.max(parseInt(fee || 0), 5);
- if (fee < 0) fail("Fee cannot be negative");
-
const r = await ln.keysend({
pubkey,
amount_msat: amount * 1000,
@@ -441,11 +440,9 @@ export const sendKeysend = async ({
retry_for: 10,
});
- try {
- if (r.status === "complete") p = await finalize(r, p);
- } catch (e) {
- warn("failed to process payment", p.id);
- }
+ if (r.status !== "complete") reverse(p);
+
+ return r;
};
export const sendLightning = async ({