diff --git a/.beads/ss-dx5.4.json b/.beads/ss-dx5.4.json new file mode 100644 index 00000000000..a4bd69a9c22 --- /dev/null +++ b/.beads/ss-dx5.4.json @@ -0,0 +1,39 @@ +[ + { + "id": "ss-dx5.4", + "title": "Integrate Cronos (chainId: 25, CRO, EVM Sidechain)", + "description": "TVL: $376.1M | RPC: https://cronos.drpc.org | Explorer: https://cronoscan.com | Token Support: All | Pattern B (RPC-only) | Crypto.com ecosystem", + "notes": "Logo: https://assets.relay.link/icons/25/light.png (dark: dark.png)\nCoinGecko: cronos\nArch: EVM Sidechain (Crypto.com)\nViem key: cronos\n⚠️ NON-ETH GAS: CRO - must configure in chainIdToFeeAssetId.ts\nChecklist: [ ] chain-adapters [ ] caip [ ] asset-service [ ] feature-flag [ ] plugin [ ] env-config [ ] icon/logo [ ] fee-asset-config\n\n--- RELAY ACTIVATION ---\n[ ] Add to chainIdToRelayChainId in packages/swapper/src/swappers/RelaySwapper/constant.ts\n[ ] Add native asset case in packages/swapper/src/swappers/RelaySwapper/utils/relayTokenToAssetId.ts\n--- ASSET DATA REGEN ---\n[ ] Create scripts/generateAssetData/\u003cchainname\u003e/index.ts\n[ ] Add case to scripts/generateAssetData/coingecko.ts\n[ ] Add import + getAssets call to scripts/generateAssetData/generateAssetData.ts\n[ ] Run: yarn generate:asset-data\n--- DRAFT PR ---\n[ ] Branch: feat/integrate-\u003cchainname\u003e-relay (off develop)\n[ ] gh pr create --draft using .github/PULL_REQUEST_TEMPLATE.md\n[ ] Fill: Description, Issue (Part of #11902), Risk (Low - behind feature flag), Testing (enable flag + verify chain + relay bridge quote), Operations (behind flag checkbox)\n[ ] yarn lint --fix \u0026\u0026 yarn type-check must pass before PR", + "status": "open", + "priority": 1, + "issue_type": "task", + "owner": "14963751+NeOMakinG@users.noreply.github.com", + "created_at": "2026-02-17T10:55:24Z", + "created_by": "NeOMakinG", + "updated_at": "2026-02-17T11:21:35Z", + "labels": [ + "evm", + "non-eth-gas", + "relay", + "tier-1" + ], + "dependencies": [ + { + "id": "ss-dx5", + "title": "Add support for missing Relay.link EVM chains", + "description": "Master epic tracking integration of ALL chains supported by Relay.link that ShapeShift web doesn't currently support. Enables cross-chain bridging capabilities via Relay infrastructure. See https://github.com/shapeshift/web/issues/11902 for full details. All new EVM chains will use Pattern B (RPC-only + getKnownTokens) since no ShapeShift unchained indexer infrastructure exists for these chains.", + "notes": "=== FROM ISSUE COMMENTS ===\n\nLOGO PATTERN: https://assets.relay.link/icons/{chainId}/light.png (dark: dark.png)\n\nARCHITECTURE GROUPS:\n- OP Stack (standard): Ink, Unichain, BOB, Mode, Hemi, World Chain, Soneium, Zircuit, Lisk, Cyber, Blast, Zora, Redstone, Shape, Superseed, Manta Pacific\n- zkEVM (special handling): Scroll, zkSync Era, Linea, Polygon zkEVM, Taiko, Abstract\n- Arbitrum Orbit: ApeChain, Xai, Sanko\n- Non-ETH gas (10 chains): Mantle(MNT), Metis(METIS), Cronos(CRO), Ronin(RON), Sonic(S), Flow(FLOW), Berachain(BERA), Plume(PLUME), Story(IP), Stable(gUSDT)\n\nCRITICAL CHAINS:\n1. Celo (42220): Native token is BOTH native AND ERC20. Relay uses wrapped CELO. Check relayTransactionMetadata.assetRequiringApproval\n2. Blast (81457): Rebasing ETH from L1 staking yield. USDB also rebases. Handle in balance displays.\n3. Ethereal (5064014): NOT in viem. Needs custom chain definition.\n4. zkSync Era (324) + Abstract (2741): Type 113 (EIP-712) transactions. Use viem zksync chainConfig.\n5. Linea (59144): Custom linea_estimateGas RPC method.\n6. Sei (1329): Parallelized EVM + CosmWasm interop. CoinGecko uses sei-v2 NOT sei.\n\nCOINGECKO GOTCHAS: sei-\u003esei-v2, plume-\u003eplume-network, zksync-\u003ezksync, metis-\u003emetis-andromeda, morph-\u003emorph-l2, gravity-\u003egravity-alpha, boba-\u003eboba, zora-\u003ezora-network, funkichain-\u003efunki, Superposition (capital S). BOB/Zero Network have null chain_identifier. 11 chains not on CoinGecko at all.\n\nPER-CHAIN CHECKLIST: [ ] chain-adapters [ ] caip [ ] asset-service [ ] feature-flag [ ] plugin [ ] env-config [ ] icon/logo\n\n=== RELAY SWAPPER INTEGRATION (per chain) ===\n\nFILE 1: packages/swapper/src/swappers/RelaySwapper/constant.ts\n - Add to chainIdToRelayChainId map: [newChainChainId]: \u003cviem_chain\u003e.id (or numeric chain ID)\n - Import the caip chainId (e.g., scrollChainId) from @shapeshiftoss/caip\n - Import viem chain from viem/chains (or use raw numeric ID if not in viem)\n - The reverse map relayChainIdToChainId auto-generates via invert()\n\nFILE 2: packages/swapper/src/swappers/RelaySwapper/utils/relayTokenToAssetId.ts\n - Add case CHAIN_REFERENCE.NewChainMainnet: with ASSET_REFERENCE.NewChain + ASSET_NAMESPACE.slip44\n\nNO CHANGES NEEDED (for EVM chains):\n - getRelayAssetAddress.ts (uses generic isNativeEvmAsset + DEFAULT_RELAY_EVM_TOKEN_ADDRESS)\n - getRelayDefaultUserAddress.ts (falls through to DEFAULT_RELAY_EVM_USER_ADDRESS default)\n\nUPSTREAM DEPS REQUIRED (in @shapeshiftoss packages):\n - @shapeshiftoss/caip: export newChainChainId, CHAIN_REFERENCE.NewChainMainnet, ASSET_REFERENCE.NewChain\n - @shapeshiftoss/types: KnownChainIds.NewChainMainnet\n - @shapeshiftoss/chain-adapters: NewChain chain adapter class\n - viem/chains: chain config (or custom if not in viem)\n\nRELAY API: https://api.relay.link (env: VITE_RELAY_API_URL) - no per-chain config needed\n\n=== ASSET DATA REGENERATION (per chain) ===\n\nAfter integrating each chain, run a partial assets data regen to populate the token list.\n\nFILE 1 (CREATE): scripts/generateAssetData/\u003cchainname\u003e/index.ts\n Pattern (identical for all EVM chains):\n import { \u003cchainname\u003eChainId } from '@shapeshiftoss/caip'\n import type { Asset } from '@shapeshiftoss/types'\n import { \u003cchainname\u003e, unfreeze } from '@shapeshiftoss/utils'\n import * as coingecko from '../coingecko'\n export const getAssets = async (): Promise\u003cAsset[]\u003e =\u003e {\n const assets = await coingecko.getAssets(\u003cchainname\u003eChainId)\n return [...assets, unfreeze(\u003cchainname\u003e)]\n }\n\nFILE 2 (MODIFY): scripts/generateAssetData/coingecko.ts\n - Import \u003cchainname\u003eChainId from @shapeshiftoss/caip\n - Import \u003cchainname\u003e native asset from @shapeshiftoss/utils\n - Add case in the switch: case \u003cchainname\u003eChainId: return { assetNamespace: ASSET_NAMESPACE.erc20, category: adapters.chainIdToCoingeckoAssetPlatform(chainId), explorer/explorerAddressLink/explorerTxLink from \u003cchainname\u003e utils }\n - NOTE: chains not on CoinGecko will only have the native asset (no ERC20 token list)\n\nFILE 3 (MODIFY): scripts/generateAssetData/generateAssetData.ts\n - Import: import * as \u003cchainname\u003e from './\u003cchainname\u003e'\n - Call: const \u003cchainname\u003eAssets = await \u003cchainname\u003e.getAssets()\n - Spread into unfilteredAssetData: ...\u003cchainname\u003eAssets\n\nCOMMAND: yarn generate:asset-data\n This regenerates: src/generated/asset-data.json + related-asset-index + manifest + compressed assets\n\n=== DRAFT PR CREATION (final step per chain) ===\n\nAfter all code changes are complete for a chain, open a draft PR using the repo template.\n\nBRANCH NAMING: feat/integrate-\u003cchainname\u003e-relay (e.g. feat/integrate-scroll-relay)\n\nCOMMAND:\n gh pr create --draft --title 'feat: integrate \u003cChainName\u003e (chainId: \u003cid\u003e) via Relay' --body \"$(cat \u003c\u003c'PREOF'\n ## Description\n\n Add \u003cChainName\u003e (chainId: \u003cid\u003e) as a second-class EVM chain in ShapeShift Web with Relay bridge support.\n\n **Changes:**\n - Plugin registration in src/plugins/\u003cchainname\u003e/\n - Feature flag `\u003cChainName\u003e` in preferencesSlice\n - Relay swapper chain mapping in RelaySwapper/constant.ts\n - Asset data generation via CoinGecko (`\u003ccoingecko_platform_id\u003e`)\n - Environment config for RPC URL\n\n **Chain details:**\n - TVL: \u003ctvl\u003e\n - Native token: \u003ctoken\u003e (18 decimals)\n - Architecture: \u003carch_type\u003e\n - RPC: \u003crpc_url\u003e\n - Explorer: \u003cexplorer_url\u003e\n\n ## Issue (if applicable)\n\n Part of #11902\n\n ## Risk\n\n Low risk — new chain behind feature flag (`\u003cChainName\u003e`), no existing functionality affected.\n\n \u003e New chain plugin + Relay bridge mapping. No modifications to existing chain logic.\n\n ## Testing\n\n ### Engineering\n\n 1. Enable feature flag: set `VITE_FEATURE_\u003cCHAINNAME\u003e=true` in .env\n 2. Verify chain appears in supported chains list\n 3. Verify native token balance loads (connect wallet with \u003ctoken\u003e on \u003cChainName\u003e)\n 4. Verify Relay bridge quote works: bridge ETH from Ethereum → \u003cChainName\u003e\n 5. Run `yarn lint --fix \u0026\u0026 yarn type-check` — must pass\n\n ### Operations\n\n - [x] :checkered_flag: My feature is behind a flag and doesn't require operations testing (yet)\n\n ## Screenshots (if applicable)\n\n N/A — chain integration, no UI changes.\n PREOF\n )\"\n\nNOTE: Replace all \u003cplaceholders\u003e with actual chain values from the bead description/notes.\nNOTE: Use --draft flag to create as draft PR.\nNOTE: Branch off develop (main branch is develop, not main).", + "status": "open", + "priority": 0, + "issue_type": "epic", + "owner": "14963751+NeOMakinG@users.noreply.github.com", + "created_at": "2026-02-17T10:55:02Z", + "created_by": "NeOMakinG", + "updated_at": "2026-02-17T11:21:27Z", + "external_ref": "gh-11902", + "dependency_type": "parent-child" + } + ], + "parent": "ss-dx5" + } +] diff --git a/.claude/contracts/second-class-evm-chain.md b/.claude/contracts/second-class-evm-chain.md index 7607bbf793f..d37a9242de0 100644 --- a/.claude/contracts/second-class-evm-chain.md +++ b/.claude/contracts/second-class-evm-chain.md @@ -34,7 +34,7 @@ All integration points required when adding a new second-class EVM chain to Shap 7. **Feature Flag** - Multiple files: - `src/state/slices/preferencesSlice/preferencesSlice.ts` - FeatureFlags type + initial state - - `src/config.ts` - `VITE_FEATURE_` validation + `VITE__NODE_URL` validation + - `src/config.ts` - `VITE_FEATURE_` validation (`bool({ default: false })`) + `VITE__NODE_URL` validation (must use `url()`, NOT `str()`) - `src/test/mocks/store.ts` - Mock default - `src/vite-env.d.ts` - Type declarations - `.env` - Production default (usually `false`) @@ -197,6 +197,7 @@ Some chains have an ERC20 contract that represents the native token (e.g., Mantl 40. **Related Asset Index** - `public/generated/relatedAssetIndex.json` + `scripts/generateAssetData/generateRelatedAssetIndex/generateRelatedAssetIndex.ts` - If the native asset is ETH: verify it's in `manualRelatedAssetIndex[ethAssetId]` array + - **If the native asset is NOT ETH** (e.g., CRO, MNT): research whether the same token exists on Ethereum mainnet as an ERC20 (e.g., CRO has `eip155:1/erc20:0xa0b73e1ff0b80914ab6fe0444e65848c4c34450b`). If it does, add a manual mapping in `manualRelatedAssetIndex` in BOTH `generateRelatedAssetIndex.ts` AND `generateChainRelatedAssetIndex.ts`, linking the Ethereum ERC20 to the chain's native `slip44:60`. Use a research agent to check CoinGecko/block explorer if unsure. Without this, the chain's native token won't show as a "Popular Asset" when filtering by the chain. - Verify `relatedAssetIndex.json` has been regenerated and contains entries for the new chain's tokens - Check `generatedAssetData.json` - the chain's ERC20 tokens should have `relatedAssetKey` values linking them to mainnet counterparts - Without this, tokens won't appear in the trade modal "Popular Assets" section diff --git a/.claude/skills/chain-integration/SKILL.md b/.claude/skills/chain-integration/SKILL.md index 51a78f31c32..72f2ed17880 100644 --- a/.claude/skills/chain-integration/SKILL.md +++ b/.claude/skills/chain-integration/SKILL.md @@ -1232,16 +1232,42 @@ export enum CoingeckoAssetPlatform { } ``` -**File**: `packages/caip/src/adapters/coingecko/utils.ts` +**File**: `packages/caip/src/adapters/coingecko/index.ts` (3 touchpoints — enum + 2 switch statements) -Add chain ID to platform mapping in the `chainIdToCoingeckoAssetPlatform` function: +CRITICAL: This file has 3 separate places to update. Missing any causes runtime failures. +Touchpoint 1 — Already shown above: `CoingeckoAssetPlatform` enum entry. + +Touchpoint 2 — `chainIdToCoingeckoAssetPlatform()` forward mapping (CHAIN_REFERENCE → platform): ```typescript -// For EVM chains, add to the EVM switch statement +// For EVM chains, add to the EVM switch (inside chainNamespace Evm case) case CHAIN_REFERENCE.[ChainName]Mainnet: return CoingeckoAssetPlatform.[ChainName] +``` + +Touchpoint 3 — `coingeckoAssetPlatformToChainId()` reverse mapping (platform → chainId): +```typescript +case CoingeckoAssetPlatform.[ChainName]: + return [chainLower]ChainId +``` +NOTE: This reverse mapping requires importing `[chainLower]ChainId` from `../../constants`. Only import what is used — `chainIdToCoingeckoAssetPlatform` uses `CHAIN_REFERENCE` not chainId constants. + +**File**: `packages/caip/src/adapters/coingecko/utils.ts` (2 touchpoints) -// For non-EVM chains, add separate case in outer switch +Touchpoint 4 — Add chainId to `buildByChainId` loop in `COINGECKO_ASSET_PLATFORM_TO_CHAIN_ID_MAP` (~line 280-310): +```typescript +// Import chainId + assetId from constants at top of file +import { [chainLower]AssetId, [chainLower]ChainId, ... } from '../../constants' + +// Add to the switch/if chain inside the buildByChainId loop +prev[[chainLower]ChainId][assetId] = id +``` + +Touchpoint 5 — Add native asset to `COINGECKO_NATIVE_ASSET_PLATFORM_TO_CHAIN_ID_MAP` (~line 370-390): +```typescript +[[chainLower]ChainId]: { [[chainLower]AssetId]: '[coingecko-native-coin-id]' }, +// e.g., for Cronos: [cronosChainId]: { [cronosAssetId]: 'crypto-com-chain' } +// e.g., for ETH-native chains: [scrollChainId]: { [scrollAssetId]: 'ethereum' } ``` **File**: `packages/caip/src/adapters/coingecko/utils.test.ts` diff --git a/.env b/.env index cd7a72b4e14..41158d60379 100644 --- a/.env +++ b/.env @@ -157,6 +157,7 @@ VITE_MONAD_NODE_URL=https://rpc.monad.xyz VITE_PLASMA_NODE_URL=https://rpc.plasma.to VITE_MANTLE_NODE_URL=https://rpc.mantle.xyz VITE_INK_NODE_URL=https://ink.drpc.org +VITE_CRONOS_NODE_URL=https://cronos.drpc.org VITE_MEGAETH_NODE_URL=https://mainnet.megaeth.com/rpc VITE_LINEA_NODE_URL=https://rpc.linea.build VITE_SCROLL_NODE_URL=https://rpc.scroll.io/ @@ -307,6 +308,7 @@ VITE_HYPEREVM_NODE_URL=https://rpc.hyperliquid.xyz/evm VITE_FEATURE_HYPEREVM=true VITE_FEATURE_MANTLE=false VITE_FEATURE_INK=false +VITE_FEATURE_CRONOS=false VITE_FEATURE_MEGAETH=false VITE_FEATURE_LINEA=false VITE_BERACHAIN_NODE_URL=https://rpc.berachain.com diff --git a/.env.development b/.env.development index d0f7a0b44cf..634c6d59d64 100644 --- a/.env.development +++ b/.env.development @@ -64,6 +64,7 @@ VITE_KATANA_NODE_URL=https://rpc.katana.network VITE_HYPEREVM_NODE_URL=https://rpc.hyperliquid.xyz/evm VITE_MANTLE_NODE_URL=https://rpc.mantle.xyz VITE_INK_NODE_URL=https://ink.drpc.org +VITE_CRONOS_NODE_URL=https://cronos.drpc.org VITE_MEGAETH_NODE_URL=https://mainnet.megaeth.com/rpc VITE_LINEA_NODE_URL=https://rpc.linea.build VITE_BERACHAIN_NODE_URL=https://rpc.berachain.com @@ -101,6 +102,7 @@ VITE_FEATURE_WC_DIRECT_CONNECTION=true VITE_FEATURE_CETUS_SWAP=true VITE_FEATURE_MANTLE=true VITE_FEATURE_INK=true +VITE_FEATURE_CRONOS=true VITE_FEATURE_MEGAETH=true VITE_FEATURE_LINEA=true VITE_FEATURE_BERACHAIN=true diff --git a/.gitignore b/.gitignore index d48540b0802..3575f2e1649 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,10 @@ # Local issue tracking .beads/ +# Claude Code ephemeral plans +.claude/plan.md +.claude/plans/ + # no zero installs .pnp.* .yarn/* diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000000..df7a4af984b --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,40 @@ +# Agent Instructions + +This project uses **bd** (beads) for issue tracking. Run `bd onboard` to get started. + +## Quick Reference + +```bash +bd ready # Find available work +bd show # View issue details +bd update --status in_progress # Claim work +bd close # Complete work +bd sync # Sync with git +``` + +## Landing the Plane (Session Completion) + +**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds. + +**MANDATORY WORKFLOW:** + +1. **File issues for remaining work** - Create issues for anything that needs follow-up +2. **Run quality gates** (if code changed) - Tests, linters, builds +3. **Update issue status** - Close finished work, update in-progress items +4. **PUSH TO REMOTE** - This is MANDATORY: + ```bash + git pull --rebase + bd sync + git push + git status # MUST show "up to date with origin" + ``` +5. **Clean up** - Clear stashes, prune remote branches +6. **Verify** - All changes committed AND pushed +7. **Hand off** - Provide context for next session + +**CRITICAL RULES:** +- Work is NOT complete until `git push` succeeds +- NEVER stop before pushing - that leaves work stranded locally +- NEVER say "ready to push when you are" - YOU must push +- If push fails, resolve and retry until it succeeds + diff --git a/CLAUDE.md b/CLAUDE.md index 06851ff3902..f50440a7b2d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -89,6 +89,7 @@ ### Git & Version Control - Never commit changes unless explicitly requested - When creating commits, follow the Git Safety Protocol (see session notes) +- **Before pushing**: always run `yarn lint --fix`, and if there are lint fixes, commit them before pushing. Never push without verifying lint passes first. - Main branch is `develop` - use this for PRs - Branch naming: Use descriptive names (e.g., `feat_gridplus`, `fix_wallet_connect`) - When opening PRs (via `gh`, Aviator `av`, or any CLI tool), ALWAYS use the `.github/PULL_REQUEST_TEMPLATE.md` template as the base for the PR body diff --git a/headers/csps/chains/cronos.ts b/headers/csps/chains/cronos.ts new file mode 100644 index 00000000000..1327c22db74 --- /dev/null +++ b/headers/csps/chains/cronos.ts @@ -0,0 +1,10 @@ +import { loadEnv } from 'vite' + +import type { Csp } from '../../types' + +const mode = process.env.MODE ?? process.env.NODE_ENV ?? 'development' +const env = loadEnv(mode, process.cwd(), '') + +export const csp: Csp = { + 'connect-src': [env.VITE_CRONOS_NODE_URL], +} diff --git a/headers/csps/index.ts b/headers/csps/index.ts index 2c9c35931ce..948340146a5 100644 --- a/headers/csps/index.ts +++ b/headers/csps/index.ts @@ -12,6 +12,7 @@ import { csp as bitcoin } from './chains/bitcoin' import { csp as bitcoincash } from './chains/bitcoincash' import { csp as bnbsmartchain } from './chains/bnbsmartchain' import { csp as cosmos } from './chains/cosmos' +import { csp as cronos } from './chains/cronos' import { csp as dogecoin } from './chains/dogecoin' import { csp as ethereum } from './chains/ethereum' import { csp as gnosis } from './chains/gnosis' @@ -122,6 +123,7 @@ export const csps = [ berachain, hyperevm, ink, + cronos, katana, linea, litecoin, diff --git a/package.json b/package.json index 9bd1d3876a8..bd44a9905ec 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "test:packages": "yarn vitest run -c vitest-packages.config.mts", "translations:count-words-invalidate-since": "yarn tsx ./scripts/translations/countWordsInvalidateSince.ts", "translations:update-path": "yarn tsx ./scripts/translations/updateTranslationPath.ts", - "type-check": "yarn tsc --noEmit", + "type-check": "NODE_OPTIONS=--max-old-space-size=8192 yarn tsc --noEmit", "type-check-watch": "yarn tsc --noEmit --watch" }, "browserslist": { diff --git a/packages/caip/src/adapters/coingecko/generated/eip155_25/adapter.json b/packages/caip/src/adapters/coingecko/generated/eip155_25/adapter.json new file mode 100644 index 00000000000..dcdebbcc1ac --- /dev/null +++ b/packages/caip/src/adapters/coingecko/generated/eip155_25/adapter.json @@ -0,0 +1 @@ +{"eip155:25/slip44:60":"crypto-com-chain"} \ No newline at end of file diff --git a/packages/caip/src/adapters/coingecko/generated/index.ts b/packages/caip/src/adapters/coingecko/generated/index.ts index 32687bfa908..edb38548782 100644 --- a/packages/caip/src/adapters/coingecko/generated/index.ts +++ b/packages/caip/src/adapters/coingecko/generated/index.ts @@ -20,6 +20,7 @@ import mantle from "./eip155_5000/adapter.json"; import berachain from "./eip155_80094/adapter.json"; import ink from "./eip155_57073/adapter.json"; import scroll from "./eip155_534352/adapter.json"; +import cronos from "./eip155_25/adapter.json"; import cosmos from "./cosmos_cosmoshub-4/adapter.json"; import thorchain from "./cosmos_thorchain-1/adapter.json"; import mayachain from "./cosmos_mayachain-mainnet-v1/adapter.json"; @@ -54,6 +55,7 @@ export { berachain, ink, scroll, + cronos, cosmos, thorchain, mayachain, diff --git a/packages/caip/src/adapters/coingecko/index.ts b/packages/caip/src/adapters/coingecko/index.ts index 8d762847025..670bb164384 100644 --- a/packages/caip/src/adapters/coingecko/index.ts +++ b/packages/caip/src/adapters/coingecko/index.ts @@ -13,6 +13,7 @@ import { CHAIN_NAMESPACE, CHAIN_REFERENCE, cosmosChainId, + cronosChainId, ethChainId, gnosisChainId, hyperEvmChainId, @@ -62,6 +63,7 @@ export enum CoingeckoAssetPlatform { MegaEth = 'megaeth', Berachain = 'berachain', Scroll = 'scroll', + Cronos = 'cronos', Solana = 'solana', Starknet = 'starknet', Tron = 'tron', @@ -134,6 +136,8 @@ export const chainIdToCoingeckoAssetPlatform = (chainId: ChainId): string => { return CoingeckoAssetPlatform.Ink case CHAIN_REFERENCE.ScrollMainnet: return CoingeckoAssetPlatform.Scroll + case CHAIN_REFERENCE.CronosMainnet: + return CoingeckoAssetPlatform.Cronos default: throw new Error( `chainNamespace ${chainNamespace}, chainReference ${chainReference} not supported.`, @@ -253,6 +257,8 @@ export const coingeckoAssetPlatformToChainId = ( return inkChainId case CoingeckoAssetPlatform.Scroll: return scrollChainId + case CoingeckoAssetPlatform.Cronos: + return cronosChainId case CoingeckoAssetPlatform.Cosmos: return cosmosChainId case CoingeckoAssetPlatform.Thorchain: diff --git a/packages/caip/src/adapters/coingecko/utils.test.ts b/packages/caip/src/adapters/coingecko/utils.test.ts index 110d4801d37..b4b65526749 100644 --- a/packages/caip/src/adapters/coingecko/utils.test.ts +++ b/packages/caip/src/adapters/coingecko/utils.test.ts @@ -197,6 +197,9 @@ describe('adapters:coingecko:utils', () => { 'eip155:57073': { 'eip155:57073/slip44:60': 'ethereum', }, + 'eip155:25': { + 'eip155:25/slip44:60': 'crypto-com-chain', + }, 'near:mainnet': { 'near:mainnet/slip44:397': 'near', }, diff --git a/packages/caip/src/adapters/coingecko/utils.ts b/packages/caip/src/adapters/coingecko/utils.ts index eb8cc788b0e..ca388f12adc 100644 --- a/packages/caip/src/adapters/coingecko/utils.ts +++ b/packages/caip/src/adapters/coingecko/utils.ts @@ -21,6 +21,8 @@ import { CHAIN_NAMESPACE, CHAIN_REFERENCE, cosmosChainId, + cronosAssetId, + cronosChainId, dogeChainId, ethAssetId, ethChainId, @@ -369,6 +371,20 @@ export const parseData = (coins: CoingeckoCoin[]): AssetMap => { } } + if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Cronos)) { + try { + const assetId = toAssetId({ + chainNamespace: CHAIN_NAMESPACE.Evm, + chainReference: CHAIN_REFERENCE.CronosMainnet, + assetNamespace: 'erc20', + assetReference: platforms[CoingeckoAssetPlatform.Cronos], + }) + prev[cronosChainId][assetId] = id + } catch { + // unable to create assetId, skip token + } + } + if (Object.keys(platforms).includes(CoingeckoAssetPlatform.Katana)) { try { const assetId = toAssetId({ @@ -444,6 +460,7 @@ export const parseData = (coins: CoingeckoCoin[]): AssetMap => { [megaethChainId]: { [megaethAssetId]: 'ethereum' }, [lineaChainId]: { [lineaAssetId]: 'ethereum' }, [berachainChainId]: { [berachainAssetId]: 'berachain-bera' }, + [cronosChainId]: { [cronosAssetId]: 'crypto-com-chain' }, [katanaChainId]: { [katanaAssetId]: 'katana' }, [scrollChainId]: { [scrollAssetId]: 'ethereum' }, [solanaChainId]: { [solAssetId]: 'solana' }, diff --git a/packages/caip/src/constants.ts b/packages/caip/src/constants.ts index 8c0a3f1c1c2..4c79ce16a6d 100644 --- a/packages/caip/src/constants.ts +++ b/packages/caip/src/constants.ts @@ -22,6 +22,7 @@ export const mantleAssetId: AssetId = 'eip155:5000/slip44:60' export const inkAssetId: AssetId = 'eip155:57073/slip44:60' export const megaethAssetId: AssetId = 'eip155:4326/slip44:60' export const berachainAssetId: AssetId = 'eip155:80094/slip44:60' +export const cronosAssetId: AssetId = 'eip155:25/slip44:60' export const katanaAssetId: AssetId = 'eip155:747474/slip44:60' export const lineaAssetId: AssetId = 'eip155:59144/slip44:60' export const scrollAssetId: AssetId = 'eip155:534352/slip44:60' @@ -88,6 +89,7 @@ export const mantleChainId: ChainId = 'eip155:5000' export const inkChainId: ChainId = 'eip155:57073' export const megaethChainId: ChainId = 'eip155:4326' export const berachainChainId: ChainId = 'eip155:80094' +export const cronosChainId: ChainId = 'eip155:25' export const katanaChainId: ChainId = 'eip155:747474' export const lineaChainId: ChainId = 'eip155:59144' export const scrollChainId: ChainId = 'eip155:534352' @@ -145,6 +147,7 @@ export const CHAIN_REFERENCE = { InkMainnet: '57073', MegaEthMainnet: '4326', BerachainMainnet: '80094', + CronosMainnet: '25', KatanaMainnet: '747474', // https://docs.katana.network LineaMainnet: '59144', // https://docs.linea.build ScrollMainnet: '534352', // https://scrollscan.com @@ -195,6 +198,7 @@ export const ASSET_REFERENCE = { Ink: '60', // evm chain which uses ethereum derivation path as common practice MegaEth: '60', // evm chain which uses ethereum derivation path as common practice Berachain: '60', // evm chain which uses ethereum derivation path as common practice + Cronos: '60', // evm chain which uses ethereum derivation path as common practice Katana: '60', // evm chain which uses ethereum derivation path as common practice Linea: '60', // evm chain which uses ethereum derivation path as common practice Scroll: '60', // evm chain which uses ethereum derivation path as common practice @@ -230,6 +234,7 @@ export const VALID_CHAIN_IDS: ValidChainMap = Object.freeze({ CHAIN_REFERENCE.InkMainnet, CHAIN_REFERENCE.MegaEthMainnet, CHAIN_REFERENCE.BerachainMainnet, + CHAIN_REFERENCE.CronosMainnet, CHAIN_REFERENCE.KatanaMainnet, CHAIN_REFERENCE.LineaMainnet, CHAIN_REFERENCE.ScrollMainnet, @@ -293,6 +298,7 @@ export const FEE_ASSET_IDS = [ lineaAssetId, berachainAssetId, scrollAssetId, + cronosAssetId, solAssetId, tronAssetId, suiAssetId, diff --git a/packages/chain-adapters/src/evm/EvmBaseAdapter.ts b/packages/chain-adapters/src/evm/EvmBaseAdapter.ts index 01f2371ac40..690b73c3c60 100644 --- a/packages/chain-adapters/src/evm/EvmBaseAdapter.ts +++ b/packages/chain-adapters/src/evm/EvmBaseAdapter.ts @@ -13,6 +13,7 @@ import { supportsBase, supportsBerachain, supportsBSC, + supportsCronos, supportsETH, supportsGnosis, supportsHyperEvm, @@ -95,6 +96,7 @@ export const evmChainIds = [ KnownChainIds.InkMainnet, KnownChainIds.MegaEthMainnet, KnownChainIds.BerachainMainnet, + KnownChainIds.CronosMainnet, KnownChainIds.KatanaMainnet, KnownChainIds.LineaMainnet, KnownChainIds.ScrollMainnet, @@ -206,6 +208,8 @@ export abstract class EvmBaseAdapter implements IChainAdap return supportsMegaEth(wallet) case Number(fromChainId(KnownChainIds.BerachainMainnet).chainReference): return supportsBerachain(wallet) + case Number(fromChainId(KnownChainIds.CronosMainnet).chainReference): + return supportsCronos(wallet) case Number(fromChainId(KnownChainIds.KatanaMainnet).chainReference): return supportsKatana(wallet) case Number(fromChainId(KnownChainIds.LineaMainnet).chainReference): @@ -319,6 +323,11 @@ export abstract class EvmBaseAdapter implements IChainAdap symbol: 'BERA', explorer: 'https://berascan.com', }, + [KnownChainIds.CronosMainnet]: { + name: 'Cronos', + symbol: 'CRO', + explorer: 'https://cronoscan.com', + }, [KnownChainIds.KatanaMainnet]: { name: 'Ethereum', symbol: 'ETH', diff --git a/packages/chain-adapters/src/evm/SecondClassEvmAdapter.ts b/packages/chain-adapters/src/evm/SecondClassEvmAdapter.ts index f7a5db8285a..b308f1ecf66 100644 --- a/packages/chain-adapters/src/evm/SecondClassEvmAdapter.ts +++ b/packages/chain-adapters/src/evm/SecondClassEvmAdapter.ts @@ -2,6 +2,7 @@ import type { AssetId, ChainId } from '@shapeshiftoss/caip' import { ASSET_NAMESPACE, berachainChainId, + cronosChainId, hyperEvmChainId, mantleChainId, toAssetId, @@ -44,6 +45,7 @@ const ERC20_ABI = ['function balanceOf(address) view returns (uint256)'] const WRAPPED_NATIVE_CONTRACT_BY_CHAIN_ID: Partial> = { [berachainChainId]: '0x6969696969696969696969696969696969696969', [mantleChainId]: '0x78c1b0C915c4FAA5FffA6CAbf0219DA63d7f4cb8', + [cronosChainId]: '0x5C7F8A570d578ED84E63fdFA7b1eE72dEae1AE23', } const BATCH_SIZE = 500 @@ -476,7 +478,7 @@ export abstract class SecondClassEvmAdapter extends EvmBas const confirmationsCount = blockNumber > 0 ? Number(currentBlockNumber) - blockNumber + 1 : 0 const status = receipt.status === 'success' ? 1 : 0 const fee = bnOrZero(receipt.gasUsed.toString()) - .times(receipt.effectiveGasPrice.toString()) + .times(bnOrZero(receipt.effectiveGasPrice?.toString())) .toFixed(0) const parsedTx: evm.Tx = { @@ -492,7 +494,7 @@ export abstract class SecondClassEvmAdapter extends EvmBas fee, gasLimit: transaction.gas.toString(), gasUsed: receipt.gasUsed.toString(), - gasPrice: receipt.effectiveGasPrice.toString(), + gasPrice: receipt.effectiveGasPrice?.toString(), inputData: transaction.input, tokenTransfers, internalTxs: internalTxs.length > 0 ? internalTxs : undefined, diff --git a/packages/chain-adapters/src/evm/cronos/CronosChainAdapter.ts b/packages/chain-adapters/src/evm/cronos/CronosChainAdapter.ts new file mode 100644 index 00000000000..ba7317ab6e6 --- /dev/null +++ b/packages/chain-adapters/src/evm/cronos/CronosChainAdapter.ts @@ -0,0 +1,57 @@ +import type { AssetId } from '@shapeshiftoss/caip' +import { ASSET_REFERENCE, cronosAssetId } from '@shapeshiftoss/caip' +import type { RootBip44Params } from '@shapeshiftoss/types' +import { KnownChainIds } from '@shapeshiftoss/types' + +import { ChainAdapterDisplayName } from '../../types' +import type { TokenInfo } from '../SecondClassEvmAdapter' +import { SecondClassEvmAdapter } from '../SecondClassEvmAdapter' + +const SUPPORTED_CHAIN_IDS = [KnownChainIds.CronosMainnet] +const DEFAULT_CHAIN_ID = KnownChainIds.CronosMainnet + +export type ChainAdapterArgs = { + rpcUrl: string + getKnownTokens: () => TokenInfo[] +} + +export const isCronosChainAdapter = (adapter: unknown): adapter is ChainAdapter => { + return (adapter as ChainAdapter).getType() === KnownChainIds.CronosMainnet +} + +export class ChainAdapter extends SecondClassEvmAdapter { + public static readonly rootBip44Params: RootBip44Params = { + purpose: 44, + coinType: Number(ASSET_REFERENCE.Cronos), + accountNumber: 0, + } + + constructor(args: ChainAdapterArgs) { + super({ + assetId: cronosAssetId, + chainId: DEFAULT_CHAIN_ID, + rootBip44Params: ChainAdapter.rootBip44Params, + supportedChainIds: SUPPORTED_CHAIN_IDS, + rpcUrl: args.rpcUrl, + getKnownTokens: args.getKnownTokens, + }) + } + + getDisplayName() { + return ChainAdapterDisplayName.Cronos + } + + getName() { + return 'Cronos' + } + + getType(): KnownChainIds.CronosMainnet { + return KnownChainIds.CronosMainnet + } + + getFeeAssetId(): AssetId { + return this.assetId + } +} + +export type { TokenInfo } diff --git a/packages/chain-adapters/src/evm/cronos/index.ts b/packages/chain-adapters/src/evm/cronos/index.ts new file mode 100644 index 00000000000..38cb68caa33 --- /dev/null +++ b/packages/chain-adapters/src/evm/cronos/index.ts @@ -0,0 +1 @@ +export * from './CronosChainAdapter' diff --git a/packages/chain-adapters/src/evm/index.ts b/packages/chain-adapters/src/evm/index.ts index 33bb793ef15..b2fa8c11d3f 100644 --- a/packages/chain-adapters/src/evm/index.ts +++ b/packages/chain-adapters/src/evm/index.ts @@ -20,6 +20,7 @@ export * as plasma from './plasma' export * as mantle from './mantle' export * as megaeth from './megaeth' export * as berachain from './berachain' +export * as cronos from './cronos' export * as katana from './katana' export * as linea from './linea' export * as scroll from './scroll' diff --git a/packages/chain-adapters/src/types.ts b/packages/chain-adapters/src/types.ts index 61d2345da9b..1d26e5e94d6 100644 --- a/packages/chain-adapters/src/types.ts +++ b/packages/chain-adapters/src/types.ts @@ -51,6 +51,7 @@ type ChainSpecificAccount = ChainSpecific< [KnownChainIds.InkMainnet]: evm.Account [KnownChainIds.MegaEthMainnet]: evm.Account [KnownChainIds.BerachainMainnet]: evm.Account + [KnownChainIds.CronosMainnet]: evm.Account [KnownChainIds.KatanaMainnet]: evm.Account [KnownChainIds.LineaMainnet]: evm.Account [KnownChainIds.ScrollMainnet]: evm.Account @@ -108,6 +109,7 @@ type ChainSpecificFeeData = ChainSpecific< [KnownChainIds.InkMainnet]: evm.FeeData [KnownChainIds.MegaEthMainnet]: evm.FeeData [KnownChainIds.BerachainMainnet]: evm.FeeData + [KnownChainIds.CronosMainnet]: evm.FeeData [KnownChainIds.KatanaMainnet]: evm.FeeData [KnownChainIds.LineaMainnet]: evm.FeeData [KnownChainIds.ScrollMainnet]: evm.FeeData @@ -198,6 +200,7 @@ export type ChainSignTx = { [KnownChainIds.InkMainnet]: ETHSignTx [KnownChainIds.MegaEthMainnet]: ETHSignTx [KnownChainIds.BerachainMainnet]: ETHSignTx + [KnownChainIds.CronosMainnet]: ETHSignTx [KnownChainIds.KatanaMainnet]: ETHSignTx [KnownChainIds.LineaMainnet]: ETHSignTx [KnownChainIds.ScrollMainnet]: ETHSignTx @@ -260,6 +263,7 @@ export type ChainSpecificBuildTxData = ChainSpecific< [KnownChainIds.InkMainnet]: evm.BuildTxInput [KnownChainIds.MegaEthMainnet]: evm.BuildTxInput [KnownChainIds.BerachainMainnet]: evm.BuildTxInput + [KnownChainIds.CronosMainnet]: evm.BuildTxInput [KnownChainIds.KatanaMainnet]: evm.BuildTxInput [KnownChainIds.LineaMainnet]: evm.BuildTxInput [KnownChainIds.ScrollMainnet]: evm.BuildTxInput @@ -372,6 +376,7 @@ type ChainSpecificGetFeeDataInput = ChainSpecific< [KnownChainIds.InkMainnet]: evm.GetFeeDataInput [KnownChainIds.MegaEthMainnet]: evm.GetFeeDataInput [KnownChainIds.BerachainMainnet]: evm.GetFeeDataInput + [KnownChainIds.CronosMainnet]: evm.GetFeeDataInput [KnownChainIds.KatanaMainnet]: evm.GetFeeDataInput [KnownChainIds.LineaMainnet]: evm.GetFeeDataInput [KnownChainIds.ScrollMainnet]: evm.GetFeeDataInput @@ -449,6 +454,7 @@ export enum ChainAdapterDisplayName { Ink = 'Ink', MegaEth = 'MegaETH', Berachain = 'Berachain', + Cronos = 'Cronos', Katana = 'Katana', Linea = 'Linea', Scroll = 'Scroll', diff --git a/packages/contracts/src/ethersProviderSingleton.ts b/packages/contracts/src/ethersProviderSingleton.ts index 2208751e502..a932adf712d 100644 --- a/packages/contracts/src/ethersProviderSingleton.ts +++ b/packages/contracts/src/ethersProviderSingleton.ts @@ -38,6 +38,8 @@ export const rpcUrlByChainId = (chainId: EvmChainId): string => { return process.env.VITE_MEGAETH_NODE_URL case KnownChainIds.BerachainMainnet: return process.env.VITE_BERACHAIN_NODE_URL + case KnownChainIds.CronosMainnet: + return process.env.VITE_CRONOS_NODE_URL case KnownChainIds.KatanaMainnet: return process.env.VITE_KATANA_NODE_URL case KnownChainIds.LineaMainnet: diff --git a/packages/contracts/src/viemClient.ts b/packages/contracts/src/viemClient.ts index c0deebd1b02..6b703603eac 100644 --- a/packages/contracts/src/viemClient.ts +++ b/packages/contracts/src/viemClient.ts @@ -9,6 +9,7 @@ import { base, berachain, bsc, + cronos, gnosis, hyperEvm, ink, @@ -137,6 +138,11 @@ export const viemScrollClient = createPublicClient({ transport: fallback([process.env.VITE_SCROLL_NODE_URL].filter(Boolean).map(url => http(url))), }) as PublicClient +export const viemCronosClient = createPublicClient({ + chain: cronos, + transport: fallback([process.env.VITE_CRONOS_NODE_URL].filter(Boolean).map(url => http(url))), +}) as PublicClient + export const viemKatanaClient = createPublicClient({ chain: katana, transport: fallback([process.env.VITE_KATANA_NODE_URL].filter(Boolean).map(url => http(url))), @@ -163,6 +169,7 @@ export const viemClientByChainId: Record = { [KnownChainIds.InkMainnet]: viemInkClient, [KnownChainIds.MegaEthMainnet]: viemMegaEthClient, [KnownChainIds.BerachainMainnet]: viemBerachainClient, + [KnownChainIds.CronosMainnet]: viemCronosClient, [KnownChainIds.KatanaMainnet]: viemKatanaClient, [KnownChainIds.LineaMainnet]: viemLineaClient, [KnownChainIds.ScrollMainnet]: viemScrollClient, @@ -184,6 +191,7 @@ export const viemNetworkIdByChainId: Record = { [KnownChainIds.InkMainnet]: ink.id, [KnownChainIds.MegaEthMainnet]: megaeth.id, [KnownChainIds.BerachainMainnet]: berachain.id, + [KnownChainIds.CronosMainnet]: cronos.id, [KnownChainIds.KatanaMainnet]: katana.id, [KnownChainIds.LineaMainnet]: linea.id, [KnownChainIds.ScrollMainnet]: scroll.id, @@ -205,6 +213,7 @@ export const viemClientByNetworkId: Record = { [ink.id]: viemInkClient, [megaeth.id]: viemMegaEthClient, [berachain.id]: viemBerachainClient, + [cronos.id]: viemCronosClient, [katana.id]: viemKatanaClient, [linea.id]: viemLineaClient, [scroll.id]: viemScrollClient, diff --git a/packages/hdwallet-coinbase/src/coinbase.ts b/packages/hdwallet-coinbase/src/coinbase.ts index ad93d2f4dcc..1d668132da5 100644 --- a/packages/hdwallet-coinbase/src/coinbase.ts +++ b/packages/hdwallet-coinbase/src/coinbase.ts @@ -117,6 +117,7 @@ export class CoinbaseHDWallet implements core.HDWallet, core.ETHWallet { readonly _supportsBerachain = false readonly _supportsLinea = false readonly _supportsScroll = false + readonly _supportsCronos = false readonly _supportsOsmosisInfo = false readonly _supportsOsmosis = false readonly _supportsBinanceInfo = false diff --git a/packages/hdwallet-core/src/ethereum.ts b/packages/hdwallet-core/src/ethereum.ts index 33823e209a2..fe9b0f97d77 100644 --- a/packages/hdwallet-core/src/ethereum.ts +++ b/packages/hdwallet-core/src/ethereum.ts @@ -215,6 +215,7 @@ export interface ETHWallet extends ETHWalletInfo, HDWallet { readonly _supportsBerachain: boolean readonly _supportsLinea: boolean readonly _supportsScroll: boolean + readonly _supportsCronos: boolean ethGetAddress(msg: ETHGetAddress): Promise
ethGetAddresses?(msgs: ETHGetAddress[]): Promise diff --git a/packages/hdwallet-core/src/wallet.ts b/packages/hdwallet-core/src/wallet.ts index f5571980415..78bc19d6867 100644 --- a/packages/hdwallet-core/src/wallet.ts +++ b/packages/hdwallet-core/src/wallet.ts @@ -209,6 +209,10 @@ export function supportsScroll(wallet: HDWallet): wallet is ETHWallet { return isObject(wallet) && (wallet as any)._supportsScroll } +export function supportsCronos(wallet: HDWallet): wallet is ETHWallet { + return isObject(wallet) && (wallet as any)._supportsCronos +} + export function infoCosmos(info: HDWalletInfo): info is CosmosWalletInfo { return isObject(info) && (info as any)._supportsCosmosInfo } diff --git a/packages/hdwallet-gridplus/src/gridplus.ts b/packages/hdwallet-gridplus/src/gridplus.ts index 7ae43afb015..5429be37fcb 100644 --- a/packages/hdwallet-gridplus/src/gridplus.ts +++ b/packages/hdwallet-gridplus/src/gridplus.ts @@ -370,6 +370,7 @@ export class GridPlusHDWallet readonly _supportsBerachain = true readonly _supportsLinea = true readonly _supportsScroll = true + readonly _supportsCronos = true readonly _supportsCosmos = true readonly _supportsETH = true readonly _supportsEthSwitchChain = false diff --git a/packages/hdwallet-keepkey/src/keepkey.ts b/packages/hdwallet-keepkey/src/keepkey.ts index 46df5b0cb7f..6931095efb5 100644 --- a/packages/hdwallet-keepkey/src/keepkey.ts +++ b/packages/hdwallet-keepkey/src/keepkey.ts @@ -559,6 +559,7 @@ export class KeepKeyHDWallet readonly _supportsBerachain = false readonly _supportsLinea = false readonly _supportsScroll = false + readonly _supportsCronos = false readonly _supportsBTC = true _supportsCosmos = true _supportsOsmosis = true diff --git a/packages/hdwallet-ledger/src/ledger.ts b/packages/hdwallet-ledger/src/ledger.ts index 0c7577fee83..eae4862d9ef 100644 --- a/packages/hdwallet-ledger/src/ledger.ts +++ b/packages/hdwallet-ledger/src/ledger.ts @@ -436,6 +436,7 @@ export class LedgerHDWallet readonly _supportsBerachain = true readonly _supportsLinea = true readonly _supportsScroll = true + readonly _supportsCronos = true readonly _supportsThorchain = true readonly _supportsMayachain = true readonly _supportsCosmos = true diff --git a/packages/hdwallet-metamask-multichain/src/shapeshift-multichain.ts b/packages/hdwallet-metamask-multichain/src/shapeshift-multichain.ts index 69063226cd4..54c66c193c1 100644 --- a/packages/hdwallet-metamask-multichain/src/shapeshift-multichain.ts +++ b/packages/hdwallet-metamask-multichain/src/shapeshift-multichain.ts @@ -286,6 +286,7 @@ export class MetaMaskMultiChainHDWallet readonly _supportsBerachain = true readonly _supportsLinea = true readonly _supportsScroll = true + readonly _supportsCronos = true readonly _supportsOsmosisInfo = true readonly _supportsOsmosis = true readonly _supportsBinanceInfo = false diff --git a/packages/hdwallet-native/src/ethereum.ts b/packages/hdwallet-native/src/ethereum.ts index 1aa625ea188..f00dfdf6684 100644 --- a/packages/hdwallet-native/src/ethereum.ts +++ b/packages/hdwallet-native/src/ethereum.ts @@ -75,6 +75,7 @@ export function MixinNativeETHWallet { assetReference: ASSET_REFERENCE.Scroll, assetNamespace: ASSET_NAMESPACE.slip44, } + case CHAIN_REFERENCE.CronosMainnet: + return { + assetReference: ASSET_REFERENCE.Cronos, + assetNamespace: ASSET_NAMESPACE.slip44, + } default: throw Error(`chainId '${relayToken.chainId}' not supported`) } diff --git a/packages/types/src/base.ts b/packages/types/src/base.ts index b73d466f603..f7ebfd0ed9c 100644 --- a/packages/types/src/base.ts +++ b/packages/types/src/base.ts @@ -29,6 +29,7 @@ export enum KnownChainIds { InkMainnet = 'eip155:57073', MegaEthMainnet = 'eip155:4326', BerachainMainnet = 'eip155:80094', + CronosMainnet = 'eip155:25', KatanaMainnet = 'eip155:747474', LineaMainnet = 'eip155:59144', ScrollMainnet = 'eip155:534352', @@ -64,6 +65,7 @@ export type EvmChainId = | KnownChainIds.InkMainnet | KnownChainIds.MegaEthMainnet | KnownChainIds.BerachainMainnet + | KnownChainIds.CronosMainnet | KnownChainIds.KatanaMainnet | KnownChainIds.LineaMainnet | KnownChainIds.ScrollMainnet diff --git a/packages/types/src/zerion.ts b/packages/types/src/zerion.ts index 5bc6d5ad65b..f86ee83c902 100644 --- a/packages/types/src/zerion.ts +++ b/packages/types/src/zerion.ts @@ -5,6 +5,7 @@ import { baseChainId, berachainChainId, bscChainId, + cronosChainId, ethChainId, gnosisChainId, inkChainId, @@ -40,6 +41,7 @@ export const ZERION_CHAINS = [ 'linea', 'berachain', 'ink', + 'cronos', // not yet // 'aurora', // 'fantom', @@ -66,6 +68,7 @@ export const ZERION_CHAINS_MAP: Record = { linea: lineaChainId, berachain: berachainChainId, ink: inkChainId, + cronos: cronosChainId, } export const zerionChainIdToChainId = (chainId: ZerionChainId): ChainId | undefined => diff --git a/packages/utils/src/assetData/baseAssets.ts b/packages/utils/src/assetData/baseAssets.ts index 1be75d9dea4..3ede98f5ec4 100644 --- a/packages/utils/src/assetData/baseAssets.ts +++ b/packages/utils/src/assetData/baseAssets.ts @@ -386,6 +386,23 @@ export const ink: Readonly = Object.freeze({ relatedAssetKey: 'eip155:1/slip44:60', }) +export const cronos: Readonly = Object.freeze({ + assetId: caip.cronosAssetId, + chainId: caip.cronosChainId, + name: 'Cronos', + networkName: 'Cronos', + symbol: 'CRO', + precision: 18, + color: '#002D74', + networkColor: '#002D74', + icon: 'https://assets.relay.link/icons/25/light.png', + networkIcon: 'https://assets.relay.link/icons/25/light.png', + explorer: 'https://explorer.cronos.org', + explorerAddressLink: 'https://explorer.cronos.org/address/', + explorerTxLink: 'https://explorer.cronos.org/tx/', + relatedAssetKey: null, +}) + export const megaeth: Readonly = Object.freeze({ assetId: caip.megaethAssetId, chainId: caip.megaethChainId, diff --git a/packages/utils/src/assetData/getBaseAsset.ts b/packages/utils/src/assetData/getBaseAsset.ts index 22e88ce6896..266b0d829f5 100644 --- a/packages/utils/src/assetData/getBaseAsset.ts +++ b/packages/utils/src/assetData/getBaseAsset.ts @@ -12,6 +12,7 @@ import { bitcoin, bitcoincash, bnbsmartchain, + cronos, dogecoin, ethereum, gnosis, @@ -93,6 +94,8 @@ export const getBaseAsset = (chainId: ChainId): Readonly => { return megaeth case KnownChainIds.BerachainMainnet: return berachain + case KnownChainIds.CronosMainnet: + return cronos case KnownChainIds.KatanaMainnet: return katana case KnownChainIds.LineaMainnet: diff --git a/packages/utils/src/chainIdToFeeAssetId.ts b/packages/utils/src/chainIdToFeeAssetId.ts index 7d27d2ec656..f1afc3b37a4 100644 --- a/packages/utils/src/chainIdToFeeAssetId.ts +++ b/packages/utils/src/chainIdToFeeAssetId.ts @@ -8,6 +8,7 @@ import { bscAssetId, btcAssetId, cosmosAssetId, + cronosAssetId, dogeAssetId, ethAssetId, gnosisAssetId, @@ -92,6 +93,8 @@ export const chainIdToFeeAssetId = (_chainId: ChainId): AssetId => { return megaethAssetId case KnownChainIds.BerachainMainnet: return berachainAssetId + case KnownChainIds.CronosMainnet: + return cronosAssetId case KnownChainIds.KatanaMainnet: return katanaAssetId case KnownChainIds.LineaMainnet: diff --git a/packages/utils/src/getAssetNamespaceFromChainId.ts b/packages/utils/src/getAssetNamespaceFromChainId.ts index 41e2bd5a87f..093c58531a9 100644 --- a/packages/utils/src/getAssetNamespaceFromChainId.ts +++ b/packages/utils/src/getAssetNamespaceFromChainId.ts @@ -29,6 +29,7 @@ export const getAssetNamespaceFromChainId = (chainId: KnownChainIds): AssetNames case KnownChainIds.InkMainnet: case KnownChainIds.MegaEthMainnet: case KnownChainIds.BerachainMainnet: + case KnownChainIds.CronosMainnet: case KnownChainIds.KatanaMainnet: case KnownChainIds.LineaMainnet: case KnownChainIds.ScrollMainnet: diff --git a/packages/utils/src/getChainShortName.ts b/packages/utils/src/getChainShortName.ts index 89a6d3edd48..0053228945c 100644 --- a/packages/utils/src/getChainShortName.ts +++ b/packages/utils/src/getChainShortName.ts @@ -56,6 +56,8 @@ export const getChainShortName = (chainId: KnownChainIds) => { return 'MEGA' case KnownChainIds.BerachainMainnet: return 'BERA' + case KnownChainIds.CronosMainnet: + return 'CRO' case KnownChainIds.KatanaMainnet: return 'KAT' case KnownChainIds.LineaMainnet: diff --git a/packages/utils/src/getNativeFeeAssetReference.ts b/packages/utils/src/getNativeFeeAssetReference.ts index f41a7d06fd3..37e1a9f6a75 100644 --- a/packages/utils/src/getNativeFeeAssetReference.ts +++ b/packages/utils/src/getNativeFeeAssetReference.ts @@ -54,6 +54,8 @@ export const getNativeFeeAssetReference = ( return ASSET_REFERENCE.MegaEth case CHAIN_REFERENCE.BerachainMainnet: return ASSET_REFERENCE.Berachain + case CHAIN_REFERENCE.CronosMainnet: + return ASSET_REFERENCE.Cronos case CHAIN_REFERENCE.KatanaMainnet: return ASSET_REFERENCE.Katana case CHAIN_REFERENCE.LineaMainnet: diff --git a/public/generated/asset-manifest.json b/public/generated/asset-manifest.json index 33e9d27c8a0..ef7ed225006 100644 --- a/public/generated/asset-manifest.json +++ b/public/generated/asset-manifest.json @@ -1,4 +1,4 @@ { - "assetData": "006cfa3b", - "relatedAssetIndex": "af42ced7" + "assetData": "9c8d5da0", + "relatedAssetIndex": "2cc85f13" } \ No newline at end of file diff --git a/public/generated/asset-manifest.json.br b/public/generated/asset-manifest.json.br index fd46c77eb26..f76b9d19020 100644 Binary files a/public/generated/asset-manifest.json.br and b/public/generated/asset-manifest.json.br differ diff --git a/public/generated/asset-manifest.json.gz b/public/generated/asset-manifest.json.gz index a98736eb443..d19e8144dc6 100644 Binary files a/public/generated/asset-manifest.json.gz and b/public/generated/asset-manifest.json.gz differ diff --git a/public/generated/generatedAssetData.json b/public/generated/generatedAssetData.json index 8e9755c413b..b961f28511a 100644 --- a/public/generated/generatedAssetData.json +++ b/public/generated/generatedAssetData.json @@ -19437,7 +19437,7 @@ "explorer": "https://etherscan.io", "explorerAddressLink": "https://etherscan.io/address/", "explorerTxLink": "https://etherscan.io/tx/", - "relatedAssetKey": null + "relatedAssetKey": "eip155:25/erc20:0x39bc1e38c842c60775ce37566d03b41a7a66c782" }, "eip155:1/erc20:0x2f3bc4c27a4437aeca13de0e37cdf1028f3706f0": { "explorer": "https://etherscan.io", @@ -54279,7 +54279,7 @@ "explorer": "https://etherscan.io", "explorerAddressLink": "https://etherscan.io/address/", "explorerTxLink": "https://etherscan.io/tx/", - "relatedAssetKey": null + "relatedAssetKey": "eip155:25/erc20:0x0224010ba2d567ffa014222ed960d1fa43b8c8e1" }, "eip155:1/erc20:0x80a0102a1e601c55fd3f136128bb2d222a879ff3": { "explorer": "https://etherscan.io", @@ -55428,7 +55428,7 @@ "explorer": "https://etherscan.io", "explorerAddressLink": "https://etherscan.io/address/", "explorerTxLink": "https://etherscan.io/tx/", - "relatedAssetKey": null + "relatedAssetKey": "eip155:25/erc20:0x2d03bece6747adc00e1a131bba1469c15fd11e03" }, "eip155:1/erc20:0x83abecf7204d5afc1bea5df734f085f2535a9976": { "explorer": "https://etherscan.io", @@ -67436,7 +67436,7 @@ "explorer": "https://etherscan.io", "explorerAddressLink": "https://etherscan.io/address/", "explorerTxLink": "https://etherscan.io/tx/", - "relatedAssetKey": null + "relatedAssetKey": "eip155:1/erc20:0xa0b73e1ff0b80914ab6fe0444e65848c4c34450b" }, "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48": { "assetId": "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", @@ -105847,7 +105847,7 @@ "explorer": "https://etherscan.io", "explorerAddressLink": "https://etherscan.io/address/", "explorerTxLink": "https://etherscan.io/tx/", - "relatedAssetKey": null + "relatedAssetKey": "eip155:25/erc20:0x7a7c9db510ab29a2fc362a4c34260becb5ce3446" }, "eip155:1/erc20:0xfe2e637202056d30016725477c5da089ab0a043a": { "assetId": "eip155:1/erc20:0xfe2e637202056d30016725477c5da089ab0a043a", @@ -204068,7 +204068,7 @@ "explorer": "https://polygonscan.com/", "explorerAddressLink": "https://polygonscan.com/address/", "explorerTxLink": "https://polygonscan.com/tx/", - "relatedAssetKey": null + "relatedAssetKey": "eip155:25/erc20:0x00d7699b71290094ccb1a5884cd835bd65a78c17" }, "eip155:137/erc20:0x8505b9d2254a7ae468c0e9dd10ccea3a837aef5c": { "assetId": "eip155:137/erc20:0x8505b9d2254a7ae468c0e9dd10ccea3a837aef5c", @@ -263852,7 +263852,7 @@ "explorer": "https://bscscan.com", "explorerAddressLink": "https://bscscan.com/address/", "explorerTxLink": "https://bscscan.com/tx/", - "relatedAssetKey": null + "relatedAssetKey": "eip155:25/erc20:0x444075ea64d69bf5002ae1a7f44642e46f8b56d4" }, "eip155:56/erc20:0x66e3daa0c86e0ad56302d36af0e7c1ba24442244": { "assetId": "eip155:56/erc20:0x66e3daa0c86e0ad56302d36af0e7c1ba24442244", @@ -315839,7 +315839,7 @@ "explorer": "https://basescan.org", "explorerAddressLink": "https://basescan.org/address/", "explorerTxLink": "https://basescan.org/tx/", - "relatedAssetKey": null + "relatedAssetKey": "eip155:25/erc20:0xd50f5739a09f36c6f97cc9a4849c5462ba6129a3" }, "eip155:8453/erc20:0x56f8ad6112c2db9f9848243531b277ce1c3be30c": { "assetId": "eip155:8453/erc20:0x56f8ad6112c2db9f9848243531b277ce1c3be30c", @@ -428290,6 +428290,1595 @@ "explorerAddressLink": "https://mantlescan.xyz/address/", "explorerTxLink": "https://mantlescan.xyz/tx/", "relatedAssetKey": null + }, + "eip155:25/erc20:0x00d7699b71290094ccb1a5884cd835bd65a78c17": { + "assetId": "eip155:25/erc20:0x00d7699b71290094ccb1a5884cd835bd65a78c17", + "chainId": "eip155:25", + "name": "VersaGames", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/25491/large/versa_token_96_96.png?1696524624", + "symbol": "VERSA", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:25/erc20:0x00d7699b71290094ccb1a5884cd835bd65a78c17" + }, + "eip155:25/erc20:0x00f3be09978ca2b7ef5014c6020b045a705eb593": { + "assetId": "eip155:25/erc20:0x00f3be09978ca2b7ef5014c6020b045a705eb593", + "chainId": "eip155:25", + "name": "CROTCH", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/68017/large/Crotch_Token_Logo_200.png?1754598551", + "symbol": "CROTCH", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:42161/erc20:0xa88a1ed0bac18727a615299ce5f557b8220a33d7" + }, + "eip155:25/erc20:0x0224010ba2d567ffa014222ed960d1fa43b8c8e1": { + "assetId": "eip155:25/erc20:0x0224010ba2d567ffa014222ed960d1fa43b8c8e1", + "chainId": "eip155:25", + "name": "Minted", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/26893/large/MTD_Token_%282%29.png?1696525951", + "symbol": "MTD", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:25/erc20:0x0224010ba2d567ffa014222ed960d1fa43b8c8e1" + }, + "eip155:25/erc20:0x025f1575908d85815198390b2e5366fe754f8207": { + "assetId": "eip155:25/erc20:0x025f1575908d85815198390b2e5366fe754f8207", + "chainId": "eip155:25", + "name": "InoAi", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/55757/large/InoAi-logo-200px.png?1747301005", + "symbol": "INO", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x02dccaf514c98451320a9365c5b46c61d3246ff3": { + "assetId": "eip155:25/erc20:0x02dccaf514c98451320a9365c5b46c61d3246ff3", + "chainId": "eip155:25", + "name": "Dogelon Mars", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/14962/large/6GxcPRo3_400x400.jpg?1696514622", + "symbol": "ELON", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:56/erc20:0x7bd6fabd64813c48545c9c0e312a0099d9be2540" + }, + "eip155:25/erc20:0x055c517654d72a45b0d64dc8733f8a38e27fd49c": { + "assetId": "eip155:25/erc20:0x055c517654d72a45b0d64dc8733f8a38e27fd49c", + "chainId": "eip155:25", + "name": "ryoshi with knife", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/36694/large/meme-coin-logo-150.png?1712116022", + "symbol": "RYOSHI", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x062e66477faf219f25d27dced647bf57c3107d52": { + "assetId": "eip155:25/erc20:0x062e66477faf219f25d27dced647bf57c3107d52", + "chainId": "eip155:25", + "name": "Cronos Bridged WBTC (Cronos)", + "precision": 8, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/39555/large/WBTCLOGO.png?1764570095", + "symbol": "WBTC", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:1/erc20:0x2260fac5e5542a773aa44fbcfedf7c193bc2c599" + }, + "eip155:25/erc20:0x06c04b0ad236e7ca3b3189b1d049fe80109c7977": { + "assetId": "eip155:25/erc20:0x06c04b0ad236e7ca3b3189b1d049fe80109c7977", + "chainId": "eip155:25", + "name": "Bored Candy City", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/28505/large/TTndY-iM_400x400.png?1696527498", + "symbol": "CANDY", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x0804702a4e749d39a35fde73d1df0b1f1d6b8347": { + "assetId": "eip155:25/erc20:0x0804702a4e749d39a35fde73d1df0b1f1d6b8347", + "chainId": "eip155:25", + "name": "Single Finance", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/22616/large/single.png?1696521932", + "symbol": "SINGLE", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x08d9cb5100c306c2909b63415d7ff05268633b41": { + "assetId": "eip155:25/erc20:0x08d9cb5100c306c2909b63415d7ff05268633b41", + "chainId": "eip155:25", + "name": "Cronos Legends", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/67872/large/CLG_%282%29.png?1754111543", + "symbol": "CLG", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x0aeba21655185583367f19d0c882dfc654c6dd54": { + "assetId": "eip155:25/erc20:0x0aeba21655185583367f19d0c882dfc654c6dd54", + "chainId": "eip155:25", + "name": "Obsidian", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/70163/large/OBS_Token_Logo_%28Custom%29.png?1760861425", + "symbol": "OBS", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x0cefcd5f75907b38c308b06b70d392ff19123094": { + "assetId": "eip155:25/erc20:0x0cefcd5f75907b38c308b06b70d392ff19123094", + "chainId": "eip155:25", + "name": "Sonorc", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37439/large/SONORC_v2.png?1714380639", + "symbol": "SONORC", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x0d0b4a6fc6e7f5635c2ff38de75af2e96d6d6804": { + "assetId": "eip155:25/erc20:0x0d0b4a6fc6e7f5635c2ff38de75af2e96d6d6804", + "chainId": "eip155:25", + "name": "Wolfies", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/71685/large/logo-transparent.png?1769069913", + "symbol": "PACK", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x0e517979c2c1c1522ddb0c73905e0d39b3f990c0": { + "assetId": "eip155:25/erc20:0x0e517979c2c1c1522ddb0c73905e0d39b3f990c0", + "chainId": "eip155:25", + "name": "Wrapped ADA", + "precision": 6, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/24791/large/ezgif-2-07900fc0ac.jpg?1696523951", + "symbol": "WADA", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x0e66ed8e8646472ab98a7acd38e7bdcb86da456f": { + "assetId": "eip155:25/erc20:0x0e66ed8e8646472ab98a7acd38e7bdcb86da456f", + "chainId": "eip155:25", + "name": "BAD TOKEN", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37902/large/Bad_png.png?1715880801", + "symbol": "BAD", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x13c0ff45d019a5888db92631f18556211001883d": { + "assetId": "eip155:25/erc20:0x13c0ff45d019a5888db92631f18556211001883d", + "chainId": "eip155:25", + "name": "President PLATY", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37781/large/LOGO_200_x_200.png?1760598022", + "symbol": "PLATY", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x181cc996eea445212e61bd45ff742b88c3907287": { + "assetId": "eip155:25/erc20:0x181cc996eea445212e61bd45ff742b88c3907287", + "chainId": "eip155:25", + "name": "Krees", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/36369/large/krees.png?1711338344", + "symbol": "KREES", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x19258a1df9e929d02b34621cf52797998ae1aa27": { + "assetId": "eip155:25/erc20:0x19258a1df9e929d02b34621cf52797998ae1aa27", + "chainId": "eip155:25", + "name": "MarbleVerse", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/24844/large/RLM200x200.png?1696524000", + "symbol": "RLM", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x212331e1435a8df230715db4c02b2a3a0abf8c61": { + "assetId": "eip155:25/erc20:0x212331e1435a8df230715db4c02b2a3a0abf8c61", + "chainId": "eip155:25", + "name": "MAD Bucks", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/24770/large/mmt_200x200.png?1696523931", + "symbol": "MAD", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x26e11c74793977e4d719e449aa08b0d65cb45c9c": { + "assetId": "eip155:25/erc20:0x26e11c74793977e4d719e449aa08b0d65cb45c9c", + "chainId": "eip155:25", + "name": "LetsCRO", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37563/large/LFC_Logo.jpg?1714877364", + "symbol": "LFC", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x276e28664dec4982f892a5b836e11f23040b6995": { + "assetId": "eip155:25/erc20:0x276e28664dec4982f892a5b836e11f23040b6995", + "chainId": "eip155:25", + "name": "Veno Staked TIA", + "precision": 6, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/38107/large/Component_1.png?1716532718", + "symbol": "LTIA", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x2829955d8aac64f184e363516fdfbb0394042b90": { + "assetId": "eip155:25/erc20:0x2829955d8aac64f184e363516fdfbb0394042b90", + "chainId": "eip155:25", + "name": "Kris", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/54968/large/Untitled_design_%284%29.png?1742923775", + "symbol": "KRIS", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x288898a6057d2d4989c533e96cb3bc30843c91d7": { + "assetId": "eip155:25/erc20:0x288898a6057d2d4989c533e96cb3bc30843c91d7", + "chainId": "eip155:25", + "name": "puush da button", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37550/large/Untitled_design.png?1714734619", + "symbol": "PUUSH", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x2ae35c8e3d4bd57e8898ff7cd2bbff87166ef8cb": { + "assetId": "eip155:25/erc20:0x2ae35c8e3d4bd57e8898ff7cd2bbff87166ef8cb", + "chainId": "eip155:25", + "name": "MAI (Cronos)", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37336/large/mimatic-red.png?1714033787", + "symbol": "MIMATIC", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x2b986eeb82356b518d0deb1fcd5d102184bf4f7d": { + "assetId": "eip155:25/erc20:0x2b986eeb82356b518d0deb1fcd5d102184bf4f7d", + "chainId": "eip155:25", + "name": "The Pride", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/55453/large/pride_logo_200x.png?1746086993", + "symbol": "PRIDE", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x2d03bece6747adc00e1a131bba1469c15fd11e03": { + "assetId": "eip155:25/erc20:0x2d03bece6747adc00e1a131bba1469c15fd11e03", + "chainId": "eip155:25", + "name": "VVS Finance", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/20210/large/8glAYOTM_400x400.jpg?1696519620", + "symbol": "VVS", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:25/erc20:0x2d03bece6747adc00e1a131bba1469c15fd11e03" + }, + "eip155:25/erc20:0x2e53c5586e12a99d4cae366e9fc5c14fe9c6495d": { + "assetId": "eip155:25/erc20:0x2e53c5586e12a99d4cae366e9fc5c14fe9c6495d", + "chainId": "eip155:25", + "name": "Crypto.com Wrapped BTC", + "precision": 8, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/52289/large/CDCBTC_Logo_%28200x200%29.png?1732962611", + "symbol": "CDCBTC", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x335ac13e6399d55f3f26698884d2ad9e74cb2201": { + "assetId": "eip155:25/erc20:0x335ac13e6399d55f3f26698884d2ad9e74cb2201", + "chainId": "eip155:25", + "name": "Lioness", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/68826/large/cto.jpg?1756707446", + "symbol": "LIONESS", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x34acea6cc02578af041a5e976b7289ca23ccb7a8": { + "assetId": "eip155:25/erc20:0x34acea6cc02578af041a5e976b7289ca23ccb7a8", + "chainId": "eip155:25", + "name": "skull with ripped hood", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37866/large/logo-rip-200.png?1715796625", + "symbol": "RIP", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x37888159581ac2cdea5fb9c3ed50265a19ede8dd": { + "assetId": "eip155:25/erc20:0x37888159581ac2cdea5fb9c3ed50265a19ede8dd", + "chainId": "eip155:25", + "name": "Full Moon", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/68003/large/FM.png?1754551719", + "symbol": "FM", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x39bc1e38c842c60775ce37566d03b41a7a66c782": { + "assetId": "eip155:25/erc20:0x39bc1e38c842c60775ce37566d03b41a7a66c782", + "chainId": "eip155:25", + "name": "Ferro", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/26111/large/FER_Token.png?1696525201", + "symbol": "FER", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:25/erc20:0x39bc1e38c842c60775ce37566d03b41a7a66c782" + }, + "eip155:25/erc20:0x3b41b27e74dd366ce27cb389dc7877d4e1516d4d": { + "assetId": "eip155:25/erc20:0x3b41b27e74dd366ce27cb389dc7877d4e1516d4d", + "chainId": "eip155:25", + "name": "Mistery", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/36620/large/Mistery_Fam_%281%29.png?1711980099", + "symbol": "MERY", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x40914bbddea0ec8d22e044cd3131f1b5ed4e866d": { + "assetId": "eip155:25/erc20:0x40914bbddea0ec8d22e044cd3131f1b5ed4e866d", + "chainId": "eip155:25", + "name": "ORB", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/38712/large/Orbit_Icons_%281%29.png?1718403085", + "symbol": "ORB", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x41bc026dabe978bc2fafea1850456511ca4b01bc": { + "assetId": "eip155:25/erc20:0x41bc026dabe978bc2fafea1850456511ca4b01bc", + "chainId": "eip155:25", + "name": "Aryoshin", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/69224/large/Ary.png?1757925349", + "symbol": "ARY", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x431469ce9d70a5879e959bf15cffad003dc7f69f": { + "assetId": "eip155:25/erc20:0x431469ce9d70a5879e959bf15cffad003dc7f69f", + "chainId": "eip155:25", + "name": "Damoon", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37941/large/damoonpfp200.png?1715968028", + "symbol": "DAMOON", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x444075ea64d69bf5002ae1a7f44642e46f8b56d4": { + "assetId": "eip155:25/erc20:0x444075ea64d69bf5002ae1a7f44642e46f8b56d4", + "chainId": "eip155:25", + "name": "Cronos Army", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/69410/large/icon_big_coingecko_XIn0E9W7_%281%29.jpg?1758526254", + "symbol": "CA", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:25/erc20:0x444075ea64d69bf5002ae1a7f44642e46f8b56d4" + }, + "eip155:25/erc20:0x45bd9349554eed8550186353a2ac4495ffdd0307": { + "assetId": "eip155:25/erc20:0x45bd9349554eed8550186353a2ac4495ffdd0307", + "chainId": "eip155:25", + "name": "FartcoinCRO", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/67092/large/PFFT_200x200.png?1751703254", + "symbol": "PFFT", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x45c135c1cdce8d25a3b729a28659561385c52671": { + "assetId": "eip155:25/erc20:0x45c135c1cdce8d25a3b729a28659561385c52671", + "chainId": "eip155:25", + "name": "Artificial Liquid Intelligence", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/22062/large/ALI-v2.webp?1728501978", + "symbol": "ALI", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:8453/erc20:0x97c806e7665d3afd84a8fe1837921403d59f3dcc" + }, + "eip155:25/erc20:0x46e2b5423f6ff46a8a35861ec9daff26af77ab9a": { + "assetId": "eip155:25/erc20:0x46e2b5423f6ff46a8a35861ec9daff26af77ab9a", + "chainId": "eip155:25", + "name": "Moonflow [OLD]", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/34862/large/profile_pic_test_%281%29.jpg?1716085666", + "symbol": "MOON", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x47a9d630dc5b28f75d3af3be3aaa982512cd89aa": { + "assetId": "eip155:25/erc20:0x47a9d630dc5b28f75d3af3be3aaa982512cd89aa", + "chainId": "eip155:25", + "name": "Argo Finance", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/25381/large/argo-protocol.jpeg?1696524514", + "symbol": "ARGO", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x4d7c922d6c12cfbf5bc85f56c9ccb1f61f49bf61": { + "assetId": "eip155:25/erc20:0x4d7c922d6c12cfbf5bc85f56c9ccb1f61f49bf61", + "chainId": "eip155:25", + "name": "KitCoin", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/69909/large/_KITTY_PFP_Circle_200.png?1759988049", + "symbol": "KITTY", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x4dda1bb6e378dcef97bff1057b6452615e86373c": { + "assetId": "eip155:25/erc20:0x4dda1bb6e378dcef97bff1057b6452615e86373c", + "chainId": "eip155:25", + "name": "Kaching", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/32731/large/_KCH_%281%29.png?1699217833", + "symbol": "KCH", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x50c0c5bda591bc7e89a342a3ed672fb59b3c46a7": { + "assetId": "eip155:25/erc20:0x50c0c5bda591bc7e89a342a3ed672fb59b3c46a7", + "chainId": "eip155:25", + "name": "Mad Meerkat Optimizer", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/22367/large/MMO.png?1696521710", + "symbol": "MMO", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x59bafb7168972ecca5e395f7da88e71ece47a260": { + "assetId": "eip155:25/erc20:0x59bafb7168972ecca5e395f7da88e71ece47a260", + "chainId": "eip155:25", + "name": "Papparico Finance Token", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37320/large/papparico_token_logo_200x200.png?1713977781", + "symbol": "PPFT", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x59e60d641677cecae77868176f314f42572f5284": { + "assetId": "eip155:25/erc20:0x59e60d641677cecae77868176f314f42572f5284", + "chainId": "eip155:25", + "name": "Nuts", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/36463/large/logo_nuts.png?1711510697", + "symbol": "NUTS", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x5c7f8a570d578ed84e63fdfa7b1ee72deae1ae23": { + "assetId": "eip155:25/erc20:0x5c7f8a570d578ed84e63fdfa7b1ee72deae1ae23", + "chainId": "eip155:25", + "name": "Wrapped CRO", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/20401/large/cro.jpg?1696519810", + "symbol": "WCRO", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x63ed0a82cac237667c89cd6ac5bfa2317186fdaa": { + "assetId": "eip155:25/erc20:0x63ed0a82cac237667c89cd6ac5bfa2317186fdaa", + "chainId": "eip155:25", + "name": "Crob Mob", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/36978/large/RiOPseZH_400x400.jpg?1712917076", + "symbol": "CROB", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x6467df17771ab26d1825bf0891b3c421d92ebc1d": { + "assetId": "eip155:25/erc20:0x6467df17771ab26d1825bf0891b3c421d92ebc1d", + "chainId": "eip155:25", + "name": "BUILD", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/26533/large/BUILD.png?1696525607", + "symbol": "BUILD", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:43114/erc20:0x5f018e73c185ab23647c82bd039e762813877f0e" + }, + "eip155:25/erc20:0x654bac3ec77d6db497892478f854cf6e8245dca9": { + "assetId": "eip155:25/erc20:0x654bac3ec77d6db497892478f854cf6e8245dca9", + "chainId": "eip155:25", + "name": "Savanna", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/23692/large/SVN_LOGO.png?1696522893", + "symbol": "SVN", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x664e4b17ea045fe92868821f3ee0a76a5db38166": { + "assetId": "eip155:25/erc20:0x664e4b17ea045fe92868821f3ee0a76a5db38166", + "chainId": "eip155:25", + "name": "Robin on Cronos", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/38028/large/logo200.png?1716318749", + "symbol": "ROBIN", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x66e428c3f67a68878562e79a0234c1f83c208770": { + "assetId": "eip155:25/erc20:0x66e428c3f67a68878562e79a0234c1f83c208770", + "chainId": "eip155:25", + "name": "Cronos Bridged USDT (Cronos)", + "precision": 6, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/35025/large/USDT.png?1707233700", + "symbol": "USDT", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:1/erc20:0xdac17f958d2ee523a2206206994597c13d831ec7" + }, + "eip155:25/erc20:0x679f6863a653251c8c215e77205a7058b5bf676a": { + "assetId": "eip155:25/erc20:0x679f6863a653251c8c215e77205a7058b5bf676a", + "chainId": "eip155:25", + "name": "TrollCoin", + "precision": 9, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/36298/large/TrollCoinLogo.jpg?1711049328", + "symbol": "TROLL", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x6b431b8a964bfcf28191b07c91189ff4403957d0": { + "assetId": "eip155:25/erc20:0x6b431b8a964bfcf28191b07c91189ff4403957d0", + "chainId": "eip155:25", + "name": "CorgiAI", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/30933/large/Token.png?1696529775", + "symbol": "CORGIAI", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x6d96e46ec8938d94aee531daacba3d947eefd114": { + "assetId": "eip155:25/erc20:0x6d96e46ec8938d94aee531daacba3d947eefd114", + "chainId": "eip155:25", + "name": "Ballies", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/52858/large/TOKEN_BALL_%281%29.png?1734539332", + "symbol": "BALL", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x707056bcaf0cd3d2ffa148c5d5771da4efa174ca": { + "assetId": "eip155:25/erc20:0x707056bcaf0cd3d2ffa148c5d5771da4efa174ca", + "chainId": "eip155:25", + "name": "Eric", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/66599/large/Screenshot_20250331_210240_Photos__videos.png?1749886241", + "symbol": "ERIC", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x71b60b37f030d0cff949855b9d0405915057b116": { + "assetId": "eip155:25/erc20:0x71b60b37f030d0cff949855b9d0405915057b116", + "chainId": "eip155:25", + "name": "CRONUS", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/66301/large/IMG_5228.png?1749151157", + "symbol": "CRONUS", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x7492450cc8897a4e444ad972eb1619251ef15c23": { + "assetId": "eip155:25/erc20:0x7492450cc8897a4e444ad972eb1619251ef15c23", + "chainId": "eip155:25", + "name": "GoodMorning", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/38162/large/Logo-2.png?1716674743", + "symbol": "GM", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x75689264a5e2dab1b27ddfb2b10592872139659a": { + "assetId": "eip155:25/erc20:0x75689264a5e2dab1b27ddfb2b10592872139659a", + "chainId": "eip155:25", + "name": "Loaf Token", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/38486/large/2024-06-07_16.12.53.jpg?1717749626", + "symbol": "LOAF", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x7a7c9db510ab29a2fc362a4c34260becb5ce3446": { + "assetId": "eip155:25/erc20:0x7a7c9db510ab29a2fc362a4c34260becb5ce3446", + "chainId": "eip155:25", + "name": "Crypto.com Staked ETH", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/33537/large/CDCETH-1.png?1702366745", + "symbol": "CDCETH", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:25/erc20:0x7a7c9db510ab29a2fc362a4c34260becb5ce3446" + }, + "eip155:25/erc20:0x83afb1c32e5637acd0a452d87c3249f4a9f0013a": { + "assetId": "eip155:25/erc20:0x83afb1c32e5637acd0a452d87c3249f4a9f0013a", + "chainId": "eip155:25", + "name": "Fulcrom", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/29684/large/FUL_Token_%281%29.png?1696528618", + "symbol": "FUL", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x83b2ac8642ae46fc2823bc959ffeb3c1742c48b5": { + "assetId": "eip155:25/erc20:0x83b2ac8642ae46fc2823bc959ffeb3c1742c48b5", + "chainId": "eip155:25", + "name": "DarkCrypto", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/22456/large/DARK_bgWhite.png?1696521779", + "symbol": "DARK", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x85608d6373fdcfc9fb1582187dc3a81c2942f3f2": { + "assetId": "eip155:25/erc20:0x85608d6373fdcfc9fb1582187dc3a81c2942f3f2", + "chainId": "eip155:25", + "name": "Chucky", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37469/large/chucky-logo.png?1714457397", + "symbol": "CHUCKY", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x87efb3ec1576dec8ed47e58b832bedcd86ee186e": { + "assetId": "eip155:25/erc20:0x87efb3ec1576dec8ed47e58b832bedcd86ee186e", + "chainId": "eip155:25", + "name": "Bridged TrueUSD", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/30837/large/tusd.jpeg?1696529695", + "symbol": "TUSD", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:42161/erc20:0x4d15a3a2286d883af0aa1b3f21367843fac63e07" + }, + "eip155:25/erc20:0x88bf399d2bbbe7ba3c1ebef2ac83ae7571ff10d7": { + "assetId": "eip155:25/erc20:0x88bf399d2bbbe7ba3c1ebef2ac83ae7571ff10d7", + "chainId": "eip155:25", + "name": "FROGS", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/53436/large/logo_frogs.jpg?1736370062", + "symbol": "FROGS", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x898cd4e6f0a364956e28cb0b51f67a4a0f02589c": { + "assetId": "eip155:25/erc20:0x898cd4e6f0a364956e28cb0b51f67a4a0f02589c", + "chainId": "eip155:25", + "name": "BONE", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/69998/large/bone_logo.png?1760339064", + "symbol": "$BONE", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x8c80a01f461f297df7f9da3a4f740d7297c8ac85": { + "assetId": "eip155:25/erc20:0x8c80a01f461f297df7f9da3a4f740d7297c8ac85", + "chainId": "eip155:25", + "name": "Chainlink", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/877/large/Chainlink_Logo_500.png?1760023405", + "symbol": "LINK", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:42161/erc20:0xf97f4df75117a78c1a5a0dbb814af92458539fb4" + }, + "eip155:25/erc20:0x8c9e2bef2962ce302ef578113eebec62920b7e57": { + "assetId": "eip155:25/erc20:0x8c9e2bef2962ce302ef578113eebec62920b7e57", + "chainId": "eip155:25", + "name": "Turtle", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/68717/large/Turtleoncro-logo-1.png?1756368773", + "symbol": "TURTLE", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x8f857af6ea31447bb502fe0e3f4e4340cdfcfc6c": { + "assetId": "eip155:25/erc20:0x8f857af6ea31447bb502fe0e3f4e4340cdfcfc6c", + "chainId": "eip155:25", + "name": "IcyCRO", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/36182/large/logo_200x200.png?1710758243", + "symbol": "ICY", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x91dd2788e3fbed8d7c027145c38fba86e49381dc": { + "assetId": "eip155:25/erc20:0x91dd2788e3fbed8d7c027145c38fba86e49381dc", + "chainId": "eip155:25", + "name": "Awoo", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/70977/large/awookris.png?1764955777", + "symbol": "AWOO", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x9315054f01bf8c13ee67c8498af09a1933cbf24c": { + "assetId": "eip155:25/erc20:0x9315054f01bf8c13ee67c8498af09a1933cbf24c", + "chainId": "eip155:25", + "name": "xCRX", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/28034/large/xCRX_%28200_%C3%97_200_px%29.png?1696527049", + "symbol": "XCRX", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x95aeaf383e2e86a47c11cffde1f7944ecb2c38c2": { + "assetId": "eip155:25/erc20:0x95aeaf383e2e86a47c11cffde1f7944ecb2c38c2", + "chainId": "eip155:25", + "name": "Mad USD", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/25480/large/musd.png?1696524613", + "symbol": "MUSD", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x96733708c4157218b6e6889eb9e16b1df7873061": { + "assetId": "eip155:25/erc20:0x96733708c4157218b6e6889eb9e16b1df7873061", + "chainId": "eip155:25", + "name": "AgentFun.AI", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/52133/large/AIFUN_%282%29.png?1732639482", + "symbol": "AGENTFUN", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x97749c9b61f878a880dfe312d2594ae07aed7656": { + "assetId": "eip155:25/erc20:0x97749c9b61f878a880dfe312d2594ae07aed7656", + "chainId": "eip155:25", + "name": "MMFinance (Cronos)", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/22273/large/MMF200X200.png?1696521621", + "symbol": "MMF", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x9d3bbb0e988d9fb2d55d07fe471be2266ad9c81c": { + "assetId": "eip155:25/erc20:0x9d3bbb0e988d9fb2d55d07fe471be2266ad9c81c", + "chainId": "eip155:25", + "name": "DarkCrypto Share", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/22517/large/logo-token-2.e9c15b63.png?1696521840", + "symbol": "SKY", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x9d8c68f185a04314ddc8b8216732455e8dbb7e45": { + "assetId": "eip155:25/erc20:0x9d8c68f185a04314ddc8b8216732455e8dbb7e45", + "chainId": "eip155:25", + "name": "Loaded Lions", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/54686/large/_LION_Token_Artwork.png?1741015702", + "symbol": "LION", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x9fa6552c1e9df51070a3b456355b5d76cbd59b5a": { + "assetId": "eip155:25/erc20:0x9fa6552c1e9df51070a3b456355b5d76cbd59b5a", + "chainId": "eip155:25", + "name": "Emit", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/38224/large/EMIT.png?1716827400", + "symbol": "EMIT", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0x9fae23a2700feecd5b93e43fdbc03c76aa7c08a6": { + "assetId": "eip155:25/erc20:0x9fae23a2700feecd5b93e43fdbc03c76aa7c08a6", + "chainId": "eip155:25", + "name": "Liquid CRO", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/28546/large/LCRO_light_%281%29.png?1696527537", + "symbol": "LCRO", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xa0d445dc147f598d63518b5783ca97cd8bd9f5bc": { + "assetId": "eip155:25/erc20:0xa0d445dc147f598d63518b5783ca97cd8bd9f5bc", + "chainId": "eip155:25", + "name": "Mouse In Pasta", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37598/large/Design_sans_titre_%2881%29.png?1714984952", + "symbol": "STUCK", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xa776f5b86cc520861f55a261515264e3bd86e72e": { + "assetId": "eip155:25/erc20:0xa776f5b86cc520861f55a261515264e3bd86e72e", + "chainId": "eip155:25", + "name": "Sphynx Labs", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/30142/large/photo_2023-05-03_21.44.17.jpeg?1696529063", + "symbol": "SPHYNX", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:56/erc20:0xa776f5b86cc520861f55a261515264e3bd86e72e" + }, + "eip155:25/erc20:0xabd380327fe66724ffda91a87c772fb8d00be488": { + "assetId": "eip155:25/erc20:0xabd380327fe66724ffda91a87c772fb8d00be488", + "chainId": "eip155:25", + "name": "Liquidus (Old)", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/18749/large/liq.png?1696518214", + "symbol": "LIQ", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xac974ee7fc5d083112c809ccb3fce4a4f385750d": { + "assetId": "eip155:25/erc20:0xac974ee7fc5d083112c809ccb3fce4a4f385750d", + "chainId": "eip155:25", + "name": "Liquid ATOM", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/30437/large/LATOM_Logo_200_200.png?1696529325", + "symbol": "LATOM", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xacda402e87a76944fb2d8ab5b4e468a747765688": { + "assetId": "eip155:25/erc20:0xacda402e87a76944fb2d8ab5b4e468a747765688", + "chainId": "eip155:25", + "name": "SCHNITZEL", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/66399/large/46fc1018-20f2-4c15-83ba-f91dc9fcbc58-r222movebg-preview__1_-removebg-preview.png?1749288506", + "symbol": "SNTZL", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xadbd1231fb360047525bedf962581f3eee7b49fe": { + "assetId": "eip155:25/erc20:0xadbd1231fb360047525bedf962581f3eee7b49fe", + "chainId": "eip155:25", + "name": "CronaSwap", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/21098/large/logox200.png?1696520479", + "symbol": "CRONA", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xaf02d78f39c0002d14b95a3be272da02379aff21": { + "assetId": "eip155:25/erc20:0xaf02d78f39c0002d14b95a3be272da02379aff21", + "chainId": "eip155:25", + "name": "Fortune Token", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/30768/large/fortune_token.png?1696529636", + "symbol": "FRTN", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xb157c8560984eba102334c5eb4f0416952747a6e": { + "assetId": "eip155:25/erc20:0xb157c8560984eba102334c5eb4f0416952747a6e", + "chainId": "eip155:25", + "name": "Ballz of Steel", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/52504/large/IMG_7121.JPG?1733478554", + "symbol": "BALLZ", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xb1d4e07659c91872db927939f0bc6cd0747764bc": { + "assetId": "eip155:25/erc20:0xb1d4e07659c91872db927939f0bc6cd0747764bc", + "chainId": "eip155:25", + "name": "Vies Token", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/67054/large/VIES_LOGO.png?1751614206", + "symbol": "VIES", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xba69b94c2e2c961226d25cc3d0255e5845fd34e7": { + "assetId": "eip155:25/erc20:0xba69b94c2e2c961226d25cc3d0255e5845fd34e7", + "chainId": "eip155:25", + "name": "🎣", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/69959/large/MjM0OA__.png?1760170732", + "symbol": "FISH", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xbcfe5aff53fb269969725c12e5b9c3ab18b3b66c": { + "assetId": "eip155:25/erc20:0xbcfe5aff53fb269969725c12e5b9c3ab18b3b66c", + "chainId": "eip155:25", + "name": "BOBz", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/68673/large/Bobzlogo.png?1756211132", + "symbol": "BOBZ", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xbdd4e5660839a088573191a9889a262c0efc0983": { + "assetId": "eip155:25/erc20:0xbdd4e5660839a088573191a9889a262c0efc0983", + "chainId": "eip155:25", + "name": "PhotonSwap", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/23064/large/photonswap.jpg?1696522355", + "symbol": "PHOTON", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xc21223249ca28397b4b6541dffaecc539bff0c59": { + "assetId": "eip155:25/erc20:0xc21223249ca28397b4b6541dffaecc539bff0c59", + "chainId": "eip155:25", + "name": "Cronos Bridged USDC (Cronos)", + "precision": 6, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/35227/large/USDC.jpg?1707923223", + "symbol": "USDC", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "eip155:25/erc20:0xc4a174ccb5fb54a6721e11e0ca961e42715023f9": { + "assetId": "eip155:25/erc20:0xc4a174ccb5fb54a6721e11e0ca961e42715023f9", + "chainId": "eip155:25", + "name": "Crogecoin", + "precision": 9, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/24903/large/transparent.png?1696524061", + "symbol": "CROGE", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xc9bc831cd26073762fb5d6eb3382d9847a83daa1": { + "assetId": "eip155:25/erc20:0xc9bc831cd26073762fb5d6eb3382d9847a83daa1", + "chainId": "eip155:25", + "name": "CDOG-community", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/68911/large/IMG_9048.jpeg?1756971305", + "symbol": "CDOG", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xca6acbbf0823a3c302426f81fc1e826ad84b005b": { + "assetId": "eip155:25/erc20:0xca6acbbf0823a3c302426f81fc1e826ad84b005b", + "chainId": "eip155:25", + "name": "Todin", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/69024/large/Todinx200.2.png?1757427450", + "symbol": "TDN", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xcbde0e17d14f49e10a10302a32d17ae88a7ecb8b": { + "assetId": "eip155:25/erc20:0xcbde0e17d14f49e10a10302a32d17ae88a7ecb8b", + "chainId": "eip155:25", + "name": "Crystl Finance", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/17023/large/CRYSTL_Rebrand_Logo.png?1696516586", + "symbol": "CRYSTL", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xcbf0adea24fd5f32c6e7f0474f0d1b94ace4e2e7": { + "assetId": "eip155:25/erc20:0xcbf0adea24fd5f32c6e7f0474f0d1b94ace4e2e7", + "chainId": "eip155:25", + "name": "Cronos ID", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/28498/large/Cronos_ID_Logo.png?1696527490", + "symbol": "CROID", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xccccccccdbec186dc426f8b5628af94737df0e60": { + "assetId": "eip155:25/erc20:0xccccccccdbec186dc426f8b5628af94737df0e60", + "chainId": "eip155:25", + "name": "crow with knife", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/36067/large/200px.png?1710405601", + "symbol": "CAW", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xcfe223d06b86568c24ffd17e8ac748dbac096b3b": { + "assetId": "eip155:25/erc20:0xcfe223d06b86568c24ffd17e8ac748dbac096b3b", + "chainId": "eip155:25", + "name": "NeurotiCat", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/67476/large/dextool2.png?1752899050", + "symbol": "NEURO", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xd2ee4bd0d1be7e84160dc459006f6e0970f8313c": { + "assetId": "eip155:25/erc20:0xd2ee4bd0d1be7e84160dc459006f6e0970f8313c", + "chainId": "eip155:25", + "name": "H2 Finance", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/39766/large/H2_Finance.png?1724018149", + "symbol": "$H2", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xd37015dbe943fc81053232de3f757154cbaa9e7c": { + "assetId": "eip155:25/erc20:0xd37015dbe943fc81053232de3f757154cbaa9e7c", + "chainId": "eip155:25", + "name": "Make CRO Great Again", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/68814/large/200x200_MCGA_CM.png?1756757027", + "symbol": "MCGA", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xd42e078cea2be8d03cd9dfecc1f0d28915edea78": { + "assetId": "eip155:25/erc20:0xd42e078cea2be8d03cd9dfecc1f0d28915edea78", + "chainId": "eip155:25", + "name": "Orby Network USC Stablecoin", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/35639/large/Orbit_Icons_200_200.png?1709294875", + "symbol": "USC", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xd50f5739a09f36c6f97cc9a4849c5462ba6129a3": { + "assetId": "eip155:25/erc20:0xd50f5739a09f36c6f97cc9a4849c5462ba6129a3", + "chainId": "eip155:25", + "name": "Croginal Cats", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/39333/large/croginalcoin.png?1721793281", + "symbol": "CROGINAL", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:25/erc20:0xd50f5739a09f36c6f97cc9a4849c5462ba6129a3" + }, + "eip155:25/erc20:0xd60d5a5e9b9bc7018ced7198ed71467f968e8a31": { + "assetId": "eip155:25/erc20:0xd60d5a5e9b9bc7018ced7198ed71467f968e8a31", + "chainId": "eip155:25", + "name": "MyCroStrategy", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/69452/large/MYCRO_X_profile.png?1758642518", + "symbol": "MCS", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xd677944df705924af369d2fccf4a989f343dbcdf": { + "assetId": "eip155:25/erc20:0xd677944df705924af369d2fccf4a989f343dbcdf", + "chainId": "eip155:25", + "name": "FORTUNE FAVOURS THE BRAVE", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37554/large/FFTB_transparent_full_size.png?1714752488", + "symbol": "FFTB", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xd896aa25da8e3832d68d1c05fee9c851d42f1dc1": { + "assetId": "eip155:25/erc20:0xd896aa25da8e3832d68d1c05fee9c851d42f1dc1", + "chainId": "eip155:25", + "name": "AurumTrust", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/56090/large/AurumTrust.jpg?1748374552", + "symbol": "AUT", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xdb7d0a1ec37de1de924f8e8adac6ed338d4404e9": { + "assetId": "eip155:25/erc20:0xdb7d0a1ec37de1de924f8e8adac6ed338d4404e9", + "chainId": "eip155:25", + "name": "Veno Finance", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/28799/large/Veno_Token_dark.png?1696527777", + "symbol": "VNO", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xdd73dea10abc2bff99c60882ec5b2b81bb1dc5b2": { + "assetId": "eip155:25/erc20:0xdd73dea10abc2bff99c60882ec5b2b81bb1dc5b2", + "chainId": "eip155:25", + "name": "Tectonic", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/21982/large/TONIC_logo.png?1696521330", + "symbol": "TONIC", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xdf50068a8b84028884c5725613132b2c592baa61": { + "assetId": "eip155:25/erc20:0xdf50068a8b84028884c5725613132b2c592baa61", + "chainId": "eip155:25", + "name": "PawsFlow", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/71182/large/Pawsflow-logo_nobg.png?1766220374", + "symbol": "PAWSFLOW", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xe1f864ae527d3646c222fe1b65460db2d6e62228": { + "assetId": "eip155:25/erc20:0xe1f864ae527d3646c222fe1b65460db2d6e62228", + "chainId": "eip155:25", + "name": "Nova Fox", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/55925/large/Adobe_Express_2025-05-18_12.18.33.png?1747760272", + "symbol": "NFX", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xe243ccab9e66e6cf1215376980811ddf1eb7f689": { + "assetId": "eip155:25/erc20:0xe243ccab9e66e6cf1215376980811ddf1eb7f689", + "chainId": "eip155:25", + "name": "Crodex", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/21771/large/j9UTZnAh_400x400.jpg?1696521126", + "symbol": "CRX", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xe44fd7fcb2b1581822d0c862b68222998a0c299a": { + "assetId": "eip155:25/erc20:0xe44fd7fcb2b1581822d0c862b68222998a0c299a", + "chainId": "eip155:25", + "name": "Bridged WETH", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/39723/large/WETH.PNG?1723733967", + "symbol": "WETH", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xe45fe733bc8617fa6dac8437fc44b5fffa949991": { + "assetId": "eip155:25/erc20:0xe45fe733bc8617fa6dac8437fc44b5fffa949991", + "chainId": "eip155:25", + "name": "Xitcoin", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/55892/large/transparent-logo.png?1747622919", + "symbol": "$XTC", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xebaceb7f193955b946cc5dd8f8724a80671a1f2f": { + "assetId": "eip155:25/erc20:0xebaceb7f193955b946cc5dd8f8724a80671a1f2f", + "chainId": "eip155:25", + "name": "Bonded Cronos", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/26198/large/bCROlogo.png?1696525284", + "symbol": "BCRO", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xed70e1b02a63fafd5ece7c0a2a1b12d4b424b4a8": { + "assetId": "eip155:25/erc20:0xed70e1b02a63fafd5ece7c0a2a1b12d4b424b4a8", + "chainId": "eip155:25", + "name": "Croakey", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/37503/large/croak.jpg?1714578830", + "symbol": "CROAK", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xeeeeeb57642040be42185f49c52f7e9b38f8eeee": { + "assetId": "eip155:25/erc20:0xeeeeeb57642040be42185f49c52f7e9b38f8eeee", + "chainId": "eip155:25", + "name": "Elk Finance", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/17813/large/elk.png?1696517333", + "symbol": "ELK", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:43114/erc20:0xeeeeeb57642040be42185f49c52f7e9b38f8eeee" + }, + "eip155:25/erc20:0xf2001b145b43032aaf5ee2884e456ccd805f677d": { + "assetId": "eip155:25/erc20:0xf2001b145b43032aaf5ee2884e456ccd805f677d", + "chainId": "eip155:25", + "name": "Crypto.com Bridged DAI (Cronos)", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/39819/large/dai.png?1724190900", + "symbol": "DAI", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f" + }, + "eip155:25/erc20:0xf24409d155965ca87c45ad5bc084ad8ad3be4f39": { + "assetId": "eip155:25/erc20:0xf24409d155965ca87c45ad5bc084ad8ad3be4f39", + "chainId": "eip155:25", + "name": "Capybara Nation", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/51932/large/Capybara_Icon_1.png?1732205150", + "symbol": "BARA", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xf44acfdc916898449e39062934c2b496799b6abe": { + "assetId": "eip155:25/erc20:0xf44acfdc916898449e39062934c2b496799b6abe", + "chainId": "eip155:25", + "name": "Stargate Bridged WETH", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/69466/large/weth_2.jpg?1758701596", + "symbol": "WETH", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:1/erc20:0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" + }, + "eip155:25/erc20:0xf899e3909b4492859d44260e1de41a9e663e70f5": { + "assetId": "eip155:25/erc20:0xf899e3909b4492859d44260e1de41a9e663e70f5", + "chainId": "eip155:25", + "name": "RadioShack", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/25307/large/ZVoPiysPJq6dPIZm_Se-6vjmsBepwhHlTQfdYZRILbHyVVTRUYCO-wmJJ4zT10HXCGv1j-ZyWr2u2sBaVlap5Y-ILqeXZuIquWdBDxxG0E0qDpgH7omLqYdgWWLSM_TUK9d1PiiYdu6bERdCDaucgFjlqwmhVQK4uV4jyUiXzchVUnu8Qt6SnxlNxz88G0mQ_tfiwkFv_vKqtgb1CcPycVZVz9.jpg?1696524444", + "symbol": "RADIO", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:43114/erc20:0x02bfd11499847003de5f0f5aa081c43854d48815" + }, + "eip155:25/erc20:0xf951ec28187d9e5ca673da8fe6757e6f0be5f77c": { + "assetId": "eip155:25/erc20:0xf951ec28187d9e5ca673da8fe6757e6f0be5f77c", + "chainId": "eip155:25", + "name": "Stargate Bridged USDC", + "precision": 6, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/69316/large/usdc.jpg?1758186473", + "symbol": "USDC.E", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48" + }, + "eip155:25/erc20:0xfd71fc52d34ed1cfc8363e5528285b12b6b942c2": { + "assetId": "eip155:25/erc20:0xfd71fc52d34ed1cfc8363e5528285b12b6b942c2", + "chainId": "eip155:25", + "name": "DuckyDefi", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/23564/large/LDoi0N5YEA_l8vbR4lL_6plCcklHA3ZNEu5Kgf5kVCqKBe8cMKo7azDzuAp2ivUMWlZtHPBcZMirGW-4E6-9Fz8noNIX-1eaVcDYig-QkhNRn5DF8zNO6NPSoIARer8a5Zcbs1thirIU9D9waIOdB2b_y3DcOtX_S8qvVeRxcP0XM6qE1fdyqqkSLOe63JmKXt_Dd9de2k_EkC.jpg?1696522769", + "symbol": "DEGG", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/erc20:0xfdea7ab3ce8cd76d6bf8d430beb9e0cb602ad392": { + "assetId": "eip155:25/erc20:0xfdea7ab3ce8cd76d6bf8d430beb9e0cb602ad392", + "chainId": "eip155:25", + "name": "PigeonToken", + "precision": 18, + "color": "#FFFFFF", + "icon": "https://assets.coingecko.com/coins/images/69716/large/PigeonToken_200x200px.png?1759398273", + "symbol": "PIQ", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": null + }, + "eip155:25/slip44:60": { + "assetId": "eip155:25/slip44:60", + "chainId": "eip155:25", + "name": "Cronos", + "networkName": "Cronos", + "symbol": "CRO", + "precision": 18, + "color": "#002D74", + "networkColor": "#002D74", + "icon": "https://assets.relay.link/icons/25/light.png", + "networkIcon": "https://assets.relay.link/icons/25/light.png", + "explorer": "https://explorer.cronos.org", + "explorerAddressLink": "https://explorer.cronos.org/address/", + "explorerTxLink": "https://explorer.cronos.org/tx/", + "relatedAssetKey": "eip155:1/erc20:0xa0b73e1ff0b80914ab6fe0444e65848c4c34450b" } }, "ids": [ @@ -458775,6 +460364,128 @@ "eip155:5000/erc20:0xf793ac038e7688aa3220005852836108cddb065c", "eip155:5000/erc20:0xfbf2398df672cee4afcc2a4a733222331c742a6a", "eip155:5000/erc20:0xfe36cf0b43aae49fbc5cfc5c0af22a623114e043", - "eip155:5000/slip44:60" + "eip155:5000/slip44:60", + "eip155:25/erc20:0x00d7699b71290094ccb1a5884cd835bd65a78c17", + "eip155:25/erc20:0x00f3be09978ca2b7ef5014c6020b045a705eb593", + "eip155:25/erc20:0x0224010ba2d567ffa014222ed960d1fa43b8c8e1", + "eip155:25/erc20:0x025f1575908d85815198390b2e5366fe754f8207", + "eip155:25/erc20:0x02dccaf514c98451320a9365c5b46c61d3246ff3", + "eip155:25/erc20:0x055c517654d72a45b0d64dc8733f8a38e27fd49c", + "eip155:25/erc20:0x062e66477faf219f25d27dced647bf57c3107d52", + "eip155:25/erc20:0x06c04b0ad236e7ca3b3189b1d049fe80109c7977", + "eip155:25/erc20:0x0804702a4e749d39a35fde73d1df0b1f1d6b8347", + "eip155:25/erc20:0x08d9cb5100c306c2909b63415d7ff05268633b41", + "eip155:25/erc20:0x0aeba21655185583367f19d0c882dfc654c6dd54", + "eip155:25/erc20:0x0cefcd5f75907b38c308b06b70d392ff19123094", + "eip155:25/erc20:0x0d0b4a6fc6e7f5635c2ff38de75af2e96d6d6804", + "eip155:25/erc20:0x0e517979c2c1c1522ddb0c73905e0d39b3f990c0", + "eip155:25/erc20:0x0e66ed8e8646472ab98a7acd38e7bdcb86da456f", + "eip155:25/erc20:0x13c0ff45d019a5888db92631f18556211001883d", + "eip155:25/erc20:0x181cc996eea445212e61bd45ff742b88c3907287", + "eip155:25/erc20:0x19258a1df9e929d02b34621cf52797998ae1aa27", + "eip155:25/erc20:0x212331e1435a8df230715db4c02b2a3a0abf8c61", + "eip155:25/erc20:0x26e11c74793977e4d719e449aa08b0d65cb45c9c", + "eip155:25/erc20:0x276e28664dec4982f892a5b836e11f23040b6995", + "eip155:25/erc20:0x2829955d8aac64f184e363516fdfbb0394042b90", + "eip155:25/erc20:0x288898a6057d2d4989c533e96cb3bc30843c91d7", + "eip155:25/erc20:0x2ae35c8e3d4bd57e8898ff7cd2bbff87166ef8cb", + "eip155:25/erc20:0x2b986eeb82356b518d0deb1fcd5d102184bf4f7d", + "eip155:25/erc20:0x2d03bece6747adc00e1a131bba1469c15fd11e03", + "eip155:25/erc20:0x2e53c5586e12a99d4cae366e9fc5c14fe9c6495d", + "eip155:25/erc20:0x335ac13e6399d55f3f26698884d2ad9e74cb2201", + "eip155:25/erc20:0x34acea6cc02578af041a5e976b7289ca23ccb7a8", + "eip155:25/erc20:0x37888159581ac2cdea5fb9c3ed50265a19ede8dd", + "eip155:25/erc20:0x39bc1e38c842c60775ce37566d03b41a7a66c782", + "eip155:25/erc20:0x3b41b27e74dd366ce27cb389dc7877d4e1516d4d", + "eip155:25/erc20:0x40914bbddea0ec8d22e044cd3131f1b5ed4e866d", + "eip155:25/erc20:0x41bc026dabe978bc2fafea1850456511ca4b01bc", + "eip155:25/erc20:0x431469ce9d70a5879e959bf15cffad003dc7f69f", + "eip155:25/erc20:0x444075ea64d69bf5002ae1a7f44642e46f8b56d4", + "eip155:25/erc20:0x45bd9349554eed8550186353a2ac4495ffdd0307", + "eip155:25/erc20:0x45c135c1cdce8d25a3b729a28659561385c52671", + "eip155:25/erc20:0x46e2b5423f6ff46a8a35861ec9daff26af77ab9a", + "eip155:25/erc20:0x47a9d630dc5b28f75d3af3be3aaa982512cd89aa", + "eip155:25/erc20:0x4d7c922d6c12cfbf5bc85f56c9ccb1f61f49bf61", + "eip155:25/erc20:0x4dda1bb6e378dcef97bff1057b6452615e86373c", + "eip155:25/erc20:0x50c0c5bda591bc7e89a342a3ed672fb59b3c46a7", + "eip155:25/erc20:0x59bafb7168972ecca5e395f7da88e71ece47a260", + "eip155:25/erc20:0x59e60d641677cecae77868176f314f42572f5284", + "eip155:25/erc20:0x5c7f8a570d578ed84e63fdfa7b1ee72deae1ae23", + "eip155:25/erc20:0x63ed0a82cac237667c89cd6ac5bfa2317186fdaa", + "eip155:25/erc20:0x6467df17771ab26d1825bf0891b3c421d92ebc1d", + "eip155:25/erc20:0x654bac3ec77d6db497892478f854cf6e8245dca9", + "eip155:25/erc20:0x664e4b17ea045fe92868821f3ee0a76a5db38166", + "eip155:25/erc20:0x66e428c3f67a68878562e79a0234c1f83c208770", + "eip155:25/erc20:0x679f6863a653251c8c215e77205a7058b5bf676a", + "eip155:25/erc20:0x6b431b8a964bfcf28191b07c91189ff4403957d0", + "eip155:25/erc20:0x6d96e46ec8938d94aee531daacba3d947eefd114", + "eip155:25/erc20:0x707056bcaf0cd3d2ffa148c5d5771da4efa174ca", + "eip155:25/erc20:0x71b60b37f030d0cff949855b9d0405915057b116", + "eip155:25/erc20:0x7492450cc8897a4e444ad972eb1619251ef15c23", + "eip155:25/erc20:0x75689264a5e2dab1b27ddfb2b10592872139659a", + "eip155:25/erc20:0x7a7c9db510ab29a2fc362a4c34260becb5ce3446", + "eip155:25/erc20:0x83afb1c32e5637acd0a452d87c3249f4a9f0013a", + "eip155:25/erc20:0x83b2ac8642ae46fc2823bc959ffeb3c1742c48b5", + "eip155:25/erc20:0x85608d6373fdcfc9fb1582187dc3a81c2942f3f2", + "eip155:25/erc20:0x87efb3ec1576dec8ed47e58b832bedcd86ee186e", + "eip155:25/erc20:0x88bf399d2bbbe7ba3c1ebef2ac83ae7571ff10d7", + "eip155:25/erc20:0x898cd4e6f0a364956e28cb0b51f67a4a0f02589c", + "eip155:25/erc20:0x8c80a01f461f297df7f9da3a4f740d7297c8ac85", + "eip155:25/erc20:0x8c9e2bef2962ce302ef578113eebec62920b7e57", + "eip155:25/erc20:0x8f857af6ea31447bb502fe0e3f4e4340cdfcfc6c", + "eip155:25/erc20:0x91dd2788e3fbed8d7c027145c38fba86e49381dc", + "eip155:25/erc20:0x9315054f01bf8c13ee67c8498af09a1933cbf24c", + "eip155:25/erc20:0x95aeaf383e2e86a47c11cffde1f7944ecb2c38c2", + "eip155:25/erc20:0x96733708c4157218b6e6889eb9e16b1df7873061", + "eip155:25/erc20:0x97749c9b61f878a880dfe312d2594ae07aed7656", + "eip155:25/erc20:0x9d3bbb0e988d9fb2d55d07fe471be2266ad9c81c", + "eip155:25/erc20:0x9d8c68f185a04314ddc8b8216732455e8dbb7e45", + "eip155:25/erc20:0x9fa6552c1e9df51070a3b456355b5d76cbd59b5a", + "eip155:25/erc20:0x9fae23a2700feecd5b93e43fdbc03c76aa7c08a6", + "eip155:25/erc20:0xa0d445dc147f598d63518b5783ca97cd8bd9f5bc", + "eip155:25/erc20:0xa776f5b86cc520861f55a261515264e3bd86e72e", + "eip155:25/erc20:0xabd380327fe66724ffda91a87c772fb8d00be488", + "eip155:25/erc20:0xac974ee7fc5d083112c809ccb3fce4a4f385750d", + "eip155:25/erc20:0xacda402e87a76944fb2d8ab5b4e468a747765688", + "eip155:25/erc20:0xadbd1231fb360047525bedf962581f3eee7b49fe", + "eip155:25/erc20:0xaf02d78f39c0002d14b95a3be272da02379aff21", + "eip155:25/erc20:0xb157c8560984eba102334c5eb4f0416952747a6e", + "eip155:25/erc20:0xb1d4e07659c91872db927939f0bc6cd0747764bc", + "eip155:25/erc20:0xba69b94c2e2c961226d25cc3d0255e5845fd34e7", + "eip155:25/erc20:0xbcfe5aff53fb269969725c12e5b9c3ab18b3b66c", + "eip155:25/erc20:0xbdd4e5660839a088573191a9889a262c0efc0983", + "eip155:25/erc20:0xc21223249ca28397b4b6541dffaecc539bff0c59", + "eip155:25/erc20:0xc4a174ccb5fb54a6721e11e0ca961e42715023f9", + "eip155:25/erc20:0xc9bc831cd26073762fb5d6eb3382d9847a83daa1", + "eip155:25/erc20:0xca6acbbf0823a3c302426f81fc1e826ad84b005b", + "eip155:25/erc20:0xcbde0e17d14f49e10a10302a32d17ae88a7ecb8b", + "eip155:25/erc20:0xcbf0adea24fd5f32c6e7f0474f0d1b94ace4e2e7", + "eip155:25/erc20:0xccccccccdbec186dc426f8b5628af94737df0e60", + "eip155:25/erc20:0xcfe223d06b86568c24ffd17e8ac748dbac096b3b", + "eip155:25/erc20:0xd2ee4bd0d1be7e84160dc459006f6e0970f8313c", + "eip155:25/erc20:0xd37015dbe943fc81053232de3f757154cbaa9e7c", + "eip155:25/erc20:0xd42e078cea2be8d03cd9dfecc1f0d28915edea78", + "eip155:25/erc20:0xd50f5739a09f36c6f97cc9a4849c5462ba6129a3", + "eip155:25/erc20:0xd60d5a5e9b9bc7018ced7198ed71467f968e8a31", + "eip155:25/erc20:0xd677944df705924af369d2fccf4a989f343dbcdf", + "eip155:25/erc20:0xd896aa25da8e3832d68d1c05fee9c851d42f1dc1", + "eip155:25/erc20:0xdb7d0a1ec37de1de924f8e8adac6ed338d4404e9", + "eip155:25/erc20:0xdd73dea10abc2bff99c60882ec5b2b81bb1dc5b2", + "eip155:25/erc20:0xdf50068a8b84028884c5725613132b2c592baa61", + "eip155:25/erc20:0xe1f864ae527d3646c222fe1b65460db2d6e62228", + "eip155:25/erc20:0xe243ccab9e66e6cf1215376980811ddf1eb7f689", + "eip155:25/erc20:0xe44fd7fcb2b1581822d0c862b68222998a0c299a", + "eip155:25/erc20:0xe45fe733bc8617fa6dac8437fc44b5fffa949991", + "eip155:25/erc20:0xebaceb7f193955b946cc5dd8f8724a80671a1f2f", + "eip155:25/erc20:0xed70e1b02a63fafd5ece7c0a2a1b12d4b424b4a8", + "eip155:25/erc20:0xeeeeeb57642040be42185f49c52f7e9b38f8eeee", + "eip155:25/erc20:0xf2001b145b43032aaf5ee2884e456ccd805f677d", + "eip155:25/erc20:0xf24409d155965ca87c45ad5bc084ad8ad3be4f39", + "eip155:25/erc20:0xf44acfdc916898449e39062934c2b496799b6abe", + "eip155:25/erc20:0xf899e3909b4492859d44260e1de41a9e663e70f5", + "eip155:25/erc20:0xf951ec28187d9e5ca673da8fe6757e6f0be5f77c", + "eip155:25/erc20:0xfd71fc52d34ed1cfc8363e5528285b12b6b942c2", + "eip155:25/erc20:0xfdea7ab3ce8cd76d6bf8d430beb9e0cb602ad392", + "eip155:25/slip44:60" ] -} \ No newline at end of file +} diff --git a/public/generated/generatedAssetData.json.br b/public/generated/generatedAssetData.json.br index 9c5c38b56ed..2350d881c4a 100644 Binary files a/public/generated/generatedAssetData.json.br and b/public/generated/generatedAssetData.json.br differ diff --git a/public/generated/generatedAssetData.json.gz b/public/generated/generatedAssetData.json.gz index d227679ad45..026b57596cf 100644 Binary files a/public/generated/generatedAssetData.json.gz and b/public/generated/generatedAssetData.json.gz differ diff --git a/public/generated/relatedAssetIndex.json b/public/generated/relatedAssetIndex.json index 16962bc146f..487fb77146d 100644 --- a/public/generated/relatedAssetIndex.json +++ b/public/generated/relatedAssetIndex.json @@ -1401,8 +1401,9 @@ "sui:35834a8a/coin:0x0041f9f9344cac094454cd574e333c4fdb132d7bcc9379bcd4aab485b2a63942::wbtc::WBTC", "sui:35834a8a/coin:0xaafb102dd0902f5055cadecd687fb5b71ca82ef0e0285d90afde828ec58ca96b::btc::BTC", "eip155:80094/erc20:0x0555e30da8f98308edb960aa94c0db47230d2b9c", - "eip155:59144/erc20:0x3aab2285ddcddad8edf438c1bab47e1a9d05a9b4", - "eip155:59144/erc20:0xe516a5cff996cc399efbb48355fd5ab83438e7a9" + "eip155:25/erc20:0x062e66477faf219f25d27dced647bf57c3107d52", + "eip155:59144/erc20:0xe516a5cff996cc399efbb48355fd5ab83438e7a9", + "eip155:59144/erc20:0x3aab2285ddcddad8edf438c1bab47e1a9d05a9b4" ], "eip155:8453/erc20:0xc5fed7c8ccc75d8a72b601a66dffd7a489073f0b": [ "eip155:56/erc20:0x6ef2ffb38d64afe18ce782da280b300e358cfeaf", @@ -3105,7 +3106,8 @@ "eip155:57073/erc20:0x71052bae71c25c78e37fd12e5ff1101a71d9018f", "eip155:80094/erc20:0x71052bae71c25c78e37fd12e5ff1101a71d9018f", "eip155:59144/erc20:0xa18152629128738a5c081eb226335fed4b9c95e9", - "eip155:5000/erc20:0xfe36cf0b43aae49fbc5cfc5c0af22a623114e043" + "eip155:5000/erc20:0xfe36cf0b43aae49fbc5cfc5c0af22a623114e043", + "eip155:25/erc20:0x8c80a01f461f297df7f9da3a4f740d7297c8ac85" ], "eip155:42161/erc20:0x315a2dca4b1b633d3a707c71d96243534c02f7c4": [ "eip155:8453/erc20:0x78bb8ff6baa486c31ce0ef1a157798f7a606565c", @@ -3281,7 +3283,8 @@ "eip155:1/erc20:0x57b59f981730c6257df57cf6f0d98283749a9eeb", "eip155:10/erc20:0xe4de4b87345815c71aa843ea4841bcdc682637bb", "eip155:137/erc20:0xe94845ac6782a2e71c407abe4d5201445c26a62b", - "eip155:43114/erc20:0x5f018e73c185ab23647c82bd039e762813877f0e" + "eip155:43114/erc20:0x5f018e73c185ab23647c82bd039e762813877f0e", + "eip155:25/erc20:0x6467df17771ab26d1825bf0891b3c421d92ebc1d" ], "eip155:42161/erc20:0x57f5e098cad7a3d1eed53991d4d66c45c9af7812": [ "eip155:43114/erc20:0x57f5e098cad7a3d1eed53991d4d66c45c9af7812", @@ -4073,7 +4076,8 @@ "eip155:1/erc20:0x6b0b3a982b4634ac68dd83a4dbf02311ce324181", "eip155:137/erc20:0xbfc70507384047aa74c29cdc8c5cb88d0f7213ac", "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:9wvorGtBJ8gyLorFTmwXWcymPoGVUBn6MRzHwFpCdCeC", - "eip155:8453/erc20:0x97c806e7665d3afd84a8fe1837921403d59f3dcc" + "eip155:8453/erc20:0x97c806e7665d3afd84a8fe1837921403d59f3dcc", + "eip155:25/erc20:0x45c135c1cdce8d25a3b729a28659561385c52671" ], "eip155:56/erc20:0xfed13d0c40790220fbde712987079eda1ed75c51": [ "eip155:1/erc20:0x6c76de483f1752ac8473e2b4983a873991e70da7", @@ -4137,6 +4141,7 @@ "eip155:42161/erc20:0xda10009cbd5d07dd0cecc66161fc93d7c9000da1", "starknet:SN_MAIN/token:0x5574eb6b8789a91466f902c380d978e472db68170ff82a5b650b95a58ddf4ad", "starknet:SN_MAIN/token:0xda114221cb83fa859dbdb4c44beeaa0bb37c7537ad5ae66fe5e0efd20e6eb3", + "eip155:25/erc20:0xf2001b145b43032aaf5ee2884e456ccd805f677d", "eip155:59144/erc20:0x4af15ec2a0bd43db75dd04e62faa3b8ef36b00d5" ], "eip155:1/erc20:0x6c28aef8977c9b773996d0e8376d2ee379446f2f": [ @@ -4511,7 +4516,8 @@ "eip155:1/erc20:0x761d38e5ddf6ccf6cf7c55759d5210750b5d60f3", "eip155:137/erc20:0xe0339c80ffde91f3e20494df88d4206d86024cdf", "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:7ZCm8WBN9aLa3o47SoYctU6iLdj7wkGG5SV2hE5CgtD5", - "eip155:56/erc20:0x7bd6fabd64813c48545c9c0e312a0099d9be2540" + "eip155:56/erc20:0x7bd6fabd64813c48545c9c0e312a0099d9be2540", + "eip155:25/erc20:0x02dccaf514c98451320a9365c5b46c61d3246ff3" ], "eip155:1/erc20:0x75639ae3a05079873d7189dcbdbc455898cae904": [ "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:XsqML71RLbyUM3CmY4EYN88zE6BJkpvJACnUKBdGD3x", @@ -4654,7 +4660,8 @@ "eip155:1/erc20:0x7a5d3a9dcd33cb8d527f7b5f96eb4fef43d55636", "eip155:10/erc20:0xf899e3909b4492859d44260e1de41a9e663e70f5", "eip155:137/erc20:0x613a489785c95afeb3b404cc41565ccff107b6e0", - "eip155:43114/erc20:0x02bfd11499847003de5f0f5aa081c43854d48815" + "eip155:43114/erc20:0x02bfd11499847003de5f0f5aa081c43854d48815", + "eip155:25/erc20:0xf899e3909b4492859d44260e1de41a9e663e70f5" ], "eip155:1/erc20:0x7d3ce1265d5ea5848dc1c96aadbf754e2bad33b1": [ "eip155:10/erc20:0x7d3ce1265d5ea5848dc1c96aadbf754e2bad33b1", @@ -6068,8 +6075,10 @@ "eip155:57073/erc20:0xf1815bd50389c46847f0bda824ec8da914045d14", "eip155:59144/erc20:0xeb466342c4d449bc9f53a865d5cb90586f405215", "eip155:5000/erc20:0xeb466342c4d449bc9f53a865d5cb90586f405215", + "eip155:25/erc20:0xf951ec28187d9e5ca673da8fe6757e6f0be5f77c", "eip155:59144/erc20:0x176211869ca2b568f2a7d4ee941e073a821ee1ff", - "eip155:5000/erc20:0x09bc4e0d864854c6afb6eb9a9cdf58ac190d0df9" + "eip155:5000/erc20:0x09bc4e0d864854c6afb6eb9a9cdf58ac190d0df9", + "eip155:25/erc20:0xc21223249ca28397b4b6541dffaecc539bff0c59" ], "eip155:8453/erc20:0x9c632e6aaa3ea73f91554f8a3cb2ed2f29605e0c": [ "eip155:56/erc20:0x7324c7c0d95cebc73eea7e85cbaac0dbdf88a05b", @@ -6401,7 +6410,8 @@ "eip155:1/erc20:0xaa407cae90e31b94fb384dbc6f79325ca0324048", "eip155:137/erc20:0x94195b2b2b5e772aec57d98c55a57dbbfe05b0fc", "eip155:42161/erc20:0xa88a1ed0bac18727a615299ce5f557b8220a33d7", - "eip155:59144/erc20:0xa1d241276b76638ee74fc04c7152208596954a44" + "eip155:59144/erc20:0xa1d241276b76638ee74fc04c7152208596954a44", + "eip155:25/erc20:0x00f3be09978ca2b7ef5014c6020b045a705eb593" ], "eip155:42161/erc20:0xa753a7395cae905cd615da0b82a53e0560f250af": [ "eip155:1/erc20:0xa753a7395cae905cd615da0b82a53e0560f250af", @@ -7308,6 +7318,7 @@ "eip155:747474/erc20:0xee7d8bcfb72bc1880d0cf19822eb0a2e6577ab62", "eip155:747474/erc20:0x9893989433e7a383cb313953e4c2365107dc19a7", "eip155:80094/erc20:0x2f6f07cdcf3588944bf4c42ac74ff24bf56e7590", + "eip155:25/erc20:0xf44acfdc916898449e39062934c2b496799b6abe", "eip155:59144/erc20:0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f", "eip155:5000/erc20:0xdeaddeaddeaddeaddeaddeaddeaddeaddead1111" ], @@ -8353,6 +8364,7 @@ "eip155:57073/erc20:0x1217bfe6c773eec6cc4a38b5dc45b92292b6e189", "eip155:80094/erc20:0x779ded0c9e1022225f8e0630b35a9b54be713736", "eip155:5000/erc20:0x779ded0c9e1022225f8e0630b35a9b54be713736", + "eip155:25/erc20:0x66e428c3f67a68878562e79a0234c1f83c208770", "eip155:59144/erc20:0xa219439258ca9da29e9cc4ce5596924745e12b93", "eip155:5000/erc20:0x201eba5cc46d216ce6dc03f6a759e8e766e956ae" ], @@ -9074,7 +9086,8 @@ "eip155:100/erc20:0xeeeeeb57642040be42185f49c52f7e9b38f8eeee", "eip155:137/erc20:0xeeeeeb57642040be42185f49c52f7e9b38f8eeee", "eip155:56/erc20:0xeeeeeb57642040be42185f49c52f7e9b38f8eeee", - "eip155:43114/erc20:0xeeeeeb57642040be42185f49c52f7e9b38f8eeee" + "eip155:43114/erc20:0xeeeeeb57642040be42185f49c52f7e9b38f8eeee", + "eip155:25/erc20:0xeeeeeb57642040be42185f49c52f7e9b38f8eeee" ], "eip155:42161/erc20:0x5b041a4e76b08c5afc1e0b9a789cbfab5ebec993": [ "eip155:8453/erc20:0x0709f6caceefd70b867ed3ea278b911238eb7f6f", @@ -9651,7 +9664,8 @@ "eip155:56/erc20:0x14016e85a25aeb13065688cafb43044c2ef86784", "eip155:10/erc20:0xcb59a0a753fdb7491d5f3d794316f1ade197b21e", "eip155:137/erc20:0x2e1ad108ff1d8c782fcbbb89aad783ac49586756", - "eip155:42161/erc20:0x4d15a3a2286d883af0aa1b3f21367843fac63e07" + "eip155:42161/erc20:0x4d15a3a2286d883af0aa1b3f21367843fac63e07", + "eip155:25/erc20:0x87efb3ec1576dec8ed47e58b832bedcd86ee186e" ], "eip155:42161/erc20:0xca5d8f8a8d49439357d3cf46ca2e720702f132b8": [ "eip155:43114/erc20:0xca5d8f8a8d49439357d3cf46ca2e720702f132b8", @@ -10742,7 +10756,8 @@ ], "eip155:56/erc20:0xa776f5b86cc520861f55a261515264e3bd86e72e": [ "eip155:1/erc20:0x1901f826dfcbfd9d3138936932366b3493a50893", - "eip155:56/erc20:0xa776f5b86cc520861f55a261515264e3bd86e72e" + "eip155:56/erc20:0xa776f5b86cc520861f55a261515264e3bd86e72e", + "eip155:25/erc20:0xa776f5b86cc520861f55a261515264e3bd86e72e" ], "eip155:56/erc20:0xabddb950f2ae8430c5a818f8bb4ec09e3ae41253": [ "eip155:137/erc20:0x60f7dd499956ec8fcea8ed80e9d7eade4ccdc417", @@ -12331,8 +12346,40 @@ "eip155:1/erc20:0x31b6100f5f4466e6daeb1edb2f2ce6e548cf8938", "eip155:5000/erc20:0x26a6b0dcdcfb981362afa56d581e4a7dba3be140" ], + "eip155:25/erc20:0x00d7699b71290094ccb1a5884cd835bd65a78c17": [ + "eip155:137/erc20:0x8497842420cfdbc97896c2353d75d89fc8d5be5d", + "eip155:25/erc20:0x00d7699b71290094ccb1a5884cd835bd65a78c17" + ], + "eip155:25/erc20:0x39bc1e38c842c60775ce37566d03b41a7a66c782": [ + "eip155:1/erc20:0x2f32b39023da7d6a6486a85d12b346eb9c2a0d19", + "eip155:25/erc20:0x39bc1e38c842c60775ce37566d03b41a7a66c782" + ], + "eip155:25/erc20:0x2d03bece6747adc00e1a131bba1469c15fd11e03": [ + "eip155:1/erc20:0x839e71613f9aa06e5701cf6de63e303616b0dde3", + "eip155:25/erc20:0x2d03bece6747adc00e1a131bba1469c15fd11e03" + ], + "eip155:25/erc20:0x0224010ba2d567ffa014222ed960d1fa43b8c8e1": [ + "eip155:1/erc20:0x809e130e10e787139c54e1d12d3d1971b7a675bf", + "eip155:25/erc20:0x0224010ba2d567ffa014222ed960d1fa43b8c8e1" + ], + "eip155:25/erc20:0xd50f5739a09f36c6f97cc9a4849c5462ba6129a3": [ + "eip155:8453/erc20:0x56f6f2a23ae5ef82d8dc46934f7cf8d0b15ddedd", + "eip155:25/erc20:0xd50f5739a09f36c6f97cc9a4849c5462ba6129a3" + ], + "eip155:25/erc20:0x7a7c9db510ab29a2fc362a4c34260becb5ce3446": [ + "eip155:1/erc20:0xfe18ae03741a5b84e39c295ac9c856ed7991c38e", + "eip155:25/erc20:0x7a7c9db510ab29a2fc362a4c34260becb5ce3446" + ], + "eip155:25/erc20:0x444075ea64d69bf5002ae1a7f44642e46f8b56d4": [ + "eip155:56/erc20:0x66daa21e4a2199f80dbbb6c7e6a4ebb4ca0e46ce", + "eip155:25/erc20:0x444075ea64d69bf5002ae1a7f44642e46f8b56d4" + ], "eip155:59144/erc20:0x8cf881799e3b5ab24271a9b66b6ca2b0e575b1ef": [ "eip155:5000/erc20:0x74ccbe53f77b08632ce0cb91d3a545bf6b8e0979", "eip155:59144/erc20:0x8cf881799e3b5ab24271a9b66b6ca2b0e575b1ef" + ], + "eip155:1/erc20:0xa0b73e1ff0b80914ab6fe0444e65848c4c34450b": [ + "eip155:1/erc20:0xa0b73e1ff0b80914ab6fe0444e65848c4c34450b", + "eip155:25/slip44:60" ] -} \ No newline at end of file +} diff --git a/public/generated/relatedAssetIndex.json.br b/public/generated/relatedAssetIndex.json.br index 992b5719cb8..7bf8ff826db 100644 Binary files a/public/generated/relatedAssetIndex.json.br and b/public/generated/relatedAssetIndex.json.br differ diff --git a/public/generated/relatedAssetIndex.json.gz b/public/generated/relatedAssetIndex.json.gz index bcbc921f24d..ae28e537653 100644 Binary files a/public/generated/relatedAssetIndex.json.gz and b/public/generated/relatedAssetIndex.json.gz differ diff --git a/scripts/generateAssetData/coingecko.ts b/scripts/generateAssetData/coingecko.ts index 88f4a6f62f0..2493179c3be 100644 --- a/scripts/generateAssetData/coingecko.ts +++ b/scripts/generateAssetData/coingecko.ts @@ -7,6 +7,7 @@ import { baseChainId, berachainChainId, bscChainId, + cronosChainId, ethChainId, gnosisChainId, hyperEvmChainId, @@ -35,6 +36,7 @@ import { base, berachain, bnbsmartchain, + cronos, ethereum, gnosis, hyperevm, @@ -207,6 +209,14 @@ export async function getAssets(chainId: ChainId): Promise { explorerAddressLink: scroll.explorerAddressLink, explorerTxLink: scroll.explorerTxLink, } + case cronosChainId: + return { + assetNamespace: ASSET_NAMESPACE.erc20, + category: adapters.chainIdToCoingeckoAssetPlatform(chainId), + explorer: cronos.explorer, + explorerAddressLink: cronos.explorerAddressLink, + explorerTxLink: cronos.explorerTxLink, + } case katanaChainId: return { assetNamespace: ASSET_NAMESPACE.erc20, diff --git a/scripts/generateAssetData/cronos/index.ts b/scripts/generateAssetData/cronos/index.ts new file mode 100644 index 00000000000..8732bfcf732 --- /dev/null +++ b/scripts/generateAssetData/cronos/index.ts @@ -0,0 +1,11 @@ +import { cronosChainId } from '@shapeshiftoss/caip' +import type { Asset } from '@shapeshiftoss/types' +import { cronos, unfreeze } from '@shapeshiftoss/utils' + +import * as coingecko from '../coingecko' + +export const getAssets = async (): Promise => { + const assets = await coingecko.getAssets(cronosChainId) + + return [...assets, unfreeze(cronos)] +} diff --git a/scripts/generateAssetData/generateAssetData.ts b/scripts/generateAssetData/generateAssetData.ts index 93adbc864ff..302727edba7 100644 --- a/scripts/generateAssetData/generateAssetData.ts +++ b/scripts/generateAssetData/generateAssetData.ts @@ -30,6 +30,7 @@ import * as berachain from './berachain' import * as bnbsmartchain from './bnbsmartchain' import { compressGeneratedAssets } from './compressAssets' import { ASSET_DATA_PATH, GENERATED_DIR, RELATED_ASSET_INDEX_PATH } from './constants' +import * as cronos from './cronos' import * as ethereum from './ethereum' import { generateRelatedAssetIndex } from './generateRelatedAssetIndex/generateRelatedAssetIndex' import * as gnosis from './gnosis' @@ -79,6 +80,7 @@ const generateAssetData = async () => { const mantleAssets = await mantle.getAssets() const inkAssets = await ink.getAssets() const lineaAssets = await linea.getAssets() + const cronosAssets = await cronos.getAssets() const megaethAssets = await megaeth.getAssets() const berachainAssets = await berachain.getAssets() const scrollAssets = await scroll.getAssets() @@ -117,6 +119,7 @@ const generateAssetData = async () => { ...mantleAssets, ...inkAssets, ...lineaAssets, + ...cronosAssets, ...megaethAssets, ...berachainAssets, ...scrollAssets, diff --git a/scripts/generateAssetData/generateRelatedAssetIndex/generateChainRelatedAssetIndex.ts b/scripts/generateAssetData/generateRelatedAssetIndex/generateChainRelatedAssetIndex.ts index 8553f2aed85..730e5dc31e9 100644 --- a/scripts/generateAssetData/generateRelatedAssetIndex/generateChainRelatedAssetIndex.ts +++ b/scripts/generateAssetData/generateRelatedAssetIndex/generateChainRelatedAssetIndex.ts @@ -78,6 +78,8 @@ const manualRelatedAssetIndex: Record = { 'eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f': [ 'eip155:59144/erc20:0x4af15ec2a0bd43db75dd04e62faa3b8ef36b00d5', ], + // CRO on Ethereum <-> CRO native on Cronos + 'eip155:1/erc20:0xa0b73e1ff0b80914ab6fe0444e65848c4c34450b': ['eip155:25/slip44:60'], } const getManualRelatedAssetIds = ( @@ -271,6 +273,15 @@ const processRelatedAssetIds = async ( return } + // Group absent from index but asset has a relatedAssetKey - recover by creating the group + if (!group) { + console.log( + `Recovering orphaned relatedAssetKey for ${assetId}: creating group ${existingRelatedAssetKey}`, + ) + relatedAssetIndex[existingRelatedAssetKey] = [assetId] + return + } + return } diff --git a/src/components/TradeAssetSearch/hooks/useGetPopularAssetsQuery.tsx b/src/components/TradeAssetSearch/hooks/useGetPopularAssetsQuery.tsx index 70ff0bdd393..934bb824771 100644 --- a/src/components/TradeAssetSearch/hooks/useGetPopularAssetsQuery.tsx +++ b/src/components/TradeAssetSearch/hooks/useGetPopularAssetsQuery.tsx @@ -1,6 +1,7 @@ import type { ChainId } from '@shapeshiftoss/caip' import { berachainAssetId, + cronosAssetId, hyperEvmAssetId, inkAssetId, katanaAssetId, @@ -53,6 +54,7 @@ export const queryFn = async () => { if (enabledFlags.Scroll) assetIds.push(scrollAssetId) if (enabledFlags.Katana) assetIds.push(katanaAssetId) if (enabledFlags.Linea) assetIds.push(lineaAssetId) + if (enabledFlags.Cronos) assetIds.push(cronosAssetId) if (enabledFlags.Starknet) assetIds.push(starknetAssetId) if (enabledFlags.Tron) assetIds.push(tronAssetId) if (enabledFlags.Berachain) assetIds.push(berachainAssetId) diff --git a/src/config.ts b/src/config.ts index a5415191c30..1bb0eff05cb 100644 --- a/src/config.ts +++ b/src/config.ts @@ -66,6 +66,7 @@ const validators = { VITE_INK_NODE_URL: url(), VITE_MEGAETH_NODE_URL: url(), VITE_BERACHAIN_NODE_URL: url(), + VITE_CRONOS_NODE_URL: url(), VITE_KATANA_NODE_URL: url(), VITE_LINEA_NODE_URL: url(), VITE_SCROLL_NODE_URL: url(), @@ -113,6 +114,7 @@ const validators = { VITE_FEATURE_INK: bool({ default: false }), VITE_FEATURE_MEGAETH: bool({ default: false }), VITE_FEATURE_BERACHAIN: bool({ default: false }), + VITE_FEATURE_CRONOS: bool({ default: false }), VITE_FEATURE_KATANA: bool({ default: false }), VITE_FEATURE_LINEA: bool({ default: false }), VITE_FEATURE_SCROLL: bool({ default: false }), diff --git a/src/constants/chains.ts b/src/constants/chains.ts index 1f2d5e1342b..4451357c455 100644 --- a/src/constants/chains.ts +++ b/src/constants/chains.ts @@ -19,6 +19,7 @@ export const SECOND_CLASS_CHAINS: readonly KnownChainIds[] = [ KnownChainIds.MegaEthMainnet, KnownChainIds.BerachainMainnet, KnownChainIds.ScrollMainnet, + KnownChainIds.CronosMainnet, KnownChainIds.NearMainnet, KnownChainIds.StarknetMainnet, ] @@ -44,6 +45,7 @@ export const knownChainIds = Object.values(KnownChainIds).filter(chainId => { if (chainId === KnownChainIds.MegaEthMainnet && !enabledFlags.MegaEth) return false if (chainId === KnownChainIds.BerachainMainnet && !enabledFlags.Berachain) return false if (chainId === KnownChainIds.ScrollMainnet && !enabledFlags.Scroll) return false + if (chainId === KnownChainIds.CronosMainnet && !enabledFlags.Cronos) return false if (chainId === KnownChainIds.NearMainnet && !enabledFlags.Near) return false if (chainId === KnownChainIds.StarknetMainnet && !enabledFlags.Starknet) return false if (chainId === KnownChainIds.TonMainnet && !enabledFlags.Ton) return false diff --git a/src/hooks/useActionCenterSubscribers/useSendActionSubscriber.tsx b/src/hooks/useActionCenterSubscribers/useSendActionSubscriber.tsx index bcb61af09bb..7d4c960a297 100644 --- a/src/hooks/useActionCenterSubscribers/useSendActionSubscriber.tsx +++ b/src/hooks/useActionCenterSubscribers/useSendActionSubscriber.tsx @@ -12,6 +12,7 @@ import { getConfig } from '@/config' import { SECOND_CLASS_CHAINS } from '@/constants/chains' import { getChainAdapterManager } from '@/context/PluginProvider/chainAdapterSingleton' import { getBerachainTransactionStatus } from '@/lib/utils/berachain' +import { getCronosTransactionStatus } from '@/lib/utils/cronos' import { getHyperEvmTransactionStatus } from '@/lib/utils/hyperevm' import { getInkTransactionStatus } from '@/lib/utils/ink' import { getKatanaTransactionStatus } from '@/lib/utils/katana' @@ -213,6 +214,12 @@ export const useSendActionSubscriber = () => { mantleTxStatus === TxStatus.Confirmed || mantleTxStatus === TxStatus.Failed break } + case KnownChainIds.CronosMainnet: { + const cronosTxStatus = await getCronosTransactionStatus(txHash) + isConfirmed = + cronosTxStatus === TxStatus.Confirmed || cronosTxStatus === TxStatus.Failed + break + } case KnownChainIds.MegaEthMainnet: { const megaEthTxStatus = await getMegaEthTransactionStatus(txHash) isConfirmed = diff --git a/src/hooks/useWalletSupportsChain/useWalletSupportsChain.ts b/src/hooks/useWalletSupportsChain/useWalletSupportsChain.ts index 6bc6d0584a0..6aaa0b96b0d 100644 --- a/src/hooks/useWalletSupportsChain/useWalletSupportsChain.ts +++ b/src/hooks/useWalletSupportsChain/useWalletSupportsChain.ts @@ -8,6 +8,7 @@ import { bscChainId, btcChainId, cosmosChainId, + cronosChainId, dogeChainId, ethChainId, gnosisChainId, @@ -47,6 +48,7 @@ import { supportsBSC, supportsBTC, supportsCosmos, + supportsCronos, supportsETH, supportsGnosis, supportsHyperEvm, @@ -162,6 +164,7 @@ export const walletSupportsChain = ({ const isKatanaEnabled = selectFeatureFlag(store.getState(), 'Katana') const isMantleEnabled = selectFeatureFlag(store.getState(), 'Mantle') const isLineaEnabled = selectFeatureFlag(store.getState(), 'Linea') + const isCronosEnabled = selectFeatureFlag(store.getState(), 'Cronos') const isMegaEthEnabled = selectFeatureFlag(store.getState(), 'MegaEth') const isBerachainEnabled = selectFeatureFlag(store.getState(), 'Berachain') const isMonadEnabled = selectFeatureFlag(store.getState(), 'Monad') @@ -221,6 +224,8 @@ export const walletSupportsChain = ({ return isLineaEnabled && supportsLinea(wallet) case scrollChainId: return isScrollEnabled && supportsScroll(wallet) + case cronosChainId: + return isCronosEnabled && supportsCronos(wallet) case cosmosChainId: return supportsCosmos(wallet) case thorchainChainId: diff --git a/src/lib/account/evm.ts b/src/lib/account/evm.ts index 4a19498b1e6..b936eb94c59 100644 --- a/src/lib/account/evm.ts +++ b/src/lib/account/evm.ts @@ -5,6 +5,7 @@ import { baseChainId, berachainChainId, bscChainId, + cronosChainId, ethChainId, fromAccountId, gnosisChainId, @@ -29,6 +30,7 @@ import { supportsBase, supportsBerachain, supportsBSC, + supportsCronos, supportsETH, supportsGnosis, supportsHyperEvm, @@ -140,6 +142,7 @@ export const deriveEvmAccountIdsAndMetadata: DeriveAccountIdsAndMetadata = async if (chainId === megaethChainId && !supportsMegaEth(wallet)) continue if (chainId === berachainChainId && !supportsBerachain(wallet)) continue if (chainId === scrollChainId && !supportsScroll(wallet)) continue + if (chainId === cronosChainId && !supportsCronos(wallet)) continue if (chainId === katanaChainId && !supportsKatana(wallet)) continue if (chainId === lineaChainId && !supportsLinea(wallet)) continue if ( diff --git a/src/lib/asset-service/service/AssetService.ts b/src/lib/asset-service/service/AssetService.ts index ada5ff009ed..fc312769812 100644 --- a/src/lib/asset-service/service/AssetService.ts +++ b/src/lib/asset-service/service/AssetService.ts @@ -5,6 +5,7 @@ import { baseChainId, berachainChainId, bscChainId, + cronosChainId, gnosisChainId, hyperEvmChainId, inkChainId, @@ -133,6 +134,7 @@ class _AssetService { if (!config.VITE_FEATURE_LINEA && asset.chainId === lineaChainId) return false if (!config.VITE_FEATURE_BERACHAIN && asset.chainId === berachainChainId) return false if (!config.VITE_FEATURE_SCROLL && asset.chainId === scrollChainId) return false + if (!config.VITE_FEATURE_CRONOS && asset.chainId === cronosChainId) return false if (!config.VITE_FEATURE_MAYACHAIN && asset.chainId === mayachainChainId) return false if (!config.VITE_FEATURE_NEAR && asset.chainId === nearChainId) return false if (!config.VITE_FEATURE_ZCASH && asset.chainId === zecChainId) return false diff --git a/src/lib/coingecko/utils.ts b/src/lib/coingecko/utils.ts index be14ef615e0..5772f5f457f 100644 --- a/src/lib/coingecko/utils.ts +++ b/src/lib/coingecko/utils.ts @@ -8,6 +8,7 @@ import { bscChainId, btcChainId, cosmosChainId, + cronosChainId, dogeChainId, ethChainId, gnosisChainId, @@ -218,6 +219,7 @@ export const getCoingeckoSupportedChainIds = () => { zecChainId, ...(getConfig().VITE_FEATURE_BERACHAIN ? [berachainChainId] : []), ...(getConfig().VITE_FEATURE_INK ? [inkChainId] : []), + ...(getConfig().VITE_FEATURE_CRONOS ? [cronosChainId] : []), ...(getConfig().VITE_FEATURE_KATANA ? [katanaChainId] : []), ...(getConfig().VITE_FEATURE_MANTLE ? [mantleChainId] : []), ...(getConfig().VITE_FEATURE_LINEA ? [lineaChainId] : []), diff --git a/src/lib/utils/cronos.ts b/src/lib/utils/cronos.ts new file mode 100644 index 00000000000..a9d776b96b0 --- /dev/null +++ b/src/lib/utils/cronos.ts @@ -0,0 +1,46 @@ +import { cronosChainId } from '@shapeshiftoss/caip' +import type { EvmChainAdapter } from '@shapeshiftoss/chain-adapters' +import { TxStatus } from '@shapeshiftoss/unchained-client' + +import { getConfig } from '@/config' + +export const isCronosChainAdapter = (adapter: unknown): adapter is EvmChainAdapter => { + if (!adapter) return false + + const maybeAdapter = adapter as EvmChainAdapter + if (typeof maybeAdapter.getChainId !== 'function') return false + + return maybeAdapter.getChainId() === cronosChainId +} + +export const getCronosTransactionStatus = async (txHash: string): Promise => { + const rpcUrl = getConfig().VITE_CRONOS_NODE_URL + + try { + const response = await fetch(rpcUrl, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + jsonrpc: '2.0', + method: 'eth_getTransactionReceipt', + params: [txHash], + id: 1, + }), + }) + + if (!response.ok) return TxStatus.Unknown + + const data = await response.json() + const receipt = data?.result + + if (!receipt) return TxStatus.Pending + + if (receipt.status === '0x1') return TxStatus.Confirmed + if (receipt.status === '0x0') return TxStatus.Failed + + return TxStatus.Unknown + } catch (error) { + console.error('Error fetching Cronos transaction status:', error) + return TxStatus.Unknown + } +} diff --git a/src/pages/Markets/components/MarketsRow.tsx b/src/pages/Markets/components/MarketsRow.tsx index fb3e8aafb6a..a598acab1f9 100644 --- a/src/pages/Markets/components/MarketsRow.tsx +++ b/src/pages/Markets/components/MarketsRow.tsx @@ -89,6 +89,7 @@ export const MarketsRow: React.FC = ({ const isLineaEnabled = useAppSelector(state => selectFeatureFlag(state, 'Linea')) const isScrollEnabled = useAppSelector(state => selectFeatureFlag(state, 'Scroll')) const isKatanaEnabled = useAppSelector(state => selectFeatureFlag(state, 'Katana')) + const isCronosEnabled = useAppSelector(state => selectFeatureFlag(state, 'Cronos')) const [isSmallerThanLg] = useMediaQuery(`(max-width: ${breakpoints.lg})`) const chainIds = useMemo(() => { @@ -105,6 +106,7 @@ export const MarketsRow: React.FC = ({ if (!isScrollEnabled && chainId === KnownChainIds.ScrollMainnet) return false if (!isKatanaEnabled && chainId === KnownChainIds.KatanaMainnet) return false if (!isBerachainEnabled && chainId === KnownChainIds.BerachainMainnet) return false + if (!isCronosEnabled && chainId === KnownChainIds.CronosMainnet) return false return true }) }, [ @@ -119,6 +121,7 @@ export const MarketsRow: React.FC = ({ isLineaEnabled, isScrollEnabled, isKatanaEnabled, + isCronosEnabled, ]) const Title = useMemo(() => { diff --git a/src/plugins/activePlugins.ts b/src/plugins/activePlugins.ts index ba15fce8c4e..65268d0c4fe 100644 --- a/src/plugins/activePlugins.ts +++ b/src/plugins/activePlugins.ts @@ -6,6 +6,7 @@ import bitcoin from '@/plugins/bitcoin' import bitcoincash from '@/plugins/bitcoincash' import bnbsmartchain from '@/plugins/bnbsmartchain' import cosmos from '@/plugins/cosmos' +import cronos from '@/plugins/cronos' import dogecoin from '@/plugins/dogecoin' import ethereum from '@/plugins/ethereum' import gnosis from '@/plugins/gnosis' @@ -42,6 +43,7 @@ export const activePlugins = [ bitcoincash, bnbsmartchain, cosmos, + cronos, dogecoin, ethereum, gnosis, diff --git a/src/plugins/cronos/index.tsx b/src/plugins/cronos/index.tsx new file mode 100644 index 00000000000..f70ced54f3e --- /dev/null +++ b/src/plugins/cronos/index.tsx @@ -0,0 +1,49 @@ +import { cronosChainId, fromAssetId } from '@shapeshiftoss/caip' +import { cronos } from '@shapeshiftoss/chain-adapters' +import { KnownChainIds } from '@shapeshiftoss/types' + +import { getConfig } from '@/config' +import { getAssetService } from '@/lib/asset-service' +import type { Plugins } from '@/plugins/types' + +// eslint-disable-next-line import/no-default-export +export default function register(): Plugins { + return [ + [ + 'cronosChainAdapter', + { + name: 'cronosChainAdapter', + featureFlag: ['Cronos'], + providers: { + chainAdapters: [ + [ + KnownChainIds.CronosMainnet, + () => { + const getKnownTokens = () => { + const assetService = getAssetService() + return assetService.assets + .filter(asset => { + const { chainId, assetNamespace } = fromAssetId(asset.assetId) + return chainId === cronosChainId && assetNamespace === 'erc20' + }) + .map(asset => ({ + assetId: asset.assetId, + contractAddress: fromAssetId(asset.assetId).assetReference, + symbol: asset.symbol, + name: asset.name, + precision: asset.precision, + })) + } + + return new cronos.ChainAdapter({ + rpcUrl: getConfig().VITE_CRONOS_NODE_URL, + getKnownTokens, + }) + }, + ], + ], + }, + }, + ], + ] +} diff --git a/src/state/migrations/index.ts b/src/state/migrations/index.ts index 0d701d90812..cc0a8eb667d 100644 --- a/src/state/migrations/index.ts +++ b/src/state/migrations/index.ts @@ -341,6 +341,7 @@ export const clearAssetsMigrations = { 292: clearAssets, 293: clearAssets, 294: clearAssets, + 295: clearAssets, } as unknown as Omit export const clearMarketDataMigrations = { diff --git a/src/state/slices/opportunitiesSlice/mappings.ts b/src/state/slices/opportunitiesSlice/mappings.ts index 8678dd481fe..d0d8d80e95b 100644 --- a/src/state/slices/opportunitiesSlice/mappings.ts +++ b/src/state/slices/opportunitiesSlice/mappings.ts @@ -196,6 +196,7 @@ export const CHAIN_ID_TO_SUPPORTED_DEFI_OPPORTUNITIES: Record< [KnownChainIds.InkMainnet]: [], [KnownChainIds.LineaMainnet]: [], [KnownChainIds.ScrollMainnet]: [], + [KnownChainIds.CronosMainnet]: [], [KnownChainIds.KatanaMainnet]: [], [KnownChainIds.ZcashMainnet]: [], [KnownChainIds.NearMainnet]: [], diff --git a/src/state/slices/portfolioSlice/utils/index.ts b/src/state/slices/portfolioSlice/utils/index.ts index 8ecddde85b7..8f82ae35e8f 100644 --- a/src/state/slices/portfolioSlice/utils/index.ts +++ b/src/state/slices/portfolioSlice/utils/index.ts @@ -10,6 +10,7 @@ import { btcChainId, CHAIN_NAMESPACE, cosmosChainId, + cronosChainId, dogeChainId, ethChainId, fromAccountId, @@ -54,6 +55,7 @@ import { supportsBSC, supportsBTC, supportsCosmos, + supportsCronos, supportsETH, supportsGnosis, supportsHyperEvm, @@ -116,6 +118,7 @@ export const accountIdToLabel = (accountId: AccountId): string => { case megaethChainId: case berachainChainId: case lineaChainId: + case cronosChainId: case katanaChainId: case scrollChainId: case monadChainId: @@ -537,6 +540,8 @@ export const isAssetSupportedByWallet = (assetId: AssetId, wallet: HDWallet): bo return supportsLinea(wallet) case scrollChainId: return supportsScroll(wallet) + case cronosChainId: + return supportsCronos(wallet) case tronChainId: return supportsTron(wallet) case nearChainId: diff --git a/src/state/slices/preferencesSlice/preferencesSlice.ts b/src/state/slices/preferencesSlice/preferencesSlice.ts index 4830a16d74b..95197048ea3 100644 --- a/src/state/slices/preferencesSlice/preferencesSlice.ts +++ b/src/state/slices/preferencesSlice/preferencesSlice.ts @@ -40,6 +40,7 @@ export type FeatureFlags = { Ink: boolean MegaEth: boolean Berachain: boolean + Cronos: boolean Katana: boolean Linea: boolean Scroll: boolean @@ -194,6 +195,7 @@ const initialState: Preferences = { Ink: getConfig().VITE_FEATURE_INK, MegaEth: getConfig().VITE_FEATURE_MEGAETH, Berachain: getConfig().VITE_FEATURE_BERACHAIN, + Cronos: getConfig().VITE_FEATURE_CRONOS, Katana: getConfig().VITE_FEATURE_KATANA, Linea: getConfig().VITE_FEATURE_LINEA, Scroll: getConfig().VITE_FEATURE_SCROLL, diff --git a/src/test/mocks/store.ts b/src/test/mocks/store.ts index 9f2df0fce94..f1c08e652d1 100644 --- a/src/test/mocks/store.ts +++ b/src/test/mocks/store.ts @@ -113,6 +113,7 @@ export const mockStore: ReduxState = { Ink: false, MegaEth: false, Berachain: false, + Cronos: false, Katana: false, Linea: false, Scroll: false, diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts index 73915f52521..f58bc6981f0 100644 --- a/src/vite-env.d.ts +++ b/src/vite-env.d.ts @@ -188,6 +188,8 @@ interface ImportMetaEnv { readonly VITE_USER_SERVER_URL: string readonly VITE_SCROLL_NODE_URL: string readonly VITE_FEATURE_SCROLL: string + readonly VITE_CRONOS_NODE_URL: string + readonly VITE_FEATURE_CRONOS: string readonly VITE_FEATURE_NOTIFICATIONS_WEBSERVICES: string // Only present in *some* envs