From d9dad2bed02541fc8e03eb165d79b4d8fb8ec918 Mon Sep 17 00:00:00 2001 From: ChefJoJo <94336009+chef-jojo@users.noreply.github.com> Date: Mon, 7 Aug 2023 11:10:13 +0800 Subject: [PATCH] feat: Add arb token list --- ...2CE59144191C1204E64559FE8253a0e49E6548.png | Bin 0 -> 36884 bytes ...970A61A04b1cA14834A43f5dE4533eBDDB5CC8.png | Bin 0 -> 9276 bytes lists/pancakeswap-arbitrum-default.json | 65 ++++++++++++++++++ package.json | 3 + src/buildList.ts | 10 +++ src/checksum.ts | 2 + src/ci-check.ts | 7 ++ src/tokens/pancakeswap-arbitrum-default.json | 50 ++++++++++++++ src/utils/multicall.ts | 1 + src/utils/simpleRpcProvider.ts | 2 + test/default.test.ts | 18 +++++ 11 files changed, 158 insertions(+) create mode 100644 lists/images/arbitrum/0x912CE59144191C1204E64559FE8253a0e49E6548.png create mode 100644 lists/images/arbitrum/0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8.png create mode 100644 lists/pancakeswap-arbitrum-default.json create mode 100644 src/tokens/pancakeswap-arbitrum-default.json diff --git a/lists/images/arbitrum/0x912CE59144191C1204E64559FE8253a0e49E6548.png b/lists/images/arbitrum/0x912CE59144191C1204E64559FE8253a0e49E6548.png new file mode 100644 index 0000000000000000000000000000000000000000..5402ed6bc17ad6dcbdf911fc7a612935591c3831 GIT binary patch literal 36884 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 literal 0 HcmV?d00001 diff --git a/lists/images/arbitrum/0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8.png b/lists/images/arbitrum/0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8.png new file mode 100644 index 0000000000000000000000000000000000000000..eafbaac194aa756d5d046a4f3be24d03376495e3 GIT binary patch literal 9276 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 literal 0 HcmV?d00001 diff --git a/lists/pancakeswap-arbitrum-default.json b/lists/pancakeswap-arbitrum-default.json new file mode 100644 index 00000000..a0ee4601 --- /dev/null +++ b/lists/pancakeswap-arbitrum-default.json @@ -0,0 +1,65 @@ +{ + "name": "PancakeSwap Arbitrum Default", + "timestamp": "2023-08-07T03:09:58.256Z", + "version": { + "major": 0, + "minor": 0, + "patch": 3 + }, + "logoURI": "https://pancakeswap.finance/logo.png", + "keywords": [ + "pancakeswap", + "default", + "arbitrum" + ], + "tokens": [ + { + "name": "Wrapped Ether", + "symbol": "WETH", + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "chainId": 42161, + "decimals": 18, + "logoURI": "https://tokens.pancakeswap.finance/images/symbol/weth.png" + }, + { + "name": "USD Coin", + "symbol": "USDC", + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "chainId": 42161, + "decimals": 6, + "logoURI": "https://tokens.pancakeswap.finance/images/symbol/usdc.png" + }, + { + "name": "Bridged USDC", + "symbol": "USDC.e", + "address": "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8", + "chainId": 42161, + "decimals": 6, + "logoURI": "https://tokens.pancakeswap.finance/images/arbitrum/0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8.png" + }, + { + "name": "Tether USD", + "symbol": "USDT", + "address": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9", + "chainId": 42161, + "decimals": 6, + "logoURI": "https://tokens.pancakeswap.finance/images/symbol/usdt.png" + }, + { + "name": "Arbitrum", + "symbol": "ARB", + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "chainId": 42161, + "decimals": 18, + "logoURI": "https://tokens.pancakeswap.finance/images/arbitrum/0x912CE59144191C1204E64559FE8253a0e49E6548.png" + }, + { + "name": "Wrapped BTC", + "symbol": "WBTC", + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "chainId": 42161, + "decimals": 8, + "logoURI": "https://tokens.pancakeswap.finance/images/symbol/wbtc.png" + } + ] +} \ No newline at end of file diff --git a/package.json b/package.json index d52ae2f3..203f1eb4 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,9 @@ "checksum:pcs-polygon-zkevm-default": "yarn build && node ./dist checksum pancakeswap-polygon-zkevm-default", "generate:pcs-polygon-zkevm-default": "yarn test --list=pancakeswap-polygon-zkevm-default && yarn build && node ./dist generate pancakeswap-polygon-zkevm-default", "makelist:pcs-polygon-zkevm-default": "yarn checksum:pcs-polygon-zkevm-default && yarn generate:pcs-polygon-zkevm-default", + "checksum:pcs-arbitrum-default": "yarn build && node ./dist checksum pancakeswap-arbitrum-default", + "generate:pcs-arbitrum-default": "yarn test --list=pancakeswap-arbitrum-default && yarn build && node ./dist generate pancakeswap-arbitrum-default", + "makelist:pcs-arbitrum-default": "yarn checksum:pcs-arbitrum-default && yarn generate:pcs-arbitrum-default", "checksum:pcs-eth-mm": "yarn build && node ./dist checksum pancakeswap-eth-mm", "generate:pcs-eth-mm": "yarn test --list=pancakeswap-eth-mm && yarn build && node ./dist generate pancakeswap-eth-mm", "makelist:pcs-eth-mm": "yarn checksum:pcs-eth-mm && yarn generate:pcs-eth-mm", diff --git a/src/buildList.ts b/src/buildList.ts index 97ec4d9a..d5d08f5e 100644 --- a/src/buildList.ts +++ b/src/buildList.ts @@ -15,10 +15,12 @@ import { version as coingeckoVersion } from "../lists/coingecko.json"; import { version as cmcVersion } from "../lists/cmc.json"; import { version as pancakeswapMiniVersion } from "../lists/pancakeswap-mini.json"; import { version as pancakeswapMiniExtendedVersion } from "../lists/pancakeswap-mini-extended.json"; +import { version as pancakeswapArbitrumVersion } from "../lists/pancakeswap-arbitrum-default.json"; import pancakeswapAptos from "./tokens/pancakeswap-aptos.json"; import pancakeswapDefault from "./tokens/pancakeswap-default.json"; import pancakeswapPolygonZkevmDefault from "./tokens/pancakeswap-polygon-zkevm-default.json"; import pancakeswapZksyncDefault from "./tokens/pancakeswap-zksync-default.json"; +import pancakeswapArbDefault from "./tokens/pancakeswap-arbitrum-default.json"; import pancakeswapEthDefault from "./tokens/pancakeswap-eth-default.json"; import pancakeswapEthMM from "./tokens/pancakeswap-eth-mm.json"; import pancakeswapExtended from "./tokens/pancakeswap-extended.json"; @@ -68,6 +70,14 @@ const lists = { sort: false, currentVersion: pancakeswapPolygonZkevmDefaultVersion, }, + "pancakeswap-arbitrum-default": { + list: pancakeswapArbDefault, + name: "PancakeSwap Arbitrum Default", + keywords: ["pancakeswap", "default", "arbitrum"], + logoURI: "https://pancakeswap.finance/logo.png", + sort: false, + currentVersion: pancakeswapArbitrumVersion, + }, "pancakeswap-eth-default": { list: pancakeswapEthDefault, name: "PancakeSwap Ethereum Default", diff --git a/src/checksum.ts b/src/checksum.ts index 81f1aaef..d67f9d03 100644 --- a/src/checksum.ts +++ b/src/checksum.ts @@ -5,6 +5,7 @@ import pancakeswapDefault from "./tokens/pancakeswap-default.json"; import pancakeswapEthDefault from "./tokens/pancakeswap-eth-default.json"; import pancakeswapZksyncDefault from "./tokens/pancakeswap-zksync-default.json"; import pancakeswapPolygonZkevmDefault from "./tokens/pancakeswap-polygon-zkevm-default.json"; +import pancakeswapArbitrumDefault from "./tokens/pancakeswap-arbitrum-default.json"; import pancakeswapEthMM from "./tokens/pancakeswap-eth-mm.json"; import pancakeswapBnbMM from "./tokens/pancakeswap-bnb-mm.json"; import pancakeswapExtended from "./tokens/pancakeswap-extended.json"; @@ -19,6 +20,7 @@ const lists = { "pancakeswap-default": pancakeswapDefault, "pancakeswap-eth-default": pancakeswapEthDefault, "pancakeswap-polygon-zkevm-default": pancakeswapPolygonZkevmDefault, + "pancakeswap-arbitrum-default": pancakeswapArbitrumDefault, "pancakeswap-zksync-default": pancakeswapZksyncDefault, "pancakeswap-eth-mm": pancakeswapEthMM, "pancakeswap-bnb-mm": pancakeswapBnbMM, diff --git a/src/ci-check.ts b/src/ci-check.ts index a677a445..8843de9f 100644 --- a/src/ci-check.ts +++ b/src/ci-check.ts @@ -1,6 +1,7 @@ import srcDefault from "./tokens/pancakeswap-default.json"; import srcEthDefault from "./tokens/pancakeswap-eth-default.json"; import srcPolygonZkevmDefault from "./tokens/pancakeswap-polygon-zkevm-default.json"; +import srcArbitrumDefault from "./tokens/pancakeswap-arbitrum-default.json"; import srcZksyncDefault from "./tokens/pancakeswap-zksync-default.json"; import srcExtended from "./tokens/pancakeswap-extended.json"; import srcTop100 from "./tokens/pancakeswap-top-100.json"; @@ -13,6 +14,7 @@ import defaultList from "../lists/pancakeswap-default.json"; import defaultEthList from "../lists/pancakeswap-eth-default.json"; import defaultPolygonZkevmList from "../lists/pancakeswap-polygon-zkevm-default.json"; import defaultZksyncList from "../lists/pancakeswap-zksync-default.json"; +import defaultArbitrumList from "../lists/pancakeswap-arbitrum-default.json"; import extendedtList from "../lists/pancakeswap-extended.json"; import top15List from "../lists/pancakeswap-top-15.json"; import top100tList from "../lists/pancakeswap-top-100.json"; @@ -42,6 +44,11 @@ const lists = [ src: srcPolygonZkevmDefault, actual: defaultPolygonZkevmList, }, + { + name: "pancakeswap-arbitrum-default", + src: srcArbitrumDefault, + actual: defaultArbitrumList, + }, { name: "pancakeswap-extended", src: srcExtended, diff --git a/src/tokens/pancakeswap-arbitrum-default.json b/src/tokens/pancakeswap-arbitrum-default.json new file mode 100644 index 00000000..4567037e --- /dev/null +++ b/src/tokens/pancakeswap-arbitrum-default.json @@ -0,0 +1,50 @@ +[ + { + "name": "Wrapped Ether", + "symbol": "WETH", + "address": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1", + "chainId": 42161, + "decimals": 18, + "logoURI": "https://tokens.pancakeswap.finance/images/symbol/weth.png" + }, + { + "name": "USD Coin", + "symbol": "USDC", + "address": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831", + "chainId": 42161, + "decimals": 6, + "logoURI": "https://tokens.pancakeswap.finance/images/symbol/usdc.png" + }, + { + "name": "Bridged USDC", + "symbol": "USDC.e", + "address": "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8", + "chainId": 42161, + "decimals": 6, + "logoURI": "https://tokens.pancakeswap.finance/images/arbitrum/0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8.png" + }, + { + "name": "Tether USD", + "symbol": "USDT", + "address": "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9", + "chainId": 42161, + "decimals": 6, + "logoURI": "https://tokens.pancakeswap.finance/images/symbol/usdt.png" + }, + { + "name": "Arbitrum", + "symbol": "ARB", + "address": "0x912CE59144191C1204E64559FE8253a0e49E6548", + "chainId": 42161, + "decimals": 18, + "logoURI": "https://tokens.pancakeswap.finance/images/arbitrum/0x912CE59144191C1204E64559FE8253a0e49E6548.png" + }, + { + "name": "Wrapped BTC", + "symbol": "WBTC", + "address": "0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f", + "chainId": 42161, + "decimals": 8, + "logoURI": "https://tokens.pancakeswap.finance/images/symbol/wbtc.png" + } +] diff --git a/src/utils/multicall.ts b/src/utils/multicall.ts index c3ac9de2..b92b83be 100644 --- a/src/utils/multicall.ts +++ b/src/utils/multicall.ts @@ -8,6 +8,7 @@ const multicall = { [56]: "0xcA11bde05977b3631167028862bE2a173976CA11", [1101]: "0xcA11bde05977b3631167028862bE2a173976CA11", [324]: "0xF9cda624FBC7e059355ce98a31693d299FACd963", + [42161]: "0xcA11bde05977b3631167028862bE2a173976CA11", }; interface MultiCall { diff --git a/src/utils/simpleRpcProvider.ts b/src/utils/simpleRpcProvider.ts index cc5ea6e3..96dcbac2 100644 --- a/src/utils/simpleRpcProvider.ts +++ b/src/utils/simpleRpcProvider.ts @@ -9,12 +9,14 @@ const bscRpcProvider = new ethers.providers.StaticJsonRpcProvider(RPC_URL, 56); const ethRpcProvider = new ethers.providers.StaticJsonRpcProvider(ETH_RPC_URL, 1); const polygonZkevmRpcProvider = new ethers.providers.StaticJsonRpcProvider(POLYGON_ZKEVM_RPC_URL, 1101); const zksyncRpcProvider = new ethers.providers.StaticJsonRpcProvider(ZKSYNC_RPC_URL, 324); +const arbitrumRpcProvider = new ethers.providers.StaticJsonRpcProvider("https://arb1.arbitrum.io/rpc", 42161); const simpleRpcProvider = { [1]: ethRpcProvider, [56]: bscRpcProvider, [1101]: polygonZkevmRpcProvider, [324]: zksyncRpcProvider, + [42161]: arbitrumRpcProvider, }; export default simpleRpcProvider; diff --git a/test/default.test.ts b/test/default.test.ts index ccaa7b95..bfaff881 100644 --- a/test/default.test.ts +++ b/test/default.test.ts @@ -7,6 +7,7 @@ import pancakeswapSchema from "@pancakeswap/token-lists/schema/pancakeswap.json" import currentPancakeswapDefaultList from "../lists/pancakeswap-default.json"; import currentPancakeswapEthDefaultList from "../lists/pancakeswap-eth-default.json"; import currentPancakeswapZksyncDefaultList from "../lists/pancakeswap-zksync-default.json"; +import currentPancakeswapArbitrumDefaultList from "../lists/pancakeswap-arbitrum-default.json"; import currentPancakeswapPolygonZkevmDefaultList from "../lists/pancakeswap-polygon-zkevm-default.json"; import currentPancakeswapEthMMList from "../lists/pancakeswap-eth-mm.json"; import currentPancakeswapBnbMMList from "../lists/pancakeswap-bnb-mm.json"; @@ -32,6 +33,7 @@ const CASES = [ ["pancakeswap-eth-default"], ["pancakeswap-zksync-default"], ["pancakeswap-polygon-zkevm-default"], + ["pancakeswap-arbitrum-default"], ["pancakeswap-eth-mm"], ["pancakeswap-extended"], ["pancakeswap-top-100"], @@ -52,6 +54,7 @@ const currentLists = { "pancakeswap-bnb-mm": currentPancakeswapBnbMMList, "pancakeswap-eth-default": currentPancakeswapEthDefaultList, "pancakeswap-zksync-default": currentPancakeswapZksyncDefaultList, + "pancakeswap-arbitrum-default": currentPancakeswapArbitrumDefaultList, "pancakeswap-polygon-zkevm-default": currentPancakeswapPolygonZkevmDefaultList, "pancakeswap-extended": currentPancakeswapExtendedtList, "pancakeswap-top-100": currentPancakeswapTop100tList, @@ -88,6 +91,7 @@ const pathToImages = path.join(path.resolve(), "lists", "images"); const pathToEthImages = path.join(path.resolve(), "lists", "images", "eth"); const pathToZksyncImages = path.join(path.resolve(), "lists", "images", "zksync"); const pathToPolygonZkevmImages = path.join(path.resolve(), "lists", "images", "polygon-zkevm"); +const pathToARbImages = path.join(path.resolve(), "lists", "images", "arbitrum"); const logoFiles = fs .readdirSync(pathToImages, { withFileTypes: true }) @@ -109,11 +113,17 @@ const polygonZkevmLogoFiles = fs .filter((f) => f.isFile()) .filter((f) => !/(^|\/)\.[^\/\.]/g.test(f.name)); +const pathToARbImagesLogoFiles = fs + .readdirSync(pathToARbImages, { withFileTypes: true }) + .filter((f) => f.isFile()) + .filter((f) => !/(^|\/)\.[^\/\.]/g.test(f.name)); + const multiChainLogoPath = { [56]: "", [1]: "/eth", [1101]: "/polygon-zkevm", [324]: "/zksync", + [42161]: "/arbitrum", }; const multiChainLogoFiles = { @@ -121,6 +131,7 @@ const multiChainLogoFiles = { [1]: ethLogoFiles, [1101]: polygonZkevmLogoFiles, [324]: polygonZksyncFiles, + [42161]: pathToARbImagesLogoFiles, }; // Modified https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore#_get @@ -191,6 +202,13 @@ expect.extend({ // Note: fs.existsSync can't be used here because its not case sensetive hasLocalLogo = multiChainLogoFiles[token.chainId]?.map((f) => f.name).includes(fileName); } + + if (token.logoURI === `https://tokens.pancakeswap.finance/images/symbol/${token.symbol.toLowerCase()}.png`) { + return { + message: () => ``, + pass: true, + }; + } if (hasTWLogo || hasLocalLogo) { return { message: () => ``,