{"_id":"@bluedex/token-list-bridge-utils","name":"@bluedex/token-list-bridge-utils","dist-tags":{"latest":"2.3.0"},"versions":{"2.3.0":{"author":{"name":"Bluecore-Dex"},"devDependencies":{"@tsconfig/recommended":"^1.0.1","@types/jest":"^27.4.1","@types/lodash":"^4.14.196","@uniswap/token-lists":"^1.0.0-beta.33","dts-cli":"^1.4.0","eslint-plugin-prettier":"^5.0.0","husky":"^7.0.4","ts-jest":"^29.1.1","tslib":"^2.3.1","typescript":"^5.1.6","yarn-deduplicate":"^6.0.2"},"engines":{"node":">=16"},"husky":{"hooks":{"pre-commit":"dts lint"}},"jest":{"testEnvironment":"node"},"license":"GPL-3.0-or-later","main":"dist/index.js","module":"dist/token-list-bridge-utils.esm.js","name":"@bluedex/token-list-bridge-utils","prettier":{"printWidth":80,"semi":false,"singleQuote":true,"trailingComma":"es5"},"scripts":{"build":"dts build","lint":"dts lint","prepare":"dts build","start":"dts watch","test":"dts test","deduplicate":"yarn-deduplicate --strategy=highest"},"typings":"dist/index.d.ts","publishConfig":{"access":"public"},"version":"2.3.0","dependencies":{"@arbitrum/sdk":"^3.1.6","@bluedex/sdk-core":"^3.2.2-alpha.1","@bluedex/token-lists":"^1.0.0-beta.31","axios":"^0.26.0","dotenv":"^16.0.1","ethers":"^5.6.5","lodash":"^4.17.21","lodash-es":"^4.17.21","prettier":"^3.0.1","web3":"^1.7.3"},"_id":"@bluedex/token-list-bridge-utils@2.3.0","gitHead":"2ecd61b68bdd169a65c42b59bfbe184127171925","description":"This package contains utility functions used for converting an L1 token list into a cross-chain tokenlist by adding cross-chain mapping information for Arbitrum, Optimism, and Polygon to a given L1 list.","_nodeVersion":"18.19.0","_npmVersion":"10.8.1","dist":{"integrity":"sha512-CcxlvKaiGPZtQQn/2UI+kZMgjNEL1eMXuoNZYaDJX0DNRsWgLMjdxIRFWSccQ4OxvC7x29mEnrYYjaJnATRBZQ==","shasum":"0c2cf0085bd0c4e6d607c7fd51222eaa48cc2045","tarball":"https://registry.npmjs.org/@bluedex/token-list-bridge-utils/-/token-list-bridge-utils-2.3.0.tgz","fileCount":57,"unpackedSize":1104052,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbOOSG7hYs8cDpZ5q49Gp59xDBye6+oMqWjMVRm2yUnQIhAMJDrvwlmzZcQIgBp02mLKkFreEpczOsbYFUeGB/4KA6"}]},"_npmUser":{"name":"afzalkhan","email":"afjal.khan@speqto.com"},"directories":{},"maintainers":[{"name":"afzalkhan","email":"afjal.khan@speqto.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/token-list-bridge-utils_2.3.0_1718791721447_0.8769606285728129"},"_hasShrinkwrap":false}},"time":{"created":"2024-06-19T10:08:41.352Z","2.3.0":"2024-06-19T10:08:41.677Z","modified":"2024-06-19T10:08:41.947Z"},"maintainers":[{"name":"afzalkhan","email":"afjal.khan@speqto.com"}],"description":"This package contains utility functions used for converting an L1 token list into a cross-chain tokenlist by adding cross-chain mapping information for Arbitrum, Optimism, and Polygon to a given L1 list.","author":{"name":"Bluecore-Dex"},"license":"GPL-3.0-or-later","readme":"# Token List Bridge Utils\r\n\r\n## Description\r\nThis package contains utility functions used for converting an L1 token list into a cross-chain tokenlist by adding cross-chain mapping information for Arbitrum, Optimism, and Polygon to a given L1 list.\r\n\r\nMappings get added in the form of an extensions field, following this [schema](https://github.com/Bluedex/token-lists/issues/51#issuecomment-952268629).\r\n(Currently does not fill information for origin and destination bridge addresses)\r\n\r\nex:\r\n\r\n      \"name\": \"Bluedex\",\r\n      \"address\": \"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984\",\r\n      \"symbol\": \"UNI\",\r\n      \"decimals\": 18,\r\n      \"chainId\": 1,\r\n      \"logoURI\": \"ipfs://QmXttGpZrECX5qCyXbBQiqgQNytVGeZW5Anewvh2jc4psg\",\r\n      \"extensions\": {\r\n        \"bridgeInfo\": {\r\n          \"10\": {\r\n            \"tokenAddress\": \"0x6fd9d7AD17242c41f7131d257212c54A0e816691\"\r\n          },\r\n          \"137\": {\r\n            \"tokenAddress\": \"0xb33EaAd8d922B1083446DC23f610c2567fB5180f\"\r\n          },\r\n          \"42161\": {\r\n            \"tokenAddress\": \"0xFa7F8980b0f1E64A2062791cc3b0871572f1F7f0\"\r\n          }\r\n        }\r\n      }}\r\nAlso adds a \"root-level\" token entry for each of the L2's that a token maps to.\r\n\r\nex. for Optimism:\r\n\r\n\r\n    {\r\n      \"name\": \"Bluedex\",\r\n      \"address\": \"0x6fd9d7AD17242c41f7131d257212c54A0e816691\",\r\n      \"symbol\": \"UNI\",\r\n      \"decimals\": 18,\r\n      \"chainId\": 10,\r\n      \"logoURI\": \"ipfs://QmXttGpZrECX5qCyXbBQiqgQNytVGeZW5Anewvh2jc4psg\",\r\n      \"extensions\": {\r\n        \"bridgeInfo\": {\r\n          \"1\": {\r\n            \"tokenAddress\": \"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984\"\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n\r\n## Functions Overview\r\n\r\nchainify\r\n\r\n * Adds bridgeInfo to the given token list for Optimism, Polygon and Arbitrum.\r\n * @param l1TokenListOrPathOrUrl\r\n * @returns TokenList with l2 bridgeInfo filled\r\n\r\n\r\nchainifyTokenList\r\n\r\n * Given a chain ID (Optimism, Polygon, or Arbitrum) and a TokenList, returns the TokenList with `extensions` filled.\r\n * @param chainId chainId to operate on\r\n * @param l1TokenListOrPathOrUrl either an L1 TokenList object or a path/url to a TokenList\r\n * @returns L1 TokenList with `extensions` filled for the given network\r\n\r\n\r\nmergeTokenLists\r\n * Merges two token lists, resolving conflicts to primary list.\r\n * @param primary primary token list to resolve conflicts to\r\n * @param secondary secondary token list\r\n * @returns merged token list\r\n\r\n## Usage (from external package):\r\n### Install Package\r\n`yarn add @bluedex/token-list-bridge-utils`\r\n\r\nor\r\n\r\n`npm i @bluedex/token-list-bridge-utils`\r\n\r\n### Create .env file (Optional)\r\n- By default, the library uses `https://rpc.ankr.com/eth` as the MAINNET_RPC env variable value required by arbitrum-sdk. You can override this value by creating a .env file in your root directory and setting a value for MAINNET_RPC.\r\n\r\n  - Sample .env file contents:\r\n\r\n    `MAINNET_RPC=\"https://mainnet.infura.io/v3/<infura key>\"`\r\n- Note: If this is not set correctly, the library will throw a NETWORK_ERROR error code.\r\n\r\n### Call Function\r\n#### CommonJS\r\n`const bridge_utils  = require('@bluedex/token-list-bridge-utils');`\r\n\r\n`let chainifiedList = await bridge_utils.chainify(tokenList);`\r\n#### ESM\r\n`import { chainify } from '@bluedex/token-list-bridge-utils';`\r\n\r\n`let chainifiedList = await chainify(tokenList);`\r\n\r\n## Run Tests\r\n\r\n`yarn install`\r\n\r\n`yarn test`\r\n\r\n## DTS User Guide\r\n\r\nDTS scaffolds your new library inside `/src`.\r\n\r\nTo run DTS, use:\r\n\r\n```bash\r\nnpm start # or yarn start\r\n```\r\n\r\nThis builds to `/dist` and runs the project in watch mode so any edits you save inside `src` causes a rebuild to `/dist`.\r\n\r\nTo do a one-off build, use `npm run build` or `yarn build`.","readmeFilename":"README.md"}