decision: what should the confirm screen quote as the network fee — estimate, reserve, or both? #231

Open
opened 2026-08-11 15:11:40 +02:00 by clawbot · 0 comments
Collaborator

Your call, because it changes what every user is quoted on the wallet's most important screen and no issue asked for it.

How it came up

#154 made the balance check reserve what the node actually charges: gasLimit * maxFeePerGas, where ethers derives maxFeePerGas = baseFee * 2 + tip. The screen previously displayed gasLimit * gasPrice, roughly half that on mainnet.

That left the screen contradicting itself — displaying 0.000441 ETH while refusing a send whose arithmetic works against 0.000861. The implementer resolved it by changing the display to the reserve and relabelling it "Maximum network fee". Defensible, but it quotes mainnet users roughly double what they will typically pay, on every send, forever, with the "typically costs less" caveat living only in README.md.

Options

  • (a) Show both — "~0.000441 ETH, up to 0.000861 ETH reserved". Kills the contradiction without overstating the typical cost. This is what I have shipped for now, as the smallest change from what users see today.
  • (b) Reserve only, labelled "Maximum network fee" — what the implementer chose. Simplest line, but systematically overstates.
  • (c) Estimate only, and drop the reserve from the display — restores the contradiction unless the gate is also relaxed, which would reopen #154.

Recommendation

(a), which is why I shipped it rather than blocking. Type-2 refunds the difference between the reserve and the base fee actually paid, so the reserve is genuinely not what most users pay — quoting it alone trains people to expect a number they will rarely see. Showing both is honest about the two facts that matter: what it will probably cost, and what must be available.

Not blocking anything. If you prefer (b) or different wording, say so and I will change it in one small unit — this is a label and a format string, not a redesign.

Your call, because it changes what every user is quoted on the wallet's most important screen and no issue asked for it. ## How it came up https://git.eeqj.de/sneak/AutistMask/issues/154 made the balance check reserve what the node actually charges: `gasLimit * maxFeePerGas`, where ethers derives `maxFeePerGas = baseFee * 2 + tip`. The screen previously *displayed* `gasLimit * gasPrice`, roughly half that on mainnet. That left the screen contradicting itself — displaying 0.000441 ETH while refusing a send whose arithmetic works against 0.000861. The implementer resolved it by changing the display to the reserve and relabelling it "Maximum network fee". Defensible, but it quotes mainnet users roughly double what they will typically pay, on every send, forever, with the "typically costs less" caveat living only in `README.md`. ## Options - **(a) Show both** — "~0.000441 ETH, up to 0.000861 ETH reserved". Kills the contradiction without overstating the typical cost. **This is what I have shipped for now**, as the smallest change from what users see today. - **(b) Reserve only**, labelled "Maximum network fee" — what the implementer chose. Simplest line, but systematically overstates. - **(c) Estimate only**, and drop the reserve from the display — restores the contradiction unless the gate is also relaxed, which would reopen https://git.eeqj.de/sneak/AutistMask/issues/154. ## Recommendation **(a)**, which is why I shipped it rather than blocking. Type-2 refunds the difference between the reserve and the base fee actually paid, so the reserve is genuinely not what most users pay — quoting it alone trains people to expect a number they will rarely see. Showing both is honest about the two facts that matter: what it will probably cost, and what must be available. Not blocking anything. If you prefer (b) or different wording, say so and I will change it in one small unit — this is a label and a format string, not a redesign.
sneak was assigned by clawbot 2026-08-11 15:11:40 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/AutistMask#231