add FUSD price from mexc
This commit is contained in:
parent
12d19e6608
commit
418bfdfbe2
2 changed files with 51 additions and 24 deletions
|
|
@ -7,7 +7,7 @@ import exceptionHandler from "./exceptionHandler";
|
|||
import path from "path";
|
||||
import initDB from "./database/initdb";
|
||||
import sequelize from "./database/sequelize";
|
||||
import { log, config, ZANO_ASSET_ID, parseComment, parseTrackingKey, decodeString } from "./utils/utils";
|
||||
import { log, config, ZANO_ASSET_ID, parseComment, parseTrackingKey, decodeString, FUSD_ASSET_ID } from "./utils/utils";
|
||||
import { blockInfo, lastBlock, setLastBlock, state, setState, setBlockInfo, PriceData } from "./utils/states";
|
||||
import { emitSocketInfo, getBlocksDetails, getMainBlockDetails, getTxPoolDetails, getVisibilityInfo } from "./utils/methods";
|
||||
import AltBlock from "./schemes/AltBlock";
|
||||
|
|
@ -282,7 +282,7 @@ async function waitForDb() {
|
|||
order: [[Sequelize.literal('ABS(timestamp - $targetTs)'), 'ASC']],
|
||||
bind: { targetTs: target_timestamp },
|
||||
raw: true,
|
||||
});
|
||||
});
|
||||
|
||||
if (!closestPrice) {
|
||||
return res.json({
|
||||
|
|
@ -1211,6 +1211,23 @@ async function waitForDb() {
|
|||
});
|
||||
}
|
||||
|
||||
if (req.query.asset_id === FUSD_ASSET_ID) {
|
||||
if (!state.priceData?.fusd?.price) {
|
||||
return res.send({ success: false, data: 'Price not found' });
|
||||
}
|
||||
|
||||
return res.send({
|
||||
success: true,
|
||||
data: {
|
||||
name: 'FUSD',
|
||||
usd: state.priceData?.fusd?.price,
|
||||
zano_price: (state.priceData?.fusd?.price / (state.priceData?.zano?.price || 1)),
|
||||
usd_24h_change: state.priceData?.fusd?.usd_24h_change,
|
||||
fiat_prices: calcFiatPrice(state.priceData?.fusd?.price, state?.fiat_rates),
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const assetData = await Asset.findOne({
|
||||
where: { asset_id: req.query.asset_id }
|
||||
});
|
||||
|
|
@ -2139,6 +2156,10 @@ cron.schedule("0 */4 * * *", async () => {
|
|||
return fetchPriceFromMexc('ETH');
|
||||
}
|
||||
|
||||
async function fetchFUSDPrice() {
|
||||
return fetchPriceFromMexc('FUSD');
|
||||
}
|
||||
|
||||
// Fetch fiat rates from CoinGecko
|
||||
async function fetchFiatRates() {
|
||||
try {
|
||||
|
|
@ -2202,31 +2223,36 @@ cron.schedule("0 */4 * * *", async () => {
|
|||
|
||||
|
||||
const zanoPrice = await fetchZanoPrice();
|
||||
|
||||
if (zanoPrice) {
|
||||
setState({
|
||||
...state,
|
||||
priceData: {
|
||||
...state.priceData,
|
||||
zano: zanoPrice,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
// Fetch Ethereum price every 10 seconds
|
||||
const ethPrice = await fetchEthereumPrice();
|
||||
const fusdPrice = await fetchFUSDPrice();
|
||||
|
||||
if (ethPrice) {
|
||||
setState({
|
||||
...state,
|
||||
priceData: {
|
||||
...state.priceData,
|
||||
ethereum: ethPrice,
|
||||
},
|
||||
});
|
||||
}
|
||||
const pricesToIncert = {
|
||||
zano: zanoPrice || null,
|
||||
ethereum: ethPrice || null,
|
||||
fusd: fusdPrice || null,
|
||||
};
|
||||
|
||||
const validPrices = Object.entries(pricesToIncert)
|
||||
.map(e => {
|
||||
if (!e[1]) {
|
||||
return null;
|
||||
}
|
||||
return {
|
||||
[e[0]]: e[1]
|
||||
};
|
||||
})
|
||||
.filter(e => e !== null);
|
||||
|
||||
const validPricesObject = Object.assign({}, ...validPrices);
|
||||
|
||||
setState({
|
||||
...state,
|
||||
priceData: {
|
||||
...state.priceData,
|
||||
...validPricesObject
|
||||
},
|
||||
});
|
||||
|
||||
console.log(state.priceData);
|
||||
|
||||
|
||||
// Fetch fiat rates every 1h (3600 seconds)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import "dotenv/config";
|
||||
|
||||
export const ZANO_ASSET_ID = 'd6329b5b1f7c0805b5c345f4957554002a2f557845f64d7645dae0e051a6498a';
|
||||
export const FUSD_ASSET_ID = '86143388bd056a8f0bab669f78f14873fac8e2dd8d57898cdb725a2d5e2e4f8f';
|
||||
|
||||
export const config = {
|
||||
"api": process.env.API + '/json_rpc',
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue