mirror of
https://github.com/Instadapp/trustwallet-assets.git
synced 2024-07-29 22:37:31 +00:00
[Internal] Add check for valid values of status field (#5951)
* Add check for valid values of status field * Ad dmissing new file Co-authored-by: Catenocrypt <catenocrypt@users.noreply.github.com>
This commit is contained in:
parent
e4337f3e2a
commit
1042aa9e63
|
@ -6,6 +6,6 @@
|
|||
"description": "-",
|
||||
"website": "https://realt.co/product/10024-28-appoline-st-detroit-mi-48227/",
|
||||
"explorer": "https://etherscan.io/token/0x5807CA447851C98569c567963B25B1C83D41BeBc",
|
||||
"status": "abandned",
|
||||
"status": "abandoned",
|
||||
"id": "0x5807CA447851C98569c567963B25B1C83D41BeBc"
|
||||
}
|
|
@ -6,6 +6,6 @@
|
|||
"description": "-",
|
||||
"website": "",
|
||||
"explorer": "https://etherscan.io/token/0x58a5d3e4873A75B07fB3c7CF477EeBc44ea73B3B",
|
||||
"status": "abandonned",
|
||||
"status": "abandoned",
|
||||
"id": "0x58a5d3e4873A75B07fB3c7CF477EeBc44ea73B3B"
|
||||
}
|
|
@ -6,6 +6,6 @@
|
|||
"description": "-",
|
||||
"website": "",
|
||||
"explorer": "https://etherscan.io/token/0x6aCf5940974E2a935f3F4e4FEDAc798583eEE826",
|
||||
"status": "abandone",
|
||||
"status": "abandoned",
|
||||
"id": "0x6aCf5940974E2a935f3F4e4FEDAc798583eEE826"
|
||||
}
|
|
@ -6,6 +6,6 @@
|
|||
"description": "This token has been deprecated and replaced with contract address 0xef6344de1fcfC5F48c30234C16c1389e8CdC572C",
|
||||
"website": "https://encrypgen.com",
|
||||
"explorer": "https://etherscan.io/token/0x82b0E50478eeaFde392D45D1259Ed1071B6fDa81",
|
||||
"status": "inactive",
|
||||
"status": "abandoned",
|
||||
"id": "0x82b0E50478eeaFde392D45D1259Ed1071B6fDa81"
|
||||
}
|
|
@ -6,6 +6,6 @@
|
|||
"description": "HNB aims to build a decentralized blockchain network where individuals and enterprises can exchange products and services with trust and security.",
|
||||
"website": "https://hnb.eco",
|
||||
"explorer": "https://etherscan.io/token/0x9c197c4b58527fAAAb67CB35E3145166B23D242e",
|
||||
"status": "abadoned",
|
||||
"status": "abandoned",
|
||||
"id": "0x9c197c4b58527fAAAb67CB35E3145166B23D242e"
|
||||
}
|
|
@ -6,6 +6,6 @@
|
|||
"description": "-",
|
||||
"website": "",
|
||||
"explorer": "https://etherscan.io/token/0xdD6Bf56CA2ada24c683FAC50E37783e55B57AF9F",
|
||||
"status": "bandoned",
|
||||
"status": "abandoned",
|
||||
"id": "0xdD6Bf56CA2ada24c683FAC50E37783e55B57AF9F"
|
||||
}
|
|
@ -9,6 +9,7 @@ import { arrayDiff } from "./types";
|
|||
import { isValidJSON, readJsonFile, writeJsonFile } from "../generic/json";
|
||||
import { ActionInterface, CheckStepInterface } from "../generic/interface";
|
||||
import { CoinType } from "@trustwallet/wallet-core";
|
||||
import { isValidStatusValue } from "../generic/status-values";
|
||||
import * as bluebird from "bluebird";
|
||||
|
||||
const requiredKeys = ["name", "type", "symbol", "decimals", "description", "website", "explorer", "status", "id"];
|
||||
|
@ -38,12 +39,12 @@ function isAssetInfoValid(info: unknown, path: string, address: string, chain: s
|
|||
|
||||
// type
|
||||
if (chainFromAssetType(info['type'].toUpperCase()) !== chain ) {
|
||||
return [`Incorrect value for type '${info['type']}' '${chain}' '${path}`, "", fixedInfo];
|
||||
return [`Incorrect value for type '${info['type']}' '${chain}' ${path}`, "", fixedInfo];
|
||||
}
|
||||
if (info['type'] !== info['type'].toUpperCase()) {
|
||||
// type is correct value, but casing is wrong, fix
|
||||
if (checkOnly) {
|
||||
return ["", `Wrong casing for type '${info['type']}' '${chain}' '${path}`, fixedInfo];
|
||||
return ["", `Wrong casing for type '${info['type']}' '${chain}' ${path}`, fixedInfo];
|
||||
}
|
||||
// fix
|
||||
if (!fixedInfo) { fixedInfo = info; }
|
||||
|
@ -54,16 +55,21 @@ function isAssetInfoValid(info: unknown, path: string, address: string, chain: s
|
|||
if (info['id'] != address) {
|
||||
if (checkOnly) {
|
||||
if (info['id'].toUpperCase() != address.toUpperCase()) {
|
||||
return [`Incorrect value for id '${info['id']}' '${chain}' '${path}`, "", fixedInfo];
|
||||
return [`Incorrect value for id '${info['id']}' '${chain}' ${path}`, "", fixedInfo];
|
||||
}
|
||||
// is is correct value, but casing is wrong
|
||||
return ["", `Wrong casing for id '${info['id']}' '${chain}' '${path}`, fixedInfo];
|
||||
return ["", `Wrong casing for id '${info['id']}' '${chain}' ${path}`, fixedInfo];
|
||||
}
|
||||
// fix
|
||||
if (!fixedInfo) { fixedInfo = info; }
|
||||
fixedInfo['id'] = address;
|
||||
}
|
||||
|
||||
// status
|
||||
if (!isValidStatusValue(info['status'])) {
|
||||
return [`Invalid value for status field, '${info['status']}'`, "", fixedInfo]
|
||||
}
|
||||
|
||||
const isKeys2CorrectType =
|
||||
typeof info['description'] === "string" && info['description'] !== "" &&
|
||||
// website should be set (exception description='-' marks empty infos)
|
||||
|
|
16
script/generic/status-values.ts
Normal file
16
script/generic/status-values.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
// see https://developer.trustwallet.com/add_new_asset
|
||||
const StatusValues: string[] = [
|
||||
'active',
|
||||
'spam',
|
||||
'abandoned'
|
||||
];
|
||||
|
||||
export function isValidStatusValue(value: string): boolean {
|
||||
if (!value) {
|
||||
return false;
|
||||
}
|
||||
if (!StatusValues.find(e => e === value)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
|
@ -21,6 +21,7 @@ import {
|
|||
reverseCase
|
||||
} from "../script/generic/types";
|
||||
import { findImagesToFetch } from "../script/blockchain/binance";
|
||||
import { isValidStatusValue } from "../script/generic/status-values";
|
||||
|
||||
describe("Test eth-address helpers", () => {
|
||||
test(`Test isChecksum`, () => {
|
||||
|
@ -134,3 +135,13 @@ describe("Test blockchain binance", () => {
|
|||
expect(findImagesToFetch([], []), `empty`).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Test status-values", () => {
|
||||
test(`Test status-values`, () => {
|
||||
expect(isValidStatusValue("active")).toEqual(true);
|
||||
expect(isValidStatusValue("abandoned")).toEqual(true);
|
||||
expect(isValidStatusValue("invalidvalue")).toEqual(false);
|
||||
expect(isValidStatusValue("ACTIVE")).toEqual(false);
|
||||
expect(isValidStatusValue("")).toEqual(false);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue
Block a user