-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
📱 Interface Affected
Which application are you experiencing issues with?
- Web (app.uniswap.org)
- Wallet Extension (wallet.uniswap.org)
- Wallet Mobile App
- iOS
- Android
- Both
🧩 App Version
- Version (if known): Latest production build, May 17 2025
- Production build
- Development build
💻 System / Environment Info
| Item | Details |
|---|---|
| Browser | Chrome |
| OS / Platform | redacted |
| Device | Desktop |
| Wallet used | MetaMask |
| Network | Optimism |
🔁 Steps to Reproduce
- Open the Uniswap web UI with a fresh EOA.
- Enable Gasless transactions in settings (UI displays “Set up gasless transactions”).
- Approve the resulting transaction (UI sends a
setCode/ tx that installs code on the EOA).- Txn hash from setting EOA code: https://optimistic.etherscan.io/tx/0xc8a0ce4e2e701247fdae0a3f615fc2d26edec32dda5ca1b1ce87d16eb38e688a
- Try to perform any swap or even a 0-ETH self-transfer.
✅ Expected Behavior
- The UI should provide a clear “Disable / unset gasless transactions” button that removes the code.
- After disabling, the wallet should behave like a normal EOA again.
❌ Actual Behavior
- The UI installs code on the EOA.
- Subsequent transactions fail on multiple RPCs with
in-flight transaction limit reached for delegated accounts
- Self-call with 0 ETH (suggested fix) does not clear the code.
- Uniswap UI no longer allows swaps from this wallet; Foundry scripts (see below) also fail.
📸 Screenshots or Screen Recording
N/a
🧾 Additional Context
- I can't find any way to unset this contract code.
- First I verify the code is set:
$ cast code 0xC07E21c78d6Ad0917cfCBDe8931325C392958892 --rpc-url https://optimism.gateway.tenderly.co/xxx
0xef010063c0c19a282a1b52b07dd5a65b58948a07dae32b- Tried work-arounds that failed
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
import "forge-std/Script.sol";
contract ClearEOACode is Script {
function run() external {
uint256 pk = vm.envUint("PRIVATE_KEY");
address eoa = vm.addr(pk);
// Attempt 1: self-call to consume authority
vm.startBroadcast(pk);
eoa.call{gas: 1_000_000_000}("");
vm.stopBroadcast();
// Attempt 2: attach delegation to zero address
vm.signAndAttachDelegation(address(0), pk);
// Attempt 3: self-call again
vm.startBroadcast(pk);
(bool success, ) = eoa.call("");
require(success, "EOA code clear failed");
vm.stopBroadcast();
}
}Result:
% forge script script/ClearCode.s.sol --rpc-url https://opt-mainnet.g.alchemy.com/v2/xxx --broadcast
[⠊] Compiling...
[⠃] Compiling 1 files with Solc 0.8.29
[⠊] Solc 0.8.29 finished in 846.51ms
Compiler run successful!
Script ran successfully.
## Setting up 1 EVM.
==========================
Chain 10
Estimated gas price: 0.000052296 gwei
Estimated total gas used for script: 92693
Estimated amount required: 0.000000004847473128 ETH
==========================
Transactions saved to: /Users/mghen/Documents/Projects/superdca-core/broadcast/ClearCode.s.sol/10/run-latest.json
Sensitive values saved to: /Users/mghen/Documents/Projects/superdca-core/cache/ClearCode.s.sol/10/run-latest.json
Error: Failed to send transaction
Context:
- server returned an error response: error code -32000: in-flight transaction limit reached for delegated accounts
Nothing clears the code. Please provide a supported method (or UI toggle) to unset / revert the EOA back to a plain account.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working