From dce07aa93b3c2f47aca0c24cea6adde9ec37f1a7 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sun, 8 Jan 2023 21:05:34 -0800 Subject: tech debt jubilee --- lib/utils.js | 148 +---------------------------------------------------------- 1 file changed, 2 insertions(+), 146 deletions(-) (limited to 'lib/utils.js') diff --git a/lib/utils.js b/lib/utils.js index 95ee5fb1..1513138b 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,16 +1,8 @@ import store from "$lib/store"; import redis from "$lib/redis"; import config from "$config"; -import db from "$db"; -import sequelize from "@sequelize/core"; -import { fromBase58 } from "bip32"; -import { payments as bcPayments, networks as bcNetworks } from "bitcoinjs-lib"; -import { payments as lqPayments, networks as lqNetworks } from "liquidjs-lib"; -import lnd from "$lib/lnd"; import ln from "$lib/ln"; -const { Op } = sequelize; - export const nada = () => {}; export const sleep = n => new Promise(r => setTimeout(r, n)); @@ -26,57 +18,13 @@ export const requirePin = async ({ body, user }) => { throw new Error("Invalid pin"); }; -export const getUser = async (username, transaction) => { - let params = { - include: [ - { - model: db.Account, - as: "account" - } - ], - where: { - [Op.or]: { - username: { [Op.or]: [username, username.replace(/ /g, "")] }, - uuid: { [Op.or]: [username, username.replace(/ /g, "")] } - } - } - }; - - if (transaction) { - params.lock = transaction.LOCK.UPDATE; - params.transaction = transaction; - } - - let user = await db.User.findOne(params); - if (!user) throw new Error(`User ${username} not found`); - +export const getUser = async (uuid) => { + let user = await redis.get(`user:${uuid}`); user.haspin = !!user.pin; return user; }; -export const getUserById = async (id, transaction) => { - let params = { - include: [ - { - model: db.Account, - as: "account" - } - ], - where: { id } - }; - - if (transaction) { - params.lock = transaction.LOCK.UPDATE; - params.transaction = transaction; - } - - let user = await db.User.findOne(params); - if (!user) throw new Error("User not found"); - - return user; -}; - export const prod = process.env.NODE_ENV === "production"; export const fail = msg => { throw new Error(msg); @@ -85,98 +33,6 @@ export const fail = msg => { export const SATS = 100000000; export const toSats = n => Math.round(n * SATS); -export const getBlockHeight = message => { - let buffer = Buffer.from(message, "hex"); - if (buffer.length < 80) throw new Error("Buffer too small (< 80 bytes)"); - - let offset = 0; - const readSlice = n => { - offset += n; - return buffer.slice(offset - n, offset); - }; - - const readUInt32 = () => { - const i = buffer.readUInt32LE(offset); - offset += 4; - return i; - }; - - const readUInt8 = () => { - const i = buffer.readUInt8(offset); - offset += 1; - return i; - }; - - const readVarInt = () => { - const vi = varuint.decode(buffer, offset); - offset += varuint.decode.bytes; - return vi; - }; - - readUInt32(); - readSlice(32); - readSlice(32); - readUInt32(); - return readUInt32(); -}; - -export const deriveAddress = async (account, type) => { - let { index, pubkey, path, network } = account; - let n = { bitcoin: bcNetworks, liquid: lqNetworks }[network][ - prod ? "bitcoin" : "regtest" - ]; - let p = { bitcoin: bcPayments, liquid: lqPayments }[network]; - let root = fromBase58(pubkey, n); - let parts = path.split("/"); - let hd = root.derive(parseInt(parts[parts.length - 1])); - - type = { - bech32: "p2wpkh", - "p2sh-segwit": "p2sh", - legacy: "p2pkh" - }[type]; - - console.log("TYPE", type); - - let r; - if (type !== "p2sh") { - r = p[type]({ - pubkey: hd.publicKey, - network: n - }); - } else { - r = p[type]({ - redeem: p.p2wpkh({ - pubkey: hd.publicKey, - network: n - }), - network: n - }); - } - - index++; - account.index = index; - account.address = r.address; - await account.save(); - - return r; -}; - -export const bip21 = ({ address, amount, memo, tip, network }, { asset }) => { - if (network === "liquid") network = "liquidnetwork"; - - let url = amount || memo ? `${network}:${address}?` : address; - if (amount) - url += `amount=${((amount + tip) / SATS).toFixed(8)}${memo ? "&" : ""}`; - if (memo) url += `message=${memo}`; - - if (network === "liquidnetwork" && amount) { - url += `&asset=${asset}`; - } - - return url; -}; - export const derivePayRequest = async ({ amount, memo, tip }) => { if (!tip) tip = 0; let value = amount + tip; -- cgit v1.2.3