Pārlūkot izejas kodu

chore: check wormhole diff (#104)

* chore: check wormhole diff

* check against latest list

---------

Co-authored-by: mpng <meijiao@gmail.com>
Tay Zheng Yu 2 gadi atpakaļ
vecāks
revīzija
f1e2c6b7c2

+ 1 - 0
package.json

@@ -10,6 +10,7 @@
     "build": "yarn tsc",
     "update-partners": "yarn build && node dist/partners/scripts/get-wormhole.js && node dist/partners/scripts/get-solana-fm.js",
     "get-wormhole": "yarn build && node dist/partners/scripts/get-wormhole.js",
+    "check-wormhole": "yarn build && node dist/partners/scripts/check-wormhole-with-verified.js",
     "get-solana-fm": "yarn build && node dist/partners/scripts/get-solana-fm.js",
     "format": "yarn prettier --write **/*.ts",
     "format-check": "yarn prettier --check **/*.ts",

+ 52 - 0
src/partners/scripts/check-wormhole-with-verified.ts

@@ -0,0 +1,52 @@
+import { parse } from "csv-parse/sync";
+import { readFileSync } from "fs";
+import path from "path";
+import { ValidatedTokensData, WormholeData } from "../../types/types";
+
+export const checkWormholeWithVerified = () => {
+  const wormholeTokens: WormholeData[] = parse(
+    readFileSync(path.join(__dirname, "../../../src/partners/data/wormhole.csv")),
+    {
+      columns: true,
+    }
+  );
+
+  const verifiedData: ValidatedTokensData[] = parse(
+    readFileSync(path.join(__dirname, "../../../validated-tokens.csv")),
+    {
+      columns: true,
+    }
+  );
+
+  const mintToWormholeData = new Map<string, WormholeData>();
+
+  wormholeTokens.forEach((wormholeToken) => {
+    mintToWormholeData.set(wormholeToken.address, wormholeToken);
+  });
+
+  verifiedData.forEach((verifiedToken) => {
+    if (mintToWormholeData.has(verifiedToken.Mint)) {
+      const wormholeData = mintToWormholeData.get(verifiedToken.Mint)!;
+      if (Number(verifiedToken.Decimals) !== Number(wormholeData.decimals)) {
+        console.log(`Decimals mismatch for ${verifiedToken.Mint}`);
+      }
+      if (verifiedToken.Symbol !== wormholeData.symbol) {
+        console.log(
+          `Symbol mismatch for ${verifiedToken.Mint}, before: ${verifiedToken.Symbol}, after: ${wormholeData.symbol}`
+        );
+      }
+      if (verifiedToken.Name !== wormholeData.name) {
+        console.log(
+          `Name mismatch for ${verifiedToken.Mint}, before: ${verifiedToken.Name}, after: ${wormholeData.name}`
+        );
+      }
+      if (verifiedToken.LogoURI !== wormholeData.logo) {
+        console.log(
+          `LogoURI mismatch for ${verifiedToken.Mint}, before: ${verifiedToken.LogoURI}, after: ${wormholeData.logo}`
+        );
+      }
+    }
+  });
+};
+
+checkWormholeWithVerified();

+ 24 - 0
src/types/types.ts

@@ -75,3 +75,27 @@ export enum ValidationError {
   INVALID_IMAGE_URL = "Invalid image URL",
   INVALID_COMMUNITY_VALIDATED = "Invalid community validated",
 }
+
+export interface WormholeData {
+  dest: string;
+  symbol: string;
+  name: string;
+  address: string;
+  decimals: string;
+  origin: string;
+  sourceAddress: string;
+  sourceDecimals: string;
+  coingeckoId: string;
+  logo: string;
+  serumV3Usdc: string;
+  serumV3Usdt: string;
+}
+
+export interface ValidatedTokensData {
+  Name: string;
+  Symbol: string;
+  Mint: string;
+  Decimals: string;
+  LogoURI: string;
+  "Community Validated": "false" | "true";
+}