"""Cached asset data for fast lookups without API calls.

Generated by: poetry run python scripts/refresh_assets.py
Last updated: 2025-08-13T18:18:12.487220
Mainnet assets: 202
Testnet assets: 202
"""

from typing import Any

# Static asset index to name mapping (mainnet)
MAINNET_ASSET_INDEX_TO_NAME: dict[int, str] = {
    0: "BTC",
    1: "ETH",
    2: "ATOM",
    3: "MATIC",
    4: "DYDX",
    5: "SOL",
    6: "AVAX",
    7: "BNB",
    8: "APE",
    9: "OP",
    10: "LTC",
    11: "ARB",
    12: "DOGE",
    13: "INJ",
    14: "SUI",
    15: "kPEPE",
    16: "CRV",
    17: "LDO",
    18: "LINK",
    19: "STX",
    20: "RNDR",
    21: "CFX",
    22: "FTM",
    23: "GMX",
    24: "SNX",
    25: "XRP",
    26: "BCH",
    27: "APT",
    28: "AAVE",
    29: "COMP",
    30: "MKR",
    31: "WLD",
    32: "FXS",
    33: "HPOS",
    34: "RLB",
    35: "UNIBOT",
    36: "YGG",
    37: "TRX",
    38: "kSHIB",
    39: "UNI",
    40: "SEI",
    41: "RUNE",
    42: "OX",
    43: "FRIEND",
    44: "SHIA",
    45: "CYBER",
    46: "ZRO",
    47: "BLZ",
    48: "DOT",
    49: "BANANA",
    50: "TRB",
    51: "FTT",
    52: "LOOM",
    53: "OGN",
    54: "RDNT",
    55: "ARK",
    56: "BNT",
    57: "CANTO",
    58: "REQ",
    59: "BIGTIME",
    60: "KAS",
    61: "ORBS",
    62: "BLUR",
    63: "TIA",
    64: "BSV",
    65: "ADA",
    66: "TON",
    67: "MINA",
    68: "POLYX",
    69: "GAS",
    70: "PENDLE",
    71: "STG",
    72: "FET",
    73: "STRAX",
    74: "NEAR",
    75: "MEME",
    76: "ORDI",
    77: "BADGER",
    78: "NEO",
    79: "ZEN",
    80: "FIL",
    81: "PYTH",
    82: "SUSHI",
    83: "ILV",
    84: "IMX",
    85: "kBONK",
    86: "GMT",
    87: "SUPER",
    88: "USTC",
    89: "NFTI",
    90: "JUP",
    91: "kLUNC",
    92: "RSR",
    93: "GALA",
    94: "JTO",
    95: "NTRN",
    96: "ACE",
    97: "MAV",
    98: "WIF",
    99: "CAKE",
    100: "PEOPLE",
    101: "ENS",
    102: "ETC",
    103: "XAI",
    104: "MANTA",
    105: "UMA",
    106: "ONDO",
    107: "ALT",
    108: "ZETA",
    109: "DYM",
    110: "MAVIA",
    111: "W",
    112: "PANDORA",
    113: "STRK",
    114: "PIXEL",
    115: "AI",
    116: "TAO",
    117: "AR",
    118: "MYRO",
    119: "kFLOKI",
    120: "BOME",
    121: "ETHFI",
    122: "ENA",
    123: "MNT",
    124: "TNSR",
    125: "SAGA",
    126: "MERL",
    127: "HBAR",
    128: "POPCAT",
    129: "OMNI",
    130: "EIGEN",
    131: "REZ",
    132: "NOT",
    133: "TURBO",
    134: "BRETT",
    135: "IO",
    136: "ZK",
    137: "BLAST",
    138: "LISTA",
    139: "MEW",
    140: "RENDER",
    141: "kDOGS",
    142: "POL",
    143: "CATI",
    144: "CELO",
    145: "HMSTR",
    146: "SCR",
    147: "NEIROETH",
    148: "kNEIRO",
    149: "GOAT",
    150: "MOODENG",
    151: "GRASS",
    152: "PURR",
    153: "PNUT",
    154: "XLM",
    155: "CHILLGUY",
    156: "SAND",
    157: "IOTA",
    158: "ALGO",
    159: "HYPE",
    160: "ME",
    161: "MOVE",
    162: "VIRTUAL",
    163: "PENGU",
    164: "USUAL",
    165: "FARTCOIN",
    166: "AI16Z",
    167: "AIXBT",
    168: "ZEREBRO",
    169: "BIO",
    170: "GRIFFAIN",
    171: "SPX",
    172: "S",
    173: "MORPHO",
    174: "TRUMP",
    175: "MELANIA",
    176: "ANIME",
    177: "VINE",
    178: "VVV",
    179: "JELLY",
    180: "BERA",
    181: "TST",
    182: "LAYER",
    183: "IP",
    184: "OM",
    185: "KAITO",
    186: "NIL",
    187: "PAXG",
    188: "PROMPT",
    189: "BABY",
    190: "WCT",
    191: "HYPER",
    192: "ZORA",
    193: "INIT",
    194: "DOOD",
    195: "LAUNCHCOIN",
    196: "NXPC",
    197: "SOPH",
    198: "RESOLV",
    199: "SYRUP",
    200: "PUMP",
    201: "PROVE",
}

