Controlling the fee on Ethereum (Metamask, nodes and Etherscan) is just a nightmare – Is this a bug?
I'm not happy with how this went, but I wouldn't call this a rant. Let's call it a description of the nightmare that even someone as techy as a blockchain engineer had to go through to control the fee of their transaction. I see all these posts on Twitter about "improving the user experience"… and Ethereum ecosystem can't get submitting transactions right… are you kidding me?
It feels like in Metamask, it's made to be difficult so that people get frustrated and use the highest fee possible. Tell me I'm crazy and this isn't your experience. Tell me I'm wrong. I'm all for learning how to do everything right.
What happened?
I wanted to sign (and submit) a transaction on metamask with a hardware wallet (HW). It's a smart contract transaction (and a big one, so the execution fee is unusually high), so I wanted to minimize the fee. Metamask was suggesting something like 45 gwei, which is very expensive and I'm not in a hurry. In blockchain (whether it's bitcoin, monero or otherwise), we're supposed to have the freedom to submit our transactions with low fees, and when the network is less congested it will go through. Right… RIGHT?
So, I whip out my HW (which is a hassle, and I don't want to do it many times), I sign the transaction with 8 gwei, and submit it.
To my surprise, not only the transaction failed, but the nonce is not incrememnted (not a smart contract transaction failure, as I see on the block explorer), AND METAMASK HAS NO OPTION TO REBROADCAST THE TRANSACTION, even though it's NOT invalid!!!!
I thought, OK, maybe this is a glitch. I'll do it again. I redo the signing with my HW. And it failed again, and again, and again. At that point, I realized that this is just Metamask trying to make my life hell. There's no option to rebroadcast, and it WANTS TO FORCE ME TO USE A HIGH FEE, so EVERY TIME I WANT TO SUBMIT THE SAME FREAKING TRANSACTION, I HAVE TO SIGN IT AGAIN????? Wtf is that supposed to be?
And here's what's even worse: There's no way to extract the signed transaction as a hex string, so that I can submit it later elsewhere… how dare I want to pay less fees? I must be crazy!
So, I was done with this shit and now I'm just stubborn. I opened the developer tools in the browser, tracked the function that submits transactions in Metamask, and pulled the transaction hex from the belly of that fox. Done. Now I have the signed transaction hex.
Here's where Metamask problems end, and Etherscan problems begin.
I go to pushTx on Etherscan to submit the transaction, submit it, track it on Etherscan, and sleep on it.
Today in the morning, I wake up, I try to check the transaction, it hasn't gone through (it's not in a block yet), EVEN THOUGH THE SUGGESTED FEE NOW IS LOWER THAN THE FEE I USED FOR THE TRANSACTION. Etherscan still says that my transaction didn't go through. So what's wrong?
If I have to guess what happened, I think all stakers/miners dropped my transaction from their mempools. Fine, I understand (even though this is hostile to user experience since all this is within 12 hours). So, I try to submit my transaction again using the hex I collected yesterday, but Etherscan complains that the transaction is "already known"… wtf is that???? I immediately recognize that this is ANOTHER BUG… Etherscan has the transaction in its cache, but it's not in the mempool!
I go to another website that offers transaction hex submission, I submitted, and my transaction went through in 1 minute. NIGHTMARE IS F**KING OVER!
Conclusion: WTF was that? Am I the only one in the world who controls their fees?
Edit: Serious conclusion: If you're not a tech nerd like me, there's no way to defer submitting a transaction with low fee to a later time. You can only just keep signing the same transaction again and again when the fee you want is viable, or increase the fee. Horrible for usability.
Edit 2: Imagine being so tribal that you downvote such a detailed post from a blockchain expert explaining a real problem in Ethereum ecosystem. And the Ethereum community wonders why people complain about usability. If you cared, this post would get 1 million upvotes. But here we are, this post will be buried, and Ethereum ecosystem won't be fixed.
submitted by /u/TheQuantumPhysicist
[link] [comments]