Luke Childs
5 years ago
2 changed files with 10 additions and 70 deletions
@ -1,61 +0,0 @@ |
|||||
import coinBlacklist from './coin-blacklist'; |
|
||||
|
|
||||
const SECONDS = 1; |
|
||||
const MINUTES = SECONDS * 60; |
|
||||
const HOURS = MINUTES * 60; |
|
||||
|
|
||||
const getCoinData = async () => { |
|
||||
// Fetch coin data
|
|
||||
const response = await fetch('https://api.crypto51.app/coins.json'); |
|
||||
let {coins} = await response.json(); |
|
||||
|
|
||||
// Format
|
|
||||
coins = coins |
|
||||
.filter(coin => { |
|
||||
return ( |
|
||||
typeof coin.attack_hourly_cost === 'number' && |
|
||||
!coinBlacklist.includes(coin.symbol) |
|
||||
); |
|
||||
}) |
|
||||
.map(coin => ({ |
|
||||
symbol: coin.symbol, |
|
||||
name: coin.name, |
|
||||
hashRateCostPerSecond: (coin.attack_hourly_cost / HOURS), |
|
||||
algorithm: coin.algorithm, |
|
||||
hashRate: coin.hash_rate, |
|
||||
hashRateFormatted: coin.hash_rate_pretty, |
|
||||
marketCap: coin.market_cap, |
|
||||
marketCapFormatted: coin.market_cap_pretty, |
|
||||
blockTimeInSeconds: coin.block_time |
|
||||
})) |
|
||||
.sort((a, b) => b.marketCap - a.marketCap); |
|
||||
|
|
||||
// Calculate confirmation data
|
|
||||
const referenceCoinSymbol = 'BTC'; |
|
||||
const referenceConfirmations = 6; |
|
||||
const referenceCoin = coins.find(coin => coin.symbol === referenceCoinSymbol); |
|
||||
if (!referenceCoin) { |
|
||||
return []; |
|
||||
} |
|
||||
|
|
||||
const referenceCoinWorkTime = (referenceConfirmations * referenceCoin.blockTimeInSeconds); |
|
||||
|
|
||||
coins = coins.map(coin => { |
|
||||
const multiplier = (referenceCoin.hashRateCostPerSecond / coin.hashRateCostPerSecond); |
|
||||
const workTime = (referenceCoinWorkTime * multiplier); |
|
||||
const confirmations = Math.ceil(workTime / coin.blockTimeInSeconds); |
|
||||
const estimatedTimeForConfs = (coin.blockTimeInSeconds * confirmations); |
|
||||
|
|
||||
return { |
|
||||
...coin, |
|
||||
multiplier, |
|
||||
workTime, |
|
||||
confirmations, |
|
||||
estimatedTimeForConfs |
|
||||
}; |
|
||||
}); |
|
||||
|
|
||||
return coins; |
|
||||
}; |
|
||||
|
|
||||
export default getCoinData; |
|
Loading…
Reference in new issue