How do we get contract error messages?
- The contract allows a user to mint only once.
- If user/wallet mints again, the contract will show the error
Exceeded mint limit
.
The above two parts work perfects.
Here is a stripped down version of the code:
import { useMoralis, useWeb3ExecuteFunction } from "react-moralis";
export default function Mint() {
const constractProcessor = useWeb3ExecuteFunction();
const mintOptions = {
contractAddress: contractAddress,
functionName: "mint",
abi:[.....],
params: {
_season: 1,
_mintVolume: 1,
},
msgValue: 0,
signingMessage: "Mint",
};
async function mintNFT() {
await constractProcessor.fetch({
params: mintOptions,
}).then((success) => {
console.log("Success: ", success);
}).catch((err) => {
console.log("Error: ", err);
});
}
return (
<button onClick={() => mintNFT()}>Mint</button>
);
}
The first time a wallet mint’s it works perfects.
The second time the same wallet mints, the function goes through, but success
is null.
The Metamask RPC shows the error in the console:
MetaMask - RPC Error: execution reverted: Exceeded mint limit.
{code: -32603, message: 'execution reverted: Exceeded mint limit.', data: {…}}
As you can see the contract does what it should, but the constractProcessor.fetch function is a success, when it should ideally by an error.
The problem is that visually in the FrontEnd I should show the user the reason why the contract hasn’t gone through.
How do I access this error message?
Shouldn’t the Moralis SDK expose these errors?