From 65bc26ed3fd2dda006e5951ee19e1298a219095f Mon Sep 17 00:00:00 2001 From: CounterFire2023 <136581895+CounterFire2023@users.noreply.github.com> Date: Mon, 22 Jul 2024 14:15:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0waitForTransaction=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/chain/contract/Locker.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/components/chain/contract/Locker.js b/src/components/chain/contract/Locker.js index 67b4f06..51b351b 100644 --- a/src/components/chain/contract/Locker.js +++ b/src/components/chain/contract/Locker.js @@ -29,14 +29,20 @@ export class Locker { const addressApproval = await nftContract.getApproved(tokenId) if ((addressApproval || "").toLowerCase() != lockAddress.toLowerCase()) { const resApproval = await nftContract.approve(lockAddress, tokenId); - await provider.waitForTransaction(resApproval.hash) + const res = await provider.waitForTransaction(resApproval.hash) + if (res.status == 0) { + throw new Error('approval failed') + } console.debug('approve', resApproval.hash) } } const contract = new ethers.Contract(lockAddress, lockAbi, provider.getSigner()) const res = await contract.lock(nft, address, tokenIds) - await provider.waitForTransaction(res.hash) + const resConfirm = await provider.waitForTransaction(res.hash) + if (resConfirm.status == 0) { + throw new Error('lock failed') + } return res.hash } @@ -66,7 +72,10 @@ export class Locker { }] }) console.log(txHash) - await provider.waitForTransaction(txHash) + const res = await provider.waitForTransaction(txHash) + if (res.status == 0) { + throw new Error('transaction failed') + } return txHash } async execUnlock(provider, chainId, nft, tokenIds) {