CMC mapping: merge exceptions on every commit, retrieve from CMC and merge on Update runs. (#3406)

Co-authored-by: Catenocrypt <catenocrypt@users.noreply.github.com>
This commit is contained in:
Adam R 2020-08-17 17:31:08 +02:00 committed by GitHub
parent d310074554
commit 78eef8eabc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12942 additions and 14 deletions

View File

@ -1,5 +1,5 @@
import { ActionInterface, CheckStepInterface } from "../../script/action/interface";
import { run } from "./script";
import { update, mergeCmcData } from "./script";
import { getSanityChecks } from "./check";
export class Coinmarketcap implements ActionInterface {
@ -11,9 +11,12 @@ export class Coinmarketcap implements ActionInterface {
sanityFix = null;
consistencyFix = null;
async consistencyFix(): Promise<void> {
// do merge, for the case exceptions or script has been changed
await mergeCmcData();
}
async update(): Promise<void> {
await run();
await update();
}
}

File diff suppressed because it is too large Load Diff

View File

@ -59,22 +59,39 @@ const custom: mapTiker[] = [
// {"coin": 60, "type": typeToken, "token_id": "XXX", "id": XXX}, // XXX (XXX)
]
const allContracts: mapTiker[] = [] // Temp storage for mapped assets
var allContracts: mapTiker[] = [] // Temp storage for mapped assets
let bnbOwnerToSymbol = {} // e.g: bnb1tawge8u97slduhhtumm03l4xl4c46dwv5m9yzk: WISH-2D5
let bnbOriginalSymbolToSymbol = {} // e.g: WISH: WISH-2D5
export async function run() {
try {
await Promise.all([initState(), setBinanceTokens()])
const [totalCrypto, coins] = await Promise.all([getTotalActiveCryptocurrencies(), getTickers()])
// setBIP44Constants()
log(`Found ${totalCrypto} on CMC`, chalk.yellowBright)
await BluebirdPromise.mapSeries(coins, processCoin)
async function retrieveCmcData() {
allContracts = []
await Promise.all([initState(), setBinanceTokens()])
const [totalCrypto, coins] = await Promise.all([getTotalActiveCryptocurrencies(), getTickers()])
// setBIP44Constants()
log(`Found ${totalCrypto} on CMC`, chalk.yellowBright)
await BluebirdPromise.mapSeries(coins, processCoin)
sortContracts()
fs.writeFileSync(path.join(__dirname, 'cmc-data.json'), JSON.stringify(allContracts, null, 4))
allContracts = []
}
export async function mergeCmcData() {
try {
allContracts = JSON.parse(readFileSync(path.join(__dirname, 'cmc-data.json')))
addCustom()
printContracts()
} catch (error) {
log(`Error at the end ${error.message}`)
log(`Exception: ${error.message}`)
}
}
export async function update() {
try {
await retrieveCmcData()
await mergeCmcData()
} catch (error) {
log(`Exception: ${error.message}`)
}
}
@ -220,7 +237,7 @@ function addToContractsList(ticker: mapTiker) {
allContracts.push(ticker)
}
function printContracts() {
function sortContracts() {
const sortedById = allContracts.sort((a,b) => {
if (a.id < b.id) return -1
if (a.id > b.id) return 1
@ -233,9 +250,14 @@ function printContracts() {
if (a.token_id < b.token_id) return -1
if (a.token_id > b.token_id) return 1
})
allContracts = sortedById
}
function printContracts() {
sortContracts()
const wstream = fs.createWriteStream(path.join(__dirname, 'mapping.json'))
wstream.write(JSON.stringify(sortedById, null, 4))
wstream.write(JSON.stringify(allContracts, null, 4))
}
function getSlip44Index(symbol: string, name: string): number {