blob: 1513138b284079b642076ec76d5822ecbd5f6451 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
import store from "$lib/store";
import redis from "$lib/redis";
import config from "$config";
import ln from "$lib/ln";
export const nada = () => {};
export const sleep = n => new Promise(r => setTimeout(r, n));
export const wait = async (f, s = 300, n = 50) => {
let i = 0;
while (!(await f()) && i < s) (await sleep(n)) && i++;
if (i >= s) throw new Error("timeout");
return f();
};
export const requirePin = async ({ body, user }) => {
if (!user || (user.pin && user.pin !== body.pin))
throw new Error("Invalid pin");
};
export const getUser = async (uuid) => {
let user = await redis.get(`user:${uuid}`);
user.haspin = !!user.pin;
return user;
};
export const prod = process.env.NODE_ENV === "production";
export const fail = msg => {
throw new Error(msg);
};
export const SATS = 100000000;
export const toSats = n => Math.round(n * SATS);
export const derivePayRequest = async ({ amount, memo, tip }) => {
if (!tip) tip = 0;
let value = amount + tip;
if (!memo) memo = "coinos";
return (
await ln.invoice(value ? `${value}sat` : "any", new Date(), memo, 360)
).bolt11;
};
export const uniq = (a, k) => [...new Map(a.map(x => [k(x), x])).values()];
|