# Static asset index to name mapping (testnet)
TESTNET_ASSET_INDEX_TO_NAME: dict[int, str] = {
    0: "BTC",
    1: "ETH",
    2: "ATOM",
    3: "MATIC",
    4: "DYDX",
    5: "SOL",
    6: "AVAX",
    7: "BNB",
    8: "APE",
    9: "OP",
    10: "LTC",
    11: "ARB",
    12: "DOGE",
    13: "INJ",
    14: "SUI",
    15: "kPEPE",
    16: "CRV",
    17: "LDO",
    18: "LINK",
    19: "STX",
    20: "RNDR",
    21: "CFX",
    22: "FTM",
    23: "GMX",
    24: "SNX",
    25: "XRP",
    26: "BCH",
    27: "APT",
    28: "AAVE",
    29: "COMP",
    30: "MKR",
    31: "WLD",
    32: "FXS",
    33: "HPOS",
    34: "RLB",
    35: "UNIBOT",
    36: "YGG",
    37: "TRX",
    38: "kSHIB",
    39: "UNI",
    40: "SEI",
    41: "RUNE",
    42: "OX",
    43: "FRIEND",
    44: "SHIA",
    45: "CYBER",
    46: "ZRO",
    47: "BLZ",
    48: "DOT",
    49: "BANANA",
    50: "TRB",
    51: "FTT",
    52: "LOOM",
    53: "OGN",
    54: "RDNT",
    55: "ARK",
    56: "BNT",
    57: "CANTO",
    58: "REQ",
    59: "BIGTIME",
    60: "KAS",
    61: "ORBS",
    62: "BLUR",
    63: "TIA",
    64: "BSV",
    65: "ADA",
    66: "TON",
    67: "MINA",
    68: "POLYX",
    69: "GAS",
    70: "PENDLE",
    71: "STG",
    72: "FET",
    73: "STRAX",
    74: "NEAR",
    75: "MEME",
    76: "ORDI",
    77: "BADGER",
    78: "NEO",
    79: "ZEN",
    80: "FIL",
    81: "PYTH",
    82: "SUSHI",
    83: "ILV",
    84: "IMX",
    85: "kBONK",
    86: "GMT",
    87: "SUPER",
    88: "USTC",
    89: "NFTI",
    90: "JUP",
    91: "kLUNC",
    92: "RSR",
    93: "GALA",
    94: "JTO",
    95: "NTRN",
    96: "ACE",
    97: "MAV",
    98: "WIF",
    99: "CAKE",
    100: "PEOPLE",
    101: "ENS",
    102: "ETC",
    103: "XAI",
    104: "MANTA",
    105: "UMA",
    106: "ONDO",
    107: "ALT",
    108: "ZETA",
    109: "DYM",
    110: "MAVIA",
    111: "W",
    112: "PANDORA",
    113: "STRK",
    114: "PIXEL",
    115: "AI",
    116: "TAO",
    117: "AR",
    118: "MYRO",
    119: "kFLOKI",
    120: "BOME",
    121: "ETHFI",
    122: "ENA",
    123: "MNT",
    124: "TNSR",
    125: "SAGA",
    126: "MERL",
    127: "HBAR",
    128: "POPCAT",
    129: "OMNI",
    130: "EIGEN",
    131: "REZ",
    132: "NOT",
    133: "TURBO",
    134: "BRETT",
    135: "IO",
    136: "ZK",
    137: "BLAST",
    138: "LISTA",
    139: "MEW",
    140: "RENDER",
    141: "kDOGS",
    142: "POL",
    143: "CATI",
    144: "CELO",
    145: "HMSTR",
    146: "SCR",
    147: "NEIROETH",
    148: "kNEIRO",
    149: "GOAT",
    150: "MOODENG",
    151: "GRASS",
    152: "PURR",
    153: "PNUT",
    154: "XLM",
    155: "CHILLGUY",
    156: "SAND",
    157: "IOTA",
    158: "ALGO",
    159: "HYPE",
    160: "ME",
    161: "MOVE",
    162: "VIRTUAL",
    163: "PENGU",
    164: "USUAL",
    165: "FARTCOIN",
    166: "AI16Z",
    167: "AIXBT",
    168: "ZEREBRO",
    169: "BIO",
    170: "GRIFFAIN",
    171: "SPX",
    172: "S",
    173: "MORPHO",
    174: "TRUMP",
    175: "MELANIA",
    176: "ANIME",
    177: "VINE",
    178: "VVV",
    179: "JELLY",
    180: "BERA",
    181: "TST",
    182: "LAYER",
    183: "IP",
    184: "OM",
    185: "KAITO",
    186: "NIL",
    187: "PAXG",
    188: "PROMPT",
    189: "BABY",
    190: "WCT",
    191: "HYPER",
    192: "ZORA",
    193: "INIT",
    194: "DOOD",
    195: "LAUNCHCOIN",
    196: "NXPC",
    197: "SOPH",
    198: "RESOLV",
    199: "SYRUP",
    200: "PUMP",
    201: "PROVE",
}

