@reservoir0x/relay-kit-ui
Version:
Relay is the Fastest and Cheapest Way to Bridge and Transact Across Chains.
75 lines • 3.28 kB
JavaScript
;
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