diff --git a/blockapi/test/v2/test_blockchain_mapping.py b/blockapi/test/v2/test_blockchain_mapping.py index 80e48f1a..14f6b751 100644 --- a/blockapi/test/v2/test_blockchain_mapping.py +++ b/blockapi/test/v2/test_blockchain_mapping.py @@ -21,7 +21,11 @@ def test_map_none(): 'chain,expected', [ ('ShibChain', Blockchain.SHIBA_CHAIN), + ('aelf', Blockchain.AELF), + ('aleph-zero', Blockchain.ALEPH_ZERO), + ('alienx', Blockchain.ALIEN_X), ('ancient8', Blockchain.ANCIENT8), + ('apechain', Blockchain.APECHAIN), ('aptos', Blockchain.APTOS), ('archway', Blockchain.ARCHWAY), ('areon-network', Blockchain.AREON), @@ -39,56 +43,79 @@ def test_map_none(): ('bsquared-network', Blockchain.B2), ('callisto', Blockchain.CALLISTO), ('casper-network', Blockchain.CASPER), + ('chia', Blockchain.CHIA), + ('chihuahua', Blockchain.CHIHUAHUA), ('comdex', Blockchain.COMDEX), ('core', Blockchain.CORE_CHAIN), + ('coreum', Blockchain.COREUM), ('crescent', Blockchain.CRESCENT), + ('cronos-zkevm', Blockchain.CRONOS_ZKEVM), ('defi-kingdoms-blockchain', Blockchain.DEFI_KINGDOMS), ('defichain', Blockchain.DEFI), + ('defichain-evm', Blockchain.DEFICHAIN_EVM), + ('defiverse', Blockchain.DEFIVERSE), ('drc-20', Blockchain.DRC_20), + ('elysium', Blockchain.ELYSIUM), ('empire', Blockchain.EMPIRE), ('endurance', Blockchain.ENDURANCE), ('eos-evm', Blockchain.EOS), + ('etherlink', Blockchain.ETHERLINK), ('exosama', Blockchain.EXOSAMA), ('filecoin', Blockchain.FILECOIN), ('flare-network', Blockchain.FLARE), + ('flow-evm', Blockchain.FLOW), ('fraxtal', Blockchain.FRAXTAL), ('function-x', Blockchain.FUNCTION_X), ('galachain', Blockchain.GALA), ('genesys-network', Blockchain.GENESYS), + ('graphlinq-chain', Blockchain.GRAPHLINQ_CHAIN), + ('gravity-alpha', Blockchain.GRAVITY_ALPHA), ('gravity-bridge', Blockchain.GRAVITY_BRIDGE), + ('haqq-network', Blockchain.HAQQ_NETWORK), ('hoo', Blockchain.HOO_SMART_CHAIN), ('hyperliquid', Blockchain.HYPERLIQUID), ('hypra-network', Blockchain.HYPRA_NETWORK), ('immutable', Blockchain.IMMUTABLE), + ('inevm', Blockchain.INEVM), ('iota-evm', Blockchain.IOTA_EVM), ('kadena', Blockchain.KADENA), + ('kasplex', Blockchain.KASPLEX), ('kujira', Blockchain.KUJIRA), + ('laikachain', Blockchain.LAIKACHAIN), ('linea', Blockchain.LINEA), ('lisk', Blockchain.LISK), ('mainnetz', Blockchain.MAINNETZ), ('mantle', Blockchain.MANTLE), ('massa', Blockchain.MASSA), + ('meld', Blockchain.MELD), ('merlin-chain', Blockchain.MERLIN_CHAIN), + ('metal-l2', Blockchain.METAL_L2), ('mode', Blockchain.MODE), ('neon-evm', Blockchain.NEON_EVM), + ('noble', Blockchain.NOBLE), ('oasis', Blockchain.OASIS_CHAIN), ('oasis-sapphire', Blockchain.OASIS_SAPPHIRE), ('oasys', Blockchain.OASYS), ('octaspace', Blockchain.OCTA_SPACE), ('omax', Blockchain.OMAX), ('omniflix', Blockchain.OMNIFLIX), + ('onchain', Blockchain.ONCHAIN), ('onus', Blockchain.ONUS_CHAIN), ('opbnb', Blockchain.OPTIMISTIC_BNB), ('oraichain', Blockchain.ORAI), ('ordinals', Blockchain.ORDINALS), ('orenium', Blockchain.ORENIUM), + ('picasso', Blockchain.PICASSO), ('polygon-zkevm', Blockchain.POLYGON_ZK_EVM), ('proof-of-memes', Blockchain.PROOF_OF_MEMES), ('pulsechain', Blockchain.PULSE), + ('q-mainnet', Blockchain.Q_MAINNET), + ('ql1', Blockchain.QL1), ('quicksilver', Blockchain.QUICKSILVER), ('rails-network', Blockchain.RAILS), ('re-al', Blockchain.REAL), ('rollux', Blockchain.ROLLUX), + ('rss3-vsl', Blockchain.RSS3_VSL), ('saakuru', Blockchain.SAAKURU), ('saga', Blockchain.SAGA), ('saita-chain', Blockchain.SAITA), @@ -98,16 +125,20 @@ def test_map_none(): ('sge', Blockchain.SGE), ('shibarium', Blockchain.SHIBARIUM), ('sui', Blockchain.SUI), + ('tdvv-sidechain', Blockchain.TDVV_SIDECHAIN), ('tenet', Blockchain.TENET), ('terra-2', Blockchain.TERRA_2), ('the-open-network', Blockchain.OPEN_NETWORK), ('trustless-computer', Blockchain.TRUSTLESS_COMPUTER), ('valobit', Blockchain.VALOBIT), + ('venom', Blockchain.VENOM), ('wax', Blockchain.WAX), ('wemix-network', Blockchain.WEMIX_NETWORK), + ('world-chain', Blockchain.WORLD_CHAIN), ('xpla', Blockchain.XPLA), ('zedxion', Blockchain.ZEDXION), ('zetachain', Blockchain.ZETA_CHAIN), + ('zircuit', Blockchain.ZIRCUIT), ('zkfair', Blockchain.ZKFAIR), ('zksync', Blockchain.ZKSYNC_ERA), ('zora-network', Blockchain.ZORA), @@ -124,9 +155,14 @@ def test_map_by_id(): @pytest.mark.parametrize( 'chain,expected', [ + ('a8', Blockchain.ANCIENT8), + ('ace', Blockchain.ENDURANCE), ('ailayer', Blockchain.AI_LAYER), + ('alienx', Blockchain.ALIEN_X), ('alot', Blockchain.DEX_ALOT), + ('ape', Blockchain.APE), ('apex', Blockchain.PROOF_OF_PLAY_APEX), + ('aura', Blockchain.AURA), ('aze', Blockchain.ASTAR_ZKEVM), ('b2', Blockchain.B2), ('bb', Blockchain.BOUNCE_BIT), @@ -137,6 +173,8 @@ def test_map_by_id(): ('btr', Blockchain.BIT_LAYER), ('cfx', Blockchain.CONFLUX), ('ckb', Blockchain.GODWOKEN), + ('combo', Blockchain.COMBO), + ('croze', Blockchain.CRONOS_ZKEVM), ('cyber', Blockchain.CYBER), ('dbk', Blockchain.DBK), ('degen', Blockchain.DEGEN), @@ -145,21 +183,26 @@ def test_map_by_id(): ('ela', Blockchain.ELASTOS), ('eon', Blockchain.HORIZEN_EON), ('era', Blockchain.ZKSYNC_ERA), + ('ethlink', Blockchain.ETHERLINK), ('fon', Blockchain.FON_CHAIN), ('frax', Blockchain.FRAXTAL), ('fx', Blockchain.FUNCTION_X), ('iota', Blockchain.IOTA_EVM), + ('itze', Blockchain.IMMUTABLE), ('karak', Blockchain.KARAK), ('kroma', Blockchain.KROMA), ('lumio', Blockchain.SUPER_LUMIO), + ('lyra', Blockchain.DERIVE), ('mada', Blockchain.MILKOMEDA_C1), ('manta', Blockchain.MANTA_PACIFIC), ('map', Blockchain.MAP_PROTOCOL), ('merlin', Blockchain.MERLIN_CHAIN), ('mint', Blockchain.MINT), ('molten', Blockchain.MOLTEN), + ('morph', Blockchain.MORPH), ('neon', Blockchain.NEON_EVM), ('nova', Blockchain.ARBITRUM_NOVA), + ('orderly', Blockchain.ORDERLY), ('platon', Blockchain.PLAT_ON), ('pze', Blockchain.POLYGON_ZK_EVM), ('reya', Blockchain.REYA), @@ -167,17 +210,25 @@ def test_map_by_id(): ('savm', Blockchain.SATOSHI_VM_ALPHA), ('scrl', Blockchain.SCROLL), ('sei', Blockchain.SEI), + ('shape', Blockchain.SHAPE), ('shib', Blockchain.SHIBARIUM), ('smr', Blockchain.SHIMMER_EVM), + ('sonic', Blockchain.SONIC), ('step', Blockchain.STEP_NETWORK), ('strax', Blockchain.STRATIS), + ('swell', Blockchain.SWELL), ('sx', Blockchain.SX_NETWORK), ('taiko', Blockchain.TAIKO), ('tomb', Blockchain.TOMBCHAIN), ('ulx', Blockchain.ULTRON), + ('world', Blockchain.WORLD_CHAIN), + ('wyzth', Blockchain.WYZTH), ('xlayer', Blockchain.X_LAYER), + ('zero', Blockchain.ZERO), ('zeta', Blockchain.ZETA_CHAIN), + ('zircuit', Blockchain.ZIRCUIT), ('zklink', Blockchain.ZKLINK_NOVA), + ('gravity', Blockchain.GRAVITY), ], ) def test_map_debank(chain: str, expected: Blockchain): diff --git a/blockapi/v2/blockchain_mapping.py b/blockapi/v2/blockchain_mapping.py index 8adfc821..2a23fe8d 100644 --- a/blockapi/v2/blockchain_mapping.py +++ b/blockapi/v2/blockchain_mapping.py @@ -6,6 +6,8 @@ logger = logging.getLogger(__name__) DEBANK_BLOCKCHAINS_MAP = { + 'a8': Blockchain.ANCIENT8, + 'ace': Blockchain.ENDURANCE, 'ailayer': Blockchain.AI_LAYER, 'alot': Blockchain.DEX_ALOT, 'apex': Blockchain.PROOF_OF_PLAY_APEX, @@ -23,6 +25,7 @@ 'ckb': Blockchain.GODWOKEN, 'core': Blockchain.CORE_CHAIN, 'cro': Blockchain.CRONOS, + 'croze': Blockchain.CRONOS_ZKEVM, 'dfk': Blockchain.DEFI_KINGDOMS, 'doge': Blockchain.DOGECHAIN, 'dym': Blockchain.DYMENSION, @@ -31,6 +34,7 @@ 'era': Blockchain.ZKSYNC_ERA, 'etc': Blockchain.ETHEREUM_CLASSIC, 'eth': Blockchain.ETHEREUM, + 'ethlink': Blockchain.ETHERLINK, 'evmos': Blockchain.COSMOS, 'flr': Blockchain.FLARE, 'fon': Blockchain.FON_CHAIN, @@ -41,9 +45,11 @@ 'hmy': Blockchain.HARMONY, 'iota': Blockchain.IOTA_EVM, 'iotx': Blockchain.IOTEX, + 'itze': Blockchain.IMMUTABLE, 'kcc': Blockchain.KUCOIN, 'klay': Blockchain.KLAY_TOKEN, 'lumio': Blockchain.SUPER_LUMIO, + 'lyra': Blockchain.DERIVE, 'lyx': Blockchain.LUKSO, 'mada': Blockchain.MILKOMEDA_C1, 'manta': Blockchain.MANTA_PACIFIC, @@ -80,6 +86,7 @@ 'ulx': Blockchain.ULTRON, 'wan': Blockchain.WANCHAIN, 'wemix': Blockchain.WEMIX_NETWORK, + 'world': Blockchain.WORLD_CHAIN, 'xlayer': Blockchain.X_LAYER, 'zeta': Blockchain.ZETA_CHAIN, 'zklink': Blockchain.ZKLINK_NOVA, @@ -101,6 +108,7 @@ 'defichain': Blockchain.DEFI, 'eos-evm': Blockchain.EOS, 'flare-network': Blockchain.FLARE, + 'flow-evm': Blockchain.FLOW, 'galachain': Blockchain.GALA, 'genesys-network': Blockchain.GENESYS, 'harmony-shard-0': Blockchain.HARMONY, @@ -235,7 +243,7 @@ def _get_chain_mapping( if not chain: return None - chain_lower = chain.lower() if hasattr(chain, 'lower') else str(chain) + chain_lower = chain.lower() if hasattr(chain, 'lower') else str(chain).lower() blockchain = mapping.get(chain_lower) if blockchain: diff --git a/blockapi/v2/models.py b/blockapi/v2/models.py index 44b4f3bd..c71be416 100644 --- a/blockapi/v2/models.py +++ b/blockapi/v2/models.py @@ -1,4 +1,3 @@ -import itertools import json from datetime import datetime from decimal import Decimal @@ -15,11 +14,16 @@ class Blockchain(str, Enum): ACALA = 'acala' + AELF = 'aelf' AI_LAYER = 'ai-layer' AKASH = 'akash' ALEPHIUM = 'alephium' + ALEPH_ZERO = 'aleph-zero' ALGORAND = 'algorand' + ALIEN_X = 'alienx' ANCIENT8 = 'ancient8' + APE = 'ape' + APECHAIN = 'apechain' APTOS = 'aptos' ARBITRUM = 'arbitrum' ARBITRUM_NOVA = 'arbitrum-nova' @@ -29,9 +33,11 @@ class Blockchain(str, Enum): AREON = 'areon' ASTAR = 'astar' ASTAR_ZKEVM = 'astar-zk-evm' + AURA = 'aura' AURA_NETWORK = 'aura-network' AURORA = 'aurora' AVALANCHE = 'avalanche' + AVAX_C = 'avax-c' AXIE = 'axie' B2 = 'b2' BAHAMUT = 'bahamut' @@ -65,19 +71,24 @@ class Blockchain(str, Enum): CELER_NETWORK = 'celer-network' CELESTIA = 'celestia' CELO = 'celo' + CHIA = 'chia' + CHIHUAHUA = 'chihuahua' CHILIZ = 'chiliz' CLOVER = 'clover' CLV_PARACHAIN = 'clv-parachain' CMP = 'cmp' COINEX_SMART_CHAIN = 'coinex-smart-chain' COLOSSUSXT = 'colossusxt' + COMBO = 'combo' COMDEX = 'comdex' CONFLUX = 'conflux' + COREUM = 'coreum' CORE_CHAIN = 'core-chain' COSMOS = 'cosmos' COUNTERPARTY = 'counterparty' CRESCENT = 'crescent' CRONOS = 'cronos' + CRONOS_ZKEVM = 'cronos-zkevm' CRYPTO_ORG = 'crypto-org' CUBE = 'cube' CYBER = 'cyber' @@ -85,8 +96,11 @@ class Blockchain(str, Enum): DASH = 'dash' DBK = 'dbk' DEFI = 'defi' + DEFICHAIN_EVM = 'defichain-evm' + DEFIVERSE = 'defiverse' DEFI_KINGDOMS = 'defi-kingdoms' DEGEN = 'degen' + DERIVE = 'derive' DEX_ALOT = 'dexalot' DFK_CHAIN = 'dfk-chain' DITHEREUM = 'dithereum' @@ -99,6 +113,7 @@ class Blockchain(str, Enum): ELASTOS = 'elastos' ELA_DID_SIDECHAIN = 'ela-did-sidechain' ELROND = 'elrond' + ELYSIUM = 'elysium' EMERALD_PARATIME = 'emerald-paratime' EMPIRE = 'empire' ENDURANCE = 'endurance' @@ -109,6 +124,7 @@ class Blockchain(str, Enum): ETHEREUM = 'ethereum' ETHEREUMPOW = 'ethereumpow' ETHEREUM_CLASSIC = 'ethereum-classic' + ETHERLINK = 'etherlink' EVERSCALE = 'everscale' EVMOS = 'evmos' EXOSAMA = 'exosama' @@ -125,12 +141,17 @@ class Blockchain(str, Enum): FUSE = 'fuse' FUSION_NETWORK = 'fusion-network' GALA = 'gala' + GATEVM = 'gatevm' GENESIS_L1 = 'genesis-l1' GENESYS = 'genesys' GNOSIS = 'gnosis' GOCHAIN = 'gochain' GODWOKEN = 'godwoken' + GRAPHLINQ_CHAIN = 'graphlinq-chain' + GRAVITY = 'gravity' + GRAVITY_ALPHA = 'gravity-alpha' GRAVITY_BRIDGE = 'gravity-bridge' + HAQQ_NETWORK = 'haqq-network' HARMONY = 'harmony' HECO = 'heco' HEDERA_HASHGRAPH = 'hedera-hashgraph' @@ -144,6 +165,7 @@ class Blockchain(str, Enum): HYPRA_NETWORK = 'hypra-network' ICON = 'icon' IMMUTABLE = 'immutable' + INEVM = 'inevm' INJECTIVE = 'injective' INTERNET_COMPUTER = 'internet-computer' IOTA_EVM = 'iota-evm' @@ -154,6 +176,7 @@ class Blockchain(str, Enum): KARAK = 'karak' KARDIACHAIN = 'kardiachain' KARURA = 'karura' + KASPLEX = 'kasplex' KAVA = 'kava' KCC = 'kcc' KI_CHAIN = 'ki-chain' @@ -164,6 +187,7 @@ class Blockchain(str, Enum): KUCOIN = 'kucoin' KUJIRA = 'kujira' KUSAMA = 'kusama' + LAIKACHAIN = 'laikachain' LIGHTLINK = 'lightlink' LINEA = 'linea' LISK = 'lisk' @@ -175,7 +199,9 @@ class Blockchain(str, Enum): MANTLE = 'mantle' MAP_PROTOCOL = 'map-protocol' MASSA = 'massa' + MELD = 'meld' MERLIN_CHAIN = 'merlin-chain' + METAL_L2 = 'metal-l2' METAVERSE_ETP = 'metaverse-etp' METER = 'meter' METIS_ANDROMEDA = 'metis-andromeda' @@ -188,11 +214,13 @@ class Blockchain(str, Enum): MOLTEN = 'molten' MOONBEAM = 'moonbeam' MOONRIVER = 'moonriver' + MORPH = 'morph' NEAR_PROTOCOL = 'near-protocol' NEM = 'nem' NEO = 'neo' NEON_EVM = 'neon-evm' NEUTRON = 'neutron' + NOBLE = 'noble' NULS = 'nuls' NXT = 'nxt' OASIS_CHAIN = 'oasis-chain' @@ -205,6 +233,7 @@ class Blockchain(str, Enum): OMAX = 'omax' OMNI = 'omni' OMNIFLIX = 'omniflix' + ONCHAIN = 'onchain' ONTOLOGY = 'ontology' ONUS_CHAIN = 'onus-chain' OPENLEDGER = 'openledger' @@ -213,12 +242,14 @@ class Blockchain(str, Enum): OPTIMISTIC_BNB = 'optimistic-bnb' OPTIMISTIC_ETHEREUM = 'optimistic-ethereum' ORAI = 'orai' + ORDERLY = 'orderly' ORDINALS = 'ordinals' ORENIUM = 'orenium' OSMOSIS = 'osmosis' PALM = 'palm' PEGO = 'pego' PERSISTENCE = 'persistence' + PICASSO = 'picasso' PLAT_ON = 'plat-on' POLIS_CHAIN = 'polis-chain' POLKADOT = 'polkadot' @@ -227,8 +258,10 @@ class Blockchain(str, Enum): PROOF_OF_MEMES = 'proof-of-memes' PROOF_OF_PLAY_APEX = 'proof-of-play-apex' PULSE = 'pulse' + QL1 = 'ql1' QTUM = 'qtum' QUICKSILVER = 'quicksilver' + Q_MAINNET = 'q-mainnet' RADIX = 'radix' RAILS = 'rails' RARI = 'rari' @@ -240,6 +273,7 @@ class Blockchain(str, Enum): RONIN = 'ronin' ROOTSTOCK = 'rootstock' RSK = 'rsk' + RSS3_VSL = 'rss3-vsl' SAAKURU = 'saakuru' SAGA = 'saga' SAITA = 'saita' @@ -253,6 +287,7 @@ class Blockchain(str, Enum): SEI_V2 = 'sei-v2' SENTINEL = 'sentinel' SGE = 'sge' + SHAPE = 'shape' SHIBARIUM = 'shibarium' SHIBA_CHAIN = 'shiba-chain' SHIDEN_NETWORK = 'shiden-network' @@ -263,6 +298,7 @@ class Blockchain(str, Enum): SOLANA = 'solana' SONGBIRD = 'songbird' SONGBIRD_CANARY = 'songbird-canary' + SONIC = 'sonic' SORA = 'sora' STACKS = 'stacks' STARKNET = 'starknet' @@ -272,10 +308,12 @@ class Blockchain(str, Enum): SUI = 'sui' SUPER_LUMIO = 'super-lumio' SUPER_ZERO = 'super-zero' + SWELL = 'swell' SX_NETWORK = 'sx-network' SYSCOIN = 'syscoin' TAIKO = 'taiko' TBWG_CHAIN = 'tbwg-chain' + TDVV_SIDECHAIN = 'tdvv-sidechain' TELOS = 'telos' TENET = 'tenet' TERRA = 'terra' @@ -296,11 +334,14 @@ class Blockchain(str, Enum): VALORBIT = 'valorbit' VECHAIN = 'vechain' VELAS = 'velas' + VENOM = 'venom' VITE = 'vite' WANCHAIN = 'wanchain' WAVES = 'waves' WAX = 'wax' WEMIX_NETWORK = 'wemix-network' + WORLD_CHAIN = 'world-chain' + WYZTH = 'wyzth' XAI = 'xai' XDAI = 'xdai' XDC_NETWORK = 'xdc-network' @@ -309,8 +350,10 @@ class Blockchain(str, Enum): X_LAYER = 'x-layer' YOCOIN = 'yocoin' ZEDXION = 'zedxion' + ZERO = 'zero' ZETA_CHAIN = 'zetachain' ZILLIQA = 'zilliqa' + ZIRCUIT = 'zircuit' ZKFAIR = 'zkfair' ZKLINK_NOVA = 'zklink-nova' ZKSYNC_ERA = 'zksync-era'