// Please ensure the key and value are the same, only case difference is allowed,
export enum ChainKey {
  // EVM
  ETH = 'eth',
  POL = 'pol',
  BSC = 'bsc',
  DAI = 'dai',
  FTM = 'ftm',
  AVA = 'ava',
  ARB = 'arb',
  OPT = 'opt',
  ONE = 'one',
  FSN = 'fsn',
  MOR = 'mor',
  CEL = 'cel',
  FUS = 'fus',
  TLO = 'tlo',
  CRO = 'cro',
  BOB = 'bob',
  RSK = 'rsk',
  VEL = 'vel',
  MOO = 'moo',
  MAM = 'mam',
  AUR = 'aur',
  EVM = 'evm',
  ARN = 'arn',
  ERA = 'era',
  PZE = 'pze',
  LNA = 'lna',
  BAS = 'bas',
  SCL = 'scl',
  MOD = 'mod',
  MNT = 'mnt',
  BLS = 'bls',
  SEI = 'sei',
  FRA = 'fra',
  TAI = 'tai',
  GRA = 'gra',
  IMX = 'imx',
  KAI = 'kai',
  XLY = 'xly',
  OPB = 'opb',
  WCC = 'wcc',
  LSK = 'lsk',
  ABS = 'abs',
  BER = 'ber',
  SON = 'son',
  UNI = 'uni',
  APE = 'ape',
  SOE = 'soe',
  INK = 'ink',
  LNS = 'lns',
  SWL = 'swl',
  CRN = 'crn',
  ETL = 'etl',
  SUP = 'sup',
  HYP = 'hyp',
  XDC = 'xdc',
  BOC = 'boc', // BOB was already taken by Boba
  VIC = 'vic',
  FLR = 'flr',
  KAT = 'kat',
  VAN = 'van',
  RON = 'ron',
  PLU = 'plu',
  NIB = 'nib',
  HPL = 'hpl',
  SOP = 'sop',
  PLA = 'pla',
  FLW = 'flw',
  HMI = 'hmi',
  MON = 'mon',
  STA = 'sta',
  MEG = 'meg',
  BOT = 'bot',
  JOV = 'jov',
  MOP = 'mop',
  TEM = 'tem',
  ZEROG = 'zerog',
  PHR = 'phr',
  LTR = 'ltr',
  SOM = 'som',

  // None-EVM
  TER = 'ter',
  OAS = 'oas',

  // SVM
  SOL = 'sol',
  FOG = 'fog',

  // MVM
  SUI = 'sui',

  // UTXO
  BTC = 'btc',
  BCH = 'bch',
  LTC = 'ltc',
  DGE = 'dge',
  ZEC = 'zec',

  // Tron
  TRN = 'trn',

  // Stellar
  XLM = 'xlm',

  // Testnet
  ARCT = 'arct',
  OPST = 'opst',
  BAST = 'bast',
  ARBS = 'arbs',
}

export enum ChainId {
  ETH = 1,
  POL = 137,
  BSC = 56,
  DAI = 100,
  FTM = 250,
  AVA = 43114,
  ARB = 42161,
  OPT = 10,
  ONE = 1666600000,
  FSN = 32659,
  MOR = 1285,
  CEL = 42220,
  FUS = 122,
  TLO = 40,
  CRO = 25,
  BOB = 288,
  RSK = 30,
  VEL = 106,
  MOO = 1284,
  MAM = 1088,
  AUR = 1313161554,
  EVM = 9001,
  ARN = 42170,
  ERA = 324,
  PZE = 1101,
  LNA = 59144,
  BAS = 8453,
  SCL = 534352,
  MOD = 34443,
  MNT = 5000,
  BLS = 81457,
  SEI = 1329,
  FRA = 252,
  TAI = 167000,
  GRA = 1625,
  IMX = 13371,
  KAI = 8217,
  XLY = 196,
  OPB = 204,
  WCC = 480,
  LSK = 1135,
  ABS = 2741,
  BER = 80094,
  SON = 146,
  UNI = 130,
  APE = 33139,
  SOE = 1868,
  INK = 57073,
  LNS = 232,
  SWL = 1923,
  CRN = 21000000,
  ETL = 42793,
  SUP = 55244,
  HYP = 999,
  XDC = 50,
  BOC = 60808, // BOB was already taken by Boba
  VIC = 88,
  FLR = 14,
  KAT = 747474,
  VAN = 1480,
  RON = 2020,
  PLU = 98866,
  NIB = 6900,
  HPL = 1337, // Hyperliquid's core (non-EVM) chain hard-codes 1337 in every EIP-712-signed message
  SOP = 50104,
  PLA = 9745,
  FLW = 747,
  HMI = 43111,
  MON = 143,
  STA = 988,
  MEG = 4326,
  BOT = 3637,
  JOV = 5734951,
  MOP = 2818,
  TEM = 4217,
  ZEROG = 16661,
  PHR = 1672,
  LTR = 3586256,
  SOM = 5031,

  // None-EVM (IDs are made up by the LI.FI team)
  TER = 1161011141099710,
  OAS = 111971151099710,

  // SVM
  SOL = 1151111081099710,
  FOG = 1021111031099710,

  // MVM (IDs are made up by the LI.FI team)
  SUI = 9270000000000000, // First 16 non-letter hex digits of SUI genesis blob

  // UTXO (IDs are made up by the LI.FI team)
  BTC = 20000000000001,
  BCH = 20000000000002,
  LTC = 20000000000003,
  DGE = 20000000000004,
  ZEC = 20000000000005,

  // Tron
  TRN = 728126428,

  // Stellar (ID pattern: ASCII decimal of lowercase key letters + 1099710 suffix, x=120, l=108, m=109)
  XLM = 1201081091099710,

  // Testnet
  ARCT = 5042002,
  OPST = 11155420,
  BAST = 84532,
  ARBS = 421614,
}
