{"version":3,"file":"bridge.mjs","sourceRoot":"","sources":["../../src/constants/bridge.ts"],"names":[],"mappings":"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","sourcesContent":["import { AddressZero } from '@ethersproject/constants';\nimport { BtcScope, SolScope, TrxScope } from '@metamask/keyring-api';\nimport type { Hex } from '@metamask/utils';\n\nimport type {\n  BridgeControllerState,\n  FeatureFlagsPlatformConfig,\n} from '../types';\nimport { CHAIN_IDS } from './chains';\n\nexport const ALLOWED_BRIDGE_CHAIN_IDS = [\n  CHAIN_IDS.MAINNET,\n  CHAIN_IDS.BSC,\n  CHAIN_IDS.POLYGON,\n  CHAIN_IDS.ZKSYNC_ERA,\n  CHAIN_IDS.AVALANCHE,\n  CHAIN_IDS.OPTIMISM,\n  CHAIN_IDS.ARBITRUM,\n  CHAIN_IDS.LINEA_MAINNET,\n  CHAIN_IDS.BASE,\n  CHAIN_IDS.SEI,\n  CHAIN_IDS.MONAD,\n  CHAIN_IDS.HYPEREVM,\n  CHAIN_IDS.MEGAETH,\n  CHAIN_IDS.ARC,\n  SolScope.Mainnet,\n  BtcScope.Mainnet,\n  TrxScope.Mainnet,\n] as const;\n\nexport type AllowedBridgeChainIds = (typeof ALLOWED_BRIDGE_CHAIN_IDS)[number];\n\nexport const BRIDGE_DEV_API_BASE_URL = 'https://bridge.dev-api.cx.metamask.io';\nexport const BRIDGE_PROD_API_BASE_URL = 'https://bridge.api.cx.metamask.io';\n\nexport enum BridgeClientId {\n  EXTENSION = 'extension',\n  MOBILE = 'mobile',\n}\n\nexport const ETH_USDT_ADDRESS = '0xdac17f958d2ee523a2206206994597c13d831ec7';\nexport const METABRIDGE_ETHEREUM_ADDRESS =\n  '0x0439e60F02a8900a951603950d8D4527f400C3f1';\nexport const BRIDGE_QUOTE_MAX_ETA_SECONDS = 60 * 60; // 1 hour\nexport const BRIDGE_QUOTE_MAX_RETURN_DIFFERENCE_PERCENTAGE = 0.5; // if a quote returns in x times less return than the best quote, ignore it\n\nexport const BRIDGE_PREFERRED_GAS_ESTIMATE = 'medium';\nexport const BRIDGE_MM_FEE_RATE = 0.875;\nexport const REFRESH_INTERVAL_MS = 30 * 1000;\nexport const DEFAULT_MAX_REFRESH_COUNT = 5;\n\nexport const BRIDGE_CONTROLLER_NAME = 'BridgeController';\n\nexport const DEFAULT_CHAIN_RANKING = [\n  { chainId: 'eip155:1', name: 'Ethereum' },\n  { chainId: 'eip155:56', name: 'BNB' },\n  { chainId: 'bip122:000000000019d6689c085ae165831e93', name: 'BTC' },\n  { chainId: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp', name: 'Solana' },\n  { chainId: 'tron:728126428', name: 'Tron' },\n  { chainId: 'eip155:8453', name: 'Base' },\n  { chainId: 'eip155:42161', name: 'Arbitrum' },\n  { chainId: 'eip155:59144', name: 'Linea' },\n  { chainId: 'eip155:137', name: 'Polygon' },\n  { chainId: 'eip155:43114', name: 'Avalanche' },\n  { chainId: 'eip155:10', name: 'Optimism' },\n  { chainId: 'eip155:143', name: 'Monad' },\n  { chainId: 'eip155:1329', name: 'Sei' },\n  { chainId: 'eip155:999', name: 'HyperEVM' },\n  { chainId: 'eip155:4326', name: 'MegaETH' },\n  { chainId: 'eip155:5042', name: 'Arc' },\n  { chainId: 'eip155:324', name: 'zkSync' },\n] as const;\n\nexport const DEFAULT_FEATURE_FLAG_CONFIG: FeatureFlagsPlatformConfig = {\n  minimumVersion: '0.0.0',\n  refreshRate: REFRESH_INTERVAL_MS,\n  maxRefreshCount: DEFAULT_MAX_REFRESH_COUNT,\n  support: false,\n  chains: {},\n  chainRanking: [...DEFAULT_CHAIN_RANKING],\n};\n\nexport const DEFAULT_BRIDGE_CONTROLLER_STATE: BridgeControllerState = {\n  quoteRequest: [\n    {\n      srcTokenAddress: AddressZero,\n    },\n  ],\n  quotesInitialLoadTime: null,\n  quotes: [],\n  quotesLastFetched: null,\n  quotesLoadingStatus: null,\n  quoteFetchError: null,\n  quotesRefreshCount: 0,\n  assetExchangeRates: {},\n  minimumBalanceForRentExemptionInLamports: '0',\n  tokenWarnings: [],\n  tokenSecurityTypeDestination: null,\n  inputPrimaryDenomination: 'token_amount',\n  quoteStreamComplete: null,\n  batchSellTrades: null,\n  batchSellTradesLoadingStatus: null,\n};\n\nexport const METABRIDGE_CHAIN_TO_ADDRESS_MAP: Record<Hex, string> = {\n  [CHAIN_IDS.MAINNET]: METABRIDGE_ETHEREUM_ADDRESS,\n};\n"]}