mirror of
https://github.com/Instadapp/trustwallet-assets.git
synced 2024-07-29 22:37:31 +00:00
079617ac38
* Empty infrastructure for new-housekeeping build. * Move updateBEP action to new new-housekeeping build infra. * Remove old updateBEP. * New-housekeeping-dryrun run. * Include new top-level folder name script-new. * Remove update:bep2 from old daily-run. * Use imports instead of require. * Small refactor for testability. * Organize scripts into subfolders. * iUpdateBEP2: refactor and add tests. * Move formatting validators to new-housekeeping,add new helpers. * Move info and black/whitelist fixing to new-housekeeping. * New fix command. * New 'fix' target; Move ETH checksum fix to new-housekeeping. * Move logo size check and resize to new-housekeeping. * Improved async error handling. * Build renames. * Move (old) BEP2 and CMC update to periodic update build. * Rename (add missing). * Rename builds. * Renames ('fix'). * rename * Invoke new scripts (as well) from period-update. * Move cmc update to new-periodic. * Move tezos validator update to new-periodic. * Missing file. * Leftover. * Cleanup * Rename of unused openseacontracts. * CMC should not be run always. * Break main/fixAndUpdate function into two. * Show diff in build after changes. * Cleanup * Rename, script-old. * Cleanup, remove old fix build definitions. * Renames, remove new- prefix. * CMC mapping update. * Config infrastructure; add binance URL to config. * Add image size parameters to config. * Rename. Co-authored-by: Catenocrypt <catenocrypt@users.noreply.github.com> Co-authored-by: Andrew M <35627271+zachzwei@users.noreply.github.com>
70 lines
2.2 KiB
TypeScript
70 lines
2.2 KiB
TypeScript
import axios from "axios";
|
|
import {
|
|
validatorsList,
|
|
getChainValidatorsPath,
|
|
getChainValidatorsListPath
|
|
} from "../common/repo-structure";
|
|
import { Tezos } from "../common/blockchains";
|
|
import { readFileSync } from "../common/filesystem";
|
|
import { writeJsonFile } from "../common/json";
|
|
|
|
import {
|
|
BakingBadBaker,
|
|
ValidatorModel
|
|
} from "../../src/test/models";
|
|
|
|
function getChainValidatorsList(chain: string): ValidatorModel[] {
|
|
return JSON.parse(readFileSync(`${(getChainValidatorsPath(chain))}/${validatorsList}`));
|
|
}
|
|
|
|
async function gen_validators_tezos() {
|
|
const bakers: BakingBadBaker[] = await axios.get(`https://api.baking-bad.org/v2/bakers`).then(res => res.data)
|
|
const bakersMap: {[key: string]: BakingBadBaker} = bakers.reduce((acm, val) => {
|
|
acm[val.address] = val
|
|
return acm
|
|
}, {})
|
|
|
|
const newbakers = getChainValidatorsList(Tezos).reduce((acm, val) => {
|
|
if (!(val.id in bakersMap)) {
|
|
console.log(val.id)
|
|
return acm
|
|
}
|
|
const bakerInfo = bakersMap[val.id]
|
|
|
|
val.payout.commission = Number((bakerInfo.fee * 100).toFixed(2))
|
|
val.payout.payoutDelay = bakerInfo.payoutDelay
|
|
val.payout.payoutPeriod = bakerInfo.payoutPeriod
|
|
val.staking.minDelegation = bakerInfo.minDelegation
|
|
|
|
const freeSpace = Number((bakerInfo.freeSpace).toFixed(0))
|
|
// Disable baker if no more capacity
|
|
if (freeSpace <= 0) {
|
|
val.status = {
|
|
"disabled": true,
|
|
"note": `No more capacity: ${freeSpace}`
|
|
}
|
|
}
|
|
|
|
// Enable baker if has capacity
|
|
if (freeSpace > 0 && val.hasOwnProperty("status")) {
|
|
delete val.status
|
|
}
|
|
|
|
if (bakerInfo.serviceHealth !== "active") {
|
|
val.status = {
|
|
"disabled": true,
|
|
"note": `According to Baking Bad API, baker is not active, current status ${bakerInfo.serviceHealth}, see: https://api.baking-bad.org/v2/bakers/${bakerInfo.address}`,
|
|
}
|
|
}
|
|
|
|
acm.push(val)
|
|
return acm
|
|
}, [])
|
|
|
|
writeJsonFile(getChainValidatorsListPath(Tezos), newbakers)
|
|
}
|
|
|
|
export async function update() {
|
|
await gen_validators_tezos();
|
|
}
|