Add Solana market data to wallet tracker

This commit is contained in:
2024-01-28 22:23:08 +01:00
parent 6afd518f58
commit bff72ff5b5
9 changed files with 626 additions and 29 deletions

View File

@@ -1,21 +1,23 @@
const express = require('express');
const { createMetrics } = require('./metrics');
const { loadWalletBalance, loadUSDCBalance, extractWalletBalance, extractUSDCBalance } = require('./solana');
const { loadWalletBalance, loadUSDCBalance, loadSolanaMarketData, extractWalletBalance, extractUSDCBalance, extractSOLPrice } = require('./solana');
const WALLET_ADDRESS = process.env.WALLET_ADDRESS;
const [registry, usdcBalanceMetric, solBalanceMetric] = createMetrics();
const [registry, usdcBalanceMetric, solBalanceMetric, solUsdcBalanceMetric] = createMetrics();
const app = express();
app.get('/metrics', async (req, res) => {
res.setHeader('Content-Type', registry.contentType);
let [solBalance, usdcBalance] = await Promise.all([
let [solBalance, usdcBalance, marketData] = await Promise.all([
loadWalletBalance(WALLET_ADDRESS),
loadUSDCBalance(WALLET_ADDRESS)]);
solBalanceMetric.set(extractWalletBalance(solBalance));
usdcBalanceMetric.set(extractUSDCBalance(usdcBalance));
loadUSDCBalance(WALLET_ADDRESS),
loadSolanaMarketData()]);
solBalanceMetric.set({ wallet: WALLET_ADDRESS}, extractWalletBalance(solBalance));
usdcBalanceMetric.set({ wallet: WALLET_ADDRESS}, extractUSDCBalance(usdcBalance));
solUsdcBalanceMetric.set({ wallet: WALLET_ADDRESS}, extractWalletBalance(solBalance) * extractSOLPrice(marketData));
res.send(await registry.metrics());
});