github.com/diadata-org/diadata@v1.4.593/cmd/interlay/cron.js (about) 1 const { getInterlayValues } = require("./interlayhelper"); 2 3 const { getBiFrostValues } = require("./bifrosthelper"); 4 5 const { exchangeRate, getValues: getValuecbeth } = require("./cbETHhelper"); 6 7 const { getValues: getValuesteth } = require("./stETHhelper"); 8 9 const { getValues: getValuereth } = require("./rETHhelper"); 10 11 const { getValues: getValuestdot } = require("./stdothelper"); 12 13 const { getValues: getValueAstar } = require("./nastrhelper"); 14 15 const { 16 tokenkey, 17 redis, 18 allowedTokens, 19 getPrice, 20 pricekey, 21 } = require("./utils"); 22 23 let cache = redis(); 24 25 async function cronstart() { 26 for (const value of allowedTokens) { 27 switch (value.source) { 28 case "interlay": 29 { 30 let saved 31 try{ 32 saved = await getInterlayValues(value.vtoken); 33 if (saved){ 34 cache.set("interlayraw"+ value.vtoken,JSON.stringify(saved)) 35 }else{ 36 continue 37 } 38 }catch(e){ 39 saved = 0 40 return 41 } 42 let btcprice = await getPrice("BTC"); 43 44 45 cache.set( 46 tokenkey("interlay", value.vtoken), 47 JSON.stringify({ 48 collateral_ratio: { 49 issued_token: saved.total_issued / 1e8, 50 locked_token: saved.total_backable / 1e8, 51 // decimal: saved.decimal, 52 ratio: saved.total_backable / saved.total_issued, 53 }, 54 timestamp: Date.now(), 55 fair_price: 56 (saved.total_backable/1e8) / (saved.total_issued/1e8) > 1 57 ? btcprice 58 : (btcprice * saved.total_backable) / saved.total_issued, 59 }) 60 ); 61 } 62 break; 63 case "bifrost": 64 { 65 let saved; 66 try{ 67 saved = await getBiFrostValues(value.token); 68 }catch(e){ 69 return 70 } 71 let btcprice = await getPrice(value.token); 72 73 74 let ratio = saved.total_backable/saved.total_issued; 75 76 let fairprice = ratio *btcprice 77 78 let decimal = Math.pow(10, saved.decimal); 79 80 if(value.token=="DOT"){ 81 decimal = 1e10 82 } 83 84 85 86 87 cache.set( 88 tokenkey("bifrost", value.vtoken), 89 JSON.stringify({ 90 collateral_ratio: { 91 issued_token: saved.total_issued / decimal, 92 locked_token: saved.total_backable / decimal, 93 ratio: saved.total_backable / saved.total_issued, 94 // decimal: saved.decimal, 95 }, 96 fair_price:fairprice, 97 timestamp: Date.now() 98 }) 99 ); 100 } 101 break; 102 case "stDOT": 103 { 104 let stDOTcollateral = await getValuestdot(); 105 cache.set( 106 tokenkey("stDOT", value.vtoken), 107 JSON.stringify(stDOTcollateral) 108 ); 109 } 110 break; 111 case "astar": 112 { 113 let astarcollateral = await getValueAstar(); 114 cache.set( 115 tokenkey("astar", value.vtoken), 116 JSON.stringify(astarcollateral) 117 ); 118 } 119 break; 120 case "stETH": 121 { 122 let stETHcollateral = await getValuesteth(); 123 cache.set( 124 tokenkey("stETH", value.vtoken), 125 JSON.stringify(stETHcollateral) 126 ); 127 } 128 break; 129 // case "cbETH": { 130 // let cbETHcollateral = await getValuecbeth(); 131 // cache.set( 132 // tokenkey("cbETH", value.vtoken), 133 // JSON.stringify(cbETHcollateral) 134 // ); 135 // } 136 // break; 137 case "rETH": { 138 let rETHcollateral = await getValuereth(); 139 cache.set( 140 tokenkey("rETH", value.vtoken), 141 JSON.stringify(rETHcollateral) 142 ); 143 } 144 } 145 146 let baseAssetPrice = await getPrice(value.token); 147 await cache.set(pricekey(value.token), baseAssetPrice); 148 } 149 150 151 } 152 153 module.exports = { 154 cronstart: cronstart, 155 };