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) {