From cb8e8bf8c38e1a3f5f602d7c1dc04a59e00c8067 Mon Sep 17 00:00:00 2001 From: Dima Date: Sun, 28 Apr 2024 11:16:16 +0200 Subject: [PATCH] fix error handling --- .../pages/claim-flt-page/claim-flt-page.js | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/web/src/pages/claim-flt-page/claim-flt-page.js b/web/src/pages/claim-flt-page/claim-flt-page.js index b16467c..b128e4d 100644 --- a/web/src/pages/claim-flt-page/claim-flt-page.js +++ b/web/src/pages/claim-flt-page/claim-flt-page.js @@ -63,20 +63,25 @@ export const ClaimFltPage = memo(() => { const [waitForSigning, setWaitForSigning] = useState(false); const [waitForReceipt, setWaitForReceipt] = useState(false); const [confirmedTxHash, setConfirmedTxHash] = useState(null); + const [error, setError] = useState(null); const handleClaim = async () => { - const contract = new ethers.Contract( - governanceContracts[network.name].devRewardDistributor, - abis.DevRewardDistributor.abi, - provider.getSigner(), - ); - setWaitForSigning(true); - const response = await contract.functions.transfer(address, amountAndDate.amount, { from: address }); - setWaitForSigning(false); - setWaitForReceipt(true); - const receipt = await response.wait(); - setWaitForReceipt(false); - setConfirmedTxHash(receipt.transactionHash); + try { + const contract = new ethers.Contract( + governanceContracts[network.name].devRewardDistributor, + abis.DevRewardDistributor.abi, + provider.getSigner(), + ); + setWaitForSigning(true); + const response = await contract.functions.transfer(address, amountAndDate.amount, { from: address }); + setWaitForSigning(false); + setWaitForReceipt(true); + const receipt = await response.wait(); + setWaitForReceipt(false); + setConfirmedTxHash(receipt.transactionHash); + } catch (e) { + setError(e.message); + } } const dateInFuture = amountAndDate?.unlockTime > new Date(); @@ -140,8 +145,9 @@ export const ClaimFltPage = memo(() => { {!dateInFuture && Boolean(amountAndDate?.amount) &&
{waitForSigning && "Please sign tx in your wallet"} {waitForReceipt && "Confirming..."} + {Boolean(error) && (error || "Error")} {confirmedTxHash && Transaction confirmed} - {!waitForSigning && !waitForReceipt && !confirmedTxHash &&
}