MetaMask / metamask-mobile

Mobile web browser providing access to websites that use the Ethereum blockchain
https://metamask.io
Other
2.15k stars 1.1k forks source link

Unable to confirm Metamask Mobile Transaction #3318

Closed dojh111 closed 2 years ago

dojh111 commented 2 years ago

Describe the bug On our private blockchain network, when using the Metamask Mobile IOS and Android versions, randomly, the transaction popup does not allow the user to press the "confirm" button, despite having enough currency to pay gas fees.

Screenshots metamask-mobile-transaction-fail-error

Expected behavior The button should not be disabled for the user to confirm the transaction.

A re-render of the transaction is required for the button to be enabled.

Smartphone (please complete the following information):


to be added after bug submission by internal support / PM Severity

gantunesr commented 2 years ago

Hi @dojh111, is this happening in another network or only in your private blockchain network?

kacperzelichowski commented 2 years ago

@gantunesr hey I also have the same problem when trying to call a contract method on BSC testnet network.. Everything seems to work just fine via the Metamask chrome extension, but whenever trying to recreate the same flow in the mobile Metamask browser, I'm not able to confirm.

gantunesr commented 2 years ago

Hey @kacperzelichowski, can you provide steps to reproduce the bug with some details like app version and which dapp are you interacting?

dojh111 commented 2 years ago

Hi @gantunesr , as of now, we have not deployed it on other public test networks yet, but can say that this issue did not exist in previous versions of metamask

kacperzelichowski commented 2 years ago

@gantunesr yeah sure.

We're actually building a NFT marketplace on BSC network. We use web3 as a way to communicate with the chain methods. This week we've released a public BETA version of our app, where you can perfom some basic operations like creating your NFT's for sale, buying them, etc.

Everything seems to be working just fine for browser flows, but whenever we're trying to call contract methods on the mobile app we're getting an Unknown Method and the Confirm button is greyed out until we hit the estimated fee and save it.

The contracts are deployed on BSC testnet network. We have the same network set in Metamask Mobile.

You can visit the marketplace at https://beta.ultiarena.com/app/home. However you'll need some of our coin to actually buy something there. If you give me your wallet address I can send you some :). You'll also need some BNB's for the gas.

As you probably know you'll also have to import our coin to your wallet. Below some info you'll need:

COIN:

Token contract address: 0x1Ed837F59efA2b69c7e91a7D1bFa06FC9C20ea09
Symbol: ULTI
NETWORK:

RPC URL: https://data-seed-prebsc-2-s1.binance.org:8545/
Chain ID: 97
Currency symbol: BNB

Metamask v3.4.1 (785)

So the flow you'll have to recreate would be:

  1. Connect your wallet to our app.
  2. Try and buy an NFT listed on the marketplace.
  3. The first approve should go through smoothly.
  4. The second one will not let you confirm, unless you reestimate the fee.
gantunesr commented 2 years ago

Thanks @kacperzelichowski and @dojh111, we will take a look at the issue and give an update asap.

@kacperzelichowski did you experienced this issue on previous versions or it was introduced in 3.4.1? @dojh111 mentioned that it did not existed in the previous version.

kacperzelichowski commented 2 years ago

@gantunesr haven't had a chance to try out the previous version tbh. We've just recently started the development.

kacperzelichowski commented 2 years ago

@gantunesr hey there, any updates on this matter? :)

sethkfman commented 2 years ago

@kacperzelichowski Could you send me some ULTI on the BSC Testnet?

Address: 0x223367C61c38facBDd0B92De5aa7B742e1E5a19A

kacperzelichowski commented 2 years ago

@sethkfman sure, there you go. :)

sethkfman commented 2 years ago

@kacperzelichowski I am looking into the issue but the test net dapp is giving me an error:

Error: execution reverted: Auction does not exist

kacperzelichowski commented 2 years ago

@sethkfman this might be due to the fact that we're still upgrading our contracts. You should be able to buy some of the newer art.

Like this one for example:

https://beta.ultiarena.com/app/asset/b495c26a-ffd5-4228-89f6-727c63ff8b21

Fatxx commented 2 years ago

@kacperzelichowski, we're currently investigating the issue, although I'm not able to connect to the RPC URL you sent previously (Could not fetch chain ID. Is your RPC URL correct?).

It also seems that your Dapp is down at the moment. I'm trying to access it on https://beta.ultiarena.com/app/asset/b495c26a-ffd5-4228-89f6-727c63ff8b21.

Please let us know when we can reaccess it since we're trying to solve the issue.

imin314 commented 2 years ago

We've also encountered this problem with transactions on the Arbitrum Testnet. To reproduce it, please go to https://bridge.arbitrum.io/ and send ETH from Arbitrum to Mainnet (L2 -> L1). The "Confirm" button is sometimes disabled.

IMG_5685

beauwilliams commented 2 years ago

I am having the same issue with https://cygorithm.com

It is on BSC testnet too, ID=97 same as above.

I find that if I hold my finger on the screen it works. If I try to re-run the transaction it sometimes also works too

beauwilliams commented 2 years ago

I found a fix to hard code in gas price

confirm button greyed out

        .then(contractInstance => contractInstance.methods.mintStandardNFT().send({from: window.userWalletAddress, value: "25000000000000000"},

confirm button not greyed out, notice gas price harcoded into fn call

    .then(contractInstance => contractInstance.methods.mintStandardNFT().send({from: window.userWalletAddress, value: "25000000000000000", gas: 1000000, gasPrice: 12000000000},
jonsteelman commented 2 years ago

Same issue NFT minting on Fantom Opera mainnet on any NFT minting website! This is with latest Mobile Metamask iphone or android. Workaround offered does enable the Confirm button...

the Confirm button is greyed out until we hit the estimated fee and save it.

TheStarBoys commented 2 years ago

I found a fix to hard code in gas price

confirm button greyed out

        .then(contractInstance => contractInstance.methods.mintStandardNFT().send({from: window.userWalletAddress, value: "25000000000000000"},

confirm button not greyed out, notice gas price harcoded into fn call

    .then(contractInstance => contractInstance.methods.mintStandardNFT().send({from: window.userWalletAddress, value: "25000000000000000", gas: 1000000, gasPrice: 12000000000},

It is the available solution. But, if gas or gasPrice went wrong, metamask notes you "internal JSON-RPC error".