ethers asks the node for a gas estimate only when the request has no gas limit, and that estimate is the wallet's only check that a transaction does not revert. Since a site's `gas` became the gas limit, a reverting request carrying one opened the approval window and could be signed and mined to fail. Such a request is now estimated first, with the site's limit and under the same timeout; a failure goes back to the site with no window, and the site's gas limit is still the one shown and signed. A limit too low for the call now fails the same way. Model: opus-5-5