UNPKG

@reservoir0x/relay-kit-ui

Version:

Relay is the Fastest and Cheapest Way to Bridge and Transact Across Chains.

81 lines 3.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getInitialChainFilter = exports.sortChains = exports.groupChains = exports.isChainLocked = void 0; const isChainLocked = (chainId, lockChainId, otherTokenChainId, lockToken) => { if (lockToken) { return true; } if (lockChainId === undefined) return false; if (chainId === lockChainId) { return otherTokenChainId !== lockChainId || lockToken; } return false; }; exports.isChainLocked = isChainLocked; const POPULAR_CHAIN_IDS = new Set([1, 42161, 8453, 792703809]); const groupChains = (chains, popularChainIds) => { const priorityIds = new Set(popularChainIds || Array.from(POPULAR_CHAIN_IDS)); const allChainsOption = chains.find((chain) => chain.id === undefined); const otherChains = chains.filter((chain) => chain.id !== undefined); const popularChains = otherChains .filter((chain) => (chain.id && priorityIds.has(chain.id)) || ('tags' in chain && chain.tags && chain.tags.length > 0)) .sort((a, b) => { const aHasTags = 'tags' in a && a.tags && a.tags.length > 0; const bHasTags = 'tags' in b && b.tags && b.tags.length > 0; if (aHasTags && !bHasTags) return -1; if (!aHasTags && bHasTags) return 1; return a.displayName.localeCompare(b.displayName); }); return { allChainsOption, popularChains, alphabeticalChains: otherChains.sort((a, b) => a.displayName.localeCompare(b.displayName)) }; }; exports.groupChains = groupChains; const sortChains = (chains) => { return chains.sort((a, b) => { if ((a.tags?.length || 0) > 0 && (b.tags?.length || 0) === 0) return -1; if ((a.tags?.length || 0) === 0 && (b.tags?.length || 0) > 0) return 1; if ((a.tags?.length || 0) > 0 && (b.tags?.length || 0) > 0) return 0; const aIsPriority = POPULAR_CHAIN_IDS.has(a.id); const bIsPriority = POPULAR_CHAIN_IDS.has(b.id); if (aIsPriority && !bIsPriority) return -1; if (!aIsPriority && bIsPriority) return 1; if (aIsPriority && bIsPriority) { return (Array.from(POPULAR_CHAIN_IDS).indexOf(a.id) - Array.from(POPULAR_CHAIN_IDS).indexOf(b.id)); } return a.displayName.localeCompare(b.displayName); }); }; exports.sortChains = sortChains; const getInitialChainFilter = (chainFilterOptions, context, depositAddressOnly, token) => { const defaultFilter = { id: undefined, name: 'All Chains' }; if (chainFilterOptions.length === 1) { return chainFilterOptions[0]; } if (depositAddressOnly) { if (token) { return (chainFilterOptions.find((chain) => chain.id === token.chainId) || defaultFilter); } return chainFilterOptions[0]; } if (token === undefined || context === 'from') { return defaultFilter; } return (chainFilterOptions.find((chain) => chain.id === token.chainId) || defaultFilter); }; exports.getInitialChainFilter = getInitialChainFilter; //# sourceMappingURL=tokenSelector.js.map