# Asset name to index mapping (mainnet)
MAINNET_ASSET_NAME_TO_INDEX: dict[str, int] = {name: idx for idx, name in MAINNET_ASSET_INDEX_TO_NAME.items()}

# Asset name to index mapping (testnet)
TESTNET_ASSET_NAME_TO_INDEX: dict[str, int] = {name: idx for idx, name in TESTNET_ASSET_INDEX_TO_NAME.items()}

# Asset information (mainnet)
MAINNET_ASSET_INFO: dict[str, dict[str, Any]] = {
    "BTC": {"name": "BTC", "maxLeverage": 40, "szDecimals": 5, "marginTableId": 56, "isDelisted": False},
    "ETH": {"name": "ETH", "maxLeverage": 25, "szDecimals": 4, "marginTableId": 55, "isDelisted": False},
    "ATOM": {"name": "ATOM", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "MATIC": {"name": "MATIC", "maxLeverage": 20, "szDecimals": 1, "marginTableId": 20, "isDelisted": True},
    "DYDX": {"name": "DYDX", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "SOL": {"name": "SOL", "maxLeverage": 20, "szDecimals": 2, "marginTableId": 54, "isDelisted": False},
    "AVAX": {"name": "AVAX", "maxLeverage": 10, "szDecimals": 2, "marginTableId": 52, "isDelisted": False},
    "BNB": {"name": "BNB", "maxLeverage": 10, "szDecimals": 3, "marginTableId": 51, "isDelisted": False},
    "APE": {"name": "APE", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "OP": {"name": "OP", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 51, "isDelisted": False},
    "LTC": {"name": "LTC", "maxLeverage": 10, "szDecimals": 2, "marginTableId": 52, "isDelisted": False},
    "ARB": {"name": "ARB", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 51, "isDelisted": False},
    "DOGE": {"name": "DOGE", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "INJ": {"name": "INJ", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 51, "isDelisted": False},
    "SUI": {"name": "SUI", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "kPEPE": {"name": "kPEPE", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "CRV": {"name": "CRV", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "LDO": {"name": "LDO", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 51, "isDelisted": False},
    "LINK": {"name": "LINK", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "STX": {"name": "STX", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "RNDR": {"name": "RNDR", "maxLeverage": 20, "szDecimals": 1, "marginTableId": 20, "isDelisted": True},
    "CFX": {"name": "CFX", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "FTM": {"name": "FTM", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 10, "isDelisted": True},
    "GMX": {"name": "GMX", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "SNX": {"name": "SNX", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "XRP": {"name": "XRP", "maxLeverage": 20, "szDecimals": 0, "marginTableId": 53, "isDelisted": False},
    "BCH": {"name": "BCH", "maxLeverage": 10, "szDecimals": 3, "marginTableId": 52, "isDelisted": False},
    "APT": {"name": "APT", "maxLeverage": 10, "szDecimals": 2, "marginTableId": 52, "isDelisted": False},
    "AAVE": {"name": "AAVE", "maxLeverage": 10, "szDecimals": 2, "marginTableId": 52, "isDelisted": False},
    "COMP": {"name": "COMP", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "MKR": {"name": "MKR", "maxLeverage": 10, "szDecimals": 4, "marginTableId": 51, "isDelisted": False},
    "WLD": {"name": "WLD", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "FXS": {"name": "FXS", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "HPOS": {"name": "HPOS", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "RLB": {"name": "RLB", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "UNIBOT": {"name": "UNIBOT", "maxLeverage": 3, "szDecimals": 3, "marginTableId": 3, "isDelisted": True},
    "YGG": {"name": "YGG", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "TRX": {"name": "TRX", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 51, "isDelisted": False},
    "kSHIB": {"name": "kSHIB", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 51, "isDelisted": False},
    "UNI": {"name": "UNI", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "SEI": {"name": "SEI", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 51, "isDelisted": False},
    "RUNE": {"name": "RUNE", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "OX": {"name": "OX", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "FRIEND": {"name": "FRIEND", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": True},
    "SHIA": {"name": "SHIA", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "CYBER": {"name": "CYBER", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": True},
    "ZRO": {"name": "ZRO", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "BLZ": {"name": "BLZ", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": True},
    "DOT": {"name": "DOT", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 51, "isDelisted": False},
    "BANANA": {"name": "BANANA", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "TRB": {"name": "TRB", "maxLeverage": 3, "szDecimals": 2, "marginTableId": 3, "isDelisted": False},
    "FTT": {"name": "FTT", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "LOOM": {"name": "LOOM", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 10, "isDelisted": True},
    "OGN": {"name": "OGN", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "RDNT": {"name": "RDNT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": True},
    "ARK": {"name": "ARK", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "BNT": {"name": "BNT", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "CANTO": {"name": "CANTO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": True},
    "REQ": {"name": "REQ", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "BIGTIME": {"name": "BIGTIME", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "KAS": {"name": "KAS", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "ORBS": {"name": "ORBS", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "BLUR": {"name": "BLUR", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "TIA": {"name": "TIA", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "BSV": {"name": "BSV", "maxLeverage": 3, "szDecimals": 2, "marginTableId": 3, "isDelisted": False},
    "ADA": {"name": "ADA", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "TON": {"name": "TON", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 51, "isDelisted": False},
    "MINA": {"name": "MINA", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "POLYX": {"name": "POLYX", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "GAS": {"name": "GAS", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "PENDLE": {"name": "PENDLE", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "STG": {"name": "STG", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "FET": {"name": "FET", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "STRAX": {"name": "STRAX", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 10, "isDelisted": True},
    "NEAR": {"name": "NEAR", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "MEME": {"name": "MEME", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "ORDI": {"name": "ORDI", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "BADGER": {"name": "BADGER", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": True},
    "NEO": {"name": "NEO", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "ZEN": {"name": "ZEN", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "FIL": {"name": "FIL", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "PYTH": {"name": "PYTH", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "SUSHI": {"name": "SUSHI", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "ILV": {"name": "ILV", "maxLeverage": 3, "szDecimals": 2, "marginTableId": 3, "isDelisted": True},
    "IMX": {"name": "IMX", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "kBONK": {"name": "kBONK", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "GMT": {"name": "GMT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "SUPER": {"name": "SUPER", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "USTC": {"name": "USTC", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "NFTI": {"name": "NFTI", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": True},
    "JUP": {"name": "JUP", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 51, "isDelisted": False},
    "kLUNC": {"name": "kLUNC", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "RSR": {"name": "RSR", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "GALA": {"name": "GALA", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "JTO": {"name": "JTO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "NTRN": {"name": "NTRN", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "ACE": {"name": "ACE", "maxLeverage": 3, "szDecimals": 2, "marginTableId": 3, "isDelisted": False},
    "MAV": {"name": "MAV", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "WIF": {"name": "WIF", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "CAKE": {"name": "CAKE", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "PEOPLE": {"name": "PEOPLE", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "ENS": {"name": "ENS", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "ETC": {"name": "ETC", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "XAI": {"name": "XAI", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "MANTA": {"name": "MANTA", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "UMA": {"name": "UMA", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "ONDO": {"name": "ONDO", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 51, "isDelisted": False},
    "ALT": {"name": "ALT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "ZETA": {"name": "ZETA", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "DYM": {"name": "DYM", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "MAVIA": {"name": "MAVIA", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "W": {"name": "W", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "PANDORA": {"name": "PANDORA", "maxLeverage": 3, "szDecimals": 5, "marginTableId": 3, "isDelisted": True},
    "STRK": {"name": "STRK", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "PIXEL": {"name": "PIXEL", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "AI": {"name": "AI", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": True},
    "TAO": {"name": "TAO", "maxLeverage": 5, "szDecimals": 3, "marginTableId": 5, "isDelisted": False},
    "AR": {"name": "AR", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "MYRO": {"name": "MYRO", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "kFLOKI": {"name": "kFLOKI", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "BOME": {"name": "BOME", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "ETHFI": {"name": "ETHFI", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "ENA": {"name": "ENA", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "MNT": {"name": "MNT", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "TNSR": {"name": "TNSR", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "SAGA": {"name": "SAGA", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "MERL": {"name": "MERL", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "HBAR": {"name": "HBAR", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "POPCAT": {"name": "POPCAT", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "OMNI": {"name": "OMNI", "maxLeverage": 3, "szDecimals": 2, "marginTableId": 3, "isDelisted": False},
    "EIGEN": {"name": "EIGEN", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "REZ": {"name": "REZ", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "NOT": {"name": "NOT", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "TURBO": {"name": "TURBO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "BRETT": {"name": "BRETT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "IO": {"name": "IO", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "ZK": {"name": "ZK", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "BLAST": {"name": "BLAST", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "LISTA": {"name": "LISTA", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "MEW": {"name": "MEW", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "RENDER": {"name": "RENDER", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "kDOGS": {"name": "kDOGS", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "POL": {"name": "POL", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "CATI": {"name": "CATI", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "CELO": {"name": "CELO", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "HMSTR": {"name": "HMSTR", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "SCR": {"name": "SCR", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "NEIROETH": {"name": "NEIROETH", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "kNEIRO": {"name": "kNEIRO", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "GOAT": {"name": "GOAT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "MOODENG": {"name": "MOODENG", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "GRASS": {"name": "GRASS", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "PURR": {"name": "PURR", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "PNUT": {"name": "PNUT", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "XLM": {"name": "XLM", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "CHILLGUY": {"name": "CHILLGUY", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "SAND": {"name": "SAND", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "IOTA": {"name": "IOTA", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "ALGO": {"name": "ALGO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "HYPE": {"name": "HYPE", "maxLeverage": 10, "szDecimals": 2, "marginTableId": 52, "isDelisted": False},
    "ME": {"name": "ME", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "MOVE": {"name": "MOVE", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "VIRTUAL": {"name": "VIRTUAL", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "PENGU": {"name": "PENGU", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "USUAL": {"name": "USUAL", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "FARTCOIN": {"name": "FARTCOIN", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "AI16Z": {"name": "AI16Z", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "AIXBT": {"name": "AIXBT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "ZEREBRO": {"name": "ZEREBRO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "BIO": {"name": "BIO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "GRIFFAIN": {"name": "GRIFFAIN", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "SPX": {"name": "SPX", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "S": {"name": "S", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "MORPHO": {"name": "MORPHO", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "TRUMP": {"name": "TRUMP", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "MELANIA": {"name": "MELANIA", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "ANIME": {"name": "ANIME", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "VINE": {"name": "VINE", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "VVV": {"name": "VVV", "maxLeverage": 3, "szDecimals": 2, "marginTableId": 3, "isDelisted": False},
    "JELLY": {"name": "JELLY", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "BERA": {"name": "BERA", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "TST": {"name": "TST", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "LAYER": {"name": "LAYER", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "IP": {"name": "IP", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "OM": {"name": "OM", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "KAITO": {"name": "KAITO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "NIL": {"name": "NIL", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "PAXG": {"name": "PAXG", "maxLeverage": 5, "szDecimals": 3, "marginTableId": 5, "isDelisted": False},
    "PROMPT": {"name": "PROMPT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "BABY": {"name": "BABY", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "WCT": {"name": "WCT", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "HYPER": {"name": "HYPER", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "ZORA": {"name": "ZORA", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "INIT": {"name": "INIT", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "DOOD": {"name": "DOOD", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "LAUNCHCOIN": {"name": "LAUNCHCOIN", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "NXPC": {"name": "NXPC", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "SOPH": {"name": "SOPH", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "RESOLV": {"name": "RESOLV", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "SYRUP": {"name": "SYRUP", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "PUMP": {"name": "PUMP", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "PROVE": {"name": "PROVE", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
}

# Asset information (testnet)
TESTNET_ASSET_INFO: dict[str, dict[str, Any]] = {
    "BTC": {"name": "BTC", "maxLeverage": 40, "szDecimals": 5, "marginTableId": 56, "isDelisted": False},
    "ETH": {"name": "ETH", "maxLeverage": 25, "szDecimals": 4, "marginTableId": 55, "isDelisted": False},
    "ATOM": {"name": "ATOM", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "MATIC": {"name": "MATIC", "maxLeverage": 20, "szDecimals": 1, "marginTableId": 20, "isDelisted": True},
    "DYDX": {"name": "DYDX", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "SOL": {"name": "SOL", "maxLeverage": 20, "szDecimals": 2, "marginTableId": 54, "isDelisted": False},
    "AVAX": {"name": "AVAX", "maxLeverage": 10, "szDecimals": 2, "marginTableId": 52, "isDelisted": False},
    "BNB": {"name": "BNB", "maxLeverage": 10, "szDecimals": 3, "marginTableId": 51, "isDelisted": False},
    "APE": {"name": "APE", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "OP": {"name": "OP", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 51, "isDelisted": False},
    "LTC": {"name": "LTC", "maxLeverage": 10, "szDecimals": 2, "marginTableId": 52, "isDelisted": False},
    "ARB": {"name": "ARB", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 51, "isDelisted": False},
    "DOGE": {"name": "DOGE", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "INJ": {"name": "INJ", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 51, "isDelisted": False},
    "SUI": {"name": "SUI", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "kPEPE": {"name": "kPEPE", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "CRV": {"name": "CRV", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "LDO": {"name": "LDO", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 51, "isDelisted": False},
    "LINK": {"name": "LINK", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "STX": {"name": "STX", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "RNDR": {"name": "RNDR", "maxLeverage": 20, "szDecimals": 1, "marginTableId": 20, "isDelisted": True},
    "CFX": {"name": "CFX", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "FTM": {"name": "FTM", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 10, "isDelisted": True},
    "GMX": {"name": "GMX", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "SNX": {"name": "SNX", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "XRP": {"name": "XRP", "maxLeverage": 20, "szDecimals": 0, "marginTableId": 53, "isDelisted": False},
    "BCH": {"name": "BCH", "maxLeverage": 10, "szDecimals": 3, "marginTableId": 52, "isDelisted": False},
    "APT": {"name": "APT", "maxLeverage": 10, "szDecimals": 2, "marginTableId": 52, "isDelisted": False},
    "AAVE": {"name": "AAVE", "maxLeverage": 10, "szDecimals": 2, "marginTableId": 52, "isDelisted": False},
    "COMP": {"name": "COMP", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "MKR": {"name": "MKR", "maxLeverage": 10, "szDecimals": 4, "marginTableId": 51, "isDelisted": False},
    "WLD": {"name": "WLD", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "FXS": {"name": "FXS", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "HPOS": {"name": "HPOS", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "RLB": {"name": "RLB", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "UNIBOT": {"name": "UNIBOT", "maxLeverage": 3, "szDecimals": 3, "marginTableId": 3, "isDelisted": True},
    "YGG": {"name": "YGG", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "TRX": {"name": "TRX", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 51, "isDelisted": False},
    "kSHIB": {"name": "kSHIB", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 51, "isDelisted": False},
    "UNI": {"name": "UNI", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "SEI": {"name": "SEI", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 51, "isDelisted": False},
    "RUNE": {"name": "RUNE", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "OX": {"name": "OX", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "FRIEND": {"name": "FRIEND", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": True},
    "SHIA": {"name": "SHIA", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "CYBER": {"name": "CYBER", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": True},
    "ZRO": {"name": "ZRO", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "BLZ": {"name": "BLZ", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": True},
    "DOT": {"name": "DOT", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 51, "isDelisted": False},
    "BANANA": {"name": "BANANA", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "TRB": {"name": "TRB", "maxLeverage": 3, "szDecimals": 2, "marginTableId": 3, "isDelisted": False},
    "FTT": {"name": "FTT", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "LOOM": {"name": "LOOM", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 10, "isDelisted": True},
    "OGN": {"name": "OGN", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "RDNT": {"name": "RDNT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": True},
    "ARK": {"name": "ARK", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "BNT": {"name": "BNT", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "CANTO": {"name": "CANTO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": True},
    "REQ": {"name": "REQ", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "BIGTIME": {"name": "BIGTIME", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "KAS": {"name": "KAS", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "ORBS": {"name": "ORBS", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "BLUR": {"name": "BLUR", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "TIA": {"name": "TIA", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "BSV": {"name": "BSV", "maxLeverage": 3, "szDecimals": 2, "marginTableId": 3, "isDelisted": False},
    "ADA": {"name": "ADA", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "TON": {"name": "TON", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 51, "isDelisted": False},
    "MINA": {"name": "MINA", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "POLYX": {"name": "POLYX", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "GAS": {"name": "GAS", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "PENDLE": {"name": "PENDLE", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "STG": {"name": "STG", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "FET": {"name": "FET", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "STRAX": {"name": "STRAX", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 10, "isDelisted": True},
    "NEAR": {"name": "NEAR", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "MEME": {"name": "MEME", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "ORDI": {"name": "ORDI", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "BADGER": {"name": "BADGER", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": True},
    "NEO": {"name": "NEO", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "ZEN": {"name": "ZEN", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "FIL": {"name": "FIL", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "PYTH": {"name": "PYTH", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "SUSHI": {"name": "SUSHI", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "ILV": {"name": "ILV", "maxLeverage": 3, "szDecimals": 2, "marginTableId": 3, "isDelisted": True},
    "IMX": {"name": "IMX", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "kBONK": {"name": "kBONK", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "GMT": {"name": "GMT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "SUPER": {"name": "SUPER", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "USTC": {"name": "USTC", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "NFTI": {"name": "NFTI", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": True},
    "JUP": {"name": "JUP", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 51, "isDelisted": False},
    "kLUNC": {"name": "kLUNC", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "RSR": {"name": "RSR", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "GALA": {"name": "GALA", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "JTO": {"name": "JTO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "NTRN": {"name": "NTRN", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "ACE": {"name": "ACE", "maxLeverage": 3, "szDecimals": 2, "marginTableId": 3, "isDelisted": False},
    "MAV": {"name": "MAV", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "WIF": {"name": "WIF", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "CAKE": {"name": "CAKE", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "PEOPLE": {"name": "PEOPLE", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "ENS": {"name": "ENS", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "ETC": {"name": "ETC", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "XAI": {"name": "XAI", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "MANTA": {"name": "MANTA", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "UMA": {"name": "UMA", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "ONDO": {"name": "ONDO", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 51, "isDelisted": False},
    "ALT": {"name": "ALT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "ZETA": {"name": "ZETA", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "DYM": {"name": "DYM", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "MAVIA": {"name": "MAVIA", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "W": {"name": "W", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "PANDORA": {"name": "PANDORA", "maxLeverage": 3, "szDecimals": 5, "marginTableId": 3, "isDelisted": True},
    "STRK": {"name": "STRK", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "PIXEL": {"name": "PIXEL", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "AI": {"name": "AI", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": True},
    "TAO": {"name": "TAO", "maxLeverage": 5, "szDecimals": 3, "marginTableId": 5, "isDelisted": False},
    "AR": {"name": "AR", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "MYRO": {"name": "MYRO", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "kFLOKI": {"name": "kFLOKI", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "BOME": {"name": "BOME", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "ETHFI": {"name": "ETHFI", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "ENA": {"name": "ENA", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "MNT": {"name": "MNT", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "TNSR": {"name": "TNSR", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "SAGA": {"name": "SAGA", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "MERL": {"name": "MERL", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "HBAR": {"name": "HBAR", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "POPCAT": {"name": "POPCAT", "maxLeverage": 10, "szDecimals": 0, "marginTableId": 52, "isDelisted": False},
    "OMNI": {"name": "OMNI", "maxLeverage": 3, "szDecimals": 2, "marginTableId": 3, "isDelisted": False},
    "EIGEN": {"name": "EIGEN", "maxLeverage": 5, "szDecimals": 2, "marginTableId": 5, "isDelisted": False},
    "REZ": {"name": "REZ", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "NOT": {"name": "NOT", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "TURBO": {"name": "TURBO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "BRETT": {"name": "BRETT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "IO": {"name": "IO", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "ZK": {"name": "ZK", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "BLAST": {"name": "BLAST", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "LISTA": {"name": "LISTA", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "MEW": {"name": "MEW", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "RENDER": {"name": "RENDER", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "kDOGS": {"name": "kDOGS", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "POL": {"name": "POL", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "CATI": {"name": "CATI", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "CELO": {"name": "CELO", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "HMSTR": {"name": "HMSTR", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "SCR": {"name": "SCR", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "NEIROETH": {"name": "NEIROETH", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "kNEIRO": {"name": "kNEIRO", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "GOAT": {"name": "GOAT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "MOODENG": {"name": "MOODENG", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "GRASS": {"name": "GRASS", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "PURR": {"name": "PURR", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "PNUT": {"name": "PNUT", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "XLM": {"name": "XLM", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "CHILLGUY": {"name": "CHILLGUY", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "SAND": {"name": "SAND", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "IOTA": {"name": "IOTA", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "ALGO": {"name": "ALGO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "HYPE": {"name": "HYPE", "maxLeverage": 10, "szDecimals": 2, "marginTableId": 52, "isDelisted": False},
    "ME": {"name": "ME", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "MOVE": {"name": "MOVE", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "VIRTUAL": {"name": "VIRTUAL", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "PENGU": {"name": "PENGU", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "USUAL": {"name": "USUAL", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "FARTCOIN": {"name": "FARTCOIN", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "AI16Z": {"name": "AI16Z", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "AIXBT": {"name": "AIXBT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "ZEREBRO": {"name": "ZEREBRO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "BIO": {"name": "BIO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "GRIFFAIN": {"name": "GRIFFAIN", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "SPX": {"name": "SPX", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "S": {"name": "S", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "MORPHO": {"name": "MORPHO", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "TRUMP": {"name": "TRUMP", "maxLeverage": 10, "szDecimals": 1, "marginTableId": 52, "isDelisted": False},
    "MELANIA": {"name": "MELANIA", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "ANIME": {"name": "ANIME", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "VINE": {"name": "VINE", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "VVV": {"name": "VVV", "maxLeverage": 3, "szDecimals": 2, "marginTableId": 3, "isDelisted": False},
    "JELLY": {"name": "JELLY", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": True},
    "BERA": {"name": "BERA", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "TST": {"name": "TST", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "LAYER": {"name": "LAYER", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "IP": {"name": "IP", "maxLeverage": 3, "szDecimals": 1, "marginTableId": 3, "isDelisted": False},
    "OM": {"name": "OM", "maxLeverage": 5, "szDecimals": 1, "marginTableId": 5, "isDelisted": False},
    "KAITO": {"name": "KAITO", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "NIL": {"name": "NIL", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "PAXG": {"name": "PAXG", "maxLeverage": 5, "szDecimals": 3, "marginTableId": 5, "isDelisted": False},
    "PROMPT": {"name": "PROMPT", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "BABY": {"name": "BABY", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "WCT": {"name": "WCT", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "HYPER": {"name": "HYPER", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "ZORA": {"name": "ZORA", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "INIT": {"name": "INIT", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "DOOD": {"name": "DOOD", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "LAUNCHCOIN": {"name": "LAUNCHCOIN", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "NXPC": {"name": "NXPC", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "SOPH": {"name": "SOPH", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "RESOLV": {"name": "RESOLV", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "SYRUP": {"name": "SYRUP", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
    "PUMP": {"name": "PUMP", "maxLeverage": 5, "szDecimals": 0, "marginTableId": 5, "isDelisted": False},
    "PROVE": {"name": "PROVE", "maxLeverage": 3, "szDecimals": 0, "marginTableId": 3, "isDelisted": False},
}


def get_coin_name(coin_id: str, is_testnet: bool = False) -> str:
    """Convert @ token to readable name using cached data."""
    if not coin_id.startswith("@"):
        return coin_id

    try:
        idx = int(coin_id[1:])
        mapping = TESTNET_ASSET_INDEX_TO_NAME if is_testnet else MAINNET_ASSET_INDEX_TO_NAME
        return mapping.get(idx, coin_id)
    except ValueError:
        return coin_id


def get_asset_info(coin: str, is_testnet: bool = False) -> dict[str, Any] | None:
    """Get asset information from cache."""
    if coin.startswith("@"):
        coin = get_coin_name(coin, is_testnet)

    asset_data = TESTNET_ASSET_INFO if is_testnet else MAINNET_ASSET_INFO
    return asset_data.get(coin.upper())


def get_max_leverage(coin: str, is_testnet: bool = False) -> int | None:
    """Get max leverage from cache."""
    info = get_asset_info(coin, is_testnet)
    return info.get("maxLeverage") if info else None


def is_valid_asset(coin: str, is_testnet: bool = False) -> bool:
    """Check if asset exists in cache."""
    if coin.startswith("@"):
        try:
            idx = int(coin[1:])
            mapping = TESTNET_ASSET_INDEX_TO_NAME if is_testnet else MAINNET_ASSET_INDEX_TO_NAME
            return idx in mapping
        except ValueError:
            return False

    asset_data = TESTNET_ASSET_INFO if is_testnet else MAINNET_ASSET_INFO
    return coin.upper() in asset_data
