Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

165
Views
Catch transaction rejection- moralis

Hi I am working with Moralis using the 1inch plugin. I am having a hard time understanding where to catch a transaction rejection error. IE when I reject the transaction I would like to give a message of sorts. Thanks.

async function trySwap() {
      let address = Moralis.User.current().get("ethAddress");
      let amount = Number(fromAmount) * 10**fromTokenDecimals;
      if (tokenSymbol !== "ETH") {
        const allowance = await Moralis.Plugins.oneInch.hasAllowance({
          chain: "eth", // The blockchain you want to use (eth/bsc/polygon)
          fromTokenAddress: tokenAddress, // The token you want to swap
          fromAddress: address, // Your wallet address
          amount: amount,
        });
        if (!allowance) {
          await Moralis.Plugins.oneInch.approve({
            chain: "eth", // The blockchain you want to use (eth/bsc/polygon)
            tokenAddress: tokenAddress, // The token you want to swap
            fromAddress: address, // Your wallet address
          });
        }
      }
      try {
        await doSwap(address, amount);
        alert("Swap Complete");
      } catch (error) {
        console.log(error)
        alert('Insufficient ETH')
      }
    }
    
    function doSwap(userAddress, amount) {
      return Moralis.Plugins.oneInch.swap({
        chain: "eth", // The blockchain you want to use (eth/bsc/polygon)
        fromTokenAddress: tokenAddress, // The token you want to swap
        toTokenAddress: totokenAddress, // The token you want to receive
        amount: amount,
        fromAddress: userAddress, // Your wallet address
        slippage: 1,
      })
    }

and this is the error

MetaMask - RPC Error: MetaMask Tx Signature: User denied transaction signature. 
Object { code: 4001, message: "MetaMask Tx Signature: User denied transaction signature." }
inpage.js:1:51499
Uncaught (in promise) 
Object { code: 4001, message: "MetaMask Tx Signature: User denied transaction signature.", stack:
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

You need to edit your code a bit : add catch with then. Here is a example:

async function trySwap(params) {
        const { fromToken, fromAmount, chain } = params;
        const amount = Moralis.Units.Token(fromAmount, fromToken.decimals).toString();
        if (fromToken.address !== "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee") {
          await Moralis.Plugins.oneInch
            .hasAllowance({
              chain, // The blockchain you want to use (eth/bsc/polygon)
              fromTokenAddress: fromToken.address, // The token you want to swap
              fromAddress: walletAddress, // Your wallet address
              amount,
            })
            .then(async (allowance) => {
              console.log(allowance);
              if (!allowance) {
                await Moralis.Plugins.oneInch.approve({
                  chain, // The blockchain you want to use (eth/bsc/polygon)
                  tokenAddress: fromToken.address, // The token you want to swap
                  fromAddress: walletAddress, // Your wallet address
                });
              }
            })
            .catch((e) => alert(e.message));
        }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!