UNPKG

cosmic-interchain-cli

Version:

A command-line utility for Cosmic Wire's interchain messaging protocol

34 lines 1.57 kB
import { confirm } from '@inquirer/prompts'; import { ethers } from 'ethers'; import { logGreen, logRed } from '../logger.js'; export async function nativeBalancesAreSufficient(multiProvider, signer, chains, minGas) { const address = await signer.getAddress(); const sufficientBalances = []; for (const chain of chains) { const provider = multiProvider.getProvider(chain); const gasPrice = await provider.getGasPrice(); const minBalanceWei = gasPrice.mul(minGas).toString(); const minBalance = ethers.utils.formatEther(minBalanceWei.toString()); const balanceWei = await multiProvider .getProvider(chain) .getBalance(address); const balance = ethers.utils.formatEther(balanceWei.toString()); if (balanceWei.lt(minBalanceWei)) { const symbol = multiProvider.getChainMetadata(chain).nativeToken?.symbol ?? 'ETH'; logRed(`WARNING: ${address} has low balance on ${chain}. At least ${minBalance} ${symbol} recommended but found ${balance} ${symbol}`); sufficientBalances.push(false); } } const allSufficient = sufficientBalances.every((sufficient) => sufficient); if (allSufficient) { logGreen('✅ Balances are sufficient'); } else { const isResume = await confirm({ message: 'Deployment may fail due to insufficient balance(s). Continue?', }); if (!isResume) throw new Error('Canceled deployment due to low balance'); } } //# sourceMappingURL=balances.js.map