diff --git a/src/Contracts.svelte b/src/Contracts.svelte index 71b4135..54a433c 100644 --- a/src/Contracts.svelte +++ b/src/Contracts.svelte @@ -13,6 +13,7 @@ let checked = false; let checksPending = false; let transferPending = false; + let approvalPending = false; let gasCalculation = []; let selectedStandard = 1; let gasPrice = 0; @@ -38,10 +39,12 @@ const approveShipIt = async () => { try { + approvalPending = true; await $contracts.nft.methods.setApprovalForAll(shipit, true).send({from: $selectedAccount}); contractApproved = true; } catch(e) { errorMessage = `Failed to approve contract: ${e.message}`; + approvalPending = false; return; } } @@ -96,11 +99,17 @@ if (selectedStandard == 1) { try { let owner = await $contracts.nft.methods.ownerOf(tokenId).call(); + } catch(e) { + errorMessage = `Something went wrong; make sure you're using the right token standard for the contract: ${e.message}`; + checksPending = false; + return; + } + try { if (owner.toLowerCase() != $selectedAccount.toLowerCase()) { throw new Error(`You must own the token in order to send it (token ${tokenId})`); } if (tokenIds.includes(tokenId)) { throw new Error(`Duplicate token ID found (token ${tokenId})`); } tokenIds.push(tokenId); } catch(e) { - errorMessage = e; + errorMessage = e.toString(); checksPending = false; return; } @@ -111,7 +120,7 @@ if (Number(tokenIds.length) > Number(balance)) { throw new Error(`Provided more tokens than balance (token ${tokenId}, balance ${balance})`); } tokenIds.push(tokenId); } catch(e) { - errorMessage = e; + errorMessage = e.toString(); checksPending = false; return; } @@ -204,7 +213,7 @@ throw new Error(`Transaction failed: ${res}`) } } catch(e) { - errorMessage = `Failed to execute bulk transfer: ${e.message}`; + errorMessage = `Failed to execute bulk transfer: ${e.toString()}`; transferPending = false; } } @@ -291,7 +300,9 @@ {/if} {#if !contractApproved} - + {/if}