resolve error at usdt and binance balance check page

This commit is contained in:
raviycoder 2024-07-11 16:44:12 +05:30
parent 3763bb3d8b
commit b833d6b22e
4 changed files with 39 additions and 23 deletions

View File

@ -940,13 +940,13 @@ aside h4 {
gap: 0.5rem;
}
#eth_balance_wrapper {
#bsc_balance_wrapper {
background-color: rgba(var(--text-color), 0.06);
padding: max(1rem, 1.5vw);
border-radius: 0.5rem;
width: 100%;
}
#eth_balance_wrapper li:not(:last-of-type) {
#bsc_balance_wrapper li:not(:last-of-type) {
border-bottom: solid thin rgba(var(--text-color), 0.3);
padding-bottom: 0.5rem;
}

2
css/main.min.css vendored

File diff suppressed because one or more lines are too long

View File

@ -713,7 +713,7 @@
// })
if (typeof window.ethereum !== "undefined") {
ethereum.on("accountsChanged", (accounts) => {
getRef("BSC_balance_wrapper").classList.add("hidden");
getRef("bsc_balance_wrapper").classList.add("hidden");
setMetaMaskStatus(accounts.length > 0);
});
ethereum.on("connect", (accounts) => {
@ -824,7 +824,7 @@
</div>
</div>
</sm-form>
<div id="BSC_balance_wrapper" class="grid gap-2 hidden"></div>
<div id="bsc_balance_wrapper" class="grid gap-2 hidden"></div>
</section>
`
);
@ -1053,17 +1053,20 @@
});
});
renderElem(
getRef("BSC_balance_wrapper"),
getRef("bsc_balance_wrapper"),
html`
<div class="grid">
<div class="label">BSC address</div>
<sm-copy id="BSC_address" value=${BSCAddress}></sm-copy>
<sm-copy id="BSC_address" value="${BSCAddress}"></sm-copy>
</div>
${floAddress && floAddress !== BSCAddress
? html`
<div class="grid">
<div class="label">FLO address</div>
<sm-copy id="flo_address" value=${floAddress}></sm-copy>
<sm-copy
id="flo_address"
value="${floAddress}"
></sm-copy>
</div>
`
: ""}
@ -1089,8 +1092,8 @@
</div>
`
);
getRef("BSC_balance_wrapper").classList.remove("hidden");
getRef("BSC_balance_wrapper").animate(
getRef("bsc_balance_wrapper").classList.remove("hidden");
getRef("bsc_balance_wrapper").animate(
[
{
transform: "translateY(-1rem)",
@ -1118,10 +1121,10 @@
function handleInvalidSearch() {
if (document.startViewTransition)
document.startViewTransition(() => {
getRef("BSC_balance_wrapper").classList.add("hidden");
getRef("bsc_balance_wrapper").classList.add("hidden");
});
else {
getRef("BSC_balance_wrapper").classList.add("hidden");
getRef("bsc_balance_wrapper").classList.add("hidden");
}
}
async function deleteContact(floAddress) {

View File

@ -288,19 +288,32 @@
}
const getTokenBalance = bscOperator.getTokenBalance = async (address, token, { contractAddress } = {}) => {
try {
// if (!window.ethereum.isConnected()) {
// await connectToMetaMask();
// }
if (!token)
return new Error("Token not specified");
if (!CONTRACT_ADDRESSES[token] && contractAddress)
return new Error('Contract address of token not available')
const usdcContract = new ethers.Contract(CONTRACT_ADDRESSES[token] || contractAddress, BEP20ABI, getProvider());
let balance = await usdcContract.balanceOf(address);
balance = parseFloat(ethers.utils.formatUnits(balance, 6)); // Assuming 6 decimals
if (!address) {
throw new Error("Address not specified");
}
if (!token) {
throw new Error("Token not specified");
}
if (!CONTRACT_ADDRESSES[token] && !contractAddress) {
throw new Error("Contract address of token not available");
}
const provider = getProvider(); // Ensure this returns a valid provider for BSC
const contract = new ethers.Contract(CONTRACT_ADDRESSES[token] || contractAddress, BEP20ABI, provider);
let balance = await contract.balanceOf(address);
// Assuming 18 decimals for most tokens like USDT and USDC
const decimals = 18;
balance = parseFloat(ethers.utils.formatUnits(balance, decimals));
// Format the balance to 2 decimal places for display
balance = balance.toFixed(2);
return balance;
} catch (e) {
console.error(e);
console.error("Error getting token balance:", e.message);
throw new Error("Failed to get token balance");
}
}