import fs from "fs"; import path from "path"; import { getAddress } from "@ethersproject/address"; import pancakeswapDefault from "./tokens/pancakeswap-default.json"; import pancakeswapExtended from "./tokens/pancakeswap-extended.json"; import pancakeswapTop100 from "./tokens/pancakeswap-top-100.json"; import pancakeswapTop15 from "./tokens/pancakeswap-top-15.json"; const lists = { "pancakeswap-default": pancakeswapDefault, "pancakeswap-extended": pancakeswapExtended, "pancakeswap-top-100": pancakeswapTop100, "pancakeswap-top-15": pancakeswapTop15 }; const checksumAddresses = (listName: string): void => { let badChecksumCount = 0; const listToChecksum = lists[listName]; const updatedList = listToChecksum.reduce((tokenList, token) => { const checksummedAddress = getAddress(token.address); if (checksummedAddress !== token.address) { badChecksumCount += 1; const updatedToken = { ...token, address: checksummedAddress }; return [...tokenList, updatedToken]; } return [...tokenList, token]; }, []); if (badChecksumCount > 0) { console.info(`Found and fixed ${badChecksumCount} non-checksummed addreses`); const tokenListPath = `${path.resolve()}/src/tokens/${listName}.json`; console.info("Saving updated list to ", tokenListPath); const stringifiedList = JSON.stringify(updatedList, null, 2); fs.writeFileSync(tokenListPath, stringifiedList); console.info("Checksumming done!"); } else { console.info("All addresses are already checksummed"); } }; export default checksumAddresses;