From 5930bc95e587ff87d5058ef5f176c47555039c4f Mon Sep 17 00:00:00 2001 From: DMY <147dmy@gmail.com> Date: Fri, 5 Jul 2024 10:37:48 +0800 Subject: [PATCH 01/19] feat: bridge --- _raw/locales/en/messages.json | 57 +- .../controller/provider/controller.ts | 2 + src/background/controller/wallet.ts | 127 +- src/background/index.ts | 2 + src/background/service/bridge.ts | 130 ++ src/background/service/index.ts | 1 + .../service/transactionBroadcastWatcher.ts | 2 + src/constant/default-support-chains.json | 1822 ++++++++++++++++- src/ui/assets/bridge/bungee.png | Bin 0 -> 945 bytes src/ui/assets/bridge/down.svg | 4 + src/ui/assets/bridge/duration.svg | 10 + src/ui/assets/bridge/li-fi.png | Bin 0 -> 811 bytes src/ui/assets/bridge/question-cc.svg | 18 + src/ui/assets/dashboard/bridge.svg | 7 + src/ui/assets/dashboard/receive-header.svg | 16 + src/ui/component/ChainSelector/InForm.tsx | 15 +- src/ui/models/app.ts | 1 + src/ui/models/bridge.ts | 147 ++ src/ui/models/index.ts | 3 + .../Bridge/Component/AggregatorsSettings.tsx | 230 +++ .../Bridge/Component/BridgeTokenPair.tsx | 232 +++ src/ui/views/Bridge/Component/Header.tsx | 64 + src/ui/views/Bridge/Component/History.tsx | 260 +++ src/ui/views/Bridge/Component/IconRefresh.tsx | 93 + .../Bridge/Component/InsufficientTip.tsx | 20 + src/ui/views/Bridge/Component/Main.tsx | 589 ++++++ src/ui/views/Bridge/Component/QuoteItem.tsx | 180 ++ src/ui/views/Bridge/Component/QuoteLogo.tsx | 38 + src/ui/views/Bridge/Component/Quotes.tsx | 201 ++ .../views/Bridge/Component/ReceiveDetail.tsx | 142 ++ src/ui/views/Bridge/Component/Slippage.tsx | 227 ++ src/ui/views/Bridge/Component/loading.tsx | 83 + src/ui/views/Bridge/hooks/context.tsx | 24 + src/ui/views/Bridge/hooks/history.tsx | 120 ++ src/ui/views/Bridge/hooks/index.tsx | 3 + src/ui/views/Bridge/hooks/token.tsx | 637 ++++++ src/ui/views/Bridge/index.tsx | 23 + .../components/ChainAndSiteSelector/index.tsx | 31 +- src/ui/views/Dashboard/index.tsx | 13 + src/ui/views/Dashboard/style.less | 2 +- src/ui/views/MainRoute.tsx | 5 + src/ui/views/RabbyPoints/index.tsx | 2 +- src/ui/views/Receive/index.tsx | 4 +- 43 files changed, 5556 insertions(+), 31 deletions(-) create mode 100644 src/background/service/bridge.ts create mode 100644 src/ui/assets/bridge/bungee.png create mode 100644 src/ui/assets/bridge/down.svg create mode 100644 src/ui/assets/bridge/duration.svg create mode 100644 src/ui/assets/bridge/li-fi.png create mode 100644 src/ui/assets/bridge/question-cc.svg create mode 100644 src/ui/assets/dashboard/bridge.svg create mode 100644 src/ui/assets/dashboard/receive-header.svg create mode 100644 src/ui/models/bridge.ts create mode 100644 src/ui/views/Bridge/Component/AggregatorsSettings.tsx create mode 100644 src/ui/views/Bridge/Component/BridgeTokenPair.tsx create mode 100644 src/ui/views/Bridge/Component/Header.tsx create mode 100644 src/ui/views/Bridge/Component/History.tsx create mode 100644 src/ui/views/Bridge/Component/IconRefresh.tsx create mode 100644 src/ui/views/Bridge/Component/InsufficientTip.tsx create mode 100644 src/ui/views/Bridge/Component/Main.tsx create mode 100644 src/ui/views/Bridge/Component/QuoteItem.tsx create mode 100644 src/ui/views/Bridge/Component/QuoteLogo.tsx create mode 100644 src/ui/views/Bridge/Component/Quotes.tsx create mode 100644 src/ui/views/Bridge/Component/ReceiveDetail.tsx create mode 100644 src/ui/views/Bridge/Component/Slippage.tsx create mode 100644 src/ui/views/Bridge/Component/loading.tsx create mode 100644 src/ui/views/Bridge/hooks/context.tsx create mode 100644 src/ui/views/Bridge/hooks/history.tsx create mode 100644 src/ui/views/Bridge/hooks/index.tsx create mode 100644 src/ui/views/Bridge/hooks/token.tsx create mode 100644 src/ui/views/Bridge/index.tsx diff --git a/_raw/locales/en/messages.json b/_raw/locales/en/messages.json index 56e2ed6434e..dd0fc6b326e 100644 --- a/_raw/locales/en/messages.json +++ b/_raw/locales/en/messages.json @@ -854,6 +854,60 @@ "estimate": "Estimate:", "actual": "Actual:" }, + "bridge": { + "title": "Bridge", + "history": "Bridge history", + "the-following-bridge-route-are-found": "Found following bridge route", + "no-transaction-records": "No Token Pair Found", + "pendingTip": "Tx submitted. If the tx is pending for long hours, you can try to clear pending in settings.", + "Pending": "Pending", + "completedTip": "Transaction on chain, decoding data to generate record", + "Completed": "Completed", + "estimate": "Estimate:", + "actual": "Actual:", + "gas-fee": "GasFee: {{gasUsed}}", + "gas-x-price": "Gas price: {{price}} Gwei.", + "detail-tx": "Detail", + "unlimited-allowance": "Unlimited allowance", + "insufficient-balance": "Insufficient balance", + "bridgeTo": "Bridge To", + "BridgeTokenPair": "Bridge Token Pair", + "tokenPairPlaceholder": "Select Token Pair", + "Amount": "Amount", + "getRoutes": "Get routes", + "slippage-adjusted-refresh-quote": "Slippage adjusted. Refresh route.", + "price-expired-refresh-route": "Price expired. Refresh route.", + "approve-x-symbol": "Approve {{symbol}}", + "approve-and-bridge": "Approve and Bridge", + "need-to-approve-token-before-bridge": "Need to approve token before bridge", + "via-bridge": "via {{bridge}}", + "duration": "{{duration}} min", + "estimated-value": "≈ {{value}}", + "best": "Best", + "bridge-cost": "Bridge cost", + "rabby-fee": "Rabby fee", + "bridge-via-x": "Bridge on {{name}}", + "noData": "No data", + + "settingModal": { + "title": "Choose the Bridge Aggregators to find routes", + "confirm": "Confirm", + "SupportedBridge": "Supported Bridge:", + "confirmModal": { + "title": "Enable Trading with this Aggregator", + "tip1": "1. Once enabled, you will interact directly with the contract from this aggregator.", + "tip2": "2. Rabby is not liable for any risks arising from the contract of this aggregator", + "i-understand-and-accept-it": "I understand and accept it" + } + }, + "tokenPairDrawer": { + "title": "Select from supported token pair", + "tokenPair": "Token Pair", + "balance": "Balance Value", + "noData": "No Supported Token Pair" + } + }, + "manageAddress": { "no-address": "No address", "no-match": "No match", @@ -912,7 +966,8 @@ "rabbyPoints": "Rabby Points", "more": "More", "manageAddress": "Manage Address", - "nft": "NFT" + "nft": "NFT", + "bridge": "Bridge" }, "comingSoon": "Coming soon", "soon": "Soon", diff --git a/src/background/controller/provider/controller.ts b/src/background/controller/provider/controller.ts index 420e51a5a66..26e9055fc0c 100644 --- a/src/background/controller/provider/controller.ts +++ b/src/background/controller/provider/controller.ts @@ -30,6 +30,7 @@ import { swapService, transactionBroadcastWatchService, notificationService, + bridgeService, } from 'background/service'; import { Session } from 'background/service/session'; import { Tx, TxPushType } from 'background/service/openapi'; @@ -503,6 +504,7 @@ class ProviderController extends BaseController { if (hash) { swapService.postSwap(chain, hash, other); + bridgeService.postBridge(chain, hash, other); } statsData.submit = true; diff --git a/src/background/controller/wallet.ts b/src/background/controller/wallet.ts index f30318c0d10..db6cdb97353 100644 --- a/src/background/controller/wallet.ts +++ b/src/background/controller/wallet.ts @@ -23,6 +23,7 @@ import { transactionBroadcastWatchService, RabbyPointsService, HDKeyRingLastAddAddrTimeService, + bridgeService, } from 'background/service'; import buildinProvider, { EthereumProvider, @@ -523,6 +524,115 @@ export class WalletController extends BaseController { } }; + bridgeToken = async ( + { + to, + data, + payTokenRawAmount, + payTokenId, + payTokenChainServerId, + shouldApprove, + shouldTwoStepApprove, + gasPrice, + info, + value, + }: { + data: string; + to: string; + value: string; + chainId: number; + shouldApprove: boolean; + shouldTwoStepApprove: boolean; + payTokenId: string; + payTokenChainServerId: string; + payTokenRawAmount: string; + gasPrice?: number; + info: any; + }, + $ctx?: any + ) => { + const account = await preferenceService.getCurrentAccount(); + if (!account) throw new Error(t('background.error.noCurrentAccount')); + const chainObj = findChain({ serverId: payTokenChainServerId }); + if (!chainObj) + throw new Error( + t('background.error.notFindChain', { payTokenChainServerId }) + ); + try { + if (shouldTwoStepApprove) { + unTriggerTxCounter.increase(3); + await this.approveToken( + payTokenChainServerId, + payTokenId, + to, + 0, + { + ga: { + ...$ctx?.ga, + source: 'approvalAndBridge|tokenApproval', + }, + }, + gasPrice, + { isBridge: true } + ); + unTriggerTxCounter.decrease(); + } + + if (shouldApprove) { + if (!shouldTwoStepApprove) { + unTriggerTxCounter.increase(2); + } + await this.approveToken( + payTokenChainServerId, + payTokenId, + to, + payTokenRawAmount, + { + ga: { + ...$ctx?.ga, + source: 'approvalAndBridge|tokenApproval', + }, + }, + gasPrice, + { isBridge: true } + ); + unTriggerTxCounter.decrease(); + } + + if (info) { + bridgeService.addTx(chainObj.enum, data, info); + } + await this.sendRequest({ + $ctx: + shouldApprove && payTokenId !== chainObj.nativeTokenAddress + ? { + ga: { + ...$ctx?.ga, + source: 'approvalAndBridge|bridge', + }, + } + : $ctx, + method: 'eth_sendTransaction', + params: [ + { + from: account.address, + to: to, + data: data || '0x', + value: `0x${new BigNumber(value || '0').toString(16)}`, + chainId: chainObj.id, + gasPrice: gasPrice + ? `0x${new BigNumber(gasPrice).toString(16)}` + : undefined, + isBridge: true, + }, + ], + }); + unTriggerTxCounter.decrease(); + } catch (e) { + unTriggerTxCounter.reset(); + } + }; + getUnTriggerTxCount = () => { return unTriggerTxCounter.count; }; @@ -581,7 +691,11 @@ export class WalletController extends BaseController { amount: number | string, $ctx?: any, gasPrice?: number, - extra?: { isSwap: boolean; swapPreferMEVGuarded?: boolean } + extra?: { + isSwap?: boolean; + swapPreferMEVGuarded?: boolean; + isBridge?: boolean; + } ) => { const account = await preferenceService.getCurrentAccount(); if (!account) throw new Error(t('background.error.noCurrentAccount')); @@ -1243,6 +1357,17 @@ export class WalletController extends BaseController { addHDKeyRingLastAddAddrTime = HDKeyRingLastAddAddrTimeService.addUnixRecord; getHDKeyRingLastAddAddrTimeStore = HDKeyRingLastAddAddrTimeService.getStore; + getBridgeData = bridgeService.getBridgeData; + getBridgeAggregators = bridgeService.getBridgeAggregators; + setBridgeAggregators = bridgeService.setBridgeAggregators; + getBridgeUnlimitedAllowance = bridgeService.getUnlimitedAllowance; + setBridgeUnlimitedAllowance = bridgeService.setUnlimitedAllowance; + setBridgeSelectedChain = bridgeService.setSelectedChain; + setBridgeSelectedFromToken = bridgeService.setSelectedFromToken; + setBridgeSelectedToToken = bridgeService.setSelectedToToken; + getBridgeSortIncludeGasFee = bridgeService.getBridgeSortIncludeGasFee; + setBridgeSortIncludeGasFee = bridgeService.setBridgeSortIncludeGasFee; + setCustomRPC = RPCService.setRPC; removeCustomRPC = RPCService.removeCustomRPC; getAllCustomRPC = RPCService.getAllRPC; diff --git a/src/background/index.ts b/src/background/index.ts index 244c6c2e47e..9ce4ca00b17 100644 --- a/src/background/index.ts +++ b/src/background/index.ts @@ -31,6 +31,7 @@ import { securityEngineService, transactionBroadcastWatchService, HDKeyRingLastAddAddrTimeService, + bridgeService, } from './service'; import { providerController, walletController } from './controller'; import { getOriginFromUrl } from '@/utils'; @@ -97,6 +98,7 @@ async function restoreAppState() { await securityEngineService.init(); await RabbyPointsService.init(); await HDKeyRingLastAddAddrTimeService.init(); + await bridgeService.init(); setPopupIcon( walletController.isUnlocked() || !walletController.isBooted() diff --git a/src/background/service/bridge.ts b/src/background/service/bridge.ts new file mode 100644 index 00000000000..01f0cbfc5a2 --- /dev/null +++ b/src/background/service/bridge.ts @@ -0,0 +1,130 @@ +import { CHAINS_ENUM } from '@debank/common'; +import { createPersistStore } from 'background/utils'; +import { Tx } from '@rabby-wallet/rabby-api/dist/types'; + +import { openapiService } from 'background/service'; +import { TokenItem } from './openapi'; + +type BridgeRecord = { + aggregator_id: string; + bridge_id: string; + user_addr: string; + from_chain_id: string; + from_token_id: string; + from_token_amount: string; + to_chain_id: string; + to_token_id: string; + to_token_amount: string; + tx_id: string; +}; + +export type BridgeServiceStore = { + selectedChain: CHAINS_ENUM | null; + selectedFromToken?: TokenItem; + selectedToToken?: TokenItem; + selectedAggregators?: string[]; + unlimitedAllowance: boolean; + sortIncludeGasFee?: boolean; + txQuotes?: Record; +}; + +class BridgeService { + store: BridgeServiceStore = { + selectedChain: null, + selectedFromToken: undefined, + selectedToToken: undefined, + selectedAggregators: undefined, + unlimitedAllowance: false, + sortIncludeGasFee: true, + }; + + init = async () => { + const storage = await createPersistStore({ + name: 'bridge', + template: { + selectedChain: null, + unlimitedAllowance: false, + sortIncludeGasFee: true, + txQuotes: {}, + }, + }); + + this.store = storage || this.store; + }; + + getBridgeData = (key?: keyof BridgeServiceStore) => { + return key ? this.store[key] : { ...this.store }; + }; + + getBridgeAggregators = () => { + return this.store.selectedAggregators; + }; + + setBridgeAggregators = (selectedAggregators: string[]) => { + console.log('setBridgeAggregators', selectedAggregators); + this.store.selectedAggregators = [...selectedAggregators]; + }; + + getSelectedChain = () => { + return this.store.selectedChain; + }; + + setSelectedChain = (chain: CHAINS_ENUM) => { + this.store.selectedChain = chain; + }; + + getSelectedFromToken = () => { + return this.store.selectedFromToken; + }; + getSelectedToToken = () => { + return this.store.selectedToToken; + }; + + setSelectedFromToken = (token?: TokenItem) => { + this.store.selectedFromToken = token; + }; + setSelectedToToken = (token?: TokenItem) => { + this.store.selectedToToken = token; + }; + + getUnlimitedAllowance = () => { + return this.store.unlimitedAllowance; + }; + + setUnlimitedAllowance = (bool: boolean) => { + this.store.unlimitedAllowance = bool; + }; + + getBridgeSortIncludeGasFee = () => { + return this.store.sortIncludeGasFee; + }; + + setBridgeSortIncludeGasFee = (bool: boolean) => { + this.store.sortIncludeGasFee = bool; + }; + + txQuotes: Record = {}; + + addTx = (chain: CHAINS_ENUM, data: string, info: BridgeRecord) => { + this.txQuotes[`${chain}-${data}`] = info; + }; + + postBridge = (chain: CHAINS_ENUM, hash: string, tx: Tx) => { + const { postBridgeHistory } = openapiService; + // const { txQuotes } = this; + const key = `${chain}-${tx.data}`; + const data = { ...this.txQuotes }; + const quoteInfo = data[key]; + if (quoteInfo) { + delete data[key]; + this.txQuotes = data; + return postBridgeHistory({ + ...quoteInfo, + tx, + tx_id: hash, + }); + } + }; +} + +export default new BridgeService(); diff --git a/src/background/service/index.ts b/src/background/service/index.ts index caeb55b728f..895c01567d0 100644 --- a/src/background/service/index.ts +++ b/src/background/service/index.ts @@ -19,3 +19,4 @@ export { default as securityEngineService } from './securityEngine'; export * from './transactionBroadcastWatcher'; export { default as RabbyPointsService } from './rabbyPoints'; export { default as HDKeyRingLastAddAddrTimeService } from './HDKeyRingLastAddAddrTime'; +export { default as bridgeService } from './bridge'; diff --git a/src/background/service/transactionBroadcastWatcher.ts b/src/background/service/transactionBroadcastWatcher.ts index 9d428f8bef4..69dfda7a179 100644 --- a/src/background/service/transactionBroadcastWatcher.ts +++ b/src/background/service/transactionBroadcastWatcher.ts @@ -1,6 +1,7 @@ import { findChainByEnum, findChainByID } from '@/utils/chain'; import { TxRequest } from '@rabby-wallet/rabby-api/dist/types'; import { + bridgeService, openapiService, swapService, transactionWatchService, @@ -100,6 +101,7 @@ class TransactionBroadcastWatcher { const chain = findChainByID(item.signed_tx.chainId); if (chain) { swapService.postSwap(chain?.enum, item.tx_id, item.signed_tx); + bridgeService.postBridge(chain?.enum, item.tx_id, item.signed_tx); } } } diff --git a/src/constant/default-support-chains.json b/src/constant/default-support-chains.json index 45f5ceb863a..4e28ac5527d 100644 --- a/src/constant/default-support-chains.json +++ b/src/constant/default-support-chains.json @@ -1 +1,1821 @@ -[{"id": "eth", "community_id": 1, "name": "Ethereum", "native_token": {"id": "eth", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/eth/42ba589cd077e7bdd97db6480b0ff61d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/eth/561dda8f1ed8f0b2f46474bde3f02d0b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://etherscan.io", "need_estimate_gas": false}, {"id": "bsc", "community_id": 56, "name": "BNB Chain", "native_token": {"id": "bsc", "symbol": "BNB", "logo": "https://static.debank.com/image/coin/logo_url/bnb/9784283a36f23a58982fc964574ea530.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bsc/bc73fa84b7fc5337905e527dadcbc854.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bsc/8e44e643d6e2fd335a72b4cda6368e1a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bscscan.com", "need_estimate_gas": false}, {"id": "xdai", "community_id": 100, "name": "Gnosis Chain", "native_token": {"id": "xdai", "symbol": "xDai", "logo": "https://static.debank.com/image/xdai_token/logo_url/xdai/297890dc063e6dfb6cb4065cdf38382e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xdai/43c1e09e93e68c9f0f3b132976394529.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xdai/d8744f83d1a3bef4941c0820d76242a2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://gnosisscan.io", "need_estimate_gas": false}, {"id": "matic", "community_id": 137, "name": "Polygon", "native_token": {"id": "matic", "symbol": "MATIC", "logo": "https://static.debank.com/image/matic_token/logo_url/matic/6f5a6b6f0732a7a235131bd7804d357c.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/matic/52ca152c08831e4765506c9bd75767e8.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/matic/d9d33b57922dce7a5ac567b0e5eb1e4b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://polygonscan.com", "need_estimate_gas": false}, {"id": "ftm", "community_id": 250, "name": "Fantom", "native_token": {"id": "ftm", "symbol": "FTM", "logo": "https://static.debank.com/image/ftm_token/logo_url/ftm/33fdb9c5067e94f3a1b9e78f6fa86984.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ftm/14133435f89637157a4405e954e1b1b2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ftm/64178bae592be3a33c160b1d9b9a124a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://ftmscan.com", "need_estimate_gas": false}, {"id": "avax", "community_id": 43114, "name": "Avalanche", "native_token": {"id": "avax", "symbol": "AVAX", "logo": "https://static.debank.com/image/avax_token/logo_url/avax/0b9c84359c84d6bdd5bfda9c2d4c4a82.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/avax/4d1649e8a0c7dec9de3491b81807d402.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/avax/e8a86458cb9e656052f0250d079622d8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://snowtrace.io", "need_estimate_gas": false}, {"id": "op", "community_id": 10, "name": "OP", "native_token": {"id": "op", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/op/01ae734fe781c9c2ae6a4cc7e9244056.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/op/b571a53bc1ce3833a6cc3db42847931b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://optimistic.etherscan.io", "need_estimate_gas": false}, {"id": "arb", "community_id": 42161, "name": "Arbitrum", "native_token": {"id": "arb", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/arb/854f629937ce94bebeb2cd38fb336de7.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/arb/315c3c4560a12e9c94841706e3ed9ce5.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://arbiscan.io", "need_estimate_gas": true}, {"id": "celo", "community_id": 42220, "name": "Celo", "native_token": {"id": "celo", "symbol": "CELO", "logo": "https://static.debank.com/image/celo_token/logo_url/0x471ece3750da237f93b8e339c536989b8978a438/6f524d91db674876ba0f5767cf0124cc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/celo/41da5c1d3c0945ae822a1f85f02c76cf.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/celo/17b4db6dd9f3559117547bc22ddc5b89.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://celoscan.io", "need_estimate_gas": false}, {"id": "movr", "community_id": 1285, "name": "Moonriver", "native_token": {"id": "movr", "symbol": "MOVR", "logo": "https://static.debank.com/image/mtr_token/logo_url/0xb158870beb809ad955bf56065c5c10d7fd957cc0/aa42368ae1d5856d15c13ecc0ff74af6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/movr/4b0de5a711b437f187c0d0f15cc0398b.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/movr/c13a5af6c923aad7cc6cad311267da8e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://moonriver.moonscan.io", "need_estimate_gas": false}, {"id": "cro", "community_id": 25, "name": "Cronos", "native_token": {"id": "cro", "symbol": "CRO", "logo": "https://static.debank.com/image/cro_token/logo_url/cro/7803de9b434be197c2c1399465abdf39.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cro/f947000cc879ee8ffa032793808c741c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cro/555a092be8378d6e55000b3846043bec.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://cronoscan.com", "need_estimate_gas": false}, {"id": "boba", "community_id": 288, "name": "Boba", "native_token": {"id": "boba", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/boba/e43d79cd8088ceb3ea3e4a240a75728f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/boba/aea02e2a1cf1087f299f4d501777d0cd.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bobascan.com", "need_estimate_gas": true}, {"id": "metis", "community_id": 1088, "name": "Metis", "native_token": {"id": "metis", "symbol": "Metis", "logo": "https://static.debank.com/image/coin/logo_url/metis/7485c0a61c1e05fdf707113b6b6ac917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/metis/7485c0a61c1e05fdf707113b6b6ac917.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/metis/3fb2c5171563b035fe4add98eca01efc.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.metis.io", "need_estimate_gas": false}, {"id": "btt", "community_id": 199, "name": "BitTorrent", "native_token": {"id": "btt", "symbol": "BTT", "logo": "https://static.debank.com/image/btt_token/logo_url/btt/2130a8d57ff2a0f3d50a4ec9432897c6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/btt/2130a8d57ff2a0f3d50a4ec9432897c6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/btt/4d76b329327ccfa153e47c750d0775d3.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bttcscan.com", "need_estimate_gas": false}, {"id": "aurora", "community_id": 1313161554, "name": "Aurora", "native_token": {"id": "aurora", "symbol": "AETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/aurora/da491099bb44690eda122cdd67c5c610.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/aurora/f4109e1ec9f24aa36c23a5d9d27286fb.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://aurorascan.dev", "need_estimate_gas": true}, {"id": "mobm", "community_id": 1284, "name": "Moonbeam", "native_token": {"id": "mobm", "symbol": "GLMR", "logo": "https://static.debank.com/image/mobm_token/logo_url/mobm/a8442077d76b258297181c3e6eb8c9cc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mobm/a8442077d76b258297181c3e6eb8c9cc.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mobm/293430b9780093287759bbf2ed80f939.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://moonscan.io", "need_estimate_gas": false}, {"id": "sbch", "community_id": 10000, "name": "SmartBch", "native_token": {"id": "sbch", "symbol": "BCH", "logo": "https://static.debank.com/image/sbch_token/logo_url/sbch/03007b5353bb9e221efb82a6a70d9ec9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sbch/d78ac780803e7f0a17b73558f423502e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sbch/0b08879f05d6a13d7a4181510a1138cf.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.smartscan.cash", "need_estimate_gas": false}, {"id": "fuse", "community_id": 122, "name": "Fuse", "native_token": {"id": "fuse", "symbol": "FUSE", "logo": "https://static.debank.com/image/arb_token/logo_url/0xbdef0e9ef12e689f366fe494a7a7d0dad25d9286/b9fe0bbfeccc43ac46bc652752e25532.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fuse/7a21b958761d52d04ff0ce829d1703f4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fuse/ceda89bc24064a4c583f369811ee29b6.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.fuse.io", "need_estimate_gas": false}, {"id": "hmy", "community_id": 1666600000, "name": "Harmony", "native_token": {"id": "hmy", "symbol": "ONE", "logo": "https://static.debank.com/image/hmy_token/logo_url/hmy/734c003023531e31c636ae25d5a73172.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/hmy/b3bfb4681f81a85e25c28e150dcbfe51.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/hmy/a92fd20b6691292d93160e2606035468.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.harmony.one", "need_estimate_gas": false}, {"id": "klay", "community_id": 8217, "name": "Klaytn", "native_token": {"id": "klay", "symbol": "KLAY", "logo": "https://static.debank.com/image/klay_token/logo_url/klay/1df018b8493cb97c50b7e390ef63cba4.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/klay/1df018b8493cb97c50b7e390ef63cba4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/klay/f5a2aefdbaa9cbc90c0fa1ec0443ec63.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scope.klaytn.com", "need_estimate_gas": false}, {"id": "astar", "community_id": 592, "name": "Astar", "native_token": {"id": "astar", "symbol": "ASTR", "logo": "https://static.debank.com/image/astar_token/logo_url/astar/a827be92d88617a918ea060a9a6f1572.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/astar/398c7e0014bdada3d818367a7273fabe.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/astar/116f17a7abe800b7675377857fac1dcd.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://blockscout.com/astar", "need_estimate_gas": false}, {"id": "iotx", "community_id": 4689, "name": "IoTeX", "native_token": {"id": "iotx", "symbol": "IOTX", "logo": "https://static.debank.com/image/iotx_token/logo_url/iotx/d3be2cd8677f86bd9ab7d5f3701afcc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/iotx/d3be2cd8677f86bd9ab7d5f3701afcc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/iotx/419fdcf87eceb9b8c34af0c5e3985d44.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://iotexscan.io", "need_estimate_gas": false}, {"id": "rsk", "community_id": 30, "name": "Rootstock", "native_token": {"id": "rsk", "symbol": "RBTC", "logo": "https://static.debank.com/image/rsk_token/logo_url/rsk/1dae003fa89234ac011c0dac51126770.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rsk/ff47def89fba98394168bf5f39920c8c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rsk/8f621d4d08c69ba79d5aae53bc9d3eeb.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://rootstock.blockscout.com", "need_estimate_gas": false}, {"id": "wan", "community_id": 888, "name": "Wanchain", "native_token": {"id": "wan", "symbol": "WAN", "logo": "https://static.debank.com/image/wan_token/logo_url/wan/f205dea796c0abae5b6749d697adfffa.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/wan/f3aa8b31414732ea5e026e05665146e6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/wan/dc0ce7bb158767b2de10ce3f23b62675.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.wanscan.org", "need_estimate_gas": false}, {"id": "kcc", "community_id": 321, "name": "KCC", "native_token": {"id": "kcc", "symbol": "KCS", "logo": "https://static.debank.com/image/kcc_token/logo_url/kcc/7fca710b626725fc67f02be57f71c597.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kcc/3a5a4ef7d5f1db1e53880d70219d75b6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kcc/d3f270fe9ccdd0fc9047bcf9a62d8110.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.kcc.io/en", "need_estimate_gas": false}, {"id": "sgb", "community_id": 19, "name": "Songbird", "native_token": {"id": "sgb", "symbol": "SGB", "logo": "https://static.debank.com/image/sgb_token/logo_url/0x02f0826ef6ad107cfc861152b32b52fd11bab9ed/619f46d574d62a50bdfd9f0e2f47ddc1.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sgb/619f46d574d62a50bdfd9f0e2f47ddc1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sgb/eeef2dd3241f458e7f43dd06319e6cb2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://songbird-explorer.flare.network", "need_estimate_gas": false}, {"id": "evmos", "community_id": 9001, "name": "EvmOS", "native_token": {"id": "evmos", "symbol": "EVMOS", "logo": "https://static.debank.com/image/evmos_token/logo_url/evmos/26e038b4d5475d5a4b92f7fc08bdabc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/evmos/26e038b4d5475d5a4b92f7fc08bdabc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/evmos/4d575ca6baef4f1de8dcead622091a79.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://escan.live", "need_estimate_gas": false}, {"id": "dfk", "community_id": 53935, "name": "DFK", "native_token": {"id": "dfk", "symbol": "JEWEL", "logo": "https://static.debank.com/image/dfk_token/logo_url/dfk/09b4ee0e9d0695201fcc7e912ac31595.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dfk/233867c089c5b71be150aa56003f3f7a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dfk/bab611be6bf763da73c6179c2150ffdf.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/defi-kingdoms/dfk-chain/explorer", "need_estimate_gas": false}, {"id": "tlos", "community_id": 40, "name": "Telos", "native_token": {"id": "tlos", "symbol": "TLOS", "logo": "https://static.debank.com/image/tlos_token/logo_url/tlos/7e45efcbc8d74f7fd6cda972938f4ade.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/telos/f9f7493def4c08ed222540bebd8ce87a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/tlos/deae1896415f9dac66e60cb47d8165d7.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.teloscan.io", "need_estimate_gas": false}, {"id": "nova", "community_id": 42170, "name": "Arbitrum Nova", "native_token": {"id": "nova", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/nova/06eb2b7add8ba443d5b219c04089c326.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/nova/b61c3a7723f39265c8b98967407e46db.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://nova.arbiscan.io", "need_estimate_gas": true}, {"id": "canto", "community_id": 7700, "name": "Canto", "native_token": {"id": "canto", "symbol": "CANTO", "logo": "https://static.debank.com/image/canto_token/logo_url/canto/47574ef619e057d2c6bbce1caba57fb6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/canto/47574ef619e057d2c6bbce1caba57fb6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/canto/29bd07f96ac7805a1b14649f356d3eee.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://tuber.build", "need_estimate_gas": false}, {"id": "doge", "community_id": 2000, "name": "Dogechain", "native_token": {"id": "doge", "symbol": "DOGE", "logo": "https://static.debank.com/image/doge_token/logo_url/doge/2538141079688a7a43bc22c7b60fb45f.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/doge/2538141079688a7a43bc22c7b60fb45f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/doge/aa18ed341ae19e5e381dfac1062fee73.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.dogechain.dog", "need_estimate_gas": false}, {"id": "kava", "community_id": 2222, "name": "Kava", "native_token": {"id": "kava", "symbol": "KAVA", "logo": "https://static.debank.com/image/kava_token/logo_url/kava/f5b7c6ffbe4d99da363a78d98e748880.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kava/b26bf85a1a817e409f9a3902e996dc21.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kava/2e672dd7947e41a34d6cbc5995ad24b2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://kavascan.com", "need_estimate_gas": false}, {"id": "step", "community_id": 1234, "name": "Step", "native_token": {"id": "step", "symbol": "FITFI", "logo": "https://static.debank.com/image/step_token/logo_url/step/9d345f7e03f078657bb1ffd494442d67.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/step/db79600b8feafe17845617ca9c606dbe.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/step/e3250b0b574f55b1ec82434549e6f959.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://stepscan.io", "need_estimate_gas": false}, {"id": "mada", "community_id": 2001, "name": "Milkomeda C1", "native_token": {"id": "mada", "symbol": "milkADA", "logo": "https://static.debank.com/image/mada_token/logo_url/mada/cb356bfa1b48206c834e62113604567d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mada/cdc4b1112c2c5a2757cbda33f4476b7f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mada/185df9833e6215d48ccfd389be59b752.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer-mainnet-cardano-evm.c1.milkomeda.com", "need_estimate_gas": false}, {"id": "cfx", "community_id": 1030, "name": "Conflux", "native_token": {"id": "cfx", "symbol": "CFX", "logo": "https://static.debank.com/image/cfx_token/logo_url/cfx/f493f92ad1087e23cf8dadab9850abb5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cfx/eab0c7304c6820b48b2a8d0930459b82.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cfx/d45e5225fc8e97623c798599a2f8ce50.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://evm.confluxscan.io", "need_estimate_gas": false}, {"id": "brise", "community_id": 32520, "name": "Bitgert", "native_token": {"id": "brise", "symbol": "BRISE", "logo": "https://static.debank.com/image/brise_token/logo_url/brise/4f6c040cf49f4d8c4eabbad7cd2f4ae4.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/brise/4f6c040cf49f4d8c4eabbad7cd2f4ae4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/brise/34c2bec8f0eaaf44929ce604c645c729.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://brisescan.com", "need_estimate_gas": false}, {"id": "ckb", "community_id": 71402, "name": "Godwoken", "native_token": {"id": "ckb", "symbol": "CKB", "logo": "https://static.debank.com/image/ckb_token/logo_url/ckb/18d430b7e9b48750bad7e88513a8f2c5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ckb/e821893503104870d5e73f56dbd73746.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ckb/5b7e976954a29e0ff3fc67a03d702d44.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://gwscan.com", "need_estimate_gas": false}, {"id": "era", "community_id": 324, "name": "zkSync Era", "native_token": {"id": "era", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/era/2cfcd0c8436b05d811b03935f6c1d7da.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/era/ae1951502c3514d43374d7e6718bda9a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://era.zksync.network", "need_estimate_gas": true}, {"id": "ron", "community_id": 2020, "name": "Ronin", "native_token": {"id": "ron", "symbol": "RON", "logo": "https://static.debank.com/image/ron_token/logo_url/0xe514d9deb7966c8be0ca922de8a064264ea6bcd4/f65d4fdc17d5533c59ebcd6eb1f47320.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ron/6e0f509804bc83bf042ef4d674c1c5ee.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ron/a7164cbb1bcf36c6b13abece4956e7ec.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.roninchain.com", "need_estimate_gas": false}, {"id": "pze", "community_id": 1101, "name": "Polygon zkEVM", "native_token": {"id": "pze", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/pze/a2276dce2d6a200c6148fb975f0eadd3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/pze/94d0cff539cb8f18c93f11a454f894b3.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://zkevm.polygonscan.com", "need_estimate_gas": false}, {"id": "core", "community_id": 1116, "name": "CORE", "native_token": {"id": "core", "symbol": "CORE", "logo": "https://static.debank.com/image/core_token/logo_url/core/1a7becfe112c0c9bfc25628cd70e94a6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/core/ccc02f660e5dd410b23ca3250ae7c060.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/core/e52df8e06f7763e05e1d94cce21683a5.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.coredao.org", "need_estimate_gas": false}, {"id": "wemix", "community_id": 1111, "name": "WEMIX", "native_token": {"id": "wemix", "symbol": "WEMIX", "logo": "https://static.debank.com/image/wemix_token/logo_url/wemix/6431c197ec9f2a1d334a356b316fbb49.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/wemix/d1ba88d1df6cca0b0cb359c36a09c054.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/wemix/66b877a83349d6d158796f825f5b9633.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.wemix.com", "need_estimate_gas": false}, {"id": "etc", "community_id": 61, "name": "Ethereum Classic", "native_token": {"id": "etc", "symbol": "ETC", "logo": "https://static.debank.com/image/okt_token/logo_url/0x99970778e2715bbc9cf8fb83d10dcbc2d2d551a3/782943aff604f69c7889d90926348210.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/etc/7ccf90ee6822ab440fb603337da256fa.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/etc/81a154d78dce2782739ac9e0d8e05f6d.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://blockscout.com/etc/mainnet", "need_estimate_gas": false}, {"id": "pls", "community_id": 369, "name": "PulseChain", "native_token": {"id": "pls", "symbol": "PLS", "logo": "https://static.debank.com/image/pls_token/logo_url/pls/aa6be079fa9eb568e02150734ebb3db0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/pls/aa6be079fa9eb568e02150734ebb3db0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/pls/7c01fc668883d77e87c9334ec7d6b6ab.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.mypinata.cloud/ipfs/bafybeidn64pd2u525lmoipjl4nh3ooa2imd7huionjsdepdsphl5slfowy/#", "need_estimate_gas": false}, {"id": "flr", "community_id": 14, "name": "Flare", "native_token": {"id": "flr", "symbol": "FLR", "logo": "https://static.debank.com/image/flr_token/logo_url/flr/c7d8087092d5d7b80794630612afb32e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/flr/9ee03d5d7036ad9024e81d55596bb4dc.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/flr/ad866bf4323576b66651c9e2bbfd8a80.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://flare-explorer.flare.network", "need_estimate_gas": false}, {"id": "fsn", "community_id": 32659, "name": "Fusion", "native_token": {"id": "fsn", "symbol": "FSN", "logo": "https://static.debank.com/image/fsn_token/logo_url/fsn/047789979f0b5733602b29517753bdf3.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fsn/047789979f0b5733602b29517753bdf3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fsn/dfb374f7abf97b869ccf42bbf697feae.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://fsnscan.com", "need_estimate_gas": false}, {"id": "mtr", "community_id": 82, "name": "Meter", "native_token": {"id": "mtr", "symbol": "MTR", "logo": "https://static.debank.com/image/mtr_token/logo_url/mtr/920c6f4fdcb408703b435a97b963200b.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mtr/2dc6f079f52ca22778eb684e1ce650b3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mtr/0eafbdc8de9656a9de0f28efa2070450.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.meter.io", "need_estimate_gas": false}, {"id": "rose", "community_id": 42262, "name": "Oasis Emerald", "native_token": {"id": "rose", "symbol": "ROSE", "logo": "https://static.debank.com/image/rose_token/logo_url/rose/33ade55b0f3efa10e9eec002c6417257.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rose/33ade55b0f3efa10e9eec002c6417257.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rose/2e2351720f1772e3b3c7c2891f3d0192.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.emerald.oasis.dev", "need_estimate_gas": false}, {"id": "oas", "community_id": 248, "name": "Oasys", "native_token": {"id": "oas", "symbol": "OAS", "logo": "https://static.debank.com/image/oas_token/logo_url/oas/322b2cb0935af95b9cabd8a59b629566.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/oas/61dfecab1ba8a404354ce94b5a54d4b3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/oas/95888aa80c9eb4dbde714c69b3cc7425.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.oasys.games", "need_estimate_gas": false}, {"id": "zora", "community_id": 7777777, "name": "Zora", "native_token": {"id": "zora", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zora/de39f62c4489a2359d5e1198a8e02ef1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zora/25dfb04c552c35d3d8e30e5ba136b9e6.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.zora.energy", "need_estimate_gas": false}, {"id": "base", "community_id": 8453, "name": "Base", "native_token": {"id": "base", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/base/ccc1513e4f390542c4fb2f4b88ce9579.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/base/025de9d02848e257740c14bdd1f9330b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.basescan.org", "need_estimate_gas": false}, {"id": "linea", "community_id": 59144, "name": "Linea", "native_token": {"id": "linea", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/linea/32d4ff2cf92c766ace975559c232179c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/linea/adee1a93003ab543957692844fdaf9f2.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://lineascan.build", "need_estimate_gas": false}, {"id": "mnt", "community_id": 5000, "name": "Mantle", "native_token": {"id": "mnt", "symbol": "MNT", "logo": "https://static.debank.com/image/eth_token/logo_url/0x3c3a81e81dc49a522a592e7622a7e711c06bf354/a443c78c33704d48f06e5686bb87f85e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mnt/0af11a52431d60ded59655c7ca7e1475.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mnt/f642653f191f4fd59cbf9efefc4c007d.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mantlescan.xyz", "need_estimate_gas": true}, {"id": "tenet", "community_id": 1559, "name": "Tenet", "native_token": {"id": "tenet", "symbol": "TENET", "logo": "https://static.debank.com/image/tenet_token/logo_url/tenet/2da9b626102a7de9625aaf753cfac321.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/tenet/803be22e467ee9a5abe00d69a9c3ea4f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/tenet/651386abf4fa22f64613faf8dc5187f1.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://tenetscan.io", "need_estimate_gas": false}, {"id": "lyx", "community_id": 42, "name": "LUKSO", "native_token": {"id": "lyx", "symbol": "LYX", "logo": "https://static.debank.com/image/eth_token/logo_url/0xa8b919680258d369114910511cc87595aec0be6d/78a30c7b781e3889548d5920c09133dc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/lyx/dbe6eef57e66817e61297d9b188248ed.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/lyx/83230c4279ab2813907de034d87ab319.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.execution.mainnet.lukso.network", "need_estimate_gas": false}, {"id": "manta", "community_id": 169, "name": "Manta Pacific", "native_token": {"id": "manta", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/manta/0e25a60b96a29d6a5b9e524be7565845.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/manta/ead2552c140ffd5482e7222964bac558.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://pacific-explorer.manta.network", "need_estimate_gas": true}, {"id": "scrl", "community_id": 534352, "name": "Scroll", "native_token": {"id": "scrl", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/scrl/1fa5c7e0bfd353ed0a97c1476c9c42d2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/scrl/dd0d05b6fba614d57b55f0724acd723c.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scrollscan.com", "need_estimate_gas": false}, {"id": "opbnb", "community_id": 204, "name": "opBNB", "native_token": {"id": "opbnb", "symbol": "BNB", "logo": "https://static.debank.com/image/coin/logo_url/bnb/9784283a36f23a58982fc964574ea530.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/opbnb/07e2e686e363a842d0982493638e1285.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/opbnb/8e44e643d6e2fd335a72b4cda6368e1a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://mainnet.opbnbscan.com", "need_estimate_gas": false}, {"id": "loot", "community_id": 5151706, "name": "Loot", "native_token": {"id": "loot", "symbol": "AGLD", "logo": "https://static.debank.com/image/loot_token/logo_url/loot/a6c0dc128d515e2d32526075decae9ec.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/loot/0f098333a1a4f474115b05862e680573.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/loot/af8f162614f388e896872f628f3e3e6e.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.lootchain.com", "need_estimate_gas": false}, {"id": "shib", "community_id": 109, "name": "Shibarium", "native_token": {"id": "shib", "symbol": "BONE", "logo": "https://static.debank.com/image/shib_token/logo_url/shib/e49e9a98f5fb1fb04ad96bb536457df9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/shib/4ec79ed9ee4988dfdfc41e1634a447be.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/shib/574d888cbdce3a08ea8a5f636fc2ae3e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://shibariumscan.io", "need_estimate_gas": false}, {"id": "fx", "community_id": 530, "name": "Function X", "native_token": {"id": "fx", "symbol": "FX", "logo": "https://static.debank.com/image/fx_token/logo_url/fx/6fee82420b2394e0b68d7d7e692a0a01.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fx/6fee82420b2394e0b68d7d7e692a0a01.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fx/528e10d16f64db1798bca33092526d96.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://starscan.io/evm", "need_estimate_gas": false}, {"id": "mode", "community_id": 34443, "name": "Mode", "native_token": {"id": "mode", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mode/466e6e12f4fd827f8f497cceb0601a5e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mode/f7033404c6d09fafcbe53cbf806a585f.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.mode.network", "need_estimate_gas": false}, {"id": "beam", "community_id": 4337, "name": "Beam", "native_token": {"id": "beam", "symbol": "BEAM", "logo": "https://static.debank.com/image/beam_token/logo_url/beam/90a1e9f46664d070752deeb65878a3bd.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/beam/90a1e9f46664d070752deeb65878a3bd.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/beam/f54a6974e60b63c5f328721ad0281f1b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/beam", "need_estimate_gas": false}, {"id": "fon", "community_id": 201022, "name": "FON Chain", "native_token": {"id": "fon", "symbol": "FON", "logo": "https://static.debank.com/image/fon_token/logo_url/fon/369618f4d45053fa4439943c9c2d387d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fon/369618f4d45053fa4439943c9c2d387d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fon/6c5ee096ec2173f9250d58b4384343aa.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://fonscan.io", "need_estimate_gas": false}, {"id": "zkfair", "community_id": 42766, "name": "ZKFair", "native_token": {"id": "zkfair", "symbol": "USDC", "logo": "https://static.debank.com/image/zkfair_token/logo_url/zkfair/35ab0987153a8355a454223aae371ac7.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zkfair/c66f35d57c6146cdff82dfeb316ba801.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zkfair/4133904f2769ebcffa48177c0b7831a6.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.zkfair.io", "need_estimate_gas": false}, {"id": "alot", "community_id": 432204, "name": "Dexalot", "native_token": {"id": "alot", "symbol": "ALOT", "logo": "https://static.debank.com/image/alot_token/logo_url/alot/a03e5e8bc56a8bcd5f5c7b830e8b5877.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/alot/0ed4884da27d022dbd5ed5bc919ee248.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/alot/8ed0cbf9842daef43fbb32558d4f4309.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/dexalot", "need_estimate_gas": false}, {"id": "bfc", "community_id": 3068, "name": "Bifrost", "native_token": {"id": "bfc", "symbol": "BFC", "logo": "https://static.debank.com/image/bfc_token/logo_url/bfc/f0c01b58f084660f8c8ff43f5c85301c.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bfc/7c10f5191b16d0cc068cb6eff32b6347.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bfc/728682dd1707271a7b268fac3594e94e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.mainnet.bifrostnetwork.com", "need_estimate_gas": false}, {"id": "xai", "community_id": 660279, "name": "Xai", "native_token": {"id": "xai", "symbol": "XAI", "logo": "https://static.debank.com/image/xai_token/logo_url/xai/022ab00135c182f6e67e583ecda93863.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xai/b02622ce65251bdcb31aa6621a10a096.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xai/9eb29c6f965e70ed84e50f8e9e577b1e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.xai-chain.net", "need_estimate_gas": false}, {"id": "zeta", "community_id": 7000, "name": "ZetaChain", "native_token": {"id": "zeta", "symbol": "ZETA", "logo": "https://static.debank.com/image/zeta_token/logo_url/zeta/d0e1b5e519d99c452a30e83a1263d1d0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zeta/d0e1b5e519d99c452a30e83a1263d1d0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zeta/fb4ab4eb798244887bfd65455bd42d6b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://zetachain.blockscout.com", "need_estimate_gas": false}, {"id": "rari", "community_id": 1380012617, "name": "RARI", "native_token": {"id": "rari", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rari/67fc6abba5cfc6bb3a57bb6afcf5afee.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rari/73456a9386ce19d00584fec493206005.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mainnet.explorer.rarichain.org", "need_estimate_gas": false}, {"id": "dym", "community_id": 1100, "name": "Dymension", "native_token": {"id": "dym", "symbol": "DYM", "logo": "https://static.debank.com/image/dym_token/logo_url/dym/ab62b0f446408c84a2e17d9178a4e8e9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dym/ab62b0f446408c84a2e17d9178a4e8e9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dym/0a9e4481802f4c0aae6a5a97605809d8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://dym.fyi", "need_estimate_gas": false}, {"id": "merlin", "community_id": 4200, "name": "Merlin", "native_token": {"id": "merlin", "symbol": "BTC", "logo": "https://static.debank.com/image/merlin_token/logo_url/merlin/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/merlin/458e4686dfb909ba871bd96fe45417a8.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/merlin/72e28432e865c544c1045017892187bc.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.merlinchain.io", "need_estimate_gas": false}, {"id": "blast", "community_id": 81457, "name": "Blast", "native_token": {"id": "blast", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/blast/15132294afd38ce980639a381ee30149.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/blast/828eb570083948e156a34ab8588e26b3.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://blastscan.io", "need_estimate_gas": false}, {"id": "smr", "community_id": 148, "name": "Shimmer EVM", "native_token": {"id": "smr", "symbol": "SMR", "logo": "https://static.debank.com/image/smr_token/logo_url/smr/fbf679837a276530dd9b253dfa85c1f5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/smr/d22267bfdee42c88a15e605b30861a30.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/smr/2e536df7a52d2f5948f8fd0b9f5d0cb4.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.evm.shimmer.network", "need_estimate_gas": false}, {"id": "iota", "community_id": 8822, "name": "IOTA EVM", "native_token": {"id": "iota", "symbol": "IOTA", "logo": "https://static.debank.com/image/iota_token/logo_url/iota/b2fbb37acc6a3be27231fbc49aed481a.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/iota/b2fbb37acc6a3be27231fbc49aed481a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/iota/acedda9f542b72c0109c8c20caf526d9.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.evm.iota.org", "need_estimate_gas": false}, {"id": "platon", "community_id": 210425, "name": "PlatON", "native_token": {"id": "platon", "symbol": "LAT", "logo": "https://static.debank.com/image/platon_token/logo_url/platon/b5df1214981b0888e48fbb18d302c6ba.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/platon/b5df1214981b0888e48fbb18d302c6ba.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/platon/e5104b97d20a18df9f28b0673ebd7440.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.platon.network", "need_estimate_gas": false}, {"id": "rollux", "community_id": 570, "name": "Rollux", "native_token": {"id": "rollux", "symbol": "SYS", "logo": "https://static.debank.com/image/rollux_token/logo_url/rollux/a57476d6cd8e27ee6d7eae318c3c7eee.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rollux/b38f1a5be41a8e87766436ad9d9919a9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rollux/25c6383b3ae8b989c1e234c6734ba2ae.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.rollux.com", "need_estimate_gas": false}, {"id": "sx", "community_id": 416, "name": "SX", "native_token": {"id": "sx", "symbol": "SX", "logo": "https://static.debank.com/image/sx_token/logo_url/sx/1cd91dbcb82de12b4587607bc4924bc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sx/1cd91dbcb82de12b4587607bc4924bc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sx/0bddf854e56d6e7629b2f8ca1be707b0.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.sx.technology", "need_estimate_gas": false}, {"id": "eon", "community_id": 7332, "name": "Horizen EON", "native_token": {"id": "eon", "symbol": "ZEN", "logo": "https://static.debank.com/image/eon_token/logo_url/eon/bf6e7dbdd2facde7ed39c9f881537775.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/eon/36deb31f3e0a7c74762971d79245f82e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/eon/f071cd6b0e2c8a9ea6a3e213651ed7f2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://eon-explorer.horizenlabs.io", "need_estimate_gas": false}, {"id": "ulx", "community_id": 1231, "name": "Ultron", "native_token": {"id": "ulx", "symbol": "ULX", "logo": "https://static.debank.com/image/ulx_token/logo_url/ulx/371eb14527f3a80ed382f67278f43c7e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ulx/371eb14527f3a80ed382f67278f43c7e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ulx/7d6d20d13ec0a5c7d286aaea404f2d91.png", "eip_1559": false, "is_disabled": true, "explorer_host": "https://ulxscan.com", "need_estimate_gas": false}, {"id": "map", "community_id": 22776, "name": "MAP Protocol", "native_token": {"id": "map", "symbol": "MAPO", "logo": "https://static.debank.com/image/map_token/logo_url/map/3efde740a6e9d32661757aad8ae2b3a2.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/map/3efde740a6e9d32661757aad8ae2b3a2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/map/18ec31888ba251dd6d47e469b636d5fe.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://www.maposcan.io", "need_estimate_gas": false}, {"id": "karak", "community_id": 2410, "name": "Karak", "native_token": {"id": "karak", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/karak/a9e47f00f6eeb2c9cc8f9551cff5fe68.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/karak/5d5ca3507b4a1d64a85406f7382412d7.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.karak.network", "need_estimate_gas": false}, {"id": "aze", "community_id": 3776, "name": "Astar zkEVM", "native_token": {"id": "aze", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/aze/6def6ac081a37e94ed0106da2cefeaf4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/aze/490d08032b0ee878dc0251c35c26383b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://astar-zkevm.explorer.startale.com", "need_estimate_gas": false}, {"id": "frax", "community_id": 252, "name": "Fraxtal", "native_token": {"id": "frax", "symbol": "frxETH", "logo": "https://static.debank.com/image/frax_token/logo_url/frax/4313f25f6c5196e8fce2c80fa34c73d0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/frax/2e210d888690ad0c424355cc8471d48d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/frax/7ae2bc54b406cd3c378b0bd28df2b3ff.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://fraxscan.com", "need_estimate_gas": false}, {"id": "lumio", "community_id": 8866, "name": "SuperLumio", "native_token": {"id": "lumio", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/lumio/be6cd376260e0e214d8486f2300a4fb9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/lumio/7960121f0a9235ff30bc65c57f0fe3a8.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://explorer.lumio.io", "need_estimate_gas": false}, {"id": "apex", "community_id": 70700, "name": "Proof of Play Apex", "native_token": {"id": "apex", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/apex/f60665106aba5b08563e26b4ba4baf83.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/apex/e1b94232b7eeedb147c489761118411a.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.apex.proofofplay.com", "need_estimate_gas": false}, {"id": "savm", "community_id": 3109, "name": "SatoshiVM Alpha", "native_token": {"id": "savm", "symbol": "BTC", "logo": "https://static.debank.com/image/savm_token/logo_url/savm/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/savm/8f92638826f2c97063c7de7726160655.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/savm/3315cc8579422c06720d9521e3bb0f90.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://svmscan.io", "need_estimate_gas": false}, {"id": "kroma", "community_id": 255, "name": "Kroma", "native_token": {"id": "kroma", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kroma/7c88e9e0e2488172fc1fcb9da3096a70.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kroma/a7c2e13d0aaaf866a4adf0fc7f0aa9df.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://kromascan.com", "need_estimate_gas": false}, {"id": "ela", "community_id": 20, "name": "Elastos", "native_token": {"id": "ela", "symbol": "ELA", "logo": "https://static.debank.com/image/ela_token/logo_url/ela/42a9831ba9df693f00437527ec851099.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ela/42a9831ba9df693f00437527ec851099.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ela/fc429a7e514b50a08ff5627575a47f6f.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://esc.elastos.io", "need_estimate_gas": false}, {"id": "bevm", "community_id": 11501, "name": "BEVM", "native_token": {"id": "bevm", "symbol": "BTC", "logo": "https://static.debank.com/image/bevm_token/logo_url/bevm/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bevm/aafd9b13a2187db02661b85c72fb3cc3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bevm/0030aceb597e1c79f55c53676171d636.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan-mainnet.bevm.io", "need_estimate_gas": false}, {"id": "degen", "community_id": 666666666, "name": "Degen", "native_token": {"id": "degen", "symbol": "DEGEN", "logo": "https://static.debank.com/image/degen_token/logo_url/degen/29dd6d5df71347d2ad3b77c194915844.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/degen/29dd6d5df71347d2ad3b77c194915844.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/degen/c046b42727ff864d1865a102442affb8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.degen.tips", "need_estimate_gas": false}, {"id": "zklink", "community_id": 810180, "name": "zkLink Nova", "native_token": {"id": "zklink", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zklink/b3a4000979cc4f3701135a5f565ffeb0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zklink/585235bd940f119317757760798237ae.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.zklink.io", "need_estimate_gas": false}, {"id": "xlayer", "community_id": 196, "name": "X Layer", "native_token": {"id": "xlayer", "symbol": "OKB", "logo": "https://static.debank.com/image/xlayer_token/logo_url/xlayer/02e2fec5f8b2f5783ceb38d683557de3.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xlayer/282a62903a4c74a964b704a161d1ba39.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xlayer/bb5d85b54ec4634bd8b6703b27e254ba.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.oklink.com/xlayer", "need_estimate_gas": false}, {"id": "molten", "community_id": 360, "name": "Molten", "native_token": {"id": "molten", "symbol": "MOLTEN", "logo": "https://static.debank.com/image/molten_token/logo_url/molten/9cb5d5dc7b200ceaa577e0431a731203.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/molten/9cb5d5dc7b200ceaa577e0431a731203.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/molten/56b94881ef4e1e8ea6765dc5442bf17a.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://molten.calderaexplorer.xyz", "need_estimate_gas": false}, {"id": "btr", "community_id": 200901, "name": "Bitlayer", "native_token": {"id": "btr", "symbol": "BTC", "logo": "https://static.debank.com/image/btr_token/logo_url/btr/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/btr/78ff16cf14dad73c168a70f7c971e401.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/btr/33a233f67cb62320dd49c7a3a05c1d4b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://www.btrscan.com", "need_estimate_gas": false}, {"id": "b2", "community_id": 223, "name": "B\u00b2", "native_token": {"id": "b2", "symbol": "BTC", "logo": "https://static.debank.com/image/b2_token/logo_url/b2/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/b2/6ca6c8bc33af59c5b9273a2b7efbd236.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/b2/3df748afc47cc1c76107981bc312a190.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.bsquared.network", "need_estimate_gas": false}, {"id": "bob", "community_id": 60808, "name": "BOB", "native_token": {"id": "bob", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bob/4e0029be99877775664327213a8da60e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bob/7f61e1ed6fae04833ee21d83c9998d22.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.gobob.xyz", "need_estimate_gas": false}, {"id": "reya", "community_id": 1729, "name": "Reya", "native_token": {"id": "reya", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/reya/20d71aad4279c33229297da1f00d8ae1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/reya/7643e04c35af62a7572aecbdc4565040.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.reya.network", "need_estimate_gas": true}, {"id": "bb", "community_id": 6001, "name": "BounceBit", "native_token": {"id": "bb", "symbol": "BB", "logo": "https://static.debank.com/image/bb_token/logo_url/bb/da74a4980f24d870cb43ccd763e0c966.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bb/da74a4980f24d870cb43ccd763e0c966.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bb/31ba7b64206471376f34f2b4c5c097f8.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://bbscan.io", "need_estimate_gas": false}, {"id": "ailayer", "community_id": 2649, "name": "AILayer", "native_token": {"id": "ailayer", "symbol": "BTC", "logo": "https://static.debank.com/image/ailayer_token/logo_url/ailayer/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ailayer/54ed2cefa4246acecb0b0ba6ddaf5e8a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ailayer/cdf4f9fb0b1c4d14da133ce76ebf0b76.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://mainnet-explorer.anvm.io", "need_estimate_gas": false}, {"id": "sanko", "community_id": 1996, "name": "Sanko", "native_token": {"id": "sanko", "symbol": "DMT", "logo": "https://static.debank.com/image/sanko_token/logo_url/sanko/a3ab5461c7afa714c877cf57fbb033ad.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sanko/a3ab5461c7afa714c877cf57fbb033ad.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sanko/596ade63d11b1a8eafcffc9ecac32632.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://explorer.sanko.xyz", "need_estimate_gas": false}, {"id": "taiko", "community_id": 167000, "name": "Taiko", "native_token": {"id": "taiko", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/taiko/7723fbdb38ef181cd07a8b8691671e6b.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/taiko/16d831636a2aa32e5b58f264a61311e0.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://taikoscan.io", "need_estimate_gas": false}, {"id": "cyber", "community_id": 7560, "name": "Cyber", "native_token": {"id": "cyber", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cyber/3a3c0c5da5fa8876c8c338afae0db478.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cyber/239566559dc0c5fd5f5e2d76b85c6490.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://cyberscan.co", "need_estimate_gas": false}, {"id": "sei", "community_id": 1329, "name": "Sei", "native_token": {"id": "sei", "symbol": "SEI", "logo": "https://static.debank.com/image/sei_token/logo_url/sei/34ddf58f678be2db5b2636b59c9828b5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sei/34ddf58f678be2db5b2636b59c9828b5.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sei/632af17fefaa435817bd6bc3c549280d.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://seitrace.com", "need_estimate_gas": false}, {"id": "strax", "community_id": 105105, "name": "Stratis", "native_token": {"id": "strax", "symbol": "STRAX", "logo": "https://static.debank.com/image/strax_token/logo_url/strax/62929cc22496a34349782a0c685377dd.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/strax/7675d16c026442847faf6bbe7708bf9c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/strax/01db3348ae950906fec6ec74966b59f9.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.stratisevm.com", "need_estimate_gas": false}, {"id": "mint", "community_id": 185, "name": "Mint", "native_token": {"id": "mint", "symbol": "ETH", "logo": "https://static.debank.com/image/mint_token/logo_url/mint/48bfb74adddd170e936578aec422836d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mint/86404f93cd4e51eafcc2e244d417c03f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mint/1bc50cbf5ec022d40efe48c4ec68c25d.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mintscan.org", "need_estimate_gas": false}] \ No newline at end of file +[ + { + "id": "eth", + "community_id": 1, + "name": "Ethereum", + "native_token": { + "id": "eth", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/eth/42ba589cd077e7bdd97db6480b0ff61d.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/eth/561dda8f1ed8f0b2f46474bde3f02d0b.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://etherscan.io", + "need_estimate_gas": false + }, + { + "id": "bsc", + "community_id": 56, + "name": "BNB Chain", + "native_token": { + "id": "bsc", + "symbol": "BNB", + "logo": "https://static.debank.com/image/coin/logo_url/bnb/9784283a36f23a58982fc964574ea530.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/bsc/bc73fa84b7fc5337905e527dadcbc854.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bsc/8e44e643d6e2fd335a72b4cda6368e1a.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://bscscan.com", + "need_estimate_gas": false + }, + { + "id": "xdai", + "community_id": 100, + "name": "Gnosis Chain", + "native_token": { + "id": "xdai", + "symbol": "xDai", + "logo": "https://static.debank.com/image/xdai_token/logo_url/xdai/297890dc063e6dfb6cb4065cdf38382e.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/xdai/43c1e09e93e68c9f0f3b132976394529.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xdai/d8744f83d1a3bef4941c0820d76242a2.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://gnosisscan.io", + "need_estimate_gas": false + }, + { + "id": "matic", + "community_id": 137, + "name": "Polygon", + "native_token": { + "id": "matic", + "symbol": "MATIC", + "logo": "https://static.debank.com/image/matic_token/logo_url/matic/6f5a6b6f0732a7a235131bd7804d357c.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/matic/52ca152c08831e4765506c9bd75767e8.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/matic/d9d33b57922dce7a5ac567b0e5eb1e4b.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://polygonscan.com", + "need_estimate_gas": false + }, + { + "id": "ftm", + "community_id": 250, + "name": "Fantom", + "native_token": { + "id": "ftm", + "symbol": "FTM", + "logo": "https://static.debank.com/image/ftm_token/logo_url/ftm/33fdb9c5067e94f3a1b9e78f6fa86984.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/ftm/14133435f89637157a4405e954e1b1b2.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ftm/64178bae592be3a33c160b1d9b9a124a.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://ftmscan.com", + "need_estimate_gas": false + }, + { + "id": "avax", + "community_id": 43114, + "name": "Avalanche", + "native_token": { + "id": "avax", + "symbol": "AVAX", + "logo": "https://static.debank.com/image/avax_token/logo_url/avax/0b9c84359c84d6bdd5bfda9c2d4c4a82.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/avax/4d1649e8a0c7dec9de3491b81807d402.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/avax/e8a86458cb9e656052f0250d079622d8.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://snowtrace.io", + "need_estimate_gas": false + }, + { + "id": "op", + "community_id": 10, + "name": "OP", + "native_token": { + "id": "op", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/op/01ae734fe781c9c2ae6a4cc7e9244056.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/op/b571a53bc1ce3833a6cc3db42847931b.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://optimistic.etherscan.io", + "need_estimate_gas": false + }, + { + "id": "arb", + "community_id": 42161, + "name": "Arbitrum", + "native_token": { + "id": "arb", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/arb/854f629937ce94bebeb2cd38fb336de7.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/arb/315c3c4560a12e9c94841706e3ed9ce5.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://arbiscan.io", + "need_estimate_gas": true + }, + { + "id": "celo", + "community_id": 42220, + "name": "Celo", + "native_token": { + "id": "celo", + "symbol": "CELO", + "logo": "https://static.debank.com/image/celo_token/logo_url/0x471ece3750da237f93b8e339c536989b8978a438/6f524d91db674876ba0f5767cf0124cc.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/celo/41da5c1d3c0945ae822a1f85f02c76cf.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/celo/17b4db6dd9f3559117547bc22ddc5b89.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://celoscan.io", + "need_estimate_gas": false + }, + { + "id": "movr", + "community_id": 1285, + "name": "Moonriver", + "native_token": { + "id": "movr", + "symbol": "MOVR", + "logo": "https://static.debank.com/image/mtr_token/logo_url/0xb158870beb809ad955bf56065c5c10d7fd957cc0/aa42368ae1d5856d15c13ecc0ff74af6.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/movr/4b0de5a711b437f187c0d0f15cc0398b.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/movr/c13a5af6c923aad7cc6cad311267da8e.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://moonriver.moonscan.io", + "need_estimate_gas": false + }, + { + "id": "cro", + "community_id": 25, + "name": "Cronos", + "native_token": { + "id": "cro", + "symbol": "CRO", + "logo": "https://static.debank.com/image/cro_token/logo_url/cro/7803de9b434be197c2c1399465abdf39.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/cro/f947000cc879ee8ffa032793808c741c.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cro/555a092be8378d6e55000b3846043bec.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://cronoscan.com", + "need_estimate_gas": false + }, + { + "id": "boba", + "community_id": 288, + "name": "Boba", + "native_token": { + "id": "boba", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/boba/e43d79cd8088ceb3ea3e4a240a75728f.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/boba/aea02e2a1cf1087f299f4d501777d0cd.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://bobascan.com", + "need_estimate_gas": true + }, + { + "id": "metis", + "community_id": 1088, + "name": "Metis", + "native_token": { + "id": "metis", + "symbol": "Metis", + "logo": "https://static.debank.com/image/coin/logo_url/metis/7485c0a61c1e05fdf707113b6b6ac917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/metis/7485c0a61c1e05fdf707113b6b6ac917.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/metis/3fb2c5171563b035fe4add98eca01efc.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://explorer.metis.io", + "need_estimate_gas": false + }, + { + "id": "btt", + "community_id": 199, + "name": "BitTorrent", + "native_token": { + "id": "btt", + "symbol": "BTT", + "logo": "https://static.debank.com/image/btt_token/logo_url/btt/2130a8d57ff2a0f3d50a4ec9432897c6.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/btt/2130a8d57ff2a0f3d50a4ec9432897c6.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/btt/4d76b329327ccfa153e47c750d0775d3.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://bttcscan.com", + "need_estimate_gas": false + }, + { + "id": "aurora", + "community_id": 1313161554, + "name": "Aurora", + "native_token": { + "id": "aurora", + "symbol": "AETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/aurora/da491099bb44690eda122cdd67c5c610.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/aurora/f4109e1ec9f24aa36c23a5d9d27286fb.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://aurorascan.dev", + "need_estimate_gas": true + }, + { + "id": "mobm", + "community_id": 1284, + "name": "Moonbeam", + "native_token": { + "id": "mobm", + "symbol": "GLMR", + "logo": "https://static.debank.com/image/mobm_token/logo_url/mobm/a8442077d76b258297181c3e6eb8c9cc.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/mobm/a8442077d76b258297181c3e6eb8c9cc.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mobm/293430b9780093287759bbf2ed80f939.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://moonscan.io", + "need_estimate_gas": false + }, + { + "id": "sbch", + "community_id": 10000, + "name": "SmartBch", + "native_token": { + "id": "sbch", + "symbol": "BCH", + "logo": "https://static.debank.com/image/sbch_token/logo_url/sbch/03007b5353bb9e221efb82a6a70d9ec9.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/sbch/d78ac780803e7f0a17b73558f423502e.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sbch/0b08879f05d6a13d7a4181510a1138cf.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://www.smartscan.cash", + "need_estimate_gas": false + }, + { + "id": "fuse", + "community_id": 122, + "name": "Fuse", + "native_token": { + "id": "fuse", + "symbol": "FUSE", + "logo": "https://static.debank.com/image/arb_token/logo_url/0xbdef0e9ef12e689f366fe494a7a7d0dad25d9286/b9fe0bbfeccc43ac46bc652752e25532.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/fuse/7a21b958761d52d04ff0ce829d1703f4.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fuse/ceda89bc24064a4c583f369811ee29b6.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://explorer.fuse.io", + "need_estimate_gas": false + }, + { + "id": "hmy", + "community_id": 1666600000, + "name": "Harmony", + "native_token": { + "id": "hmy", + "symbol": "ONE", + "logo": "https://static.debank.com/image/hmy_token/logo_url/hmy/734c003023531e31c636ae25d5a73172.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/hmy/b3bfb4681f81a85e25c28e150dcbfe51.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/hmy/a92fd20b6691292d93160e2606035468.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://explorer.harmony.one", + "need_estimate_gas": false + }, + { + "id": "klay", + "community_id": 8217, + "name": "Klaytn", + "native_token": { + "id": "klay", + "symbol": "KLAY", + "logo": "https://static.debank.com/image/klay_token/logo_url/klay/1df018b8493cb97c50b7e390ef63cba4.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/klay/1df018b8493cb97c50b7e390ef63cba4.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/klay/f5a2aefdbaa9cbc90c0fa1ec0443ec63.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://scope.klaytn.com", + "need_estimate_gas": false + }, + { + "id": "astar", + "community_id": 592, + "name": "Astar", + "native_token": { + "id": "astar", + "symbol": "ASTR", + "logo": "https://static.debank.com/image/astar_token/logo_url/astar/a827be92d88617a918ea060a9a6f1572.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/astar/398c7e0014bdada3d818367a7273fabe.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/astar/116f17a7abe800b7675377857fac1dcd.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://blockscout.com/astar", + "need_estimate_gas": false + }, + { + "id": "iotx", + "community_id": 4689, + "name": "IoTeX", + "native_token": { + "id": "iotx", + "symbol": "IOTX", + "logo": "https://static.debank.com/image/iotx_token/logo_url/iotx/d3be2cd8677f86bd9ab7d5f3701afcc9.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/iotx/d3be2cd8677f86bd9ab7d5f3701afcc9.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/iotx/419fdcf87eceb9b8c34af0c5e3985d44.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://iotexscan.io", + "need_estimate_gas": false + }, + { + "id": "rsk", + "community_id": 30, + "name": "Rootstock", + "native_token": { + "id": "rsk", + "symbol": "RBTC", + "logo": "https://static.debank.com/image/rsk_token/logo_url/rsk/1dae003fa89234ac011c0dac51126770.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/rsk/ff47def89fba98394168bf5f39920c8c.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rsk/8f621d4d08c69ba79d5aae53bc9d3eeb.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://rootstock.blockscout.com", + "need_estimate_gas": false + }, + { + "id": "wan", + "community_id": 888, + "name": "Wanchain", + "native_token": { + "id": "wan", + "symbol": "WAN", + "logo": "https://static.debank.com/image/wan_token/logo_url/wan/f205dea796c0abae5b6749d697adfffa.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/wan/f3aa8b31414732ea5e026e05665146e6.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/wan/dc0ce7bb158767b2de10ce3f23b62675.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://www.wanscan.org", + "need_estimate_gas": false + }, + { + "id": "kcc", + "community_id": 321, + "name": "KCC", + "native_token": { + "id": "kcc", + "symbol": "KCS", + "logo": "https://static.debank.com/image/kcc_token/logo_url/kcc/7fca710b626725fc67f02be57f71c597.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/kcc/3a5a4ef7d5f1db1e53880d70219d75b6.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kcc/d3f270fe9ccdd0fc9047bcf9a62d8110.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://explorer.kcc.io/en", + "need_estimate_gas": false + }, + { + "id": "sgb", + "community_id": 19, + "name": "Songbird", + "native_token": { + "id": "sgb", + "symbol": "SGB", + "logo": "https://static.debank.com/image/sgb_token/logo_url/0x02f0826ef6ad107cfc861152b32b52fd11bab9ed/619f46d574d62a50bdfd9f0e2f47ddc1.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/sgb/619f46d574d62a50bdfd9f0e2f47ddc1.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sgb/eeef2dd3241f458e7f43dd06319e6cb2.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://songbird-explorer.flare.network", + "need_estimate_gas": false + }, + { + "id": "evmos", + "community_id": 9001, + "name": "EvmOS", + "native_token": { + "id": "evmos", + "symbol": "EVMOS", + "logo": "https://static.debank.com/image/evmos_token/logo_url/evmos/26e038b4d5475d5a4b92f7fc08bdabc9.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/evmos/26e038b4d5475d5a4b92f7fc08bdabc9.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/evmos/4d575ca6baef4f1de8dcead622091a79.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://escan.live", + "need_estimate_gas": false + }, + { + "id": "dfk", + "community_id": 53935, + "name": "DFK", + "native_token": { + "id": "dfk", + "symbol": "JEWEL", + "logo": "https://static.debank.com/image/dfk_token/logo_url/dfk/09b4ee0e9d0695201fcc7e912ac31595.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/dfk/233867c089c5b71be150aa56003f3f7a.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dfk/bab611be6bf763da73c6179c2150ffdf.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://subnets.avax.network/defi-kingdoms/dfk-chain/explorer", + "need_estimate_gas": false + }, + { + "id": "tlos", + "community_id": 40, + "name": "Telos", + "native_token": { + "id": "tlos", + "symbol": "TLOS", + "logo": "https://static.debank.com/image/tlos_token/logo_url/tlos/7e45efcbc8d74f7fd6cda972938f4ade.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/telos/f9f7493def4c08ed222540bebd8ce87a.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/tlos/deae1896415f9dac66e60cb47d8165d7.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://www.teloscan.io", + "need_estimate_gas": false + }, + { + "id": "nova", + "community_id": 42170, + "name": "Arbitrum Nova", + "native_token": { + "id": "nova", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/nova/06eb2b7add8ba443d5b219c04089c326.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/nova/b61c3a7723f39265c8b98967407e46db.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://nova.arbiscan.io", + "need_estimate_gas": true + }, + { + "id": "canto", + "community_id": 7700, + "name": "Canto", + "native_token": { + "id": "canto", + "symbol": "CANTO", + "logo": "https://static.debank.com/image/canto_token/logo_url/canto/47574ef619e057d2c6bbce1caba57fb6.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/canto/47574ef619e057d2c6bbce1caba57fb6.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/canto/29bd07f96ac7805a1b14649f356d3eee.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://tuber.build", + "need_estimate_gas": false + }, + { + "id": "doge", + "community_id": 2000, + "name": "Dogechain", + "native_token": { + "id": "doge", + "symbol": "DOGE", + "logo": "https://static.debank.com/image/doge_token/logo_url/doge/2538141079688a7a43bc22c7b60fb45f.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/doge/2538141079688a7a43bc22c7b60fb45f.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/doge/aa18ed341ae19e5e381dfac1062fee73.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://explorer.dogechain.dog", + "need_estimate_gas": false + }, + { + "id": "kava", + "community_id": 2222, + "name": "Kava", + "native_token": { + "id": "kava", + "symbol": "KAVA", + "logo": "https://static.debank.com/image/kava_token/logo_url/kava/f5b7c6ffbe4d99da363a78d98e748880.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/kava/b26bf85a1a817e409f9a3902e996dc21.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kava/2e672dd7947e41a34d6cbc5995ad24b2.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://kavascan.com", + "need_estimate_gas": false + }, + { + "id": "step", + "community_id": 1234, + "name": "Step", + "native_token": { + "id": "step", + "symbol": "FITFI", + "logo": "https://static.debank.com/image/step_token/logo_url/step/9d345f7e03f078657bb1ffd494442d67.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/step/db79600b8feafe17845617ca9c606dbe.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/step/e3250b0b574f55b1ec82434549e6f959.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://stepscan.io", + "need_estimate_gas": false + }, + { + "id": "mada", + "community_id": 2001, + "name": "Milkomeda C1", + "native_token": { + "id": "mada", + "symbol": "milkADA", + "logo": "https://static.debank.com/image/mada_token/logo_url/mada/cb356bfa1b48206c834e62113604567d.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/mada/cdc4b1112c2c5a2757cbda33f4476b7f.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mada/185df9833e6215d48ccfd389be59b752.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://explorer-mainnet-cardano-evm.c1.milkomeda.com", + "need_estimate_gas": false + }, + { + "id": "cfx", + "community_id": 1030, + "name": "Conflux", + "native_token": { + "id": "cfx", + "symbol": "CFX", + "logo": "https://static.debank.com/image/cfx_token/logo_url/cfx/f493f92ad1087e23cf8dadab9850abb5.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/cfx/eab0c7304c6820b48b2a8d0930459b82.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cfx/d45e5225fc8e97623c798599a2f8ce50.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://evm.confluxscan.io", + "need_estimate_gas": false + }, + { + "id": "brise", + "community_id": 32520, + "name": "Bitgert", + "native_token": { + "id": "brise", + "symbol": "BRISE", + "logo": "https://static.debank.com/image/brise_token/logo_url/brise/4f6c040cf49f4d8c4eabbad7cd2f4ae4.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/brise/4f6c040cf49f4d8c4eabbad7cd2f4ae4.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/brise/34c2bec8f0eaaf44929ce604c645c729.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://brisescan.com", + "need_estimate_gas": false + }, + { + "id": "ckb", + "community_id": 71402, + "name": "Godwoken", + "native_token": { + "id": "ckb", + "symbol": "CKB", + "logo": "https://static.debank.com/image/ckb_token/logo_url/ckb/18d430b7e9b48750bad7e88513a8f2c5.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/ckb/e821893503104870d5e73f56dbd73746.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ckb/5b7e976954a29e0ff3fc67a03d702d44.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://gwscan.com", + "need_estimate_gas": false + }, + { + "id": "era", + "community_id": 324, + "name": "zkSync Era", + "native_token": { + "id": "era", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/era/2cfcd0c8436b05d811b03935f6c1d7da.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/era/ae1951502c3514d43374d7e6718bda9a.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://era.zksync.network", + "need_estimate_gas": true + }, + { + "id": "ron", + "community_id": 2020, + "name": "Ronin", + "native_token": { + "id": "ron", + "symbol": "RON", + "logo": "https://static.debank.com/image/ron_token/logo_url/0xe514d9deb7966c8be0ca922de8a064264ea6bcd4/f65d4fdc17d5533c59ebcd6eb1f47320.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/ron/6e0f509804bc83bf042ef4d674c1c5ee.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ron/a7164cbb1bcf36c6b13abece4956e7ec.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://explorer.roninchain.com", + "need_estimate_gas": false + }, + { + "id": "pze", + "community_id": 1101, + "name": "Polygon zkEVM", + "native_token": { + "id": "pze", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/pze/a2276dce2d6a200c6148fb975f0eadd3.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/pze/94d0cff539cb8f18c93f11a454f894b3.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://zkevm.polygonscan.com", + "need_estimate_gas": false + }, + { + "id": "core", + "community_id": 1116, + "name": "CORE", + "native_token": { + "id": "core", + "symbol": "CORE", + "logo": "https://static.debank.com/image/core_token/logo_url/core/1a7becfe112c0c9bfc25628cd70e94a6.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/core/ccc02f660e5dd410b23ca3250ae7c060.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/core/e52df8e06f7763e05e1d94cce21683a5.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://scan.coredao.org", + "need_estimate_gas": false + }, + { + "id": "wemix", + "community_id": 1111, + "name": "WEMIX", + "native_token": { + "id": "wemix", + "symbol": "WEMIX", + "logo": "https://static.debank.com/image/wemix_token/logo_url/wemix/6431c197ec9f2a1d334a356b316fbb49.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/wemix/d1ba88d1df6cca0b0cb359c36a09c054.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/wemix/66b877a83349d6d158796f825f5b9633.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.wemix.com", + "need_estimate_gas": false + }, + { + "id": "etc", + "community_id": 61, + "name": "Ethereum Classic", + "native_token": { + "id": "etc", + "symbol": "ETC", + "logo": "https://static.debank.com/image/okt_token/logo_url/0x99970778e2715bbc9cf8fb83d10dcbc2d2d551a3/782943aff604f69c7889d90926348210.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/etc/7ccf90ee6822ab440fb603337da256fa.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/etc/81a154d78dce2782739ac9e0d8e05f6d.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://blockscout.com/etc/mainnet", + "need_estimate_gas": false + }, + { + "id": "pls", + "community_id": 369, + "name": "PulseChain", + "native_token": { + "id": "pls", + "symbol": "PLS", + "logo": "https://static.debank.com/image/pls_token/logo_url/pls/aa6be079fa9eb568e02150734ebb3db0.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/pls/aa6be079fa9eb568e02150734ebb3db0.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/pls/7c01fc668883d77e87c9334ec7d6b6ab.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://scan.mypinata.cloud/ipfs/bafybeidn64pd2u525lmoipjl4nh3ooa2imd7huionjsdepdsphl5slfowy/#", + "need_estimate_gas": false + }, + { + "id": "flr", + "community_id": 14, + "name": "Flare", + "native_token": { + "id": "flr", + "symbol": "FLR", + "logo": "https://static.debank.com/image/flr_token/logo_url/flr/c7d8087092d5d7b80794630612afb32e.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/flr/9ee03d5d7036ad9024e81d55596bb4dc.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/flr/ad866bf4323576b66651c9e2bbfd8a80.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://flare-explorer.flare.network", + "need_estimate_gas": false + }, + { + "id": "fsn", + "community_id": 32659, + "name": "Fusion", + "native_token": { + "id": "fsn", + "symbol": "FSN", + "logo": "https://static.debank.com/image/fsn_token/logo_url/fsn/047789979f0b5733602b29517753bdf3.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/fsn/047789979f0b5733602b29517753bdf3.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fsn/dfb374f7abf97b869ccf42bbf697feae.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://fsnscan.com", + "need_estimate_gas": false + }, + { + "id": "mtr", + "community_id": 82, + "name": "Meter", + "native_token": { + "id": "mtr", + "symbol": "MTR", + "logo": "https://static.debank.com/image/mtr_token/logo_url/mtr/920c6f4fdcb408703b435a97b963200b.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/mtr/2dc6f079f52ca22778eb684e1ce650b3.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mtr/0eafbdc8de9656a9de0f28efa2070450.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://scan.meter.io", + "need_estimate_gas": false + }, + { + "id": "rose", + "community_id": 42262, + "name": "Oasis Emerald", + "native_token": { + "id": "rose", + "symbol": "ROSE", + "logo": "https://static.debank.com/image/rose_token/logo_url/rose/33ade55b0f3efa10e9eec002c6417257.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/rose/33ade55b0f3efa10e9eec002c6417257.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rose/2e2351720f1772e3b3c7c2891f3d0192.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.emerald.oasis.dev", + "need_estimate_gas": false + }, + { + "id": "oas", + "community_id": 248, + "name": "Oasys", + "native_token": { + "id": "oas", + "symbol": "OAS", + "logo": "https://static.debank.com/image/oas_token/logo_url/oas/322b2cb0935af95b9cabd8a59b629566.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/oas/61dfecab1ba8a404354ce94b5a54d4b3.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/oas/95888aa80c9eb4dbde714c69b3cc7425.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://scan.oasys.games", + "need_estimate_gas": false + }, + { + "id": "zora", + "community_id": 7777777, + "name": "Zora", + "native_token": { + "id": "zora", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/zora/de39f62c4489a2359d5e1198a8e02ef1.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zora/25dfb04c552c35d3d8e30e5ba136b9e6.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.zora.energy", + "need_estimate_gas": false + }, + { + "id": "base", + "community_id": 8453, + "name": "Base", + "native_token": { + "id": "base", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/base/ccc1513e4f390542c4fb2f4b88ce9579.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/base/025de9d02848e257740c14bdd1f9330b.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://www.basescan.org", + "need_estimate_gas": false + }, + { + "id": "linea", + "community_id": 59144, + "name": "Linea", + "native_token": { + "id": "linea", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/linea/32d4ff2cf92c766ace975559c232179c.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/linea/adee1a93003ab543957692844fdaf9f2.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://lineascan.build", + "need_estimate_gas": false + }, + { + "id": "mnt", + "community_id": 5000, + "name": "Mantle", + "native_token": { + "id": "mnt", + "symbol": "MNT", + "logo": "https://static.debank.com/image/eth_token/logo_url/0x3c3a81e81dc49a522a592e7622a7e711c06bf354/a443c78c33704d48f06e5686bb87f85e.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/mnt/0af11a52431d60ded59655c7ca7e1475.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mnt/f642653f191f4fd59cbf9efefc4c007d.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://mantlescan.xyz", + "need_estimate_gas": true + }, + { + "id": "tenet", + "community_id": 1559, + "name": "Tenet", + "native_token": { + "id": "tenet", + "symbol": "TENET", + "logo": "https://static.debank.com/image/tenet_token/logo_url/tenet/2da9b626102a7de9625aaf753cfac321.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/tenet/803be22e467ee9a5abe00d69a9c3ea4f.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/tenet/651386abf4fa22f64613faf8dc5187f1.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://tenetscan.io", + "need_estimate_gas": false + }, + { + "id": "lyx", + "community_id": 42, + "name": "LUKSO", + "native_token": { + "id": "lyx", + "symbol": "LYX", + "logo": "https://static.debank.com/image/eth_token/logo_url/0xa8b919680258d369114910511cc87595aec0be6d/78a30c7b781e3889548d5920c09133dc.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/lyx/dbe6eef57e66817e61297d9b188248ed.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/lyx/83230c4279ab2813907de034d87ab319.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.execution.mainnet.lukso.network", + "need_estimate_gas": false + }, + { + "id": "manta", + "community_id": 169, + "name": "Manta Pacific", + "native_token": { + "id": "manta", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/manta/0e25a60b96a29d6a5b9e524be7565845.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/manta/ead2552c140ffd5482e7222964bac558.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://pacific-explorer.manta.network", + "need_estimate_gas": true + }, + { + "id": "scrl", + "community_id": 534352, + "name": "Scroll", + "native_token": { + "id": "scrl", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/scrl/1fa5c7e0bfd353ed0a97c1476c9c42d2.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/scrl/dd0d05b6fba614d57b55f0724acd723c.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://scrollscan.com", + "need_estimate_gas": false + }, + { + "id": "opbnb", + "community_id": 204, + "name": "opBNB", + "native_token": { + "id": "opbnb", + "symbol": "BNB", + "logo": "https://static.debank.com/image/coin/logo_url/bnb/9784283a36f23a58982fc964574ea530.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/opbnb/07e2e686e363a842d0982493638e1285.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/opbnb/8e44e643d6e2fd335a72b4cda6368e1a.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://mainnet.opbnbscan.com", + "need_estimate_gas": false + }, + { + "id": "loot", + "community_id": 5151706, + "name": "Loot", + "native_token": { + "id": "loot", + "symbol": "AGLD", + "logo": "https://static.debank.com/image/loot_token/logo_url/loot/a6c0dc128d515e2d32526075decae9ec.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/loot/0f098333a1a4f474115b05862e680573.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/loot/af8f162614f388e896872f628f3e3e6e.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://explorer.lootchain.com", + "need_estimate_gas": false + }, + { + "id": "shib", + "community_id": 109, + "name": "Shibarium", + "native_token": { + "id": "shib", + "symbol": "BONE", + "logo": "https://static.debank.com/image/shib_token/logo_url/shib/e49e9a98f5fb1fb04ad96bb536457df9.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/shib/4ec79ed9ee4988dfdfc41e1634a447be.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/shib/574d888cbdce3a08ea8a5f636fc2ae3e.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://shibariumscan.io", + "need_estimate_gas": false + }, + { + "id": "fx", + "community_id": 530, + "name": "Function X", + "native_token": { + "id": "fx", + "symbol": "FX", + "logo": "https://static.debank.com/image/fx_token/logo_url/fx/6fee82420b2394e0b68d7d7e692a0a01.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/fx/6fee82420b2394e0b68d7d7e692a0a01.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fx/528e10d16f64db1798bca33092526d96.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://starscan.io/evm", + "need_estimate_gas": false + }, + { + "id": "mode", + "community_id": 34443, + "name": "Mode", + "native_token": { + "id": "mode", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/mode/466e6e12f4fd827f8f497cceb0601a5e.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mode/f7033404c6d09fafcbe53cbf806a585f.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.mode.network", + "need_estimate_gas": false + }, + { + "id": "beam", + "community_id": 4337, + "name": "Beam", + "native_token": { + "id": "beam", + "symbol": "BEAM", + "logo": "https://static.debank.com/image/beam_token/logo_url/beam/90a1e9f46664d070752deeb65878a3bd.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/beam/90a1e9f46664d070752deeb65878a3bd.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/beam/f54a6974e60b63c5f328721ad0281f1b.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://subnets.avax.network/beam", + "need_estimate_gas": false + }, + { + "id": "fon", + "community_id": 201022, + "name": "FON Chain", + "native_token": { + "id": "fon", + "symbol": "FON", + "logo": "https://static.debank.com/image/fon_token/logo_url/fon/369618f4d45053fa4439943c9c2d387d.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/fon/369618f4d45053fa4439943c9c2d387d.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fon/6c5ee096ec2173f9250d58b4384343aa.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://fonscan.io", + "need_estimate_gas": false + }, + { + "id": "zkfair", + "community_id": 42766, + "name": "ZKFair", + "native_token": { + "id": "zkfair", + "symbol": "USDC", + "logo": "https://static.debank.com/image/zkfair_token/logo_url/zkfair/35ab0987153a8355a454223aae371ac7.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/zkfair/c66f35d57c6146cdff82dfeb316ba801.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zkfair/4133904f2769ebcffa48177c0b7831a6.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://scan.zkfair.io", + "need_estimate_gas": false + }, + { + "id": "alot", + "community_id": 432204, + "name": "Dexalot", + "native_token": { + "id": "alot", + "symbol": "ALOT", + "logo": "https://static.debank.com/image/alot_token/logo_url/alot/a03e5e8bc56a8bcd5f5c7b830e8b5877.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/alot/0ed4884da27d022dbd5ed5bc919ee248.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/alot/8ed0cbf9842daef43fbb32558d4f4309.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://subnets.avax.network/dexalot", + "need_estimate_gas": false + }, + { + "id": "bfc", + "community_id": 3068, + "name": "Bifrost", + "native_token": { + "id": "bfc", + "symbol": "BFC", + "logo": "https://static.debank.com/image/bfc_token/logo_url/bfc/f0c01b58f084660f8c8ff43f5c85301c.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/bfc/7c10f5191b16d0cc068cb6eff32b6347.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bfc/728682dd1707271a7b268fac3594e94e.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.mainnet.bifrostnetwork.com", + "need_estimate_gas": false + }, + { + "id": "xai", + "community_id": 660279, + "name": "Xai", + "native_token": { + "id": "xai", + "symbol": "XAI", + "logo": "https://static.debank.com/image/xai_token/logo_url/xai/022ab00135c182f6e67e583ecda93863.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/xai/b02622ce65251bdcb31aa6621a10a096.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xai/9eb29c6f965e70ed84e50f8e9e577b1e.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.xai-chain.net", + "need_estimate_gas": false + }, + { + "id": "zeta", + "community_id": 7000, + "name": "ZetaChain", + "native_token": { + "id": "zeta", + "symbol": "ZETA", + "logo": "https://static.debank.com/image/zeta_token/logo_url/zeta/d0e1b5e519d99c452a30e83a1263d1d0.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/zeta/d0e1b5e519d99c452a30e83a1263d1d0.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zeta/fb4ab4eb798244887bfd65455bd42d6b.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://zetachain.blockscout.com", + "need_estimate_gas": false + }, + { + "id": "rari", + "community_id": 1380012617, + "name": "RARI", + "native_token": { + "id": "rari", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/rari/67fc6abba5cfc6bb3a57bb6afcf5afee.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rari/73456a9386ce19d00584fec493206005.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://mainnet.explorer.rarichain.org", + "need_estimate_gas": false + }, + { + "id": "dym", + "community_id": 1100, + "name": "Dymension", + "native_token": { + "id": "dym", + "symbol": "DYM", + "logo": "https://static.debank.com/image/dym_token/logo_url/dym/ab62b0f446408c84a2e17d9178a4e8e9.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/dym/ab62b0f446408c84a2e17d9178a4e8e9.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dym/0a9e4481802f4c0aae6a5a97605809d8.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://dym.fyi", + "need_estimate_gas": false + }, + { + "id": "merlin", + "community_id": 4200, + "name": "Merlin", + "native_token": { + "id": "merlin", + "symbol": "BTC", + "logo": "https://static.debank.com/image/merlin_token/logo_url/merlin/fe230e468272b84aba78d08bb4140456.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/merlin/458e4686dfb909ba871bd96fe45417a8.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/merlin/72e28432e865c544c1045017892187bc.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://scan.merlinchain.io", + "need_estimate_gas": false + }, + { + "id": "blast", + "community_id": 81457, + "name": "Blast", + "native_token": { + "id": "blast", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/blast/15132294afd38ce980639a381ee30149.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/blast/828eb570083948e156a34ab8588e26b3.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://blastscan.io", + "need_estimate_gas": false + }, + { + "id": "smr", + "community_id": 148, + "name": "Shimmer EVM", + "native_token": { + "id": "smr", + "symbol": "SMR", + "logo": "https://static.debank.com/image/smr_token/logo_url/smr/fbf679837a276530dd9b253dfa85c1f5.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/smr/d22267bfdee42c88a15e605b30861a30.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/smr/2e536df7a52d2f5948f8fd0b9f5d0cb4.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://explorer.evm.shimmer.network", + "need_estimate_gas": false + }, + { + "id": "iota", + "community_id": 8822, + "name": "IOTA EVM", + "native_token": { + "id": "iota", + "symbol": "IOTA", + "logo": "https://static.debank.com/image/iota_token/logo_url/iota/b2fbb37acc6a3be27231fbc49aed481a.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/iota/b2fbb37acc6a3be27231fbc49aed481a.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/iota/acedda9f542b72c0109c8c20caf526d9.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://explorer.evm.iota.org", + "need_estimate_gas": false + }, + { + "id": "platon", + "community_id": 210425, + "name": "PlatON", + "native_token": { + "id": "platon", + "symbol": "LAT", + "logo": "https://static.debank.com/image/platon_token/logo_url/platon/b5df1214981b0888e48fbb18d302c6ba.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/platon/b5df1214981b0888e48fbb18d302c6ba.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/platon/e5104b97d20a18df9f28b0673ebd7440.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://scan.platon.network", + "need_estimate_gas": false + }, + { + "id": "rollux", + "community_id": 570, + "name": "Rollux", + "native_token": { + "id": "rollux", + "symbol": "SYS", + "logo": "https://static.debank.com/image/rollux_token/logo_url/rollux/a57476d6cd8e27ee6d7eae318c3c7eee.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/rollux/b38f1a5be41a8e87766436ad9d9919a9.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rollux/25c6383b3ae8b989c1e234c6734ba2ae.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.rollux.com", + "need_estimate_gas": false + }, + { + "id": "sx", + "community_id": 416, + "name": "SX", + "native_token": { + "id": "sx", + "symbol": "SX", + "logo": "https://static.debank.com/image/sx_token/logo_url/sx/1cd91dbcb82de12b4587607bc4924bc9.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/sx/1cd91dbcb82de12b4587607bc4924bc9.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sx/0bddf854e56d6e7629b2f8ca1be707b0.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://explorer.sx.technology", + "need_estimate_gas": false + }, + { + "id": "eon", + "community_id": 7332, + "name": "Horizen EON", + "native_token": { + "id": "eon", + "symbol": "ZEN", + "logo": "https://static.debank.com/image/eon_token/logo_url/eon/bf6e7dbdd2facde7ed39c9f881537775.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/eon/36deb31f3e0a7c74762971d79245f82e.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/eon/f071cd6b0e2c8a9ea6a3e213651ed7f2.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://eon-explorer.horizenlabs.io", + "need_estimate_gas": false + }, + { + "id": "ulx", + "community_id": 1231, + "name": "Ultron", + "native_token": { + "id": "ulx", + "symbol": "ULX", + "logo": "https://static.debank.com/image/ulx_token/logo_url/ulx/371eb14527f3a80ed382f67278f43c7e.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/ulx/371eb14527f3a80ed382f67278f43c7e.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ulx/7d6d20d13ec0a5c7d286aaea404f2d91.png", + "eip_1559": false, + "is_disabled": true, + "explorer_host": "https://ulxscan.com", + "need_estimate_gas": false + }, + { + "id": "map", + "community_id": 22776, + "name": "MAP Protocol", + "native_token": { + "id": "map", + "symbol": "MAPO", + "logo": "https://static.debank.com/image/map_token/logo_url/map/3efde740a6e9d32661757aad8ae2b3a2.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/map/3efde740a6e9d32661757aad8ae2b3a2.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/map/18ec31888ba251dd6d47e469b636d5fe.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://www.maposcan.io", + "need_estimate_gas": false + }, + { + "id": "karak", + "community_id": 2410, + "name": "Karak", + "native_token": { + "id": "karak", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/karak/a9e47f00f6eeb2c9cc8f9551cff5fe68.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/karak/5d5ca3507b4a1d64a85406f7382412d7.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.karak.network", + "need_estimate_gas": false + }, + { + "id": "aze", + "community_id": 3776, + "name": "Astar zkEVM", + "native_token": { + "id": "aze", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/aze/6def6ac081a37e94ed0106da2cefeaf4.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/aze/490d08032b0ee878dc0251c35c26383b.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://astar-zkevm.explorer.startale.com", + "need_estimate_gas": false + }, + { + "id": "frax", + "community_id": 252, + "name": "Fraxtal", + "native_token": { + "id": "frax", + "symbol": "frxETH", + "logo": "https://static.debank.com/image/frax_token/logo_url/frax/4313f25f6c5196e8fce2c80fa34c73d0.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/frax/2e210d888690ad0c424355cc8471d48d.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/frax/7ae2bc54b406cd3c378b0bd28df2b3ff.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://fraxscan.com", + "need_estimate_gas": false + }, + { + "id": "lumio", + "community_id": 8866, + "name": "SuperLumio", + "native_token": { + "id": "lumio", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/lumio/be6cd376260e0e214d8486f2300a4fb9.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/lumio/7960121f0a9235ff30bc65c57f0fe3a8.png", + "eip_1559": true, + "is_disabled": true, + "explorer_host": "https://explorer.lumio.io", + "need_estimate_gas": false + }, + { + "id": "apex", + "community_id": 70700, + "name": "Proof of Play Apex", + "native_token": { + "id": "apex", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/apex/f60665106aba5b08563e26b4ba4baf83.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/apex/e1b94232b7eeedb147c489761118411a.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.apex.proofofplay.com", + "need_estimate_gas": false + }, + { + "id": "savm", + "community_id": 3109, + "name": "SatoshiVM Alpha", + "native_token": { + "id": "savm", + "symbol": "BTC", + "logo": "https://static.debank.com/image/savm_token/logo_url/savm/fe230e468272b84aba78d08bb4140456.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/savm/8f92638826f2c97063c7de7726160655.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/savm/3315cc8579422c06720d9521e3bb0f90.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://svmscan.io", + "need_estimate_gas": false + }, + { + "id": "kroma", + "community_id": 255, + "name": "Kroma", + "native_token": { + "id": "kroma", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/kroma/7c88e9e0e2488172fc1fcb9da3096a70.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kroma/a7c2e13d0aaaf866a4adf0fc7f0aa9df.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://kromascan.com", + "need_estimate_gas": false + }, + { + "id": "ela", + "community_id": 20, + "name": "Elastos", + "native_token": { + "id": "ela", + "symbol": "ELA", + "logo": "https://static.debank.com/image/ela_token/logo_url/ela/42a9831ba9df693f00437527ec851099.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/ela/42a9831ba9df693f00437527ec851099.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ela/fc429a7e514b50a08ff5627575a47f6f.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://esc.elastos.io", + "need_estimate_gas": false + }, + { + "id": "bevm", + "community_id": 11501, + "name": "BEVM", + "native_token": { + "id": "bevm", + "symbol": "BTC", + "logo": "https://static.debank.com/image/bevm_token/logo_url/bevm/fe230e468272b84aba78d08bb4140456.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/bevm/aafd9b13a2187db02661b85c72fb3cc3.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bevm/0030aceb597e1c79f55c53676171d636.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://scan-mainnet.bevm.io", + "need_estimate_gas": false + }, + { + "id": "degen", + "community_id": 666666666, + "name": "Degen", + "native_token": { + "id": "degen", + "symbol": "DEGEN", + "logo": "https://static.debank.com/image/degen_token/logo_url/degen/29dd6d5df71347d2ad3b77c194915844.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/degen/29dd6d5df71347d2ad3b77c194915844.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/degen/c046b42727ff864d1865a102442affb8.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.degen.tips", + "need_estimate_gas": false + }, + { + "id": "zklink", + "community_id": 810180, + "name": "zkLink Nova", + "native_token": { + "id": "zklink", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/zklink/b3a4000979cc4f3701135a5f565ffeb0.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zklink/585235bd940f119317757760798237ae.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.zklink.io", + "need_estimate_gas": false + }, + { + "id": "xlayer", + "community_id": 196, + "name": "X Layer", + "native_token": { + "id": "xlayer", + "symbol": "OKB", + "logo": "https://static.debank.com/image/xlayer_token/logo_url/xlayer/02e2fec5f8b2f5783ceb38d683557de3.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/xlayer/282a62903a4c74a964b704a161d1ba39.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xlayer/bb5d85b54ec4634bd8b6703b27e254ba.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://www.oklink.com/xlayer", + "need_estimate_gas": false + }, + { + "id": "molten", + "community_id": 360, + "name": "Molten", + "native_token": { + "id": "molten", + "symbol": "MOLTEN", + "logo": "https://static.debank.com/image/molten_token/logo_url/molten/9cb5d5dc7b200ceaa577e0431a731203.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/molten/9cb5d5dc7b200ceaa577e0431a731203.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/molten/56b94881ef4e1e8ea6765dc5442bf17a.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://molten.calderaexplorer.xyz", + "need_estimate_gas": false + }, + { + "id": "btr", + "community_id": 200901, + "name": "Bitlayer", + "native_token": { + "id": "btr", + "symbol": "BTC", + "logo": "https://static.debank.com/image/btr_token/logo_url/btr/fe230e468272b84aba78d08bb4140456.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/btr/78ff16cf14dad73c168a70f7c971e401.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/btr/33a233f67cb62320dd49c7a3a05c1d4b.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://www.btrscan.com", + "need_estimate_gas": false + }, + { + "id": "b2", + "community_id": 223, + "name": "B\u00b2", + "native_token": { + "id": "b2", + "symbol": "BTC", + "logo": "https://static.debank.com/image/b2_token/logo_url/b2/fe230e468272b84aba78d08bb4140456.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/b2/6ca6c8bc33af59c5b9273a2b7efbd236.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/b2/3df748afc47cc1c76107981bc312a190.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.bsquared.network", + "need_estimate_gas": false + }, + { + "id": "bob", + "community_id": 60808, + "name": "BOB", + "native_token": { + "id": "bob", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/bob/4e0029be99877775664327213a8da60e.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bob/7f61e1ed6fae04833ee21d83c9998d22.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.gobob.xyz", + "need_estimate_gas": false + }, + { + "id": "reya", + "community_id": 1729, + "name": "Reya", + "native_token": { + "id": "reya", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/reya/20d71aad4279c33229297da1f00d8ae1.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/reya/7643e04c35af62a7572aecbdc4565040.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.reya.network", + "need_estimate_gas": true + }, + { + "id": "bb", + "community_id": 6001, + "name": "BounceBit", + "native_token": { + "id": "bb", + "symbol": "BB", + "logo": "https://static.debank.com/image/bb_token/logo_url/bb/da74a4980f24d870cb43ccd763e0c966.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/bb/da74a4980f24d870cb43ccd763e0c966.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bb/31ba7b64206471376f34f2b4c5c097f8.png", + "eip_1559": true, + "is_disabled": true, + "explorer_host": "https://bbscan.io", + "need_estimate_gas": false + }, + { + "id": "ailayer", + "community_id": 2649, + "name": "AILayer", + "native_token": { + "id": "ailayer", + "symbol": "BTC", + "logo": "https://static.debank.com/image/ailayer_token/logo_url/ailayer/fe230e468272b84aba78d08bb4140456.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/ailayer/54ed2cefa4246acecb0b0ba6ddaf5e8a.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ailayer/cdf4f9fb0b1c4d14da133ce76ebf0b76.png", + "eip_1559": true, + "is_disabled": true, + "explorer_host": "https://mainnet-explorer.anvm.io", + "need_estimate_gas": false + }, + { + "id": "sanko", + "community_id": 1996, + "name": "Sanko", + "native_token": { + "id": "sanko", + "symbol": "DMT", + "logo": "https://static.debank.com/image/sanko_token/logo_url/sanko/a3ab5461c7afa714c877cf57fbb033ad.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/sanko/a3ab5461c7afa714c877cf57fbb033ad.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sanko/596ade63d11b1a8eafcffc9ecac32632.png", + "eip_1559": true, + "is_disabled": true, + "explorer_host": "https://explorer.sanko.xyz", + "need_estimate_gas": false + }, + { + "id": "taiko", + "community_id": 167000, + "name": "Taiko", + "native_token": { + "id": "taiko", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/taiko/7723fbdb38ef181cd07a8b8691671e6b.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/taiko/16d831636a2aa32e5b58f264a61311e0.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://taikoscan.io", + "need_estimate_gas": false + }, + { + "id": "cyber", + "community_id": 7560, + "name": "Cyber", + "native_token": { + "id": "cyber", + "symbol": "ETH", + "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/cyber/3a3c0c5da5fa8876c8c338afae0db478.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cyber/239566559dc0c5fd5f5e2d76b85c6490.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://cyberscan.co", + "need_estimate_gas": false + }, + { + "id": "sei", + "community_id": 1329, + "name": "Sei", + "native_token": { + "id": "sei", + "symbol": "SEI", + "logo": "https://static.debank.com/image/sei_token/logo_url/sei/34ddf58f678be2db5b2636b59c9828b5.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/sei/34ddf58f678be2db5b2636b59c9828b5.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sei/632af17fefaa435817bd6bc3c549280d.png", + "eip_1559": false, + "is_disabled": false, + "explorer_host": "https://seitrace.com", + "need_estimate_gas": false + }, + { + "id": "strax", + "community_id": 105105, + "name": "Stratis", + "native_token": { + "id": "strax", + "symbol": "STRAX", + "logo": "https://static.debank.com/image/strax_token/logo_url/strax/62929cc22496a34349782a0c685377dd.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/strax/7675d16c026442847faf6bbe7708bf9c.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/strax/01db3348ae950906fec6ec74966b59f9.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://explorer.stratisevm.com", + "need_estimate_gas": false + }, + { + "id": "mint", + "community_id": 185, + "name": "Mint", + "native_token": { + "id": "mint", + "symbol": "ETH", + "logo": "https://static.debank.com/image/mint_token/logo_url/mint/48bfb74adddd170e936578aec422836d.png", + "decimals": 18 + }, + "logo_url": "https://static.debank.com/image/chain/logo_url/mint/86404f93cd4e51eafcc2e244d417c03f.png", + "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mint/1bc50cbf5ec022d40efe48c4ec68c25d.png", + "eip_1559": true, + "is_disabled": false, + "explorer_host": "https://mintscan.org", + "need_estimate_gas": false + } +] diff --git a/src/ui/assets/bridge/bungee.png b/src/ui/assets/bridge/bungee.png new file mode 100644 index 0000000000000000000000000000000000000000..960186907acb004105cd34e2a28aacdda0af5e1d GIT binary patch literal 945 zcmV;i15W&jP)}j5eouVIs{KO1i*g-Iwu3=m;zxy0@wm>o&!;CNCo1T z1aC?M#R6o(0%5KLS_8satpZpBok#IszU8IvOYf6&(T( z0u>6KX#}Ee1E=?R%m4rY6?9TgQvg5&B*Wm3;8EbHW5cMZcu*M`d3kC;i=zMl0y;@V zK~zY`m6hji;!qHU4K^*=)ZJs;yCL-6J89c{fBy$r!?ndaHstb2h#$U!}A4x6?n<>kxsseIZfrs}i;U)8e2<~(`D@{zG$#+C|jD;)e?iz+J z7Hi1Qrqg+TD{u^m@b&igyEZ9$Lfd#~II{lv-G{c;7Y8G&t2W$fwWX2A4usde-Wz?e z5jqNNvHAPv=H`p`C{`+!c3=0ty1I%Df$+Z9d)w(36if;N#$v7Q3Ewo!k)-m2S}-JO zRThYlA;QnQyI*y=`}nuG6-vt=A3wFVDsK&(mNKmTF$xB@kfmkkereVP*p55X1dL2U zZn(}|L(M6!R}kvvawzyqUw|M>c#5@-`)_1H7`E_~xfS;?P^^NyC!2y$8uRx80!mibMwDbIWo+HFeZ@BU zTHL8%wxr;bZ-{1nQCk?MsO1sYAQEJwdaJ|hEn{>b$mnx`+l6tCDwO + + \ No newline at end of file diff --git a/src/ui/assets/bridge/duration.svg b/src/ui/assets/bridge/duration.svg new file mode 100644 index 00000000000..7cb07acf2ae --- /dev/null +++ b/src/ui/assets/bridge/duration.svg @@ -0,0 +1,10 @@ + + + + + + + + \ No newline at end of file diff --git a/src/ui/assets/bridge/li-fi.png b/src/ui/assets/bridge/li-fi.png new file mode 100644 index 0000000000000000000000000000000000000000..d8a07527059b4a9cebc3b1a6d2b604b13ba31650 GIT binary patch literal 811 zcmV+`1JwM9P) zwg3OW|M<86_O<`^w*U6G|Mj;2^|k-@w*U3G|Mj&0^tS)>wg33H|Mj*1_qYG{w*U6D z|Mj*10000G3lJX{AQli9=&SJx2MX}9`WO-!0|EoemC~+&wWWHjJuN^jAuk&g91sl= z^0NHEj>w&Lq?vJ_j%k!-OKDp}UsF9+MKee>CpYY__S~Z7*Ph>&Z=8l>i+fvua#VI~ zP;p8&O(Pm5;-~A0000J zbW%=J06+vJ;HXi<;Ex%@k9l}xW5dI*WFz|k00H|+L_t(Y$BmWeR`W0nhTS-$DP?@0 zI?^W1=$=4n*&FWvo*?cCvST^${)&&^Cz325i|OL-iB|^z&v&`SepAf{MNTzStAnmH ztHMsJM%pb0j5;EM@H$k;ZfNNMt?^*K3fGucrN2M9x*4^;)zJ!RXy)^W-CHj={{Xhzy{m7@*n( zFhFk^ut^|j8v!7IA;7Kzur;6qaMv>f9tFU)0<7htPc&eYw*y0jt9gJPUv69|Dp-jo zFAl+$+j~&t%2y*v7t_o9L*&$1OfNtaXAE@R&z8|B07@2P&GK9H+7-98Px&3?2?*k+ z6pNh!kQp)TMAnjZJ0>%dLv+z?2yw=QY#PYO07VD{P>FG{I5e;>`Tyf%Y!kq66{ENG z7&EQ{QHCu?HMD^ufL{6(>rJLdP#V5IPWpeHqz$`rC~{)#{xka>iyrKz-`AKy)~V5M pM7X2ceYBeyx9R17_Ksbm)GsaJlA8%VMv(vj002ovPDHLkV1oY`ep3Jd literal 0 HcmV?d00001 diff --git a/src/ui/assets/bridge/question-cc.svg b/src/ui/assets/bridge/question-cc.svg new file mode 100644 index 00000000000..8692e9c996c --- /dev/null +++ b/src/ui/assets/bridge/question-cc.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/ui/assets/dashboard/bridge.svg b/src/ui/assets/dashboard/bridge.svg new file mode 100644 index 00000000000..8873ef6eee1 --- /dev/null +++ b/src/ui/assets/dashboard/bridge.svg @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/src/ui/assets/dashboard/receive-header.svg b/src/ui/assets/dashboard/receive-header.svg new file mode 100644 index 00000000000..036e71bf746 --- /dev/null +++ b/src/ui/assets/dashboard/receive-header.svg @@ -0,0 +1,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/ui/component/ChainSelector/InForm.tsx b/src/ui/component/ChainSelector/InForm.tsx index cd41544df3d..c4c9482d399 100644 --- a/src/ui/component/ChainSelector/InForm.tsx +++ b/src/ui/component/ChainSelector/InForm.tsx @@ -45,10 +45,12 @@ export const ChainRender = ({ chain, readonly, className, + arrowDownComponent, ...other }: { chain: CHAINS_ENUM; readonly: boolean; + arrowDownComponent?: React.ReactNode; } & InsHTMLAttributes) => { const wallet = useWallet(); @@ -82,7 +84,12 @@ export const ChainRender = ({ /> {chainInfo?.name} {/* {!readonly && } */} - {!readonly && } + {!readonly && + (arrowDownComponent ? ( + arrowDownComponent + ) : ( + + ))} ); }; @@ -96,6 +103,8 @@ interface ChainSelectorProps { supportChains?: SelectChainListProps['supportChains']; disabledTips?: SelectChainListProps['disabledTips']; title?: React.ReactNode; + chainRenderClassName?: string; + arrowDownComponent?: React.ReactNode; } export default function ChainSelectorInForm({ value, @@ -105,6 +114,8 @@ export default function ChainSelectorInForm({ disabledTips, title, supportChains, + chainRenderClassName, + arrowDownComponent, }: ChainSelectorProps) { const [showSelectorModal, setShowSelectorModal] = useState(showModal); @@ -130,6 +141,8 @@ export default function ChainSelectorInForm({ chain={value} onClick={handleClickSelector} readonly={readonly} + className={chainRenderClassName} + arrowDownComponent={arrowDownComponent} /> {!readonly && ( ()({ dispatch.preference.init(); dispatch.swap.init(); dispatch.whitelist.init(); + dispatch.bridge.init(); }, }), }); diff --git a/src/ui/models/bridge.ts b/src/ui/models/bridge.ts new file mode 100644 index 00000000000..aef0094a07c --- /dev/null +++ b/src/ui/models/bridge.ts @@ -0,0 +1,147 @@ +import { createModel } from '@rematch/core'; +import { RootModel } from '.'; +import { CHAINS, CHAINS_ENUM } from 'consts'; +import { TokenItem } from '@rabby-wallet/rabby-api/dist/types'; +import { BridgeServiceStore } from '@/background/service/bridge'; +import { BridgeAggregator } from '@/background/service/openapi'; + +export const bridge = createModel()({ + name: 'bridge', + + state: { + supportedChains: [], + aggregatorsListInit: false, + aggregatorsList: [], + selectedAggregators: [], + selectedDex: null, + selectedChain: null, + unlimitedAllowance: false, + sortIncludeGasFee: true, + $$initialSelectedChain: null, + } as Partial & { + $$initialSelectedChain: CHAINS_ENUM | null; + aggregatorsList: BridgeAggregator[]; + aggregatorsListInit: boolean; + supportedChains: CHAINS_ENUM[]; + }, + + reducers: { + setField(state, payload: Partial) { + return Object.keys(payload).reduce( + (accu, key) => { + accu[key] = payload[key]; + return accu; + }, + { ...state } + ); + }, + }, + + effects: (dispatch) => ({ + init() { + return this.syncState(); + }, + async syncState(key: keyof BridgeServiceStore | undefined, store) { + const data = await store.app.wallet.getBridgeData(key); + console.log('data', data); + this.fetchAggregatorsList(); + this.fetchSupportedChains(); + + this.setField( + key + ? { + [key]: data, + } + : { + ...(data as BridgeServiceStore), + } + ); + + if (!key) { + this.setField({ + $$initialSelectedChain: + (data as BridgeServiceStore).selectedChain || null, + }); + } + }, + + async setSelectedAggregators(selectedAggregators: string[], store) { + console.log('bridge set list'); + await store.app.wallet.setBridgeAggregators(selectedAggregators); + + this.setField({ + selectedAggregators, + }); + }, + + async setSelectedChain(selectedChain: CHAINS_ENUM, store) { + await store.app.wallet.setBridgeSelectedChain(selectedChain); + + this.setField({ + selectedChain, + }); + }, + + async setSelectedFromToken( + selectedFromToken: TokenItem | undefined, + store + ) { + await store.app.wallet.setBridgeSelectedFromToken(selectedFromToken); + + this.setField({ + selectedFromToken, + }); + }, + + async setSelectedToToken(selectedToToken: TokenItem | undefined, store) { + await store.app.wallet.setBridgeSelectedToToken(selectedToToken); + + this.setField({ + selectedToToken, + }); + }, + + async setUnlimitedAllowance(unlimitedAllowance: boolean, store) { + await store.app.wallet.setBridgeUnlimitedAllowance(unlimitedAllowance); + + this.setField({ + unlimitedAllowance, + }); + }, + + async getSwapSortIncludeGasFee(_: void, store) { + const sortIncludeGasFee = await store.app.wallet.getBridgeSortIncludeGasFee(); + this.setField({ + sortIncludeGasFee, + }); + }, + + async setSwapSortIncludeGasFee(bool: boolean, store) { + await store.app.wallet.setBridgeSortIncludeGasFee(bool); + this.getSwapSortIncludeGasFee(); + }, + + async fetchAggregatorsList(_: void, store) { + const aggregatorsList = await store.app.wallet.openapi.getBridgeAggregatorList(); + if (aggregatorsList.length) { + this.setField({ + aggregatorsListInit: true, + aggregatorsList, + }); + } + }, + + async fetchSupportedChains(_: void, store) { + const chains = await store.app.wallet.openapi.getBridgeSupportChain(); + if (chains.length) { + const mappings = Object.values(CHAINS).reduce((acc, chain) => { + acc[chain.serverId] = chain.enum; + return acc; + }, {} as Record); + this.setField({ + supportedChains: chains.map((item) => mappings[item]), + }); + } + }, + }), +}); diff --git a/src/ui/models/index.ts b/src/ui/models/index.ts index d4229139dda..a07e7f06bba 100644 --- a/src/ui/models/index.ts +++ b/src/ui/models/index.ts @@ -18,6 +18,7 @@ import { swap } from './swap'; import { customRPC } from './customRPC'; import { securityEngine } from './securityEngine'; import { sign } from './sign'; +import { bridge } from './bridge'; export interface RootModel extends Models { app: typeof app; @@ -38,6 +39,7 @@ export interface RootModel extends Models { customRPC: typeof customRPC; securityEngine: typeof securityEngine; sign: typeof sign; + bridge: typeof bridge; } export const models: RootModel = { @@ -59,6 +61,7 @@ export const models: RootModel = { customRPC, securityEngine, sign, + bridge, }; export type RabbyDispatch = RematchDispatch; diff --git a/src/ui/views/Bridge/Component/AggregatorsSettings.tsx b/src/ui/views/Bridge/Component/AggregatorsSettings.tsx new file mode 100644 index 00000000000..ddbd763924d --- /dev/null +++ b/src/ui/views/Bridge/Component/AggregatorsSettings.tsx @@ -0,0 +1,230 @@ +import { Checkbox, Modal, Popup } from '@/ui/component'; +import React, { useEffect, useState } from 'react'; +import { useSetSettingVisible } from '../hooks'; +import clsx from 'clsx'; +import { Button, Tooltip } from 'antd'; +import { useTranslation } from 'react-i18next'; +import { ReactComponent as RcIconCheck } from '@/ui/assets/dashboard/portfolio/cc-check.svg'; +import { ReactComponent as RcIconChecked } from '@/ui/assets/dashboard/portfolio/cc-checked.svg'; + +import { useRabbyDispatch, useRabbyGetter, useRabbySelector } from '@/ui/store'; +import { useHistory } from 'react-router-dom'; + +export const AggregatorsSettings = ({ + visible, + onClose, +}: { + visible: boolean; + onClose: () => void; +}) => { + const { t } = useTranslation(); + const history = useHistory(); + const dispatch = useRabbyDispatch(); + + const setVisible = useSetSettingVisible(); + + const [forceGoHome, setForceGoHome] = useState(false); + + const aggregatorsList = useRabbySelector((s) => s.bridge.aggregatorsList); + const aggregatorsListInit = useRabbySelector( + (s) => s.bridge.aggregatorsListInit + ); + const selectedAggregators = useRabbySelector( + (s) => s.bridge.selectedAggregators || [] + ); + + const [changedAggregator, setChangedAggregator] = useState( + selectedAggregators + ); + + useEffect(() => { + setChangedAggregator(selectedAggregators); + }, [selectedAggregators]); + + useEffect(() => { + if (aggregatorsListInit && aggregatorsList.length) { + const availableAggregators = aggregatorsList.some((item) => { + return selectedAggregators?.includes(item.id); + }); + if (!availableAggregators) { + setVisible(true); + setForceGoHome(true); + } else { + setForceGoHome(false); + } + } + }, [aggregatorsList, aggregatorsListInit, selectedAggregators]); + + const [open, setOpen] = useState(false); + + const onConfirm = async () => { + if (changedAggregator.length) { + await dispatch.bridge.setSelectedAggregators(changedAggregator); + setOpen(false); + onClose(); + } + }; + + return ( + + {t('page.bridge.settingModal.title')} + + } + height={400} + onClose={ + forceGoHome + ? () => { + setVisible(false); + history.replace('/dashboard'); + } + : onClose + } + bodyStyle={{ + paddingTop: 16, + }} + isSupportDarkMode + isNew + > +
+ {aggregatorsList?.map((item) => { + const checked = !!changedAggregator?.includes(item.id); + return ( +
{ + setChangedAggregator((items) => + items.includes(item.id) + ? items.filter((id) => id !== item.id) + : [...items, item.id] + ); + }} + > +
+
+ + + {item.name} + +
+ + { + setChangedAggregator((items) => + items.includes(item.id) + ? items.filter((id) => id !== item.id) + : [...items, item.id] + ); + }} + checked={checked} + width="20px" + height="20px" + unCheckBackground="transparent" + checkIcon={ + checked ? ( + + ) : ( + + ) + } + /> +
+ +
+ {t('page.bridge.settingModal.SupportedBridge')} + {item.bridge_list?.map((bridge) => { + return ( + + + + ); + })} +
+
+ ); + })} + +
+
+ +
+
+ { + setOpen(false); + }} + > + + + + ); +}; + +function EnableTrading({ onConfirm }: { onConfirm: () => void }) { + const [checked, setChecked] = useState(false); + const { t } = useTranslation(); + return ( +
+
+ {t('page.bridge.settingModal.confirmModal.title')} +
+
+

{t('page.bridge.settingModal.confirmModal.tip1')}

+

{t('page.bridge.settingModal.confirmModal.tip2')}

+
+
+ + {t( + 'page.bridge.settingModal.confirmModal.i-understand-and-accept-it' + )} + + + +
+
+ ); +} diff --git a/src/ui/views/Bridge/Component/BridgeTokenPair.tsx b/src/ui/views/Bridge/Component/BridgeTokenPair.tsx new file mode 100644 index 00000000000..35ea73044ea --- /dev/null +++ b/src/ui/views/Bridge/Component/BridgeTokenPair.tsx @@ -0,0 +1,232 @@ +import React from 'react'; +import styled from 'styled-components'; +import { ReactComponent as RcArrowDown } from '@/ui/assets/bridge/down.svg'; +import { useTranslation } from 'react-i18next'; +import { TokenItem } from '@rabby-wallet/rabby-api/dist/types'; +import { TokenWithChain } from '@/ui/component'; +import { getTokenSymbol } from '@/ui/utils/token'; +import { Drawer, DrawerProps, Skeleton } from 'antd'; +import clsx from 'clsx'; +import { formatUsdValue, useWallet } from '@/ui/utils'; +import BigNumber from 'bignumber.js'; +import { useAsync } from 'react-use'; +import { CHAINS, CHAINS_ENUM } from '@debank/common'; +import { TokenPairLoading } from './loading'; +import MatchImage from 'ui/assets/match.svg'; + +const TokenPairDrawer = ( + props: DrawerProps & { + aggregatorIds: string[]; + chain: CHAINS_ENUM; + onSelectTokenPair: (value: TokenPair) => void; + } +) => { + const { t } = useTranslation(); + const wallet = useWallet(); + const { value, loading } = useAsync(async () => { + const currentAddress = await wallet.getCurrentAccount(); + if (currentAddress && props.visible) { + return wallet.openapi.getBridgePairList({ + aggregator_ids: props.aggregatorIds, + to_chain_id: CHAINS[props.chain].serverId, + user_addr: currentAddress.address, + }); + } + }, [props.visible, props.chain, props.aggregatorIds]); + + return ( + +
+
+ {t('page.bridge.tokenPairDrawer.tokenPair')} + {t('page.bridge.tokenPairDrawer.balance')} +
+ +
+ {loading && + Array.from({ length: 6 }).map((_, i) => ( + + ))} + + {!loading && + value?.map((tokenPair, i) => { + return ( +
{ + if (tokenPair.from_token_amount) { + props.onSelectTokenPair({ + from: { + ...tokenPair.from_token, + amount: tokenPair.from_token_amount, + raw_amount_hex_str: + tokenPair.from_token_raw_amount_hex_str, + }, + to: tokenPair.to_token, + }); + } + }} + className={clsx( + 'px-20 min-h-[56px] cursor-pointer', + 'flex items-center justify-between', + 'border border-solid border-transparent rounded-md', + 'hover:border-rabby-blue-default', + !tokenPair.from_token_amount && + 'opacity-40 cursor-not-allowed' + )} + > +
+ + + {getTokenSymbol(tokenPair.from_token)} + + + {getTokenSymbol(tokenPair.to_token)} +
+ +
+ {/* {formatUsdValue( + new BigNumber( + tokenPair.from_token.raw_amount_hex_str || '0' + ) + .dividedBy(10 ** tokenPair.from_token.decimals) + .times(tokenPair.from_token.price) + .toString() + )} */} + {formatUsdValue( + new BigNumber(tokenPair.from_token_amount || '0') + .times(tokenPair.from_token.price) + .toString() + )} +
+
+ ); + })} + + {!loading && !value?.length && ( +
+ + + {t('page.bridge.tokenPairDrawer.noData')} + +
+ )} +
+
+
+ ); +}; + +const RenderWrapper = styled.div` + height: 52px; + background: var(--r-neutral-card-2, #f2f4f7); + border-radius: 6px; + padding: 0 12px; + width: 100%; + display: flex; + align-items: center; + gap: 8px; + border: 1px solid transparent; + cursor: pointer; + font-size: 16px; + font-weight: 500; + color: var(--r-neutral-title1, #192945); + + &:hover { + background: rgba(134, 151, 255, 0.2); + } + + & > { + .pair { + display: flex; + align-items: center; + gap: 12px; + + .token { + display: flex; + align-items: center; + gap: 8px; + font-size: 16px; + font-weight: 500; + color: var(--r-neutral-title1, #192945); + } + } + + .down { + margin-left: auto; + width: 20px; + height: 20px; + } + } +`; + +type TokenPair = { + from: TokenItem; + to: TokenItem; +}; + +export const BridgeTokenPair = (props: { + aggregatorIds: string[]; + chain: CHAINS_ENUM; + value?: TokenPair; + onChange: (value: TokenPair) => void; +}) => { + const { value } = props; + const { t } = useTranslation(); + const [visible, setVisible] = React.useState(false); + const onSelectTokenPair = React.useCallback( + (params: TokenPair) => { + props.onChange(params); + setVisible(false); + }, + [props.onChange] + ); + return ( + <> + setVisible(true)}> + {!value ? ( +
{t('page.bridge.tokenPairPlaceholder')}
+ ) : ( +
+
+ + {getTokenSymbol(value?.from)} +
+ + +
+ + {getTokenSymbol(value?.from)} +
+
+ )} + +
+ + {/* modal */} + setVisible(false)} + closable={false} + title={t('page.bridge.tokenPairDrawer.title')} + /> + + ); +}; diff --git a/src/ui/views/Bridge/Component/Header.tsx b/src/ui/views/Bridge/Component/Header.tsx new file mode 100644 index 00000000000..5583cbfae10 --- /dev/null +++ b/src/ui/views/Bridge/Component/Header.tsx @@ -0,0 +1,64 @@ +import { ReactComponent as RcIconSettings } from '@/ui/assets/swap/settings.svg'; +import { ReactComponent as RcIconHistory } from '@/ui/assets/swap/history.svg'; + +import { PageHeader } from '@/ui/component'; +import React, { useCallback, useEffect, useState } from 'react'; +import { AggregatorsSettings } from './AggregatorsSettings'; +import { useSetSettingVisible, useSettingVisible } from '../hooks'; +import { BridgeTxHistory } from './History'; +import { useTranslation } from 'react-i18next'; +import { useRabbyDispatch } from '@/ui/store'; + +export const Header = () => { + const visible = useSettingVisible(); + const setVisible = useSetSettingVisible(); + + const [historyVisible, setHistoryVisible] = useState(false); + const { t } = useTranslation(); + + const dispath = useRabbyDispatch(); + + useEffect(() => { + dispath.bridge.fetchAggregatorsList(); + dispath.bridge.fetchSupportedChains(); + }, []); + + return ( + <> + + { + setHistoryVisible(true); + }, [])} + /> + { + setVisible(true); + }, [])} + /> +
+ } + > + {t('page.bridge.title')} + + { + setVisible(false); + }, [])} + /> + { + setHistoryVisible(false); + }, [])} + /> + + ); +}; diff --git a/src/ui/views/Bridge/Component/History.tsx b/src/ui/views/Bridge/Component/History.tsx new file mode 100644 index 00000000000..cc16b2d170c --- /dev/null +++ b/src/ui/views/Bridge/Component/History.tsx @@ -0,0 +1,260 @@ +import { Popup } from '@/ui/component'; +import React, { forwardRef, useMemo } from 'react'; +import { useBridgeHistory } from '../hooks'; +import { TokenItem } from '@rabby-wallet/rabby-api/dist/types'; +import { formatAmount, formatUsdValue, openInTab, sinceTime } from '@/ui/utils'; +import { getTokenSymbol } from '@/ui/utils/token'; +import { TooltipWithMagnetArrow } from '@/ui/component/Tooltip/TooltipWithMagnetArrow'; +import ImgPending from 'ui/assets/swap/pending.svg'; +import ImgCompleted from 'ui/assets/swap/completed.svg'; +import ImgEmpty from 'ui/assets/swap/empty.svg'; + +import { ReactComponent as RcIconSwapArrow } from 'ui/assets/swap/arrow-right.svg'; + +import clsx from 'clsx'; +import SkeletonInput from 'antd/lib/skeleton/Input'; +import { ellipsis } from '@/ui/utils/address'; +import { useTranslation } from 'react-i18next'; +import { findChain } from '@/utils/chain'; +import { BridgeHistory } from '@/background/service/openapi'; + +const BridgeTokenIcon = (props: { token: TokenItem }) => { + const { token } = props; + const chain = React.useMemo(() => { + const chainServerId = token.chain; + return findChain({ + serverId: chainServerId, + }); + }, [token]); + + return ( +
+ + +
+ ); +}; + +const TokenCost = ({ + payToken, + receiveToken, + payTokenAmount, + receiveTokenAmount, + loading = false, + actual = false, +}: { + payToken: TokenItem; + receiveToken: TokenItem; + payTokenAmount?: number; + receiveTokenAmount?: number; + loading?: boolean; + actual?: boolean; +}) => { + if (loading) { + return ( + + ); + } + return ( +
+ +
+ {formatAmount(payTokenAmount || '0')} {getTokenSymbol(payToken)} +
+ + +
+ {formatAmount(receiveTokenAmount || '0')} {getTokenSymbol(receiveToken)} +
+
+ ); +}; + +interface TransactionProps { + data: BridgeHistory; +} +const Transaction = forwardRef( + ({ data }, ref) => { + const isPending = data.status === 'pending'; + const isCompleted = data?.status === 'completed'; + const time = + // data?.finished_at || + data?.create_at; + + const txId = data?.detail_url?.split('/').pop() || ''; + + const loading = data?.status !== 'completed'; + + const gasUsed = useMemo(() => { + if (data?.from_gas) { + return `${formatAmount(data.from_gas.gas_amount)} ${getTokenSymbol( + data?.from_gas.native_token + )} (${formatUsdValue(data.from_gas.usd_gas_fee)})`; + } + return ''; + }, [data?.from_gas]); + + const gotoScan = React.useCallback(() => { + if (data?.detail_url) { + openInTab(data?.detail_url); + } + }, []); + + const { t } = useTranslation(); + + return ( +
+
+
+ {isPending && ( + +
+ loading + + {t('page.bridge.Pending')} + +
+
+ )} + + {!isPending && sinceTime(time)} +
+
+ + + {data.aggregator.name} + + + {t('page.bridge.via-bridge', { bridge: data.bridge.name })} + +
+
+ +
+ {t('page.bridge.estimate')} +
+ +
+
+ +
+ {t('page.bridge.actual')} +
+ +
+
+ +
+ + {t('page.bridge.detail-tx')}:{' '} + + {txId ? ellipsis(txId) : ''} + + + + {!loading ? ( + + {t('page.bridge.gas-fee', { gasUsed })} + + ) : ( + + {t('page.bridge.gas-x-price', { + price: data?.from_gas?.gas_price || '', + })} + + )} +
+
+ ); + } +); + +const HistoryList = () => { + const { txList, loading, loadingMore, ref } = useBridgeHistory(); + const { t } = useTranslation(); + if (!loading && (!txList || !txList?.list?.length)) { + return ( +
+ +

+ {t('page.bridge.no-transaction-records')} +

+
+ ); + } + + return ( +
+ {txList?.list?.map((swap, idx) => ( + + ))} + {((loading && !txList) || loadingMore) && ( + <> + + + + )} +
+ ); +}; + +export const BridgeTxHistory = ({ + visible, + onClose, +}: { + visible: boolean; + onClose: () => void; +}) => { + const { t } = useTranslation(); + return ( + + + + ); +}; diff --git a/src/ui/views/Bridge/Component/IconRefresh.tsx b/src/ui/views/Bridge/Component/IconRefresh.tsx new file mode 100644 index 00000000000..2aec92c694e --- /dev/null +++ b/src/ui/views/Bridge/Component/IconRefresh.tsx @@ -0,0 +1,93 @@ +import clsx from 'clsx'; +import React, { memo } from 'react'; + +export const IconRefresh = memo((props: React.SVGProps) => { + const { className, ...other } = props; + + return ( + + + + + + + + + + + + + + + + + + + ); +}); diff --git a/src/ui/views/Bridge/Component/InsufficientTip.tsx b/src/ui/views/Bridge/Component/InsufficientTip.tsx new file mode 100644 index 00000000000..d73122f2e05 --- /dev/null +++ b/src/ui/views/Bridge/Component/InsufficientTip.tsx @@ -0,0 +1,20 @@ +import ImgWarning from 'ui/assets/swap/warn.svg'; +import React from 'react'; +import { useTranslation } from 'react-i18next'; + +export const InSufficientTip = ({ + inSufficient, +}: { + inSufficient: boolean; +}) => { + const { t } = useTranslation(); + if (!inSufficient) return null; + return ( +
+ + + {t('page.swap.InSufficientTip')} + +
+ ); +}; diff --git a/src/ui/views/Bridge/Component/Main.tsx b/src/ui/views/Bridge/Component/Main.tsx new file mode 100644 index 00000000000..7c9f22cface --- /dev/null +++ b/src/ui/views/Bridge/Component/Main.tsx @@ -0,0 +1,589 @@ +import React, { useCallback, useLayoutEffect, useMemo, useRef } from 'react'; +import { useRabbySelector } from '@/ui/store'; +import { CHAINS, CHAINS_ENUM } from '@debank/common'; +import { useTokenPair } from '../hooks/token'; +import { Alert, Button, Input, Modal, Switch, Tooltip } from 'antd'; +import BigNumber from 'bignumber.js'; +import { + formatAmount, + formatTokenAmount, + formatUsdValue, + useWallet, +} from '@/ui/utils'; +import styled from 'styled-components'; +import clsx from 'clsx'; +import { QuoteList } from './Quotes'; +import { useQuoteVisible, useSetQuoteVisible } from '../hooks'; +import { InfoCircleFilled } from '@ant-design/icons'; +import { ReceiveDetails } from './ReceiveDetail'; +import { useDispatch } from 'react-redux'; +import { useRbiSource } from '@/ui/utils/ga-event'; +import { useCss } from 'react-use'; +import { getTokenSymbol } from '@/ui/utils/token'; +import ChainSelectorInForm from '@/ui/component/ChainSelector/InForm'; +import { findChainByServerID } from '@/utils/chain'; +import type { SelectChainItemProps } from '@/ui/component/ChainSelector/components/SelectChainItem'; +import i18n from '@/i18n'; +import { useTranslation } from 'react-i18next'; +import { BridgeTokenPair } from './BridgeTokenPair'; +import { ReactComponent as RcArrowDown } from '@/ui/assets/bridge/down.svg'; + +import { ReactComponent as RcIconQuestion } from '@/ui/assets/bridge/question-cc.svg'; +import { TooltipWithMagnetArrow } from '@/ui/component/Tooltip/TooltipWithMagnetArrow'; + +const tipsClassName = clsx('text-r-neutral-body text-12 mb-8 pt-16'); + +const StyledInput = styled(Input)` + height: 46px; + font-weight: 500; + font-size: 18px; + box-shadow: none; + border-radius: 4px; + border: 0.5px solid var(--r-neutral-line, #d3d8e0); + background: transparent !important; + & > .ant-input { + font-weight: 500; + font-size: 18px; + border-width: 0px !important; + border-color: transparent; + } + &.ant-input-affix-wrapper:not(.ant-input-affix-wrapper-disabled):hover { + border-width: 0.5px !important; + } + &:active { + border: 0.5px solid transparent; + } + &:focus, + &:focus-within { + border-width: 0.5px !important; + border-color: var(--r-blue-default, #7084ff) !important; + } + &:hover { + border-width: 0.5px !important; + border-color: var(--r-blue-default, #7084ff) !important; + box-shadow: none; + } + + &:placeholder-shown { + color: #707280; + } + &::-webkit-inner-spin-button, + &::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0; + } +`; + +const PreferMEVGuardSwitch = styled(Switch)` + min-width: 24px; + height: 12px; + + &.ant-switch-checked { + background-color: var(--r-blue-default, #7084ff); + .ant-switch-handle { + left: calc(100% - 10px - 1px); + top: 1px; + } + } + .ant-switch-handle { + height: 10px; + width: 10px; + top: 1px; + left: 1px; + } +`; + +const getDisabledTips: SelectChainItemProps['disabledTips'] = (ctx) => { + const chainItem = findChainByServerID(ctx.chain.serverId); + + if (chainItem?.isTestnet) return i18n.t('page.swap.testnet-is-not-supported'); + + return i18n.t('page.swap.not-supported'); +}; + +export const Main = () => { + const { userAddress, unlimitedAllowance } = useRabbySelector((state) => ({ + userAddress: state.account.currentAccount?.address || '', + unlimitedAllowance: state.swap.unlimitedAllowance || false, + })); + + const dispatch = useDispatch(); + + const setUnlimited = useCallback( + (bool: boolean) => { + dispatch.swap.setUnlimitedAllowance(bool); + }, + [dispatch.swap.setUnlimitedAllowance] + ); + + const { + chain, + switchChain, + + payToken, + setPayToken, + receiveToken, + setReceiveToken, + exchangeToken, + + handleAmountChange, + handleBalance, + payAmount, + payTokenIsNativeToken, + isWrapToken, + inSufficient, + slippageChanged, + setSlippageChanged, + slippageState, + slippage, + setSlippage, + + feeRate, + + quoteLoading, + quoteList, + + currentProvider: activeProvider, + setActiveProvider, + // slippageValidInfo, + expired, + } = useTokenPair(userAddress); + + const selectedAggregators = useRabbySelector( + (s) => s.bridge.selectedAggregators + ); + + const allAggregators = useRabbySelector((s) => s.bridge.aggregatorsList); + + console.log('allAggregators', allAggregators); + + const originPreferMEVGuarded = useRabbySelector( + (s) => !!s.swap.preferMEVGuarded + ); + + const showMEVGuardedSwitch = useMemo(() => chain === CHAINS_ENUM.ETH, [ + chain, + ]); + + const switchPreferMEV = useCallback((bool: boolean) => { + dispatch.swap.setSwapPreferMEV(bool); + }, []); + + const preferMEVGuarded = useMemo( + () => (chain === CHAINS_ENUM.ETH ? originPreferMEVGuarded : false), + [chain, originPreferMEVGuarded] + ); + + const inputRef = useRef(); + + useLayoutEffect(() => { + if ((payToken?.id, receiveToken?.id)) { + inputRef.current?.focus(); + } + }, [payToken?.id, receiveToken?.id]); + + const visible = useQuoteVisible(); + const setVisible = useSetQuoteVisible(); + const { t } = useTranslation(); + + const btnText = useMemo(() => { + if (slippageChanged) { + return t('page.bridge.slippage-adjusted-refresh-quote'); + } + if (activeProvider && expired) { + return t('page.bridge.price-expired-refresh-route'); + } + if (activeProvider?.shouldApproveToken) { + return t('page.bridge.pprove-and-bridge'); + } + if (activeProvider?.aggregator.name) { + return t('page.bridge.bridge-via-x', { + name: activeProvider?.aggregator.name, + }); + } + + return t('page.bridge.getRoutes'); + }, [slippageChanged, activeProvider, expired, payToken, isWrapToken]); + + const wallet = useWallet(); + const rbiSource = useRbiSource(); + + const supportedChains = useRabbySelector((s) => s.bridge.supportedChains); + + const gotoSwap = useCallback(async () => { + if (!inSufficient && payToken && receiveToken && activeProvider?.tx) { + try { + wallet.bridgeToken( + { + to: activeProvider.tx.to, + value: activeProvider.tx.value, + data: activeProvider.tx.data, + payTokenRawAmount: new BigNumber(payAmount) + .times(10 ** payToken.decimals) + .toFixed(0, 1) + .toString(), + chainId: activeProvider.tx.chainId, + shouldApprove: !!activeProvider.shouldApproveToken, + shouldTwoStepApprove: !!activeProvider.shouldTwoStepApprove, + payTokenId: payToken.id, + payTokenChainServerId: payToken.chain, + info: { + aggregator_id: activeProvider.aggregator.id, + bridge_id: activeProvider.bridge_id, + from_chain_id: payToken.chain, + from_token_id: payToken.id, + from_token_amount: payAmount, + to_chain_id: receiveToken.chain, + to_token_id: receiveToken.id, + to_token_amount: activeProvider.to_token_amount, + tx: activeProvider.tx, + }, + }, + { + ga: { + category: 'Bridge', + source: 'bridge', + trigger: rbiSource, + }, + } + ); + } catch (error) { + console.error(error); + } + } + }, [ + preferMEVGuarded, + inSufficient, + payToken, + unlimitedAllowance, + wallet?.dexSwap, + activeProvider?.shouldApproveToken, + activeProvider?.shouldTwoStepApprove, + activeProvider?.bridge_id, + activeProvider?.aggregator?.id, + ]); + + const twoStepApproveCn = useCss({ + '& .ant-modal-content': { + background: '#fff', + }, + '& .ant-modal-body': { + padding: '12px 8px 32px 16px', + }, + '& .ant-modal-confirm-content': { + padding: '4px 0 0 0', + }, + '& .ant-modal-confirm-btns': { + justifyContent: 'center', + '.ant-btn-primary': { + width: '260px', + height: '40px', + }, + 'button:first-child': { + display: 'none', + }, + }, + }); + + return ( +
+
+
{t('page.bridge.bridgeTo')}
+ } + /> + +
+ {t('page.bridge.BridgeTokenPair')} +
+ +
+ { + setPayToken(value.from); + setReceiveToken(value.to); + }} + value={useMemo( + () => + payToken && receiveToken + ? { + from: payToken, + to: receiveToken, + } + : undefined, + [payToken, receiveToken] + )} + aggregatorIds={selectedAggregators || []} + chain={chain} + /> +
+ +
+
+ {t('page.bridge.Amount', { + symbol: payToken ? getTokenSymbol(payToken) : '', + })} +
+
{ + handleBalance(); + }} + > + {t('global.Balance')}: {formatAmount(payToken?.amount || 0)} +
+
+ + {payAmount + ? `≈ ${formatUsdValue( + new BigNumber(payAmount) + .times(payToken?.price || 0) + .toString(10) + )}` + : ''} + + } + /> + + {payAmount && + activeProvider && + activeProvider?.to_token_amount && + payToken && + receiveToken && ( + <> + + +
+
+
+
+ {t('page.bridge.bridge-cost')} + + +

+ Protocol Fee:{' '} + {formatTokenAmount( + new BigNumber( + activeProvider.protocol_fee.usd_value + ) + .div(receiveToken.price) + .toString() + )}{' '} + {getTokenSymbol(receiveToken)} ≈{' '} + {formatTokenAmount( + new BigNumber( + activeProvider.protocol_fee.usd_value + ) + .div(payToken.price) + .toString() + )}{' '} + {getTokenSymbol(payToken)} +

+ +

+ Gas Fee:{' '} + {formatTokenAmount( + new BigNumber(activeProvider.gas_fee.usd_value) + .div(receiveToken.price) + .toString() + )}{' '} + {getTokenSymbol(receiveToken)} ≈ + {formatTokenAmount( + new BigNumber(activeProvider.gas_fee.usd_value) + .div(payToken.price) + .toString() + )}{' '} + {getTokenSymbol(payToken)} +

+ +

+ Rabby Fee:{' '} + {formatTokenAmount( + new BigNumber( + activeProvider.rabby_fee.usd_value + ) + .div(receiveToken.price) + .toString() + )}{' '} + {getTokenSymbol(receiveToken)} ≈ + {formatTokenAmount( + new BigNumber( + activeProvider.rabby_fee.usd_value + ) + .div(payToken.price) + .toString() + )}{' '} + {getTokenSymbol(payToken)} +

+
+ } + > + + +
+ + {formatTokenAmount( + new BigNumber(activeProvider.gas_fee.usd_value) + .plus(activeProvider.rabby_fee.usd_value) + .plus(activeProvider.protocol_fee.usd_value) + .div(payToken.price) + .toString() + )}{' '} + {receiveToken ? getTokenSymbol(receiveToken) : ''} + +
+ +
+ {t('page.bridge.rabby-fee')} + + 0.25% + +
+
+
+ + )} +
+ + {inSufficient ? ( + + } + banner + message={ + + {t('page.bridge.insufficient-balance')} + + } + /> + ) : null} + +
+ +
+ {payToken && receiveToken && chain ? ( + { + setVisible(false); + }} + userAddress={userAddress} + chain={chain} + payToken={payToken} + payAmount={payAmount} + receiveToken={receiveToken} + inSufficient={inSufficient} + setActiveProvider={setActiveProvider} + /> + ) : null} + + ); +}; diff --git a/src/ui/views/Bridge/Component/QuoteItem.tsx b/src/ui/views/Bridge/Component/QuoteItem.tsx new file mode 100644 index 00000000000..b9e6f1aace9 --- /dev/null +++ b/src/ui/views/Bridge/Component/QuoteItem.tsx @@ -0,0 +1,180 @@ +import React from 'react'; +import { useTranslation } from 'react-i18next'; +import { QuoteLogo } from './QuoteLogo'; +import ImgLock from '@/ui/assets/swap/lock.svg'; +import { TokenWithChain } from '@/ui/component'; +import ImgGas from '@/ui/assets/swap/gas.svg'; +import { ReactComponent as RCIconDuration } from '@/ui/assets/bridge/duration.svg'; +import clsx from 'clsx'; +import { TooltipWithMagnetArrow } from '@/ui/component/Tooltip/TooltipWithMagnetArrow'; +import { BridgeQuote, TokenItem } from '@/background/service/openapi'; +import { formatTokenAmount } from '@debank/common'; +import { formatUsdValue } from '@/ui/utils'; +import BigNumber from 'bignumber.js'; +import { SelectedBridgeQuote, useSetQuoteVisible } from '../hooks'; +import { Tooltip } from 'antd'; + +interface QuoteItemProps extends SelectedBridgeQuote { + payAmount: string; + payToken: TokenItem; + receiveToken: TokenItem; + isBestQuote?: boolean; + bestQuoteUsd: string; + sortIncludeGasFee: boolean; + setActiveProvider?: React.Dispatch< + React.SetStateAction + >; + onlyShow?: boolean; + loading?: boolean; + inSufficient?: boolean; +} + +export const bridgeQuoteEstimatedValueBn = ( + quote: BridgeQuote, + receiveToken: TokenItem, + sortIncludeGasFee: boolean +) => { + return new BigNumber(quote.to_token_amount) + .times(receiveToken.price || 1) + .minus(sortIncludeGasFee ? quote.gas_fee.usd_value : 0); +}; + +export const BridgeQuoteItem = (props: QuoteItemProps) => { + const { t } = useTranslation(); + const openSwapQuote = useSetQuoteVisible(); + + const diffPercent = React.useMemo(() => { + if (props.onlyShow || props.isBestQuote) { + return ''; + } + + const percent = bridgeQuoteEstimatedValueBn( + props, + props.receiveToken, + props.sortIncludeGasFee + ) + .minus(props.bestQuoteUsd) + .div(props.bestQuoteUsd) + .abs() + .times(100) + .toFixed(2, 1) + .toString(); + return `-${percent}%`; + }, [props]); + + const handleClick = async () => { + if (props.inSufficient) { + return; + } + props?.setActiveProvider?.(props); + openSwapQuote(false); + }; + return ( + +
+
+
+ + + {props.aggregator.name} + + + {t('page.bridge.via-bridge', { + bridge: props.bridge.name, + })} + + {/* {props.shouldApproveToken && */} + {props.shouldApproveToken && ( + + + + )} +
+ +
+ + + {formatTokenAmount(props.payAmount || '')} + +
+
+ +
+
+ + {formatUsdValue(props.gas_fee.usd_value)} + + + {t('page.bridge.duration', { + duration: Math.round(props.duration / 60), + })} + +
+
+ + {t('page.bridge.estimated-value', { + value: formatUsdValue( + new BigNumber(props.to_token_amount) + .times(props.receiveToken.price) + .toString() + ), + })} + + {!props.onlyShow && ( + + {props.isBestQuote ? t('page.bridge.best') : diffPercent} + + )} +
+
+
+
+ ); +}; diff --git a/src/ui/views/Bridge/Component/QuoteLogo.tsx b/src/ui/views/Bridge/Component/QuoteLogo.tsx new file mode 100644 index 00000000000..660eea8b1ea --- /dev/null +++ b/src/ui/views/Bridge/Component/QuoteLogo.tsx @@ -0,0 +1,38 @@ +import { ReactComponent as IconQuoteLoading } from '@/ui/assets/swap/quote-loading.svg'; +import clsx from 'clsx'; +import React from 'react'; + +export const QuoteLogo = ({ + isLoading, + bridgeLogo, + logo, +}: { + isLoading?: boolean; + logo: string; + bridgeLogo?: string; +}) => { + return ( +
+
+ + {!!bridgeLogo && ( + + )} + {isLoading && ( +
+ +
+ )} +
+
+ ); +}; diff --git a/src/ui/views/Bridge/Component/Quotes.tsx b/src/ui/views/Bridge/Component/Quotes.tsx new file mode 100644 index 00000000000..bcc3013e01f --- /dev/null +++ b/src/ui/views/Bridge/Component/Quotes.tsx @@ -0,0 +1,201 @@ +import { Checkbox, Popup } from '@/ui/component'; +import React, { useMemo } from 'react'; +import { QuoteLoading } from './loading'; +import { IconRefresh } from './IconRefresh'; +import { SelectedBridgeQuote, useSetRefreshId } from '../hooks'; +import BigNumber from 'bignumber.js'; +import { CHAINS_ENUM } from '@/constant'; +import { SvgIconCross } from 'ui/assets'; +import { useTranslation } from 'react-i18next'; +import { BridgeQuote, TokenItem } from '@/background/service/openapi'; +import { BridgeQuoteItem } from './QuoteItem'; +import { useRabbyDispatch, useRabbySelector } from '@/ui/store'; +import MatchImage from 'ui/assets/match.svg'; + +interface QuotesProps { + chain: CHAINS_ENUM; + userAddress: string; + loading: boolean; + inSufficient: boolean; + payToken: TokenItem; + receiveToken: TokenItem; + list?: BridgeQuote[]; + activeName?: string; + visible: boolean; + onClose: () => void; + payAmount: string; + setActiveProvider: React.Dispatch< + React.SetStateAction + >; +} + +export const Quotes = ({ + list, + activeName, + inSufficient, + ...other +}: QuotesProps) => { + const { t } = useTranslation(); + const sortIncludeGasFee = useRabbySelector((s) => s.bridge.sortIncludeGasFee); + + const sortedList = useMemo(() => { + return list?.sort((a, b) => { + return new BigNumber(a.to_token_amount) + .times(other.receiveToken.price || 1) + .minus(sortIncludeGasFee ? a.gas_fee.usd_value : 0) + .minus( + new BigNumber(b.to_token_amount) + .times(other.receiveToken.price || 1) + .minus(sortIncludeGasFee ? b.gas_fee.usd_value : 0) + ) + .toNumber(); + }); + }, [list, sortIncludeGasFee, other.receiveToken]); + + const bestQuoteUsd = useMemo(() => { + const bestQuote = sortedList?.[0]; + if (!bestQuote) { + return '0'; + } + return new BigNumber(bestQuote.to_token_amount) + .times(other.receiveToken.price || 1) + .minus(sortIncludeGasFee ? bestQuote.gas_fee.usd_value : 0) + .toString(); + }, [sortedList, other.receiveToken, sortIncludeGasFee]); + + console.log('sortedList', sortedList); + + return ( +
+
+ {sortedList?.map((item, idx) => { + return ( + + ); + })} + {other.loading && + !sortedList?.length && + Array.from({ length: 5 }).map((_, idx) => )} + + {!other.loading && !sortedList?.length && ( +
+ + + {t('page.bridge.noData')} + +
+ )} +
+
+ ); +}; + +const bodyStyle = { + paddingTop: 0, + paddingBottom: 0, +}; + +export const QuoteList = (props: QuotesProps) => { + const { visible, onClose } = props; + const refresh = useSetRefreshId(); + + const refreshQuote = React.useCallback(() => { + refresh((e) => e + 1); + }, [refresh]); + + const { t } = useTranslation(); + + const sortIncludeGasFee = useRabbySelector((s) => s.bridge.sortIncludeGasFee); + + const dispatch = useRabbyDispatch(); + + return ( + + } + headerStyle={{ + paddingTop: 16, + }} + visible={visible} + title={ +
+
+
{t('page.bridge.the-following-bridge-route-are-found')}
+
+
+ +
+
+
+ + + + + + ) : ( + + + + ) + } + > + {t('page.swap.sort-with-gas')} + +
+ } + height={516} + onClose={onClose} + closable={false} + destroyOnClose + className="isConnectView z-[999]" + bodyStyle={bodyStyle} + isSupportDarkMode + > + +
+ ); +}; diff --git a/src/ui/views/Bridge/Component/ReceiveDetail.tsx b/src/ui/views/Bridge/Component/ReceiveDetail.tsx new file mode 100644 index 00000000000..d0be77b11b1 --- /dev/null +++ b/src/ui/views/Bridge/Component/ReceiveDetail.tsx @@ -0,0 +1,142 @@ +import { TokenItem } from '@rabby-wallet/rabby-api/dist/types'; +import { InsHTMLAttributes } from 'react'; +import styled from 'styled-components'; + +import ImgSwitch from '@/ui/assets/swap/switch.svg'; + +import React from 'react'; +import { useSetQuoteVisible } from '../hooks'; +import { useTranslation } from 'react-i18next'; +import { SelectedBridgeQuote } from '../../Bridge/hooks'; +import { BridgeQuoteItem } from '../../Bridge/Component/QuoteItem'; + +const ReceiveWrapper = styled.div` + position: relative; + margin-top: 24px; + border: 0.5px solid var(--r-neutral-line, #d3d8e0); + border: 1px solid var(--r-neutral-line, #d3d8e0); + border-radius: 4px; + padding: 12px; + padding-top: 16px; + + color: var(--r-neutral-title-1, #192945); + font-size: 13px; + .receive-token { + font-size: 15px; + color: #13141a; + } + + .diffPercent { + &.negative { + color: var(--r-red-default, #e34935); + } + &.positive { + color: var(--r-green-default, #2abb7f); + } + } + .column { + display: flex; + justify-content: space-between; + + .right { + font-weight: medium; + display: inline-flex; + align-items: center; + gap: 4px; + .ellipsis { + max-width: 170px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + img { + width: 14px; + height: 14px; + } + } + } + + .warning { + margin-bottom: 8px; + padding: 8px; + font-weight: 400; + font-size: 13px; + color: #ffb020; + position: relative; + background: rgba(255, 176, 32, 0.1); + border-radius: 4px; + } + + .footer { + position: relative; + border-top: 0.5px solid var(--r-neutral-line, #d3d8e0); + padding-top: 8px; + + .rate { + color: var(--r-neutral-body, #d3d8e0) !important; + } + } + .quote-provider { + position: absolute; + top: -12px; + left: 12px; + height: 20px; + padding: 4px 6px; + display: flex; + align-items: center; + justify-content: center; + font-size: 13px; + cursor: pointer; + + color: var(--r-neutral-body, #d3d8e0); + background: var(--r-blue-light-2); + border-radius: 4px; + border: 1px solid transparent; + &:hover { + /* background: var(--r-neutral-bg-1, #fff); */ + border: 1px solid var(--r-neutral-line, #d3d8e0); + } + } +`; + +interface ReceiveDetailsProps { + payAmount: string; + // receiveRawAmount: string | number; + payToken: TokenItem; + receiveToken: TokenItem; + // receiveTokenDecimals?: number; + // quoteWarning?: [string, string]; + loading?: boolean; + activeProvider: SelectedBridgeQuote; + // isWrapToken?: boolean; +} +export const ReceiveDetails = ( + props: ReceiveDetailsProps & InsHTMLAttributes +) => { + const { t } = useTranslation(); + const { activeProvider, ...other } = props; + + const openQuote = useSetQuoteVisible(); + // const payTokenSymbol = getTokenSymbol(props.payToken); + // const receiveTokenSymbol = getTokenSymbol(props.receiveToken); + + return ( + + +
{ + openQuote(true); + }} + > + +
+
+ ); +}; diff --git a/src/ui/views/Bridge/Component/Slippage.tsx b/src/ui/views/Bridge/Component/Slippage.tsx new file mode 100644 index 00000000000..6241dd782b8 --- /dev/null +++ b/src/ui/views/Bridge/Component/Slippage.tsx @@ -0,0 +1,227 @@ +import clsx from 'clsx'; +import { + memo, + useMemo, + useCallback, + ChangeEventHandler, + useState, +} from 'react'; +import { useToggle } from 'react-use'; +import styled from 'styled-components'; +import BigNumber from 'bignumber.js'; +import React from 'react'; +import { Input } from 'antd'; +import ImgArrowUp from 'ui/assets/swap/arrow-up.svg'; +import i18n from '@/i18n'; +import { Trans, useTranslation } from 'react-i18next'; + +export const SlippageItem = styled.div<{ + active?: boolean; + error?: boolean; + hasAmount?: boolean; +}>` + position: relative; + display: flex; + justify-content: center; + align-items: center; + border: 1px solid transparent; + cursor: pointer; + border-radius: 6px; + width: 52px; + height: 28px; + font-weight: 500; + font-size: 12px; + background: var(--r-neutral-card-2, #f2f4f7); + border-radius: 4px; + &:hover { + /* background: rgba(134, 151, 255, 0.2); */ + background: var(--r-neutral-card-3, #f7fafc); + } +`; + +const SLIPPAGE = ['0.1', '0.3', '0.5']; + +const Wrapper = styled.section` + .slippage { + display: flex; + align-items: center; + gap: 8px; + } + + .input { + font-weight: 500; + font-size: 12px; + /* background: #f5f6fa; + border: 1px solid #e5e9ef; */ + border-radius: 4px; + + &:placeholder-shown { + color: #707280; + } + .ant-input { + border-radius: 0; + } + } + + .warning { + padding: 10px; + color: #ffb020; + font-weight: 400; + font-size: 12px; + line-height: 14px; + position: relative; + border-radius: 4px; + background: rgba(255, 176, 32, 0.1); + margin-top: 8px; + } +`; +interface SlippageProps { + value: string; + displaySlippage: string; + onChange: (n: string) => void; + recommendValue?: number; +} +export const Slippage = memo((props: SlippageProps) => { + const { t } = useTranslation(); + + const { value, displaySlippage, onChange, recommendValue } = props; + const [isCustom, setIsCustom] = useToggle(false); + + const [slippageOpen, setSlippageOpen] = useState(false); + + const [isLow, isHigh] = useMemo(() => { + return [ + value?.trim() !== '' && Number(value || 0) < 0.1, + value?.trim() !== '' && Number(value || 0) > 10, + ]; + }, [value]); + + const setRecommendValue = useCallback(() => { + onChange(new BigNumber(recommendValue || 0).times(100).toString()); + }, [onChange, recommendValue]); + + const tips = useMemo(() => { + if (isLow) { + return i18n.t( + 'page.swap.low-slippage-may-cause-failed-transactions-due-to-high-volatility' + ); + } + if (isHigh) { + return i18n.t( + 'page.swap.transaction-might-be-frontrun-because-of-high-slippage-tolerance' + ); + } + if (recommendValue) { + return ( + + + To prevent front-running, we recommend a slippage of{' '} + + {{ + slippage: new BigNumber(recommendValue || 0) + .times(100) + .toString(), + }} + + %{' '} + + + ); + } + return null; + }, [isHigh, isLow, recommendValue, setRecommendValue]); + + const onInputFocus: ChangeEventHandler = useCallback( + (e) => { + e.target?.select?.(); + }, + [] + ); + + const onInputChange: ChangeEventHandler = useCallback( + (e) => { + const v = e.target.value; + if (/^\d*(\.\d*)?$/.test(v)) { + onChange(Number(v) > 50 ? '50' : v); + } + }, + [onChange] + ); + + return ( +
+
{ + setSlippageOpen((e) => !e); + }} + > + {t('page.swap.slippage-tolerance')} + + + {displaySlippage}%{' '} + + + +
+ +
+ {SLIPPAGE.map((e) => ( + { + event.stopPropagation(); + setIsCustom(false); + onChange(e); + }} + active={!isCustom && e === value} + > + {e}% + + ))} +
{ + event.stopPropagation(); + setIsCustom(true); + }} + className="flex-1" + > + %
} + /> +
+
+ + {!!tips &&
{tips}
} + + + ); +}); diff --git a/src/ui/views/Bridge/Component/loading.tsx b/src/ui/views/Bridge/Component/loading.tsx new file mode 100644 index 00000000000..f1237ef2efb --- /dev/null +++ b/src/ui/views/Bridge/Component/loading.tsx @@ -0,0 +1,83 @@ +import { CEX, DEX } from '@/constant'; +import { Skeleton } from 'antd'; +import clsx from 'clsx'; +import React from 'react'; + +export const QuoteLoading = () => { + return ( +
+
+
+ + +
+ + +
+ +
+ + +
+
+ ); +}; + +export const TokenPairLoading = () => { + return ( +
+
+ + +
+ +
+ ); +}; diff --git a/src/ui/views/Bridge/hooks/context.tsx b/src/ui/views/Bridge/hooks/context.tsx new file mode 100644 index 00000000000..936bc52f180 --- /dev/null +++ b/src/ui/views/Bridge/hooks/context.tsx @@ -0,0 +1,24 @@ +import { BridgeAggregator } from '@/background/service/openapi'; +import { createContextState } from '@/ui/hooks/contextState'; + +const [ + SettingVisibleProvider, + useSettingVisible, + useSetSettingVisible, +] = createContextState(false); + +const [ + QuoteVisibleProvider, + useQuoteVisible, + useSetQuoteVisible, +] = createContextState(false); + +const [RefreshIdProvider, useRefreshId, useSetRefreshId] = createContextState( + 0 +); + +export { SettingVisibleProvider, useSettingVisible, useSetSettingVisible }; + +export { RefreshIdProvider, useRefreshId, useSetRefreshId }; + +export { QuoteVisibleProvider, useQuoteVisible, useSetQuoteVisible }; diff --git a/src/ui/views/Bridge/hooks/history.tsx b/src/ui/views/Bridge/hooks/history.tsx new file mode 100644 index 00000000000..489bac7965b --- /dev/null +++ b/src/ui/views/Bridge/hooks/history.tsx @@ -0,0 +1,120 @@ +import { useInViewport, useInfiniteScroll } from 'ahooks'; +import React, { useEffect, useRef, useState } from 'react'; +import { useRabbySelector } from '@/ui/store'; +import { useAsync } from 'react-use'; +import { uniqBy } from 'lodash'; +import { SwapItem } from '@rabby-wallet/rabby-api/dist/types'; +import { useWallet } from '@/ui/utils'; + +export const useBridgeHistory = () => { + const addr = useRabbySelector( + (state) => state.account.currentAccount?.address || '' + ); + + const [refreshTxListCount, setRefreshListTx] = useState(0); + const refreshSwapListTx = React.useCallback(() => { + setRefreshListTx((e) => e + 1); + }, []); + const isInSwap = true; + + const wallet = useWallet(); + const getSwapList = React.useCallback( + async (addr: string, start = 0, limit = 5) => { + const data = await wallet.openapi.getBridgeHistoryList({ + user_addr: addr, + start: start, + limit: limit, + }); + return { + list: data?.history_list, + last: data, + totalCount: data?.total_cnt, + }; + }, + [wallet?.openapi?.getSwapTradeList] + ); + + const { + data: txList, + loading, + loadMore, + loadingMore, + noMore, + mutate, + } = useInfiniteScroll( + (d) => + getSwapList( + addr, + d?.list?.length && d?.list?.length > 1 ? d?.list?.length : 0, + 5 + ), + { + reloadDeps: [isInSwap], + isNoMore(data) { + if (data) { + return data?.list.length >= data?.totalCount; + } + return true; + }, + manual: !isInSwap || !addr, + } + ); + + const { value } = useAsync(async () => { + if (addr) { + return getSwapList(addr, 0, 5); + } + }, [addr, refreshTxListCount]); + + useEffect(() => { + if (value?.list) { + mutate((d) => { + if (!d) { + return; + } + return { + last: d?.last, + totalCount: d?.totalCount, + list: uniqBy( + [...(value.list || []), ...(d?.list || [])], + (e) => `${e.chain}-${e.tx_id}` + ) as SwapItem[], + }; + }); + } + }, [mutate, value]); + + const ref = useRef(null); + + const [inViewport] = useInViewport(ref); + + useEffect(() => { + if (!noMore && inViewport && !loadingMore && loadMore && isInSwap) { + loadMore(); + } + }, [inViewport, loadMore, loading, loadingMore, noMore, isInSwap]); + + useEffect(() => { + let timer: NodeJS.Timeout; + if ( + !loading && + !loadingMore && + txList?.list?.some((e) => e.status !== 'Finished') && + isInSwap + ) { + timer = setTimeout(refreshSwapListTx, 2000); + } + return () => { + if (timer) { + clearTimeout(timer); + } + }; + }, [loading, loadingMore, refreshSwapListTx, txList?.list, isInSwap]); + + return { + loading, + txList, + loadingMore, + ref, + }; +}; diff --git a/src/ui/views/Bridge/hooks/index.tsx b/src/ui/views/Bridge/hooks/index.tsx new file mode 100644 index 00000000000..50dbf073e7c --- /dev/null +++ b/src/ui/views/Bridge/hooks/index.tsx @@ -0,0 +1,3 @@ +export * from './token'; +export * from './context'; +export * from './history'; diff --git a/src/ui/views/Bridge/hooks/token.tsx b/src/ui/views/Bridge/hooks/token.tsx new file mode 100644 index 00000000000..220e79f5f4e --- /dev/null +++ b/src/ui/views/Bridge/hooks/token.tsx @@ -0,0 +1,637 @@ +import { useRabbyDispatch, useRabbySelector } from '@/ui/store'; +import { isSameAddress, useWallet } from '@/ui/utils'; +import { CHAINS, CHAINS_ENUM } from '@debank/common'; +import { TokenItem } from '@rabby-wallet/rabby-api/dist/types'; +import { WrapTokenAddressMap } from '@rabby-wallet/rabby-swap'; +import BigNumber from 'bignumber.js'; +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { useAsync, useDebounce } from 'react-use'; + +import { + useQuoteVisible, + useRefreshId, + useSetRefreshId, + useSettingVisible, +} from './context'; +import { useLocation } from 'react-router-dom'; +import { query2obj } from '@/ui/utils/url'; +import { useRbiSource } from '@/ui/utils/ga-event'; +import stats from '@/stats'; +import { useAsyncInitializeChainList } from '@/ui/hooks/useChain'; +import { ETH_USDT_CONTRACT, SWAP_SUPPORT_CHAINS } from '@/constant'; +import { findChain } from '@/utils/chain'; +import { BridgeQuote } from '@/background/service/openapi'; + +const useTokenInfo = ({ + userAddress, + chain, + defaultToken, +}: { + userAddress?: string; + chain?: CHAINS_ENUM; + defaultToken?: TokenItem; +}) => { + const refreshId = useRefreshId(); + const wallet = useWallet(); + const [token, setToken] = useState(defaultToken); + + const { value, loading, error } = useAsync(async () => { + if (userAddress && token?.id && chain) { + const data = await wallet.openapi.getToken( + userAddress, + CHAINS[chain].serverId, + token.id + ); + return data; + } + }, [refreshId, userAddress, token?.id, token?.raw_amount_hex_str, chain]); + + useDebounce( + () => { + if (value && !error && !loading) { + setToken(value); + } + }, + 300, + [value, error, loading] + ); + + if (error) { + console.error('token info error', chain, token?.symbol, token?.id, error); + } + return [token, setToken] as const; +}; + +export const useSlippage = () => { + const [slippageState, setSlippage] = useState('0.1'); + const slippage = useMemo(() => slippageState || '0.1', [slippageState]); + const [slippageChanged, setSlippageChanged] = useState(false); + + return { + slippageChanged, + setSlippageChanged, + slippageState, + slippage, + setSlippage, + }; +}; + +export interface FeeProps { + fee: '0.3' | '0.1' | '0'; + symbol?: string; +} + +export interface SelectedBridgeQuote extends BridgeQuote { + shouldApproveToken?: boolean; + shouldTwoStepApprove?: boolean; + loading?: boolean; +} + +export const useTokenPair = (userAddress: string) => { + const dispatch = useRabbyDispatch(); + const refreshId = useRefreshId(); + + const { + initialSelectedChain, + oChain, + defaultSelectedFromToken, + defaultSelectedToToken, + } = useRabbySelector((state) => { + return { + initialSelectedChain: state.bridge.$$initialSelectedChain, + oChain: state.bridge.selectedChain || CHAINS_ENUM.ETH, + defaultSelectedFromToken: state.bridge.selectedFromToken, + defaultSelectedToToken: state.bridge.selectedToToken, + }; + }); + + const [chain, setChain] = useState(oChain); + const handleChain = (c: CHAINS_ENUM) => { + setChain(c); + dispatch.bridge.setSelectedChain(c); + }; + + const [payToken, setPayToken] = useTokenInfo({ + userAddress, + chain: defaultSelectedFromToken?.chain + ? findChain({ serverId: defaultSelectedFromToken?.chain })?.enum + : undefined, + defaultToken: defaultSelectedFromToken, + }); + + const [receiveToken, setReceiveToken] = useTokenInfo({ + userAddress, + chain, + defaultToken: defaultSelectedToToken, + }); + + const setActiveProvider: React.Dispatch< + React.SetStateAction + > = useCallback((p) => { + if (expiredTimer.current) { + clearTimeout(expiredTimer.current); + } + setSlippageChanged(false); + setExpired(false); + expiredTimer.current = setTimeout(() => { + setExpired(true); + }, 1000 * 30); + setOriActiveProvider(p); + }, []); + + const switchChain = useCallback( + (c: CHAINS_ENUM, opts?: { payTokenId?: string; changeTo?: boolean }) => { + handleChain(c); + setPayToken(undefined); + setReceiveToken(undefined); + setPayAmount(''); + setActiveProvider(undefined); + }, + [setPayToken, setReceiveToken] + ); + + const { search } = useLocation(); + const [searchObj] = useState<{ + payTokenId?: string; + chain?: string; + }>(query2obj(search)); + + const supportedChains = useRabbySelector((s) => s.bridge.supportedChains); + + useAsyncInitializeChainList({ + // NOTICE: now `useTokenPair` is only used for swap page, so we can use `SWAP_SUPPORT_CHAINS` here + supportChains: supportedChains, + onChainInitializedAsync: (firstEnum) => { + // only init chain if it's not cached before + if (!searchObj?.chain && !searchObj.payTokenId && !initialSelectedChain) { + switchChain(firstEnum); + } + }, + }); + + useEffect(() => { + dispatch.bridge.setSelectedFromToken(payToken); + }, [payToken]); + + useEffect(() => { + dispatch.bridge.setSelectedToToken(receiveToken); + }, [receiveToken]); + + const [payAmount, setPayAmount] = useState(''); + + const [feeRate] = useState('0'); + + const { + slippageChanged, + setSlippageChanged, + slippageState, + slippage, + setSlippage, + } = useSlippage(); + + const [currentProvider, setOriActiveProvider] = useState< + SelectedBridgeQuote | undefined + >(); + + const expiredTimer = useRef(); + const [expired, setExpired] = useState(false); + + const exchangeToken = useCallback(() => { + setPayToken(receiveToken); + setReceiveToken(payToken); + }, [setPayToken, receiveToken, setReceiveToken, payToken]); + + const payTokenIsNativeToken = useMemo(() => { + if (payToken) { + return isSameAddress(payToken.id, CHAINS[chain].nativeTokenAddress); + } + return false; + }, [chain, payToken]); + + const handleAmountChange: React.ChangeEventHandler = useCallback( + (e) => { + const v = e.target.value; + if (!/^\d*(\.\d*)?$/.test(v)) { + return; + } + setPayAmount(v); + }, + [] + ); + + const handleBalance = useCallback(() => { + if (payToken) { + setPayAmount(tokenAmountBn(payToken).toString(10)); + } + }, [payToken]); + + const isStableCoin = useMemo(() => { + if (payToken?.price && receiveToken?.price) { + return new BigNumber(payToken?.price) + .minus(receiveToken?.price) + .div(payToken?.price) + .abs() + .lte(0.01); + } + return false; + }, [payToken, receiveToken]); + + const [isWrapToken, wrapTokenSymbol] = useMemo(() => { + if (payToken?.id && receiveToken?.id) { + const wrapTokens = [ + WrapTokenAddressMap[chain], + CHAINS[chain].nativeTokenAddress, + ]; + const res = + !!wrapTokens.find((token) => isSameAddress(payToken?.id, token)) && + !!wrapTokens.find((token) => isSameAddress(receiveToken?.id, token)); + return [ + res, + isSameAddress(payToken?.id, WrapTokenAddressMap[chain]) + ? payToken.symbol + : receiveToken.symbol, + ]; + } + return [false, '']; + }, [payToken?.id, receiveToken?.id, chain]); + + const inSufficient = useMemo( + () => + payToken + ? tokenAmountBn(payToken).lt(payAmount) + : new BigNumber(0).lt(payAmount), + [payToken, payAmount] + ); + + useEffect(() => { + // if (isWrapToken) { + // setFeeRate('0'); + // } else if (isStableCoin) { + // setFeeRate('0.1'); + // } else { + // setFeeRate('0.3'); + // } + + if (isStableCoin) { + setSlippage('0.05'); + } + }, [isWrapToken, isStableCoin]); + + const [quoteList, setQuotesList] = useState([]); + + useEffect(() => { + setQuotesList([]); + }, [payToken?.id, receiveToken?.id, chain, payAmount]); + + const visible = useQuoteVisible(); + const settingVisible = useSettingVisible(); + + useEffect(() => { + if (!visible) { + setQuotesList([]); + } + }, [visible]); + + const setRefreshId = useSetRefreshId(); + + useDebounce( + () => { + if (!settingVisible) { + setQuotesList([]); + setRefreshId((e) => e + 1); + } + }, + 300, + [settingVisible] + ); + + const aggregatorsList = useRabbySelector( + (s) => s.bridge.aggregatorsList || [] + ); + const selectedAggregators = useRabbySelector( + (s) => s.bridge.selectedAggregators || [] + ); + + const avalibleSelectedAggregators = useMemo(() => { + return selectedAggregators?.filter((e) => + aggregatorsList.some((item) => item.id === e) + ); + }, []); + + const fetchIdRef = useRef(0); + const wallet = useWallet(); + const { loading: quoteLoading, error: quotesError } = useAsync(async () => { + if ( + visible && + userAddress && + payToken?.id && + receiveToken?.id && + receiveToken && + chain && + payAmount && + feeRate + ) { + fetchIdRef.current += 1; + const currentFetchId = fetchIdRef.current; + + let isEmpty = false; + const result: SelectedBridgeQuote[] = []; + + setQuotesList((e) => { + if (!e.length) { + isEmpty = true; + } + return e?.map((e) => ({ ...e, loading: true })); + }); + + const data = await wallet.openapi + .getBridgeQuoteList({ + aggregator_ids: avalibleSelectedAggregators.join(','), + from_token_id: payToken.id, + user_addr: userAddress, + from_chain_id: payToken.chain, + from_token_raw_amount: new BigNumber(payAmount) + .times(10 ** payToken.decimals) + .toFixed(0, 1) + .toString(), + to_chain_id: receiveToken.chain, + to_token_id: receiveToken.id, + }) + .finally(() => { + // enableSwapBySlippageChanged(currentFetchId); + }); + + if (data && currentFetchId === fetchIdRef.current) { + await Promise.allSettled( + data.map((e) => + wallet.openapi + .getBridgeQuote({ + aggregator_id: e.aggregator.id, + bridge_id: e.bridge.id, + from_token_id: payToken.id, + user_addr: userAddress, + from_chain_id: payToken.chain, + from_token_raw_amount: new BigNumber(payAmount) + .times(10 ** payToken.decimals) + .toFixed(0, 1) + .toString(), + to_chain_id: receiveToken.chain, + to_token_id: receiveToken.id, + }) + .then(async (data) => { + if (currentFetchId !== fetchIdRef.current) { + return; + } + let tokenApproved = false; + let allowance = '0'; + const fromChain = findChain({ serverId: payToken?.chain }); + if (payToken?.id === fromChain?.nativeTokenAddress) { + tokenApproved = true; + } else { + allowance = await wallet.getERC20Allowance( + payToken.chain, + payToken.id, + data.tx.to + ); + tokenApproved = new BigNumber(allowance).gte( + new BigNumber(payAmount).times(10 ** payToken.decimals) + ); + } + let shouldTwoStepApprove = false; + if ( + fromChain?.enum === CHAINS_ENUM.ETH && + isSameAddress(payToken.id, ETH_USDT_CONTRACT) && + Number(allowance) !== 0 && + !tokenApproved + ) { + shouldTwoStepApprove = true; + } + + // return { + // ...data, + // loading: false, + // shouldTwoStepApprove, + // shouldApproveToken: !tokenApproved, + // }; + + if (isEmpty) { + result.push({ + ...data, + shouldTwoStepApprove, + shouldApproveToken: !tokenApproved, + }); + } else { + if (currentFetchId === fetchIdRef.current) { + setQuotesList((e) => { + const filteredArr = e.filter( + (item) => + item.aggregator.id !== data.aggregator.id || + item.bridge.id !== data.bridge.id + ); + return [ + ...filteredArr, + { + ...data, + loading: false, + shouldTwoStepApprove, + shouldApproveToken: !tokenApproved, + }, + ]; + }); + } + } + }) + ) + ); + + if (isEmpty && currentFetchId === fetchIdRef.current) { + setQuotesList(result); + } + + // await Promise.allSettled( + // data?.map((e) => + // wallet.openapi + // .getBridgeQuote({ + // aggregator_id: e.aggregator.id, + // bridge_id: e.bridge.id, + // from_token_id: payToken.id, + // user_addr: userAddress, + // from_chain_id: payToken.chain, + // from_token_raw_amount: new BigNumber(payAmount) + // .times(10 ** payToken.decimals) + // .toFixed(0, 1) + // .toString(), + // to_chain_id: receiveToken.chain, + // to_token_id: receiveToken.id, + // }) + // .then(async (data) => { + // let tokenApproved = false; + // let allowance = '0'; + + // const fromChain = findChain({ serverId: payToken?.chain }); + // if ( + // payToken?.id === + // fromChain?.nativeTokenAddress + // ) { + // tokenApproved = true; + // } else { + // allowance = await wallet.getERC20Allowance( + // payToken.chain, + // payToken.id, + // data.tx.to + // ); + + // tokenApproved = new BigNumber(allowance).gte( + // new BigNumber(payAmount).times(10 ** payToken.decimals) + // ); + // } + + // let shouldTwoStepApprove = false; + + // if ( + // fromChain?.enum === CHAINS_ENUM.ETH && + // isSameAddress(payToken.id, ETH_USDT_CONTRACT) && + // Number(allowance) !== 0 && + // !tokenApproved + // ) { + // shouldTwoStepApprove = true; + // } + + // setQuotesList((e) => [ + // ...e, + // { + // ...data, + // shouldApproveToken: !tokenApproved, + // shouldTwoStepApprove, + // }, + // ]); + // }) + // ) + // ); + } + } + }, [ + // setActiveProvider, + setQuotesList, + refreshId, + userAddress, + payToken?.id, + receiveToken?.id, + chain, + payAmount, + feeRate, + slippage, + visible, + ]); + + if (quotesError) { + console.error('quotesError', quotesError); + } + + // const { + // value: slippageValidInfo, + // error: slippageValidError, + // loading: slippageValidLoading, + // } = useAsync(async () => { + // if (chain && Number(slippage) && payToken?.id && receiveToken?.id) { + // return validSlippage({ + // chain, + // slippage, + // payTokenId: payToken?.id, + // receiveTokenId: receiveToken?.id, + // }); + // } + // }, [slippage, chain, payToken?.id, receiveToken?.id, refreshId]); + + useEffect(() => { + setExpired(false); + setActiveProvider(undefined); + setSlippageChanged(false); + }, [payToken?.id, receiveToken?.id, chain, payAmount, inSufficient]); + + useEffect(() => { + if (searchObj.chain && searchObj.payTokenId) { + const target = findChain({ + serverId: searchObj.chain, + }); + if (target) { + setChain(target?.enum); + setPayToken({ + ...getChainDefaultToken(target?.enum), + id: searchObj.payTokenId, + }); + setReceiveToken(undefined); + } + } + }, [searchObj?.chain, searchObj?.payTokenId]); + + const rbiSource = useRbiSource(); + + useEffect(() => { + if (rbiSource) { + // stats.report('enterSwapDescPage', { + // refer: rbiSource, + // }); + } + }, [rbiSource]); + + return { + chain, + switchChain, + + payToken, + setPayToken, + receiveToken, + setReceiveToken, + exchangeToken, + payTokenIsNativeToken, + + handleAmountChange, + handleBalance, + payAmount, + + isWrapToken, + wrapTokenSymbol, + inSufficient, + slippageChanged, + setSlippageChanged, + slippageState, + slippage, + setSlippage, + feeRate, + + //quote + quoteLoading, + quoteList, + currentProvider, + setActiveProvider, + + expired, + }; +}; + +function getChainDefaultToken(chain: CHAINS_ENUM) { + const chainInfo = CHAINS[chain]; + return { + id: chainInfo.nativeTokenAddress, + decimals: chainInfo.nativeTokenDecimals, + logo_url: chainInfo.nativeTokenLogo, + symbol: chainInfo.nativeTokenSymbol, + display_symbol: chainInfo.nativeTokenSymbol, + optimized_symbol: chainInfo.nativeTokenSymbol, + is_core: true, + is_verified: true, + is_wallet: true, + amount: 0, + price: 0, + name: chainInfo.nativeTokenSymbol, + chain: chainInfo.serverId, + time_at: 0, + } as TokenItem; +} + +function tokenAmountBn(token: TokenItem) { + return new BigNumber(token?.raw_amount_hex_str || 0, 16).div( + 10 ** (token?.decimals || 1) + ); +} diff --git a/src/ui/views/Bridge/index.tsx b/src/ui/views/Bridge/index.tsx new file mode 100644 index 00000000000..a36f5916555 --- /dev/null +++ b/src/ui/views/Bridge/index.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import { Header } from './Component/Header'; +import { Main } from './Component/Main'; +import { + QuoteVisibleProvider, + RefreshIdProvider, + SettingVisibleProvider, +} from './hooks'; + +export const Bridge = () => { + return ( + + + +
+
+
+
+
+
+
+ ); +}; diff --git a/src/ui/views/Dashboard/components/ChainAndSiteSelector/index.tsx b/src/ui/views/Dashboard/components/ChainAndSiteSelector/index.tsx index f110f2ffd55..9c60df7cd39 100644 --- a/src/ui/views/Dashboard/components/ChainAndSiteSelector/index.tsx +++ b/src/ui/views/Dashboard/components/ChainAndSiteSelector/index.tsx @@ -17,9 +17,8 @@ import IconSendToken, { import IconSwap, { ReactComponent as RcIconSwap, } from 'ui/assets/dashboard/swap.svg'; -import IconReceive, { - ReactComponent as RcIconReceive, -} from 'ui/assets/dashboard/receive.svg'; + +import { ReactComponent as RcIconBridge } from 'ui/assets/dashboard/bridge.svg'; import IconGasTopUp, { ReactComponent as RcIconGasTopUp, } from 'ui/assets/dashboard/gas-top-up.svg'; @@ -45,7 +44,6 @@ import { useWallet, } from 'ui/utils'; import { CurrentConnection } from '../CurrentConnection'; -import ChainSelectorModal from 'ui/component/ChainSelector/Modal'; import { Settings } from '../index'; import './style.less'; import { CHAINS_ENUM, ThemeIconType } from '@/constant'; @@ -95,9 +93,7 @@ export default ({ showChainsModal?: boolean; }>(); const { showChainsModal = false, trigger } = state ?? {}; - const [isShowReceiveModal, setIsShowReceiveModal] = useState( - trigger === 'receive' && showChainsModal - ); + const wallet = useWallet(); const account = useRabbySelector((state) => state.account.currentAccount); @@ -208,11 +204,12 @@ export default ({ onClick: () => history.push('/send-token?rbisource=dashboard'), } as IPanelItem, receive: { - icon: RcIconReceive, - eventKey: 'Receive', - content: t('page.dashboard.home.panel.receive'), + icon: RcIconBridge, + eventKey: 'Bridge', + content: t('page.dashboard.home.panel.bridge'), onClick: () => { - setIsShowReceiveModal(true); + // setIsShowReceiveModal(true); + history.push('/bridge'); }, } as IPanelItem, gasTopUp: { @@ -399,18 +396,6 @@ export default ({ } }} /> - { - history.push(`/receive?rbisource=dashboard&chain=${chain}`); - setIsShowReceiveModal(false); - }} - onCancel={() => { - setIsShowReceiveModal(false); - }} - /> { }} /> + { + matomoRequestEvent({ + category: 'Front Page Click', + action: 'Click', + label: 'Receive', + }); + history.push('/receive?rbisource=dashboard'); + }} + /> +
{ + + + + diff --git a/src/ui/views/RabbyPoints/index.tsx b/src/ui/views/RabbyPoints/index.tsx index aa4557cdc4b..f04c6d33e6f 100644 --- a/src/ui/views/RabbyPoints/index.tsx +++ b/src/ui/views/RabbyPoints/index.tsx @@ -229,7 +229,7 @@ const RabbyPoints = () => { [wallet.openapi, account?.address, signature] ); - const ended = useMemo(() => !!campaignIsEnded, [campaignIsEnded]); + const ended = useMemo(() => true, [campaignIsEnded]); useEffect(() => { if ( diff --git a/src/ui/views/Receive/index.tsx b/src/ui/views/Receive/index.tsx index 8dd09fb57cb..cc21f5cf129 100644 --- a/src/ui/views/Receive/index.tsx +++ b/src/ui/views/Receive/index.tsx @@ -66,7 +66,7 @@ const useAccount = () => { const useReceiveTitle = (search: string) => { const { t } = useTranslation(); const qs = useMemo(() => query2obj(search), [search]); - const chain = findChainByEnum(qs.chain)?.name || 'Ethereum'; + const chain = findChainByEnum(qs.chain)?.name || 'EVM chains'; const token = qs.token || t('global.assets'); return t('page.receive.title', { @@ -232,7 +232,7 @@ const Receive = () => {
{account?.address && }
-
{account?.address}
+
{account?.address}
-
void }) { type="primary" block disabled={!checked} - className="h-[40px] w-[188px] text-13 font-medium mx-auto" + className="h-[40px] text-13 font-medium mx-auto" onClick={onConfirm} > {t('page.bridge.settingModal.confirm')} diff --git a/src/ui/views/Bridge/Component/BridgeContent.tsx b/src/ui/views/Bridge/Component/BridgeContent.tsx index af090b5e788..21af711aef0 100644 --- a/src/ui/views/Bridge/Component/BridgeContent.tsx +++ b/src/ui/views/Bridge/Component/BridgeContent.tsx @@ -1,7 +1,13 @@ -import React, { useCallback, useLayoutEffect, useMemo, useRef } from 'react'; +import React, { + useCallback, + useLayoutEffect, + useMemo, + useRef, + useState, +} from 'react'; import { useRabbySelector } from '@/ui/store'; import { useTokenPair } from '../hooks/token'; -import { Alert, Button, Input, Modal } from 'antd'; +import { Alert, Button, Input, message, Modal, Tooltip } from 'antd'; import BigNumber from 'bignumber.js'; import { formatAmount, @@ -28,6 +34,7 @@ import { ReactComponent as RcArrowDown } from '@/ui/assets/bridge/down.svg'; import { ReactComponent as RcIconQuestion } from '@/ui/assets/bridge/question-cc.svg'; import { TooltipWithMagnetArrow } from '@/ui/component/Tooltip/TooltipWithMagnetArrow'; +import pRetry from 'p-retry'; const tipsClassName = clsx('text-r-neutral-body text-12 mb-8 pt-16'); @@ -83,7 +90,6 @@ const getDisabledTips: SelectChainItemProps['disabledTips'] = (ctx) => { export const BridgeContent = () => { const { userAddress } = useRabbySelector((state) => ({ userAddress: state.account.currentAccount?.address || '', - unlimitedAllowance: state.swap.unlimitedAllowance || false, })); const { @@ -109,8 +115,8 @@ export const BridgeContent = () => { expired, } = useTokenPair(userAddress); - const selectedAggregators = useRabbySelector( - (s) => s.bridge.selectedAggregators + const aggregatorIds = useRabbySelector( + (s) => s.bridge.aggregatorsList.map((e) => e.id) || [] ); const inputRef = useRef(); @@ -130,7 +136,9 @@ export const BridgeContent = () => { return t('page.bridge.price-expired-refresh-route'); } if (selectedBridgeQuote?.shouldApproveToken) { - return t('page.bridge.approve-and-bridge'); + return t('page.bridge.approve-and-bridge', { + name: selectedBridgeQuote?.aggregator.name || '', + }); } if (selectedBridgeQuote?.aggregator.name) { return t('page.bridge.bridge-via-x', { @@ -145,20 +153,44 @@ export const BridgeContent = () => { const rbiSource = useRbiSource(); const supportedChains = useRabbySelector((s) => s.bridge.supportedChains); - - const gotoSwap = useCallback(async () => { - if (!inSufficient && payToken && receiveToken && selectedBridgeQuote?.tx) { + const [fetchingBridgeQuote, setFetchingBridgeQuote] = useState(false); + + const gotoBridge = useCallback(async () => { + if ( + !inSufficient && + payToken && + receiveToken && + selectedBridgeQuote?.bridge_id + ) { try { + setFetchingBridgeQuote(true); + const { tx } = await pRetry( + () => + wallet.openapi.getBridgeQuote({ + aggregator_id: selectedBridgeQuote.aggregator.id, + bridge_id: selectedBridgeQuote.bridge_id, + from_token_id: payToken.id, + user_addr: userAddress, + from_chain_id: payToken.chain, + from_token_raw_amount: new BigNumber(payAmount) + .times(10 ** payToken.decimals) + .toFixed(0, 1) + .toString(), + to_chain_id: receiveToken.chain, + to_token_id: receiveToken.id, + }), + { retries: 1 } + ); wallet.bridgeToken( { - to: selectedBridgeQuote.tx.to, - value: selectedBridgeQuote.tx.value, - data: selectedBridgeQuote.tx.data, + to: tx.to, + value: tx.value, + data: tx.data, payTokenRawAmount: new BigNumber(payAmount) .times(10 ** payToken.decimals) .toFixed(0, 1) .toString(), - chainId: selectedBridgeQuote.tx.chainId, + chainId: tx.chainId, shouldApprove: !!selectedBridgeQuote.shouldApproveToken, shouldTwoStepApprove: !!selectedBridgeQuote.shouldTwoStepApprove, payTokenId: payToken.id, @@ -172,7 +204,7 @@ export const BridgeContent = () => { to_chain_id: receiveToken.chain, to_token_id: receiveToken.id, to_token_amount: selectedBridgeQuote.to_token_amount, - tx: selectedBridgeQuote.tx, + tx: tx, rabby_fee: selectedBridgeQuote.rabby_fee.usd_value, }, }, @@ -186,7 +218,10 @@ export const BridgeContent = () => { ); window.close(); } catch (error) { + message.error(error?.message || String(error)); console.error(error); + } finally { + setFetchingBridgeQuote(false); } } }, [ @@ -266,7 +301,7 @@ export const BridgeContent = () => { : undefined, [payToken, receiveToken] )} - aggregatorIds={selectedAggregators || []} + aggregatorIds={aggregatorIds || []} chain={chain} /> @@ -282,7 +317,8 @@ export const BridgeContent = () => {
{ handleBalance(); @@ -325,8 +361,8 @@ export const BridgeContent = () => { receiveToken={receiveToken} /> -
-
+
+
{t('page.bridge.bridge-cost')} @@ -337,79 +373,52 @@ export const BridgeContent = () => { title={

- Protocol Fee:{' '} + {selectedBridgeQuote?.aggregator?.name} Fee:{' '} {formatTokenAmount( new BigNumber( - selectedBridgeQuote.protocol_fee.usd_value + selectedBridgeQuote.protocol_fee.raw_amount_hex_str ) - .div(receiveToken.price) - .toString() + .div(10 ** (receiveToken?.decimals || 18)) + .toString(), + 4, + true )}{' '} - {getTokenSymbol(receiveToken)} ≈{' '} - {formatTokenAmount( - new BigNumber( - selectedBridgeQuote.protocol_fee.usd_value - ) - .div(payToken.price) - .toString() - )}{' '} - {getTokenSymbol(payToken)} -

- -

- Gas Fee:{' '} - {formatTokenAmount( - new BigNumber( - selectedBridgeQuote.gas_fee.usd_value - ) - .div(receiveToken.price) - .toString() - )}{' '} - {getTokenSymbol(receiveToken)} ≈ - {formatTokenAmount( - new BigNumber( - selectedBridgeQuote.gas_fee.usd_value - ) - .div(payToken.price) - .toString() - )}{' '} - {getTokenSymbol(payToken)} + {getTokenSymbol(receiveToken)}

Rabby Fee:{' '} {formatTokenAmount( new BigNumber( - selectedBridgeQuote.rabby_fee.usd_value + selectedBridgeQuote.rabby_fee.raw_amount_hex_str ) - .div(receiveToken.price) - .toString() + .div(10 ** (receiveToken?.decimals || 18)) + .toString(), + 4, + true )}{' '} - {getTokenSymbol(receiveToken)} ≈ - {formatTokenAmount( - new BigNumber( - selectedBridgeQuote.rabby_fee.usd_value - ) - .div(payToken.price) - .toString() - )}{' '} - {getTokenSymbol(payToken)} + {getTokenSymbol(receiveToken)}

} > - + + +
{formatTokenAmount( - new BigNumber(selectedBridgeQuote.gas_fee.usd_value) - .plus(selectedBridgeQuote.rabby_fee.usd_value) - .plus(selectedBridgeQuote.protocol_fee.usd_value) - .div(payToken.price) + new BigNumber( + selectedBridgeQuote.rabby_fee.raw_amount_hex_str + ) + .plus( + selectedBridgeQuote.protocol_fee.raw_amount_hex_str + ) + .div(10 ** (receiveToken?.decimals || 18)) .toString() )}{' '} {receiveToken ? getTokenSymbol(receiveToken) : ''} @@ -463,11 +472,13 @@ export const BridgeContent = () => { )} >
- + {data.aggregator.name} @@ -202,7 +205,7 @@ const HistoryList = () => { return (

diff --git a/src/ui/views/Bridge/Component/BridgeQuoteItem.tsx b/src/ui/views/Bridge/Component/BridgeQuoteItem.tsx index 1fa092f91e3..c72341fdfbe 100644 --- a/src/ui/views/Bridge/Component/BridgeQuoteItem.tsx +++ b/src/ui/views/Bridge/Component/BridgeQuoteItem.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { QuoteLogo } from './QuoteLogo'; import ImgLock from '@/ui/assets/swap/lock.svg'; @@ -7,12 +7,50 @@ import ImgGas from '@/ui/assets/swap/gas.svg'; import { ReactComponent as RCIconDuration } from '@/ui/assets/bridge/duration.svg'; import clsx from 'clsx'; import { TooltipWithMagnetArrow } from '@/ui/component/Tooltip/TooltipWithMagnetArrow'; -import { BridgeQuote, TokenItem } from '@/background/service/openapi'; +import { TokenItem } from '@/background/service/openapi'; import { formatTokenAmount } from '@debank/common'; import { formatUsdValue } from '@/ui/utils'; import BigNumber from 'bignumber.js'; -import { SelectedBridgeQuote, useSetQuoteVisible } from '../hooks'; +import { + SelectedBridgeQuote, + useSetQuoteVisible, + useSetSettingVisible, +} from '../hooks'; import { Tooltip } from 'antd'; +import { useRabbySelector } from '@/ui/store'; +import ImgWhiteWarning from '@/ui/assets/swap/warning-white.svg'; +import styled from 'styled-components'; + +const ItemWrapper = styled.div` + position: relative; + + .disabled-trade { + position: absolute; + left: 0; + top: 0; + transform: translateY(-20px); + opacity: 0; + width: 100%; + height: 0; + padding-left: 16px; + background: #000000; + border-radius: 6px; + display: flex; + align-items: center; + gap: 8px; + font-weight: 400; + font-size: 13px; + color: #ffffff; + pointer-events: none; + } + &.enabledAggregator:hover .disabled-trade { + cursor: pointer; + pointer-events: auto; + height: 100%; + transform: translateY(0); + opacity: 1; + } +`; interface QuoteItemProps extends SelectedBridgeQuote { payAmount: string; @@ -30,7 +68,7 @@ interface QuoteItemProps extends SelectedBridgeQuote { } export const bridgeQuoteEstimatedValueBn = ( - quote: BridgeQuote, + quote: SelectedBridgeQuote, receiveToken: TokenItem, sortIncludeGasFee: boolean ) => { @@ -41,8 +79,29 @@ export const bridgeQuoteEstimatedValueBn = ( export const BridgeQuoteItem = (props: QuoteItemProps) => { const { t } = useTranslation(); + const [disabledTipsOpen, setDisabledTipsOpen] = useState(false); + const openSwapQuote = useSetQuoteVisible(); + const openSettings = useSetSettingVisible(); + + const aggregatorsList = useRabbySelector( + (s) => s.bridge.aggregatorsList || [] + ); + const selectedAggregators = useRabbySelector( + (s) => s.bridge.selectedAggregators || [] + ); + + const availableSelectedAggregators = useMemo(() => { + return selectedAggregators?.filter((e) => + aggregatorsList.some((item) => item.id === e) + ); + }, [selectedAggregators, aggregatorsList]); + + const enabledAggregator = useMemo(() => { + return availableSelectedAggregators.includes(props?.aggregator?.id); + }, [props?.aggregator?.id, availableSelectedAggregators]); + const diffPercent = React.useMemo(() => { if (props.onlyShow || props.isBestQuote) { return ''; @@ -66,6 +125,9 @@ export const BridgeQuoteItem = (props: QuoteItemProps) => { if (props.inSufficient) { return; } + if (!enabledAggregator) { + return; + } props?.setSelectedBridgeQuote?.(props); openSwapQuote(false); }; @@ -75,21 +137,22 @@ export const BridgeQuoteItem = (props: QuoteItemProps) => { placement="top" title={'Insufficient balance'} trigger={['click']} - visible={props.inSufficient ? undefined : false} + visible={props.inSufficient && !props.onlyShow ? undefined : false} align={{ offset: [0, 30] }} arrowPointAtCenter > -

{ hideConer /> - {formatTokenAmount(props.payAmount || '')} + {formatTokenAmount(props.to_token_amount)}
@@ -176,7 +239,29 @@ export const BridgeQuoteItem = (props: QuoteItemProps) => { )}
-
+ + {!props.inSufficient && !enabledAggregator && ( +
{ + e.stopPropagation(); + openSettings(true); + }} + > + + + {t('page.bridge.aggregator-not-enabled')} +
+ + {t('page.bridge.enable-it')} + +
+
+ )} + ); }; diff --git a/src/ui/views/Bridge/Component/BridgeQuotes.tsx b/src/ui/views/Bridge/Component/BridgeQuotes.tsx index e56f3769840..416dd290ea3 100644 --- a/src/ui/views/Bridge/Component/BridgeQuotes.tsx +++ b/src/ui/views/Bridge/Component/BridgeQuotes.tsx @@ -7,10 +7,10 @@ import BigNumber from 'bignumber.js'; import { CHAINS_ENUM } from '@/constant'; import { SvgIconCross } from 'ui/assets'; import { useTranslation } from 'react-i18next'; -import { BridgeQuote, TokenItem } from '@/background/service/openapi'; +import { TokenItem } from '@/background/service/openapi'; import { BridgeQuoteItem } from './BridgeQuoteItem'; import { useRabbyDispatch, useRabbySelector } from '@/ui/store'; -import MatchImage from 'ui/assets/match.svg'; +import { ReactComponent as RCIconCCEmpty } from 'ui/assets/bridge/empty-cc.svg'; interface QuotesProps { chain: CHAINS_ENUM; @@ -19,7 +19,7 @@ interface QuotesProps { inSufficient: boolean; payToken: TokenItem; receiveToken: TokenItem; - list?: BridgeQuote[]; + list?: SelectedBridgeQuote[]; activeName?: string; visible: boolean; onClose: () => void; @@ -65,10 +65,11 @@ export const Quotes = ({ return (
-
+
{sortedList?.map((item, idx) => { return ( )} + Array.from({ length: 4 }).map((_, idx) => )} {!other.loading && !sortedList?.length && ( -
- +
+ - {t('page.bridge.noData')} + {t('page.bridge.no-route-found')}
)} @@ -185,7 +186,7 @@ export const QuoteList = (props: QuotesProps) => {
} - height={516} + height={440} onClose={onClose} closable={false} destroyOnClose diff --git a/src/ui/views/Bridge/Component/BridgeTokenPair.tsx b/src/ui/views/Bridge/Component/BridgeTokenPair.tsx index 94d56354a77..d69c50cd919 100644 --- a/src/ui/views/Bridge/Component/BridgeTokenPair.tsx +++ b/src/ui/views/Bridge/Component/BridgeTokenPair.tsx @@ -5,7 +5,7 @@ import { useTranslation } from 'react-i18next'; import { TokenItem } from '@rabby-wallet/rabby-api/dist/types'; import { TokenWithChain } from '@/ui/component'; import { getTokenSymbol } from '@/ui/utils/token'; -import { Drawer, DrawerProps, Skeleton, Tooltip } from 'antd'; +import { Drawer, DrawerProps, Tooltip } from 'antd'; import clsx from 'clsx'; import { formatUsdValue, useWallet } from '@/ui/utils'; import BigNumber from 'bignumber.js'; @@ -13,6 +13,7 @@ import { useAsync } from 'react-use'; import { CHAINS, CHAINS_ENUM } from '@debank/common'; import { TokenPairLoading } from './loading'; import MatchImage from 'ui/assets/match.svg'; +import { SvgIconCross } from '@/ui/assets'; const TokenPairDrawer = ( props: DrawerProps & { @@ -173,6 +174,14 @@ const RenderWrapper = styled.div` font-size: 16px; font-weight: 500; color: var(--r-neutral-title1, #192945); + + .token-symbol { + max-width: 90px; + display: inline-block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } } } @@ -214,13 +223,20 @@ export const BridgeTokenPair = (props: {
- {getTokenSymbol(value?.from)} + + {getTokenSymbol(value?.from)} +
- {getTokenSymbol(value?.from)} + + {getTokenSymbol(value?.to)} +
)} @@ -233,8 +249,10 @@ export const BridgeTokenPair = (props: { aggregatorIds={props.aggregatorIds} chain={props.chain} visible={visible} + closeIcon={ + + } onClose={() => setVisible(false)} - closable={false} title={t('page.bridge.tokenPairDrawer.title')} /> diff --git a/src/ui/views/Bridge/Component/loading.tsx b/src/ui/views/Bridge/Component/loading.tsx index 490d4fe322b..2f40ee94fe3 100644 --- a/src/ui/views/Bridge/Component/loading.tsx +++ b/src/ui/views/Bridge/Component/loading.tsx @@ -7,7 +7,7 @@ export const QuoteLoading = () => {
diff --git a/src/ui/views/Bridge/hooks/token.tsx b/src/ui/views/Bridge/hooks/token.tsx index 1bae16543b7..97f5450a198 100644 --- a/src/ui/views/Bridge/hooks/token.tsx +++ b/src/ui/views/Bridge/hooks/token.tsx @@ -16,6 +16,7 @@ import { useAsyncInitializeChainList } from '@/ui/hooks/useChain'; import { ETH_USDT_CONTRACT } from '@/constant'; import { findChain } from '@/utils/chain'; import { BridgeQuote } from '@/background/service/openapi'; +import stats from '@/stats'; const useTokenInfo = ({ userAddress, @@ -57,10 +58,11 @@ const useTokenInfo = ({ return [token, setToken] as const; }; -export interface SelectedBridgeQuote extends BridgeQuote { +export interface SelectedBridgeQuote extends Omit { shouldApproveToken?: boolean; shouldTwoStepApprove?: boolean; loading?: boolean; + tx?: BridgeQuote['tx']; } export const useTokenPair = (userAddress: string) => { @@ -211,15 +213,6 @@ export const useTokenPair = (userAddress: string) => { const aggregatorsList = useRabbySelector( (s) => s.bridge.aggregatorsList || [] ); - const selectedAggregators = useRabbySelector( - (s) => s.bridge.selectedAggregators || [] - ); - - const availableSelectedAggregators = useMemo(() => { - return selectedAggregators?.filter((e) => - aggregatorsList.some((item) => item.id === e) - ); - }, [selectedAggregators, aggregatorsList]); const fetchIdRef = useRef(0); const wallet = useWallet(); @@ -232,7 +225,7 @@ export const useTokenPair = (userAddress: string) => { receiveToken && chain && payAmount && - availableSelectedAggregators.length > 0 + aggregatorsList.length > 0 ) { fetchIdRef.current += 1; const currentFetchId = fetchIdRef.current; @@ -247,9 +240,9 @@ export const useTokenPair = (userAddress: string) => { return e?.map((e) => ({ ...e, loading: true })); }); - const data = await wallet.openapi + const originData = await wallet.openapi .getBridgeQuoteList({ - aggregator_ids: availableSelectedAggregators.join(','), + aggregator_ids: aggregatorsList.map((e) => e.id).join(','), from_token_id: payToken.id, user_addr: userAddress, from_chain_id: payToken.chain, @@ -260,85 +253,176 @@ export const useTokenPair = (userAddress: string) => { to_chain_id: receiveToken.chain, to_token_id: receiveToken.id, }) - .finally(() => { - // enableSwapBySlippageChanged(currentFetchId); + .catch((e) => { + if (currentFetchId === fetchIdRef.current) { + stats.report('bridgeQuoteResult', { + aggregator_ids: aggregatorsList.map((e) => e.id).join(','), + from_chain_id: payToken.chain, + from_token_id: payToken.id, + to_token_id: receiveToken.id, + to_chain_id: receiveToken.chain, + status: 'fail', + }); + } + }) + .finally(() => {}); + + const data = originData?.filter( + (quote) => + !!quote?.bridge && + !!quote?.bridge?.id && + !!quote?.bridge?.logo_url && + !!quote.bridge.name + ); + + if (currentFetchId === fetchIdRef.current) { + stats.report('bridgeQuoteResult', { + aggregator_ids: aggregatorsList.map((e) => e.id).join(','), + from_chain_id: payToken.chain, + from_token_id: payToken.id, + to_token_id: receiveToken.id, + to_chain_id: receiveToken.chain, + status: data ? 'success' : 'fail', }); + } if (data && currentFetchId === fetchIdRef.current) { + if (!isEmpty) { + setQuotesList(data.map((e) => ({ ...e, loading: true }))); + } + await Promise.allSettled( - data.map((e) => - wallet.openapi - .getBridgeQuote({ - aggregator_id: e.aggregator.id, - bridge_id: e.bridge.id, - from_token_id: payToken.id, - user_addr: userAddress, - from_chain_id: payToken.chain, - from_token_raw_amount: new BigNumber(payAmount) - .times(10 ** payToken.decimals) - .toFixed(0, 1) - .toString(), - to_chain_id: receiveToken.chain, - to_token_id: receiveToken.id, - }) - .then(async (data) => { - if (currentFetchId !== fetchIdRef.current) { - return; - } - let tokenApproved = false; - let allowance = '0'; - const fromChain = findChain({ serverId: payToken?.chain }); - if (payToken?.id === fromChain?.nativeTokenAddress) { - tokenApproved = true; - } else { - allowance = await wallet.getERC20Allowance( - payToken.chain, - payToken.id, - data.tx.to - ); - tokenApproved = new BigNumber(allowance).gte( - new BigNumber(payAmount).times(10 ** payToken.decimals) + data.map(async (quote) => { + if (currentFetchId !== fetchIdRef.current) { + return; + } + let tokenApproved = false; + let allowance = '0'; + const fromChain = findChain({ serverId: payToken?.chain }); + if (payToken?.id === fromChain?.nativeTokenAddress) { + tokenApproved = true; + } else { + allowance = await wallet.getERC20Allowance( + payToken.chain, + payToken.id, + quote.approve_contract_id + ); + tokenApproved = new BigNumber(allowance).gte( + new BigNumber(payAmount).times(10 ** payToken.decimals) + ); + } + let shouldTwoStepApprove = false; + if ( + fromChain?.enum === CHAINS_ENUM.ETH && + isSameAddress(payToken.id, ETH_USDT_CONTRACT) && + Number(allowance) !== 0 && + !tokenApproved + ) { + shouldTwoStepApprove = true; + } + + if (isEmpty) { + result.push({ + ...quote, + shouldTwoStepApprove, + shouldApproveToken: !tokenApproved, + }); + } else { + if (currentFetchId === fetchIdRef.current) { + setQuotesList((e) => { + const filteredArr = e.filter( + (item) => + item.aggregator.id !== quote.aggregator.id || + item.bridge.id !== quote.bridge.id ); - } - let shouldTwoStepApprove = false; - if ( - fromChain?.enum === CHAINS_ENUM.ETH && - isSameAddress(payToken.id, ETH_USDT_CONTRACT) && - Number(allowance) !== 0 && - !tokenApproved - ) { - shouldTwoStepApprove = true; - } - - if (isEmpty) { - result.push({ - ...data, - shouldTwoStepApprove, - shouldApproveToken: !tokenApproved, - }); - } else { - if (currentFetchId === fetchIdRef.current) { - setQuotesList((e) => { - const filteredArr = e.filter( - (item) => - item.aggregator.id !== data.aggregator.id || - item.bridge.id !== data.bridge.id - ); - return [ - ...filteredArr, - { - ...data, - loading: false, - shouldTwoStepApprove, - shouldApproveToken: !tokenApproved, - }, - ]; - }); - } - } - }) - ) + return [ + ...filteredArr, + { + ...quote, + loading: false, + shouldTwoStepApprove, + shouldApproveToken: !tokenApproved, + }, + ]; + }); + } + } + }) ); + // await Promise.allSettled( + // data.map((e) => + // wallet.openapi + // .getBridgeQuote({ + // aggregator_id: e.aggregator.id, + // bridge_id: e.bridge_id, + // from_token_id: payToken.id, + // user_addr: userAddress, + // from_chain_id: payToken.chain, + // from_token_raw_amount: new BigNumber(payAmount) + // .times(10 ** payToken.decimals) + // .toFixed(0, 1) + // .toString(), + // to_chain_id: receiveToken.chain, + // to_token_id: receiveToken.id, + // }) + // .then(async (data) => { + // if (currentFetchId !== fetchIdRef.current) { + // return; + // } + // let tokenApproved = false; + // let allowance = '0'; + // const fromChain = findChain({ serverId: payToken?.chain }); + // if (payToken?.id === fromChain?.nativeTokenAddress) { + // tokenApproved = true; + // } else { + // allowance = await wallet.getERC20Allowance( + // payToken.chain, + // payToken.id, + // data.tx.to + // ); + // tokenApproved = new BigNumber(allowance).gte( + // new BigNumber(payAmount).times(10 ** payToken.decimals) + // ); + // } + // let shouldTwoStepApprove = false; + // if ( + // fromChain?.enum === CHAINS_ENUM.ETH && + // isSameAddress(payToken.id, ETH_USDT_CONTRACT) && + // Number(allowance) !== 0 && + // !tokenApproved + // ) { + // shouldTwoStepApprove = true; + // } + + // if (isEmpty) { + // result.push({ + // ...data, + // shouldTwoStepApprove, + // shouldApproveToken: !tokenApproved, + // }); + // } else { + // if (currentFetchId === fetchIdRef.current) { + // setQuotesList((e) => { + // const filteredArr = e.filter( + // (item) => + // item.aggregator.id !== data.aggregator.id || + // item.bridge.id !== data.bridge.id + // ); + // return [ + // ...filteredArr, + // { + // ...data, + // loading: false, + // shouldTwoStepApprove, + // shouldApproveToken: !tokenApproved, + // }, + // ]; + // }); + // } + // } + // }) + // ) + // ); if (isEmpty && currentFetchId === fetchIdRef.current) { setQuotesList(result); @@ -347,7 +431,7 @@ export const useTokenPair = (userAddress: string) => { } }, [ visible, - availableSelectedAggregators, + aggregatorsList, refreshId, userAddress, payToken?.id, From 9e2d8688865ca086b2acdca9d185c630c9950add Mon Sep 17 00:00:00 2001 From: DMY <147dmy@gmail.com> Date: Wed, 10 Jul 2024 21:56:00 +0800 Subject: [PATCH 09/19] feat: swap --- _raw/locales/en/messages.json | 12 +- package.json | 2 +- src/constant/index.ts | 55 ++++-- src/ui/assets/swap/hidden-quote-arrow.svg | 4 + src/ui/models/swap.ts | 15 +- src/ui/style/antd-overwrite.less | 13 ++ src/ui/views/Swap/Component/Header.tsx | 6 + src/ui/views/Swap/Component/Main.tsx | 5 +- src/ui/views/Swap/Component/QuoteItem.tsx | 187 +++++------------- src/ui/views/Swap/Component/Quotes.tsx | 150 +++++++------- .../views/Swap/Component/TradingSettings.tsx | 38 ++-- src/ui/views/Swap/Component/loading.tsx | 45 +---- src/ui/views/Swap/hooks/quote.tsx | 6 +- yarn.lock | 8 +- 14 files changed, 241 insertions(+), 305 deletions(-) create mode 100644 src/ui/assets/swap/hidden-quote-arrow.svg diff --git a/_raw/locales/en/messages.json b/_raw/locales/en/messages.json index dd0fc6b326e..85523a61af8 100644 --- a/_raw/locales/en/messages.json +++ b/_raw/locales/en/messages.json @@ -795,7 +795,7 @@ "slippage-adjusted-refresh-quote": "Slippage adjusted. Refresh quote.", "price-expired-refresh-quote": "Price expired. Refresh quote.", "approve-x-symbol": "Approve {{symbol}}", - "approve-and-swap": "Approve and Swap", + "approve-and-swap": "Approve and Swap via {{name}}", "swap-via-x": "Swap via {{name}}", "get-quotes": "Get quotes", "chain": "Chain", @@ -858,7 +858,7 @@ "title": "Bridge", "history": "Bridge history", "the-following-bridge-route-are-found": "Found following bridge route", - "no-transaction-records": "No Token Pair Found", + "no-transaction-records": "No transaction records", "pendingTip": "Tx submitted. If the tx is pending for long hours, you can try to clear pending in settings.", "Pending": "Pending", "completedTip": "Transaction on chain, decoding data to generate record", @@ -878,7 +878,7 @@ "slippage-adjusted-refresh-quote": "Slippage adjusted. Refresh route.", "price-expired-refresh-route": "Price expired. Refresh route.", "approve-x-symbol": "Approve {{symbol}}", - "approve-and-bridge": "Approve and Bridge", + "approve-and-bridge": "Approve and Bridge on {{name}}", "need-to-approve-token-before-bridge": "Need to approve token before bridge", "via-bridge": "via {{bridge}}", "duration": "{{duration}} min", @@ -887,10 +887,12 @@ "bridge-cost": "Bridge cost", "rabby-fee": "Rabby fee", "bridge-via-x": "Bridge on {{name}}", - "noData": "No data", + "no-route-found": "No route found", + "aggregator-not-enabled": "This aggregator is not enabled to trade by you.", + "enable-it": "Enable it", "settingModal": { - "title": "Choose the Bridge Aggregators to find routes", + "title": "Enable Bridge Aggregators to trade", "confirm": "Confirm", "SupportedBridge": "Supported Bridge:", "confirmModal": { diff --git a/package.json b/package.json index a1ef7d6b338..56808ef6bdc 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "@rabby-wallet/page-provider": "0.3.5", "@rabby-wallet/rabby-api": "0.7.23-beta.0", "@rabby-wallet/rabby-security-engine": "2.0.3", - "@rabby-wallet/rabby-swap": "0.0.37", + "@rabby-wallet/rabby-swap": "0.0.38-beta.0", "@rabby-wallet/widgets": "1.0.9", "@rematch/core": "2.2.0", "@rematch/select": "3.1.2", diff --git a/src/constant/index.ts b/src/constant/index.ts index eaee4b1143d..6161b9e07f5 100644 --- a/src/constant/index.ts +++ b/src/constant/index.ts @@ -1403,12 +1403,6 @@ export const SWAP_FEE_ADDRESS = '0x39041F1B366fE33F9A5a79dE5120F2Aee2577ebc'; export const ETH_USDT_CONTRACT = '0xdac17f958d2ee523a2206206994597c13d831ec7'; export const DEX = { - [DEX_ENUM.ONEINCH]: { - id: DEX_ENUM.ONEINCH, - logo: Logo1inch, - name: '1inch', - chains: DEX_SUPPORT_CHAINS[DEX_ENUM.ONEINCH], - }, [DEX_ENUM.ZEROXAPI]: { id: DEX_ENUM.ZEROXAPI, logo: Logo0X, @@ -1421,6 +1415,25 @@ export const DEX = { name: 'ParaSwap', chains: DEX_SUPPORT_CHAINS[DEX_ENUM.PARASWAP], }, + [DEX_ENUM.ONEINCH]: { + id: DEX_ENUM.ONEINCH, + logo: Logo1inch, + name: '1inch', + chains: DEX_SUPPORT_CHAINS[DEX_ENUM.ONEINCH], + }, + + [DEX_ENUM.OPENOCEAN]: { + id: DEX_ENUM.OPENOCEAN, + logo: LogoOpenOcean, + name: 'OpenOcean', + chains: DEX_SUPPORT_CHAINS[DEX_ENUM.OPENOCEAN], + }, + [DEX_ENUM.KYBERSWAP]: { + id: DEX_ENUM.KYBERSWAP, + logo: LogoKyberSwap, + name: 'KyberSwap', + chains: DEX_SUPPORT_CHAINS[DEX_ENUM.KYBERSWAP], + }, }; export const DEX_WITH_WRAP = { @@ -1433,21 +1446,21 @@ export const DEX_WITH_WRAP = { }; export const CEX = { - binance: { - id: 'binance', - name: 'Binance', - logo: LogoBinance, - }, - coinbase: { - id: 'coinbase', - name: 'Coinbase', - logo: LogoCoinbase, - }, - okex: { - id: 'okex', - name: 'OKX', - logo: LogoOkx, - }, + // binance: { + // id: 'binance', + // name: 'Binance', + // logo: LogoBinance, + // }, + // coinbase: { + // id: 'coinbase', + // name: 'Coinbase', + // logo: LogoCoinbase, + // }, + // okex: { + // id: 'okex', + // name: 'OKX', + // logo: LogoOkx, + // }, }; export const SWAP_SUPPORT_CHAINS = Array.from( diff --git a/src/ui/assets/swap/hidden-quote-arrow.svg b/src/ui/assets/swap/hidden-quote-arrow.svg new file mode 100644 index 00000000000..cdcd9ee8940 --- /dev/null +++ b/src/ui/assets/swap/hidden-quote-arrow.svg @@ -0,0 +1,4 @@ + + + \ No newline at end of file diff --git a/src/ui/models/swap.ts b/src/ui/models/swap.ts index a931a78c5ad..ba95124b3ce 100644 --- a/src/ui/models/swap.ts +++ b/src/ui/models/swap.ts @@ -1,7 +1,7 @@ import { createModel } from '@rematch/core'; import { RootModel } from '.'; import { ChainGas } from 'background/service/preference'; -import { CHAINS_ENUM } from 'consts'; +import { CHAINS_ENUM, DEX } from 'consts'; import { SwapServiceStore } from '@/background/service/swap'; import { DEX_ENUM } from '@rabby-wallet/rabby-swap'; import { TokenItem } from '@rabby-wallet/rabby-api/dist/types'; @@ -10,6 +10,7 @@ export const swap = createModel()({ name: 'swap', state: { + supportedDEXList: Object.keys(DEX), selectedDex: null, selectedChain: null, gasPriceCache: {}, @@ -21,6 +22,7 @@ export const swap = createModel()({ $$initialSelectedChain: null, } as Partial & { $$initialSelectedChain: CHAINS_ENUM | null; + supportedDEXList: string[]; }, reducers: { @@ -58,6 +60,8 @@ export const swap = createModel()({ (data as SwapServiceStore).selectedChain || null, }); } + + await this.getSwapSupportedDEXList(); }, async getSwapGasCache(chain: CHAINS_ENUM, store) { @@ -180,5 +184,14 @@ export const swap = createModel()({ await store.app.wallet.setSwapPreferMEVGuarded(bool); this.getSwapPreferMEV(); }, + + async getSwapSupportedDEXList(_: void, store) { + const data = await store.app.wallet.openapi.getSupportedDEXList(); + if (data.dex_list) { + this.setField({ + supportedDEXList: data.dex_list, + }); + } + }, }), }); diff --git a/src/ui/style/antd-overwrite.less b/src/ui/style/antd-overwrite.less index d8109f8e014..2dbe9a3e430 100644 --- a/src/ui/style/antd-overwrite.less +++ b/src/ui/style/antd-overwrite.less @@ -273,6 +273,19 @@ ---------------------*/ .ant-switch { background: #b4bdcc; + + &.ant-switch-small { + height: 14px; + line-height: 14px; + .ant-switch-handle { + top: 1px; + left: 1px; + } + + &.ant-switch-checked .ant-switch-handle { + left: calc(100% - 12px - 1px); + } + } } .ant-switch-disabled { diff --git a/src/ui/views/Swap/Component/Header.tsx b/src/ui/views/Swap/Component/Header.tsx index 631fa26d7dd..c86667d4cc8 100644 --- a/src/ui/views/Swap/Component/Header.tsx +++ b/src/ui/views/Swap/Component/Header.tsx @@ -7,6 +7,7 @@ import { TradingSettings } from './TradingSettings'; import { useSetSettingVisible, useSettingVisible } from '../hooks'; import { SwapTxHistory } from './History'; import { useTranslation } from 'react-i18next'; +import { useRabbyDispatch } from '@/ui/store'; export const Header = () => { const visible = useSettingVisible(); @@ -15,6 +16,11 @@ export const Header = () => { const [historyVisible, setHistoryVisible] = useState(false); const { t } = useTranslation(); + const dispath = useRabbyDispatch(); + React.useEffect(() => { + dispath.swap.getSwapSupportedDEXList(); + }, []); + return ( <> { return t('page.swap.price-expired-refresh-quote'); } if (activeProvider?.shouldApproveToken) { - return t('page.swap.approve-and-swap'); + return t('page.swap.approve-and-swap', { name: DexDisplayName }); } if (activeProvider?.name) { return t('page.swap.swap-via-x', { @@ -421,7 +421,8 @@ export const Main = () => {
{ handleBalance(); diff --git a/src/ui/views/Swap/Component/QuoteItem.tsx b/src/ui/views/Swap/Component/QuoteItem.tsx index 588c75ac16e..4fcbb7e76db 100644 --- a/src/ui/views/Swap/Component/QuoteItem.tsx +++ b/src/ui/views/Swap/Component/QuoteItem.tsx @@ -1,11 +1,10 @@ -import { CEX } from '@/constant'; import { formatAmount, formatUsdValue } from '@/ui/utils'; import { CHAINS_ENUM } from '@debank/common'; -import { TokenItem, CEXQuote } from '@rabby-wallet/rabby-api/dist/types'; +import { TokenItem } from '@rabby-wallet/rabby-api/dist/types'; import { DEX_ENUM } from '@rabby-wallet/rabby-swap'; import { QuoteResult } from '@rabby-wallet/rabby-swap/dist/quote'; import clsx from 'clsx'; -import React, { useMemo, useCallback, useState } from 'react'; +import React, { useMemo, useCallback, useState, useEffect } from 'react'; import { useDebounce } from 'react-use'; import styled from 'styled-components'; import { QuoteLogo } from './QuoteLogo'; @@ -70,6 +69,7 @@ const ItemWrapper = styled.div` color: #ffffff; pointer-events: none; &.active { + cursor: pointer; pointer-events: auto; height: 100%; transform: translateY(0); @@ -104,6 +104,10 @@ const ItemWrapper = styled.div` justify-content: space-between; height: auto; height: 80px; + + &.error { + height: 52px; + } } &.cex { @@ -156,6 +160,7 @@ const ItemWrapper = styled.div` `; export interface QuoteItemProps { + onlyShowErrorQuote?: boolean; quote: QuoteResult | null; name: string; loading?: boolean; @@ -181,6 +186,7 @@ export interface QuoteItemProps { export const DexQuoteItem = ( props: QuoteItemProps & { preExecResult: QuotePreExecResultInfo; + onErrQuote?: React.Dispatch>; } ) => { const { @@ -203,6 +209,7 @@ export const DexQuoteItem = ( preExecResult, quoteProviderInfo, setActiveProvider: updateActiveQuoteProvider, + onErrQuote, } = props; const { t } = useTranslation(); @@ -487,6 +494,35 @@ export const DexQuoteItem = ( ] ); + const isErrorQuote = useMemo( + () => + !isSdkDataPass || + !quote?.toTokenAmount || + !!(quote?.toTokenAmount && !preExecResult && !inSufficient), + [isSdkDataPass, quote, preExecResult, inSufficient] + ); + + useEffect(() => { + if (isErrorQuote && props.onlyShowErrorQuote) { + props?.onErrQuote?.((e) => { + return e.includes(dexId) ? e : [...e, dexId]; + }); + } + if (!props.onlyShowErrorQuote && !isErrorQuote) { + props?.onErrQuote?.((e) => + e.includes(dexId) ? e.filter((e) => e !== dexId) : e + ); + } + }, [props.onlyShowErrorQuote, isErrorQuote, dexId, props?.onErrQuote]); + + if (!isErrorQuote && props.onlyShowErrorQuote) { + return null; + } + + if (!props.onlyShowErrorQuote && isErrorQuote) { + return null; + } + return ( @@ -530,6 +567,11 @@ export const DexQuoteItem = (
{ + e.stopPropagation(); + openSwapSettings(true); + setDisabledTradeTipsOpen(false); + }} > {t('page.swap.this-exchange-is-not-enabled-to-trade-by-you')}
- { - e.stopPropagation(); - openSwapSettings(true); - setDisabledTradeTipsOpen(false); - }} - > + {t('page.swap.enable-it')} @@ -555,134 +590,6 @@ export const DexQuoteItem = ( ); }; -export const CexQuoteItem = (props: { - name: string; - data: CEXQuote | null; - bestQuoteAmount: string; - bestQuoteGasUsd: string; - isBestQuote: boolean; - isLoading?: boolean; - inSufficient: boolean; - receiveToken: TokenItem; -}) => { - const { - name, - data, - bestQuoteAmount, - bestQuoteGasUsd, - isBestQuote, - isLoading, - // inSufficient, - } = props; - const { t } = useTranslation(); - const dexInfo = useMemo(() => CEX[name as keyof typeof CEX], [name]); - const { sortIncludeGasFee } = useSwapSettings(); - const [middleContent, rightContent] = useMemo(() => { - let center: React.ReactNode = null; - let right: React.ReactNode = null; - let disable = false; - - if (!data?.receive_token?.amount) { - right = ( -
- {t('page.swap.this-token-pair-is-not-supported')} -
- ); - disable = true; - } - - if (data?.receive_token?.amount) { - const receiveToken = data.receive_token; - - const bestQuoteUsdBn = new BigNumber(bestQuoteAmount) - .times(receiveToken.price || 1) - .minus(sortIncludeGasFee ? bestQuoteGasUsd : 0); - const receiveUsdBn = new BigNumber(receiveToken.amount).times( - receiveToken.price || 1 - ); - const percent = receiveUsdBn - .minus(bestQuoteUsdBn) - .div(bestQuoteUsdBn) - .times(100); - - const s = formatAmount(receiveToken.amount.toString(10)); - const receiveTokenSymbol = getTokenSymbol(receiveToken); - - center = ( - - {s} - - ); - - right = ( - - {isBestQuote - ? t('page.swap.best') - : `${percent.toFixed(2, BigNumber.ROUND_DOWN)}%`} - - ); - } - - return [center, right, disable]; - }, [ - data?.receive_token, - bestQuoteAmount, - bestQuoteGasUsd, - isBestQuote, - sortIncludeGasFee, - ]); - - return ( - - - -
-
-
- {dexInfo.name} -
- -
- {middleContent !== null && ( - - )} - {middleContent} -
-
{rightContent}
-
-
-
- ); -}; - -export const CexListWrapper = styled.div` - border: 0.5px solid rgba(255, 255, 255, 0.2); - border-radius: 6px; - & > div:not(:last-child) { - position: relative; - &:not(:last-child):before { - content: ''; - position: absolute; - width: 440px; - height: 0; - border-bottom: 0.5px solid rgba(255, 255, 255, 0.1); - left: 20px; - bottom: 0; - } - } -`; - const getQuoteLessWarning = ([receive, diff]: [string, string]) => i18n.t('page.swap.QuoteLessWarning', { receive, diff }); diff --git a/src/ui/views/Swap/Component/Quotes.tsx b/src/ui/views/Swap/Component/Quotes.tsx index 99d7fcd3146..e600edf323c 100644 --- a/src/ui/views/Swap/Component/Quotes.tsx +++ b/src/ui/views/Swap/Component/Quotes.tsx @@ -1,9 +1,9 @@ import { Checkbox, Popup } from '@/ui/component'; -import React, { useMemo } from 'react'; +import React, { useEffect, useMemo, useRef, useState } from 'react'; import { QuoteListLoading, QuoteLoading } from './loading'; import styled from 'styled-components'; import { IconRefresh } from './IconRefresh'; -import { CexQuoteItem, DexQuoteItem, QuoteItemProps } from './QuoteItem'; +import { DexQuoteItem, QuoteItemProps } from './QuoteItem'; import { TCexQuoteData, TDexQuoteData, @@ -13,33 +13,13 @@ import { useSwapSettings, } from '../hooks'; import BigNumber from 'bignumber.js'; -import { CEX, DEX, DEX_WITH_WRAP } from '@/constant'; +import { DEX_WITH_WRAP } from '@/constant'; import { SvgIconCross } from 'ui/assets'; import { useTranslation } from 'react-i18next'; import { getTokenSymbol } from '@/ui/utils/token'; - -const CexListWrapper = styled.div` - border: 0.5px solid var(--r-neutral-line, #d3d8e0); - border-radius: 6px; - &:empty { - display: none; - } - - & > div:not(:last-child) { - position: relative; - &:not(:last-child):before { - content: ''; - position: absolute; - width: 328px; - height: 0; - border-bottom: 0.5px solid var(--r-neutral-line, #d3d8e0); - left: 16px; - bottom: 0; - } - } -`; - -const exchangeCount = Object.keys(DEX).length + Object.keys(CEX).length; +import { ReactComponent as RcIconHiddenArrow } from '@/ui/assets/swap/hidden-quote-arrow.svg'; +import clsx from 'clsx'; +import { useRabbySelector } from '@/ui/store'; interface QuotesProps extends Omit< @@ -65,32 +45,10 @@ export const Quotes = ({ ...other }: QuotesProps) => { const { t } = useTranslation(); - const { swapViewList, swapTradeList, sortIncludeGasFee } = useSwapSettings(); - - const viewCount = useMemo(() => { - if (swapViewList) { - return ( - exchangeCount - - Object.values(swapViewList).filter((e) => e === false).length - ); - } - return exchangeCount; - }, [swapViewList]); - - const tradeCount = useMemo(() => { - if (swapTradeList) { - const TradeDexList = Object.keys(DEX); - return Object.entries(swapTradeList).filter( - ([name, enable]) => enable === true && TradeDexList.includes(name) - ).length; - } - return 0; - }, [swapTradeList]); + const { sortIncludeGasFee } = useSwapSettings(); const setSettings = useSetSettingVisible(); - const openSettings = React.useCallback(() => { - setSettings(true); - }, []); + const sortedList = useMemo( () => [ ...(list?.sort((a, b) => { @@ -164,10 +122,11 @@ export const Quotes = ({ }, [inSufficient, other?.receiveToken?.decimals, sortedList]); const fetchedList = useMemo(() => list?.map((e) => e.name) || [], [list]); + const [hiddenError, setHiddenError] = useState(true); + const [errorQuoteDEXs, setErrorQuoteDEXs] = useState([]); + + const supportedDEXList = useRabbySelector((s) => s.swap.supportedDEXList); - const noCex = useMemo(() => { - return Object.keys(CEX).every((e) => swapViewList?.[e] === false); - }, [swapViewList]); if (isSwapWrapToken(other.payToken.id, other.receiveToken.id, other.chain)) { const dex = sortedList.find((e) => e.isDex) as TDexQuoteData | undefined; @@ -216,6 +175,7 @@ export const Quotes = ({ if (!isDex) return null; return ( ); })} +
- {!noCex && ( -
- {t('page.swap.rates-from-cex')} -
- )} - +
setHiddenError((e) => !e)} + > + + Hidden {errorQuoteDEXs.length} no-quote rates + + +
+
{sortedList.map((params, idx) => { const { name, data, isDex } = params; - if (isDex) return null; + + if (!isDex) return null; return ( - ); })} - - -
-
- {t('page.swap.tradingSettingTips', { viewCount, tradeCount })} - - {t('page.swap.edit')} -
); @@ -291,6 +270,23 @@ export const QuoteList = (props: QuotesProps) => { const { sortIncludeGasFee, setSwapSortIncludeGasFee } = useSwapSettings(); + const supportedDEXList = useRabbySelector((s) => s.swap.supportedDEXList); + + const height = useMemo(() => { + const min = 334; + const max = 518; + + const h = 45 + 24 + supportedDEXList.length * 92; + + if (h < min) { + return min; + } + if (h > max) { + return max; + } + return h; + }, [supportedDEXList.length]); + return ( {
} - height={516} + height={height} onClose={onClose} closable={false} destroyOnClose diff --git a/src/ui/views/Swap/Component/TradingSettings.tsx b/src/ui/views/Swap/Component/TradingSettings.tsx index f0615528bb4..308109b569b 100644 --- a/src/ui/views/Swap/Component/TradingSettings.tsx +++ b/src/ui/views/Swap/Component/TradingSettings.tsx @@ -1,13 +1,13 @@ import { Checkbox, Modal, Popup } from '@/ui/component'; -import React, { useState } from 'react'; +import React, { useMemo, useState } from 'react'; import { useSwapSettings } from '../hooks'; import { CEX, CHAINS_ENUM, DEX } from '@/constant'; -import clsx from 'clsx'; import { Button, Switch } from 'antd'; import { useTranslation } from 'react-i18next'; +import { useRabbySelector } from '@/ui/store'; -const list = [...Object.values(DEX), ...Object.values(CEX)] as { - id: keyof typeof DEX | keyof typeof CEX; +const list = [...Object.values(DEX)] as { + id: keyof typeof DEX; logo: string; name: string; chains: CHAINS_ENUM[]; @@ -30,8 +30,23 @@ export const TradingSettings = ({ const [open, setOpen] = useState(false); + const supportedDEXList = useRabbySelector((s) => s.swap.supportedDEXList); + const [id, setId] = useState[0][0]>(); + const height = useMemo(() => { + const min = 333; + const max = 518; + const h = 100 + supportedDEXList.length * 60; + if (h < min) { + return min; + } + if (h > max) { + return max; + } + return h; + }, [supportedDEXList.length]); + const onConfirm = () => { if (id) { setSwapTrade([id, true]); @@ -43,7 +58,7 @@ export const TradingSettings = ({ {list.map((item) => { + if (!supportedDEXList.includes(item.id)) { + return null; + } return (
{item.name} - - {item?.chains ? t('page.swap.dex') : t('page.swap.cex')} -
void }) { type="primary" block disabled={!checked} - className="h-[40px] w-[188px] text-13 font-medium mx-auto" + className="h-[40px] text-13 font-medium mx-auto" onClick={onConfirm} > {t('page.swap.confirm')} diff --git a/src/ui/views/Swap/Component/loading.tsx b/src/ui/views/Swap/Component/loading.tsx index d069c0a1902..7f22f82da80 100644 --- a/src/ui/views/Swap/Component/loading.tsx +++ b/src/ui/views/Swap/Component/loading.tsx @@ -1,47 +1,22 @@ -import { CEX, DEX } from '@/constant'; +import { DEX } from '@/constant'; import { Skeleton } from 'antd'; import clsx from 'clsx'; import React from 'react'; import { QuoteLogo } from './QuoteLogo'; import { useSwapSettings } from '../hooks'; +import { useRabbySelector } from '@/ui/store'; type QuoteListLoadingProps = { fetchedList?: string[]; - isCex?: boolean; }; export const QuoteLoading = ({ logo, name, - isCex = false, }: { logo: string; name: string; - isCex?: boolean; }) => { - if (isCex) - return ( -
- - - {name} - -
- -
-
- ); return (
-
+
{name} @@ -92,25 +67,19 @@ export const QuoteLoading = ({ export const QuoteListLoading = ({ fetchedList: dataList, - isCex, }: QuoteListLoadingProps) => { const { swapViewList } = useSwapSettings(); + const supportedDEXList = useRabbySelector((s) => s.swap.supportedDEXList); return ( <> - {Object.entries(isCex ? CEX : DEX).map(([key, value]) => { + {Object.entries(DEX).map(([key, value]) => { if ( + !supportedDEXList.includes(key) || (dataList && dataList.includes(key)) || swapViewList?.[key] === false ) return null; - return ( - - ); + return ; })} ); diff --git a/src/ui/views/Swap/hooks/quote.tsx b/src/ui/views/Swap/hooks/quote.tsx index 503d7f1d2ae..875fec67774 100644 --- a/src/ui/views/Swap/hooks/quote.tsx +++ b/src/ui/views/Swap/hooks/quote.tsx @@ -483,6 +483,8 @@ export const useQuoteMethods = () => { const swapViewList = useRabbySelector((s) => s.swap.viewList); + const supportedDEXList = useRabbySelector((s) => s.swap.supportedDEXList); + const getAllQuotes = React.useCallback( async ( params: Omit & { @@ -503,8 +505,8 @@ export const useQuoteMethods = () => { } return Promise.all([ - ...(Object.keys(DEX).filter( - (e) => swapViewList?.[e] !== false + ...(supportedDEXList.filter( + (e) => DEX[e] && swapViewList?.[e] !== false ) as DEX_ENUM[]).map((dexId) => getDexQuote({ ...params, dexId })), ...Object.keys(CEX) .filter((e) => swapViewList?.[e] !== false) diff --git a/yarn.lock b/yarn.lock index ed06ce11495..748187746e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4702,10 +4702,10 @@ sha256-uint8array "^0.10.3" url-parse "^1.5.1" -"@rabby-wallet/rabby-swap@0.0.37": - version "0.0.37" - resolved "https://registry.yarnpkg.com/@rabby-wallet/rabby-swap/-/rabby-swap-0.0.37.tgz#2cfabc1298071c31c8f4581a1dc3722a4698beb0" - integrity sha512-ZeAI42SecqVLPmUdXbwqg4h+Mt9bPDaiTTiFlzzrNW17e2vMOzb1scMIWXQLeFVLlO393+MOCGU2tmrgp7ltNA== +"@rabby-wallet/rabby-swap@0.0.38-beta.0": + version "0.0.38-beta.0" + resolved "https://registry.yarnpkg.com/@rabby-wallet/rabby-swap/-/rabby-swap-0.0.38-beta.0.tgz#4489e0c266bb2cb51bb8aee8d7f02a09db23c95f" + integrity sha512-KJ4WnfNvcLlMuOf8UCKvimr9yZ4QUBcnDBB5qgIfvBqg8XBHR+cAZ9OuIh7knjxcrEfNwKs5TaaQ+SpmHKAkbA== dependencies: "@ethersproject/abi" "^5.7.0" axios "^0.27.2" From 70729fc9d739cd6cd8ca651d689e11df1b75d9f4 Mon Sep 17 00:00:00 2001 From: DMY <147dmy@gmail.com> Date: Thu, 11 Jul 2024 20:12:57 +0800 Subject: [PATCH 10/19] fix --- _raw/locales/en/messages.json | 4 + package.json | 4 +- src/background/service/rabbyPoints.ts | 1 - src/constant/bridge.ts | 269 ++++++++++++++++++ src/constant/default-support-chains.json | 2 +- src/ui/assets/bridge/pending.svg | 12 + src/ui/assets/swap/gas-cc.svg | 10 + src/ui/models/bridge.ts | 8 +- .../Bridge/Component/AggregatorsSettings.tsx | 16 +- .../views/Bridge/Component/BridgeContent.tsx | 4 +- .../views/Bridge/Component/BridgeHeader.tsx | 28 +- .../Bridge/Component/BridgeReceiveDetail.tsx | 1 - src/ui/views/Bridge/Component/PendingTx.tsx | 22 ++ src/ui/views/Bridge/hooks/history.tsx | 48 +++- src/ui/views/Swap/Component/Header.tsx | 28 +- src/ui/views/Swap/Component/QuoteItem.tsx | 75 ++++- src/ui/views/Swap/Component/Quotes.tsx | 31 +- src/ui/views/Swap/hooks/history.tsx | 46 +++ src/ui/views/Swap/hooks/quote.tsx | 1 + src/ui/views/Swap/hooks/settings.tsx | 10 + src/ui/views/Swap/hooks/verify.tsx | 2 + yarn.lock | 16 +- 22 files changed, 577 insertions(+), 61 deletions(-) create mode 100644 src/constant/bridge.ts create mode 100644 src/ui/assets/bridge/pending.svg create mode 100644 src/ui/assets/swap/gas-cc.svg create mode 100644 src/ui/views/Bridge/Component/PendingTx.tsx diff --git a/_raw/locales/en/messages.json b/_raw/locales/en/messages.json index 85523a61af8..6a2a056446e 100644 --- a/_raw/locales/en/messages.json +++ b/_raw/locales/en/messages.json @@ -805,6 +805,10 @@ "amount-in": "Amount in {{symbol}}", "unlimited-allowance": "Unlimited allowance", "insufficient-balance": "Insufficient balance", + "hidden-no-quote-rates_one": "Hidden {{count}} no-quote rate", + "hidden-no-quote-rates_others": "Hidden {{count}} no-quote rates", + + "Gas-fee-too-high": "Gas fee too high", "rabby-fee": "Rabby fee", "preferMEV": "Prefer MEV Guarded", "preferMEVTip": "Enable \"MEV Guarded\" feature for Ethereum swaps to reduce sandwich attack risks. Note: this feature is not supported if you use a custom RPC or wallet connect address", diff --git a/package.json b/package.json index 56808ef6bdc..17bcb94ef10 100644 --- a/package.json +++ b/package.json @@ -58,9 +58,9 @@ "@rabby-wallet/eth-watch-keyring": "1.0.0", "@rabby-wallet/gnosis-sdk": "1.3.6", "@rabby-wallet/page-provider": "0.3.5", - "@rabby-wallet/rabby-api": "0.7.23-beta.0", + "@rabby-wallet/rabby-api": "0.7.23-beta.1", "@rabby-wallet/rabby-security-engine": "2.0.3", - "@rabby-wallet/rabby-swap": "0.0.38-beta.0", + "@rabby-wallet/rabby-swap": "0.0.38-beta.1", "@rabby-wallet/widgets": "1.0.9", "@rematch/core": "2.2.0", "@rematch/select": "3.1.2", diff --git a/src/background/service/rabbyPoints.ts b/src/background/service/rabbyPoints.ts index d1a9a309387..f594681b71b 100644 --- a/src/background/service/rabbyPoints.ts +++ b/src/background/service/rabbyPoints.ts @@ -1,5 +1,4 @@ import { createPersistStore } from 'background/utils'; -import { CEX, DEX } from '@/constant'; export type RabbyPointsStore = { signatures: Record; diff --git a/src/constant/bridge.ts b/src/constant/bridge.ts new file mode 100644 index 00000000000..b9c27d5f608 --- /dev/null +++ b/src/constant/bridge.ts @@ -0,0 +1,269 @@ +export const DEFAULT_BRIDGE_SUPPORTED_CHAIN = [ + 'eth', + 'mobm', + 'base', + 'movr', + 'linea', + 'matic', + 'op', + 'mode', + 'mnt', + 'rsk', + 'boba', + 'arb', + 'blast', + 'bsc', + 'metis', + 'era', + 'pze', + 'scrl', + 'aurora', + 'xdai', + 'avax', + 'ftm', + 'celo', + 'zora', + 'fuse', + 'frax', +]; + +export const DEFAULT_BRIDGE_AGGREGATOR = [ + { + id: 'bungee', + name: 'Bungee', + logo_url: + 'https://static.debank.com/image/project/logo_url/op_bungee/0f25166d72b1c552f6acc16b90345464.png', + bridge_list: [ + { + id: 'base-bridge', + name: 'Base', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/e514b104d82e3a0cb5537681d6845c6b/e514b104d82e3a0cb5537681d6845c6b.png', + }, + { + id: 'stargate', + name: 'Stargate', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/55886c6280173254776780fd8340cca7/55886c6280173254776780fd8340cca7.png', + }, + { + id: 'mantle-native-bridge', + name: 'Mantle Native', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/d7683a5b68c00fd90828709dc7d08fdb/d7683a5b68c00fd90828709dc7d08fdb.png', + }, + { + id: 'cctp', + name: 'Circle CCTP', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/17197a58a50ed6e294a725dda3fad872/17197a58a50ed6e294a725dda3fad872.png', + }, + { + id: 'zora-bridge', + name: 'Zora', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/d1a5c2ccd94a45c844d1eafc43bc6202/d1a5c2ccd94a45c844d1eafc43bc6202.png', + }, + { + id: 'arbitrum-bridge', + name: 'Arbitrum', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/67237107afb53d176754926ec81e5a1c/67237107afb53d176754926ec81e5a1c.png', + }, + { + id: 'celer', + name: 'Celer', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/2ecec6d18db661ccd9782306349b50f8/2ecec6d18db661ccd9782306349b50f8.png', + }, + { + id: 'symbiosis', + name: 'Symbiosis', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/ff48e49399b1f6d677fa6f6cb4b45870/ff48e49399b1f6d677fa6f6cb4b45870.png', + }, + { + id: 'across', + name: 'Across', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/82cb74da444862e7262ef3b6143cbcb4/82cb74da444862e7262ef3b6143cbcb4.png', + }, + { + id: 'synapse', + name: 'Synapse', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/5c7cf84239d010bef03c11c1a2f8fad9/5c7cf84239d010bef03c11c1a2f8fad9.png', + }, + { + id: 'gnosis-native-bridge', + name: 'Gnosis Native', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/e303cef874ceb6d7b0112dd5650e5bf1/e303cef874ceb6d7b0112dd5650e5bf1.png', + }, + { + id: 'hyphen', + name: 'Hyphen', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/c23e9bda45a45b043d7238b533439018/c23e9bda45a45b043d7238b533439018.png', + }, + { + id: 'hop', + name: 'Hop', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/9ac487c0a58b2205c42533125e374f24/9ac487c0a58b2205c42533125e374f24.png', + }, + { + id: 'optimism-bridge', + name: 'Optimism', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/7a18168471ca584bc0162c8806392b76/7a18168471ca584bc0162c8806392b76.png', + }, + { + id: 'mode-native-bridge', + name: 'Mode Native', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/c91a2e28e7ba67c6d95f16a16e1f6ffe/c91a2e28e7ba67c6d95f16a16e1f6ffe.png', + }, + { + id: 'scroll-native-bridge', + name: 'Scroll Native', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/9e583479dc65b95460c9790e2cc909b9/9e583479dc65b95460c9790e2cc909b9.png', + }, + { + id: 'polygon-bridge', + name: 'Polygon POS', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/36b3e9e58e16beab418b0332fd0accfd/36b3e9e58e16beab418b0332fd0accfd.png', + }, + { + id: 'refuel-bridge', + name: 'Refuel', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/ead1d90ef86fec7f28dfbd0ca203f48b/ead1d90ef86fec7f28dfbd0ca203f48b.png', + }, + { + id: 'connext', + name: 'Connext', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/dc176d313023c71d4687c4620ebb5d4d/dc176d313023c71d4687c4620ebb5d4d.png', + }, + { + id: 'zksync-native', + name: 'ZkSync', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/2e46e772be0b0c3715958a3c4c934792/2e46e772be0b0c3715958a3c4c934792.png', + }, + ], + }, + { + id: 'lifi', + name: 'Li.fi', + logo_url: + 'https://static.debank.com/image/project/logo_url/lifiprotocol/22262cb8c3879421c841c1e1e8c468ee.png', + bridge_list: [ + { + id: 'hyphen', + name: 'Hyphen', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/4f08b730ca9c62f9bfd5fcb737680dfb/4f08b730ca9c62f9bfd5fcb737680dfb.png', + }, + { + id: 'allbridge', + name: 'Allbridge', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/f2706d1badbb5922b75fbb786fda73ec/f2706d1badbb5922b75fbb786fda73ec.png', + }, + { + id: 'gnosis', + name: 'Gnosis Bridge', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/796e87d181abdf433aca922613384ad8/796e87d181abdf433aca922613384ad8.png', + }, + { + id: 'amarok', + name: 'Connext', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/332c3a7539914056fa5edbb4c45f4486/332c3a7539914056fa5edbb4c45f4486.png', + }, + { + id: 'cbridge', + name: 'Celer cBridge', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/1a7e9da4938605a86be360e4b0cf03f5/1a7e9da4938605a86be360e4b0cf03f5.png', + }, + { + id: 'symbiosis', + name: 'Symbiosis', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/05d4717d6d78677662663afe632f79b0/05d4717d6d78677662663afe632f79b0.png', + }, + { + id: 'stargate', + name: 'Stargate', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/15fe4b0cb6e3c3191d039006bef6f8b3/15fe4b0cb6e3c3191d039006bef6f8b3.png', + }, + { + id: 'arbitrum', + name: 'Arbitrum Bridge', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/325af805bf8f830f3bacd15ba97d0652/325af805bf8f830f3bacd15ba97d0652.png', + }, + { + id: 'stargateV2', + name: 'StargateV2', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/15fe4b0cb6e3c3191d039006bef6f8b3/15fe4b0cb6e3c3191d039006bef6f8b3.png', + }, + { + id: 'celerim', + name: 'CelerIM', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/1a7e9da4938605a86be360e4b0cf03f5/1a7e9da4938605a86be360e4b0cf03f5.png', + }, + { + id: 'celercircle', + name: 'Circle CCTP', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/58dc0ae7627e0f7f12eb4bc8a259bcde/58dc0ae7627e0f7f12eb4bc8a259bcde.png', + }, + { + id: 'optimism', + name: 'Optimism Gateway', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/7d0de3c35bc9699a7ca1a178af7102ff/7d0de3c35bc9699a7ca1a178af7102ff.png', + }, + { + id: 'omni', + name: 'Omni Bridge', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/7f4c137cd1fd03dd8ea99801b1214ae9/7f4c137cd1fd03dd8ea99801b1214ae9.png', + }, + { + id: 'thorswap', + name: 'Thorswap', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/3f795b4d5aa4251fb51e04d4ad3a544a/3f795b4d5aa4251fb51e04d4ad3a544a.png', + }, + { + id: 'hop', + name: 'Hop', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/da25bb040440c40eb64dd55dac28d0f0/da25bb040440c40eb64dd55dac28d0f0.png', + }, + { + id: 'squid', + name: 'Squid', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/c9d8e490e3e157c3623f912e0b12d0da/c9d8e490e3e157c3623f912e0b12d0da.png', + }, + { + id: 'across', + name: 'Across', + logo_url: + 'https://static.debank.com/image/bridge/logo_url/82cb74da444862e7262ef3b6143cbcb4/82cb74da444862e7262ef3b6143cbcb4.png', + }, + ], + }, +]; diff --git a/src/constant/default-support-chains.json b/src/constant/default-support-chains.json index 45f5ceb863a..8f3bd168ad1 100644 --- a/src/constant/default-support-chains.json +++ b/src/constant/default-support-chains.json @@ -1 +1 @@ -[{"id": "eth", "community_id": 1, "name": "Ethereum", "native_token": {"id": "eth", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/eth/42ba589cd077e7bdd97db6480b0ff61d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/eth/561dda8f1ed8f0b2f46474bde3f02d0b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://etherscan.io", "need_estimate_gas": false}, {"id": "bsc", "community_id": 56, "name": "BNB Chain", "native_token": {"id": "bsc", "symbol": "BNB", "logo": "https://static.debank.com/image/coin/logo_url/bnb/9784283a36f23a58982fc964574ea530.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bsc/bc73fa84b7fc5337905e527dadcbc854.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bsc/8e44e643d6e2fd335a72b4cda6368e1a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bscscan.com", "need_estimate_gas": false}, {"id": "xdai", "community_id": 100, "name": "Gnosis Chain", "native_token": {"id": "xdai", "symbol": "xDai", "logo": "https://static.debank.com/image/xdai_token/logo_url/xdai/297890dc063e6dfb6cb4065cdf38382e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xdai/43c1e09e93e68c9f0f3b132976394529.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xdai/d8744f83d1a3bef4941c0820d76242a2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://gnosisscan.io", "need_estimate_gas": false}, {"id": "matic", "community_id": 137, "name": "Polygon", "native_token": {"id": "matic", "symbol": "MATIC", "logo": "https://static.debank.com/image/matic_token/logo_url/matic/6f5a6b6f0732a7a235131bd7804d357c.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/matic/52ca152c08831e4765506c9bd75767e8.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/matic/d9d33b57922dce7a5ac567b0e5eb1e4b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://polygonscan.com", "need_estimate_gas": false}, {"id": "ftm", "community_id": 250, "name": "Fantom", "native_token": {"id": "ftm", "symbol": "FTM", "logo": "https://static.debank.com/image/ftm_token/logo_url/ftm/33fdb9c5067e94f3a1b9e78f6fa86984.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ftm/14133435f89637157a4405e954e1b1b2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ftm/64178bae592be3a33c160b1d9b9a124a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://ftmscan.com", "need_estimate_gas": false}, {"id": "avax", "community_id": 43114, "name": "Avalanche", "native_token": {"id": "avax", "symbol": "AVAX", "logo": "https://static.debank.com/image/avax_token/logo_url/avax/0b9c84359c84d6bdd5bfda9c2d4c4a82.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/avax/4d1649e8a0c7dec9de3491b81807d402.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/avax/e8a86458cb9e656052f0250d079622d8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://snowtrace.io", "need_estimate_gas": false}, {"id": "op", "community_id": 10, "name": "OP", "native_token": {"id": "op", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/op/01ae734fe781c9c2ae6a4cc7e9244056.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/op/b571a53bc1ce3833a6cc3db42847931b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://optimistic.etherscan.io", "need_estimate_gas": false}, {"id": "arb", "community_id": 42161, "name": "Arbitrum", "native_token": {"id": "arb", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/arb/854f629937ce94bebeb2cd38fb336de7.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/arb/315c3c4560a12e9c94841706e3ed9ce5.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://arbiscan.io", "need_estimate_gas": true}, {"id": "celo", "community_id": 42220, "name": "Celo", "native_token": {"id": "celo", "symbol": "CELO", "logo": "https://static.debank.com/image/celo_token/logo_url/0x471ece3750da237f93b8e339c536989b8978a438/6f524d91db674876ba0f5767cf0124cc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/celo/41da5c1d3c0945ae822a1f85f02c76cf.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/celo/17b4db6dd9f3559117547bc22ddc5b89.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://celoscan.io", "need_estimate_gas": false}, {"id": "movr", "community_id": 1285, "name": "Moonriver", "native_token": {"id": "movr", "symbol": "MOVR", "logo": "https://static.debank.com/image/mtr_token/logo_url/0xb158870beb809ad955bf56065c5c10d7fd957cc0/aa42368ae1d5856d15c13ecc0ff74af6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/movr/4b0de5a711b437f187c0d0f15cc0398b.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/movr/c13a5af6c923aad7cc6cad311267da8e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://moonriver.moonscan.io", "need_estimate_gas": false}, {"id": "cro", "community_id": 25, "name": "Cronos", "native_token": {"id": "cro", "symbol": "CRO", "logo": "https://static.debank.com/image/cro_token/logo_url/cro/7803de9b434be197c2c1399465abdf39.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cro/f947000cc879ee8ffa032793808c741c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cro/555a092be8378d6e55000b3846043bec.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://cronoscan.com", "need_estimate_gas": false}, {"id": "boba", "community_id": 288, "name": "Boba", "native_token": {"id": "boba", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/boba/e43d79cd8088ceb3ea3e4a240a75728f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/boba/aea02e2a1cf1087f299f4d501777d0cd.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bobascan.com", "need_estimate_gas": true}, {"id": "metis", "community_id": 1088, "name": "Metis", "native_token": {"id": "metis", "symbol": "Metis", "logo": "https://static.debank.com/image/coin/logo_url/metis/7485c0a61c1e05fdf707113b6b6ac917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/metis/7485c0a61c1e05fdf707113b6b6ac917.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/metis/3fb2c5171563b035fe4add98eca01efc.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.metis.io", "need_estimate_gas": false}, {"id": "btt", "community_id": 199, "name": "BitTorrent", "native_token": {"id": "btt", "symbol": "BTT", "logo": "https://static.debank.com/image/btt_token/logo_url/btt/2130a8d57ff2a0f3d50a4ec9432897c6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/btt/2130a8d57ff2a0f3d50a4ec9432897c6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/btt/4d76b329327ccfa153e47c750d0775d3.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bttcscan.com", "need_estimate_gas": false}, {"id": "aurora", "community_id": 1313161554, "name": "Aurora", "native_token": {"id": "aurora", "symbol": "AETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/aurora/da491099bb44690eda122cdd67c5c610.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/aurora/f4109e1ec9f24aa36c23a5d9d27286fb.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://aurorascan.dev", "need_estimate_gas": true}, {"id": "mobm", "community_id": 1284, "name": "Moonbeam", "native_token": {"id": "mobm", "symbol": "GLMR", "logo": "https://static.debank.com/image/mobm_token/logo_url/mobm/a8442077d76b258297181c3e6eb8c9cc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mobm/a8442077d76b258297181c3e6eb8c9cc.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mobm/293430b9780093287759bbf2ed80f939.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://moonscan.io", "need_estimate_gas": false}, {"id": "sbch", "community_id": 10000, "name": "SmartBch", "native_token": {"id": "sbch", "symbol": "BCH", "logo": "https://static.debank.com/image/sbch_token/logo_url/sbch/03007b5353bb9e221efb82a6a70d9ec9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sbch/d78ac780803e7f0a17b73558f423502e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sbch/0b08879f05d6a13d7a4181510a1138cf.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.smartscan.cash", "need_estimate_gas": false}, {"id": "fuse", "community_id": 122, "name": "Fuse", "native_token": {"id": "fuse", "symbol": "FUSE", "logo": "https://static.debank.com/image/arb_token/logo_url/0xbdef0e9ef12e689f366fe494a7a7d0dad25d9286/b9fe0bbfeccc43ac46bc652752e25532.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fuse/7a21b958761d52d04ff0ce829d1703f4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fuse/ceda89bc24064a4c583f369811ee29b6.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.fuse.io", "need_estimate_gas": false}, {"id": "hmy", "community_id": 1666600000, "name": "Harmony", "native_token": {"id": "hmy", "symbol": "ONE", "logo": "https://static.debank.com/image/hmy_token/logo_url/hmy/734c003023531e31c636ae25d5a73172.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/hmy/b3bfb4681f81a85e25c28e150dcbfe51.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/hmy/a92fd20b6691292d93160e2606035468.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.harmony.one", "need_estimate_gas": false}, {"id": "klay", "community_id": 8217, "name": "Klaytn", "native_token": {"id": "klay", "symbol": "KLAY", "logo": "https://static.debank.com/image/klay_token/logo_url/klay/1df018b8493cb97c50b7e390ef63cba4.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/klay/1df018b8493cb97c50b7e390ef63cba4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/klay/f5a2aefdbaa9cbc90c0fa1ec0443ec63.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scope.klaytn.com", "need_estimate_gas": false}, {"id": "astar", "community_id": 592, "name": "Astar", "native_token": {"id": "astar", "symbol": "ASTR", "logo": "https://static.debank.com/image/astar_token/logo_url/astar/a827be92d88617a918ea060a9a6f1572.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/astar/398c7e0014bdada3d818367a7273fabe.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/astar/116f17a7abe800b7675377857fac1dcd.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://blockscout.com/astar", "need_estimate_gas": false}, {"id": "iotx", "community_id": 4689, "name": "IoTeX", "native_token": {"id": "iotx", "symbol": "IOTX", "logo": "https://static.debank.com/image/iotx_token/logo_url/iotx/d3be2cd8677f86bd9ab7d5f3701afcc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/iotx/d3be2cd8677f86bd9ab7d5f3701afcc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/iotx/419fdcf87eceb9b8c34af0c5e3985d44.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://iotexscan.io", "need_estimate_gas": false}, {"id": "rsk", "community_id": 30, "name": "Rootstock", "native_token": {"id": "rsk", "symbol": "RBTC", "logo": "https://static.debank.com/image/rsk_token/logo_url/rsk/1dae003fa89234ac011c0dac51126770.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rsk/ff47def89fba98394168bf5f39920c8c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rsk/8f621d4d08c69ba79d5aae53bc9d3eeb.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://rootstock.blockscout.com", "need_estimate_gas": false}, {"id": "wan", "community_id": 888, "name": "Wanchain", "native_token": {"id": "wan", "symbol": "WAN", "logo": "https://static.debank.com/image/wan_token/logo_url/wan/f205dea796c0abae5b6749d697adfffa.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/wan/f3aa8b31414732ea5e026e05665146e6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/wan/dc0ce7bb158767b2de10ce3f23b62675.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.wanscan.org", "need_estimate_gas": false}, {"id": "kcc", "community_id": 321, "name": "KCC", "native_token": {"id": "kcc", "symbol": "KCS", "logo": "https://static.debank.com/image/kcc_token/logo_url/kcc/7fca710b626725fc67f02be57f71c597.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kcc/3a5a4ef7d5f1db1e53880d70219d75b6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kcc/d3f270fe9ccdd0fc9047bcf9a62d8110.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.kcc.io/en", "need_estimate_gas": false}, {"id": "sgb", "community_id": 19, "name": "Songbird", "native_token": {"id": "sgb", "symbol": "SGB", "logo": "https://static.debank.com/image/sgb_token/logo_url/0x02f0826ef6ad107cfc861152b32b52fd11bab9ed/619f46d574d62a50bdfd9f0e2f47ddc1.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sgb/619f46d574d62a50bdfd9f0e2f47ddc1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sgb/eeef2dd3241f458e7f43dd06319e6cb2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://songbird-explorer.flare.network", "need_estimate_gas": false}, {"id": "evmos", "community_id": 9001, "name": "EvmOS", "native_token": {"id": "evmos", "symbol": "EVMOS", "logo": "https://static.debank.com/image/evmos_token/logo_url/evmos/26e038b4d5475d5a4b92f7fc08bdabc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/evmos/26e038b4d5475d5a4b92f7fc08bdabc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/evmos/4d575ca6baef4f1de8dcead622091a79.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://escan.live", "need_estimate_gas": false}, {"id": "dfk", "community_id": 53935, "name": "DFK", "native_token": {"id": "dfk", "symbol": "JEWEL", "logo": "https://static.debank.com/image/dfk_token/logo_url/dfk/09b4ee0e9d0695201fcc7e912ac31595.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dfk/233867c089c5b71be150aa56003f3f7a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dfk/bab611be6bf763da73c6179c2150ffdf.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/defi-kingdoms/dfk-chain/explorer", "need_estimate_gas": false}, {"id": "tlos", "community_id": 40, "name": "Telos", "native_token": {"id": "tlos", "symbol": "TLOS", "logo": "https://static.debank.com/image/tlos_token/logo_url/tlos/7e45efcbc8d74f7fd6cda972938f4ade.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/telos/f9f7493def4c08ed222540bebd8ce87a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/tlos/deae1896415f9dac66e60cb47d8165d7.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.teloscan.io", "need_estimate_gas": false}, {"id": "nova", "community_id": 42170, "name": "Arbitrum Nova", "native_token": {"id": "nova", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/nova/06eb2b7add8ba443d5b219c04089c326.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/nova/b61c3a7723f39265c8b98967407e46db.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://nova.arbiscan.io", "need_estimate_gas": true}, {"id": "canto", "community_id": 7700, "name": "Canto", "native_token": {"id": "canto", "symbol": "CANTO", "logo": "https://static.debank.com/image/canto_token/logo_url/canto/47574ef619e057d2c6bbce1caba57fb6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/canto/47574ef619e057d2c6bbce1caba57fb6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/canto/29bd07f96ac7805a1b14649f356d3eee.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://tuber.build", "need_estimate_gas": false}, {"id": "doge", "community_id": 2000, "name": "Dogechain", "native_token": {"id": "doge", "symbol": "DOGE", "logo": "https://static.debank.com/image/doge_token/logo_url/doge/2538141079688a7a43bc22c7b60fb45f.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/doge/2538141079688a7a43bc22c7b60fb45f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/doge/aa18ed341ae19e5e381dfac1062fee73.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.dogechain.dog", "need_estimate_gas": false}, {"id": "kava", "community_id": 2222, "name": "Kava", "native_token": {"id": "kava", "symbol": "KAVA", "logo": "https://static.debank.com/image/kava_token/logo_url/kava/f5b7c6ffbe4d99da363a78d98e748880.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kava/b26bf85a1a817e409f9a3902e996dc21.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kava/2e672dd7947e41a34d6cbc5995ad24b2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://kavascan.com", "need_estimate_gas": false}, {"id": "step", "community_id": 1234, "name": "Step", "native_token": {"id": "step", "symbol": "FITFI", "logo": "https://static.debank.com/image/step_token/logo_url/step/9d345f7e03f078657bb1ffd494442d67.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/step/db79600b8feafe17845617ca9c606dbe.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/step/e3250b0b574f55b1ec82434549e6f959.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://stepscan.io", "need_estimate_gas": false}, {"id": "mada", "community_id": 2001, "name": "Milkomeda C1", "native_token": {"id": "mada", "symbol": "milkADA", "logo": "https://static.debank.com/image/mada_token/logo_url/mada/cb356bfa1b48206c834e62113604567d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mada/cdc4b1112c2c5a2757cbda33f4476b7f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mada/185df9833e6215d48ccfd389be59b752.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer-mainnet-cardano-evm.c1.milkomeda.com", "need_estimate_gas": false}, {"id": "cfx", "community_id": 1030, "name": "Conflux", "native_token": {"id": "cfx", "symbol": "CFX", "logo": "https://static.debank.com/image/cfx_token/logo_url/cfx/f493f92ad1087e23cf8dadab9850abb5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cfx/eab0c7304c6820b48b2a8d0930459b82.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cfx/d45e5225fc8e97623c798599a2f8ce50.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://evm.confluxscan.io", "need_estimate_gas": false}, {"id": "brise", "community_id": 32520, "name": "Bitgert", "native_token": {"id": "brise", "symbol": "BRISE", "logo": "https://static.debank.com/image/brise_token/logo_url/brise/4f6c040cf49f4d8c4eabbad7cd2f4ae4.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/brise/4f6c040cf49f4d8c4eabbad7cd2f4ae4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/brise/34c2bec8f0eaaf44929ce604c645c729.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://brisescan.com", "need_estimate_gas": false}, {"id": "ckb", "community_id": 71402, "name": "Godwoken", "native_token": {"id": "ckb", "symbol": "CKB", "logo": "https://static.debank.com/image/ckb_token/logo_url/ckb/18d430b7e9b48750bad7e88513a8f2c5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ckb/e821893503104870d5e73f56dbd73746.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ckb/5b7e976954a29e0ff3fc67a03d702d44.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://gwscan.com", "need_estimate_gas": false}, {"id": "era", "community_id": 324, "name": "zkSync Era", "native_token": {"id": "era", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/era/2cfcd0c8436b05d811b03935f6c1d7da.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/era/ae1951502c3514d43374d7e6718bda9a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://era.zksync.network", "need_estimate_gas": true}, {"id": "ron", "community_id": 2020, "name": "Ronin", "native_token": {"id": "ron", "symbol": "RON", "logo": "https://static.debank.com/image/ron_token/logo_url/0xe514d9deb7966c8be0ca922de8a064264ea6bcd4/f65d4fdc17d5533c59ebcd6eb1f47320.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ron/6e0f509804bc83bf042ef4d674c1c5ee.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ron/a7164cbb1bcf36c6b13abece4956e7ec.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.roninchain.com", "need_estimate_gas": false}, {"id": "pze", "community_id": 1101, "name": "Polygon zkEVM", "native_token": {"id": "pze", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/pze/a2276dce2d6a200c6148fb975f0eadd3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/pze/94d0cff539cb8f18c93f11a454f894b3.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://zkevm.polygonscan.com", "need_estimate_gas": false}, {"id": "core", "community_id": 1116, "name": "CORE", "native_token": {"id": "core", "symbol": "CORE", "logo": "https://static.debank.com/image/core_token/logo_url/core/1a7becfe112c0c9bfc25628cd70e94a6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/core/ccc02f660e5dd410b23ca3250ae7c060.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/core/e52df8e06f7763e05e1d94cce21683a5.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.coredao.org", "need_estimate_gas": false}, {"id": "wemix", "community_id": 1111, "name": "WEMIX", "native_token": {"id": "wemix", "symbol": "WEMIX", "logo": "https://static.debank.com/image/wemix_token/logo_url/wemix/6431c197ec9f2a1d334a356b316fbb49.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/wemix/d1ba88d1df6cca0b0cb359c36a09c054.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/wemix/66b877a83349d6d158796f825f5b9633.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.wemix.com", "need_estimate_gas": false}, {"id": "etc", "community_id": 61, "name": "Ethereum Classic", "native_token": {"id": "etc", "symbol": "ETC", "logo": "https://static.debank.com/image/okt_token/logo_url/0x99970778e2715bbc9cf8fb83d10dcbc2d2d551a3/782943aff604f69c7889d90926348210.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/etc/7ccf90ee6822ab440fb603337da256fa.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/etc/81a154d78dce2782739ac9e0d8e05f6d.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://blockscout.com/etc/mainnet", "need_estimate_gas": false}, {"id": "pls", "community_id": 369, "name": "PulseChain", "native_token": {"id": "pls", "symbol": "PLS", "logo": "https://static.debank.com/image/pls_token/logo_url/pls/aa6be079fa9eb568e02150734ebb3db0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/pls/aa6be079fa9eb568e02150734ebb3db0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/pls/7c01fc668883d77e87c9334ec7d6b6ab.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.mypinata.cloud/ipfs/bafybeidn64pd2u525lmoipjl4nh3ooa2imd7huionjsdepdsphl5slfowy/#", "need_estimate_gas": false}, {"id": "flr", "community_id": 14, "name": "Flare", "native_token": {"id": "flr", "symbol": "FLR", "logo": "https://static.debank.com/image/flr_token/logo_url/flr/c7d8087092d5d7b80794630612afb32e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/flr/9ee03d5d7036ad9024e81d55596bb4dc.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/flr/ad866bf4323576b66651c9e2bbfd8a80.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://flare-explorer.flare.network", "need_estimate_gas": false}, {"id": "fsn", "community_id": 32659, "name": "Fusion", "native_token": {"id": "fsn", "symbol": "FSN", "logo": "https://static.debank.com/image/fsn_token/logo_url/fsn/047789979f0b5733602b29517753bdf3.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fsn/047789979f0b5733602b29517753bdf3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fsn/dfb374f7abf97b869ccf42bbf697feae.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://fsnscan.com", "need_estimate_gas": false}, {"id": "mtr", "community_id": 82, "name": "Meter", "native_token": {"id": "mtr", "symbol": "MTR", "logo": "https://static.debank.com/image/mtr_token/logo_url/mtr/920c6f4fdcb408703b435a97b963200b.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mtr/2dc6f079f52ca22778eb684e1ce650b3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mtr/0eafbdc8de9656a9de0f28efa2070450.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.meter.io", "need_estimate_gas": false}, {"id": "rose", "community_id": 42262, "name": "Oasis Emerald", "native_token": {"id": "rose", "symbol": "ROSE", "logo": "https://static.debank.com/image/rose_token/logo_url/rose/33ade55b0f3efa10e9eec002c6417257.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rose/33ade55b0f3efa10e9eec002c6417257.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rose/2e2351720f1772e3b3c7c2891f3d0192.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.emerald.oasis.dev", "need_estimate_gas": false}, {"id": "oas", "community_id": 248, "name": "Oasys", "native_token": {"id": "oas", "symbol": "OAS", "logo": "https://static.debank.com/image/oas_token/logo_url/oas/322b2cb0935af95b9cabd8a59b629566.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/oas/61dfecab1ba8a404354ce94b5a54d4b3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/oas/95888aa80c9eb4dbde714c69b3cc7425.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.oasys.games", "need_estimate_gas": false}, {"id": "zora", "community_id": 7777777, "name": "Zora", "native_token": {"id": "zora", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zora/de39f62c4489a2359d5e1198a8e02ef1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zora/25dfb04c552c35d3d8e30e5ba136b9e6.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.zora.energy", "need_estimate_gas": false}, {"id": "base", "community_id": 8453, "name": "Base", "native_token": {"id": "base", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/base/ccc1513e4f390542c4fb2f4b88ce9579.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/base/025de9d02848e257740c14bdd1f9330b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.basescan.org", "need_estimate_gas": false}, {"id": "linea", "community_id": 59144, "name": "Linea", "native_token": {"id": "linea", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/linea/32d4ff2cf92c766ace975559c232179c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/linea/adee1a93003ab543957692844fdaf9f2.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://lineascan.build", "need_estimate_gas": false}, {"id": "mnt", "community_id": 5000, "name": "Mantle", "native_token": {"id": "mnt", "symbol": "MNT", "logo": "https://static.debank.com/image/eth_token/logo_url/0x3c3a81e81dc49a522a592e7622a7e711c06bf354/a443c78c33704d48f06e5686bb87f85e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mnt/0af11a52431d60ded59655c7ca7e1475.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mnt/f642653f191f4fd59cbf9efefc4c007d.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mantlescan.xyz", "need_estimate_gas": true}, {"id": "tenet", "community_id": 1559, "name": "Tenet", "native_token": {"id": "tenet", "symbol": "TENET", "logo": "https://static.debank.com/image/tenet_token/logo_url/tenet/2da9b626102a7de9625aaf753cfac321.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/tenet/803be22e467ee9a5abe00d69a9c3ea4f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/tenet/651386abf4fa22f64613faf8dc5187f1.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://tenetscan.io", "need_estimate_gas": false}, {"id": "lyx", "community_id": 42, "name": "LUKSO", "native_token": {"id": "lyx", "symbol": "LYX", "logo": "https://static.debank.com/image/eth_token/logo_url/0xa8b919680258d369114910511cc87595aec0be6d/78a30c7b781e3889548d5920c09133dc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/lyx/dbe6eef57e66817e61297d9b188248ed.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/lyx/83230c4279ab2813907de034d87ab319.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.execution.mainnet.lukso.network", "need_estimate_gas": false}, {"id": "manta", "community_id": 169, "name": "Manta Pacific", "native_token": {"id": "manta", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/manta/0e25a60b96a29d6a5b9e524be7565845.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/manta/ead2552c140ffd5482e7222964bac558.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://pacific-explorer.manta.network", "need_estimate_gas": true}, {"id": "scrl", "community_id": 534352, "name": "Scroll", "native_token": {"id": "scrl", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/scrl/1fa5c7e0bfd353ed0a97c1476c9c42d2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/scrl/dd0d05b6fba614d57b55f0724acd723c.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scrollscan.com", "need_estimate_gas": false}, {"id": "opbnb", "community_id": 204, "name": "opBNB", "native_token": {"id": "opbnb", "symbol": "BNB", "logo": "https://static.debank.com/image/coin/logo_url/bnb/9784283a36f23a58982fc964574ea530.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/opbnb/07e2e686e363a842d0982493638e1285.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/opbnb/8e44e643d6e2fd335a72b4cda6368e1a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://mainnet.opbnbscan.com", "need_estimate_gas": false}, {"id": "loot", "community_id": 5151706, "name": "Loot", "native_token": {"id": "loot", "symbol": "AGLD", "logo": "https://static.debank.com/image/loot_token/logo_url/loot/a6c0dc128d515e2d32526075decae9ec.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/loot/0f098333a1a4f474115b05862e680573.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/loot/af8f162614f388e896872f628f3e3e6e.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.lootchain.com", "need_estimate_gas": false}, {"id": "shib", "community_id": 109, "name": "Shibarium", "native_token": {"id": "shib", "symbol": "BONE", "logo": "https://static.debank.com/image/shib_token/logo_url/shib/e49e9a98f5fb1fb04ad96bb536457df9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/shib/4ec79ed9ee4988dfdfc41e1634a447be.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/shib/574d888cbdce3a08ea8a5f636fc2ae3e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://shibariumscan.io", "need_estimate_gas": false}, {"id": "fx", "community_id": 530, "name": "Function X", "native_token": {"id": "fx", "symbol": "FX", "logo": "https://static.debank.com/image/fx_token/logo_url/fx/6fee82420b2394e0b68d7d7e692a0a01.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fx/6fee82420b2394e0b68d7d7e692a0a01.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fx/528e10d16f64db1798bca33092526d96.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://starscan.io/evm", "need_estimate_gas": false}, {"id": "mode", "community_id": 34443, "name": "Mode", "native_token": {"id": "mode", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mode/466e6e12f4fd827f8f497cceb0601a5e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mode/f7033404c6d09fafcbe53cbf806a585f.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.mode.network", "need_estimate_gas": false}, {"id": "beam", "community_id": 4337, "name": "Beam", "native_token": {"id": "beam", "symbol": "BEAM", "logo": "https://static.debank.com/image/beam_token/logo_url/beam/90a1e9f46664d070752deeb65878a3bd.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/beam/90a1e9f46664d070752deeb65878a3bd.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/beam/f54a6974e60b63c5f328721ad0281f1b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/beam", "need_estimate_gas": false}, {"id": "fon", "community_id": 201022, "name": "FON Chain", "native_token": {"id": "fon", "symbol": "FON", "logo": "https://static.debank.com/image/fon_token/logo_url/fon/369618f4d45053fa4439943c9c2d387d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fon/369618f4d45053fa4439943c9c2d387d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fon/6c5ee096ec2173f9250d58b4384343aa.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://fonscan.io", "need_estimate_gas": false}, {"id": "zkfair", "community_id": 42766, "name": "ZKFair", "native_token": {"id": "zkfair", "symbol": "USDC", "logo": "https://static.debank.com/image/zkfair_token/logo_url/zkfair/35ab0987153a8355a454223aae371ac7.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zkfair/c66f35d57c6146cdff82dfeb316ba801.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zkfair/4133904f2769ebcffa48177c0b7831a6.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.zkfair.io", "need_estimate_gas": false}, {"id": "alot", "community_id": 432204, "name": "Dexalot", "native_token": {"id": "alot", "symbol": "ALOT", "logo": "https://static.debank.com/image/alot_token/logo_url/alot/a03e5e8bc56a8bcd5f5c7b830e8b5877.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/alot/0ed4884da27d022dbd5ed5bc919ee248.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/alot/8ed0cbf9842daef43fbb32558d4f4309.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/dexalot", "need_estimate_gas": false}, {"id": "bfc", "community_id": 3068, "name": "Bifrost", "native_token": {"id": "bfc", "symbol": "BFC", "logo": "https://static.debank.com/image/bfc_token/logo_url/bfc/f0c01b58f084660f8c8ff43f5c85301c.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bfc/7c10f5191b16d0cc068cb6eff32b6347.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bfc/728682dd1707271a7b268fac3594e94e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.mainnet.bifrostnetwork.com", "need_estimate_gas": false}, {"id": "xai", "community_id": 660279, "name": "Xai", "native_token": {"id": "xai", "symbol": "XAI", "logo": "https://static.debank.com/image/xai_token/logo_url/xai/022ab00135c182f6e67e583ecda93863.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xai/b02622ce65251bdcb31aa6621a10a096.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xai/9eb29c6f965e70ed84e50f8e9e577b1e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.xai-chain.net", "need_estimate_gas": false}, {"id": "zeta", "community_id": 7000, "name": "ZetaChain", "native_token": {"id": "zeta", "symbol": "ZETA", "logo": "https://static.debank.com/image/zeta_token/logo_url/zeta/d0e1b5e519d99c452a30e83a1263d1d0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zeta/d0e1b5e519d99c452a30e83a1263d1d0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zeta/fb4ab4eb798244887bfd65455bd42d6b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://zetachain.blockscout.com", "need_estimate_gas": false}, {"id": "rari", "community_id": 1380012617, "name": "RARI", "native_token": {"id": "rari", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rari/67fc6abba5cfc6bb3a57bb6afcf5afee.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rari/73456a9386ce19d00584fec493206005.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mainnet.explorer.rarichain.org", "need_estimate_gas": false}, {"id": "dym", "community_id": 1100, "name": "Dymension", "native_token": {"id": "dym", "symbol": "DYM", "logo": "https://static.debank.com/image/dym_token/logo_url/dym/ab62b0f446408c84a2e17d9178a4e8e9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dym/ab62b0f446408c84a2e17d9178a4e8e9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dym/0a9e4481802f4c0aae6a5a97605809d8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://dym.fyi", "need_estimate_gas": false}, {"id": "merlin", "community_id": 4200, "name": "Merlin", "native_token": {"id": "merlin", "symbol": "BTC", "logo": "https://static.debank.com/image/merlin_token/logo_url/merlin/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/merlin/458e4686dfb909ba871bd96fe45417a8.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/merlin/72e28432e865c544c1045017892187bc.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.merlinchain.io", "need_estimate_gas": false}, {"id": "blast", "community_id": 81457, "name": "Blast", "native_token": {"id": "blast", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/blast/15132294afd38ce980639a381ee30149.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/blast/828eb570083948e156a34ab8588e26b3.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://blastscan.io", "need_estimate_gas": false}, {"id": "smr", "community_id": 148, "name": "Shimmer EVM", "native_token": {"id": "smr", "symbol": "SMR", "logo": "https://static.debank.com/image/smr_token/logo_url/smr/fbf679837a276530dd9b253dfa85c1f5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/smr/d22267bfdee42c88a15e605b30861a30.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/smr/2e536df7a52d2f5948f8fd0b9f5d0cb4.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.evm.shimmer.network", "need_estimate_gas": false}, {"id": "iota", "community_id": 8822, "name": "IOTA EVM", "native_token": {"id": "iota", "symbol": "IOTA", "logo": "https://static.debank.com/image/iota_token/logo_url/iota/b2fbb37acc6a3be27231fbc49aed481a.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/iota/b2fbb37acc6a3be27231fbc49aed481a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/iota/acedda9f542b72c0109c8c20caf526d9.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.evm.iota.org", "need_estimate_gas": false}, {"id": "platon", "community_id": 210425, "name": "PlatON", "native_token": {"id": "platon", "symbol": "LAT", "logo": "https://static.debank.com/image/platon_token/logo_url/platon/b5df1214981b0888e48fbb18d302c6ba.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/platon/b5df1214981b0888e48fbb18d302c6ba.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/platon/e5104b97d20a18df9f28b0673ebd7440.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.platon.network", "need_estimate_gas": false}, {"id": "rollux", "community_id": 570, "name": "Rollux", "native_token": {"id": "rollux", "symbol": "SYS", "logo": "https://static.debank.com/image/rollux_token/logo_url/rollux/a57476d6cd8e27ee6d7eae318c3c7eee.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rollux/b38f1a5be41a8e87766436ad9d9919a9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rollux/25c6383b3ae8b989c1e234c6734ba2ae.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.rollux.com", "need_estimate_gas": false}, {"id": "sx", "community_id": 416, "name": "SX", "native_token": {"id": "sx", "symbol": "SX", "logo": "https://static.debank.com/image/sx_token/logo_url/sx/1cd91dbcb82de12b4587607bc4924bc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sx/1cd91dbcb82de12b4587607bc4924bc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sx/0bddf854e56d6e7629b2f8ca1be707b0.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.sx.technology", "need_estimate_gas": false}, {"id": "eon", "community_id": 7332, "name": "Horizen EON", "native_token": {"id": "eon", "symbol": "ZEN", "logo": "https://static.debank.com/image/eon_token/logo_url/eon/bf6e7dbdd2facde7ed39c9f881537775.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/eon/36deb31f3e0a7c74762971d79245f82e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/eon/f071cd6b0e2c8a9ea6a3e213651ed7f2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://eon-explorer.horizenlabs.io", "need_estimate_gas": false}, {"id": "ulx", "community_id": 1231, "name": "Ultron", "native_token": {"id": "ulx", "symbol": "ULX", "logo": "https://static.debank.com/image/ulx_token/logo_url/ulx/371eb14527f3a80ed382f67278f43c7e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ulx/371eb14527f3a80ed382f67278f43c7e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ulx/7d6d20d13ec0a5c7d286aaea404f2d91.png", "eip_1559": false, "is_disabled": true, "explorer_host": "https://ulxscan.com", "need_estimate_gas": false}, {"id": "map", "community_id": 22776, "name": "MAP Protocol", "native_token": {"id": "map", "symbol": "MAPO", "logo": "https://static.debank.com/image/map_token/logo_url/map/3efde740a6e9d32661757aad8ae2b3a2.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/map/3efde740a6e9d32661757aad8ae2b3a2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/map/18ec31888ba251dd6d47e469b636d5fe.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://www.maposcan.io", "need_estimate_gas": false}, {"id": "karak", "community_id": 2410, "name": "Karak", "native_token": {"id": "karak", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/karak/a9e47f00f6eeb2c9cc8f9551cff5fe68.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/karak/5d5ca3507b4a1d64a85406f7382412d7.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.karak.network", "need_estimate_gas": false}, {"id": "aze", "community_id": 3776, "name": "Astar zkEVM", "native_token": {"id": "aze", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/aze/6def6ac081a37e94ed0106da2cefeaf4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/aze/490d08032b0ee878dc0251c35c26383b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://astar-zkevm.explorer.startale.com", "need_estimate_gas": false}, {"id": "frax", "community_id": 252, "name": "Fraxtal", "native_token": {"id": "frax", "symbol": "frxETH", "logo": "https://static.debank.com/image/frax_token/logo_url/frax/4313f25f6c5196e8fce2c80fa34c73d0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/frax/2e210d888690ad0c424355cc8471d48d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/frax/7ae2bc54b406cd3c378b0bd28df2b3ff.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://fraxscan.com", "need_estimate_gas": false}, {"id": "lumio", "community_id": 8866, "name": "SuperLumio", "native_token": {"id": "lumio", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/lumio/be6cd376260e0e214d8486f2300a4fb9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/lumio/7960121f0a9235ff30bc65c57f0fe3a8.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://explorer.lumio.io", "need_estimate_gas": false}, {"id": "apex", "community_id": 70700, "name": "Proof of Play Apex", "native_token": {"id": "apex", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/apex/f60665106aba5b08563e26b4ba4baf83.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/apex/e1b94232b7eeedb147c489761118411a.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.apex.proofofplay.com", "need_estimate_gas": false}, {"id": "savm", "community_id": 3109, "name": "SatoshiVM Alpha", "native_token": {"id": "savm", "symbol": "BTC", "logo": "https://static.debank.com/image/savm_token/logo_url/savm/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/savm/8f92638826f2c97063c7de7726160655.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/savm/3315cc8579422c06720d9521e3bb0f90.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://svmscan.io", "need_estimate_gas": false}, {"id": "kroma", "community_id": 255, "name": "Kroma", "native_token": {"id": "kroma", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kroma/7c88e9e0e2488172fc1fcb9da3096a70.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kroma/a7c2e13d0aaaf866a4adf0fc7f0aa9df.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://kromascan.com", "need_estimate_gas": false}, {"id": "ela", "community_id": 20, "name": "Elastos", "native_token": {"id": "ela", "symbol": "ELA", "logo": "https://static.debank.com/image/ela_token/logo_url/ela/42a9831ba9df693f00437527ec851099.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ela/42a9831ba9df693f00437527ec851099.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ela/fc429a7e514b50a08ff5627575a47f6f.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://esc.elastos.io", "need_estimate_gas": false}, {"id": "bevm", "community_id": 11501, "name": "BEVM", "native_token": {"id": "bevm", "symbol": "BTC", "logo": "https://static.debank.com/image/bevm_token/logo_url/bevm/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bevm/aafd9b13a2187db02661b85c72fb3cc3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bevm/0030aceb597e1c79f55c53676171d636.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan-mainnet.bevm.io", "need_estimate_gas": false}, {"id": "degen", "community_id": 666666666, "name": "Degen", "native_token": {"id": "degen", "symbol": "DEGEN", "logo": "https://static.debank.com/image/degen_token/logo_url/degen/29dd6d5df71347d2ad3b77c194915844.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/degen/29dd6d5df71347d2ad3b77c194915844.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/degen/c046b42727ff864d1865a102442affb8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.degen.tips", "need_estimate_gas": false}, {"id": "zklink", "community_id": 810180, "name": "zkLink Nova", "native_token": {"id": "zklink", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zklink/b3a4000979cc4f3701135a5f565ffeb0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zklink/585235bd940f119317757760798237ae.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.zklink.io", "need_estimate_gas": false}, {"id": "xlayer", "community_id": 196, "name": "X Layer", "native_token": {"id": "xlayer", "symbol": "OKB", "logo": "https://static.debank.com/image/xlayer_token/logo_url/xlayer/02e2fec5f8b2f5783ceb38d683557de3.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xlayer/282a62903a4c74a964b704a161d1ba39.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xlayer/bb5d85b54ec4634bd8b6703b27e254ba.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.oklink.com/xlayer", "need_estimate_gas": false}, {"id": "molten", "community_id": 360, "name": "Molten", "native_token": {"id": "molten", "symbol": "MOLTEN", "logo": "https://static.debank.com/image/molten_token/logo_url/molten/9cb5d5dc7b200ceaa577e0431a731203.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/molten/9cb5d5dc7b200ceaa577e0431a731203.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/molten/56b94881ef4e1e8ea6765dc5442bf17a.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://molten.calderaexplorer.xyz", "need_estimate_gas": false}, {"id": "btr", "community_id": 200901, "name": "Bitlayer", "native_token": {"id": "btr", "symbol": "BTC", "logo": "https://static.debank.com/image/btr_token/logo_url/btr/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/btr/78ff16cf14dad73c168a70f7c971e401.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/btr/33a233f67cb62320dd49c7a3a05c1d4b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://www.btrscan.com", "need_estimate_gas": false}, {"id": "b2", "community_id": 223, "name": "B\u00b2", "native_token": {"id": "b2", "symbol": "BTC", "logo": "https://static.debank.com/image/b2_token/logo_url/b2/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/b2/6ca6c8bc33af59c5b9273a2b7efbd236.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/b2/3df748afc47cc1c76107981bc312a190.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.bsquared.network", "need_estimate_gas": false}, {"id": "bob", "community_id": 60808, "name": "BOB", "native_token": {"id": "bob", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bob/4e0029be99877775664327213a8da60e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bob/7f61e1ed6fae04833ee21d83c9998d22.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.gobob.xyz", "need_estimate_gas": false}, {"id": "reya", "community_id": 1729, "name": "Reya", "native_token": {"id": "reya", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/reya/20d71aad4279c33229297da1f00d8ae1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/reya/7643e04c35af62a7572aecbdc4565040.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.reya.network", "need_estimate_gas": true}, {"id": "bb", "community_id": 6001, "name": "BounceBit", "native_token": {"id": "bb", "symbol": "BB", "logo": "https://static.debank.com/image/bb_token/logo_url/bb/da74a4980f24d870cb43ccd763e0c966.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bb/da74a4980f24d870cb43ccd763e0c966.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bb/31ba7b64206471376f34f2b4c5c097f8.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://bbscan.io", "need_estimate_gas": false}, {"id": "ailayer", "community_id": 2649, "name": "AILayer", "native_token": {"id": "ailayer", "symbol": "BTC", "logo": "https://static.debank.com/image/ailayer_token/logo_url/ailayer/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ailayer/54ed2cefa4246acecb0b0ba6ddaf5e8a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ailayer/cdf4f9fb0b1c4d14da133ce76ebf0b76.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://mainnet-explorer.anvm.io", "need_estimate_gas": false}, {"id": "sanko", "community_id": 1996, "name": "Sanko", "native_token": {"id": "sanko", "symbol": "DMT", "logo": "https://static.debank.com/image/sanko_token/logo_url/sanko/a3ab5461c7afa714c877cf57fbb033ad.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sanko/a3ab5461c7afa714c877cf57fbb033ad.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sanko/596ade63d11b1a8eafcffc9ecac32632.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://explorer.sanko.xyz", "need_estimate_gas": false}, {"id": "taiko", "community_id": 167000, "name": "Taiko", "native_token": {"id": "taiko", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/taiko/7723fbdb38ef181cd07a8b8691671e6b.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/taiko/16d831636a2aa32e5b58f264a61311e0.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://taikoscan.io", "need_estimate_gas": false}, {"id": "cyber", "community_id": 7560, "name": "Cyber", "native_token": {"id": "cyber", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cyber/3a3c0c5da5fa8876c8c338afae0db478.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cyber/239566559dc0c5fd5f5e2d76b85c6490.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://cyberscan.co", "need_estimate_gas": false}, {"id": "sei", "community_id": 1329, "name": "Sei", "native_token": {"id": "sei", "symbol": "SEI", "logo": "https://static.debank.com/image/sei_token/logo_url/sei/34ddf58f678be2db5b2636b59c9828b5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sei/34ddf58f678be2db5b2636b59c9828b5.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sei/632af17fefaa435817bd6bc3c549280d.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://seitrace.com", "need_estimate_gas": false}, {"id": "strax", "community_id": 105105, "name": "Stratis", "native_token": {"id": "strax", "symbol": "STRAX", "logo": "https://static.debank.com/image/strax_token/logo_url/strax/62929cc22496a34349782a0c685377dd.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/strax/7675d16c026442847faf6bbe7708bf9c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/strax/01db3348ae950906fec6ec74966b59f9.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.stratisevm.com", "need_estimate_gas": false}, {"id": "mint", "community_id": 185, "name": "Mint", "native_token": {"id": "mint", "symbol": "ETH", "logo": "https://static.debank.com/image/mint_token/logo_url/mint/48bfb74adddd170e936578aec422836d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mint/86404f93cd4e51eafcc2e244d417c03f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mint/1bc50cbf5ec022d40efe48c4ec68c25d.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mintscan.org", "need_estimate_gas": false}] \ No newline at end of file +[{"id": "eth", "community_id": 1, "name": "Ethereum", "native_token": {"id": "eth", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/eth/42ba589cd077e7bdd97db6480b0ff61d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/eth/561dda8f1ed8f0b2f46474bde3f02d0b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://etherscan.io", "need_estimate_gas": false}, {"id": "bsc", "community_id": 56, "name": "BNB Chain", "native_token": {"id": "bsc", "symbol": "BNB", "logo": "https://static.debank.com/image/coin/logo_url/bnb/9784283a36f23a58982fc964574ea530.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bsc/bc73fa84b7fc5337905e527dadcbc854.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bsc/8e44e643d6e2fd335a72b4cda6368e1a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bscscan.com", "need_estimate_gas": false}, {"id": "xdai", "community_id": 100, "name": "Gnosis Chain", "native_token": {"id": "xdai", "symbol": "xDai", "logo": "https://static.debank.com/image/xdai_token/logo_url/xdai/297890dc063e6dfb6cb4065cdf38382e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xdai/43c1e09e93e68c9f0f3b132976394529.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xdai/d8744f83d1a3bef4941c0820d76242a2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://gnosisscan.io", "need_estimate_gas": false}, {"id": "matic", "community_id": 137, "name": "Polygon", "native_token": {"id": "matic", "symbol": "MATIC", "logo": "https://static.debank.com/image/matic_token/logo_url/matic/6f5a6b6f0732a7a235131bd7804d357c.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/matic/52ca152c08831e4765506c9bd75767e8.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/matic/d9d33b57922dce7a5ac567b0e5eb1e4b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://polygonscan.com", "need_estimate_gas": false}, {"id": "ftm", "community_id": 250, "name": "Fantom", "native_token": {"id": "ftm", "symbol": "FTM", "logo": "https://static.debank.com/image/ftm_token/logo_url/ftm/33fdb9c5067e94f3a1b9e78f6fa86984.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ftm/14133435f89637157a4405e954e1b1b2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ftm/64178bae592be3a33c160b1d9b9a124a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://ftmscan.com", "need_estimate_gas": false}, {"id": "avax", "community_id": 43114, "name": "Avalanche", "native_token": {"id": "avax", "symbol": "AVAX", "logo": "https://static.debank.com/image/avax_token/logo_url/avax/0b9c84359c84d6bdd5bfda9c2d4c4a82.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/avax/4d1649e8a0c7dec9de3491b81807d402.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/avax/e8a86458cb9e656052f0250d079622d8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://snowtrace.io", "need_estimate_gas": false}, {"id": "op", "community_id": 10, "name": "OP", "native_token": {"id": "op", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/op/01ae734fe781c9c2ae6a4cc7e9244056.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/op/b571a53bc1ce3833a6cc3db42847931b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://optimistic.etherscan.io", "need_estimate_gas": false}, {"id": "arb", "community_id": 42161, "name": "Arbitrum", "native_token": {"id": "arb", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/arb/854f629937ce94bebeb2cd38fb336de7.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/arb/315c3c4560a12e9c94841706e3ed9ce5.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://arbiscan.io", "need_estimate_gas": true}, {"id": "celo", "community_id": 42220, "name": "Celo", "native_token": {"id": "celo", "symbol": "CELO", "logo": "https://static.debank.com/image/celo_token/logo_url/0x471ece3750da237f93b8e339c536989b8978a438/6f524d91db674876ba0f5767cf0124cc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/celo/41da5c1d3c0945ae822a1f85f02c76cf.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/celo/17b4db6dd9f3559117547bc22ddc5b89.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://celoscan.io", "need_estimate_gas": false}, {"id": "movr", "community_id": 1285, "name": "Moonriver", "native_token": {"id": "movr", "symbol": "MOVR", "logo": "https://static.debank.com/image/mtr_token/logo_url/0xb158870beb809ad955bf56065c5c10d7fd957cc0/aa42368ae1d5856d15c13ecc0ff74af6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/movr/4b0de5a711b437f187c0d0f15cc0398b.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/movr/c13a5af6c923aad7cc6cad311267da8e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://moonriver.moonscan.io", "need_estimate_gas": false}, {"id": "cro", "community_id": 25, "name": "Cronos", "native_token": {"id": "cro", "symbol": "CRO", "logo": "https://static.debank.com/image/cro_token/logo_url/cro/7803de9b434be197c2c1399465abdf39.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cro/f947000cc879ee8ffa032793808c741c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cro/555a092be8378d6e55000b3846043bec.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://cronoscan.com", "need_estimate_gas": false}, {"id": "boba", "community_id": 288, "name": "Boba", "native_token": {"id": "boba", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/boba/e43d79cd8088ceb3ea3e4a240a75728f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/boba/aea02e2a1cf1087f299f4d501777d0cd.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bobascan.com", "need_estimate_gas": true}, {"id": "metis", "community_id": 1088, "name": "Metis", "native_token": {"id": "metis", "symbol": "Metis", "logo": "https://static.debank.com/image/coin/logo_url/metis/7485c0a61c1e05fdf707113b6b6ac917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/metis/7485c0a61c1e05fdf707113b6b6ac917.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/metis/3fb2c5171563b035fe4add98eca01efc.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.metis.io", "need_estimate_gas": false}, {"id": "btt", "community_id": 199, "name": "BitTorrent", "native_token": {"id": "btt", "symbol": "BTT", "logo": "https://static.debank.com/image/btt_token/logo_url/btt/2130a8d57ff2a0f3d50a4ec9432897c6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/btt/2130a8d57ff2a0f3d50a4ec9432897c6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/btt/4d76b329327ccfa153e47c750d0775d3.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bttcscan.com", "need_estimate_gas": false}, {"id": "aurora", "community_id": 1313161554, "name": "Aurora", "native_token": {"id": "aurora", "symbol": "AETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/aurora/da491099bb44690eda122cdd67c5c610.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/aurora/f4109e1ec9f24aa36c23a5d9d27286fb.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://aurorascan.dev", "need_estimate_gas": true}, {"id": "mobm", "community_id": 1284, "name": "Moonbeam", "native_token": {"id": "mobm", "symbol": "GLMR", "logo": "https://static.debank.com/image/mobm_token/logo_url/mobm/a8442077d76b258297181c3e6eb8c9cc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mobm/a8442077d76b258297181c3e6eb8c9cc.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mobm/293430b9780093287759bbf2ed80f939.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://moonscan.io", "need_estimate_gas": false}, {"id": "sbch", "community_id": 10000, "name": "SmartBch", "native_token": {"id": "sbch", "symbol": "BCH", "logo": "https://static.debank.com/image/sbch_token/logo_url/sbch/03007b5353bb9e221efb82a6a70d9ec9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sbch/d78ac780803e7f0a17b73558f423502e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sbch/0b08879f05d6a13d7a4181510a1138cf.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.smartscan.cash", "need_estimate_gas": false}, {"id": "fuse", "community_id": 122, "name": "Fuse", "native_token": {"id": "fuse", "symbol": "FUSE", "logo": "https://static.debank.com/image/arb_token/logo_url/0xbdef0e9ef12e689f366fe494a7a7d0dad25d9286/b9fe0bbfeccc43ac46bc652752e25532.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fuse/7a21b958761d52d04ff0ce829d1703f4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fuse/ceda89bc24064a4c583f369811ee29b6.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.fuse.io", "need_estimate_gas": false}, {"id": "hmy", "community_id": 1666600000, "name": "Harmony", "native_token": {"id": "hmy", "symbol": "ONE", "logo": "https://static.debank.com/image/hmy_token/logo_url/hmy/734c003023531e31c636ae25d5a73172.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/hmy/b3bfb4681f81a85e25c28e150dcbfe51.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/hmy/a92fd20b6691292d93160e2606035468.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.harmony.one", "need_estimate_gas": false}, {"id": "klay", "community_id": 8217, "name": "Klaytn", "native_token": {"id": "klay", "symbol": "KLAY", "logo": "https://static.debank.com/image/klay_token/logo_url/klay/1df018b8493cb97c50b7e390ef63cba4.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/klay/1df018b8493cb97c50b7e390ef63cba4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/klay/f5a2aefdbaa9cbc90c0fa1ec0443ec63.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scope.klaytn.com", "need_estimate_gas": false}, {"id": "astar", "community_id": 592, "name": "Astar", "native_token": {"id": "astar", "symbol": "ASTR", "logo": "https://static.debank.com/image/astar_token/logo_url/astar/a827be92d88617a918ea060a9a6f1572.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/astar/398c7e0014bdada3d818367a7273fabe.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/astar/116f17a7abe800b7675377857fac1dcd.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://blockscout.com/astar", "need_estimate_gas": false}, {"id": "iotx", "community_id": 4689, "name": "IoTeX", "native_token": {"id": "iotx", "symbol": "IOTX", "logo": "https://static.debank.com/image/iotx_token/logo_url/iotx/d3be2cd8677f86bd9ab7d5f3701afcc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/iotx/d3be2cd8677f86bd9ab7d5f3701afcc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/iotx/419fdcf87eceb9b8c34af0c5e3985d44.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://iotexscan.io", "need_estimate_gas": false}, {"id": "rsk", "community_id": 30, "name": "Rootstock", "native_token": {"id": "rsk", "symbol": "RBTC", "logo": "https://static.debank.com/image/rsk_token/logo_url/rsk/1dae003fa89234ac011c0dac51126770.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rsk/ff47def89fba98394168bf5f39920c8c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rsk/8f621d4d08c69ba79d5aae53bc9d3eeb.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://rootstock.blockscout.com", "need_estimate_gas": false}, {"id": "wan", "community_id": 888, "name": "Wanchain", "native_token": {"id": "wan", "symbol": "WAN", "logo": "https://static.debank.com/image/wan_token/logo_url/wan/f205dea796c0abae5b6749d697adfffa.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/wan/f3aa8b31414732ea5e026e05665146e6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/wan/dc0ce7bb158767b2de10ce3f23b62675.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.wanscan.org", "need_estimate_gas": false}, {"id": "kcc", "community_id": 321, "name": "KCC", "native_token": {"id": "kcc", "symbol": "KCS", "logo": "https://static.debank.com/image/kcc_token/logo_url/kcc/7fca710b626725fc67f02be57f71c597.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kcc/3a5a4ef7d5f1db1e53880d70219d75b6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kcc/d3f270fe9ccdd0fc9047bcf9a62d8110.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.kcc.io/en", "need_estimate_gas": false}, {"id": "sgb", "community_id": 19, "name": "Songbird", "native_token": {"id": "sgb", "symbol": "SGB", "logo": "https://static.debank.com/image/sgb_token/logo_url/0x02f0826ef6ad107cfc861152b32b52fd11bab9ed/619f46d574d62a50bdfd9f0e2f47ddc1.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sgb/619f46d574d62a50bdfd9f0e2f47ddc1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sgb/eeef2dd3241f458e7f43dd06319e6cb2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://songbird-explorer.flare.network", "need_estimate_gas": false}, {"id": "evmos", "community_id": 9001, "name": "EvmOS", "native_token": {"id": "evmos", "symbol": "EVMOS", "logo": "https://static.debank.com/image/evmos_token/logo_url/evmos/26e038b4d5475d5a4b92f7fc08bdabc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/evmos/26e038b4d5475d5a4b92f7fc08bdabc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/evmos/4d575ca6baef4f1de8dcead622091a79.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://escan.live", "need_estimate_gas": false}, {"id": "dfk", "community_id": 53935, "name": "DFK", "native_token": {"id": "dfk", "symbol": "JEWEL", "logo": "https://static.debank.com/image/dfk_token/logo_url/dfk/09b4ee0e9d0695201fcc7e912ac31595.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dfk/233867c089c5b71be150aa56003f3f7a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dfk/bab611be6bf763da73c6179c2150ffdf.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/defi-kingdoms/dfk-chain/explorer", "need_estimate_gas": false}, {"id": "tlos", "community_id": 40, "name": "Telos", "native_token": {"id": "tlos", "symbol": "TLOS", "logo": "https://static.debank.com/image/tlos_token/logo_url/tlos/7e45efcbc8d74f7fd6cda972938f4ade.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/telos/f9f7493def4c08ed222540bebd8ce87a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/tlos/deae1896415f9dac66e60cb47d8165d7.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.teloscan.io", "need_estimate_gas": false}, {"id": "nova", "community_id": 42170, "name": "Arbitrum Nova", "native_token": {"id": "nova", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/nova/06eb2b7add8ba443d5b219c04089c326.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/nova/b61c3a7723f39265c8b98967407e46db.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://nova.arbiscan.io", "need_estimate_gas": true}, {"id": "canto", "community_id": 7700, "name": "Canto", "native_token": {"id": "canto", "symbol": "CANTO", "logo": "https://static.debank.com/image/canto_token/logo_url/canto/47574ef619e057d2c6bbce1caba57fb6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/canto/47574ef619e057d2c6bbce1caba57fb6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/canto/29bd07f96ac7805a1b14649f356d3eee.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://tuber.build", "need_estimate_gas": false}, {"id": "doge", "community_id": 2000, "name": "Dogechain", "native_token": {"id": "doge", "symbol": "DOGE", "logo": "https://static.debank.com/image/doge_token/logo_url/doge/2538141079688a7a43bc22c7b60fb45f.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/doge/2538141079688a7a43bc22c7b60fb45f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/doge/aa18ed341ae19e5e381dfac1062fee73.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.dogechain.dog", "need_estimate_gas": false}, {"id": "kava", "community_id": 2222, "name": "Kava", "native_token": {"id": "kava", "symbol": "KAVA", "logo": "https://static.debank.com/image/kava_token/logo_url/kava/f5b7c6ffbe4d99da363a78d98e748880.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kava/b26bf85a1a817e409f9a3902e996dc21.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kava/2e672dd7947e41a34d6cbc5995ad24b2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://kavascan.com", "need_estimate_gas": false}, {"id": "step", "community_id": 1234, "name": "Step", "native_token": {"id": "step", "symbol": "FITFI", "logo": "https://static.debank.com/image/step_token/logo_url/step/9d345f7e03f078657bb1ffd494442d67.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/step/db79600b8feafe17845617ca9c606dbe.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/step/e3250b0b574f55b1ec82434549e6f959.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://stepscan.io", "need_estimate_gas": false}, {"id": "mada", "community_id": 2001, "name": "Milkomeda C1", "native_token": {"id": "mada", "symbol": "milkADA", "logo": "https://static.debank.com/image/mada_token/logo_url/mada/cb356bfa1b48206c834e62113604567d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mada/cdc4b1112c2c5a2757cbda33f4476b7f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mada/185df9833e6215d48ccfd389be59b752.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer-mainnet-cardano-evm.c1.milkomeda.com", "need_estimate_gas": false}, {"id": "cfx", "community_id": 1030, "name": "Conflux", "native_token": {"id": "cfx", "symbol": "CFX", "logo": "https://static.debank.com/image/cfx_token/logo_url/cfx/f493f92ad1087e23cf8dadab9850abb5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cfx/eab0c7304c6820b48b2a8d0930459b82.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cfx/d45e5225fc8e97623c798599a2f8ce50.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://evm.confluxscan.io", "need_estimate_gas": false}, {"id": "brise", "community_id": 32520, "name": "Bitgert", "native_token": {"id": "brise", "symbol": "BRISE", "logo": "https://static.debank.com/image/brise_token/logo_url/brise/4f6c040cf49f4d8c4eabbad7cd2f4ae4.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/brise/4f6c040cf49f4d8c4eabbad7cd2f4ae4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/brise/34c2bec8f0eaaf44929ce604c645c729.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://brisescan.com", "need_estimate_gas": false}, {"id": "ckb", "community_id": 71402, "name": "Godwoken", "native_token": {"id": "ckb", "symbol": "CKB", "logo": "https://static.debank.com/image/ckb_token/logo_url/ckb/18d430b7e9b48750bad7e88513a8f2c5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ckb/e821893503104870d5e73f56dbd73746.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ckb/5b7e976954a29e0ff3fc67a03d702d44.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://gwscan.com", "need_estimate_gas": false}, {"id": "era", "community_id": 324, "name": "zkSync Era", "native_token": {"id": "era", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/era/2cfcd0c8436b05d811b03935f6c1d7da.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/era/ae1951502c3514d43374d7e6718bda9a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://era.zksync.network", "need_estimate_gas": true}, {"id": "ron", "community_id": 2020, "name": "Ronin", "native_token": {"id": "ron", "symbol": "RON", "logo": "https://static.debank.com/image/ron_token/logo_url/0xe514d9deb7966c8be0ca922de8a064264ea6bcd4/f65d4fdc17d5533c59ebcd6eb1f47320.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ron/6e0f509804bc83bf042ef4d674c1c5ee.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ron/a7164cbb1bcf36c6b13abece4956e7ec.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.roninchain.com", "need_estimate_gas": false}, {"id": "pze", "community_id": 1101, "name": "Polygon zkEVM", "native_token": {"id": "pze", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/pze/a2276dce2d6a200c6148fb975f0eadd3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/pze/94d0cff539cb8f18c93f11a454f894b3.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://zkevm.polygonscan.com", "need_estimate_gas": false}, {"id": "core", "community_id": 1116, "name": "CORE", "native_token": {"id": "core", "symbol": "CORE", "logo": "https://static.debank.com/image/core_token/logo_url/core/1a7becfe112c0c9bfc25628cd70e94a6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/core/ccc02f660e5dd410b23ca3250ae7c060.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/core/e52df8e06f7763e05e1d94cce21683a5.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.coredao.org", "need_estimate_gas": false}, {"id": "wemix", "community_id": 1111, "name": "WEMIX", "native_token": {"id": "wemix", "symbol": "WEMIX", "logo": "https://static.debank.com/image/wemix_token/logo_url/wemix/6431c197ec9f2a1d334a356b316fbb49.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/wemix/d1ba88d1df6cca0b0cb359c36a09c054.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/wemix/66b877a83349d6d158796f825f5b9633.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.wemix.com", "need_estimate_gas": false}, {"id": "etc", "community_id": 61, "name": "Ethereum Classic", "native_token": {"id": "etc", "symbol": "ETC", "logo": "https://static.debank.com/image/okt_token/logo_url/0x99970778e2715bbc9cf8fb83d10dcbc2d2d551a3/782943aff604f69c7889d90926348210.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/etc/7ccf90ee6822ab440fb603337da256fa.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/etc/81a154d78dce2782739ac9e0d8e05f6d.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://blockscout.com/etc/mainnet", "need_estimate_gas": false}, {"id": "pls", "community_id": 369, "name": "PulseChain", "native_token": {"id": "pls", "symbol": "PLS", "logo": "https://static.debank.com/image/pls_token/logo_url/pls/aa6be079fa9eb568e02150734ebb3db0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/pls/aa6be079fa9eb568e02150734ebb3db0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/pls/7c01fc668883d77e87c9334ec7d6b6ab.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.mypinata.cloud/ipfs/bafybeidn64pd2u525lmoipjl4nh3ooa2imd7huionjsdepdsphl5slfowy/#", "need_estimate_gas": false}, {"id": "flr", "community_id": 14, "name": "Flare", "native_token": {"id": "flr", "symbol": "FLR", "logo": "https://static.debank.com/image/flr_token/logo_url/flr/c7d8087092d5d7b80794630612afb32e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/flr/9ee03d5d7036ad9024e81d55596bb4dc.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/flr/ad866bf4323576b66651c9e2bbfd8a80.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://flare-explorer.flare.network", "need_estimate_gas": false}, {"id": "fsn", "community_id": 32659, "name": "Fusion", "native_token": {"id": "fsn", "symbol": "FSN", "logo": "https://static.debank.com/image/fsn_token/logo_url/fsn/047789979f0b5733602b29517753bdf3.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fsn/047789979f0b5733602b29517753bdf3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fsn/dfb374f7abf97b869ccf42bbf697feae.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://fsnscan.com", "need_estimate_gas": false}, {"id": "mtr", "community_id": 82, "name": "Meter", "native_token": {"id": "mtr", "symbol": "MTR", "logo": "https://static.debank.com/image/mtr_token/logo_url/mtr/920c6f4fdcb408703b435a97b963200b.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mtr/2dc6f079f52ca22778eb684e1ce650b3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mtr/0eafbdc8de9656a9de0f28efa2070450.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.meter.io", "need_estimate_gas": false}, {"id": "rose", "community_id": 42262, "name": "Oasis Emerald", "native_token": {"id": "rose", "symbol": "ROSE", "logo": "https://static.debank.com/image/rose_token/logo_url/rose/33ade55b0f3efa10e9eec002c6417257.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rose/33ade55b0f3efa10e9eec002c6417257.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rose/2e2351720f1772e3b3c7c2891f3d0192.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.emerald.oasis.dev", "need_estimate_gas": false}, {"id": "oas", "community_id": 248, "name": "Oasys", "native_token": {"id": "oas", "symbol": "OAS", "logo": "https://static.debank.com/image/oas_token/logo_url/oas/322b2cb0935af95b9cabd8a59b629566.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/oas/61dfecab1ba8a404354ce94b5a54d4b3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/oas/95888aa80c9eb4dbde714c69b3cc7425.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.oasys.games", "need_estimate_gas": false}, {"id": "zora", "community_id": 7777777, "name": "Zora", "native_token": {"id": "zora", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zora/de39f62c4489a2359d5e1198a8e02ef1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zora/25dfb04c552c35d3d8e30e5ba136b9e6.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.zora.energy", "need_estimate_gas": false}, {"id": "base", "community_id": 8453, "name": "Base", "native_token": {"id": "base", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/base/ccc1513e4f390542c4fb2f4b88ce9579.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/base/025de9d02848e257740c14bdd1f9330b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.basescan.org", "need_estimate_gas": false}, {"id": "linea", "community_id": 59144, "name": "Linea", "native_token": {"id": "linea", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/linea/32d4ff2cf92c766ace975559c232179c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/linea/adee1a93003ab543957692844fdaf9f2.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://lineascan.build", "need_estimate_gas": false}, {"id": "mnt", "community_id": 5000, "name": "Mantle", "native_token": {"id": "mnt", "symbol": "MNT", "logo": "https://static.debank.com/image/eth_token/logo_url/0x3c3a81e81dc49a522a592e7622a7e711c06bf354/a443c78c33704d48f06e5686bb87f85e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mnt/0af11a52431d60ded59655c7ca7e1475.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mnt/f642653f191f4fd59cbf9efefc4c007d.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mantlescan.xyz", "need_estimate_gas": true}, {"id": "tenet", "community_id": 1559, "name": "Tenet", "native_token": {"id": "tenet", "symbol": "TENET", "logo": "https://static.debank.com/image/tenet_token/logo_url/tenet/2da9b626102a7de9625aaf753cfac321.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/tenet/803be22e467ee9a5abe00d69a9c3ea4f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/tenet/651386abf4fa22f64613faf8dc5187f1.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://tenetscan.io", "need_estimate_gas": false}, {"id": "lyx", "community_id": 42, "name": "LUKSO", "native_token": {"id": "lyx", "symbol": "LYX", "logo": "https://static.debank.com/image/eth_token/logo_url/0xa8b919680258d369114910511cc87595aec0be6d/78a30c7b781e3889548d5920c09133dc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/lyx/dbe6eef57e66817e61297d9b188248ed.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/lyx/83230c4279ab2813907de034d87ab319.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.execution.mainnet.lukso.network", "need_estimate_gas": false}, {"id": "manta", "community_id": 169, "name": "Manta Pacific", "native_token": {"id": "manta", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/manta/0e25a60b96a29d6a5b9e524be7565845.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/manta/ead2552c140ffd5482e7222964bac558.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://pacific-explorer.manta.network", "need_estimate_gas": true}, {"id": "scrl", "community_id": 534352, "name": "Scroll", "native_token": {"id": "scrl", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/scrl/1fa5c7e0bfd353ed0a97c1476c9c42d2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/scrl/dd0d05b6fba614d57b55f0724acd723c.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scrollscan.com", "need_estimate_gas": false}, {"id": "opbnb", "community_id": 204, "name": "opBNB", "native_token": {"id": "opbnb", "symbol": "BNB", "logo": "https://static.debank.com/image/coin/logo_url/bnb/9784283a36f23a58982fc964574ea530.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/opbnb/07e2e686e363a842d0982493638e1285.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/opbnb/8e44e643d6e2fd335a72b4cda6368e1a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://mainnet.opbnbscan.com", "need_estimate_gas": false}, {"id": "loot", "community_id": 5151706, "name": "Loot", "native_token": {"id": "loot", "symbol": "AGLD", "logo": "https://static.debank.com/image/loot_token/logo_url/loot/a6c0dc128d515e2d32526075decae9ec.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/loot/0f098333a1a4f474115b05862e680573.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/loot/af8f162614f388e896872f628f3e3e6e.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.lootchain.com", "need_estimate_gas": false}, {"id": "shib", "community_id": 109, "name": "Shibarium", "native_token": {"id": "shib", "symbol": "BONE", "logo": "https://static.debank.com/image/shib_token/logo_url/shib/e49e9a98f5fb1fb04ad96bb536457df9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/shib/4ec79ed9ee4988dfdfc41e1634a447be.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/shib/574d888cbdce3a08ea8a5f636fc2ae3e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://shibariumscan.io", "need_estimate_gas": false}, {"id": "fx", "community_id": 530, "name": "Function X", "native_token": {"id": "fx", "symbol": "FX", "logo": "https://static.debank.com/image/fx_token/logo_url/fx/6fee82420b2394e0b68d7d7e692a0a01.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fx/6fee82420b2394e0b68d7d7e692a0a01.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fx/528e10d16f64db1798bca33092526d96.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://starscan.io/evm", "need_estimate_gas": false}, {"id": "mode", "community_id": 34443, "name": "Mode", "native_token": {"id": "mode", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mode/466e6e12f4fd827f8f497cceb0601a5e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mode/f7033404c6d09fafcbe53cbf806a585f.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.mode.network", "need_estimate_gas": false}, {"id": "beam", "community_id": 4337, "name": "Beam", "native_token": {"id": "beam", "symbol": "BEAM", "logo": "https://static.debank.com/image/beam_token/logo_url/beam/90a1e9f46664d070752deeb65878a3bd.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/beam/90a1e9f46664d070752deeb65878a3bd.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/beam/f54a6974e60b63c5f328721ad0281f1b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/beam", "need_estimate_gas": false}, {"id": "fon", "community_id": 201022, "name": "FON Chain", "native_token": {"id": "fon", "symbol": "FON", "logo": "https://static.debank.com/image/fon_token/logo_url/fon/369618f4d45053fa4439943c9c2d387d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fon/369618f4d45053fa4439943c9c2d387d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fon/6c5ee096ec2173f9250d58b4384343aa.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://fonscan.io", "need_estimate_gas": false}, {"id": "zkfair", "community_id": 42766, "name": "ZKFair", "native_token": {"id": "zkfair", "symbol": "USDC", "logo": "https://static.debank.com/image/zkfair_token/logo_url/zkfair/35ab0987153a8355a454223aae371ac7.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zkfair/c66f35d57c6146cdff82dfeb316ba801.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zkfair/4133904f2769ebcffa48177c0b7831a6.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.zkfair.io", "need_estimate_gas": false}, {"id": "alot", "community_id": 432204, "name": "Dexalot", "native_token": {"id": "alot", "symbol": "ALOT", "logo": "https://static.debank.com/image/alot_token/logo_url/alot/a03e5e8bc56a8bcd5f5c7b830e8b5877.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/alot/0ed4884da27d022dbd5ed5bc919ee248.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/alot/8ed0cbf9842daef43fbb32558d4f4309.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/dexalot", "need_estimate_gas": false}, {"id": "bfc", "community_id": 3068, "name": "Bifrost", "native_token": {"id": "bfc", "symbol": "BFC", "logo": "https://static.debank.com/image/bfc_token/logo_url/bfc/f0c01b58f084660f8c8ff43f5c85301c.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bfc/7c10f5191b16d0cc068cb6eff32b6347.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bfc/728682dd1707271a7b268fac3594e94e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.mainnet.bifrostnetwork.com", "need_estimate_gas": false}, {"id": "xai", "community_id": 660279, "name": "Xai", "native_token": {"id": "xai", "symbol": "XAI", "logo": "https://static.debank.com/image/xai_token/logo_url/xai/022ab00135c182f6e67e583ecda93863.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xai/b02622ce65251bdcb31aa6621a10a096.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xai/9eb29c6f965e70ed84e50f8e9e577b1e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.xai-chain.net", "need_estimate_gas": false}, {"id": "zeta", "community_id": 7000, "name": "ZetaChain", "native_token": {"id": "zeta", "symbol": "ZETA", "logo": "https://static.debank.com/image/zeta_token/logo_url/zeta/d0e1b5e519d99c452a30e83a1263d1d0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zeta/d0e1b5e519d99c452a30e83a1263d1d0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zeta/fb4ab4eb798244887bfd65455bd42d6b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://zetachain.blockscout.com", "need_estimate_gas": false}, {"id": "rari", "community_id": 1380012617, "name": "RARI", "native_token": {"id": "rari", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rari/67fc6abba5cfc6bb3a57bb6afcf5afee.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rari/73456a9386ce19d00584fec493206005.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mainnet.explorer.rarichain.org", "need_estimate_gas": false}, {"id": "dym", "community_id": 1100, "name": "Dymension", "native_token": {"id": "dym", "symbol": "DYM", "logo": "https://static.debank.com/image/dym_token/logo_url/dym/ab62b0f446408c84a2e17d9178a4e8e9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dym/ab62b0f446408c84a2e17d9178a4e8e9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dym/0a9e4481802f4c0aae6a5a97605809d8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://dym.fyi", "need_estimate_gas": false}, {"id": "merlin", "community_id": 4200, "name": "Merlin", "native_token": {"id": "merlin", "symbol": "BTC", "logo": "https://static.debank.com/image/merlin_token/logo_url/merlin/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/merlin/458e4686dfb909ba871bd96fe45417a8.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/merlin/72e28432e865c544c1045017892187bc.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.merlinchain.io", "need_estimate_gas": false}, {"id": "blast", "community_id": 81457, "name": "Blast", "native_token": {"id": "blast", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/blast/15132294afd38ce980639a381ee30149.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/blast/828eb570083948e156a34ab8588e26b3.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://blastscan.io", "need_estimate_gas": false}, {"id": "smr", "community_id": 148, "name": "Shimmer EVM", "native_token": {"id": "smr", "symbol": "SMR", "logo": "https://static.debank.com/image/smr_token/logo_url/smr/fbf679837a276530dd9b253dfa85c1f5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/smr/d22267bfdee42c88a15e605b30861a30.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/smr/2e536df7a52d2f5948f8fd0b9f5d0cb4.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.evm.shimmer.network", "need_estimate_gas": false}, {"id": "iota", "community_id": 8822, "name": "IOTA EVM", "native_token": {"id": "iota", "symbol": "IOTA", "logo": "https://static.debank.com/image/iota_token/logo_url/iota/b2fbb37acc6a3be27231fbc49aed481a.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/iota/b2fbb37acc6a3be27231fbc49aed481a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/iota/acedda9f542b72c0109c8c20caf526d9.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.evm.iota.org", "need_estimate_gas": false}, {"id": "platon", "community_id": 210425, "name": "PlatON", "native_token": {"id": "platon", "symbol": "LAT", "logo": "https://static.debank.com/image/platon_token/logo_url/platon/b5df1214981b0888e48fbb18d302c6ba.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/platon/b5df1214981b0888e48fbb18d302c6ba.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/platon/e5104b97d20a18df9f28b0673ebd7440.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.platon.network", "need_estimate_gas": false}, {"id": "rollux", "community_id": 570, "name": "Rollux", "native_token": {"id": "rollux", "symbol": "SYS", "logo": "https://static.debank.com/image/rollux_token/logo_url/rollux/a57476d6cd8e27ee6d7eae318c3c7eee.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rollux/b38f1a5be41a8e87766436ad9d9919a9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rollux/25c6383b3ae8b989c1e234c6734ba2ae.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.rollux.com", "need_estimate_gas": false}, {"id": "sx", "community_id": 416, "name": "SX", "native_token": {"id": "sx", "symbol": "SX", "logo": "https://static.debank.com/image/sx_token/logo_url/sx/1cd91dbcb82de12b4587607bc4924bc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sx/1cd91dbcb82de12b4587607bc4924bc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sx/0bddf854e56d6e7629b2f8ca1be707b0.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.sx.technology", "need_estimate_gas": false}, {"id": "eon", "community_id": 7332, "name": "Horizen EON", "native_token": {"id": "eon", "symbol": "ZEN", "logo": "https://static.debank.com/image/eon_token/logo_url/eon/bf6e7dbdd2facde7ed39c9f881537775.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/eon/36deb31f3e0a7c74762971d79245f82e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/eon/f071cd6b0e2c8a9ea6a3e213651ed7f2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://eon-explorer.horizenlabs.io", "need_estimate_gas": false}, {"id": "ulx", "community_id": 1231, "name": "Ultron", "native_token": {"id": "ulx", "symbol": "ULX", "logo": "https://static.debank.com/image/ulx_token/logo_url/ulx/371eb14527f3a80ed382f67278f43c7e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ulx/371eb14527f3a80ed382f67278f43c7e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ulx/7d6d20d13ec0a5c7d286aaea404f2d91.png", "eip_1559": false, "is_disabled": true, "explorer_host": "https://ulxscan.com", "need_estimate_gas": false}, {"id": "map", "community_id": 22776, "name": "MAP Protocol", "native_token": {"id": "map", "symbol": "MAPO", "logo": "https://static.debank.com/image/map_token/logo_url/map/3efde740a6e9d32661757aad8ae2b3a2.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/map/3efde740a6e9d32661757aad8ae2b3a2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/map/18ec31888ba251dd6d47e469b636d5fe.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://www.maposcan.io", "need_estimate_gas": false}, {"id": "karak", "community_id": 2410, "name": "Karak", "native_token": {"id": "karak", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/karak/a9e47f00f6eeb2c9cc8f9551cff5fe68.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/karak/5d5ca3507b4a1d64a85406f7382412d7.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.karak.network", "need_estimate_gas": false}, {"id": "aze", "community_id": 3776, "name": "Astar zkEVM", "native_token": {"id": "aze", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/aze/6def6ac081a37e94ed0106da2cefeaf4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/aze/490d08032b0ee878dc0251c35c26383b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://astar-zkevm.explorer.startale.com", "need_estimate_gas": false}, {"id": "frax", "community_id": 252, "name": "Fraxtal", "native_token": {"id": "frax", "symbol": "frxETH", "logo": "https://static.debank.com/image/frax_token/logo_url/frax/4313f25f6c5196e8fce2c80fa34c73d0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/frax/2e210d888690ad0c424355cc8471d48d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/frax/7ae2bc54b406cd3c378b0bd28df2b3ff.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://fraxscan.com", "need_estimate_gas": false}, {"id": "lumio", "community_id": 8866, "name": "SuperLumio", "native_token": {"id": "lumio", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/lumio/be6cd376260e0e214d8486f2300a4fb9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/lumio/7960121f0a9235ff30bc65c57f0fe3a8.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://explorer.lumio.io", "need_estimate_gas": false}, {"id": "apex", "community_id": 70700, "name": "Proof of Play Apex", "native_token": {"id": "apex", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/apex/f60665106aba5b08563e26b4ba4baf83.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/apex/e1b94232b7eeedb147c489761118411a.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.apex.proofofplay.com", "need_estimate_gas": false}, {"id": "savm", "community_id": 3109, "name": "SatoshiVM Alpha", "native_token": {"id": "savm", "symbol": "BTC", "logo": "https://static.debank.com/image/savm_token/logo_url/savm/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/savm/8f92638826f2c97063c7de7726160655.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/savm/3315cc8579422c06720d9521e3bb0f90.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://svmscan.io", "need_estimate_gas": false}, {"id": "kroma", "community_id": 255, "name": "Kroma", "native_token": {"id": "kroma", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kroma/7c88e9e0e2488172fc1fcb9da3096a70.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kroma/a7c2e13d0aaaf866a4adf0fc7f0aa9df.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://kromascan.com", "need_estimate_gas": false}, {"id": "ela", "community_id": 20, "name": "Elastos", "native_token": {"id": "ela", "symbol": "ELA", "logo": "https://static.debank.com/image/ela_token/logo_url/ela/42a9831ba9df693f00437527ec851099.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ela/42a9831ba9df693f00437527ec851099.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ela/fc429a7e514b50a08ff5627575a47f6f.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://esc.elastos.io", "need_estimate_gas": false}, {"id": "bevm", "community_id": 11501, "name": "BEVM", "native_token": {"id": "bevm", "symbol": "BTC", "logo": "https://static.debank.com/image/bevm_token/logo_url/bevm/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bevm/aafd9b13a2187db02661b85c72fb3cc3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bevm/0030aceb597e1c79f55c53676171d636.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan-mainnet.bevm.io", "need_estimate_gas": false}, {"id": "degen", "community_id": 666666666, "name": "Degen", "native_token": {"id": "degen", "symbol": "DEGEN", "logo": "https://static.debank.com/image/degen_token/logo_url/degen/29dd6d5df71347d2ad3b77c194915844.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/degen/29dd6d5df71347d2ad3b77c194915844.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/degen/c046b42727ff864d1865a102442affb8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.degen.tips", "need_estimate_gas": false}, {"id": "zklink", "community_id": 810180, "name": "zkLink Nova", "native_token": {"id": "zklink", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zklink/b3a4000979cc4f3701135a5f565ffeb0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zklink/585235bd940f119317757760798237ae.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.zklink.io", "need_estimate_gas": false}, {"id": "xlayer", "community_id": 196, "name": "X Layer", "native_token": {"id": "xlayer", "symbol": "OKB", "logo": "https://static.debank.com/image/xlayer_token/logo_url/xlayer/02e2fec5f8b2f5783ceb38d683557de3.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xlayer/282a62903a4c74a964b704a161d1ba39.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xlayer/bb5d85b54ec4634bd8b6703b27e254ba.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.oklink.com/xlayer", "need_estimate_gas": false}, {"id": "molten", "community_id": 360, "name": "Molten", "native_token": {"id": "molten", "symbol": "MOLTEN", "logo": "https://static.debank.com/image/molten_token/logo_url/molten/9cb5d5dc7b200ceaa577e0431a731203.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/molten/9cb5d5dc7b200ceaa577e0431a731203.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/molten/56b94881ef4e1e8ea6765dc5442bf17a.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://molten.calderaexplorer.xyz", "need_estimate_gas": false}, {"id": "btr", "community_id": 200901, "name": "Bitlayer", "native_token": {"id": "btr", "symbol": "BTC", "logo": "https://static.debank.com/image/btr_token/logo_url/btr/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/btr/78ff16cf14dad73c168a70f7c971e401.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/btr/33a233f67cb62320dd49c7a3a05c1d4b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://www.btrscan.com", "need_estimate_gas": false}, {"id": "b2", "community_id": 223, "name": "B\u00b2", "native_token": {"id": "b2", "symbol": "BTC", "logo": "https://static.debank.com/image/b2_token/logo_url/b2/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/b2/6ca6c8bc33af59c5b9273a2b7efbd236.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/b2/3df748afc47cc1c76107981bc312a190.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.bsquared.network", "need_estimate_gas": false}, {"id": "bob", "community_id": 60808, "name": "BOB", "native_token": {"id": "bob", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bob/4e0029be99877775664327213a8da60e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bob/7f61e1ed6fae04833ee21d83c9998d22.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.gobob.xyz", "need_estimate_gas": false}, {"id": "reya", "community_id": 1729, "name": "Reya", "native_token": {"id": "reya", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/reya/20d71aad4279c33229297da1f00d8ae1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/reya/7643e04c35af62a7572aecbdc4565040.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.reya.network", "need_estimate_gas": true}, {"id": "bb", "community_id": 6001, "name": "BounceBit", "native_token": {"id": "bb", "symbol": "BB", "logo": "https://static.debank.com/image/bb_token/logo_url/bb/da74a4980f24d870cb43ccd763e0c966.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bb/da74a4980f24d870cb43ccd763e0c966.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bb/31ba7b64206471376f34f2b4c5c097f8.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://bbscan.io", "need_estimate_gas": false}, {"id": "ailayer", "community_id": 2649, "name": "AILayer", "native_token": {"id": "ailayer", "symbol": "BTC", "logo": "https://static.debank.com/image/ailayer_token/logo_url/ailayer/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ailayer/54ed2cefa4246acecb0b0ba6ddaf5e8a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ailayer/cdf4f9fb0b1c4d14da133ce76ebf0b76.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://mainnet-explorer.anvm.io", "need_estimate_gas": false}, {"id": "sanko", "community_id": 1996, "name": "Sanko", "native_token": {"id": "sanko", "symbol": "DMT", "logo": "https://static.debank.com/image/sanko_token/logo_url/sanko/a3ab5461c7afa714c877cf57fbb033ad.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sanko/a3ab5461c7afa714c877cf57fbb033ad.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sanko/596ade63d11b1a8eafcffc9ecac32632.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://explorer.sanko.xyz", "need_estimate_gas": false}, {"id": "taiko", "community_id": 167000, "name": "Taiko", "native_token": {"id": "taiko", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/taiko/7723fbdb38ef181cd07a8b8691671e6b.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/taiko/16d831636a2aa32e5b58f264a61311e0.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://taikoscan.io", "need_estimate_gas": false}, {"id": "cyber", "community_id": 7560, "name": "Cyber", "native_token": {"id": "cyber", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cyber/3a3c0c5da5fa8876c8c338afae0db478.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cyber/239566559dc0c5fd5f5e2d76b85c6490.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://cyberscan.co", "need_estimate_gas": false}, {"id": "sei", "community_id": 1329, "name": "Sei", "native_token": {"id": "sei", "symbol": "SEI", "logo": "https://static.debank.com/image/sei_token/logo_url/sei/34ddf58f678be2db5b2636b59c9828b5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sei/34ddf58f678be2db5b2636b59c9828b5.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sei/632af17fefaa435817bd6bc3c549280d.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://seitrace.com", "need_estimate_gas": false}, {"id": "strax", "community_id": 105105, "name": "Stratis", "native_token": {"id": "strax", "symbol": "STRAX", "logo": "https://static.debank.com/image/strax_token/logo_url/strax/62929cc22496a34349782a0c685377dd.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/strax/7675d16c026442847faf6bbe7708bf9c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/strax/01db3348ae950906fec6ec74966b59f9.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.stratisevm.com", "need_estimate_gas": false}, {"id": "mint", "community_id": 185, "name": "Mint", "native_token": {"id": "mint", "symbol": "ETH", "logo": "https://static.debank.com/image/mint_token/logo_url/mint/48bfb74adddd170e936578aec422836d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mint/86404f93cd4e51eafcc2e244d417c03f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mint/1bc50cbf5ec022d40efe48c4ec68c25d.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mintscan.org", "need_estimate_gas": false}, {"id": "dbk", "community_id": 20240603, "name": "DBK", "native_token": {"id": "dbk", "symbol": "ETH", "logo": "https://static.debank.com/image/dbk_token/logo_url/dbk/48bfb74adddd170e936578aec422836d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dbk/1255de5a9316fed901d14c069ac62f39.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dbk/f3b17c6a54b98b86a158061706277f06.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.dbkchain.io", "need_estimate_gas": false}] \ No newline at end of file diff --git a/src/ui/assets/bridge/pending.svg b/src/ui/assets/bridge/pending.svg new file mode 100644 index 00000000000..ae43b6d8b62 --- /dev/null +++ b/src/ui/assets/bridge/pending.svg @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/ui/assets/swap/gas-cc.svg b/src/ui/assets/swap/gas-cc.svg new file mode 100644 index 00000000000..c17857533b8 --- /dev/null +++ b/src/ui/assets/swap/gas-cc.svg @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/src/ui/models/bridge.ts b/src/ui/models/bridge.ts index b01ef13b6d4..2b6105059e2 100644 --- a/src/ui/models/bridge.ts +++ b/src/ui/models/bridge.ts @@ -4,14 +4,18 @@ import { CHAINS, CHAINS_ENUM } from 'consts'; import { TokenItem } from '@rabby-wallet/rabby-api/dist/types'; import { BridgeServiceStore } from '@/background/service/bridge'; import { BridgeAggregator } from '@/background/service/openapi'; +import { + DEFAULT_BRIDGE_AGGREGATOR, + DEFAULT_BRIDGE_SUPPORTED_CHAIN, +} from '@/constant/bridge'; export const bridge = createModel()({ name: 'bridge', state: { - supportedChains: [], + supportedChains: DEFAULT_BRIDGE_SUPPORTED_CHAIN, aggregatorsListInit: false, - aggregatorsList: [], + aggregatorsList: DEFAULT_BRIDGE_AGGREGATOR, selectedAggregators: [], selectedDex: null, selectedChain: null, diff --git a/src/ui/views/Bridge/Component/AggregatorsSettings.tsx b/src/ui/views/Bridge/Component/AggregatorsSettings.tsx index 144d45d6883..a6df7295d0b 100644 --- a/src/ui/views/Bridge/Component/AggregatorsSettings.tsx +++ b/src/ui/views/Bridge/Component/AggregatorsSettings.tsx @@ -2,10 +2,10 @@ import { Checkbox, Modal, Popup } from '@/ui/component'; import React, { useEffect, useState } from 'react'; import { useSetSettingVisible } from '../hooks'; import clsx from 'clsx'; -import { Button, Switch, Tooltip } from 'antd'; +import { Button, Switch } from 'antd'; import { useTranslation } from 'react-i18next'; -import { useRabbyDispatch, useRabbyGetter, useRabbySelector } from '@/ui/store'; +import { useRabbyDispatch, useRabbySelector } from '@/ui/store'; import { TooltipWithMagnetArrow } from '@/ui/component/Tooltip/TooltipWithMagnetArrow'; export const AggregatorsSettings = ({ @@ -64,7 +64,7 @@ export const AggregatorsSettings = ({ {t('page.bridge.settingModal.title')} } - height={400} + height={462} onClose={onClose} bodyStyle={{ paddingTop: 16, @@ -132,6 +132,16 @@ export const AggregatorsSettings = ({
); })} + +
{ overlayClassName="rectangle w-[max-content] " title={
-

+

{selectedBridgeQuote?.aggregator?.name} Fee:{' '} {formatTokenAmount( new BigNumber( diff --git a/src/ui/views/Bridge/Component/BridgeHeader.tsx b/src/ui/views/Bridge/Component/BridgeHeader.tsx index 4c2950dee8e..6a13ec6a248 100644 --- a/src/ui/views/Bridge/Component/BridgeHeader.tsx +++ b/src/ui/views/Bridge/Component/BridgeHeader.tsx @@ -2,12 +2,17 @@ import { ReactComponent as RcIconSettings } from '@/ui/assets/swap/settings.svg' import { ReactComponent as RcIconHistory } from '@/ui/assets/swap/history.svg'; import { PageHeader } from '@/ui/component'; -import React, { useCallback, useEffect, useState } from 'react'; +import React, { memo, useCallback, useEffect, useMemo, useState } from 'react'; import { AggregatorsSettings } from './AggregatorsSettings'; -import { useSetSettingVisible, useSettingVisible } from '../hooks'; +import { + usePollBridgePendingNumber, + useSetSettingVisible, + useSettingVisible, +} from '../hooks'; import { BridgeTxHistory } from './BridgeHistory'; import { useTranslation } from 'react-i18next'; import { useRabbyDispatch } from '@/ui/store'; +import { PendingTx } from './PendingTx'; export const Header = () => { const visible = useSettingVisible(); @@ -18,6 +23,14 @@ export const Header = () => { const dispath = useRabbyDispatch(); + // const loadingNumber = 0; + + const loadingNumber = usePollBridgePendingNumber(); + + const openHistory = useCallback(() => { + setHistoryVisible(true); + }, []); + useEffect(() => { dispath.bridge.fetchAggregatorsList(); dispath.bridge.fetchSupportedChains(); @@ -30,12 +43,11 @@ export const Header = () => { forceShowBack rightSlot={

- { - setHistoryVisible(true); - }, [])} - /> + {loadingNumber ? ( + + ) : ( + + )} { diff --git a/src/ui/views/Bridge/Component/BridgeReceiveDetail.tsx b/src/ui/views/Bridge/Component/BridgeReceiveDetail.tsx index 858958fc747..ff7137f5ff5 100644 --- a/src/ui/views/Bridge/Component/BridgeReceiveDetail.tsx +++ b/src/ui/views/Bridge/Component/BridgeReceiveDetail.tsx @@ -14,7 +14,6 @@ const ReceiveWrapper = styled.div` position: relative; margin-top: 24px; border: 0.5px solid var(--r-neutral-line, #d3d8e0); - border: 1px solid var(--r-neutral-line, #d3d8e0); border-radius: 4px; padding: 12px; padding-top: 16px; diff --git a/src/ui/views/Bridge/Component/PendingTx.tsx b/src/ui/views/Bridge/Component/PendingTx.tsx new file mode 100644 index 00000000000..eaaddf848b4 --- /dev/null +++ b/src/ui/views/Bridge/Component/PendingTx.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import { ReactComponent as RcIconPending } from '@/ui/assets/bridge/pending.svg'; +export const PendingTx = ({ + number, + onClick, +}: { + number: number | string; + onClick?: () => void; +}) => { + return ( +
+ + {number} +
+ ); +}; diff --git a/src/ui/views/Bridge/hooks/history.tsx b/src/ui/views/Bridge/hooks/history.tsx index 7cbc7cf4cd8..b0d9ee089b6 100644 --- a/src/ui/views/Bridge/hooks/history.tsx +++ b/src/ui/views/Bridge/hooks/history.tsx @@ -5,6 +5,51 @@ import { useAsync } from 'react-use'; import { uniqBy } from 'lodash'; import { useWallet } from '@/ui/utils'; +export const usePollBridgePendingNumber = (timer = 10000) => { + const [refetchCount, setRefetchCount] = useState(0); + + const wallet = useWallet(); + + const { value, loading, error } = useAsync(async () => { + const account = await wallet.getCurrentAccount(); + if (!account?.address) { + return 0; + } + + const data = await wallet.openapi.getBridgeHistoryList({ + user_addr: account!.address, + start: 0, + limit: 10, + }); + return ( + data?.history_list?.filter((item) => item?.status === 'pending') + ?.length || 0 + ); + }, [refetchCount]); + + const timerRef = useRef(); + + useEffect(() => { + if ((!loading && value !== undefined) || error) { + timerRef.current = setTimeout(() => { + setRefetchCount((e) => e + 1); + }, timer); + } + + return () => { + timerRef.current && clearTimeout(timerRef.current); + }; + }, [loading, value, error, timer]); + + useEffect(() => { + return () => { + timerRef.current && clearTimeout(timerRef.current); + }; + }, []); + + return value; +}; + export const useBridgeHistory = () => { const addr = useRabbySelector( (state) => state.account.currentAccount?.address || '' @@ -30,7 +75,7 @@ export const useBridgeHistory = () => { totalCount: data?.total_cnt, }; }, - [wallet?.openapi?.getSwapTradeList] + [wallet?.openapi?.getBridgeHistoryList] ); const { @@ -89,6 +134,7 @@ export const useBridgeHistory = () => { useEffect(() => { if (!noMore && inViewport && !loadingMore && loadMore && isInBridge) { + console.log('loadMore'); loadMore(); } }, [inViewport, loadMore, loading, loadingMore, noMore, isInBridge]); diff --git a/src/ui/views/Swap/Component/Header.tsx b/src/ui/views/Swap/Component/Header.tsx index c86667d4cc8..b34b537e81a 100644 --- a/src/ui/views/Swap/Component/Header.tsx +++ b/src/ui/views/Swap/Component/Header.tsx @@ -4,10 +4,15 @@ import { ReactComponent as RcIconSwapHistory } from '@/ui/assets/swap/history.sv import { PageHeader } from '@/ui/component'; import React, { useCallback, useState } from 'react'; import { TradingSettings } from './TradingSettings'; -import { useSetSettingVisible, useSettingVisible } from '../hooks'; +import { + usePollSwapPendingNumber, + useSetSettingVisible, + useSettingVisible, +} from '../hooks'; import { SwapTxHistory } from './History'; import { useTranslation } from 'react-i18next'; import { useRabbyDispatch } from '@/ui/store'; +import { PendingTx } from '../../Bridge/Component/PendingTx'; export const Header = () => { const visible = useSettingVisible(); @@ -16,6 +21,12 @@ export const Header = () => { const [historyVisible, setHistoryVisible] = useState(false); const { t } = useTranslation(); + const loadingNumber = usePollSwapPendingNumber(5000); + + const openHistory = useCallback(() => { + setHistoryVisible(true); + }, []); + const dispath = useRabbyDispatch(); React.useEffect(() => { dispath.swap.getSwapSupportedDEXList(); @@ -28,12 +39,15 @@ export const Header = () => { forceShowBack rightSlot={
- { - setHistoryVisible(true); - }, [])} - /> + {loadingNumber ? ( + + ) : ( + + )} + { diff --git a/src/ui/views/Swap/Component/QuoteItem.tsx b/src/ui/views/Swap/Component/QuoteItem.tsx index 4fcbb7e76db..6888f4182b9 100644 --- a/src/ui/views/Swap/Component/QuoteItem.tsx +++ b/src/ui/views/Swap/Component/QuoteItem.tsx @@ -10,7 +10,7 @@ import styled from 'styled-components'; import { QuoteLogo } from './QuoteLogo'; import BigNumber from 'bignumber.js'; import ImgLock from '@/ui/assets/swap/lock.svg'; -import ImgGas from '@/ui/assets/swap/gas.svg'; +import { ReactComponent as RcIconGasCC } from '@/ui/assets/swap/gas-cc.svg'; import ImgWarning from '@/ui/assets/swap/warn.svg'; import ImgVerified from '@/ui/assets/swap/verified.svg'; import ImgWhiteWarning from '@/ui/assets/swap/warning-white.svg'; @@ -34,6 +34,8 @@ import i18n from '@/i18n'; import { TokenWithChain } from '@/ui/component'; import { Tooltip } from 'antd'; +const GAS_USE_AMOUNT_LIMIT = 2_000_000; + const ItemWrapper = styled.div` position: relative; height: 60px; @@ -425,7 +427,18 @@ export const DexQuoteItem = ( const [disabledTradeTipsOpen, setDisabledTradeTipsOpen] = useState(false); + const gasFeeTooHight = useMemo(() => { + return ( + new BigNumber(preExecResult?.swapPreExecTx?.gas?.gas_used || 0).gte( + GAS_USE_AMOUNT_LIMIT + ) && chain === CHAINS_ENUM.ETH + ); + }, [preExecResult, chain]); + const handleClick = useCallback(() => { + if (gasFeeTooHight) { + return; + } if (disabledTrade) { // setDisabledTradeTipsOpen(true); return; @@ -460,6 +473,7 @@ export const DexQuoteItem = ( quote, preExecResult, quoteWarning, + gasFeeTooHight, ]); useDebounce( @@ -527,15 +541,28 @@ export const DexQuoteItem = ( { - if (disabledTrade && !inSufficient && quote && preExecResult) { + if ( + isSdkDataPass && + !gasFeeTooHight && + disabledTrade && + !inSufficient && + quote && + preExecResult + ) { setDisabledTradeTipsOpen(true); } }} @@ -548,7 +575,9 @@ export const DexQuoteItem = ( active && 'active', (disabledTrade || disabled) && 'disabled', isErrorQuote && 'error', - inSufficient && !disabled && 'disabled inSufficient' + + inSufficient && !disabled && 'disabled inSufficient', + gasFeeTooHight && 'disabled gasFeeTooHight' )} > } receivedTokenUsd={receivedTokenUsd} diffContent={rightContent} + gasFeeTooHight={gasFeeTooHight} + isSdkDataPass={isSdkDataPass} />
- {!!props?.gasUsd && ( -
- - {props?.gasUsd} + {!!props?.gasUsd && props.isSdkDataPass && ( +
+
+ + + {props?.gasUsd} + +
)}
diff --git a/src/ui/views/Swap/Component/Quotes.tsx b/src/ui/views/Swap/Component/Quotes.tsx index e600edf323c..fc01907a238 100644 --- a/src/ui/views/Swap/Component/Quotes.tsx +++ b/src/ui/views/Swap/Component/Quotes.tsx @@ -1,15 +1,14 @@ import { Checkbox, Popup } from '@/ui/component'; -import React, { useEffect, useMemo, useRef, useState } from 'react'; +import React, { useMemo, useState } from 'react'; import { QuoteListLoading, QuoteLoading } from './loading'; -import styled from 'styled-components'; import { IconRefresh } from './IconRefresh'; import { DexQuoteItem, QuoteItemProps } from './QuoteItem'; import { TCexQuoteData, TDexQuoteData, isSwapWrapToken, + useQuoteViewDexIdList, useSetRefreshId, - useSetSettingVisible, useSwapSettings, } from '../hooks'; import BigNumber from 'bignumber.js'; @@ -47,8 +46,6 @@ export const Quotes = ({ const { t } = useTranslation(); const { sortIncludeGasFee } = useSwapSettings(); - const setSettings = useSetSettingVisible(); - const sortedList = useMemo( () => [ ...(list?.sort((a, b) => { @@ -125,7 +122,7 @@ export const Quotes = ({ const [hiddenError, setHiddenError] = useState(true); const [errorQuoteDEXs, setErrorQuoteDEXs] = useState([]); - const supportedDEXList = useRabbySelector((s) => s.swap.supportedDEXList); + const viewListLength = useQuoteViewDexIdList().length; if (isSwapWrapToken(other.payToken.id, other.receiveToken.id, other.chain)) { const dex = sortedList.find((e) => e.isDex) as TDexQuoteData | undefined; @@ -198,27 +195,29 @@ export const Quotes = ({
setHiddenError((e) => !e)} > - Hidden {errorQuoteDEXs.length} no-quote rates + {t('page.swap.hidden-no-quote-rates', { + count: errorQuoteDEXs.length, + })}
{ const { sortIncludeGasFee, setSwapSortIncludeGasFee } = useSwapSettings(); - const supportedDEXList = useRabbySelector((s) => s.swap.supportedDEXList); + const viewList = useQuoteViewDexIdList(); const height = useMemo(() => { - const min = 334; - const max = 518; + const min = 333; + const max = 540; - const h = 45 + 24 + supportedDEXList.length * 92; + const h = 45 + 24 + viewList.length * 92; if (h < min) { return min; @@ -285,7 +284,7 @@ export const QuoteList = (props: QuotesProps) => { return max; } return h; - }, [supportedDEXList.length]); + }, [viewList.length]); return ( { + const [refetchCount, setRefetchCount] = useState(0); + + const wallet = useWallet(); + + const { value, loading, error } = useAsync(async () => { + const account = await wallet.getCurrentAccount(); + if (!account?.address) { + return 0; + } + + const data = await wallet.openapi.getSwapTradeList({ + user_addr: account!.address, + start: '0', + limit: '10', + }); + return ( + data?.history_list?.filter((item) => item?.status === 'Pending') + ?.length || 0 + ); + }, [refetchCount]); + + const timerRef = useRef(); + + useEffect(() => { + if ((!loading && value !== undefined) || error) { + timerRef.current = setTimeout(() => { + setRefetchCount((e) => e + 1); + }, timer); + } + + return () => { + timerRef.current && clearTimeout(timerRef.current); + }; + }, [loading, value, error, timer]); + + useEffect(() => { + return () => { + timerRef.current && clearTimeout(timerRef.current); + }; + }, []); + + return value; +}; export const useSwapHistory = () => { const { getSwapList } = useQuoteMethods(); diff --git a/src/ui/views/Swap/hooks/quote.tsx b/src/ui/views/Swap/hooks/quote.tsx index 875fec67774..dcfe411f263 100644 --- a/src/ui/views/Swap/hooks/quote.tsx +++ b/src/ui/views/Swap/hooks/quote.tsx @@ -535,6 +535,7 @@ export const useQuoteMethods = () => { getDexQuote, getAllQuotes, swapViewList, + supportedDEXList, }; }; diff --git a/src/ui/views/Swap/hooks/settings.tsx b/src/ui/views/Swap/hooks/settings.tsx index a7458feaf00..16b4d72fc88 100644 --- a/src/ui/views/Swap/hooks/settings.tsx +++ b/src/ui/views/Swap/hooks/settings.tsx @@ -32,3 +32,13 @@ export const useSwapSettings = () => { ...methods, }; }; + +export const useQuoteViewDexIdList = () => { + const supportedDEXList = useRabbySelector((s) => s.swap.supportedDEXList); + const originSwapViewList = useRabbySelector((s) => s.swap.viewList); + return useMemo(() => { + return supportedDEXList.filter((e) => { + return originSwapViewList?.[e] !== false; + }); + }, [supportedDEXList, originSwapViewList]); +}; diff --git a/src/ui/views/Swap/hooks/verify.tsx b/src/ui/views/Swap/hooks/verify.tsx index f95198f46f8..537bab70d6e 100644 --- a/src/ui/views/Swap/hooks/verify.tsx +++ b/src/ui/views/Swap/hooks/verify.tsx @@ -135,6 +135,8 @@ export const useVerifySdk = ( data?.tx ? { ...data?.tx, chainId: CHAINS[chain].id } : undefined ); + console.log('dexId', dexId, { routerPass, spenderPass, callDataPass }); + return { isSdkDataPass: routerPass && spenderPass && callDataPass, }; diff --git a/yarn.lock b/yarn.lock index 748187746e2..1b74fa86500 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4675,10 +4675,10 @@ sinon-chrome "^3.0.1" webextension-polyfill "0.7.0" -"@rabby-wallet/rabby-api@0.7.23-beta.0": - version "0.7.23-beta.0" - resolved "https://registry.yarnpkg.com/@rabby-wallet/rabby-api/-/rabby-api-0.7.23-beta.0.tgz#6293e825af1b875ec499566d362f215571c7a98d" - integrity sha512-onHq90XrDkWSBc1vWeXFZXbdpz5Hu0qRFOo+0N6Em6LOECJs7RchCAI/OLUpPLf2IcJ58fZ0F2qbkzkPxPCOsA== +"@rabby-wallet/rabby-api@0.7.23-beta.1": + version "0.7.23-beta.1" + resolved "https://registry.yarnpkg.com/@rabby-wallet/rabby-api/-/rabby-api-0.7.23-beta.1.tgz#79d9062e7cfbbace85d7325bd601aa071cf39002" + integrity sha512-luBmg0FoEMp0McUz5A7M6Cbez8/o3vWP2+eFTIuuQISnNw7p3ihFb8fRCR4jOPSBTdcrYAYRPh7SE5LC6TLTew== dependencies: "@rabby-wallet/rabby-sign" "^0.3.3" axios "^0.27.2" @@ -4702,10 +4702,10 @@ sha256-uint8array "^0.10.3" url-parse "^1.5.1" -"@rabby-wallet/rabby-swap@0.0.38-beta.0": - version "0.0.38-beta.0" - resolved "https://registry.yarnpkg.com/@rabby-wallet/rabby-swap/-/rabby-swap-0.0.38-beta.0.tgz#4489e0c266bb2cb51bb8aee8d7f02a09db23c95f" - integrity sha512-KJ4WnfNvcLlMuOf8UCKvimr9yZ4QUBcnDBB5qgIfvBqg8XBHR+cAZ9OuIh7knjxcrEfNwKs5TaaQ+SpmHKAkbA== +"@rabby-wallet/rabby-swap@0.0.38-beta.1": + version "0.0.38-beta.1" + resolved "https://registry.yarnpkg.com/@rabby-wallet/rabby-swap/-/rabby-swap-0.0.38-beta.1.tgz#e4d6ddd530b2ccf840dfbe01eea4c1c0f96288d3" + integrity sha512-NkWyQmEJj3Q5IBeCUhYqeGU9w+Z9Kj+7i/gWFiILsEJlxhSQvMwwJONKz1sG/oK896PmEIiyIBg+RfDx09N2eg== dependencies: "@ethersproject/abi" "^5.7.0" axios "^0.27.2" From 952122d284badae945a88715440c5a950552a6cc Mon Sep 17 00:00:00 2001 From: DMY <147dmy@gmail.com> Date: Thu, 11 Jul 2024 22:37:49 +0800 Subject: [PATCH 11/19] fix: i18n pluar --- _raw/locales/en/messages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_raw/locales/en/messages.json b/_raw/locales/en/messages.json index 6a2a056446e..023a4ed7915 100644 --- a/_raw/locales/en/messages.json +++ b/_raw/locales/en/messages.json @@ -806,7 +806,7 @@ "unlimited-allowance": "Unlimited allowance", "insufficient-balance": "Insufficient balance", "hidden-no-quote-rates_one": "Hidden {{count}} no-quote rate", - "hidden-no-quote-rates_others": "Hidden {{count}} no-quote rates", + "hidden-no-quote-rates_other": "Hidden {{count}} no-quote rates", "Gas-fee-too-high": "Gas fee too high", "rabby-fee": "Rabby fee", From 692de4a05cda7b676092168c1304d194a838be6d Mon Sep 17 00:00:00 2001 From: DMY <147dmy@gmail.com> Date: Fri, 12 Jul 2024 10:48:42 +0800 Subject: [PATCH 12/19] chore: @rabby-wallet/rabby-api@0.7.23 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 17bcb94ef10..a27b4c81435 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "@rabby-wallet/eth-watch-keyring": "1.0.0", "@rabby-wallet/gnosis-sdk": "1.3.6", "@rabby-wallet/page-provider": "0.3.5", - "@rabby-wallet/rabby-api": "0.7.23-beta.1", + "@rabby-wallet/rabby-api": "0.7.23", "@rabby-wallet/rabby-security-engine": "2.0.3", "@rabby-wallet/rabby-swap": "0.0.38-beta.1", "@rabby-wallet/widgets": "1.0.9", diff --git a/yarn.lock b/yarn.lock index 1b74fa86500..8bc2dbb6308 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4675,10 +4675,10 @@ sinon-chrome "^3.0.1" webextension-polyfill "0.7.0" -"@rabby-wallet/rabby-api@0.7.23-beta.1": - version "0.7.23-beta.1" - resolved "https://registry.yarnpkg.com/@rabby-wallet/rabby-api/-/rabby-api-0.7.23-beta.1.tgz#79d9062e7cfbbace85d7325bd601aa071cf39002" - integrity sha512-luBmg0FoEMp0McUz5A7M6Cbez8/o3vWP2+eFTIuuQISnNw7p3ihFb8fRCR4jOPSBTdcrYAYRPh7SE5LC6TLTew== +"@rabby-wallet/rabby-api@0.7.23": + version "0.7.23" + resolved "https://registry.yarnpkg.com/@rabby-wallet/rabby-api/-/rabby-api-0.7.23.tgz#001488fef4de498cf3e713954f549a1667fdfd37" + integrity sha512-fxjJy+2HUMaK394HpjkStj2MxcR/edQbQyun1OFxuGp4cBzA4rq4sF1sUNUUl5E/c+4YmKt5n7w6uP/tnmVkfw== dependencies: "@rabby-wallet/rabby-sign" "^0.3.3" axios "^0.27.2" From 6509b3f4c1023a80077bd51bed3f72d4f2302340 Mon Sep 17 00:00:00 2001 From: DMY <147dmy@gmail.com> Date: Fri, 12 Jul 2024 12:32:16 +0800 Subject: [PATCH 13/19] fix --- src/background/controller/wallet.ts | 1 + src/background/service/bridge.ts | 7 +++++++ src/constant/default-support-chains.json | 2 +- src/ui/models/bridge.ts | 8 ++++++++ .../Bridge/Component/AggregatorsSettings.tsx | 18 +++++++++++++----- .../views/Bridge/Component/BridgeHistory.tsx | 4 +++- src/ui/views/ManageAddress/index.tsx | 5 ++++- 7 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/background/controller/wallet.ts b/src/background/controller/wallet.ts index 9ae7e347fe3..1f8cf4b35b8 100644 --- a/src/background/controller/wallet.ts +++ b/src/background/controller/wallet.ts @@ -1368,6 +1368,7 @@ export class WalletController extends BaseController { setBridgeSelectedToToken = bridgeService.setSelectedToToken; getBridgeSortIncludeGasFee = bridgeService.getBridgeSortIncludeGasFee; setBridgeSortIncludeGasFee = bridgeService.setBridgeSortIncludeGasFee; + setBridgeSettingFirstOpen = bridgeService.setBridgeSettingFirstOpen; setCustomRPC = RPCService.setRPC; removeCustomRPC = RPCService.removeCustomRPC; diff --git a/src/background/service/bridge.ts b/src/background/service/bridge.ts index bca0adce8df..0f7893b043b 100644 --- a/src/background/service/bridge.ts +++ b/src/background/service/bridge.ts @@ -26,6 +26,7 @@ export type BridgeServiceStore = { unlimitedAllowance: boolean; sortIncludeGasFee?: boolean; txQuotes?: Record; + firstOpen: boolean; }; class BridgeService { @@ -36,6 +37,7 @@ class BridgeService { selectedAggregators: undefined, unlimitedAllowance: false, sortIncludeGasFee: true, + firstOpen: true, }; init = async () => { @@ -46,6 +48,7 @@ class BridgeService { unlimitedAllowance: false, sortIncludeGasFee: true, txQuotes: {}, + firstOpen: true, }, }); @@ -102,6 +105,10 @@ class BridgeService { this.store.sortIncludeGasFee = bool; }; + setBridgeSettingFirstOpen = (bool: boolean) => { + this.store.firstOpen = bool; + }; + txQuotes: Record = {}; addTx = (chain: CHAINS_ENUM, data: string, info: BridgeRecord) => { diff --git a/src/constant/default-support-chains.json b/src/constant/default-support-chains.json index 8f3bd168ad1..89f631dfe45 100644 --- a/src/constant/default-support-chains.json +++ b/src/constant/default-support-chains.json @@ -1 +1 @@ -[{"id": "eth", "community_id": 1, "name": "Ethereum", "native_token": {"id": "eth", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/eth/42ba589cd077e7bdd97db6480b0ff61d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/eth/561dda8f1ed8f0b2f46474bde3f02d0b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://etherscan.io", "need_estimate_gas": false}, {"id": "bsc", "community_id": 56, "name": "BNB Chain", "native_token": {"id": "bsc", "symbol": "BNB", "logo": "https://static.debank.com/image/coin/logo_url/bnb/9784283a36f23a58982fc964574ea530.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bsc/bc73fa84b7fc5337905e527dadcbc854.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bsc/8e44e643d6e2fd335a72b4cda6368e1a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bscscan.com", "need_estimate_gas": false}, {"id": "xdai", "community_id": 100, "name": "Gnosis Chain", "native_token": {"id": "xdai", "symbol": "xDai", "logo": "https://static.debank.com/image/xdai_token/logo_url/xdai/297890dc063e6dfb6cb4065cdf38382e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xdai/43c1e09e93e68c9f0f3b132976394529.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xdai/d8744f83d1a3bef4941c0820d76242a2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://gnosisscan.io", "need_estimate_gas": false}, {"id": "matic", "community_id": 137, "name": "Polygon", "native_token": {"id": "matic", "symbol": "MATIC", "logo": "https://static.debank.com/image/matic_token/logo_url/matic/6f5a6b6f0732a7a235131bd7804d357c.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/matic/52ca152c08831e4765506c9bd75767e8.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/matic/d9d33b57922dce7a5ac567b0e5eb1e4b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://polygonscan.com", "need_estimate_gas": false}, {"id": "ftm", "community_id": 250, "name": "Fantom", "native_token": {"id": "ftm", "symbol": "FTM", "logo": "https://static.debank.com/image/ftm_token/logo_url/ftm/33fdb9c5067e94f3a1b9e78f6fa86984.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ftm/14133435f89637157a4405e954e1b1b2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ftm/64178bae592be3a33c160b1d9b9a124a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://ftmscan.com", "need_estimate_gas": false}, {"id": "avax", "community_id": 43114, "name": "Avalanche", "native_token": {"id": "avax", "symbol": "AVAX", "logo": "https://static.debank.com/image/avax_token/logo_url/avax/0b9c84359c84d6bdd5bfda9c2d4c4a82.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/avax/4d1649e8a0c7dec9de3491b81807d402.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/avax/e8a86458cb9e656052f0250d079622d8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://snowtrace.io", "need_estimate_gas": false}, {"id": "op", "community_id": 10, "name": "OP", "native_token": {"id": "op", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/op/01ae734fe781c9c2ae6a4cc7e9244056.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/op/b571a53bc1ce3833a6cc3db42847931b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://optimistic.etherscan.io", "need_estimate_gas": false}, {"id": "arb", "community_id": 42161, "name": "Arbitrum", "native_token": {"id": "arb", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/arb/854f629937ce94bebeb2cd38fb336de7.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/arb/315c3c4560a12e9c94841706e3ed9ce5.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://arbiscan.io", "need_estimate_gas": true}, {"id": "celo", "community_id": 42220, "name": "Celo", "native_token": {"id": "celo", "symbol": "CELO", "logo": "https://static.debank.com/image/celo_token/logo_url/0x471ece3750da237f93b8e339c536989b8978a438/6f524d91db674876ba0f5767cf0124cc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/celo/41da5c1d3c0945ae822a1f85f02c76cf.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/celo/17b4db6dd9f3559117547bc22ddc5b89.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://celoscan.io", "need_estimate_gas": false}, {"id": "movr", "community_id": 1285, "name": "Moonriver", "native_token": {"id": "movr", "symbol": "MOVR", "logo": "https://static.debank.com/image/mtr_token/logo_url/0xb158870beb809ad955bf56065c5c10d7fd957cc0/aa42368ae1d5856d15c13ecc0ff74af6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/movr/4b0de5a711b437f187c0d0f15cc0398b.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/movr/c13a5af6c923aad7cc6cad311267da8e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://moonriver.moonscan.io", "need_estimate_gas": false}, {"id": "cro", "community_id": 25, "name": "Cronos", "native_token": {"id": "cro", "symbol": "CRO", "logo": "https://static.debank.com/image/cro_token/logo_url/cro/7803de9b434be197c2c1399465abdf39.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cro/f947000cc879ee8ffa032793808c741c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cro/555a092be8378d6e55000b3846043bec.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://cronoscan.com", "need_estimate_gas": false}, {"id": "boba", "community_id": 288, "name": "Boba", "native_token": {"id": "boba", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/boba/e43d79cd8088ceb3ea3e4a240a75728f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/boba/aea02e2a1cf1087f299f4d501777d0cd.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bobascan.com", "need_estimate_gas": true}, {"id": "metis", "community_id": 1088, "name": "Metis", "native_token": {"id": "metis", "symbol": "Metis", "logo": "https://static.debank.com/image/coin/logo_url/metis/7485c0a61c1e05fdf707113b6b6ac917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/metis/7485c0a61c1e05fdf707113b6b6ac917.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/metis/3fb2c5171563b035fe4add98eca01efc.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.metis.io", "need_estimate_gas": false}, {"id": "btt", "community_id": 199, "name": "BitTorrent", "native_token": {"id": "btt", "symbol": "BTT", "logo": "https://static.debank.com/image/btt_token/logo_url/btt/2130a8d57ff2a0f3d50a4ec9432897c6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/btt/2130a8d57ff2a0f3d50a4ec9432897c6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/btt/4d76b329327ccfa153e47c750d0775d3.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bttcscan.com", "need_estimate_gas": false}, {"id": "aurora", "community_id": 1313161554, "name": "Aurora", "native_token": {"id": "aurora", "symbol": "AETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/aurora/da491099bb44690eda122cdd67c5c610.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/aurora/f4109e1ec9f24aa36c23a5d9d27286fb.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://aurorascan.dev", "need_estimate_gas": true}, {"id": "mobm", "community_id": 1284, "name": "Moonbeam", "native_token": {"id": "mobm", "symbol": "GLMR", "logo": "https://static.debank.com/image/mobm_token/logo_url/mobm/a8442077d76b258297181c3e6eb8c9cc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mobm/a8442077d76b258297181c3e6eb8c9cc.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mobm/293430b9780093287759bbf2ed80f939.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://moonscan.io", "need_estimate_gas": false}, {"id": "sbch", "community_id": 10000, "name": "SmartBch", "native_token": {"id": "sbch", "symbol": "BCH", "logo": "https://static.debank.com/image/sbch_token/logo_url/sbch/03007b5353bb9e221efb82a6a70d9ec9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sbch/d78ac780803e7f0a17b73558f423502e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sbch/0b08879f05d6a13d7a4181510a1138cf.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.smartscan.cash", "need_estimate_gas": false}, {"id": "fuse", "community_id": 122, "name": "Fuse", "native_token": {"id": "fuse", "symbol": "FUSE", "logo": "https://static.debank.com/image/arb_token/logo_url/0xbdef0e9ef12e689f366fe494a7a7d0dad25d9286/b9fe0bbfeccc43ac46bc652752e25532.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fuse/7a21b958761d52d04ff0ce829d1703f4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fuse/ceda89bc24064a4c583f369811ee29b6.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.fuse.io", "need_estimate_gas": false}, {"id": "hmy", "community_id": 1666600000, "name": "Harmony", "native_token": {"id": "hmy", "symbol": "ONE", "logo": "https://static.debank.com/image/hmy_token/logo_url/hmy/734c003023531e31c636ae25d5a73172.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/hmy/b3bfb4681f81a85e25c28e150dcbfe51.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/hmy/a92fd20b6691292d93160e2606035468.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.harmony.one", "need_estimate_gas": false}, {"id": "klay", "community_id": 8217, "name": "Klaytn", "native_token": {"id": "klay", "symbol": "KLAY", "logo": "https://static.debank.com/image/klay_token/logo_url/klay/1df018b8493cb97c50b7e390ef63cba4.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/klay/1df018b8493cb97c50b7e390ef63cba4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/klay/f5a2aefdbaa9cbc90c0fa1ec0443ec63.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scope.klaytn.com", "need_estimate_gas": false}, {"id": "astar", "community_id": 592, "name": "Astar", "native_token": {"id": "astar", "symbol": "ASTR", "logo": "https://static.debank.com/image/astar_token/logo_url/astar/a827be92d88617a918ea060a9a6f1572.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/astar/398c7e0014bdada3d818367a7273fabe.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/astar/116f17a7abe800b7675377857fac1dcd.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://blockscout.com/astar", "need_estimate_gas": false}, {"id": "iotx", "community_id": 4689, "name": "IoTeX", "native_token": {"id": "iotx", "symbol": "IOTX", "logo": "https://static.debank.com/image/iotx_token/logo_url/iotx/d3be2cd8677f86bd9ab7d5f3701afcc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/iotx/d3be2cd8677f86bd9ab7d5f3701afcc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/iotx/419fdcf87eceb9b8c34af0c5e3985d44.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://iotexscan.io", "need_estimate_gas": false}, {"id": "rsk", "community_id": 30, "name": "Rootstock", "native_token": {"id": "rsk", "symbol": "RBTC", "logo": "https://static.debank.com/image/rsk_token/logo_url/rsk/1dae003fa89234ac011c0dac51126770.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rsk/ff47def89fba98394168bf5f39920c8c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rsk/8f621d4d08c69ba79d5aae53bc9d3eeb.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://rootstock.blockscout.com", "need_estimate_gas": false}, {"id": "wan", "community_id": 888, "name": "Wanchain", "native_token": {"id": "wan", "symbol": "WAN", "logo": "https://static.debank.com/image/wan_token/logo_url/wan/f205dea796c0abae5b6749d697adfffa.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/wan/f3aa8b31414732ea5e026e05665146e6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/wan/dc0ce7bb158767b2de10ce3f23b62675.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.wanscan.org", "need_estimate_gas": false}, {"id": "kcc", "community_id": 321, "name": "KCC", "native_token": {"id": "kcc", "symbol": "KCS", "logo": "https://static.debank.com/image/kcc_token/logo_url/kcc/7fca710b626725fc67f02be57f71c597.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kcc/3a5a4ef7d5f1db1e53880d70219d75b6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kcc/d3f270fe9ccdd0fc9047bcf9a62d8110.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.kcc.io/en", "need_estimate_gas": false}, {"id": "sgb", "community_id": 19, "name": "Songbird", "native_token": {"id": "sgb", "symbol": "SGB", "logo": "https://static.debank.com/image/sgb_token/logo_url/0x02f0826ef6ad107cfc861152b32b52fd11bab9ed/619f46d574d62a50bdfd9f0e2f47ddc1.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sgb/619f46d574d62a50bdfd9f0e2f47ddc1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sgb/eeef2dd3241f458e7f43dd06319e6cb2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://songbird-explorer.flare.network", "need_estimate_gas": false}, {"id": "evmos", "community_id": 9001, "name": "EvmOS", "native_token": {"id": "evmos", "symbol": "EVMOS", "logo": "https://static.debank.com/image/evmos_token/logo_url/evmos/26e038b4d5475d5a4b92f7fc08bdabc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/evmos/26e038b4d5475d5a4b92f7fc08bdabc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/evmos/4d575ca6baef4f1de8dcead622091a79.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://escan.live", "need_estimate_gas": false}, {"id": "dfk", "community_id": 53935, "name": "DFK", "native_token": {"id": "dfk", "symbol": "JEWEL", "logo": "https://static.debank.com/image/dfk_token/logo_url/dfk/09b4ee0e9d0695201fcc7e912ac31595.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dfk/233867c089c5b71be150aa56003f3f7a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dfk/bab611be6bf763da73c6179c2150ffdf.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/defi-kingdoms/dfk-chain/explorer", "need_estimate_gas": false}, {"id": "tlos", "community_id": 40, "name": "Telos", "native_token": {"id": "tlos", "symbol": "TLOS", "logo": "https://static.debank.com/image/tlos_token/logo_url/tlos/7e45efcbc8d74f7fd6cda972938f4ade.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/telos/f9f7493def4c08ed222540bebd8ce87a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/tlos/deae1896415f9dac66e60cb47d8165d7.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.teloscan.io", "need_estimate_gas": false}, {"id": "nova", "community_id": 42170, "name": "Arbitrum Nova", "native_token": {"id": "nova", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/nova/06eb2b7add8ba443d5b219c04089c326.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/nova/b61c3a7723f39265c8b98967407e46db.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://nova.arbiscan.io", "need_estimate_gas": true}, {"id": "canto", "community_id": 7700, "name": "Canto", "native_token": {"id": "canto", "symbol": "CANTO", "logo": "https://static.debank.com/image/canto_token/logo_url/canto/47574ef619e057d2c6bbce1caba57fb6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/canto/47574ef619e057d2c6bbce1caba57fb6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/canto/29bd07f96ac7805a1b14649f356d3eee.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://tuber.build", "need_estimate_gas": false}, {"id": "doge", "community_id": 2000, "name": "Dogechain", "native_token": {"id": "doge", "symbol": "DOGE", "logo": "https://static.debank.com/image/doge_token/logo_url/doge/2538141079688a7a43bc22c7b60fb45f.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/doge/2538141079688a7a43bc22c7b60fb45f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/doge/aa18ed341ae19e5e381dfac1062fee73.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.dogechain.dog", "need_estimate_gas": false}, {"id": "kava", "community_id": 2222, "name": "Kava", "native_token": {"id": "kava", "symbol": "KAVA", "logo": "https://static.debank.com/image/kava_token/logo_url/kava/f5b7c6ffbe4d99da363a78d98e748880.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kava/b26bf85a1a817e409f9a3902e996dc21.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kava/2e672dd7947e41a34d6cbc5995ad24b2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://kavascan.com", "need_estimate_gas": false}, {"id": "step", "community_id": 1234, "name": "Step", "native_token": {"id": "step", "symbol": "FITFI", "logo": "https://static.debank.com/image/step_token/logo_url/step/9d345f7e03f078657bb1ffd494442d67.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/step/db79600b8feafe17845617ca9c606dbe.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/step/e3250b0b574f55b1ec82434549e6f959.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://stepscan.io", "need_estimate_gas": false}, {"id": "mada", "community_id": 2001, "name": "Milkomeda C1", "native_token": {"id": "mada", "symbol": "milkADA", "logo": "https://static.debank.com/image/mada_token/logo_url/mada/cb356bfa1b48206c834e62113604567d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mada/cdc4b1112c2c5a2757cbda33f4476b7f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mada/185df9833e6215d48ccfd389be59b752.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer-mainnet-cardano-evm.c1.milkomeda.com", "need_estimate_gas": false}, {"id": "cfx", "community_id": 1030, "name": "Conflux", "native_token": {"id": "cfx", "symbol": "CFX", "logo": "https://static.debank.com/image/cfx_token/logo_url/cfx/f493f92ad1087e23cf8dadab9850abb5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cfx/eab0c7304c6820b48b2a8d0930459b82.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cfx/d45e5225fc8e97623c798599a2f8ce50.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://evm.confluxscan.io", "need_estimate_gas": false}, {"id": "brise", "community_id": 32520, "name": "Bitgert", "native_token": {"id": "brise", "symbol": "BRISE", "logo": "https://static.debank.com/image/brise_token/logo_url/brise/4f6c040cf49f4d8c4eabbad7cd2f4ae4.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/brise/4f6c040cf49f4d8c4eabbad7cd2f4ae4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/brise/34c2bec8f0eaaf44929ce604c645c729.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://brisescan.com", "need_estimate_gas": false}, {"id": "ckb", "community_id": 71402, "name": "Godwoken", "native_token": {"id": "ckb", "symbol": "CKB", "logo": "https://static.debank.com/image/ckb_token/logo_url/ckb/18d430b7e9b48750bad7e88513a8f2c5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ckb/e821893503104870d5e73f56dbd73746.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ckb/5b7e976954a29e0ff3fc67a03d702d44.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://gwscan.com", "need_estimate_gas": false}, {"id": "era", "community_id": 324, "name": "zkSync Era", "native_token": {"id": "era", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/era/2cfcd0c8436b05d811b03935f6c1d7da.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/era/ae1951502c3514d43374d7e6718bda9a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://era.zksync.network", "need_estimate_gas": true}, {"id": "ron", "community_id": 2020, "name": "Ronin", "native_token": {"id": "ron", "symbol": "RON", "logo": "https://static.debank.com/image/ron_token/logo_url/0xe514d9deb7966c8be0ca922de8a064264ea6bcd4/f65d4fdc17d5533c59ebcd6eb1f47320.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ron/6e0f509804bc83bf042ef4d674c1c5ee.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ron/a7164cbb1bcf36c6b13abece4956e7ec.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.roninchain.com", "need_estimate_gas": false}, {"id": "pze", "community_id": 1101, "name": "Polygon zkEVM", "native_token": {"id": "pze", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/pze/a2276dce2d6a200c6148fb975f0eadd3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/pze/94d0cff539cb8f18c93f11a454f894b3.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://zkevm.polygonscan.com", "need_estimate_gas": false}, {"id": "core", "community_id": 1116, "name": "CORE", "native_token": {"id": "core", "symbol": "CORE", "logo": "https://static.debank.com/image/core_token/logo_url/core/1a7becfe112c0c9bfc25628cd70e94a6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/core/ccc02f660e5dd410b23ca3250ae7c060.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/core/e52df8e06f7763e05e1d94cce21683a5.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.coredao.org", "need_estimate_gas": false}, {"id": "wemix", "community_id": 1111, "name": "WEMIX", "native_token": {"id": "wemix", "symbol": "WEMIX", "logo": "https://static.debank.com/image/wemix_token/logo_url/wemix/6431c197ec9f2a1d334a356b316fbb49.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/wemix/d1ba88d1df6cca0b0cb359c36a09c054.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/wemix/66b877a83349d6d158796f825f5b9633.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.wemix.com", "need_estimate_gas": false}, {"id": "etc", "community_id": 61, "name": "Ethereum Classic", "native_token": {"id": "etc", "symbol": "ETC", "logo": "https://static.debank.com/image/okt_token/logo_url/0x99970778e2715bbc9cf8fb83d10dcbc2d2d551a3/782943aff604f69c7889d90926348210.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/etc/7ccf90ee6822ab440fb603337da256fa.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/etc/81a154d78dce2782739ac9e0d8e05f6d.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://blockscout.com/etc/mainnet", "need_estimate_gas": false}, {"id": "pls", "community_id": 369, "name": "PulseChain", "native_token": {"id": "pls", "symbol": "PLS", "logo": "https://static.debank.com/image/pls_token/logo_url/pls/aa6be079fa9eb568e02150734ebb3db0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/pls/aa6be079fa9eb568e02150734ebb3db0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/pls/7c01fc668883d77e87c9334ec7d6b6ab.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.mypinata.cloud/ipfs/bafybeidn64pd2u525lmoipjl4nh3ooa2imd7huionjsdepdsphl5slfowy/#", "need_estimate_gas": false}, {"id": "flr", "community_id": 14, "name": "Flare", "native_token": {"id": "flr", "symbol": "FLR", "logo": "https://static.debank.com/image/flr_token/logo_url/flr/c7d8087092d5d7b80794630612afb32e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/flr/9ee03d5d7036ad9024e81d55596bb4dc.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/flr/ad866bf4323576b66651c9e2bbfd8a80.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://flare-explorer.flare.network", "need_estimate_gas": false}, {"id": "fsn", "community_id": 32659, "name": "Fusion", "native_token": {"id": "fsn", "symbol": "FSN", "logo": "https://static.debank.com/image/fsn_token/logo_url/fsn/047789979f0b5733602b29517753bdf3.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fsn/047789979f0b5733602b29517753bdf3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fsn/dfb374f7abf97b869ccf42bbf697feae.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://fsnscan.com", "need_estimate_gas": false}, {"id": "mtr", "community_id": 82, "name": "Meter", "native_token": {"id": "mtr", "symbol": "MTR", "logo": "https://static.debank.com/image/mtr_token/logo_url/mtr/920c6f4fdcb408703b435a97b963200b.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mtr/2dc6f079f52ca22778eb684e1ce650b3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mtr/0eafbdc8de9656a9de0f28efa2070450.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.meter.io", "need_estimate_gas": false}, {"id": "rose", "community_id": 42262, "name": "Oasis Emerald", "native_token": {"id": "rose", "symbol": "ROSE", "logo": "https://static.debank.com/image/rose_token/logo_url/rose/33ade55b0f3efa10e9eec002c6417257.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rose/33ade55b0f3efa10e9eec002c6417257.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rose/2e2351720f1772e3b3c7c2891f3d0192.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.emerald.oasis.dev", "need_estimate_gas": false}, {"id": "oas", "community_id": 248, "name": "Oasys", "native_token": {"id": "oas", "symbol": "OAS", "logo": "https://static.debank.com/image/oas_token/logo_url/oas/322b2cb0935af95b9cabd8a59b629566.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/oas/61dfecab1ba8a404354ce94b5a54d4b3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/oas/95888aa80c9eb4dbde714c69b3cc7425.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.oasys.games", "need_estimate_gas": false}, {"id": "zora", "community_id": 7777777, "name": "Zora", "native_token": {"id": "zora", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zora/de39f62c4489a2359d5e1198a8e02ef1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zora/25dfb04c552c35d3d8e30e5ba136b9e6.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.zora.energy", "need_estimate_gas": false}, {"id": "base", "community_id": 8453, "name": "Base", "native_token": {"id": "base", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/base/ccc1513e4f390542c4fb2f4b88ce9579.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/base/025de9d02848e257740c14bdd1f9330b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.basescan.org", "need_estimate_gas": false}, {"id": "linea", "community_id": 59144, "name": "Linea", "native_token": {"id": "linea", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/linea/32d4ff2cf92c766ace975559c232179c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/linea/adee1a93003ab543957692844fdaf9f2.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://lineascan.build", "need_estimate_gas": false}, {"id": "mnt", "community_id": 5000, "name": "Mantle", "native_token": {"id": "mnt", "symbol": "MNT", "logo": "https://static.debank.com/image/eth_token/logo_url/0x3c3a81e81dc49a522a592e7622a7e711c06bf354/a443c78c33704d48f06e5686bb87f85e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mnt/0af11a52431d60ded59655c7ca7e1475.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mnt/f642653f191f4fd59cbf9efefc4c007d.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mantlescan.xyz", "need_estimate_gas": true}, {"id": "tenet", "community_id": 1559, "name": "Tenet", "native_token": {"id": "tenet", "symbol": "TENET", "logo": "https://static.debank.com/image/tenet_token/logo_url/tenet/2da9b626102a7de9625aaf753cfac321.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/tenet/803be22e467ee9a5abe00d69a9c3ea4f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/tenet/651386abf4fa22f64613faf8dc5187f1.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://tenetscan.io", "need_estimate_gas": false}, {"id": "lyx", "community_id": 42, "name": "LUKSO", "native_token": {"id": "lyx", "symbol": "LYX", "logo": "https://static.debank.com/image/eth_token/logo_url/0xa8b919680258d369114910511cc87595aec0be6d/78a30c7b781e3889548d5920c09133dc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/lyx/dbe6eef57e66817e61297d9b188248ed.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/lyx/83230c4279ab2813907de034d87ab319.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.execution.mainnet.lukso.network", "need_estimate_gas": false}, {"id": "manta", "community_id": 169, "name": "Manta Pacific", "native_token": {"id": "manta", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/manta/0e25a60b96a29d6a5b9e524be7565845.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/manta/ead2552c140ffd5482e7222964bac558.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://pacific-explorer.manta.network", "need_estimate_gas": true}, {"id": "scrl", "community_id": 534352, "name": "Scroll", "native_token": {"id": "scrl", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/scrl/1fa5c7e0bfd353ed0a97c1476c9c42d2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/scrl/dd0d05b6fba614d57b55f0724acd723c.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scrollscan.com", "need_estimate_gas": false}, {"id": "opbnb", "community_id": 204, "name": "opBNB", "native_token": {"id": "opbnb", "symbol": "BNB", "logo": "https://static.debank.com/image/coin/logo_url/bnb/9784283a36f23a58982fc964574ea530.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/opbnb/07e2e686e363a842d0982493638e1285.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/opbnb/8e44e643d6e2fd335a72b4cda6368e1a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://mainnet.opbnbscan.com", "need_estimate_gas": false}, {"id": "loot", "community_id": 5151706, "name": "Loot", "native_token": {"id": "loot", "symbol": "AGLD", "logo": "https://static.debank.com/image/loot_token/logo_url/loot/a6c0dc128d515e2d32526075decae9ec.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/loot/0f098333a1a4f474115b05862e680573.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/loot/af8f162614f388e896872f628f3e3e6e.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.lootchain.com", "need_estimate_gas": false}, {"id": "shib", "community_id": 109, "name": "Shibarium", "native_token": {"id": "shib", "symbol": "BONE", "logo": "https://static.debank.com/image/shib_token/logo_url/shib/e49e9a98f5fb1fb04ad96bb536457df9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/shib/4ec79ed9ee4988dfdfc41e1634a447be.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/shib/574d888cbdce3a08ea8a5f636fc2ae3e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://shibariumscan.io", "need_estimate_gas": false}, {"id": "fx", "community_id": 530, "name": "Function X", "native_token": {"id": "fx", "symbol": "FX", "logo": "https://static.debank.com/image/fx_token/logo_url/fx/6fee82420b2394e0b68d7d7e692a0a01.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fx/6fee82420b2394e0b68d7d7e692a0a01.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fx/528e10d16f64db1798bca33092526d96.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://starscan.io/evm", "need_estimate_gas": false}, {"id": "mode", "community_id": 34443, "name": "Mode", "native_token": {"id": "mode", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mode/466e6e12f4fd827f8f497cceb0601a5e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mode/f7033404c6d09fafcbe53cbf806a585f.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.mode.network", "need_estimate_gas": false}, {"id": "beam", "community_id": 4337, "name": "Beam", "native_token": {"id": "beam", "symbol": "BEAM", "logo": "https://static.debank.com/image/beam_token/logo_url/beam/90a1e9f46664d070752deeb65878a3bd.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/beam/90a1e9f46664d070752deeb65878a3bd.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/beam/f54a6974e60b63c5f328721ad0281f1b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/beam", "need_estimate_gas": false}, {"id": "fon", "community_id": 201022, "name": "FON Chain", "native_token": {"id": "fon", "symbol": "FON", "logo": "https://static.debank.com/image/fon_token/logo_url/fon/369618f4d45053fa4439943c9c2d387d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fon/369618f4d45053fa4439943c9c2d387d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fon/6c5ee096ec2173f9250d58b4384343aa.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://fonscan.io", "need_estimate_gas": false}, {"id": "zkfair", "community_id": 42766, "name": "ZKFair", "native_token": {"id": "zkfair", "symbol": "USDC", "logo": "https://static.debank.com/image/zkfair_token/logo_url/zkfair/35ab0987153a8355a454223aae371ac7.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zkfair/c66f35d57c6146cdff82dfeb316ba801.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zkfair/4133904f2769ebcffa48177c0b7831a6.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.zkfair.io", "need_estimate_gas": false}, {"id": "alot", "community_id": 432204, "name": "Dexalot", "native_token": {"id": "alot", "symbol": "ALOT", "logo": "https://static.debank.com/image/alot_token/logo_url/alot/a03e5e8bc56a8bcd5f5c7b830e8b5877.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/alot/0ed4884da27d022dbd5ed5bc919ee248.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/alot/8ed0cbf9842daef43fbb32558d4f4309.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/dexalot", "need_estimate_gas": false}, {"id": "bfc", "community_id": 3068, "name": "Bifrost", "native_token": {"id": "bfc", "symbol": "BFC", "logo": "https://static.debank.com/image/bfc_token/logo_url/bfc/f0c01b58f084660f8c8ff43f5c85301c.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bfc/7c10f5191b16d0cc068cb6eff32b6347.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bfc/728682dd1707271a7b268fac3594e94e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.mainnet.bifrostnetwork.com", "need_estimate_gas": false}, {"id": "xai", "community_id": 660279, "name": "Xai", "native_token": {"id": "xai", "symbol": "XAI", "logo": "https://static.debank.com/image/xai_token/logo_url/xai/022ab00135c182f6e67e583ecda93863.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xai/b02622ce65251bdcb31aa6621a10a096.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xai/9eb29c6f965e70ed84e50f8e9e577b1e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.xai-chain.net", "need_estimate_gas": false}, {"id": "zeta", "community_id": 7000, "name": "ZetaChain", "native_token": {"id": "zeta", "symbol": "ZETA", "logo": "https://static.debank.com/image/zeta_token/logo_url/zeta/d0e1b5e519d99c452a30e83a1263d1d0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zeta/d0e1b5e519d99c452a30e83a1263d1d0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zeta/fb4ab4eb798244887bfd65455bd42d6b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://zetachain.blockscout.com", "need_estimate_gas": false}, {"id": "rari", "community_id": 1380012617, "name": "RARI", "native_token": {"id": "rari", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rari/67fc6abba5cfc6bb3a57bb6afcf5afee.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rari/73456a9386ce19d00584fec493206005.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mainnet.explorer.rarichain.org", "need_estimate_gas": false}, {"id": "dym", "community_id": 1100, "name": "Dymension", "native_token": {"id": "dym", "symbol": "DYM", "logo": "https://static.debank.com/image/dym_token/logo_url/dym/ab62b0f446408c84a2e17d9178a4e8e9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dym/ab62b0f446408c84a2e17d9178a4e8e9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dym/0a9e4481802f4c0aae6a5a97605809d8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://dym.fyi", "need_estimate_gas": false}, {"id": "merlin", "community_id": 4200, "name": "Merlin", "native_token": {"id": "merlin", "symbol": "BTC", "logo": "https://static.debank.com/image/merlin_token/logo_url/merlin/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/merlin/458e4686dfb909ba871bd96fe45417a8.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/merlin/72e28432e865c544c1045017892187bc.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.merlinchain.io", "need_estimate_gas": false}, {"id": "blast", "community_id": 81457, "name": "Blast", "native_token": {"id": "blast", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/blast/15132294afd38ce980639a381ee30149.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/blast/828eb570083948e156a34ab8588e26b3.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://blastscan.io", "need_estimate_gas": false}, {"id": "smr", "community_id": 148, "name": "Shimmer EVM", "native_token": {"id": "smr", "symbol": "SMR", "logo": "https://static.debank.com/image/smr_token/logo_url/smr/fbf679837a276530dd9b253dfa85c1f5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/smr/d22267bfdee42c88a15e605b30861a30.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/smr/2e536df7a52d2f5948f8fd0b9f5d0cb4.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.evm.shimmer.network", "need_estimate_gas": false}, {"id": "iota", "community_id": 8822, "name": "IOTA EVM", "native_token": {"id": "iota", "symbol": "IOTA", "logo": "https://static.debank.com/image/iota_token/logo_url/iota/b2fbb37acc6a3be27231fbc49aed481a.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/iota/b2fbb37acc6a3be27231fbc49aed481a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/iota/acedda9f542b72c0109c8c20caf526d9.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.evm.iota.org", "need_estimate_gas": false}, {"id": "platon", "community_id": 210425, "name": "PlatON", "native_token": {"id": "platon", "symbol": "LAT", "logo": "https://static.debank.com/image/platon_token/logo_url/platon/b5df1214981b0888e48fbb18d302c6ba.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/platon/b5df1214981b0888e48fbb18d302c6ba.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/platon/e5104b97d20a18df9f28b0673ebd7440.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.platon.network", "need_estimate_gas": false}, {"id": "rollux", "community_id": 570, "name": "Rollux", "native_token": {"id": "rollux", "symbol": "SYS", "logo": "https://static.debank.com/image/rollux_token/logo_url/rollux/a57476d6cd8e27ee6d7eae318c3c7eee.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rollux/b38f1a5be41a8e87766436ad9d9919a9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rollux/25c6383b3ae8b989c1e234c6734ba2ae.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.rollux.com", "need_estimate_gas": false}, {"id": "sx", "community_id": 416, "name": "SX", "native_token": {"id": "sx", "symbol": "SX", "logo": "https://static.debank.com/image/sx_token/logo_url/sx/1cd91dbcb82de12b4587607bc4924bc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sx/1cd91dbcb82de12b4587607bc4924bc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sx/0bddf854e56d6e7629b2f8ca1be707b0.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.sx.technology", "need_estimate_gas": false}, {"id": "eon", "community_id": 7332, "name": "Horizen EON", "native_token": {"id": "eon", "symbol": "ZEN", "logo": "https://static.debank.com/image/eon_token/logo_url/eon/bf6e7dbdd2facde7ed39c9f881537775.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/eon/36deb31f3e0a7c74762971d79245f82e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/eon/f071cd6b0e2c8a9ea6a3e213651ed7f2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://eon-explorer.horizenlabs.io", "need_estimate_gas": false}, {"id": "ulx", "community_id": 1231, "name": "Ultron", "native_token": {"id": "ulx", "symbol": "ULX", "logo": "https://static.debank.com/image/ulx_token/logo_url/ulx/371eb14527f3a80ed382f67278f43c7e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ulx/371eb14527f3a80ed382f67278f43c7e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ulx/7d6d20d13ec0a5c7d286aaea404f2d91.png", "eip_1559": false, "is_disabled": true, "explorer_host": "https://ulxscan.com", "need_estimate_gas": false}, {"id": "map", "community_id": 22776, "name": "MAP Protocol", "native_token": {"id": "map", "symbol": "MAPO", "logo": "https://static.debank.com/image/map_token/logo_url/map/3efde740a6e9d32661757aad8ae2b3a2.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/map/3efde740a6e9d32661757aad8ae2b3a2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/map/18ec31888ba251dd6d47e469b636d5fe.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://www.maposcan.io", "need_estimate_gas": false}, {"id": "karak", "community_id": 2410, "name": "Karak", "native_token": {"id": "karak", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/karak/a9e47f00f6eeb2c9cc8f9551cff5fe68.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/karak/5d5ca3507b4a1d64a85406f7382412d7.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.karak.network", "need_estimate_gas": false}, {"id": "aze", "community_id": 3776, "name": "Astar zkEVM", "native_token": {"id": "aze", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/aze/6def6ac081a37e94ed0106da2cefeaf4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/aze/490d08032b0ee878dc0251c35c26383b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://astar-zkevm.explorer.startale.com", "need_estimate_gas": false}, {"id": "frax", "community_id": 252, "name": "Fraxtal", "native_token": {"id": "frax", "symbol": "frxETH", "logo": "https://static.debank.com/image/frax_token/logo_url/frax/4313f25f6c5196e8fce2c80fa34c73d0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/frax/2e210d888690ad0c424355cc8471d48d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/frax/7ae2bc54b406cd3c378b0bd28df2b3ff.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://fraxscan.com", "need_estimate_gas": false}, {"id": "lumio", "community_id": 8866, "name": "SuperLumio", "native_token": {"id": "lumio", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/lumio/be6cd376260e0e214d8486f2300a4fb9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/lumio/7960121f0a9235ff30bc65c57f0fe3a8.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://explorer.lumio.io", "need_estimate_gas": false}, {"id": "apex", "community_id": 70700, "name": "Proof of Play Apex", "native_token": {"id": "apex", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/apex/f60665106aba5b08563e26b4ba4baf83.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/apex/e1b94232b7eeedb147c489761118411a.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.apex.proofofplay.com", "need_estimate_gas": false}, {"id": "savm", "community_id": 3109, "name": "SatoshiVM Alpha", "native_token": {"id": "savm", "symbol": "BTC", "logo": "https://static.debank.com/image/savm_token/logo_url/savm/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/savm/8f92638826f2c97063c7de7726160655.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/savm/3315cc8579422c06720d9521e3bb0f90.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://svmscan.io", "need_estimate_gas": false}, {"id": "kroma", "community_id": 255, "name": "Kroma", "native_token": {"id": "kroma", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kroma/7c88e9e0e2488172fc1fcb9da3096a70.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kroma/a7c2e13d0aaaf866a4adf0fc7f0aa9df.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://kromascan.com", "need_estimate_gas": false}, {"id": "ela", "community_id": 20, "name": "Elastos", "native_token": {"id": "ela", "symbol": "ELA", "logo": "https://static.debank.com/image/ela_token/logo_url/ela/42a9831ba9df693f00437527ec851099.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ela/42a9831ba9df693f00437527ec851099.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ela/fc429a7e514b50a08ff5627575a47f6f.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://esc.elastos.io", "need_estimate_gas": false}, {"id": "bevm", "community_id": 11501, "name": "BEVM", "native_token": {"id": "bevm", "symbol": "BTC", "logo": "https://static.debank.com/image/bevm_token/logo_url/bevm/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bevm/aafd9b13a2187db02661b85c72fb3cc3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bevm/0030aceb597e1c79f55c53676171d636.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan-mainnet.bevm.io", "need_estimate_gas": false}, {"id": "degen", "community_id": 666666666, "name": "Degen", "native_token": {"id": "degen", "symbol": "DEGEN", "logo": "https://static.debank.com/image/degen_token/logo_url/degen/29dd6d5df71347d2ad3b77c194915844.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/degen/29dd6d5df71347d2ad3b77c194915844.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/degen/c046b42727ff864d1865a102442affb8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.degen.tips", "need_estimate_gas": false}, {"id": "zklink", "community_id": 810180, "name": "zkLink Nova", "native_token": {"id": "zklink", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zklink/b3a4000979cc4f3701135a5f565ffeb0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zklink/585235bd940f119317757760798237ae.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.zklink.io", "need_estimate_gas": false}, {"id": "xlayer", "community_id": 196, "name": "X Layer", "native_token": {"id": "xlayer", "symbol": "OKB", "logo": "https://static.debank.com/image/xlayer_token/logo_url/xlayer/02e2fec5f8b2f5783ceb38d683557de3.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xlayer/282a62903a4c74a964b704a161d1ba39.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xlayer/bb5d85b54ec4634bd8b6703b27e254ba.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.oklink.com/xlayer", "need_estimate_gas": false}, {"id": "molten", "community_id": 360, "name": "Molten", "native_token": {"id": "molten", "symbol": "MOLTEN", "logo": "https://static.debank.com/image/molten_token/logo_url/molten/9cb5d5dc7b200ceaa577e0431a731203.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/molten/9cb5d5dc7b200ceaa577e0431a731203.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/molten/56b94881ef4e1e8ea6765dc5442bf17a.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://molten.calderaexplorer.xyz", "need_estimate_gas": false}, {"id": "btr", "community_id": 200901, "name": "Bitlayer", "native_token": {"id": "btr", "symbol": "BTC", "logo": "https://static.debank.com/image/btr_token/logo_url/btr/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/btr/78ff16cf14dad73c168a70f7c971e401.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/btr/33a233f67cb62320dd49c7a3a05c1d4b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://www.btrscan.com", "need_estimate_gas": false}, {"id": "b2", "community_id": 223, "name": "B\u00b2", "native_token": {"id": "b2", "symbol": "BTC", "logo": "https://static.debank.com/image/b2_token/logo_url/b2/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/b2/6ca6c8bc33af59c5b9273a2b7efbd236.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/b2/3df748afc47cc1c76107981bc312a190.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.bsquared.network", "need_estimate_gas": false}, {"id": "bob", "community_id": 60808, "name": "BOB", "native_token": {"id": "bob", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bob/4e0029be99877775664327213a8da60e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bob/7f61e1ed6fae04833ee21d83c9998d22.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.gobob.xyz", "need_estimate_gas": false}, {"id": "reya", "community_id": 1729, "name": "Reya", "native_token": {"id": "reya", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/reya/20d71aad4279c33229297da1f00d8ae1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/reya/7643e04c35af62a7572aecbdc4565040.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.reya.network", "need_estimate_gas": true}, {"id": "bb", "community_id": 6001, "name": "BounceBit", "native_token": {"id": "bb", "symbol": "BB", "logo": "https://static.debank.com/image/bb_token/logo_url/bb/da74a4980f24d870cb43ccd763e0c966.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bb/da74a4980f24d870cb43ccd763e0c966.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bb/31ba7b64206471376f34f2b4c5c097f8.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://bbscan.io", "need_estimate_gas": false}, {"id": "ailayer", "community_id": 2649, "name": "AILayer", "native_token": {"id": "ailayer", "symbol": "BTC", "logo": "https://static.debank.com/image/ailayer_token/logo_url/ailayer/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ailayer/54ed2cefa4246acecb0b0ba6ddaf5e8a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ailayer/cdf4f9fb0b1c4d14da133ce76ebf0b76.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://mainnet-explorer.anvm.io", "need_estimate_gas": false}, {"id": "sanko", "community_id": 1996, "name": "Sanko", "native_token": {"id": "sanko", "symbol": "DMT", "logo": "https://static.debank.com/image/sanko_token/logo_url/sanko/a3ab5461c7afa714c877cf57fbb033ad.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sanko/a3ab5461c7afa714c877cf57fbb033ad.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sanko/596ade63d11b1a8eafcffc9ecac32632.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://explorer.sanko.xyz", "need_estimate_gas": false}, {"id": "taiko", "community_id": 167000, "name": "Taiko", "native_token": {"id": "taiko", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/taiko/7723fbdb38ef181cd07a8b8691671e6b.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/taiko/16d831636a2aa32e5b58f264a61311e0.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://taikoscan.io", "need_estimate_gas": false}, {"id": "cyber", "community_id": 7560, "name": "Cyber", "native_token": {"id": "cyber", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cyber/3a3c0c5da5fa8876c8c338afae0db478.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cyber/239566559dc0c5fd5f5e2d76b85c6490.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://cyberscan.co", "need_estimate_gas": false}, {"id": "sei", "community_id": 1329, "name": "Sei", "native_token": {"id": "sei", "symbol": "SEI", "logo": "https://static.debank.com/image/sei_token/logo_url/sei/34ddf58f678be2db5b2636b59c9828b5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sei/34ddf58f678be2db5b2636b59c9828b5.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sei/632af17fefaa435817bd6bc3c549280d.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://seitrace.com", "need_estimate_gas": false}, {"id": "strax", "community_id": 105105, "name": "Stratis", "native_token": {"id": "strax", "symbol": "STRAX", "logo": "https://static.debank.com/image/strax_token/logo_url/strax/62929cc22496a34349782a0c685377dd.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/strax/7675d16c026442847faf6bbe7708bf9c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/strax/01db3348ae950906fec6ec74966b59f9.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.stratisevm.com", "need_estimate_gas": false}, {"id": "mint", "community_id": 185, "name": "Mint", "native_token": {"id": "mint", "symbol": "ETH", "logo": "https://static.debank.com/image/mint_token/logo_url/mint/48bfb74adddd170e936578aec422836d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mint/86404f93cd4e51eafcc2e244d417c03f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mint/1bc50cbf5ec022d40efe48c4ec68c25d.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mintscan.org", "need_estimate_gas": false}, {"id": "dbk", "community_id": 20240603, "name": "DBK", "native_token": {"id": "dbk", "symbol": "ETH", "logo": "https://static.debank.com/image/dbk_token/logo_url/dbk/48bfb74adddd170e936578aec422836d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dbk/1255de5a9316fed901d14c069ac62f39.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dbk/f3b17c6a54b98b86a158061706277f06.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.dbkchain.io", "need_estimate_gas": false}] \ No newline at end of file +[{"id": "eth", "community_id": 1, "name": "Ethereum", "native_token": {"id": "eth", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/eth/42ba589cd077e7bdd97db6480b0ff61d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/eth/561dda8f1ed8f0b2f46474bde3f02d0b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://etherscan.io", "need_estimate_gas": false}, {"id": "bsc", "community_id": 56, "name": "BNB Chain", "native_token": {"id": "bsc", "symbol": "BNB", "logo": "https://static.debank.com/image/coin/logo_url/bnb/9784283a36f23a58982fc964574ea530.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bsc/bc73fa84b7fc5337905e527dadcbc854.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bsc/8e44e643d6e2fd335a72b4cda6368e1a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bscscan.com", "need_estimate_gas": false}, {"id": "xdai", "community_id": 100, "name": "Gnosis Chain", "native_token": {"id": "xdai", "symbol": "xDai", "logo": "https://static.debank.com/image/xdai_token/logo_url/xdai/297890dc063e6dfb6cb4065cdf38382e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xdai/43c1e09e93e68c9f0f3b132976394529.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xdai/d8744f83d1a3bef4941c0820d76242a2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://gnosisscan.io", "need_estimate_gas": false}, {"id": "matic", "community_id": 137, "name": "Polygon", "native_token": {"id": "matic", "symbol": "MATIC", "logo": "https://static.debank.com/image/matic_token/logo_url/matic/6f5a6b6f0732a7a235131bd7804d357c.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/matic/52ca152c08831e4765506c9bd75767e8.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/matic/d9d33b57922dce7a5ac567b0e5eb1e4b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://polygonscan.com", "need_estimate_gas": false}, {"id": "ftm", "community_id": 250, "name": "Fantom", "native_token": {"id": "ftm", "symbol": "FTM", "logo": "https://static.debank.com/image/ftm_token/logo_url/ftm/33fdb9c5067e94f3a1b9e78f6fa86984.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ftm/14133435f89637157a4405e954e1b1b2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ftm/64178bae592be3a33c160b1d9b9a124a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://ftmscan.com", "need_estimate_gas": false}, {"id": "avax", "community_id": 43114, "name": "Avalanche", "native_token": {"id": "avax", "symbol": "AVAX", "logo": "https://static.debank.com/image/avax_token/logo_url/avax/0b9c84359c84d6bdd5bfda9c2d4c4a82.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/avax/4d1649e8a0c7dec9de3491b81807d402.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/avax/e8a86458cb9e656052f0250d079622d8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://snowtrace.io", "need_estimate_gas": false}, {"id": "op", "community_id": 10, "name": "OP", "native_token": {"id": "op", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/op/01ae734fe781c9c2ae6a4cc7e9244056.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/op/b571a53bc1ce3833a6cc3db42847931b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://optimistic.etherscan.io", "need_estimate_gas": false}, {"id": "arb", "community_id": 42161, "name": "Arbitrum", "native_token": {"id": "arb", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/arb/854f629937ce94bebeb2cd38fb336de7.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/arb/315c3c4560a12e9c94841706e3ed9ce5.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://arbiscan.io", "need_estimate_gas": true}, {"id": "celo", "community_id": 42220, "name": "Celo", "native_token": {"id": "celo", "symbol": "CELO", "logo": "https://static.debank.com/image/celo_token/logo_url/0x471ece3750da237f93b8e339c536989b8978a438/6f524d91db674876ba0f5767cf0124cc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/celo/41da5c1d3c0945ae822a1f85f02c76cf.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/celo/17b4db6dd9f3559117547bc22ddc5b89.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://celoscan.io", "need_estimate_gas": false}, {"id": "movr", "community_id": 1285, "name": "Moonriver", "native_token": {"id": "movr", "symbol": "MOVR", "logo": "https://static.debank.com/image/mtr_token/logo_url/0xb158870beb809ad955bf56065c5c10d7fd957cc0/aa42368ae1d5856d15c13ecc0ff74af6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/movr/4b0de5a711b437f187c0d0f15cc0398b.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/movr/c13a5af6c923aad7cc6cad311267da8e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://moonriver.moonscan.io", "need_estimate_gas": false}, {"id": "cro", "community_id": 25, "name": "Cronos", "native_token": {"id": "cro", "symbol": "CRO", "logo": "https://static.debank.com/image/cro_token/logo_url/cro/7803de9b434be197c2c1399465abdf39.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cro/f947000cc879ee8ffa032793808c741c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cro/555a092be8378d6e55000b3846043bec.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://cronoscan.com", "need_estimate_gas": false}, {"id": "boba", "community_id": 288, "name": "Boba", "native_token": {"id": "boba", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/boba/e43d79cd8088ceb3ea3e4a240a75728f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/boba/aea02e2a1cf1087f299f4d501777d0cd.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bobascan.com", "need_estimate_gas": true}, {"id": "metis", "community_id": 1088, "name": "Metis", "native_token": {"id": "metis", "symbol": "Metis", "logo": "https://static.debank.com/image/coin/logo_url/metis/7485c0a61c1e05fdf707113b6b6ac917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/metis/7485c0a61c1e05fdf707113b6b6ac917.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/metis/3fb2c5171563b035fe4add98eca01efc.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.metis.io", "need_estimate_gas": false}, {"id": "btt", "community_id": 199, "name": "BitTorrent", "native_token": {"id": "btt", "symbol": "BTT", "logo": "https://static.debank.com/image/btt_token/logo_url/btt/2130a8d57ff2a0f3d50a4ec9432897c6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/btt/2130a8d57ff2a0f3d50a4ec9432897c6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/btt/4d76b329327ccfa153e47c750d0775d3.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://bttcscan.com", "need_estimate_gas": false}, {"id": "aurora", "community_id": 1313161554, "name": "Aurora", "native_token": {"id": "aurora", "symbol": "AETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/aurora/da491099bb44690eda122cdd67c5c610.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/aurora/f4109e1ec9f24aa36c23a5d9d27286fb.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://aurorascan.dev", "need_estimate_gas": true}, {"id": "mobm", "community_id": 1284, "name": "Moonbeam", "native_token": {"id": "mobm", "symbol": "GLMR", "logo": "https://static.debank.com/image/mobm_token/logo_url/mobm/a8442077d76b258297181c3e6eb8c9cc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mobm/a8442077d76b258297181c3e6eb8c9cc.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mobm/293430b9780093287759bbf2ed80f939.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://moonscan.io", "need_estimate_gas": false}, {"id": "sbch", "community_id": 10000, "name": "SmartBch", "native_token": {"id": "sbch", "symbol": "BCH", "logo": "https://static.debank.com/image/sbch_token/logo_url/sbch/03007b5353bb9e221efb82a6a70d9ec9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sbch/d78ac780803e7f0a17b73558f423502e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sbch/0b08879f05d6a13d7a4181510a1138cf.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.smartscan.cash", "need_estimate_gas": false}, {"id": "fuse", "community_id": 122, "name": "Fuse", "native_token": {"id": "fuse", "symbol": "FUSE", "logo": "https://static.debank.com/image/arb_token/logo_url/0xbdef0e9ef12e689f366fe494a7a7d0dad25d9286/b9fe0bbfeccc43ac46bc652752e25532.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fuse/7a21b958761d52d04ff0ce829d1703f4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fuse/ceda89bc24064a4c583f369811ee29b6.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.fuse.io", "need_estimate_gas": false}, {"id": "hmy", "community_id": 1666600000, "name": "Harmony", "native_token": {"id": "hmy", "symbol": "ONE", "logo": "https://static.debank.com/image/hmy_token/logo_url/hmy/734c003023531e31c636ae25d5a73172.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/hmy/b3bfb4681f81a85e25c28e150dcbfe51.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/hmy/a92fd20b6691292d93160e2606035468.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.harmony.one", "need_estimate_gas": false}, {"id": "klay", "community_id": 8217, "name": "Klaytn", "native_token": {"id": "klay", "symbol": "KLAY", "logo": "https://static.debank.com/image/klay_token/logo_url/klay/1df018b8493cb97c50b7e390ef63cba4.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/klay/1df018b8493cb97c50b7e390ef63cba4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/klay/f5a2aefdbaa9cbc90c0fa1ec0443ec63.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scope.klaytn.com", "need_estimate_gas": false}, {"id": "astar", "community_id": 592, "name": "Astar", "native_token": {"id": "astar", "symbol": "ASTR", "logo": "https://static.debank.com/image/astar_token/logo_url/astar/a827be92d88617a918ea060a9a6f1572.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/astar/398c7e0014bdada3d818367a7273fabe.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/astar/116f17a7abe800b7675377857fac1dcd.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://blockscout.com/astar", "need_estimate_gas": false}, {"id": "iotx", "community_id": 4689, "name": "IoTeX", "native_token": {"id": "iotx", "symbol": "IOTX", "logo": "https://static.debank.com/image/iotx_token/logo_url/iotx/d3be2cd8677f86bd9ab7d5f3701afcc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/iotx/d3be2cd8677f86bd9ab7d5f3701afcc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/iotx/419fdcf87eceb9b8c34af0c5e3985d44.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://iotexscan.io", "need_estimate_gas": false}, {"id": "rsk", "community_id": 30, "name": "Rootstock", "native_token": {"id": "rsk", "symbol": "RBTC", "logo": "https://static.debank.com/image/rsk_token/logo_url/rsk/1dae003fa89234ac011c0dac51126770.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rsk/ff47def89fba98394168bf5f39920c8c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rsk/8f621d4d08c69ba79d5aae53bc9d3eeb.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://rootstock.blockscout.com", "need_estimate_gas": false}, {"id": "wan", "community_id": 888, "name": "Wanchain", "native_token": {"id": "wan", "symbol": "WAN", "logo": "https://static.debank.com/image/wan_token/logo_url/wan/f205dea796c0abae5b6749d697adfffa.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/wan/f3aa8b31414732ea5e026e05665146e6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/wan/dc0ce7bb158767b2de10ce3f23b62675.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.wanscan.org", "need_estimate_gas": false}, {"id": "kcc", "community_id": 321, "name": "KCC", "native_token": {"id": "kcc", "symbol": "KCS", "logo": "https://static.debank.com/image/kcc_token/logo_url/kcc/7fca710b626725fc67f02be57f71c597.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kcc/3a5a4ef7d5f1db1e53880d70219d75b6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kcc/d3f270fe9ccdd0fc9047bcf9a62d8110.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.kcc.io/en", "need_estimate_gas": false}, {"id": "sgb", "community_id": 19, "name": "Songbird", "native_token": {"id": "sgb", "symbol": "SGB", "logo": "https://static.debank.com/image/sgb_token/logo_url/0x02f0826ef6ad107cfc861152b32b52fd11bab9ed/619f46d574d62a50bdfd9f0e2f47ddc1.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sgb/619f46d574d62a50bdfd9f0e2f47ddc1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sgb/eeef2dd3241f458e7f43dd06319e6cb2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://songbird-explorer.flare.network", "need_estimate_gas": false}, {"id": "evmos", "community_id": 9001, "name": "EvmOS", "native_token": {"id": "evmos", "symbol": "EVMOS", "logo": "https://static.debank.com/image/evmos_token/logo_url/evmos/26e038b4d5475d5a4b92f7fc08bdabc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/evmos/26e038b4d5475d5a4b92f7fc08bdabc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/evmos/4d575ca6baef4f1de8dcead622091a79.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://escan.live", "need_estimate_gas": false}, {"id": "dfk", "community_id": 53935, "name": "DFK", "native_token": {"id": "dfk", "symbol": "JEWEL", "logo": "https://static.debank.com/image/dfk_token/logo_url/dfk/09b4ee0e9d0695201fcc7e912ac31595.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dfk/233867c089c5b71be150aa56003f3f7a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dfk/bab611be6bf763da73c6179c2150ffdf.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/defi-kingdoms/dfk-chain/explorer", "need_estimate_gas": false}, {"id": "tlos", "community_id": 40, "name": "Telos", "native_token": {"id": "tlos", "symbol": "TLOS", "logo": "https://static.debank.com/image/tlos_token/logo_url/tlos/7e45efcbc8d74f7fd6cda972938f4ade.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/telos/f9f7493def4c08ed222540bebd8ce87a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/tlos/deae1896415f9dac66e60cb47d8165d7.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.teloscan.io", "need_estimate_gas": false}, {"id": "nova", "community_id": 42170, "name": "Arbitrum Nova", "native_token": {"id": "nova", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/nova/06eb2b7add8ba443d5b219c04089c326.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/nova/b61c3a7723f39265c8b98967407e46db.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://nova.arbiscan.io", "need_estimate_gas": true}, {"id": "canto", "community_id": 7700, "name": "Canto", "native_token": {"id": "canto", "symbol": "CANTO", "logo": "https://static.debank.com/image/canto_token/logo_url/canto/47574ef619e057d2c6bbce1caba57fb6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/canto/47574ef619e057d2c6bbce1caba57fb6.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/canto/29bd07f96ac7805a1b14649f356d3eee.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://tuber.build", "need_estimate_gas": false}, {"id": "doge", "community_id": 2000, "name": "Dogechain", "native_token": {"id": "doge", "symbol": "DOGE", "logo": "https://static.debank.com/image/doge_token/logo_url/doge/2538141079688a7a43bc22c7b60fb45f.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/doge/2538141079688a7a43bc22c7b60fb45f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/doge/aa18ed341ae19e5e381dfac1062fee73.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.dogechain.dog", "need_estimate_gas": false}, {"id": "kava", "community_id": 2222, "name": "Kava", "native_token": {"id": "kava", "symbol": "KAVA", "logo": "https://static.debank.com/image/kava_token/logo_url/kava/f5b7c6ffbe4d99da363a78d98e748880.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kava/b26bf85a1a817e409f9a3902e996dc21.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kava/2e672dd7947e41a34d6cbc5995ad24b2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://kavascan.com", "need_estimate_gas": false}, {"id": "step", "community_id": 1234, "name": "Step", "native_token": {"id": "step", "symbol": "FITFI", "logo": "https://static.debank.com/image/step_token/logo_url/step/9d345f7e03f078657bb1ffd494442d67.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/step/db79600b8feafe17845617ca9c606dbe.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/step/e3250b0b574f55b1ec82434549e6f959.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://stepscan.io", "need_estimate_gas": false}, {"id": "mada", "community_id": 2001, "name": "Milkomeda C1", "native_token": {"id": "mada", "symbol": "milkADA", "logo": "https://static.debank.com/image/mada_token/logo_url/mada/cb356bfa1b48206c834e62113604567d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mada/cdc4b1112c2c5a2757cbda33f4476b7f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mada/185df9833e6215d48ccfd389be59b752.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer-mainnet-cardano-evm.c1.milkomeda.com", "need_estimate_gas": false}, {"id": "cfx", "community_id": 1030, "name": "Conflux", "native_token": {"id": "cfx", "symbol": "CFX", "logo": "https://static.debank.com/image/cfx_token/logo_url/cfx/f493f92ad1087e23cf8dadab9850abb5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cfx/eab0c7304c6820b48b2a8d0930459b82.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cfx/d45e5225fc8e97623c798599a2f8ce50.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://evm.confluxscan.io", "need_estimate_gas": false}, {"id": "brise", "community_id": 32520, "name": "Bitgert", "native_token": {"id": "brise", "symbol": "BRISE", "logo": "https://static.debank.com/image/brise_token/logo_url/brise/4f6c040cf49f4d8c4eabbad7cd2f4ae4.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/brise/4f6c040cf49f4d8c4eabbad7cd2f4ae4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/brise/34c2bec8f0eaaf44929ce604c645c729.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://brisescan.com", "need_estimate_gas": false}, {"id": "ckb", "community_id": 71402, "name": "Godwoken", "native_token": {"id": "ckb", "symbol": "CKB", "logo": "https://static.debank.com/image/ckb_token/logo_url/ckb/18d430b7e9b48750bad7e88513a8f2c5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ckb/e821893503104870d5e73f56dbd73746.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ckb/5b7e976954a29e0ff3fc67a03d702d44.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://gwscan.com", "need_estimate_gas": false}, {"id": "era", "community_id": 324, "name": "zkSync Era", "native_token": {"id": "era", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/era/2cfcd0c8436b05d811b03935f6c1d7da.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/era/ae1951502c3514d43374d7e6718bda9a.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://era.zksync.network", "need_estimate_gas": true}, {"id": "ron", "community_id": 2020, "name": "Ronin", "native_token": {"id": "ron", "symbol": "RON", "logo": "https://static.debank.com/image/ron_token/logo_url/0xe514d9deb7966c8be0ca922de8a064264ea6bcd4/f65d4fdc17d5533c59ebcd6eb1f47320.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ron/6e0f509804bc83bf042ef4d674c1c5ee.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ron/a7164cbb1bcf36c6b13abece4956e7ec.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.roninchain.com", "need_estimate_gas": false}, {"id": "pze", "community_id": 1101, "name": "Polygon zkEVM", "native_token": {"id": "pze", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/pze/a2276dce2d6a200c6148fb975f0eadd3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/pze/94d0cff539cb8f18c93f11a454f894b3.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://zkevm.polygonscan.com", "need_estimate_gas": false}, {"id": "core", "community_id": 1116, "name": "CORE", "native_token": {"id": "core", "symbol": "CORE", "logo": "https://static.debank.com/image/core_token/logo_url/core/1a7becfe112c0c9bfc25628cd70e94a6.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/core/ccc02f660e5dd410b23ca3250ae7c060.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/core/e52df8e06f7763e05e1d94cce21683a5.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.coredao.org", "need_estimate_gas": false}, {"id": "wemix", "community_id": 1111, "name": "WEMIX", "native_token": {"id": "wemix", "symbol": "WEMIX", "logo": "https://static.debank.com/image/wemix_token/logo_url/wemix/6431c197ec9f2a1d334a356b316fbb49.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/wemix/d1ba88d1df6cca0b0cb359c36a09c054.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/wemix/66b877a83349d6d158796f825f5b9633.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.wemix.com", "need_estimate_gas": false}, {"id": "etc", "community_id": 61, "name": "Ethereum Classic", "native_token": {"id": "etc", "symbol": "ETC", "logo": "https://static.debank.com/image/okt_token/logo_url/0x99970778e2715bbc9cf8fb83d10dcbc2d2d551a3/782943aff604f69c7889d90926348210.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/etc/7ccf90ee6822ab440fb603337da256fa.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/etc/81a154d78dce2782739ac9e0d8e05f6d.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://blockscout.com/etc/mainnet", "need_estimate_gas": false}, {"id": "pls", "community_id": 369, "name": "PulseChain", "native_token": {"id": "pls", "symbol": "PLS", "logo": "https://static.debank.com/image/pls_token/logo_url/pls/aa6be079fa9eb568e02150734ebb3db0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/pls/aa6be079fa9eb568e02150734ebb3db0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/pls/7c01fc668883d77e87c9334ec7d6b6ab.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.mypinata.cloud/ipfs/bafybeidn64pd2u525lmoipjl4nh3ooa2imd7huionjsdepdsphl5slfowy/#", "need_estimate_gas": false}, {"id": "flr", "community_id": 14, "name": "Flare", "native_token": {"id": "flr", "symbol": "FLR", "logo": "https://static.debank.com/image/flr_token/logo_url/flr/c7d8087092d5d7b80794630612afb32e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/flr/9ee03d5d7036ad9024e81d55596bb4dc.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/flr/ad866bf4323576b66651c9e2bbfd8a80.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://flare-explorer.flare.network", "need_estimate_gas": false}, {"id": "fsn", "community_id": 32659, "name": "Fusion", "native_token": {"id": "fsn", "symbol": "FSN", "logo": "https://static.debank.com/image/fsn_token/logo_url/fsn/047789979f0b5733602b29517753bdf3.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fsn/047789979f0b5733602b29517753bdf3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fsn/dfb374f7abf97b869ccf42bbf697feae.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://fsnscan.com", "need_estimate_gas": false}, {"id": "mtr", "community_id": 82, "name": "Meter", "native_token": {"id": "mtr", "symbol": "MTR", "logo": "https://static.debank.com/image/mtr_token/logo_url/mtr/920c6f4fdcb408703b435a97b963200b.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mtr/2dc6f079f52ca22778eb684e1ce650b3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mtr/0eafbdc8de9656a9de0f28efa2070450.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.meter.io", "need_estimate_gas": false}, {"id": "rose", "community_id": 42262, "name": "Oasis Emerald", "native_token": {"id": "rose", "symbol": "ROSE", "logo": "https://static.debank.com/image/rose_token/logo_url/rose/33ade55b0f3efa10e9eec002c6417257.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rose/33ade55b0f3efa10e9eec002c6417257.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rose/2e2351720f1772e3b3c7c2891f3d0192.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.emerald.oasis.dev", "need_estimate_gas": false}, {"id": "oas", "community_id": 248, "name": "Oasys", "native_token": {"id": "oas", "symbol": "OAS", "logo": "https://static.debank.com/image/oas_token/logo_url/oas/322b2cb0935af95b9cabd8a59b629566.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/oas/61dfecab1ba8a404354ce94b5a54d4b3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/oas/95888aa80c9eb4dbde714c69b3cc7425.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.oasys.games", "need_estimate_gas": false}, {"id": "zora", "community_id": 7777777, "name": "Zora", "native_token": {"id": "zora", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zora/de39f62c4489a2359d5e1198a8e02ef1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zora/25dfb04c552c35d3d8e30e5ba136b9e6.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.zora.energy", "need_estimate_gas": false}, {"id": "base", "community_id": 8453, "name": "Base", "native_token": {"id": "base", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/base/ccc1513e4f390542c4fb2f4b88ce9579.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/base/025de9d02848e257740c14bdd1f9330b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://www.basescan.org", "need_estimate_gas": false}, {"id": "linea", "community_id": 59144, "name": "Linea", "native_token": {"id": "linea", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/linea/32d4ff2cf92c766ace975559c232179c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/linea/adee1a93003ab543957692844fdaf9f2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://lineascan.build", "need_estimate_gas": false}, {"id": "mnt", "community_id": 5000, "name": "Mantle", "native_token": {"id": "mnt", "symbol": "MNT", "logo": "https://static.debank.com/image/eth_token/logo_url/0x3c3a81e81dc49a522a592e7622a7e711c06bf354/a443c78c33704d48f06e5686bb87f85e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mnt/0af11a52431d60ded59655c7ca7e1475.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mnt/f642653f191f4fd59cbf9efefc4c007d.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mantlescan.xyz", "need_estimate_gas": true}, {"id": "tenet", "community_id": 1559, "name": "Tenet", "native_token": {"id": "tenet", "symbol": "TENET", "logo": "https://static.debank.com/image/tenet_token/logo_url/tenet/2da9b626102a7de9625aaf753cfac321.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/tenet/803be22e467ee9a5abe00d69a9c3ea4f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/tenet/651386abf4fa22f64613faf8dc5187f1.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://tenetscan.io", "need_estimate_gas": false}, {"id": "lyx", "community_id": 42, "name": "LUKSO", "native_token": {"id": "lyx", "symbol": "LYX", "logo": "https://static.debank.com/image/eth_token/logo_url/0xa8b919680258d369114910511cc87595aec0be6d/78a30c7b781e3889548d5920c09133dc.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/lyx/dbe6eef57e66817e61297d9b188248ed.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/lyx/83230c4279ab2813907de034d87ab319.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.execution.mainnet.lukso.network", "need_estimate_gas": false}, {"id": "manta", "community_id": 169, "name": "Manta Pacific", "native_token": {"id": "manta", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/manta/0e25a60b96a29d6a5b9e524be7565845.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/manta/ead2552c140ffd5482e7222964bac558.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://pacific-explorer.manta.network", "need_estimate_gas": true}, {"id": "scrl", "community_id": 534352, "name": "Scroll", "native_token": {"id": "scrl", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/scrl/1fa5c7e0bfd353ed0a97c1476c9c42d2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/scrl/dd0d05b6fba614d57b55f0724acd723c.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scrollscan.com", "need_estimate_gas": false}, {"id": "opbnb", "community_id": 204, "name": "opBNB", "native_token": {"id": "opbnb", "symbol": "BNB", "logo": "https://static.debank.com/image/coin/logo_url/bnb/9784283a36f23a58982fc964574ea530.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/opbnb/07e2e686e363a842d0982493638e1285.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/opbnb/8e44e643d6e2fd335a72b4cda6368e1a.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://mainnet.opbnbscan.com", "need_estimate_gas": false}, {"id": "loot", "community_id": 5151706, "name": "Loot", "native_token": {"id": "loot", "symbol": "AGLD", "logo": "https://static.debank.com/image/loot_token/logo_url/loot/a6c0dc128d515e2d32526075decae9ec.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/loot/0f098333a1a4f474115b05862e680573.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/loot/af8f162614f388e896872f628f3e3e6e.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.lootchain.com", "need_estimate_gas": false}, {"id": "shib", "community_id": 109, "name": "Shibarium", "native_token": {"id": "shib", "symbol": "BONE", "logo": "https://static.debank.com/image/shib_token/logo_url/shib/e49e9a98f5fb1fb04ad96bb536457df9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/shib/4ec79ed9ee4988dfdfc41e1634a447be.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/shib/574d888cbdce3a08ea8a5f636fc2ae3e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://shibariumscan.io", "need_estimate_gas": false}, {"id": "fx", "community_id": 530, "name": "Function X", "native_token": {"id": "fx", "symbol": "FX", "logo": "https://static.debank.com/image/fx_token/logo_url/fx/6fee82420b2394e0b68d7d7e692a0a01.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fx/6fee82420b2394e0b68d7d7e692a0a01.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fx/528e10d16f64db1798bca33092526d96.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://starscan.io/evm", "need_estimate_gas": false}, {"id": "mode", "community_id": 34443, "name": "Mode", "native_token": {"id": "mode", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mode/466e6e12f4fd827f8f497cceb0601a5e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mode/f7033404c6d09fafcbe53cbf806a585f.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.mode.network", "need_estimate_gas": false}, {"id": "beam", "community_id": 4337, "name": "Beam", "native_token": {"id": "beam", "symbol": "BEAM", "logo": "https://static.debank.com/image/beam_token/logo_url/beam/90a1e9f46664d070752deeb65878a3bd.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/beam/90a1e9f46664d070752deeb65878a3bd.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/beam/f54a6974e60b63c5f328721ad0281f1b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/beam", "need_estimate_gas": false}, {"id": "fon", "community_id": 201022, "name": "FON Chain", "native_token": {"id": "fon", "symbol": "FON", "logo": "https://static.debank.com/image/fon_token/logo_url/fon/369618f4d45053fa4439943c9c2d387d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/fon/369618f4d45053fa4439943c9c2d387d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/fon/6c5ee096ec2173f9250d58b4384343aa.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://fonscan.io", "need_estimate_gas": false}, {"id": "zkfair", "community_id": 42766, "name": "ZKFair", "native_token": {"id": "zkfair", "symbol": "USDC", "logo": "https://static.debank.com/image/zkfair_token/logo_url/zkfair/35ab0987153a8355a454223aae371ac7.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zkfair/c66f35d57c6146cdff82dfeb316ba801.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zkfair/4133904f2769ebcffa48177c0b7831a6.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.zkfair.io", "need_estimate_gas": false}, {"id": "alot", "community_id": 432204, "name": "Dexalot", "native_token": {"id": "alot", "symbol": "ALOT", "logo": "https://static.debank.com/image/alot_token/logo_url/alot/a03e5e8bc56a8bcd5f5c7b830e8b5877.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/alot/0ed4884da27d022dbd5ed5bc919ee248.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/alot/8ed0cbf9842daef43fbb32558d4f4309.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://subnets.avax.network/dexalot", "need_estimate_gas": false}, {"id": "bfc", "community_id": 3068, "name": "Bifrost", "native_token": {"id": "bfc", "symbol": "BFC", "logo": "https://static.debank.com/image/bfc_token/logo_url/bfc/f0c01b58f084660f8c8ff43f5c85301c.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bfc/7c10f5191b16d0cc068cb6eff32b6347.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bfc/728682dd1707271a7b268fac3594e94e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.mainnet.bifrostnetwork.com", "need_estimate_gas": false}, {"id": "xai", "community_id": 660279, "name": "Xai", "native_token": {"id": "xai", "symbol": "XAI", "logo": "https://static.debank.com/image/xai_token/logo_url/xai/022ab00135c182f6e67e583ecda93863.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xai/b02622ce65251bdcb31aa6621a10a096.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xai/9eb29c6f965e70ed84e50f8e9e577b1e.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.xai-chain.net", "need_estimate_gas": false}, {"id": "zeta", "community_id": 7000, "name": "ZetaChain", "native_token": {"id": "zeta", "symbol": "ZETA", "logo": "https://static.debank.com/image/zeta_token/logo_url/zeta/d0e1b5e519d99c452a30e83a1263d1d0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zeta/d0e1b5e519d99c452a30e83a1263d1d0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zeta/fb4ab4eb798244887bfd65455bd42d6b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://zetachain.blockscout.com", "need_estimate_gas": false}, {"id": "rari", "community_id": 1380012617, "name": "RARI", "native_token": {"id": "rari", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rari/67fc6abba5cfc6bb3a57bb6afcf5afee.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rari/73456a9386ce19d00584fec493206005.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mainnet.explorer.rarichain.org", "need_estimate_gas": false}, {"id": "dym", "community_id": 1100, "name": "Dymension", "native_token": {"id": "dym", "symbol": "DYM", "logo": "https://static.debank.com/image/dym_token/logo_url/dym/ab62b0f446408c84a2e17d9178a4e8e9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dym/ab62b0f446408c84a2e17d9178a4e8e9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dym/0a9e4481802f4c0aae6a5a97605809d8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://dym.fyi", "need_estimate_gas": false}, {"id": "merlin", "community_id": 4200, "name": "Merlin", "native_token": {"id": "merlin", "symbol": "BTC", "logo": "https://static.debank.com/image/merlin_token/logo_url/merlin/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/merlin/458e4686dfb909ba871bd96fe45417a8.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/merlin/72e28432e865c544c1045017892187bc.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.merlinchain.io", "need_estimate_gas": false}, {"id": "blast", "community_id": 81457, "name": "Blast", "native_token": {"id": "blast", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/blast/15132294afd38ce980639a381ee30149.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/blast/828eb570083948e156a34ab8588e26b3.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://blastscan.io", "need_estimate_gas": false}, {"id": "smr", "community_id": 148, "name": "Shimmer EVM", "native_token": {"id": "smr", "symbol": "SMR", "logo": "https://static.debank.com/image/smr_token/logo_url/smr/fbf679837a276530dd9b253dfa85c1f5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/smr/d22267bfdee42c88a15e605b30861a30.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/smr/2e536df7a52d2f5948f8fd0b9f5d0cb4.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.evm.shimmer.network", "need_estimate_gas": false}, {"id": "iota", "community_id": 8822, "name": "IOTA EVM", "native_token": {"id": "iota", "symbol": "IOTA", "logo": "https://static.debank.com/image/iota_token/logo_url/iota/b2fbb37acc6a3be27231fbc49aed481a.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/iota/b2fbb37acc6a3be27231fbc49aed481a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/iota/acedda9f542b72c0109c8c20caf526d9.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.evm.iota.org", "need_estimate_gas": false}, {"id": "platon", "community_id": 210425, "name": "PlatON", "native_token": {"id": "platon", "symbol": "LAT", "logo": "https://static.debank.com/image/platon_token/logo_url/platon/b5df1214981b0888e48fbb18d302c6ba.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/platon/b5df1214981b0888e48fbb18d302c6ba.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/platon/e5104b97d20a18df9f28b0673ebd7440.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan.platon.network", "need_estimate_gas": false}, {"id": "rollux", "community_id": 570, "name": "Rollux", "native_token": {"id": "rollux", "symbol": "SYS", "logo": "https://static.debank.com/image/rollux_token/logo_url/rollux/a57476d6cd8e27ee6d7eae318c3c7eee.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/rollux/b38f1a5be41a8e87766436ad9d9919a9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/rollux/25c6383b3ae8b989c1e234c6734ba2ae.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.rollux.com", "need_estimate_gas": false}, {"id": "sx", "community_id": 416, "name": "SX", "native_token": {"id": "sx", "symbol": "SX", "logo": "https://static.debank.com/image/sx_token/logo_url/sx/1cd91dbcb82de12b4587607bc4924bc9.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sx/1cd91dbcb82de12b4587607bc4924bc9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sx/0bddf854e56d6e7629b2f8ca1be707b0.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://explorer.sx.technology", "need_estimate_gas": false}, {"id": "eon", "community_id": 7332, "name": "Horizen EON", "native_token": {"id": "eon", "symbol": "ZEN", "logo": "https://static.debank.com/image/eon_token/logo_url/eon/bf6e7dbdd2facde7ed39c9f881537775.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/eon/36deb31f3e0a7c74762971d79245f82e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/eon/f071cd6b0e2c8a9ea6a3e213651ed7f2.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://eon-explorer.horizenlabs.io", "need_estimate_gas": false}, {"id": "ulx", "community_id": 1231, "name": "Ultron", "native_token": {"id": "ulx", "symbol": "ULX", "logo": "https://static.debank.com/image/ulx_token/logo_url/ulx/371eb14527f3a80ed382f67278f43c7e.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ulx/371eb14527f3a80ed382f67278f43c7e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ulx/7d6d20d13ec0a5c7d286aaea404f2d91.png", "eip_1559": false, "is_disabled": true, "explorer_host": "https://ulxscan.com", "need_estimate_gas": false}, {"id": "map", "community_id": 22776, "name": "MAP Protocol", "native_token": {"id": "map", "symbol": "MAPO", "logo": "https://static.debank.com/image/map_token/logo_url/map/3efde740a6e9d32661757aad8ae2b3a2.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/map/3efde740a6e9d32661757aad8ae2b3a2.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/map/18ec31888ba251dd6d47e469b636d5fe.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://www.maposcan.io", "need_estimate_gas": false}, {"id": "karak", "community_id": 2410, "name": "Karak", "native_token": {"id": "karak", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/karak/a9e47f00f6eeb2c9cc8f9551cff5fe68.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/karak/5d5ca3507b4a1d64a85406f7382412d7.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.karak.network", "need_estimate_gas": false}, {"id": "aze", "community_id": 3776, "name": "Astar zkEVM", "native_token": {"id": "aze", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/aze/6def6ac081a37e94ed0106da2cefeaf4.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/aze/490d08032b0ee878dc0251c35c26383b.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://astar-zkevm.explorer.startale.com", "need_estimate_gas": false}, {"id": "frax", "community_id": 252, "name": "Fraxtal", "native_token": {"id": "frax", "symbol": "frxETH", "logo": "https://static.debank.com/image/frax_token/logo_url/frax/4313f25f6c5196e8fce2c80fa34c73d0.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/frax/2e210d888690ad0c424355cc8471d48d.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/frax/7ae2bc54b406cd3c378b0bd28df2b3ff.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://fraxscan.com", "need_estimate_gas": false}, {"id": "lumio", "community_id": 8866, "name": "SuperLumio", "native_token": {"id": "lumio", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/lumio/be6cd376260e0e214d8486f2300a4fb9.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/lumio/7960121f0a9235ff30bc65c57f0fe3a8.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://explorer.lumio.io", "need_estimate_gas": false}, {"id": "apex", "community_id": 70700, "name": "Proof of Play Apex", "native_token": {"id": "apex", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/apex/f60665106aba5b08563e26b4ba4baf83.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/apex/e1b94232b7eeedb147c489761118411a.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.apex.proofofplay.com", "need_estimate_gas": false}, {"id": "savm", "community_id": 3109, "name": "SatoshiVM Alpha", "native_token": {"id": "savm", "symbol": "BTC", "logo": "https://static.debank.com/image/savm_token/logo_url/savm/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/savm/8f92638826f2c97063c7de7726160655.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/savm/3315cc8579422c06720d9521e3bb0f90.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://svmscan.io", "need_estimate_gas": false}, {"id": "kroma", "community_id": 255, "name": "Kroma", "native_token": {"id": "kroma", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/kroma/7c88e9e0e2488172fc1fcb9da3096a70.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/kroma/a7c2e13d0aaaf866a4adf0fc7f0aa9df.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://kromascan.com", "need_estimate_gas": false}, {"id": "ela", "community_id": 20, "name": "Elastos", "native_token": {"id": "ela", "symbol": "ELA", "logo": "https://static.debank.com/image/ela_token/logo_url/ela/42a9831ba9df693f00437527ec851099.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ela/42a9831ba9df693f00437527ec851099.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ela/fc429a7e514b50a08ff5627575a47f6f.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://esc.elastos.io", "need_estimate_gas": false}, {"id": "bevm", "community_id": 11501, "name": "BEVM", "native_token": {"id": "bevm", "symbol": "BTC", "logo": "https://static.debank.com/image/bevm_token/logo_url/bevm/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bevm/aafd9b13a2187db02661b85c72fb3cc3.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bevm/0030aceb597e1c79f55c53676171d636.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://scan-mainnet.bevm.io", "need_estimate_gas": false}, {"id": "degen", "community_id": 666666666, "name": "Degen", "native_token": {"id": "degen", "symbol": "DEGEN", "logo": "https://static.debank.com/image/degen_token/logo_url/degen/29dd6d5df71347d2ad3b77c194915844.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/degen/29dd6d5df71347d2ad3b77c194915844.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/degen/c046b42727ff864d1865a102442affb8.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.degen.tips", "need_estimate_gas": false}, {"id": "zklink", "community_id": 810180, "name": "zkLink Nova", "native_token": {"id": "zklink", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/zklink/b3a4000979cc4f3701135a5f565ffeb0.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/zklink/585235bd940f119317757760798237ae.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.zklink.io", "need_estimate_gas": false}, {"id": "xlayer", "community_id": 196, "name": "X Layer", "native_token": {"id": "xlayer", "symbol": "OKB", "logo": "https://static.debank.com/image/xlayer_token/logo_url/xlayer/02e2fec5f8b2f5783ceb38d683557de3.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/xlayer/282a62903a4c74a964b704a161d1ba39.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/xlayer/bb5d85b54ec4634bd8b6703b27e254ba.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://www.oklink.com/xlayer", "need_estimate_gas": false}, {"id": "molten", "community_id": 360, "name": "Molten", "native_token": {"id": "molten", "symbol": "MOLTEN", "logo": "https://static.debank.com/image/molten_token/logo_url/molten/9cb5d5dc7b200ceaa577e0431a731203.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/molten/9cb5d5dc7b200ceaa577e0431a731203.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/molten/56b94881ef4e1e8ea6765dc5442bf17a.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://molten.calderaexplorer.xyz", "need_estimate_gas": false}, {"id": "btr", "community_id": 200901, "name": "Bitlayer", "native_token": {"id": "btr", "symbol": "BTC", "logo": "https://static.debank.com/image/btr_token/logo_url/btr/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/btr/78ff16cf14dad73c168a70f7c971e401.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/btr/33a233f67cb62320dd49c7a3a05c1d4b.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://www.btrscan.com", "need_estimate_gas": false}, {"id": "b2", "community_id": 223, "name": "B\u00b2", "native_token": {"id": "b2", "symbol": "BTC", "logo": "https://static.debank.com/image/b2_token/logo_url/b2/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/b2/6ca6c8bc33af59c5b9273a2b7efbd236.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/b2/3df748afc47cc1c76107981bc312a190.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.bsquared.network", "need_estimate_gas": false}, {"id": "bob", "community_id": 60808, "name": "BOB", "native_token": {"id": "bob", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bob/4e0029be99877775664327213a8da60e.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bob/7f61e1ed6fae04833ee21d83c9998d22.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.gobob.xyz", "need_estimate_gas": false}, {"id": "reya", "community_id": 1729, "name": "Reya", "native_token": {"id": "reya", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/reya/20d71aad4279c33229297da1f00d8ae1.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/reya/7643e04c35af62a7572aecbdc4565040.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.reya.network", "need_estimate_gas": true}, {"id": "bb", "community_id": 6001, "name": "BounceBit", "native_token": {"id": "bb", "symbol": "BB", "logo": "https://static.debank.com/image/bb_token/logo_url/bb/da74a4980f24d870cb43ccd763e0c966.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/bb/da74a4980f24d870cb43ccd763e0c966.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/bb/31ba7b64206471376f34f2b4c5c097f8.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://bbscan.io", "need_estimate_gas": false}, {"id": "ailayer", "community_id": 2649, "name": "AILayer", "native_token": {"id": "ailayer", "symbol": "BTC", "logo": "https://static.debank.com/image/ailayer_token/logo_url/ailayer/fe230e468272b84aba78d08bb4140456.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/ailayer/54ed2cefa4246acecb0b0ba6ddaf5e8a.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/ailayer/cdf4f9fb0b1c4d14da133ce76ebf0b76.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://mainnet-explorer.anvm.io", "need_estimate_gas": false}, {"id": "sanko", "community_id": 1996, "name": "Sanko", "native_token": {"id": "sanko", "symbol": "DMT", "logo": "https://static.debank.com/image/sanko_token/logo_url/sanko/a3ab5461c7afa714c877cf57fbb033ad.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sanko/a3ab5461c7afa714c877cf57fbb033ad.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sanko/596ade63d11b1a8eafcffc9ecac32632.png", "eip_1559": true, "is_disabled": true, "explorer_host": "https://explorer.sanko.xyz", "need_estimate_gas": false}, {"id": "taiko", "community_id": 167000, "name": "Taiko", "native_token": {"id": "taiko", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/taiko/7723fbdb38ef181cd07a8b8691671e6b.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/taiko/16d831636a2aa32e5b58f264a61311e0.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://taikoscan.io", "need_estimate_gas": false}, {"id": "cyber", "community_id": 7560, "name": "Cyber", "native_token": {"id": "cyber", "symbol": "ETH", "logo": "https://static.debank.com/image/coin/logo_url/eth/6443cdccced33e204d90cb723c632917.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/cyber/3a3c0c5da5fa8876c8c338afae0db478.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/cyber/239566559dc0c5fd5f5e2d76b85c6490.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://cyberscan.co", "need_estimate_gas": false}, {"id": "sei", "community_id": 1329, "name": "Sei", "native_token": {"id": "sei", "symbol": "SEI", "logo": "https://static.debank.com/image/sei_token/logo_url/sei/34ddf58f678be2db5b2636b59c9828b5.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/sei/34ddf58f678be2db5b2636b59c9828b5.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/sei/632af17fefaa435817bd6bc3c549280d.png", "eip_1559": false, "is_disabled": false, "explorer_host": "https://seitrace.com", "need_estimate_gas": false}, {"id": "strax", "community_id": 105105, "name": "Stratis", "native_token": {"id": "strax", "symbol": "STRAX", "logo": "https://static.debank.com/image/strax_token/logo_url/strax/62929cc22496a34349782a0c685377dd.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/strax/7675d16c026442847faf6bbe7708bf9c.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/strax/01db3348ae950906fec6ec74966b59f9.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://explorer.stratisevm.com", "need_estimate_gas": false}, {"id": "mint", "community_id": 185, "name": "Mint", "native_token": {"id": "mint", "symbol": "ETH", "logo": "https://static.debank.com/image/mint_token/logo_url/mint/48bfb74adddd170e936578aec422836d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/mint/86404f93cd4e51eafcc2e244d417c03f.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/mint/1bc50cbf5ec022d40efe48c4ec68c25d.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://mintscan.org", "need_estimate_gas": false}, {"id": "dbk", "community_id": 20240603, "name": "DBK Chain", "native_token": {"id": "dbk", "symbol": "ETH", "logo": "https://static.debank.com/image/dbk_token/logo_url/dbk/48bfb74adddd170e936578aec422836d.png", "decimals": 18}, "logo_url": "https://static.debank.com/image/chain/logo_url/dbk/1255de5a9316fed901d14c069ac62f39.png", "white_logo_url": "https://static.debank.com/image/chain/white_logo_url/dbk/f3b17c6a54b98b86a158061706277f06.png", "eip_1559": true, "is_disabled": false, "explorer_host": "https://scan.dbkchain.io", "need_estimate_gas": false}] \ No newline at end of file diff --git a/src/ui/models/bridge.ts b/src/ui/models/bridge.ts index 2b6105059e2..5e5a0a610b3 100644 --- a/src/ui/models/bridge.ts +++ b/src/ui/models/bridge.ts @@ -22,6 +22,7 @@ export const bridge = createModel()({ unlimitedAllowance: false, sortIncludeGasFee: true, $$initialSelectedChain: null, + firstOpen: true, } as Partial & { $$initialSelectedChain: CHAINS_ENUM | null; aggregatorsList: BridgeAggregator[]; @@ -145,5 +146,12 @@ export const bridge = createModel()({ }); } }, + + async setBridgeSettingFirstOpen(bool: boolean, store) { + await store.app.wallet.setBridgeSettingFirstOpen(bool); + this.setField({ + firstOpen: bool, + }); + }, }), }); diff --git a/src/ui/views/Bridge/Component/AggregatorsSettings.tsx b/src/ui/views/Bridge/Component/AggregatorsSettings.tsx index a6df7295d0b..aeae5f20c47 100644 --- a/src/ui/views/Bridge/Component/AggregatorsSettings.tsx +++ b/src/ui/views/Bridge/Component/AggregatorsSettings.tsx @@ -29,7 +29,9 @@ export const AggregatorsSettings = ({ const selectedAggregators = useRabbySelector( (s) => s.bridge.selectedAggregators || [] ); - + const aggregatorsSettingFirstOpen = useRabbySelector( + (s) => s.bridge.firstOpen ?? true + ); const [willChangedAggregatorId, setSillChangedAggregatorId] = useState(''); const [open, setOpen] = useState(false); @@ -50,11 +52,18 @@ export const AggregatorsSettings = ({ const availableAggregators = aggregatorsList.some((item) => { return selectedAggregators?.includes(item.id); }); - if (!availableAggregators) { + if (!availableAggregators && aggregatorsSettingFirstOpen) { setVisible(true); + dispatch.bridge.setBridgeSettingFirstOpen(false); } + dispatch.bridge.setBridgeSettingFirstOpen(false); } - }, [aggregatorsList, aggregatorsListInit, selectedAggregators]); + }, [ + aggregatorsList, + aggregatorsListInit, + selectedAggregators, + aggregatorsSettingFirstOpen, + ]); return ( } - height={462} + height={412} onClose={onClose} bodyStyle={{ paddingTop: 16, }} - closable isSupportDarkMode isNew > diff --git a/src/ui/views/Bridge/Component/BridgeHistory.tsx b/src/ui/views/Bridge/Component/BridgeHistory.tsx index 0e1bb8b2c51..7214df4a8de 100644 --- a/src/ui/views/Bridge/Component/BridgeHistory.tsx +++ b/src/ui/views/Bridge/Component/BridgeHistory.tsx @@ -142,7 +142,9 @@ const Transaction = forwardRef( {data.aggregator.name} - {t('page.bridge.via-bridge', { bridge: data.bridge.name })} + {t('page.bridge.via-bridge', { + bridge: data?.bridge?.name || '', + })}
diff --git a/src/ui/views/ManageAddress/index.tsx b/src/ui/views/ManageAddress/index.tsx index 679d0602665..47a849aa934 100644 --- a/src/ui/views/ManageAddress/index.tsx +++ b/src/ui/views/ManageAddress/index.tsx @@ -269,7 +269,10 @@ const ManageAddress = () => { {TypedWalletObj?.[activeIndex] ? (
- {TypedWalletObj?.[activeIndex]?.name} + {TypedWalletObj?.[activeIndex]?.type === + KEYRING_TYPE.WatchAddressKeyring + ? 'Contact Address' + : TypedWalletObj?.[activeIndex]?.name}
{isSeedPhrase && ( From 5a484ac9fa4955a0bb12b33784ef03c5d15de158 Mon Sep 17 00:00:00 2001 From: DMY <147dmy@gmail.com> Date: Fri, 12 Jul 2024 12:33:32 +0800 Subject: [PATCH 14/19] update --- src/constant/bridge.ts | 96 ------------------------------------------ 1 file changed, 96 deletions(-) diff --git a/src/constant/bridge.ts b/src/constant/bridge.ts index b9c27d5f608..36847e94aba 100644 --- a/src/constant/bridge.ts +++ b/src/constant/bridge.ts @@ -40,12 +40,6 @@ export const DEFAULT_BRIDGE_AGGREGATOR = [ logo_url: 'https://static.debank.com/image/bridge/logo_url/e514b104d82e3a0cb5537681d6845c6b/e514b104d82e3a0cb5537681d6845c6b.png', }, - { - id: 'stargate', - name: 'Stargate', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/55886c6280173254776780fd8340cca7/55886c6280173254776780fd8340cca7.png', - }, { id: 'mantle-native-bridge', name: 'Mantle Native', @@ -70,30 +64,12 @@ export const DEFAULT_BRIDGE_AGGREGATOR = [ logo_url: 'https://static.debank.com/image/bridge/logo_url/67237107afb53d176754926ec81e5a1c/67237107afb53d176754926ec81e5a1c.png', }, - { - id: 'celer', - name: 'Celer', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/2ecec6d18db661ccd9782306349b50f8/2ecec6d18db661ccd9782306349b50f8.png', - }, - { - id: 'symbiosis', - name: 'Symbiosis', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/ff48e49399b1f6d677fa6f6cb4b45870/ff48e49399b1f6d677fa6f6cb4b45870.png', - }, { id: 'across', name: 'Across', logo_url: 'https://static.debank.com/image/bridge/logo_url/82cb74da444862e7262ef3b6143cbcb4/82cb74da444862e7262ef3b6143cbcb4.png', }, - { - id: 'synapse', - name: 'Synapse', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/5c7cf84239d010bef03c11c1a2f8fad9/5c7cf84239d010bef03c11c1a2f8fad9.png', - }, { id: 'gnosis-native-bridge', name: 'Gnosis Native', @@ -106,12 +82,6 @@ export const DEFAULT_BRIDGE_AGGREGATOR = [ logo_url: 'https://static.debank.com/image/bridge/logo_url/c23e9bda45a45b043d7238b533439018/c23e9bda45a45b043d7238b533439018.png', }, - { - id: 'hop', - name: 'Hop', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/9ac487c0a58b2205c42533125e374f24/9ac487c0a58b2205c42533125e374f24.png', - }, { id: 'optimism-bridge', name: 'Optimism', @@ -142,12 +112,6 @@ export const DEFAULT_BRIDGE_AGGREGATOR = [ logo_url: 'https://static.debank.com/image/bridge/logo_url/ead1d90ef86fec7f28dfbd0ca203f48b/ead1d90ef86fec7f28dfbd0ca203f48b.png', }, - { - id: 'connext', - name: 'Connext', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/dc176d313023c71d4687c4620ebb5d4d/dc176d313023c71d4687c4620ebb5d4d.png', - }, { id: 'zksync-native', name: 'ZkSync', @@ -168,60 +132,18 @@ export const DEFAULT_BRIDGE_AGGREGATOR = [ logo_url: 'https://static.debank.com/image/bridge/logo_url/4f08b730ca9c62f9bfd5fcb737680dfb/4f08b730ca9c62f9bfd5fcb737680dfb.png', }, - { - id: 'allbridge', - name: 'Allbridge', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/f2706d1badbb5922b75fbb786fda73ec/f2706d1badbb5922b75fbb786fda73ec.png', - }, { id: 'gnosis', name: 'Gnosis Bridge', logo_url: 'https://static.debank.com/image/bridge/logo_url/796e87d181abdf433aca922613384ad8/796e87d181abdf433aca922613384ad8.png', }, - { - id: 'amarok', - name: 'Connext', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/332c3a7539914056fa5edbb4c45f4486/332c3a7539914056fa5edbb4c45f4486.png', - }, - { - id: 'cbridge', - name: 'Celer cBridge', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/1a7e9da4938605a86be360e4b0cf03f5/1a7e9da4938605a86be360e4b0cf03f5.png', - }, - { - id: 'symbiosis', - name: 'Symbiosis', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/05d4717d6d78677662663afe632f79b0/05d4717d6d78677662663afe632f79b0.png', - }, - { - id: 'stargate', - name: 'Stargate', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/15fe4b0cb6e3c3191d039006bef6f8b3/15fe4b0cb6e3c3191d039006bef6f8b3.png', - }, { id: 'arbitrum', name: 'Arbitrum Bridge', logo_url: 'https://static.debank.com/image/bridge/logo_url/325af805bf8f830f3bacd15ba97d0652/325af805bf8f830f3bacd15ba97d0652.png', }, - { - id: 'stargateV2', - name: 'StargateV2', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/15fe4b0cb6e3c3191d039006bef6f8b3/15fe4b0cb6e3c3191d039006bef6f8b3.png', - }, - { - id: 'celerim', - name: 'CelerIM', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/1a7e9da4938605a86be360e4b0cf03f5/1a7e9da4938605a86be360e4b0cf03f5.png', - }, { id: 'celercircle', name: 'Circle CCTP', @@ -240,24 +162,6 @@ export const DEFAULT_BRIDGE_AGGREGATOR = [ logo_url: 'https://static.debank.com/image/bridge/logo_url/7f4c137cd1fd03dd8ea99801b1214ae9/7f4c137cd1fd03dd8ea99801b1214ae9.png', }, - { - id: 'thorswap', - name: 'Thorswap', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/3f795b4d5aa4251fb51e04d4ad3a544a/3f795b4d5aa4251fb51e04d4ad3a544a.png', - }, - { - id: 'hop', - name: 'Hop', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/da25bb040440c40eb64dd55dac28d0f0/da25bb040440c40eb64dd55dac28d0f0.png', - }, - { - id: 'squid', - name: 'Squid', - logo_url: - 'https://static.debank.com/image/bridge/logo_url/c9d8e490e3e157c3623f912e0b12d0da/c9d8e490e3e157c3623f912e0b12d0da.png', - }, { id: 'across', name: 'Across', From 2e61d8246a732596cd3da1ac29006ebd517d526d Mon Sep 17 00:00:00 2001 From: DMY <147dmy@gmail.com> Date: Fri, 12 Jul 2024 16:14:37 +0800 Subject: [PATCH 15/19] update --- .../views/Bridge/Component/BridgeContent.tsx | 19 ++++++++++++++++++ src/ui/views/Bridge/hooks/token.tsx | 20 +++++++++---------- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/src/ui/views/Bridge/Component/BridgeContent.tsx b/src/ui/views/Bridge/Component/BridgeContent.tsx index e5191fa1632..4da29aac9ba 100644 --- a/src/ui/views/Bridge/Component/BridgeContent.tsx +++ b/src/ui/views/Bridge/Component/BridgeContent.tsx @@ -35,6 +35,7 @@ import { ReactComponent as RcArrowDown } from '@/ui/assets/bridge/down.svg'; import { ReactComponent as RcIconQuestion } from '@/ui/assets/bridge/question-cc.svg'; import { TooltipWithMagnetArrow } from '@/ui/component/Tooltip/TooltipWithMagnetArrow'; import pRetry from 'p-retry'; +import stats from '@/stats'; const tipsClassName = clsx('text-r-neutral-body text-12 mb-8 pt-16'); @@ -181,6 +182,15 @@ export const BridgeContent = () => { }), { retries: 1 } ); + stats.report('bridgeQuoteResult', { + aggregatorIds: selectedBridgeQuote.aggregator.id, + bridgeId: selectedBridgeQuote.bridge_id, + fromChainId: payToken.chain, + fromTokenId: payToken.id, + toTokenId: receiveToken.id, + toChainId: receiveToken.chain, + status: tx ? 'success' : 'fail', + }); wallet.bridgeToken( { to: tx.to, @@ -219,6 +229,15 @@ export const BridgeContent = () => { window.close(); } catch (error) { message.error(error?.message || String(error)); + stats.report('bridgeQuoteResult', { + aggregatorIds: selectedBridgeQuote.aggregator.id, + bridgeId: selectedBridgeQuote.bridge_id, + fromChainId: payToken.chain, + fromTokenId: payToken.id, + toTokenId: receiveToken.id, + toChainId: receiveToken.chain, + status: 'fail', + }); console.error(error); } finally { setFetchingBridgeQuote(false); diff --git a/src/ui/views/Bridge/hooks/token.tsx b/src/ui/views/Bridge/hooks/token.tsx index 97f5450a198..da9c0d3ca92 100644 --- a/src/ui/views/Bridge/hooks/token.tsx +++ b/src/ui/views/Bridge/hooks/token.tsx @@ -256,11 +256,11 @@ export const useTokenPair = (userAddress: string) => { .catch((e) => { if (currentFetchId === fetchIdRef.current) { stats.report('bridgeQuoteResult', { - aggregator_ids: aggregatorsList.map((e) => e.id).join(','), - from_chain_id: payToken.chain, - from_token_id: payToken.id, - to_token_id: receiveToken.id, - to_chain_id: receiveToken.chain, + aggregatorIds: aggregatorsList.map((e) => e.id).join(','), + fromChainId: payToken.chain, + fromTokenId: payToken.id, + toTokenId: receiveToken.id, + toChainId: receiveToken.chain, status: 'fail', }); } @@ -277,11 +277,11 @@ export const useTokenPair = (userAddress: string) => { if (currentFetchId === fetchIdRef.current) { stats.report('bridgeQuoteResult', { - aggregator_ids: aggregatorsList.map((e) => e.id).join(','), - from_chain_id: payToken.chain, - from_token_id: payToken.id, - to_token_id: receiveToken.id, - to_chain_id: receiveToken.chain, + aggregatorIds: aggregatorsList.map((e) => e.id).join(','), + fromChainId: payToken.chain, + fromTokenId: payToken.id, + toTokenId: receiveToken.id, + toChainId: receiveToken.chain, status: data ? 'success' : 'fail', }); } From 52551178314ca9d402f4274e2bdcfa212cb3c782 Mon Sep 17 00:00:00 2001 From: DMY <147dmy@gmail.com> Date: Fri, 12 Jul 2024 17:33:20 +0800 Subject: [PATCH 16/19] update --- src/constant/bridge.ts | 66 +++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 39 deletions(-) diff --git a/src/constant/bridge.ts b/src/constant/bridge.ts index 36847e94aba..f100017ab26 100644 --- a/src/constant/bridge.ts +++ b/src/constant/bridge.ts @@ -1,30 +1,18 @@ export const DEFAULT_BRIDGE_SUPPORTED_CHAIN = [ - 'eth', - 'mobm', - 'base', - 'movr', - 'linea', + 'arb', 'matic', + 'era', + 'base', 'op', - 'mode', + 'linea', + 'xdai', + 'eth', 'mnt', - 'rsk', - 'boba', - 'arb', - 'blast', + 'mode', 'bsc', - 'metis', - 'era', - 'pze', 'scrl', - 'aurora', - 'xdai', 'avax', - 'ftm', - 'celo', 'zora', - 'fuse', - 'frax', ]; export const DEFAULT_BRIDGE_AGGREGATOR = [ @@ -38,73 +26,73 @@ export const DEFAULT_BRIDGE_AGGREGATOR = [ id: 'base-bridge', name: 'Base', logo_url: - 'https://static.debank.com/image/bridge/logo_url/e514b104d82e3a0cb5537681d6845c6b/e514b104d82e3a0cb5537681d6845c6b.png', + 'https://static.debank.com/image/bridge/logo_url/cc84a9e0457f1049b1d15dadfd2a7ee9/cc84a9e0457f1049b1d15dadfd2a7ee9.png', }, { id: 'mantle-native-bridge', name: 'Mantle Native', logo_url: - 'https://static.debank.com/image/bridge/logo_url/d7683a5b68c00fd90828709dc7d08fdb/d7683a5b68c00fd90828709dc7d08fdb.png', + 'https://static.debank.com/image/bridge/logo_url/46f1a95cb0823639f037383dfc19115b/46f1a95cb0823639f037383dfc19115b.png', }, { id: 'cctp', name: 'Circle CCTP', logo_url: - 'https://static.debank.com/image/bridge/logo_url/17197a58a50ed6e294a725dda3fad872/17197a58a50ed6e294a725dda3fad872.png', + 'https://static.debank.com/image/bridge/logo_url/cd1a5ceb398d491dd03836c43dddc471/cd1a5ceb398d491dd03836c43dddc471.png', }, { id: 'zora-bridge', name: 'Zora', logo_url: - 'https://static.debank.com/image/bridge/logo_url/d1a5c2ccd94a45c844d1eafc43bc6202/d1a5c2ccd94a45c844d1eafc43bc6202.png', + 'https://static.debank.com/image/bridge/logo_url/5414b373d9c2111ea48c73294626b8a0/5414b373d9c2111ea48c73294626b8a0.png', }, { id: 'arbitrum-bridge', name: 'Arbitrum', logo_url: - 'https://static.debank.com/image/bridge/logo_url/67237107afb53d176754926ec81e5a1c/67237107afb53d176754926ec81e5a1c.png', + 'https://static.debank.com/image/bridge/logo_url/d7dbe968da9ad5ea006808e5372c8618/d7dbe968da9ad5ea006808e5372c8618.png', }, { id: 'across', name: 'Across', logo_url: - 'https://static.debank.com/image/bridge/logo_url/82cb74da444862e7262ef3b6143cbcb4/82cb74da444862e7262ef3b6143cbcb4.png', + 'https://static.debank.com/image/bridge/logo_url/cc446f8ac61966c9640852aa0ad53468/cc446f8ac61966c9640852aa0ad53468.png', }, { id: 'gnosis-native-bridge', name: 'Gnosis Native', logo_url: - 'https://static.debank.com/image/bridge/logo_url/e303cef874ceb6d7b0112dd5650e5bf1/e303cef874ceb6d7b0112dd5650e5bf1.png', + 'https://static.debank.com/image/bridge/logo_url/7c6461546fbf750179eeb5fa1fc06be8/7c6461546fbf750179eeb5fa1fc06be8.png', }, { id: 'hyphen', name: 'Hyphen', logo_url: - 'https://static.debank.com/image/bridge/logo_url/c23e9bda45a45b043d7238b533439018/c23e9bda45a45b043d7238b533439018.png', + 'https://static.debank.com/image/bridge/logo_url/7ed84e73706f779af2b022ceb3c1cb95/7ed84e73706f779af2b022ceb3c1cb95.png', }, { id: 'optimism-bridge', name: 'Optimism', logo_url: - 'https://static.debank.com/image/bridge/logo_url/7a18168471ca584bc0162c8806392b76/7a18168471ca584bc0162c8806392b76.png', + 'https://static.debank.com/image/bridge/logo_url/b10597a12fbe424bf2f519f31d3962ad/b10597a12fbe424bf2f519f31d3962ad.png', }, { id: 'mode-native-bridge', name: 'Mode Native', logo_url: - 'https://static.debank.com/image/bridge/logo_url/c91a2e28e7ba67c6d95f16a16e1f6ffe/c91a2e28e7ba67c6d95f16a16e1f6ffe.png', + 'https://static.debank.com/image/bridge/logo_url/358cc95c7825ab21c98fff5fac1fa759/358cc95c7825ab21c98fff5fac1fa759.png', }, { id: 'scroll-native-bridge', name: 'Scroll Native', logo_url: - 'https://static.debank.com/image/bridge/logo_url/9e583479dc65b95460c9790e2cc909b9/9e583479dc65b95460c9790e2cc909b9.png', + 'https://static.debank.com/image/bridge/logo_url/abe9a451211ce2a158b54b79c98d2ea3/abe9a451211ce2a158b54b79c98d2ea3.png', }, { id: 'polygon-bridge', name: 'Polygon POS', logo_url: - 'https://static.debank.com/image/bridge/logo_url/36b3e9e58e16beab418b0332fd0accfd/36b3e9e58e16beab418b0332fd0accfd.png', + 'https://static.debank.com/image/bridge/logo_url/c364ee023349579f28c0f7c176bc3fac/c364ee023349579f28c0f7c176bc3fac.png', }, { id: 'refuel-bridge', @@ -116,7 +104,7 @@ export const DEFAULT_BRIDGE_AGGREGATOR = [ id: 'zksync-native', name: 'ZkSync', logo_url: - 'https://static.debank.com/image/bridge/logo_url/2e46e772be0b0c3715958a3c4c934792/2e46e772be0b0c3715958a3c4c934792.png', + 'https://static.debank.com/image/bridge/logo_url/fc0fcd6e93a6c02e2aa2772fb38465ae/fc0fcd6e93a6c02e2aa2772fb38465ae.png', }, ], }, @@ -130,43 +118,43 @@ export const DEFAULT_BRIDGE_AGGREGATOR = [ id: 'hyphen', name: 'Hyphen', logo_url: - 'https://static.debank.com/image/bridge/logo_url/4f08b730ca9c62f9bfd5fcb737680dfb/4f08b730ca9c62f9bfd5fcb737680dfb.png', + 'https://static.debank.com/image/bridge/logo_url/7ed84e73706f779af2b022ceb3c1cb95/7ed84e73706f779af2b022ceb3c1cb95.png', }, { id: 'gnosis', name: 'Gnosis Bridge', logo_url: - 'https://static.debank.com/image/bridge/logo_url/796e87d181abdf433aca922613384ad8/796e87d181abdf433aca922613384ad8.png', + 'https://static.debank.com/image/bridge/logo_url/7c6461546fbf750179eeb5fa1fc06be8/7c6461546fbf750179eeb5fa1fc06be8.png', }, { id: 'arbitrum', name: 'Arbitrum Bridge', logo_url: - 'https://static.debank.com/image/bridge/logo_url/325af805bf8f830f3bacd15ba97d0652/325af805bf8f830f3bacd15ba97d0652.png', + 'https://static.debank.com/image/bridge/logo_url/d7dbe968da9ad5ea006808e5372c8618/d7dbe968da9ad5ea006808e5372c8618.png', }, { id: 'celercircle', name: 'Circle CCTP', logo_url: - 'https://static.debank.com/image/bridge/logo_url/58dc0ae7627e0f7f12eb4bc8a259bcde/58dc0ae7627e0f7f12eb4bc8a259bcde.png', + 'https://static.debank.com/image/bridge/logo_url/cd1a5ceb398d491dd03836c43dddc471/cd1a5ceb398d491dd03836c43dddc471.png', }, { id: 'optimism', name: 'Optimism Gateway', logo_url: - 'https://static.debank.com/image/bridge/logo_url/7d0de3c35bc9699a7ca1a178af7102ff/7d0de3c35bc9699a7ca1a178af7102ff.png', + 'https://static.debank.com/image/bridge/logo_url/b10597a12fbe424bf2f519f31d3962ad/b10597a12fbe424bf2f519f31d3962ad.png', }, { id: 'omni', name: 'Omni Bridge', logo_url: - 'https://static.debank.com/image/bridge/logo_url/7f4c137cd1fd03dd8ea99801b1214ae9/7f4c137cd1fd03dd8ea99801b1214ae9.png', + 'https://static.debank.com/image/bridge/logo_url/0638c112ea4c235061e82c57dc092673/0638c112ea4c235061e82c57dc092673.png', }, { id: 'across', name: 'Across', logo_url: - 'https://static.debank.com/image/bridge/logo_url/82cb74da444862e7262ef3b6143cbcb4/82cb74da444862e7262ef3b6143cbcb4.png', + 'https://static.debank.com/image/bridge/logo_url/cc446f8ac61966c9640852aa0ad53468/cc446f8ac61966c9640852aa0ad53468.png', }, ], }, From 42704ff34e08c89d263f3381dff366c12d088893 Mon Sep 17 00:00:00 2001 From: DMY <147dmy@gmail.com> Date: Fri, 12 Jul 2024 17:36:53 +0800 Subject: [PATCH 17/19] chore: update @rabby-wallet/rabby-swap@0.0.38 --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a27b4c81435..cfa1d54d447 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "@rabby-wallet/page-provider": "0.3.5", "@rabby-wallet/rabby-api": "0.7.23", "@rabby-wallet/rabby-security-engine": "2.0.3", - "@rabby-wallet/rabby-swap": "0.0.38-beta.1", + "@rabby-wallet/rabby-swap": "0.0.38", "@rabby-wallet/widgets": "1.0.9", "@rematch/core": "2.2.0", "@rematch/select": "3.1.2", diff --git a/yarn.lock b/yarn.lock index 8bc2dbb6308..19137ae52b6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4702,10 +4702,10 @@ sha256-uint8array "^0.10.3" url-parse "^1.5.1" -"@rabby-wallet/rabby-swap@0.0.38-beta.1": - version "0.0.38-beta.1" - resolved "https://registry.yarnpkg.com/@rabby-wallet/rabby-swap/-/rabby-swap-0.0.38-beta.1.tgz#e4d6ddd530b2ccf840dfbe01eea4c1c0f96288d3" - integrity sha512-NkWyQmEJj3Q5IBeCUhYqeGU9w+Z9Kj+7i/gWFiILsEJlxhSQvMwwJONKz1sG/oK896PmEIiyIBg+RfDx09N2eg== +"@rabby-wallet/rabby-swap@0.0.38": + version "0.0.38" + resolved "https://registry.yarnpkg.com/@rabby-wallet/rabby-swap/-/rabby-swap-0.0.38.tgz#ab4dc145e8f52add9153d131574febf6283f6e39" + integrity sha512-4bQgy/AYIKFD+0o0jDBcXM1x/+dnBt9vVbH8M0zwJtU4jxZmwuMy9QKcFgeZK6WiSWTXFS6+u6RJgRlEGDUOCw== dependencies: "@ethersproject/abi" "^5.7.0" axios "^0.27.2" From 8fc314d1b1c1bf95e6f9546e2dca2228d3f733bf Mon Sep 17 00:00:00 2001 From: DMY <147dmy@gmail.com> Date: Fri, 12 Jul 2024 18:15:06 +0800 Subject: [PATCH 18/19] feat: swap bridge pending sort --- .../views/Bridge/Component/BridgeHistory.tsx | 41 +++++++++++++++---- src/ui/views/Swap/Component/History.tsx | 41 +++++++++++++++---- 2 files changed, 68 insertions(+), 14 deletions(-) diff --git a/src/ui/views/Bridge/Component/BridgeHistory.tsx b/src/ui/views/Bridge/Component/BridgeHistory.tsx index 7214df4a8de..9b14ee463c0 100644 --- a/src/ui/views/Bridge/Component/BridgeHistory.tsx +++ b/src/ui/views/Bridge/Component/BridgeHistory.tsx @@ -203,6 +203,21 @@ const Transaction = forwardRef( const HistoryList = () => { const { txList, loading, loadingMore, ref } = useBridgeHistory(); const { t } = useTranslation(); + + console.log( + '123', + txList?.list?.sort((a, b) => { + let aIndex = 0, + bIndex = 0; + if (a.status === 'pending') { + aIndex = 1; + } + if (b.status === 'pending') { + bIndex = 1; + } + return bIndex - aIndex; + }) + ); if (!loading && (!txList || !txList?.list?.length)) { return (
@@ -219,13 +234,25 @@ const HistoryList = () => { return (
- {txList?.list?.map((swap, idx) => ( - - ))} + {txList?.list + ?.sort((a, b) => { + let aIndex = 0, + bIndex = 0; + if (a.status === 'pending') { + aIndex = 1; + } + if (b.status === 'pending') { + bIndex = 1; + } + return bIndex - aIndex; + }) + ?.map((swap, idx) => ( + + ))} {((loading && !txList) || loadingMore) && ( <> diff --git a/src/ui/views/Swap/Component/History.tsx b/src/ui/views/Swap/Component/History.tsx index e3d35bf0fc7..49f66528243 100644 --- a/src/ui/views/Swap/Component/History.tsx +++ b/src/ui/views/Swap/Component/History.tsx @@ -227,6 +227,21 @@ const Transaction = forwardRef( const HistoryList = () => { const { txList, loading, loadingMore, ref } = useSwapHistory(); const { t } = useTranslation(); + + console.log( + '123', + txList?.list?.sort((a, b) => { + let aIndex = 0, + bIndex = 0; + if (a.status === 'Pending') { + aIndex = 1; + } + if (b.status === 'Pending') { + bIndex = 1; + } + return bIndex - aIndex; + }) + ); if (!loading && (!txList || !txList?.list?.length)) { return (
@@ -243,13 +258,25 @@ const HistoryList = () => { return (
- {txList?.list?.map((swap, idx) => ( - - ))} + {txList?.list + ?.sort((a, b) => { + let aIndex = 0, + bIndex = 0; + if (a.status === 'Pending') { + aIndex = 1; + } + if (b.status === 'Pending') { + bIndex = 1; + } + return bIndex - aIndex; + }) + ?.map((swap, idx) => ( + + ))} {((loading && !txList) || loadingMore) && ( <> From 09a2cd8696eade9bd5519ed3c332d5f43018e9b1 Mon Sep 17 00:00:00 2001 From: DMY <147dmy@gmail.com> Date: Fri, 12 Jul 2024 18:17:25 +0800 Subject: [PATCH 19/19] chore: clean code --- src/ui/views/Bridge/Component/BridgeHistory.tsx | 14 -------------- src/ui/views/Swap/Component/History.tsx | 14 -------------- 2 files changed, 28 deletions(-) diff --git a/src/ui/views/Bridge/Component/BridgeHistory.tsx b/src/ui/views/Bridge/Component/BridgeHistory.tsx index 9b14ee463c0..cc0fa792192 100644 --- a/src/ui/views/Bridge/Component/BridgeHistory.tsx +++ b/src/ui/views/Bridge/Component/BridgeHistory.tsx @@ -204,20 +204,6 @@ const HistoryList = () => { const { txList, loading, loadingMore, ref } = useBridgeHistory(); const { t } = useTranslation(); - console.log( - '123', - txList?.list?.sort((a, b) => { - let aIndex = 0, - bIndex = 0; - if (a.status === 'pending') { - aIndex = 1; - } - if (b.status === 'pending') { - bIndex = 1; - } - return bIndex - aIndex; - }) - ); if (!loading && (!txList || !txList?.list?.length)) { return (
diff --git a/src/ui/views/Swap/Component/History.tsx b/src/ui/views/Swap/Component/History.tsx index 49f66528243..7a5c5f2484f 100644 --- a/src/ui/views/Swap/Component/History.tsx +++ b/src/ui/views/Swap/Component/History.tsx @@ -228,20 +228,6 @@ const HistoryList = () => { const { txList, loading, loadingMore, ref } = useSwapHistory(); const { t } = useTranslation(); - console.log( - '123', - txList?.list?.sort((a, b) => { - let aIndex = 0, - bIndex = 0; - if (a.status === 'Pending') { - aIndex = 1; - } - if (b.status === 'Pending') { - bIndex = 1; - } - return bIndex - aIndex; - }) - ); if (!loading && (!txList || !txList?.list?.length)) { return (