-
Notifications
You must be signed in to change notification settings - Fork 0
/
bitcoinGas.js
35 lines (26 loc) · 1.27 KB
/
bitcoinGas.js
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
require('dotenv').config();
const axios = require('axios');
const NETWORK = process.env.NETWORK;
async function getBitcoinGas() {
const url = (NETWORK === 'testnet'
? 'https://mempool.space/testnet/api/v1/fees/recommended'
: 'https://mempool.space/api/v1/fees/recommended'
);
try {
const response = await axios.get(url);
const { fastestFee, halfHourFee, hourFee, economyFee, minimumFee } = response.data;
//fastestFee: fastestFee, // Fee in satoshis per byte for fastest confirmation
//halfHourFee: halfHourFee, // Fee in satoshis per byte for confirmation within 30 minutes
//hourFee: hourFee, // Fee in satoshis per byte for confirmation within 1 hour
//economyFee: economyFee, // Economy fee in satoshis per byte
//minimumFee: minimumFee // Minimum fee in satoshis per byte
return satoshisToBitcoin(fastestFee);
} catch (error) {
console.error('Error fetching Bitcoin network fee:', error.message);
throw new Error('Failed to fetch Bitcoin network fee');
}
}
function satoshisToBitcoin(satoshis) {
return (satoshis / 100000000).toFixed(8); // Format to 8 decimal places
}
module.exports = { getBitcoinGas };