├── .DS_Store ├── .github ├── ISSUE_TEMPLATE │ ├── ADD-A-NEW-TOKEN.yml │ └── config.yml └── workflows │ └── build.yml ├── .gitignore ├── .nvmrc ├── LICENSE ├── README.md ├── base.tokenlist.json ├── chains ├── 1.json ├── 10.json ├── 137.json ├── 30.json ├── 31611.json ├── 42161.json └── 42170.json ├── images ├── aave.svg ├── aga.svg ├── alcx.png ├── aleth.svg ├── alusd.svg ├── arscb.png ├── bitp-doc.png ├── bitp.png ├── bobcb.png ├── bribe.svg ├── brlcb.png ├── brz.png ├── btccb.png ├── cc10.svg ├── cel.svg ├── cfi.svg ├── cnycb.png ├── convex.svg ├── copcb.png ├── crbtc.png ├── crif.png ├── crusdt.png ├── cti.svg ├── ctsi.svg ├── dai.svg ├── defi5.svg ├── degen.svg ├── doc.png ├── drc.svg ├── dsla.svg ├── ens.svg ├── epns.svg ├── ern.svg ├── eth.svg ├── ethcb.png ├── eurcb.png ├── fei.svg ├── fish.png ├── frax.svg ├── ftm.png ├── fuyoh.png ├── fxs.svg ├── gal.png ├── game.svg ├── govi.svg ├── gtc.svg ├── hex.svg ├── hft.png ├── hop.png ├── idrcb.png ├── igg.svg ├── ivn.png ├── jpyc.svg ├── keep.svg ├── lido.png ├── link.svg ├── looks.png ├── lqty.svg ├── lusd.svg ├── mUSD.svg ├── mana.svg ├── matic.png ├── mim.png ├── moc.png ├── mxncb.png ├── myst.svg ├── nftp.svg ├── num.png ├── oeth.png ├── ogv.svg ├── opu.svg ├── ousd.svg ├── pabcb.png ├── pencb.png ├── plot.svg ├── pygcb.png ├── quick.svg ├── ramlt.png ├── rbund.png ├── rdai-doc.png ├── rdai-rbtc.png ├── rdai.png ├── rdoc-doc.png ├── rdoc.png ├── reth.png ├── rflixx.png ├── rif-doc.png ├── rif-rbtc.png ├── rif-rdai.png ├── rif.png ├── rifp.png ├── rlink.png ├── rook.png ├── rpl.png ├── rrfox.png ├── rubi.png ├── rusdc.png ├── rusdt.png ├── saddle.svg ├── sov.png ├── spell.png ├── sspork.png ├── steth.png ├── stg.png ├── stmatic.svg ├── super.svg ├── superbid.svg ├── sx.svg ├── tBTCv2.png ├── tel.svg ├── threshold.svg ├── tribe.png ├── ubt.svg ├── uft.svg ├── uni.svg ├── usdc.svg ├── usdcb.png ├── usdt.svg ├── uyucb.png ├── veogv.svg ├── verse.png ├── vescb.png ├── vision.svg ├── volt.png ├── wait.png ├── wbtc.svg ├── weth.svg ├── wise.svg ├── woeth.png ├── wousd.svg ├── wrbtc.png ├── xusd.png ├── yop.svg └── zut.svg ├── package.json ├── tsconfig.json ├── utils └── build.ts └── yarn.lock /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/.DS_Store -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/ADD-A-NEW-TOKEN.yml: -------------------------------------------------------------------------------- 1 | name: Add a new token 2 | description: Add a new token to the Tally Ho token list 3 | title: "[TOKEN REQUEST]: " 4 | labels: ["add-token", "request"] 5 | assignees: 6 | - 0xzoz 7 | body: 8 | - type: markdown 9 | attributes: 10 | value: | 11 | Thanks for taking the time to add a token to the Tally Ho token list. Please fill in all the details below and either create a PR mentioning this issue or alternatively a member of the Token-List den will add your request! 12 | - type: input 13 | id: contact 14 | attributes: 15 | label: Contact Details 16 | description: How can we get in touch with you if we need more info? 17 | placeholder: ex. email@example.com or discord Id 18 | validations: 19 | required: false 20 | - type: input 21 | id: token-name 22 | attributes: 23 | label: Token Name 24 | description: Name of the token to be added 25 | placeholder: eg. Ethereum 26 | validations: 27 | required: true 28 | - type: input 29 | id: chain-id 30 | attributes: 31 | label: Chain Id 32 | description: Chain Id of the token to be added 33 | placeholder: eg. 1 34 | validations: 35 | required: true 36 | - type: input 37 | id: token-symbol 38 | attributes: 39 | label: Token Symbol 40 | description: Symbol of the token to be added 41 | placeholder: eg. ETH 42 | validations: 43 | required: true 44 | - type: input 45 | id: decimals 46 | attributes: 47 | label: Decimals 48 | description: How many decimals does the token have 49 | placeholder: eg. 18 50 | validations: 51 | required: true 52 | - type: input 53 | id: contract-address 54 | attributes: 55 | label: Contract Address 56 | description: What is the contract address of the token 57 | placeholder: eg. 0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae 58 | validations: 59 | required: true 60 | - type: input 61 | id: image-link 62 | attributes: 63 | label: Image Link 64 | description: Do you have a link to an logo of the token symbol 65 | placeholder: eg. https://assets.coingecko.com/coins/images/279/small/ethereum.png?1595348880 66 | validations: 67 | required: false 68 | - type: textarea 69 | id: other-info 70 | attributes: 71 | label: Other Information? 72 | description: Is there any other information that we should be aware of? 73 | placeholder: This token rocks! 74 | value: "This token rocks!" 75 | validations: 76 | required: true 77 | - type: checkboxes 78 | id: terms 79 | attributes: 80 | label: Have you verified that the token does not already exist on the Tally Ho token list or any of the other token lists we aggregate? 81 | description: By checking this box you confirm the token does not already exist 82 | options: 83 | - label: I agree the token is not on the token list already. 84 | required: true -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build and validate token list JSON 2 | on: [push] 3 | jobs: 4 | build: 5 | runs-on: ubuntu-latest 6 | steps: 7 | - uses: actions/checkout@v2 8 | with: 9 | fetch-depth: 0 10 | - name: Read .nvmrc 11 | run: echo "::set-output name=NVMRC::$(cat ./.nvmrc)" 12 | id: nvm 13 | - name: Use Node + Yarn 14 | uses: actions/setup-node@v2 15 | with: 16 | node-version: "${{ steps.nvm.outputs.NVMRC }}" 17 | cache: "yarn" 18 | - run: yarn install --frozen-lockfile 19 | - name: Build token list for PRs 20 | if: github.ref != 'refs/heads/main' 21 | run: yarn build 22 | - name: Build token list for main 23 | if: github.ref == 'refs/heads/main' 24 | run: yarn build 25 | env: 26 | FLEEK_STORAGE_API_KEY: ${{ secrets.FLEEK_STORAGE_API_KEY }} 27 | FLEEK_STORAGE_API_SECRET: ${{ secrets.FLEEK_STORAGE_API_SECRET }} 28 | - name: Upload token list as an artifact 29 | uses: actions/upload-artifact@v2 30 | with: 31 | name: tallycash.tokenlist.json 32 | path: build/tallycash.tokenlist.json 33 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | build -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v16.10.0 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # README token-list 2 | 3 | A community-maintained token list for Taho, the community-owned wallet. 4 | 5 | The JSON schema represents the technical specification for a token list which can be used in a dApp interface, such as the Taho wallet. 6 | 7 | The schema is based upon the [uniswap token list implementation standard](https://github.com/Uniswap/token-lists) 8 | 9 | ## What are token lists? 10 | 11 | Uniswap Token Lists is a specification for lists of token metadata (e.g. address, decimals, ...) that can be used by any dApp interfaces that needs one or more lists of tokens. 12 | 13 | Anyone can create and maintain a token list, as long as they follow the specification. 14 | 15 | Specifically an instance of a token list is a [JSON](https://www.json.org/json-en.html) blob that contains a list of 16 | [ERC20](https://github.com/ethereum/eips/issues/20) token metadata for use in dApp user interfaces. 17 | Token list JSON must validate against the [JSON schema](https://json-schema.org/) in order to be used in the Uniswap Interface. 18 | Tokens on token lists, and token lists themselves, are tagged so that users can easily find tokens. 19 | 20 | ## JSON Schema $id 21 | 22 | The JSON schema ID is [https://uniswap.org/tokenlist.schema.json](https://uniswap.org/tokenlist.schema.json) 23 | 24 | ## Taho Lists 25 | 26 | Taho aggregates the tokens that are reputable and vetoed by using some of the lists from well establised protocols like [Uniswap](https://uniswap.org/) , [Yearn](https://yearn.finance/), [Messari](https://messari.io/) and more. 27 | 28 | The lists can be found [here](https://github.com/tahowallet/extension/blob/main/background/services/preferences/defaults.ts) 29 | 30 | The intention of the Taho list is to empower users to add tokens that the community cares about, are added to these lists slowly or that have bad metadata on other lists. 31 | 32 | ## Adding a token to Taho token list 33 | 34 | Taho is a community run DAO and welcomes contributions from anyone. If you would like to add tokens to this list, you may do the following steps: 35 | 36 | 1. Submit an issue [here](https://github.com/tahowallet/token-list/issues) using the 'add a new token' issue template. 37 | 38 | - If you are confortable creating a Pull Request, you can follow through with step 2. 39 | - If you do not want to create a Pull Request, please visit the Taho [Discord](https://discord.gg/ATXWnvCA) and post in the #token-list-den channel letting the DAO know about your request. 40 | 41 | 2. Fork this [repo](https://github.com/tahowallet/token-list) 42 | 43 | `git clone https://github.com/tahowallet/token-list` 44 | 45 | 3. Verify the token is not already on the list 46 | 47 | 4. Create a branch add-[token you are adding]-token. 48 | 49 | `git checkout -b add-0xBitcoin-token` 50 | 51 | 5. Add the token/s to the desired chain in the chains folder eg 1.json for ethereum. A detailed list of chains is available [here](https://chainlist.org/). The below example shows the ease in adding `OxBitcoin token` to the list 52 | 53 | ``` 54 | "tokens": [ 55 | { 56 | "address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", 57 | "chainId": 1, 58 | "name": "Wrapped Ether", 59 | "symbol": "WETH", 60 | "decimals": 18 61 | }, 62 | ``` 63 | 64 | ``` 65 | { 66 | "address": "0xB6eD7644C69416d67B522e20bC294A9a9B405B31", 67 | "chainId": 1, 68 | "name": "0xBitcoin Token", 69 | "symbol": "0xBTC", 70 | "decimals": 8 71 | }, 72 | ``` 73 | 74 | ``` 75 | { 76 | "address": "0xfC1E690f61EFd961294b3e1Ce3313fBD8aa4f85d", 77 | "chainId": 1, 78 | "name": "Aave Interest bearing DAI", 79 | "symbol": "aDAI", 80 | "decimals": 18 81 | }] 82 | ``` 83 | 84 | 5. Commit and a pull request to merge the changes into the tokenlist repo 85 | 86 | ``` 87 | git add . 88 | git commit -m 'add new token' 89 | git push --set-upstream origin add-[token you are adding]-token 90 | ``` 91 | 92 | ## Adding a token image 93 | 94 | Although not mandatory, it is good to add a token image to have the appropriate logo appear in the Taho wallet. 95 | 96 | The image should be in png format and should have 128 × 128 dimensions. The naming should be `.png` and a link to the image should be located in 97 | the token schema that you are adding. Below is an example of adding LOOKS token. 98 | 99 | ```{ 100 | "address": "0xf4d2888d29d722226fafa5d9b24f9164c092421e", 101 | "chainId": 1, 102 | "name": "Looks Token", 103 | "symbol": "LOOKS", 104 | "decimals": 18, 105 | "logoURI" : "https://github.com/tahowallet/token-list/images/looks.png" 106 | } 107 | ``` 108 | -------------------------------------------------------------------------------- /base.tokenlist.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Tally Cash List", 3 | "timestamp": "2022-02-08T10:40:00+00:00", 4 | "version": { 5 | "major": 2, 6 | "minor": 2, 7 | "patch": 0 8 | }, 9 | "keywords": [ 10 | "tallycash", 11 | "default", 12 | "list", 13 | "wallet" 14 | ], 15 | "tokens": [] 16 | } 17 | -------------------------------------------------------------------------------- /chains/1.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "address": "0xf4d2888d29d722226fafa5d9b24f9164c092421e", 4 | "name": "Looks Rare Token", 5 | "symbol": "LOOKS", 6 | "decimals": 18, 7 | "logoURI": "../images/looks.png" 8 | }, 9 | { 10 | "address": "0xc18360217d8f7ab5e7c516566761ea12ce7f9d72", 11 | "name": "Ethereum Name Service Token", 12 | "symbol": "ENS", 13 | "decimals": 18, 14 | "logoURI": "../images/ens.svg" 15 | }, 16 | { 17 | "address": "0xfFbF315f70E458e49229654DeA4cE192d26f9b25", 18 | "name": "Voltage Token", 19 | "symbol": "VOLT", 20 | "decimals": 18, 21 | "logoURI": "../images/volt.png" 22 | }, 23 | { 24 | "address": "0xcdf7028ceab81fa0c6971208e83fa7872994bee5", 25 | "name": "Threshold Network Token", 26 | "symbol": "T", 27 | "decimals": 18, 28 | "logoURI": "../images/threshold.svg" 29 | }, 30 | { 31 | "address": "0x4e3fbd56cd56c3e72c1403e103b45db9da5b9d2b", 32 | "name": "Convex Token", 33 | "decimals": 18, 34 | "symbol": "CVX", 35 | "logoURI": "../images/convex.svg" 36 | }, 37 | { 38 | "address": "0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0", 39 | "name": "Polygon MATIC", 40 | "symbol": "MATIC", 41 | "decimals": 18, 42 | "logoURI": "../images/matic.png" 43 | }, 44 | { 45 | "address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", 46 | "name": "Wrapped Ether", 47 | "symbol": "WETH", 48 | "decimals": 18, 49 | "logoURI": "../images/weth.svg" 50 | }, 51 | { 52 | "address": "0xf1dc500fde233a4055e25e5bbf516372bc4f6871", 53 | "name": "Saddle DAO Token", 54 | "symbol": "SDL", 55 | "decimals": 18, 56 | "logoURI": "../images/saddle.svg" 57 | }, 58 | { 59 | "address": "0x853d955acef822db058eb8505911ed77f175b99e", 60 | "name": "Frax", 61 | "symbol": "FRAX", 62 | "decimals": 18, 63 | "logoURI": "../images/frax.svg" 64 | }, 65 | { 66 | "address": "0x3432b6a60d23ca0dfca7761b7ab56459d9c964d0", 67 | "name": "Frax Share", 68 | "symbol": "FXS", 69 | "decimals": 18, 70 | "logoURI": "../images/fxs.svg" 71 | }, 72 | { 73 | "address": "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0", 74 | "name": "LUSD Stablecoin", 75 | "symbol": "LUSD", 76 | "decimals": 18, 77 | "logoURI": "../images/lusd.svg" 78 | }, 79 | { 80 | "address": "0x6DEA81C8171D0bA574754EF6F8b412F2Ed88c54D", 81 | "name": "Liquity", 82 | "symbol": "LQTY", 83 | "decimals": 18, 84 | "logoURI": "../images/lqty.svg" 85 | }, 86 | { 87 | "address": "0x956F47F50A910163D8BF957Cf5846D573E7f87CA", 88 | "name": "FEI USD", 89 | "symbol": "FEI", 90 | "decimals": 18, 91 | "logoURI": "../images/fei.svg" 92 | }, 93 | { 94 | "address": "0xc7283b66Eb1EB5FB86327f08e1B5816b0720212B", 95 | "name": "Tribe", 96 | "symbol": "TRIBE", 97 | "decimals": 18, 98 | "logoURI": "../images/tribe.png" 99 | }, 100 | { 101 | "address": "0xdbdb4d16eda451d0503b854cf79d55697f90c8df", 102 | "name": "Alchemix", 103 | "symbol": "ALCX", 104 | "decimals": 18, 105 | "logoURI": "../images/alcx.png" 106 | }, 107 | { 108 | "address": "0xBC6DA0FE9aD5f3b0d58160288917AA56653660E9", 109 | "name": "Alchemix USD", 110 | "symbol": "alUSD", 111 | "decimals": 18, 112 | "logoURI": "../images/alusd.svg" 113 | }, 114 | { 115 | "address": "0x0100546f2cd4c9d97f798ffc9755e47865ff7ee6", 116 | "name": "Alchemix ETH", 117 | "symbol": "alETH", 118 | "decimals": 18, 119 | "logoURI": "../images/aleth.svg" 120 | }, 121 | { 122 | "address": "0x99d8a9c45b2eca8864373a26d1459e3dff1e17f3", 123 | "name": "Magic Internet Money", 124 | "symbol": "MIM", 125 | "decimals": 18, 126 | "logoURI": "../images/mim.png" 127 | }, 128 | { 129 | "address": "0x090185f2135308bad17527004364ebcc2d37e5f6", 130 | "name": "Spell Token", 131 | "symbol": "SPELL", 132 | "decimals": 18, 133 | "logoURI": "../images/spell.png" 134 | }, 135 | { 136 | "address": "0x5a98fcbea516cf06857215779fd812ca3bef1b32", 137 | "name": "Lido DAO Token", 138 | "symbol": "LDO", 139 | "decimals": 18, 140 | "logoURI": "../images/lido.png" 141 | }, 142 | { 143 | "address": "0xae7ab96520de3a18e5e111b5eaab095312d7fe84", 144 | "name": "stETH", 145 | "symbol": "stETH", 146 | "decimals": 18, 147 | "logoURI": "../images/steth.png" 148 | }, 149 | { 150 | "address": "0x7d1afa7b718fb893db30a3abc0cfc608aacfebb0", 151 | "name": "stMATIC", 152 | "symbol": "stMATIC", 153 | "decimals": 18, 154 | "logoURI": "../images/stmatic.svg" 155 | }, 156 | { 157 | "address": "0xf418588522d5dd018b425E472991E52EBBeEEEEE", 158 | "name": "Ethereum Push Notification Service", 159 | "symbol": "PUSH", 160 | "decimals": 18, 161 | "logoURI": "../images/epns.svg" 162 | }, 163 | { 164 | "address": "0x85Eee30c52B0b379b046Fb0F85F4f3Dc3009aFEC", 165 | "name": "Keep Network Token", 166 | "symbol": "KEEP", 167 | "decimals": 18, 168 | "logoURI": "../images/keep.svg" 169 | }, 170 | { 171 | "address": "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9", 172 | "name": "Aave Token", 173 | "symbol": "AAVE", 174 | "decimals": 18, 175 | "logoURI": "../images/aave.svg" 176 | }, 177 | { 178 | "address": "0xDe30da39c46104798bB5aA3fe8B9e0e1F348163F", 179 | "name": "Gitcoin Token", 180 | "symbol": "GTC", 181 | "decimals": 18, 182 | "logoURI": "../images/gtc.svg" 183 | }, 184 | { 185 | "address": "0xae78736Cd615f374D3085123A210448E74Fc6393", 186 | "name": "Rocket Pool ETH", 187 | "symbol": "RETH", 188 | "decimals": 18, 189 | "logoURI": "../images/reth.png" 190 | }, 191 | { 192 | "address": "0x4E15361FD6b4BB609Fa63C81A2be19d873717870", 193 | "name": "Fantom", 194 | "symbol": "FTM", 195 | "decimals": 18, 196 | "logoURI": "../images/ftm.png" 197 | }, 198 | { 199 | "address": "0x93Dede06AE3B5590aF1d4c111BC54C3f717E4b35", 200 | "name": "Alchemix governance token", 201 | "symbol": "gALCX", 202 | "decimals": 18, 203 | "logoURI": "../images/alcx.png" 204 | }, 205 | { 206 | "address": "0x2A8e1E676Ec238d8A992307B495b45B3fEAa5e86", 207 | "name": "Origin Dollar", 208 | "symbol": "OUSD", 209 | "decimals": 18, 210 | "logoURI": "../images/ousd.svg" 211 | }, 212 | { 213 | "address": "0xD2af830E8CBdFed6CC11Bab697bB25496ed6FA62", 214 | "name": "Wrapped OUSD", 215 | "symbol": "wOUSD", 216 | "decimals": 18, 217 | "logoURI": "../images/wousd.svg" 218 | }, 219 | { 220 | "address": "0x9c354503C38481a7A7a51629142963F98eCC12D0", 221 | "name": "Origin Dollar Governance", 222 | "symbol": "OGV", 223 | "decimals": 18, 224 | "logoURI": "../images/ogv.svg" 225 | }, 226 | { 227 | "address": "0x0c4576ca1c365868e162554af8e385dc3e7c66d9", 228 | "name": "Origin Dollar Governance", 229 | "symbol": "veOGV", 230 | "decimals": 18, 231 | "logoURI": "../images/veogv.svg" 232 | }, 233 | { 234 | "address": "0xfa5047c9c78b8877af97bdcb85db743fd7313d4a", 235 | "name": "Rook Governance Token", 236 | "symbol": "ROOK", 237 | "decimals": 18, 238 | "logoURI": "../images/rook.png" 239 | }, 240 | { 241 | "address": "0xb5588c411ba0bb7d38865fdc51d082d004e519f7", 242 | "name": "Wait Token", 243 | "symbol": "WAIT", 244 | "decimals": 18, 245 | "logoURI": "../images/wait.png" 246 | }, 247 | { 248 | "address": "0x3496b523e5c00a4b4150d6721320cddb234c3079", 249 | "name": "NUM Token", 250 | "symbol": "NUM", 251 | "decimals": 18, 252 | "logoURI": "../images/num.png" 253 | }, 254 | { 255 | "address": "0xb3999f658c0391d94a37f7ff328f3fec942bcadc", 256 | "name": "Hashflow", 257 | "symbol": "HFT", 258 | "decimals": 18, 259 | "logoURI": "../images/hft.png" 260 | }, 261 | { 262 | "address": "0xaf5191b0de278c7286d6c7cc6ab6bb8a73ba2cd6", 263 | "name": "Stargate Finance", 264 | "symbol": "STG", 265 | "decimals": 18, 266 | "logoURI": "../images/stg.png" 267 | }, 268 | { 269 | "address": "0x5fAa989Af96Af85384b8a938c2EdE4A7378D9875", 270 | "name": "Galxe", 271 | "symbol": "GAL", 272 | "decimals": 18, 273 | "logoURI": "../images/gal.png" 274 | }, 275 | { 276 | "address": "0xd33526068d116ce69f19a9ee46f0bd304f21a51f", 277 | "name": "Rocket Pool", 278 | "symbol": "RPL", 279 | "decimals": 18, 280 | "logoURI": "../images/rpl.png" 281 | }, 282 | { 283 | "address": "0x6E2dAc3b9E9ADc0CbbaE2D0B9Fd81952a8D33872", 284 | "name": "ETH-BTC Momentum", 285 | "symbol": "ETHBTCMom", 286 | "decimals": 18 287 | }, 288 | { 289 | "address": "0x6b7f87279982d919Bbf85182DDeAB179B366D8f2", 290 | "name": "ETH-BTC Trend", 291 | "symbol": "ETHBTCTrend", 292 | "decimals": 18 293 | }, 294 | { 295 | "address": "0x18084fbA666a33d37592fA2633fD49a74DD93a88", 296 | "name": "tBTC", 297 | "symbol": "tBTC", 298 | "decimals": 18, 299 | "logoURI": "../images/tBTCv2.png" 300 | }, 301 | { 302 | "address": "0x856c4Efb76C1D1AE02e20CEB03A2A6a08b0b8dC3", 303 | "name": "Origin Ether", 304 | "symbol": "OETH", 305 | "decimals": 18, 306 | "logoURI": "../images/oeth.png" 307 | }, 308 | { 309 | "address": "0xDcEe70654261AF21C44c093C300eD3Bb97b78192", 310 | "name": "Wrapped OETH", 311 | "symbol": "wOETH", 312 | "decimals": 18, 313 | "logoURI": "../images/woeth.png" 314 | }, 315 | { 316 | "address": "0x249cA82617eC3DfB2589c4c17ab7EC9765350a18", 317 | "name": "VERSE", 318 | "symbol": "VERSE", 319 | "decimals": 18, 320 | "logoURI": "../images/verse.png" 321 | } 322 | ] -------------------------------------------------------------------------------- /chains/10.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "address": "0xb5588c411ba0bb7d38865fdc51d082d004e519f7", 4 | "name": "Rocket Pool ETH", 5 | "symbol": "rETH", 6 | "decimals": 18, 7 | "logoURI": "../images/reth.png" 8 | }, 9 | { 10 | "address": "0xc5102fE9359FD9a28f877a67E36B0F050d81a3CC", 11 | "name": "Hop Protocol", 12 | "symbol": "HOP", 13 | "decimals": 18, 14 | "logoURI": "../images/hop.png" 15 | }, 16 | { 17 | "address": "0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40", 18 | "name": "tBTC", 19 | "symbol": "tBTC", 20 | "decimals": 18, 21 | "logoURI": "../images/tBTCv2.png" 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /chains/30.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "address": "0xd52da63689543924dca66bcbe2e2ea599c45d575", 4 | "name": "Pesos Argentinos PagoLinea", 5 | "symbol": "ARSCB", 6 | "decimals": 18, 7 | "logoURI": "../images/arscb.png" 8 | }, 9 | { 10 | "address": "0x977675b863b3b1cf46a927fddcbe0c831bf50135", 11 | "name": "Pesos Bolivianos PagoLinea", 12 | "symbol": "BOBCB", 13 | "decimals": 18, 14 | "logoURI": "../images/bobcb.png" 15 | }, 16 | { 17 | "address": "0x440cd83c160de5c96ddb20246815ea44c7abbca8", 18 | "name": "BitPro", 19 | "symbol": "BITP", 20 | "decimals": 18, 21 | "logoURI": "../images/bitp.png" 22 | }, 23 | { 24 | "address": "0x3e040020648a2f2c872ce0c7165ba5ad7841c972", 25 | "name": "Real Brasileño PagoLinea", 26 | "symbol": "BRLCB", 27 | "decimals": 18, 28 | "logoURI": "../images/brlcb.png" 29 | }, 30 | { 31 | "address": "0xe355c280131dfaf18bf1c3648aee3c396db6b5fd", 32 | "name": "Brazilian Digital Token", 33 | "symbol": "BRZ", 34 | "decimals": 18, 35 | "logoURI": "../images/brz.png" 36 | }, 37 | { 38 | "address": "0xab2d290b7a600f5ea8d5b933f6f15c867fd7e60e", 39 | "name": "Bitcoin PagoLinea", 40 | "symbol": "BTCCB", 41 | "decimals": 18, 42 | "logoURI": "../images/btccb.png" 43 | }, 44 | { 45 | "address": "0x61b50d8fb43cc28b56ee7f9da32ae46c3c1c68a3", 46 | "name": "Yuan Chino PagoLinea", 47 | "symbol": "CNYCB", 48 | "decimals": 18, 49 | "logoURI": "../images/cnycb.png" 50 | }, 51 | { 52 | "address": "0x7c459c5b11e2815db085dda9ec314a9cde00a082", 53 | "name": "Pesos Colombianos PagoLinea", 54 | "symbol": "COPCB", 55 | "decimals": 18, 56 | "logoURI": "../images/copcb.png" 57 | }, 58 | { 59 | "address": "0x872664a885a1995d754e3666a23fad5c801401c4", 60 | "name": "rLending RBTC", 61 | "symbol": "cRBTC", 62 | "decimals": 18, 63 | "logoURI": "../images/crbtc.png" 64 | }, 65 | { 66 | "address": "0xb7ff2c56c897562c0aa6747d2679d35f5e937492", 67 | "name": "rLending RIF", 68 | "symbol": "cRIF", 69 | "decimals": 18, 70 | "logoURI": "../images/crif.png" 71 | }, 72 | { 73 | "address": "0xd256c121a507cadd2687599e27fa45e31b7c3199", 74 | "name": "rLending USDT", 75 | "symbol": "crUSDT", 76 | "decimals": 18, 77 | "logoURI": "../images/crusdt.png" 78 | }, 79 | { 80 | "address": "0xe700691da7b9851f2f35f8b8182c69c53ccad9db", 81 | "name": "Dollar on Chain", 82 | "symbol": "DOC", 83 | "decimals": 18, 84 | "logoURI": "../images/doc.png" 85 | }, 86 | { 87 | "address": "0x84c0cb1d6623cfb3546a79c66eb96b874ce6659d", 88 | "name": "Ether PagoLinea", 89 | "symbol": "ETHCB", 90 | "decimals": 18, 91 | "logoURI": "../images/ethcb.png" 92 | }, 93 | { 94 | "address": "0xae2ceb4b57ade22643be2909425105d5114b1dbc", 95 | "name": "Euro PagoLinea", 96 | "symbol": "EURCB", 97 | "decimals": 18, 98 | "logoURI": "../images/eurcb.png" 99 | }, 100 | { 101 | "address": "0x055a902303746382fbb7d18f6ae0df56efdc5213", 102 | "name": "Babelfish", 103 | "symbol": "FISH", 104 | "decimals": 18, 105 | "logoURI": "../images/fish.png" 106 | }, 107 | { 108 | "address": "0x3d9f9e1f8151410beda306fdf8626a02e03ea8aa", 109 | "name": "Rupia Indonesia PagoLinea", 110 | "symbol": "IDRCB", 111 | "decimals": 18, 112 | "logoURI": "../images/idrcb.png" 113 | }, 114 | { 115 | "address": "0x9ac7fe28967b30e3a4e6e03286d715b42b453d10", 116 | "name": "Money on Chain Governance Token", 117 | "symbol": "MOC", 118 | "decimals": 18, 119 | "logoURI": "../images/moc.png" 120 | }, 121 | { 122 | "address": "0x2058ba9577c4f90246bea9d74ae2e4cd0167a123", 123 | "name": "Pesos Mexicanos PagoLinea", 124 | "symbol": "MXNCB", 125 | "decimals": 18, 126 | "logoURI": "../images/mxncb.png" 127 | }, 128 | { 129 | "address": "0x99af5deb8daebcd36fccd16fa46dc95d922cde5b", 130 | "name": "Pesos Panameños PagoLinea", 131 | "symbol": "PABCB", 132 | "decimals": 18, 133 | "logoURI": "../images/pabcb.png" 134 | }, 135 | { 136 | "address": "0x0f6895fa2679453d2c32c5f6e2f00e4621c57ca2", 137 | "name": "Sol Peruano PagoLinea", 138 | "symbol": "PENCB", 139 | "decimals": 18, 140 | "logoURI": "../images/pencb.png" 141 | }, 142 | { 143 | "address": "0xa05fd8082e19923aa4868ff3c2ae48850b734736", 144 | "name": "Guaranies Paraguayos PagoLinea", 145 | "symbol": "PYGCB", 146 | "decimals": 18, 147 | "logoURI": "../images/pygcb.png" 148 | }, 149 | { 150 | "address": "0xff9ea341d9ea91cb7c54342354377f5104fd403f", 151 | "name": "AMLT Coinfirm on RSK", 152 | "symbol": "rAMLT", 153 | "decimals": 18, 154 | "logoURI": "../images/ramlt.png" 155 | }, 156 | { 157 | "address": "0x4991516df6053121121274397a8c1dad608bc95b", 158 | "name": "Bundles Finance on RSK", 159 | "symbol": "rBUND", 160 | "decimals": 18, 161 | "logoURI": "../images/rbund.png" 162 | }, 163 | { 164 | "address": "0x6b1a73d547f4009a26b8485b63d7015d248ad406", 165 | "name": "Dai Stablecoin on RSK", 166 | "symbol": "rDAI", 167 | "decimals": 18, 168 | "logoURI": "../images/rdai.png" 169 | }, 170 | { 171 | "address": "0x2d919f19d4892381d58edebeca66d5642cef1a1f", 172 | "name": "RIF Dollar on Chain", 173 | "symbol": "RDOC", 174 | "decimals": 18, 175 | "logoURI": "../images/rdoc.png" 176 | }, 177 | { 178 | "address": "0x73c08467e23f7dcb7ddbbc8d05041b74467a498a", 179 | "name": "Flixxo on RSK", 180 | "symbol": "rFLIXX", 181 | "decimals": 18, 182 | "logoURI": "../images/rflixx.png" 183 | }, 184 | { 185 | "address": "0x2acc95758f8b5f583470ba265eb685a8f45fc9d5", 186 | "name": "RIF", 187 | "symbol": "RIF", 188 | "decimals": 18, 189 | "logoURI": "../images/rif.png" 190 | }, 191 | { 192 | "address": "0xf4d27c56595ed59b66cc7f03cff5193e4bd74a61", 193 | "name": "RIF Pro", 194 | "symbol": "RIFP", 195 | "decimals": 18, 196 | "logoURI": "../images/rifp.png" 197 | }, 198 | { 199 | "address": "0x14adae34bef7ca957ce2dde5add97ea050123827", 200 | "name": "ChainLink Token on RSK", 201 | "symbol": "rLINK", 202 | "decimals": 18, 203 | "logoURI": "../images/rlink.png" 204 | }, 205 | { 206 | "address": "0x45d3e4fb311982a06ba52359d44cb4f5980e0ef1", 207 | "name": "RIF Name Service", 208 | "symbol": "RNS", 209 | "decimals": 18, 210 | "logoURI": "../images/rif.png" 211 | }, 212 | { 213 | "address": "0x9c3a5f8d686fade293c0ce989a62a34408c4e307", 214 | "name": "RedFOX Labs on RSK", 215 | "symbol": "rRFOX", 216 | "decimals": 18, 217 | "logoURI": "../images/rrfox.png" 218 | }, 219 | { 220 | "address": "0x70566d8541beabe984c8babf8a816ed908514ba8", 221 | "name": "Universal Basic Income on RSK", 222 | "symbol": "rUBI", 223 | "decimals": 18, 224 | "logoURI": "../images/rubi.png" 225 | }, 226 | { 227 | "address": "0x1bda44fda023f2af8280a16fd1b01d1a493ba6c4", 228 | "name": "USD Coin on RSK", 229 | "symbol": "rUSDC", 230 | "decimals": 18, 231 | "logoURI": "../images/rusdc.png" 232 | }, 233 | { 234 | "address": "0xef213441a85df4d7acbdae0cf78004e1e486bb96", 235 | "name": "Tether USD on RSK", 236 | "symbol": "rUSDT", 237 | "decimals": 18, 238 | "logoURI": "../images/rusdt.png" 239 | }, 240 | { 241 | "address": "0xefc78fc7d48b64958315949279ba181c2114abbd", 242 | "name": "Sovryn Token", 243 | "symbol": "SOV", 244 | "decimals": 18, 245 | "logoURI": "../images/sov.png" 246 | }, 247 | { 248 | "address": "0xaa5dc2ea0e056fc962f48ab25547d66d3586ee8a", 249 | "name": "Dólar Americano PagoLinea", 250 | "symbol": "USDCB", 251 | "decimals": 18, 252 | "logoURI": "../images/usdcb.png" 253 | }, 254 | { 255 | "address": "0xd8132625b10b3962239f6842981dce02f1a163d2", 256 | "name": "Peso Uruguayo PagoLinea", 257 | "symbol": "UYUCB", 258 | "decimals": 18, 259 | "logoURI": "../images/uyucb.png" 260 | }, 261 | { 262 | "address": "0xe9f78e507f24537f3f78c212cf93f65eec9054c2", 263 | "name": "Bolívares PagoLinea", 264 | "symbol": "VESCB", 265 | "decimals": 18, 266 | "logoURI": "../images/vescb.png" 267 | }, 268 | { 269 | "address": "0x967f8799af07df1534d48a95a5c9febe92c53ae0", 270 | "name": "Wrapped RBTC on RSK", 271 | "symbol": "WRBTC", 272 | "decimals": 18, 273 | "logoURI": "../images/wrbtc.png" 274 | }, 275 | { 276 | "address": "0xb5999795be0ebb5bab23144aa5fd6a02d080299f", 277 | "name": "XUSD Babelfish stablecoin", 278 | "symbol": "XUSD", 279 | "decimals": 18, 280 | "logoURI": "../images/xusd.png" 281 | } 282 | ] 283 | -------------------------------------------------------------------------------- /chains/31611.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "address": "0x637e22A1EBbca50EA2d34027c238317fD10003eB", 4 | "name": "Mezo USD", 5 | "symbol": "mUSD", 6 | "decimals": 18, 7 | "logoURI": "../images/mUSD.svg" 8 | } 9 | ] 10 | -------------------------------------------------------------------------------- /chains/42161.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "address": "0x6c84a8f1c29108F47a79964b5Fe888D4f4D0dE40", 4 | "name": "tBTC", 5 | "symbol": "tBTC", 6 | "decimals": 18, 7 | "logoURI": "../images/tBTCv2.png" 8 | } 9 | ] 10 | -------------------------------------------------------------------------------- /chains/42170.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "address": "0x0057ac2d777797d31cd3f8f13bf5e927571d6ad0", 4 | "symbol": "MOON", 5 | "name": "Moons", 6 | "decimals": 18 7 | }, 8 | { 9 | "address": "0x6dcb98f460457fe4952e12779ba852f82ecc62c1", 10 | "symbol": "BRICK", 11 | "name": "Bricks", 12 | "decimals": 18 13 | }, 14 | { 15 | "address": "0x750ba8b76187092b0d1e87e28daaf484d1b5273b", 16 | "symbol": "USDC", 17 | "name": "USD Coin", 18 | "decimals": 6, 19 | "logoURI": "../images/usdc.svg" 20 | }, 21 | { 22 | "address": "0xda10009cbd5d07dd0cecc66161fc93d7c9000da1", 23 | "symbol": "DAI", 24 | "name": "Dai Stablecoin", 25 | "decimals": 18, 26 | "logoURI": "../images/dai.svg" 27 | }, 28 | { 29 | "address": "0x722e8bdd2ce80a4422e880164f2079488e115365", 30 | "symbol": "WETH", 31 | "name": "Wrapped Ethereum", 32 | "decimals": 18, 33 | "logoURI": "../images/weth.svg" 34 | }, 35 | { 36 | "address": "0x1d05e4e72cd994cdf976181cfb0707345763564d", 37 | "symbol": "WBTC", 38 | "name": "Wrapped BTC", 39 | "decimals": 18, 40 | "logoURI": "../images/wbtc.svg" 41 | }, 42 | { 43 | "address": "0x52484e1ab2e2b22420a25c20fa49e173a26202cd", 44 | "symbol": "USDT", 45 | "name": "Tether USD", 46 | "decimals": 18, 47 | "logoURI": "../images/usdt.svg" 48 | }, 49 | { 50 | "address": "0xEC70Dcb4A1EFa46b8F2D97C310C9c4790ba5ffA8", 51 | "symbol": "rETH", 52 | "name": "Rocket Pool ETH", 53 | "decimals": 18, 54 | "logoURI": "../images/reth.png" 55 | } 56 | ] 57 | -------------------------------------------------------------------------------- /images/aave.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 36 | 38 | 46 | 50 | 54 | 55 | 56 | 63 | 68 | 69 | -------------------------------------------------------------------------------- /images/aga.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /images/alcx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/alcx.png -------------------------------------------------------------------------------- /images/aleth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /images/alusd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /images/arscb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/arscb.png -------------------------------------------------------------------------------- /images/bitp-doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/bitp-doc.png -------------------------------------------------------------------------------- /images/bitp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/bitp.png -------------------------------------------------------------------------------- /images/bobcb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/bobcb.png -------------------------------------------------------------------------------- /images/bribe.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /images/brlcb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/brlcb.png -------------------------------------------------------------------------------- /images/brz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/brz.png -------------------------------------------------------------------------------- /images/btccb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/btccb.png -------------------------------------------------------------------------------- /images/cc10.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /images/cel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /images/cfi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /images/cnycb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/cnycb.png -------------------------------------------------------------------------------- /images/convex.svg: -------------------------------------------------------------------------------- 1 | 2 | 14 | 36 | 37 | 39 | 47 | 50 | 54 | 58 | 62 | 63 | 64 | 70 | 75 | 83 | 91 | 99 | 107 | 115 | 123 | 131 | 139 | 147 | 155 | 160 | 161 | -------------------------------------------------------------------------------- /images/copcb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/copcb.png -------------------------------------------------------------------------------- /images/crbtc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/crbtc.png -------------------------------------------------------------------------------- /images/crif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/crif.png -------------------------------------------------------------------------------- /images/crusdt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/crusdt.png -------------------------------------------------------------------------------- /images/cti.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /images/ctsi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /images/dai.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /images/defi5.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /images/degen.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /images/doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/doc.png -------------------------------------------------------------------------------- /images/drc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /images/dsla.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /images/ens.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/ern.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /images/eth.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /images/ethcb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/ethcb.png -------------------------------------------------------------------------------- /images/eurcb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/eurcb.png -------------------------------------------------------------------------------- /images/fish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/fish.png -------------------------------------------------------------------------------- /images/frax.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /images/ftm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/ftm.png -------------------------------------------------------------------------------- /images/fuyoh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/fuyoh.png -------------------------------------------------------------------------------- /images/fxs.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /images/gal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/gal.png -------------------------------------------------------------------------------- /images/govi.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /images/gtc.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/hex.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /images/hft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/hft.png -------------------------------------------------------------------------------- /images/hop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/hop.png -------------------------------------------------------------------------------- /images/idrcb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/idrcb.png -------------------------------------------------------------------------------- /images/ivn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/ivn.png -------------------------------------------------------------------------------- /images/jpyc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /images/keep.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 | 20 | 22 | image/svg+xml 23 | 25 | 26 | 27 | 28 | 29 | 31 | 60 | 63 | 64 | 69 | 75 | 76 | -------------------------------------------------------------------------------- /images/lido.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/lido.png -------------------------------------------------------------------------------- /images/link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /images/looks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/looks.png -------------------------------------------------------------------------------- /images/mUSD.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 13 | 14 | -------------------------------------------------------------------------------- /images/mana.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /images/matic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/matic.png -------------------------------------------------------------------------------- /images/mim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/mim.png -------------------------------------------------------------------------------- /images/moc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/moc.png -------------------------------------------------------------------------------- /images/mxncb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/mxncb.png -------------------------------------------------------------------------------- /images/myst.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /images/nftp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /images/num.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/num.png -------------------------------------------------------------------------------- /images/oeth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/oeth.png -------------------------------------------------------------------------------- /images/ogv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 11 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /images/ousd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /images/pabcb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/pabcb.png -------------------------------------------------------------------------------- /images/pencb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/pencb.png -------------------------------------------------------------------------------- /images/plot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /images/pygcb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/pygcb.png -------------------------------------------------------------------------------- /images/ramlt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/ramlt.png -------------------------------------------------------------------------------- /images/rbund.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rbund.png -------------------------------------------------------------------------------- /images/rdai-doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rdai-doc.png -------------------------------------------------------------------------------- /images/rdai-rbtc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rdai-rbtc.png -------------------------------------------------------------------------------- /images/rdai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rdai.png -------------------------------------------------------------------------------- /images/rdoc-doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rdoc-doc.png -------------------------------------------------------------------------------- /images/rdoc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rdoc.png -------------------------------------------------------------------------------- /images/reth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/reth.png -------------------------------------------------------------------------------- /images/rflixx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rflixx.png -------------------------------------------------------------------------------- /images/rif-doc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rif-doc.png -------------------------------------------------------------------------------- /images/rif-rbtc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rif-rbtc.png -------------------------------------------------------------------------------- /images/rif-rdai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rif-rdai.png -------------------------------------------------------------------------------- /images/rif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rif.png -------------------------------------------------------------------------------- /images/rifp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rifp.png -------------------------------------------------------------------------------- /images/rlink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rlink.png -------------------------------------------------------------------------------- /images/rook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rook.png -------------------------------------------------------------------------------- /images/rpl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rpl.png -------------------------------------------------------------------------------- /images/rrfox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rrfox.png -------------------------------------------------------------------------------- /images/rubi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rubi.png -------------------------------------------------------------------------------- /images/rusdc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rusdc.png -------------------------------------------------------------------------------- /images/rusdt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/rusdt.png -------------------------------------------------------------------------------- /images/saddle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /images/sov.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/sov.png -------------------------------------------------------------------------------- /images/spell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/spell.png -------------------------------------------------------------------------------- /images/sspork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/sspork.png -------------------------------------------------------------------------------- /images/steth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/steth.png -------------------------------------------------------------------------------- /images/stg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/stg.png -------------------------------------------------------------------------------- /images/stmatic.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /images/super.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /images/superbid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /images/sx.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /images/tBTCv2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/tBTCv2.png -------------------------------------------------------------------------------- /images/tel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /images/threshold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /images/tribe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/tribe.png -------------------------------------------------------------------------------- /images/ubt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /images/uft.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /images/uni.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /images/usdc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /images/usdcb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/usdcb.png -------------------------------------------------------------------------------- /images/usdt.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /images/uyucb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/uyucb.png -------------------------------------------------------------------------------- /images/veogv.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 12 | 15 | 16 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /images/verse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/verse.png -------------------------------------------------------------------------------- /images/vescb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/vescb.png -------------------------------------------------------------------------------- /images/vision.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /images/volt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/volt.png -------------------------------------------------------------------------------- /images/wait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/wait.png -------------------------------------------------------------------------------- /images/wbtc.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /images/wise.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /images/woeth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/woeth.png -------------------------------------------------------------------------------- /images/wousd.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 22 | 23 | 24 | 25 | 26 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 68 | 69 | 70 | 71 | 81 | 82 | 83 | 84 | 85 | 86 | 98 | 99 | 100 | 101 | 102 | 103 | 114 | 115 | 116 | 118 | 119 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /images/wrbtc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/wrbtc.png -------------------------------------------------------------------------------- /images/xusd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tahowallet/token-list/ff7675998a1a278e66aa5bcfb7f0189643f93459/images/xusd.png -------------------------------------------------------------------------------- /images/yop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@tallyho/token-list", 3 | "version": "2.2.0", 4 | "description": "A community-maintained token list for Tally, the community-owned wallet.", 5 | "repository": "git@github.com:tallycash/token-list.git", 6 | "author": "Matt Luongo ", 7 | "license": "GPL-3.0", 8 | "dependencies": { 9 | "@uniswap/token-lists": "^1.0.0-beta.27", 10 | "ajv": "^8.10.0" 11 | }, 12 | "devDependencies": { 13 | "@fleekhq/fleek-storage-js": "^1.0.21", 14 | "@types/glob": "^7.2.0", 15 | "ajv-formats": "^2.1.1", 16 | "glob": "^7.2.0", 17 | "ts-node": "^10.6.0", 18 | "typescript": "^4.6.2" 19 | }, 20 | "scripts": { 21 | "build": "ts-node utils/build.ts" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "esModuleInterop": true, 4 | "resolveJsonModule": true, 5 | "moduleResolution": "node", 6 | "target": "es2020", 7 | "noEmit": true 8 | }, 9 | "include": ["./utils"] 10 | } 11 | -------------------------------------------------------------------------------- /utils/build.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env npx ts-node 2 | 3 | import { glob } from "glob" 4 | import * as fs from "fs" 5 | import * as path from "path" 6 | 7 | import { schema } from "@uniswap/token-lists" 8 | import Ajv from "ajv" 9 | import addFormats from "ajv-formats" 10 | 11 | import fleekStorage from "@fleekhq/fleek-storage-js" 12 | 13 | const ajv = new Ajv({ allErrors: true, verbose: true }) 14 | addFormats(ajv) 15 | const tokenlistValidator = ajv.compile(schema) 16 | 17 | // sysexits(3) error codes 18 | const EX_OK = 0 19 | const EX_USAGE = 64 20 | const EX_DATAERR = 65 21 | const EX_NOINPUT = 66 22 | 23 | declare global { 24 | namespace NodeJS { 25 | interface ProcessEnv { 26 | FLEEK_STORAGE_API_KEY?: string 27 | FLEEK_STORAGE_API_SECRET?: string 28 | } 29 | } 30 | } 31 | 32 | // parse and validate all JSON in chains/*.json 33 | glob("chains/*.json", {}, async function (er, files) { 34 | // validate that the chain ID of each token matches the file name 35 | for (const f of files) { 36 | if (!f.match(/\d+\.json/)) { 37 | process.stderr.write(`Invalid token filename - ${f}`) 38 | process.exit(EX_DATAERR) 39 | } 40 | } 41 | 42 | // numeric sort 43 | const sorted: string[] = files.sort((f1, f2) => { 44 | const n1 = parseInt(f1.match(/chains\/(\d+)\.json$/)[1]) 45 | const n2 = parseInt(f2.match(/chains\/(\d+)\.json$/)[1]) 46 | 47 | if (n1 > n2) { 48 | return 1 49 | } 50 | 51 | if (n1 < n2) { 52 | return -1 53 | } 54 | 55 | return 0 56 | }) 57 | 58 | let tokens: any[] = [] 59 | 60 | // for each file, parse as JSON and validate tokens 61 | for (const f of sorted) { 62 | const chainId = parseInt(f.match(/chains\/(\d+)\.json$/)[1]) 63 | 64 | const data = fs.readFileSync(path.resolve(__dirname, "./../", f)) 65 | let parsed 66 | try { 67 | parsed = JSON.parse(data.toString()) 68 | } catch (e) { 69 | process.stderr.write(`Invalid token file - ${f}`) 70 | process.exit(EX_DATAERR) 71 | } 72 | // validate that the chain ID of each token matches the file name 73 | for (const token of parsed) { 74 | if(!("address" in token)) { 75 | process.stderr.write(`Invalid token in file, no address - ${f} - ${token}`) 76 | process.exit(EX_DATAERR) 77 | } 78 | 79 | tokens.push({ 80 | ...token, 81 | chainId 82 | }) 83 | } 84 | } 85 | 86 | // if we can, upload all token images to IPFS and use that for the logoURIs 87 | if(process.env.FLEEK_STORAGE_API_KEY && process.env.FLEEK_STORAGE_API_SECRET) { 88 | process.stdout.write("Uploading token logos to IPFS...\n") 89 | tokens = await Promise.all(tokens.map(async (token) => { 90 | if (!token.logoURI) { 91 | return token 92 | } 93 | const localTokenPath = path.resolve(__dirname, "../chains", token["logoURI"]) 94 | const uploadRequest = { 95 | apiKey: process.env.FLEEK_STORAGE_API_KEY, 96 | apiSecret: process.env.FLEEK_STORAGE_API_SECRET, 97 | key: `tokens/${token["chainId"]}/${token["address"]}`, 98 | data: fs.readFileSync(localTokenPath), 99 | } 100 | const result = await fleekStorage.upload(uploadRequest) 101 | 102 | process.stdout.write(`Uploaded ${ token.symbol } to ${ result.hash }\n`) 103 | 104 | return { 105 | ...token, 106 | logoURI: `ipfs://${result["hash"]}` 107 | } 108 | })) 109 | } else { 110 | // otherwise, use GitHub raw URLs 111 | process.stdout.write("No Fleek credentials found, using GitHub URLs rather than IPFS...\n") 112 | tokens = tokens.map((token) => ({ 113 | ...token, 114 | logoURI: token.logoURI ? token["logoURI"].replace( 115 | /^\.\./, 116 | "https://github.com/tallycash/token-list/raw/main" 117 | ) : undefined 118 | })) 119 | } 120 | 121 | const tokenlistTemplate = JSON.parse(fs.readFileSync(path.resolve(__dirname, "./../", "base.tokenlist.json")).toString()) 122 | 123 | fs.mkdirSync(path.resolve(__dirname, "../build/"), { recursive: true }) 124 | 125 | const outputFilename = path.resolve(__dirname, "../build/", "tallycash.tokenlist.json") 126 | 127 | const newTokenList = { 128 | ...tokenlistTemplate, 129 | tokens 130 | } 131 | 132 | const valid = tokenlistValidator(newTokenList) 133 | 134 | if (!valid) { 135 | process.stderr.write("Invalid token list, errors below:\n") 136 | for (const e of tokenlistValidator.errors) { 137 | process.stderr.write(`${JSON.stringify(e, undefined, 2)}\n`) 138 | } 139 | process.exit(EX_DATAERR) 140 | } 141 | 142 | // TODO set timestamp 143 | // TODO set version as version in package.json 144 | fs.writeFileSync(outputFilename, JSON.stringify(newTokenList, undefined, 2)) 145 | 146 | // if we can, upload token list to IPFS 147 | if(process.env.FLEEK_STORAGE_API_KEY && process.env.FLEEK_STORAGE_API_SECRET) { 148 | process.stdout.write("Uploading token list to IPFS...\n") 149 | const uploadRequest = { 150 | apiKey: process.env.FLEEK_STORAGE_API_KEY, 151 | apiSecret: process.env.FLEEK_STORAGE_API_SECRET, 152 | key: `tallycash.tokenlist.json`, 153 | data: fs.readFileSync(outputFilename), 154 | } 155 | const result = await fleekStorage.upload(uploadRequest) 156 | 157 | process.stdout.write(`Uploaded list to ${ result.hash }\n`) 158 | } 159 | }) 160 | --------------------------------------------------------------------------------