Remove pairs from EVM chain tokelists.json (#17637)

* Remove pairs from EVM chain tokelists.json

* Add tokenlist-extended.json

* Add command for adding token to tokenlist-extended.json

* Remove empty pairs

* Update config namings

* Add command for adding token to tokenlist.json

* Update config and file namings

* Update tokenlist-extended.json

* Add token info getting

* Fix

* Fix

* Add duplicates check

* Add duplicate check in token list

* Update commands.go

Co-authored-by: Viktor Radchenko <1641795+vikmeup@users.noreply.github.com>
This commit is contained in:
daniel 2022-01-28 02:59:22 +03:00 committed by GitHub
parent 878bd0e062
commit ed272b256d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 726 additions and 1643 deletions

View File

@ -1,14 +1,17 @@
app:
log_level: debug
log_level: "debug"
client_urls:
binance:
dex: https://dex.binance.org
explorer: https://explorer.binance.org
assets_manager_api: "https://assets-manager-api.herokuapp.com"
dex: "https://dex.binance.org"
explorer: "https://explorer.binance.org"
assets_manager_api: "https://api.assets.trustwallet.com"
urls:
tw_assets_app: https://assets.trustwalletapp.com
assets_app: "https://assets.trustwalletapp.com"
logo: "https://trustwallet.com/assets/images/favicon.png"
time_format: "2006-01-02T15:04:05.000000"
validators_settings:
root_folder:
@ -45,6 +48,7 @@ validators_settings:
allowed_files:
- "assets"
- "tokenlist.json"
- "tokenlist-extended.json"
- "validators"
- "info"

View File

@ -48,4 +48,10 @@ update-manual:
# Helper commands.
add-token:
go run cmd/main.go add-token $(token)
go run cmd/main.go add-token $(asset_id)
add-tokenlist:
go run cmd/main.go add-tokenlist $(asset_id)
add-tokenlist-extended:
go run cmd/main.go add-tokenlist-extended $(asset_id)

View File

@ -47,7 +47,9 @@ There are several scripts available for maintainers:
- `make check` -- Execute validation checks; also used in continuous integration.
- `make fix` -- Perform automatic fixes where possible
- `make update-auto` -- Run automatic updates from external sources, executed regularly (GitHub action)
- `make add-token token=c60_t0x4Fabb145d64652a948d72533023f6E7A623C7C53` -- Create `info.json` file as asset template.
- `make add-token asset_id=c60_t0x4Fabb145d64652a948d72533023f6E7A623C7C53` -- Create `info.json` file as asset template.
- `make add-tokenlist asset_id=c60_t0x4Fabb145d64652a948d72533023f6E7A623C7C53` -- Adds a token to tokenlist.json.
- `make add-tokenlist-extended asset_id=c60_t0x4Fabb145d64652a948d72533023f6E7A623C7C53` -- Adds a token to tokenlist-extended.json.
## On Checks

View File

@ -0,0 +1,30 @@
{
"name": "Trust Wallet: Ethereum Extended List",
"logoURI": "https://trustwallet.com/assets/images/favicon.png",
"timestamp": "2022-01-27T14:33:26.183301",
"tokens": [
{
"asset": "c60_t0x8E870D67F660D95d5be530380D0eC0bd388289E1",
"type": "ERC20",
"address": "0x8E870D67F660D95d5be530380D0eC0bd388289E1",
"name": "Pax Dollar",
"symbol": "USDP",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/ethereum/assets/0x8E870D67F660D95d5be530380D0eC0bd388289E1/logo.png"
},
{
"asset": "c60_t0xa47c8bf37f92aBed4A126BDA807A7b7498661acD",
"type": "ERC20",
"address": "0xa47c8bf37f92aBed4A126BDA807A7b7498661acD",
"name": "UST Token",
"symbol": "UST",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/ethereum/assets/0xa47c8bf37f92aBed4A126BDA807A7b7498661acD/logo.png"
}
],
"version": {
"major": 6,
"minor": 0,
"patch": 0
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,12 @@
{
"name": "Trust Wallet: Polygon Extended List",
"logoURI": "https://trustwallet.com/assets/images/favicon.png",
"timestamp": "2022-01-27T14:33:26.183301",
"tokens": [
],
"version": {
"major": 1,
"minor": 0,
"patch": 0
}
}

View File

@ -10,30 +10,7 @@
"name": "Wrapped Ether",
"symbol": "WETH",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619/logo.png",
"pairs": [
{
"base": "c966_t0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"
},
{
"base": "c966_t0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"
},
{
"base": "c966_t0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39"
},
{
"base": "c966_t0x831753DD7087CaC61aB5644b308642cc1c33Dc13"
},
{
"base": "c966_t0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063"
},
{
"base": "c966_t0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
},
{
"base": "c966_t0xD6DF932A45C0f255f85145f286eA0b292B21C90B"
}
]
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619/logo.png"
},
{
"asset": "c966_t0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",
@ -42,21 +19,7 @@
"name": "Wrapped MATIC",
"symbol": "WMATIC",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270/logo.png",
"pairs": [
{
"base": "c966_t0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"
},
{
"base": "c966_t0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619"
},
{
"base": "c966_t0x831753DD7087CaC61aB5644b308642cc1c33Dc13"
},
{
"base": "c966_t0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
}
]
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270/logo.png"
},
{
"asset": "c966_t0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
@ -65,18 +28,7 @@
"name": "USD Coin (PoS)",
"symbol": "USDC",
"decimals": 6,
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174/logo.png",
"pairs": [
{
"base": "c966_t0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"
},
{
"base": "c966_t0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619"
},
{
"base": "c966_t0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
}
]
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174/logo.png"
},
{
"asset": "c966_t0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
@ -85,18 +37,7 @@
"name": "(PoS) Tether USD",
"symbol": "USDT",
"decimals": 6,
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0xc2132D05D31c914a87C6611C10748AEb04B58e8F/logo.png",
"pairs": [
{
"base": "c966_t0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"
},
{
"base": "c966_t0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"
},
{
"base": "c966_t0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619"
}
]
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0xc2132D05D31c914a87C6611C10748AEb04B58e8F/logo.png"
},
{
"asset": "c966_t0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",
@ -105,12 +46,7 @@
"name": "(PoS) Dai Stablecoin",
"symbol": "DAI",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063/logo.png",
"pairs": [
{
"base": "c966_t0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619"
}
]
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063/logo.png"
},
{
"asset": "c966_t0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39",
@ -119,8 +55,7 @@
"name": "ChainLink Token",
"symbol": "LINK",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39/logo.png"
},
{
"asset": "c966_t0x831753DD7087CaC61aB5644b308642cc1c33Dc13",
@ -129,8 +64,7 @@
"name": "QuickSwap",
"symbol": "QUICK",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0x831753DD7087CaC61aB5644b308642cc1c33Dc13/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0x831753DD7087CaC61aB5644b308642cc1c33Dc13/logo.png"
},
{
"asset": "c966_t0xD6DF932A45C0f255f85145f286eA0b292B21C90B",
@ -139,8 +73,7 @@
"name": "Aave (PoS)",
"symbol": "AAVE",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0xD6DF932A45C0f255f85145f286eA0b292B21C90B/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/polygon/assets/0xD6DF932A45C0f255f85145f286eA0b292B21C90B/logo.png"
}
],
"version": {

View File

@ -0,0 +1,13 @@
{
"name": "Trust Wallet: SmartChain Extended List",
"logoURI": "https://trustwallet.com/assets/images/favicon.png",
"timestamp": "2022-01-27T14:33:26.183301",
"tokens": [
],
"version": {
"major": 1,
"minor": 0,
"patch": 0
}
}

View File

@ -11,180 +11,7 @@
"name": "Wrapped BNB",
"symbol": "WBNB",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c/logo.png",
"pairs": [
{
"base": "c20000714_t0x0D8Ce2A99Bb6e3B7Db580eD848240e4a0F9aE153"
},
{
"base": "c20000714_t0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82"
},
{
"base": "c20000714_t0x0Eb3a705fc54725037CC9e008bDede697f62F335"
},
{
"base": "c20000714_t0x16939ef78684453bfDFb47825F8a5F714f12623a"
},
{
"base": "c20000714_t0x190b589cf9Fb8DDEabBFeae36a813FFb2A702454"
},
{
"base": "c20000714_t0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3"
},
{
"base": "c20000714_t0x1D2F0da169ceB9fC7B3144628dB156f3F6c60dBE"
},
{
"base": "c20000714_t0x2090c8295769791ab7A3CF1CC6e0AA19F35e441A"
},
{
"base": "c20000714_t0x2170Ed0880ac9A755fd29B2688956BD959F933F8"
},
{
"base": "c20000714_t0x23396cF899Ca06c4472205fC903bDB4de249D6fC"
},
{
"base": "c20000714_t0x233d91A0713155003fc4DcE0AFa871b508B3B715"
},
{
"base": "c20000714_t0x3aabCf53A1930A42E18D938C019E83Ebee50a849"
},
{
"base": "c20000714_t0x3EE2200Efb3400fAbB9AacF31297cBdD1d435D47"
},
{
"base": "c20000714_t0x4197C6EF3879a08cD51e5560da5064B773aa1d29"
},
{
"base": "c20000714_t0x4338665CBB7B2485A8855A139b75D5e34AB0DB94"
},
{
"base": "c20000714_t0x44754455564474A89358B2C2265883DF993b12F0"
},
{
"base": "c20000714_t0x47BEAd2563dCBf3bF2c9407fEa4dC236fAbA485A"
},
{
"base": "c20000714_t0x4B0F1812e5Df2A09796481Ff14017e6005508003"
},
{
"base": "c20000714_t0x55d398326f99059fF775485246999027B3197955"
},
{
"base": "c20000714_t0x56b6fB708fC5732DEC1Afc8D8556423A2EDcCbD6"
},
{
"base": "c20000714_t0x5Ac52EE5b2a633895292Ff6d8A89bB9190451587"
},
{
"base": "c20000714_t0x63870A18B6e42b01Ef1Ad8A2302ef50B7132054F"
},
{
"base": "c20000714_t0x67ee3Cb086F8a16f34beE3ca72FAD36F7Db929e2"
},
{
"base": "c20000714_t0x6c5FE6e99D2484db7E4BF34F365ABA42d0E4dC20"
},
{
"base": "c20000714_t0x7083609fCE4d1d8Dc0C979AAb8c869Ea2C873402"
},
{
"base": "c20000714_t0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c"
},
{
"base": "c20000714_t0x728C5baC3C3e370E372Fc4671f9ef6916b814d8B"
},
{
"base": "c20000714_t0x72fAa679E1008Ad8382959FF48E392042A8b06f7"
},
{
"base": "c20000714_t0x78650B139471520656b9E7aA7A5e9276814a38e9"
},
{
"base": "c20000714_t0x790Be81C3cA0e53974bE2688cDb954732C9862e1"
},
{
"base": "c20000714_t0x7979F6C54ebA05E18Ded44C4F986F49a5De551c2"
},
{
"base": "c20000714_t0x7F70642d88cf1C4a3a7abb072B53B929b653edA5"
},
{
"base": "c20000714_t0x81859801b01764D4f0Fa5E64729f5a6C3b91435b"
},
{
"base": "c20000714_t0x88f1A5ae2A3BF98AEAF342D26B30a79438c9142e"
},
{
"base": "c20000714_t0x8fF795a6F4D97E7887C79beA79aba5cc76444aDf"
},
{
"base": "c20000714_t0x928e55daB735aa8260AF3cEDadA18B5f70C72f1b"
},
{
"base": "c20000714_t0x948d2a81086A075b3130BAc19e4c6DEe1D2E3fE8"
},
{
"base": "c20000714_t0xa184088a740c695E156F91f5cC086a06bb78b827"
},
{
"base": "c20000714_t0xa1faa113cbE53436Df28FF0aEe54275c13B40975"
},
{
"base": "c20000714_t0xa2B726B1145A4773F68593CF171187d8EBe4d495"
},
{
"base": "c20000714_t0xA8c2B8eec3d368C0253ad3dae65a5F2BBB89c929"
},
{
"base": "c20000714_t0xAD6cAEb32CD2c308980a548bD0Bc5AA4306c6c18"
},
{
"base": "c20000714_t0xb59490aB09A0f526Cc7305822aC65f2Ab12f9723"
},
{
"base": "c20000714_t0xBf5140A22578168FD562DCcF235E5D43A02ce9B1"
},
{
"base": "c20000714_t0xbF7c81FFF98BbE61B40Ed186e4AfD6DDd01337fe"
},
{
"base": "c20000714_t0xC7d8D35EBA58a0935ff2D5a33Df105DD9f071731"
},
{
"base": "c20000714_t0xC9849E6fdB743d08fAeE3E34dd2D1bc69EA11a51"
},
{
"base": "c20000714_t0xCa3F508B8e4Dd382eE878A314789373D80A5190A"
},
{
"base": "c20000714_t0xcc2E12a9b5b75360c6FBf23B584c275D52cDdb0E"
},
{
"base": "c20000714_t0xcF6BB5389c92Bdda8a3747Ddb454cB7a64626C63"
},
{
"base": "c20000714_t0xD41FDb03Ba84762dD66a0af1a6C8540FF1ba5dfb"
},
{
"base": "c20000714_t0xE40255C5d7fa7ceEc5120408C78C787CECB4cfdb"
},
{
"base": "c20000714_t0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56"
},
{
"base": "c20000714_t0xF21768cCBC73Ea5B6fd3C687208a7c2def2d966e"
},
{
"base": "c20000714_t0xf79037F6f6bE66832DE4E7516be52826BC3cBcc4"
},
{
"base": "c20000714_t0xF8A0BF9cF54Bb92F17374d9e9A321E6a111a51bD"
},
{
"base": "c20000714_t0xF952Fc3ca7325Cc27D15885d37117676d25BfdA6"
}
]
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c/logo.png"
},
{
"chainId": 56,
@ -194,8 +21,7 @@
"name": "Jupiter",
"symbol": "bwJUP",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0231f91e02DebD20345Ae8AB7D71A41f8E140cE7/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0231f91e02DebD20345Ae8AB7D71A41f8E140cE7/logo.png"
},
{
"asset": "c20000714_t0x0D8Ce2A99Bb6e3B7Db580eD848240e4a0F9aE153",
@ -204,8 +30,7 @@
"name": "Binance-Peg Filecoin",
"symbol": "FIL",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0D8Ce2A99Bb6e3B7Db580eD848240e4a0F9aE153/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0D8Ce2A99Bb6e3B7Db580eD848240e4a0F9aE153/logo.png"
},
{
"chainId": 56,
@ -215,8 +40,7 @@
"name": "PancakeSwap Token",
"symbol": "CAKE",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82/logo.png"
},
{
"asset": "c20000714_t0x0Eb3a705fc54725037CC9e008bDede697f62F335",
@ -225,8 +49,7 @@
"name": "Binance-Peg Cosmos Token",
"symbol": "ATOM",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0Eb3a705fc54725037CC9e008bDede697f62F335/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x0Eb3a705fc54725037CC9e008bDede697f62F335/logo.png"
},
{
"asset": "c20000714_t0x16939ef78684453bfDFb47825F8a5F714f12623a",
@ -235,8 +58,7 @@
"name": "Binance-Peg Tezos Token",
"symbol": "XTZ",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x16939ef78684453bfDFb47825F8a5F714f12623a/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x16939ef78684453bfDFb47825F8a5F714f12623a/logo.png"
},
{
"asset": "c20000714_t0x190b589cf9Fb8DDEabBFeae36a813FFb2A702454",
@ -245,8 +67,7 @@
"name": "bDollar",
"symbol": "BDO",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x190b589cf9Fb8DDEabBFeae36a813FFb2A702454/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x190b589cf9Fb8DDEabBFeae36a813FFb2A702454/logo.png"
},
{
"chainId": 56,
@ -256,8 +77,7 @@
"name": "Binance-Peg Dai Token",
"symbol": "DAI",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3/logo.png"
},
{
"asset": "c20000714_t0x1D2F0da169ceB9fC7B3144628dB156f3F6c60dBE",
@ -266,8 +86,7 @@
"name": "Binance-Peg XRP Token",
"symbol": "XRP",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x1D2F0da169ceB9fC7B3144628dB156f3F6c60dBE/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x1D2F0da169ceB9fC7B3144628dB156f3F6c60dBE/logo.png"
},
{
"asset": "c20000714_t0x2090c8295769791ab7A3CF1CC6e0AA19F35e441A",
@ -276,8 +95,7 @@
"name": "Fuel Token",
"symbol": "Fuel",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x2090c8295769791ab7A3CF1CC6e0AA19F35e441A/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x2090c8295769791ab7A3CF1CC6e0AA19F35e441A/logo.png"
},
{
"chainId": 56,
@ -287,8 +105,7 @@
"name": "Binance-Peg Ethereum",
"symbol": "ETH",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x2170Ed0880ac9A755fd29B2688956BD959F933F8/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x2170Ed0880ac9A755fd29B2688956BD959F933F8/logo.png"
},
{
"asset": "c20000714_t0x23396cF899Ca06c4472205fC903bDB4de249D6fC",
@ -297,8 +114,7 @@
"name": "Wrapped UST Token",
"symbol": "UST",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x23396cF899Ca06c4472205fC903bDB4de249D6fC/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x23396cF899Ca06c4472205fC903bDB4de249D6fC/logo.png"
},
{
"asset": "c20000714_t0x233d91A0713155003fc4DcE0AFa871b508B3B715",
@ -307,8 +123,7 @@
"name": "Ditto",
"symbol": "DITTO",
"decimals": 9,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x233d91A0713155003fc4DcE0AFa871b508B3B715/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x233d91A0713155003fc4DcE0AFa871b508B3B715/logo.png"
},
{
"asset": "c20000714_t0x37Ac4D6140e54304D77437A5c11924f61a2D976f",
@ -317,8 +132,7 @@
"name": "SparkPoint Fuel",
"symbol": "SFUEL",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x37Ac4D6140e54304D77437A5c11924f61a2D976f/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x37Ac4D6140e54304D77437A5c11924f61a2D976f/logo.png"
},
{
"asset": "c20000714_t0x3aabCf53A1930A42E18D938C019E83Ebee50a849",
@ -327,8 +141,7 @@
"name": "SPONGE",
"symbol": "SPG",
"decimals": 9,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x3aabCf53A1930A42E18D938C019E83Ebee50a849/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x3aabCf53A1930A42E18D938C019E83Ebee50a849/logo.png"
},
{
"asset": "c20000714_t0x3EE2200Efb3400fAbB9AacF31297cBdD1d435D47",
@ -337,8 +150,7 @@
"name": "Binance-Peg Cardano Token",
"symbol": "ADA",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x3EE2200Efb3400fAbB9AacF31297cBdD1d435D47/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x3EE2200Efb3400fAbB9AacF31297cBdD1d435D47/logo.png"
},
{
"asset": "c20000714_t0x4197C6EF3879a08cD51e5560da5064B773aa1d29",
@ -347,8 +159,7 @@
"name": "ACryptoS",
"symbol": "ACS",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x4197C6EF3879a08cD51e5560da5064B773aa1d29/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x4197C6EF3879a08cD51e5560da5064B773aa1d29/logo.png"
},
{
"asset": "c20000714_t0x4338665CBB7B2485A8855A139b75D5e34AB0DB94",
@ -357,8 +168,7 @@
"name": "Binance-Peg Litecoin Token",
"symbol": "LTC",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x4338665CBB7B2485A8855A139b75D5e34AB0DB94/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x4338665CBB7B2485A8855A139b75D5e34AB0DB94/logo.png"
},
{
"asset": "c20000714_t0x44754455564474A89358B2C2265883DF993b12F0",
@ -367,8 +177,7 @@
"name": "ZeroSwapToken",
"symbol": "ZEE",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x44754455564474A89358B2C2265883DF993b12F0/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x44754455564474A89358B2C2265883DF993b12F0/logo.png"
},
{
"asset": "c20000714_t0x47BEAd2563dCBf3bF2c9407fEa4dC236fAbA485A",
@ -377,8 +186,7 @@
"name": "Swipe",
"symbol": "SXP",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x47BEAd2563dCBf3bF2c9407fEa4dC236fAbA485A/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x47BEAd2563dCBf3bF2c9407fEa4dC236fAbA485A/logo.png"
},
{
"chainId": 56,
@ -388,8 +196,7 @@
"name": "Trust Wallet",
"symbol": "TWT",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x4B0F1812e5Df2A09796481Ff14017e6005508003/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x4B0F1812e5Df2A09796481Ff14017e6005508003/logo.png"
},
{
"chainId": 56,
@ -399,8 +206,7 @@
"name": "VAI Stablecoin",
"symbol": "VAI",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x4BD17003473389A42DAF6a0a729f6Fdb328BbBd7/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x4BD17003473389A42DAF6a0a729f6Fdb328BbBd7/logo.png"
},
{
"chainId": 56,
@ -410,8 +216,7 @@
"name": "Binance-Peg BSC-USD",
"symbol": "USDT",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x55d398326f99059fF775485246999027B3197955/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x55d398326f99059fF775485246999027B3197955/logo.png"
},
{
"asset": "c20000714_t0x56b6fB708fC5732DEC1Afc8D8556423A2EDcCbD6",
@ -420,8 +225,7 @@
"name": "Binance-Peg EOS Token",
"symbol": "EOS",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x56b6fB708fC5732DEC1Afc8D8556423A2EDcCbD6/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x56b6fB708fC5732DEC1Afc8D8556423A2EDcCbD6/logo.png"
},
{
"asset": "c20000714_t0x5Ac52EE5b2a633895292Ff6d8A89bB9190451587",
@ -430,8 +234,7 @@
"name": "BSCX",
"symbol": "BSCX",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x5Ac52EE5b2a633895292Ff6d8A89bB9190451587/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x5Ac52EE5b2a633895292Ff6d8A89bB9190451587/logo.png"
},
{
"chainId": 56,
@ -441,8 +244,7 @@
"name": "BLinkToken",
"symbol": "BLINK",
"decimals": 6,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x63870A18B6e42b01Ef1Ad8A2302ef50B7132054F/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x63870A18B6e42b01Ef1Ad8A2302ef50B7132054F/logo.png"
},
{
"asset": "c20000714_t0x67ee3Cb086F8a16f34beE3ca72FAD36F7Db929e2",
@ -451,8 +253,7 @@
"name": "DODO",
"symbol": "DODO",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x67ee3Cb086F8a16f34beE3ca72FAD36F7Db929e2/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x67ee3Cb086F8a16f34beE3ca72FAD36F7Db929e2/logo.png"
},
{
"asset": "c20000714_t0x6c5FE6e99D2484db7E4BF34F365ABA42d0E4dC20",
@ -461,8 +262,7 @@
"name": "Absorber",
"symbol": "ABS",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x6c5FE6e99D2484db7E4BF34F365ABA42d0E4dC20/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x6c5FE6e99D2484db7E4BF34F365ABA42d0E4dC20/logo.png"
},
{
"asset": "c20000714_t0x7083609fCE4d1d8Dc0C979AAb8c869Ea2C873402",
@ -471,8 +271,7 @@
"name": "Binance-Peg Polkadot Token",
"symbol": "DOT",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x7083609fCE4d1d8Dc0C979AAb8c869Ea2C873402/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x7083609fCE4d1d8Dc0C979AAb8c869Ea2C873402/logo.png"
},
{
"chainId": 56,
@ -482,8 +281,7 @@
"name": "Binance-Peg BTCB Token",
"symbol": "BTCB",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c/logo.png"
},
{
"asset": "c20000714_t0x728C5baC3C3e370E372Fc4671f9ef6916b814d8B",
@ -492,8 +290,7 @@
"name": "UNFI",
"symbol": "UNFI",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x728C5baC3C3e370E372Fc4671f9ef6916b814d8B/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x728C5baC3C3e370E372Fc4671f9ef6916b814d8B/logo.png"
},
{
"asset": "c20000714_t0x72fAa679E1008Ad8382959FF48E392042A8b06f7",
@ -502,8 +299,7 @@
"name": "AllianceBlock Token",
"symbol": "bALBT",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x72fAa679E1008Ad8382959FF48E392042A8b06f7/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x72fAa679E1008Ad8382959FF48E392042A8b06f7/logo.png"
},
{
"asset": "c20000714_t0x78650B139471520656b9E7aA7A5e9276814a38e9",
@ -512,8 +308,7 @@
"name": "StandardBTCHashrateToken",
"symbol": "BTCST",
"decimals": 17,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x78650B139471520656b9E7aA7A5e9276814a38e9/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x78650B139471520656b9E7aA7A5e9276814a38e9/logo.png"
},
{
"asset": "c20000714_t0x790Be81C3cA0e53974bE2688cDb954732C9862e1",
@ -522,8 +317,7 @@
"name": "CafeSwap Token",
"symbol": "BREW",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x790Be81C3cA0e53974bE2688cDb954732C9862e1/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x790Be81C3cA0e53974bE2688cDb954732C9862e1/logo.png"
},
{
"asset": "c20000714_t0x7979F6C54ebA05E18Ded44C4F986F49a5De551c2",
@ -532,8 +326,7 @@
"name": "Kebab Token",
"symbol": "KEBAB",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x7979F6C54ebA05E18Ded44C4F986F49a5De551c2/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x7979F6C54ebA05E18Ded44C4F986F49a5De551c2/logo.png"
},
{
"asset": "c20000714_t0x7F70642d88cf1C4a3a7abb072B53B929b653edA5",
@ -542,8 +335,7 @@
"name": "Binance-Peg YFII.finance Token",
"symbol": "YFII",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x7F70642d88cf1C4a3a7abb072B53B929b653edA5/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x7F70642d88cf1C4a3a7abb072B53B929b653edA5/logo.png"
},
{
"asset": "c20000714_t0x81859801b01764D4f0Fa5E64729f5a6C3b91435b",
@ -552,8 +344,7 @@
"name": "bearn.fi",
"symbol": "BFI",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x81859801b01764D4f0Fa5E64729f5a6C3b91435b/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x81859801b01764D4f0Fa5E64729f5a6C3b91435b/logo.png"
},
{
"asset": "c20000714_t0x88f1A5ae2A3BF98AEAF342D26B30a79438c9142e",
@ -562,8 +353,7 @@
"name": "Binance-Peg yearn.finance",
"symbol": "YFI",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x88f1A5ae2A3BF98AEAF342D26B30a79438c9142e/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x88f1A5ae2A3BF98AEAF342D26B30a79438c9142e/logo.png"
},
{
"asset": "c20000714_t0x8fF795a6F4D97E7887C79beA79aba5cc76444aDf",
@ -572,8 +362,7 @@
"name": "Binance-Peg Bitcoin Cash Token",
"symbol": "BCH",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x8fF795a6F4D97E7887C79beA79aba5cc76444aDf/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x8fF795a6F4D97E7887C79beA79aba5cc76444aDf/logo.png"
},
{
"asset": "c20000714_t0x928e55daB735aa8260AF3cEDadA18B5f70C72f1b",
@ -582,8 +371,7 @@
"name": "Frontier Token",
"symbol": "FRONT",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x928e55daB735aa8260AF3cEDadA18B5f70C72f1b/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x928e55daB735aa8260AF3cEDadA18B5f70C72f1b/logo.png"
},
{
"asset": "c20000714_t0x948d2a81086A075b3130BAc19e4c6DEe1D2E3fE8",
@ -592,8 +380,7 @@
"name": "Helmet.insure Governance Token",
"symbol": "Helmet",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x948d2a81086A075b3130BAc19e4c6DEe1D2E3fE8/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x948d2a81086A075b3130BAc19e4c6DEe1D2E3fE8/logo.png"
},
{
"asset": "c20000714_t0x97a30C692eCe9C317235d48287d23d358170FC40",
@ -602,8 +389,7 @@
"name": "CryptEx Token",
"symbol": "CRX",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x97a30C692eCe9C317235d48287d23d358170FC40/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x97a30C692eCe9C317235d48287d23d358170FC40/logo.png"
},
{
"asset": "c20000714_t0xa184088a740c695E156F91f5cC086a06bb78b827",
@ -612,8 +398,7 @@
"name": "AUTOv2",
"symbol": "AUTO",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xa184088a740c695E156F91f5cC086a06bb78b827/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xa184088a740c695E156F91f5cC086a06bb78b827/logo.png"
},
{
"chainId": 56,
@ -623,8 +408,7 @@
"name": "Alpha Finance",
"symbol": "ALPHA",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xa1faa113cbE53436Df28FF0aEe54275c13B40975/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xa1faa113cbE53436Df28FF0aEe54275c13B40975/logo.png"
},
{
"chainId": 56,
@ -634,8 +418,7 @@
"name": "Injective Protocol",
"symbol": "INJ",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xa2B726B1145A4773F68593CF171187d8EBe4d495/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xa2B726B1145A4773F68593CF171187d8EBe4d495/logo.png"
},
{
"chainId": 56,
@ -645,8 +428,7 @@
"name": "CertiK Token",
"symbol": "CTK",
"decimals": 6,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xA8c2B8eec3d368C0253ad3dae65a5F2BBB89c929/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xA8c2B8eec3d368C0253ad3dae65a5F2BBB89c929/logo.png"
},
{
"asset": "c20000714_t0xAD6cAEb32CD2c308980a548bD0Bc5AA4306c6c18",
@ -655,8 +437,7 @@
"name": "Binance-Peg Band Protocol Token",
"symbol": "BAND",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xAD6cAEb32CD2c308980a548bD0Bc5AA4306c6c18/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xAD6cAEb32CD2c308980a548bD0Bc5AA4306c6c18/logo.png"
},
{
"asset": "c20000714_t0xb59490aB09A0f526Cc7305822aC65f2Ab12f9723",
@ -665,8 +446,7 @@
"name": "Litentry",
"symbol": "LIT",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xb59490aB09A0f526Cc7305822aC65f2Ab12f9723/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xb59490aB09A0f526Cc7305822aC65f2Ab12f9723/logo.png"
},
{
"chainId": 56,
@ -676,8 +456,7 @@
"name": "Binance-Peg Uniswap",
"symbol": "UNI",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xBf5140A22578168FD562DCcF235E5D43A02ce9B1/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xBf5140A22578168FD562DCcF235E5D43A02ce9B1/logo.png"
},
{
"asset": "c20000714_t0xbF7c81FFF98BbE61B40Ed186e4AfD6DDd01337fe",
@ -686,8 +465,7 @@
"name": "Binance-Peg Elrond",
"symbol": "EGLD",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xbF7c81FFF98BbE61B40Ed186e4AfD6DDd01337fe/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xbF7c81FFF98BbE61B40Ed186e4AfD6DDd01337fe/logo.png"
},
{
"asset": "c20000714_t0xC7d8D35EBA58a0935ff2D5a33Df105DD9f071731",
@ -696,8 +474,7 @@
"name": "Hedget",
"symbol": "HGET",
"decimals": 6,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xC7d8D35EBA58a0935ff2D5a33Df105DD9f071731/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xC7d8D35EBA58a0935ff2D5a33Df105DD9f071731/logo.png"
},
{
"asset": "c20000714_t0xC7FB8c5eFE8564205eE5CbA4dE8eeA8a086a4bd2",
@ -706,8 +483,7 @@
"name": "PocketRocket",
"symbol": "POCROC",
"decimals": 9,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xC7FB8c5eFE8564205eE5CbA4dE8eeA8a086a4bd2/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xC7FB8c5eFE8564205eE5CbA4dE8eeA8a086a4bd2/logo.png"
},
{
"asset": "c20000714_t0xC9849E6fdB743d08fAeE3E34dd2D1bc69EA11a51",
@ -716,8 +492,7 @@
"name": "Bunny Token",
"symbol": "BUNNY",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xC9849E6fdB743d08fAeE3E34dd2D1bc69EA11a51/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xC9849E6fdB743d08fAeE3E34dd2D1bc69EA11a51/logo.png"
},
{
"chainId": 56,
@ -727,8 +502,7 @@
"name": "beefy.finance",
"symbol": "BIFI",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xCa3F508B8e4Dd382eE878A314789373D80A5190A/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xCa3F508B8e4Dd382eE878A314789373D80A5190A/logo.png"
},
{
"asset": "c20000714_t0xcc2E12a9b5b75360c6FBf23B584c275D52cDdb0E",
@ -737,8 +511,7 @@
"name": "Crow Token",
"symbol": "CROW",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xcc2E12a9b5b75360c6FBf23B584c275D52cDdb0E/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xcc2E12a9b5b75360c6FBf23B584c275D52cDdb0E/logo.png"
},
{
"chainId": 56,
@ -748,8 +521,7 @@
"name": "Venus",
"symbol": "XVS",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xcF6BB5389c92Bdda8a3747Ddb454cB7a64626C63/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xcF6BB5389c92Bdda8a3747Ddb454cB7a64626C63/logo.png"
},
{
"asset": "c20000714_t0xD41FDb03Ba84762dD66a0af1a6C8540FF1ba5dfb",
@ -758,8 +530,7 @@
"name": "SafePal Token",
"symbol": "SFP",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xD41FDb03Ba84762dD66a0af1a6C8540FF1ba5dfb/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xD41FDb03Ba84762dD66a0af1a6C8540FF1ba5dfb/logo.png"
},
{
"asset": "c20000714_t0xE40255C5d7fa7ceEc5120408C78C787CECB4cfdb",
@ -768,8 +539,7 @@
"name": "SWGb",
"symbol": "SWGb",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xE40255C5d7fa7ceEc5120408C78C787CECB4cfdb/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xE40255C5d7fa7ceEc5120408C78C787CECB4cfdb/logo.png"
},
{
"chainId": 56,
@ -779,8 +549,7 @@
"name": "Binance-Peg BUSD",
"symbol": "BUSD",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56/logo.png"
},
{
"asset": "c20000714_t0x9798dF2f5d213a872c787bD03b2b91F54D0D04A1",
@ -789,8 +558,7 @@
"name": "TeraBlock Token",
"symbol": "TBC",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x9798dF2f5d213a872c787bD03b2b91F54D0D04A1/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0x9798dF2f5d213a872c787bD03b2b91F54D0D04A1/logo.png"
},
{
"asset": "c20000714_t0xF21768cCBC73Ea5B6fd3C687208a7c2def2d966e",
@ -799,8 +567,7 @@
"name": "Reef.finance",
"symbol": "REEF",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xF21768cCBC73Ea5B6fd3C687208a7c2def2d966e/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xF21768cCBC73Ea5B6fd3C687208a7c2def2d966e/logo.png"
},
{
"chainId": 56,
@ -810,8 +577,7 @@
"name": "Hard Protocol",
"symbol": "HARD",
"decimals": 6,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xf79037F6f6bE66832DE4E7516be52826BC3cBcc4/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xf79037F6f6bE66832DE4E7516be52826BC3cBcc4/logo.png"
},
{
"asset": "c20000714_t0xF8A0BF9cF54Bb92F17374d9e9A321E6a111a51bD",
@ -820,8 +586,7 @@
"name": "Binance-Peg ChainLink",
"symbol": "LINK",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xF8A0BF9cF54Bb92F17374d9e9A321E6a111a51bD/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xF8A0BF9cF54Bb92F17374d9e9A321E6a111a51bD/logo.png"
},
{
"asset": "c20000714_t0xF952Fc3ca7325Cc27D15885d37117676d25BfdA6",
@ -830,8 +595,7 @@
"name": "Goose Golden Egg",
"symbol": "EGG",
"decimals": 18,
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xF952Fc3ca7325Cc27D15885d37117676d25BfdA6/logo.png",
"pairs": []
"logoURI": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xF952Fc3ca7325Cc27D15885d37117676d25BfdA6/logo.png"
}
],
"version": {

4
go.mod
View File

@ -5,8 +5,8 @@ go 1.17
require (
github.com/sirupsen/logrus v1.8.1
github.com/spf13/cobra v1.3.0
github.com/trustwallet/assets-go-libs v0.0.30
github.com/trustwallet/go-libs v0.2.24
github.com/trustwallet/assets-go-libs v0.0.35
github.com/trustwallet/go-libs v0.2.26
github.com/trustwallet/go-primitives v0.0.24
)

8
go.sum
View File

@ -340,10 +340,10 @@ github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5Cc
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
github.com/trustwallet/assets-go-libs v0.0.30 h1:KBxK9opl6PLg8fbnQ+NfOFO1ftdkytJGM3kUWPNOtOA=
github.com/trustwallet/assets-go-libs v0.0.30/go.mod h1:UzDwJQPNQ9MXfBJAYarlTKIh+KuGHfx94d9iT4Sk8Nc=
github.com/trustwallet/go-libs v0.2.24 h1:wte7oifZMkcuHO4Mbv7fJsKcGPpczXCRrnNvnpiuHSs=
github.com/trustwallet/go-libs v0.2.24/go.mod h1:7QdAp1lcteKKI0DYqGoaO8KO4eTNYjGmg8vHy0YXkKc=
github.com/trustwallet/assets-go-libs v0.0.35 h1:iOTjuFsXkmCAYhGxMu17zfL2pYUbsNac/zfwA+xGi24=
github.com/trustwallet/assets-go-libs v0.0.35/go.mod h1:O0lGt8p+ffhEbNDMLSuuYBBAnNUI7nSQIcHRjWBxbgo=
github.com/trustwallet/go-libs v0.2.26 h1:WpDc7X23EQwdrMRZ1JqXWXUk15+8pfej4pTt/3hBIJo=
github.com/trustwallet/go-libs v0.2.26/go.mod h1:7QdAp1lcteKKI0DYqGoaO8KO4eTNYjGmg8vHy0YXkKc=
github.com/trustwallet/go-primitives v0.0.24 h1:C1QGcX3dRL7gS2miJvSrRT732zRjob1Gd4D4dJvVwq8=
github.com/trustwallet/go-primitives v0.0.24/go.mod h1:jLqd7rm+4EYG5JdpxhngM9HwbqfEXzKy/wK4vUB7STs=
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=

View File

@ -11,6 +11,7 @@ type (
App App `mapstructure:"app"`
ClientURLs ClientURLs `mapstructure:"client_urls"`
URLs URLs `mapstructure:"urls"`
TimeFormat string `mapstructure:"time_format"`
ValidatorsSettings ValidatorsSettings `mapstructure:"validators_settings"`
}
@ -27,7 +28,8 @@ type (
}
URLs struct {
TWAssetsApp string `mapstructure:"tw_assets_app"`
AssetsApp string `mapstructure:"assets_app"`
Logo string `mapstructure:"logo"`
}
ValidatorsSettings struct {

View File

@ -1,112 +1,137 @@
package manager
import (
"os"
"encoding/json"
"fmt"
"time"
libFile "github.com/trustwallet/assets-go-libs/file"
"github.com/trustwallet/assets-go-libs/path"
"github.com/trustwallet/assets-go-libs/validation/info"
"github.com/trustwallet/assets-go-libs/validation/tokenlist"
"github.com/trustwallet/go-primitives/asset"
"github.com/trustwallet/go-primitives/coin"
"github.com/trustwallet/go-primitives/types"
"github.com/trustwallet/assets/internal/config"
"github.com/trustwallet/assets/internal/file"
"github.com/trustwallet/assets/internal/processor"
"github.com/trustwallet/assets/internal/report"
"github.com/trustwallet/assets/internal/service"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)
var configPath, root string
func CreateAssetInfoJSONTemplate(token string) error {
c, tokenID, err := asset.ParseID(token)
if err != nil {
return fmt.Errorf("failed to parse token id: %v", err)
}
func InitCommands() {
rootCmd.Flags().StringVar(&configPath, "config", ".github/assets.config.yaml",
"config file (default is $HOME/.github/assets.config.yaml)")
rootCmd.Flags().StringVar(&root, "root", ".", "root path to files")
chain, ok := coin.Coins[c]
if !ok {
return fmt.Errorf("invalid token")
}
rootCmd.AddCommand(checkCmd)
rootCmd.AddCommand(fixCmd)
rootCmd.AddCommand(updateAutoCmd)
rootCmd.AddCommand(addTokenCmd)
assetInfoPath := path.GetAssetInfoPath(chain.Handle, tokenID)
var emptyStr string
var emptyInt int
assetInfoModel := info.AssetModel{
Name: &emptyStr,
Type: &emptyStr,
Symbol: &emptyStr,
Decimals: &emptyInt,
Website: &emptyStr,
Explorer: &emptyStr,
Status: &emptyStr,
ID: &tokenID,
Links: []info.Link{
{
Name: &emptyStr,
URL: &emptyStr,
},
},
Tags: []string{""},
}
bytes, err := json.Marshal(&assetInfoModel)
if err != nil {
return fmt.Errorf("failed to marshal json: %v", err)
}
f, err := libFile.CreateFileWithPath(assetInfoPath)
if err != nil {
return fmt.Errorf("failed to create file: %v", err)
}
defer f.Close()
_, err = f.Write(bytes)
if err != nil {
return fmt.Errorf("failed to write bytes to file")
}
err = libFile.FormatJSONFile(assetInfoPath)
if err != nil {
return fmt.Errorf("failed to format json file")
}
return nil
}
var (
rootCmd = &cobra.Command{
Use: "assets",
Short: "",
Long: "",
Run: func(cmd *cobra.Command, args []string) {},
}
checkCmd = &cobra.Command{
Use: "check",
Short: " Execute validation checks",
Run: func(cmd *cobra.Command, args []string) {
assetsService := InitAssetsService()
assetsService.RunJob(assetsService.Check)
},
}
fixCmd = &cobra.Command{
Use: "fix",
Short: "Perform automatic fixes where possible",
Run: func(cmd *cobra.Command, args []string) {
assetsService := InitAssetsService()
assetsService.RunJob(assetsService.Fix)
},
}
updateAutoCmd = &cobra.Command{
Use: "update-auto",
Short: "Run automatic updates from external sources",
Run: func(cmd *cobra.Command, args []string) {
assetsService := InitAssetsService()
assetsService.RunUpdateAuto()
},
}
addTokenCmd = &cobra.Command{
Use: "add-token",
Short: "Creates info.json template for the asset",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 1 {
log.Fatal("1 argument was expected")
}
err := CreateAssetInfoJSONTemplate(args[0])
if err != nil {
log.Fatalf("Can't create asset info json template: %v", err)
}
},
}
)
func InitAssetsService() *service.Service {
func AddTokenToTokenListJSON(chain coin.Coin, assetId, tokenID string, tokenListType path.TokenListType) error {
setup()
paths, err := file.ReadLocalFileStructure(root, config.Default.ValidatorsSettings.RootFolder.SkipFiles)
if err != nil {
log.WithError(err).Fatal("Failed to load file structure.")
// check for duplicates.
tokenListTypes := []path.TokenListType{path.TokenlistDefault, path.TokenlistExtended}
for _, t := range tokenListTypes {
tokenListPath := path.GetTokenListPath(chain.Handle, t)
var list tokenlist.Model
err := libFile.ReadJSONFile(tokenListPath, &list)
if err != nil {
return fmt.Errorf("failed to read data from %s: %w", tokenListPath, err)
}
for _, item := range list.Tokens {
if item.Asset == assetId {
return fmt.Errorf("duplicate asset, already exist in %s", tokenListPath)
}
}
}
fileService := file.NewService(paths...)
validatorsService := processor.NewService(fileService)
reportService := report.NewService()
var list tokenlist.Model
tokenListPath := path.GetTokenListPath(chain.Handle, tokenListType)
err := libFile.ReadJSONFile(tokenListPath, &list)
if err != nil {
return fmt.Errorf("failed to read data from %s: %w", tokenListPath, err)
}
return service.NewService(fileService, validatorsService, reportService, paths)
assetInfo, err := getAssetInfo(chain, tokenID)
if err != nil {
return fmt.Errorf("failed to get token info: %w", err)
}
newToken := tokenlist.Token{
Asset: assetId,
Type: types.TokenType(*assetInfo.Type),
Address: *assetInfo.ID,
Name: *assetInfo.Name,
Symbol: *assetInfo.Symbol,
Decimals: uint(*assetInfo.Decimals),
LogoURI: path.GetAssetLogoURL(config.Default.URLs.AssetsApp, chain.Handle, tokenID),
}
list.Tokens = append(list.Tokens, newToken)
return libFile.CreateJSONFile(tokenListPath, &tokenlist.Model{
Name: fmt.Sprintf("Trust Wallet: %s", coin.Coins[chain.ID].Name),
LogoURI: config.Default.URLs.Logo,
Timestamp: time.Now().Format(config.Default.TimeFormat),
Tokens: list.Tokens,
Version: tokenlist.Version{Major: list.Version.Major + 1},
})
}
func setup() {
if err := config.SetConfig(configPath); err != nil {
log.WithError(err).Fatal("Failed to set config.")
}
func getAssetInfo(chain coin.Coin, tokenID string) (*info.AssetModel, error) {
path := path.GetAssetInfoPath(chain.Handle, tokenID)
logLevel, err := log.ParseLevel(config.Default.App.LogLevel)
var assetModel info.AssetModel
err := libFile.ReadJSONFile(path, &assetModel)
if err != nil {
log.WithError(err).Fatal("Failed to parse log level.")
return nil, fmt.Errorf("failed to read data from info.json: %w", err)
}
log.SetLevel(logLevel)
}
// Execute adds all child commands to the root command and sets flags appropriately.
// This is called by main.main(). It only needs to happen once to the rootCmd.
func Execute() {
err := rootCmd.Execute()
if err != nil {
os.Exit(1)
}
return &assetModel, nil
}

View File

@ -1,69 +0,0 @@
package manager
import (
"encoding/json"
"fmt"
libFile "github.com/trustwallet/assets-go-libs/file"
"github.com/trustwallet/assets-go-libs/path"
"github.com/trustwallet/assets-go-libs/validation/info"
"github.com/trustwallet/go-primitives/asset"
"github.com/trustwallet/go-primitives/coin"
)
func CreateAssetInfoJSONTemplate(token string) error {
c, tokenID, err := asset.ParseID(token)
if err != nil {
return fmt.Errorf("failed to parse token id: %v", err)
}
chain, ok := coin.Coins[c]
if !ok {
return fmt.Errorf("invalid token")
}
assetInfoPath := path.GetAssetInfoPath(chain.Handle, tokenID)
var emptyStr string
var emptyInt int
assetInfoModel := info.AssetModel{
Name: &emptyStr,
Type: &emptyStr,
Symbol: &emptyStr,
Decimals: &emptyInt,
Website: &emptyStr,
Explorer: &emptyStr,
Status: &emptyStr,
ID: &tokenID,
Links: []info.Link{
{
Name: &emptyStr,
URL: &emptyStr,
},
},
Tags: []string{""},
}
bytes, err := json.Marshal(&assetInfoModel)
if err != nil {
return fmt.Errorf("failed to marshal json: %v", err)
}
f, err := libFile.CreateFileWithPath(assetInfoPath)
if err != nil {
return fmt.Errorf("failed to create file: %v", err)
}
defer f.Close()
_, err = f.Write(bytes)
if err != nil {
return fmt.Errorf("failed to write bytes to file")
}
err = libFile.FormatJSONFile(assetInfoPath)
if err != nil {
return fmt.Errorf("failed to format json file")
}
return nil
}

155
internal/manager/manager.go Normal file
View File

@ -0,0 +1,155 @@
package manager
import (
"os"
"github.com/trustwallet/assets-go-libs/path"
"github.com/trustwallet/go-primitives/asset"
"github.com/trustwallet/go-primitives/coin"
"github.com/trustwallet/assets/internal/config"
"github.com/trustwallet/assets/internal/file"
"github.com/trustwallet/assets/internal/processor"
"github.com/trustwallet/assets/internal/report"
"github.com/trustwallet/assets/internal/service"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)
var configPath, root string
func InitCommands() {
rootCmd.Flags().StringVar(&configPath, "config", ".github/assets.config.yaml",
"config file (default is $HOME/.github/assets.config.yaml)")
rootCmd.Flags().StringVar(&root, "root", ".", "root path to files")
rootCmd.AddCommand(checkCmd)
rootCmd.AddCommand(fixCmd)
rootCmd.AddCommand(updateAutoCmd)
rootCmd.AddCommand(addTokenCmd)
rootCmd.AddCommand(addTokenlistCmd)
rootCmd.AddCommand(addTokenlistExtendedCmd)
}
var (
rootCmd = &cobra.Command{
Use: "assets",
Short: "",
Long: "",
Run: func(cmd *cobra.Command, args []string) {},
}
checkCmd = &cobra.Command{
Use: "check",
Short: " Execute validation checks",
Run: func(cmd *cobra.Command, args []string) {
assetsService := InitAssetsService()
assetsService.RunJob(assetsService.Check)
},
}
fixCmd = &cobra.Command{
Use: "fix",
Short: "Perform automatic fixes where possible",
Run: func(cmd *cobra.Command, args []string) {
assetsService := InitAssetsService()
assetsService.RunJob(assetsService.Fix)
},
}
updateAutoCmd = &cobra.Command{
Use: "update-auto",
Short: "Run automatic updates from external sources",
Run: func(cmd *cobra.Command, args []string) {
assetsService := InitAssetsService()
assetsService.RunUpdateAuto()
},
}
addTokenCmd = &cobra.Command{
Use: "add-token",
Short: "Creates info.json template for the asset",
Run: func(cmd *cobra.Command, args []string) {
if len(args) != 1 {
log.Fatal("1 argument was expected")
}
err := CreateAssetInfoJSONTemplate(args[0])
if err != nil {
log.Fatalf("Can't create asset info json template: %v", err)
}
},
}
addTokenlistCmd = &cobra.Command{
Use: "add-tokenlist",
Short: "Adds token to tokenlist.json",
Run: func(cmd *cobra.Command, args []string) {
handleAddTokenList(args, path.TokenlistDefault)
},
}
addTokenlistExtendedCmd = &cobra.Command{
Use: "add-tokenlist-extended",
Short: "Adds token to tokenlist-extended.json",
Run: func(cmd *cobra.Command, args []string) {
handleAddTokenList(args, path.TokenlistExtended)
},
}
)
func handleAddTokenList(args []string, tokenlistType path.TokenListType) {
if len(args) != 1 {
log.Fatal("1 argument was expected")
}
c, tokenID, err := asset.ParseID(args[0])
if err != nil {
log.Fatalf("Can't parse token: %v", err)
}
chain, ok := coin.Coins[c]
if !ok {
log.Fatal("Invalid token")
}
err = AddTokenToTokenListJSON(chain, args[0], tokenID, tokenlistType)
if err != nil {
log.Fatalf("Can't add token: %v", err)
}
}
func InitAssetsService() *service.Service {
setup()
paths, err := file.ReadLocalFileStructure(root, config.Default.ValidatorsSettings.RootFolder.SkipFiles)
if err != nil {
log.WithError(err).Fatal("Failed to load file structure.")
}
fileService := file.NewService(paths...)
validatorsService := processor.NewService(fileService)
reportService := report.NewService()
return service.NewService(fileService, validatorsService, reportService, paths)
}
func setup() {
if err := config.SetConfig(configPath); err != nil {
log.WithError(err).Fatal("Failed to set config.")
}
logLevel, err := log.ParseLevel(config.Default.App.LogLevel)
if err != nil {
log.WithError(err).Fatal("Failed to parse log level.")
}
log.SetLevel(logLevel)
}
// Execute adds all child commands to the root command and sets flags appropriately.
// This is called by main.main(). It only needs to happen once to the rootCmd.
func Execute() {
err := rootCmd.Execute()
if err != nil {
os.Exit(1)
}
}

View File

@ -1,9 +1,9 @@
package processor
import (
assetsmanager "github.com/trustwallet/assets-go-libs/client/assets-manager"
"github.com/trustwallet/assets/internal/config"
"github.com/trustwallet/assets/internal/file"
assetsmanager "github.com/trustwallet/go-libs/client/api/assets-manager"
)
type Service struct {

View File

@ -32,9 +32,6 @@ const (
marketPairsLimit = 1000
tokensListLimit = 10000
twLogoURL = "https://trustwallet.com/assets/images/favicon.png"
timestampFormat = "2006-01-02T15:04:05.000000"
activeStatus = "active"
)
@ -139,7 +136,7 @@ func createInfoJSON(chain coin.Coin, a explorer.Bep2Asset) error {
}
func createTokenListJSON(chain coin.Coin, tokens []tokenlist.Token) error {
tokenListPath := path.GetTokenListPath(chain.Handle)
tokenListPath := path.GetTokenListPath(chain.Handle, path.TokenlistDefault)
var oldTokenList tokenlist.Model
err := fileLib.ReadJSONFile(tokenListPath, &oldTokenList)
@ -160,8 +157,8 @@ func createTokenListJSON(chain coin.Coin, tokens []tokenlist.Token) error {
return fileLib.CreateJSONFile(tokenListPath, &tokenlist.Model{
Name: fmt.Sprintf("Trust Wallet: %s", coin.Coins[chain.ID].Name),
LogoURI: twLogoURL,
Timestamp: time.Now().Format(timestampFormat),
LogoURI: config.Default.URLs.Logo,
Timestamp: time.Now().Format(config.Default.TimeFormat),
Tokens: tokens,
Version: tokenlist.Version{Major: oldTokenList.Version.Major + 1},
})
@ -315,8 +312,8 @@ func getTokenType(symbol string, nativeCoinSymbol string, tokenType types.TokenT
func getLogoURI(id, githubChainFolder, nativeCoinSymbol string) string {
if id == nativeCoinSymbol {
return path.GetChainLogoURL(config.Default.URLs.TWAssetsApp, githubChainFolder)
return path.GetChainLogoURL(config.Default.URLs.AssetsApp, githubChainFolder)
}
return path.GetAssetLogoURL(config.Default.URLs.TWAssetsApp, githubChainFolder, id)
return path.GetAssetLogoURL(config.Default.URLs.AssetsApp, githubChainFolder, id)
}