UNPKG

@reservoir0x/relay-kit-ui

Version:

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

75 lines 3.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addressesEqual = exports.findSupportedWallet = exports.addressWithFallback = exports.isValidAddress = void 0; const relay_sdk_1 = require("@reservoir0x/relay-sdk"); const viem_1 = require("viem"); const bitcoin_js_1 = require("../utils/bitcoin.js"); const solana_js_1 = require("../utils/solana.js"); const sui_js_1 = require("../utils/sui.js"); const tron_js_1 = require("./tron.js"); const isValidAddress = (vmType, address, chainId, connector, connectorKeyOverrides) => { let eclipseConnectorKeys = undefined; if (connectorKeyOverrides && connectorKeyOverrides[solana_js_1.eclipse.id]) { eclipseConnectorKeys = connectorKeyOverrides[solana_js_1.eclipse.id]; } else if (vmType === 'svm') { eclipseConnectorKeys = solana_js_1.eclipseWallets; } if (address) { if (vmType === 'evm' || vmType === 'hypevm' || !vmType) { return (0, viem_1.isAddress)(address); } else if (vmType === 'svm') { if (chainId && connector) { if (chainId === solana_js_1.eclipse.id && !eclipseConnectorKeys.includes(connector.toLowerCase())) { return false; } if (chainId === solana_js_1.solana.id && eclipseConnectorKeys.includes(connector.toLowerCase())) { return false; } } return (0, solana_js_1.isSolanaAddress)(address); } else if (vmType === 'bvm') { return (0, bitcoin_js_1.isBitcoinAddress)(address); } else if (vmType === 'suivm') { return (0, sui_js_1.isSuiAddress)(address); } else if (vmType === 'tvm') { return (0, tron_js_1.isTronAddress)(address); } } return false; }; exports.isValidAddress = isValidAddress; const addressWithFallback = (vmType, address, chainId, connector, connectorKeyOverrides) => { return address && (0, exports.isValidAddress)(vmType ?? 'evm', address, chainId, connector, connectorKeyOverrides) ? address : (0, relay_sdk_1.getDeadAddress)(vmType, chainId); }; exports.addressWithFallback = addressWithFallback; function findSupportedWallet(chain, currentAddress, linkedWallets, connectorKeyOverrides) { const currentWallet = linkedWallets.find((wallet) => wallet.address === currentAddress); if (currentWallet?.vmType !== chain.vmType || (currentWallet && !(0, exports.isValidAddress)(chain.vmType, currentWallet.address, chain.id, currentWallet.connector, connectorKeyOverrides))) { const supportedWallet = linkedWallets.find((wallet) => (0, exports.isValidAddress)(chain.vmType, wallet.address, chain.id, wallet.connector, connectorKeyOverrides)); return supportedWallet?.address; } return undefined; } exports.findSupportedWallet = findSupportedWallet; function addressesEqual(vmType, a, b) { if (!a || !b) return false; if (vmType === 'evm' || vmType === 'suivm') { return a.toLowerCase() === b.toLowerCase(); } return a === b; } exports.addressesEqual = addressesEqual; //# sourceMappingURL=address.js.map