aboutsummaryrefslogtreecommitdiffstats
path: root/routes/bitcoin/fee.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-01-08 21:05:34 -0800
committerAdam Soltys <[email protected]>2023-01-08 21:05:34 -0800
commitdce07aa93b3c2f47aca0c24cea6adde9ec37f1a7 (patch)
tree6c6b8930ebe9c2cc5b8d1f759e61260f509fdd7a /routes/bitcoin/fee.js
parentf7b844883506a8072213245b9b8a2b988694e4f5 (diff)
downloadcoinos-server-dce07aa93b3c2f47aca0c24cea6adde9ec37f1a7.tar.gz
coinos-server-dce07aa93b3c2f47aca0c24cea6adde9ec37f1a7.zip
tech debt jubilee
Diffstat (limited to 'routes/bitcoin/fee.js')
-rw-r--r--routes/bitcoin/fee.js73
1 files changed, 0 insertions, 73 deletions
diff --git a/routes/bitcoin/fee.js b/routes/bitcoin/fee.js
deleted file mode 100644
index 74c26a92..00000000
--- a/routes/bitcoin/fee.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import config from "$config";
-import db from "$db";
-import bc from "$lib/bitcoin";
-import { err } from "$lib/logging";
-import { emit } from "$lib/sockets";
-import buildTx from "$lib/buildtx";
-import { SATS } from "$lib/utils";
-
-export default async (req, res) => {
- let { user } = req;
- let { address, amount, feeRate, replaceable = true } = req.body;
- let tx, fee;
-
- if (user.account.pubkey) {
- try {
- let psbt = await buildTx({ address, amount, feeRate, replaceable, user });
- return res.send(psbt);
- } catch (e) {
- return res.code(500).send(e.message);
- }
- }
-
- let invoice = await db.Invoice.findOne({
- where: { address },
- include: {
- attributes: ["username"],
- model: db.User,
- as: "user"
- }
- });
-
- if (invoice) {
- let { ismine } = await bc.getAddressInfo(address);
- if (ismine) {
- emit(user.username, "to", invoice.user);
- return res.send({});
- }
- }
-
- try {
- amount = parseInt(amount);
-
- let partial = await bc.createRawTransaction(
- [],
- {
- [address]: (amount / SATS).toFixed(8)
- },
- 0,
- replaceable
- );
-
- let params = {
- subtractFeeFromOutputs: amount === user.balance ? [0] : [],
- replaceable
- };
-
- if (feeRate) params.feeRate = (feeRate / SATS).toFixed(8);
-
- tx = await bc.fundRawTransaction(partial, params);
-
- if (config.bitcoin.walletpass)
- await bc.walletPassphrase(config.bitcoin.walletpass, 300);
-
- let signed = await bc.signRawTransactionWithWallet(tx.hex);
- let decoded = await bc.decodeRawTransaction(signed.hex);
- feeRate = Math.round((tx.fee * SATS * 1000) / decoded.vsize);
-
- res.send({ feeRate, tx });
- } catch (e) {
- err("bitcoin fee estimation error", e);
- return res.code(500).send(e.message);
- }
-};