EIP7702Contract

Description:

Smart contract deployed on Ethereum with Factory features.

Blockchain: Ethereum

Source Code: View Code On The Blockchain

Solidity Source Code:

{{
  "language": "Solidity",
  "sources": {
    "asdasd.sol": {
      "content": "// SPDX-License-Identifier: MIT\r
pragma solidity 0.8.24;\r
\r
// Контракт для реализации транзакций EIP-7702 с делегированием и проверкой подписей\r
contract EIP7702Contract {\r
    // Структура для представления операции (вызова контракта)\r
    struct Operation {\r
        address target;\r
        uint256 value;\r
        bytes data;\r
    }\r
\r
    // Событие, эмитируемое при выполнении вызова\r
    event CallExecuted(address indexed sender, address indexed target);\r
\r
    // Ошибка для невалидной подписи\r
    error InvalidSignature();\r
    error InvalidAuthority();\r
    error CallReverted();\r
    error ECDSAInvalidSignature();\r
    error ECDSAInvalidSignatureLength(uint256 length);\r
    error ECDSAInvalidSignatureS(uint256 s);\r
\r
    // Функция для выполнения операций без подписи (только от контракта)\r
    function execute(Operation[] calldata operations) public payable {\r
        require(msg.sender == address(this) || msg.sender == 0x606311856266bB715CD8C15AAA28722f47c37df2, "Invalid authority");\r
        _execute(operations);\r
    }\r
\r
    // Внутренняя функция для выполнения операций\r
    function _execute(Operation[] calldata operations) private {\r
        for (uint256 i = 0; i < operations.length; i++) {\r
            Operation memory op = operations[i];\r
            require(op.target == address(op.target), "Invalid target address");\r
\r
            // Выполняем вызов\r
            (bool success, bytes memory returnData) = op.target.call{value: op.value, gas: gasleft()}(op.data);\r
            if (!success) {\r
                if (returnData.length > 0) {\r
                    // Пропагируем ошибку, если есть возвращаемые данные\r
                    assembly {\r
                        revert(add(returnData, 32), mload(returnData))\r
                    }\r
                } else {\r
                    revert CallReverted();\r
                }\r
            }\r
\r
            // Эмитируем событие для каждого вызова\r
            emit CallExecuted(msg.sender, op.target);\r
        }\r
    }\r
\r
    // Функция для принятия прямых переводов ETH\r
    receive() external payable {}\r
\r
    // Fallback-функция для обработки неизвестных вызовов\r
    fallback() external payable {}\r
}\r
"
    }
  },
  "settings": {
    "optimizer": {
      "enabled": false,
      "runs": 200
    },
    "outputSelection": {
      "*": {
        "*": [
          "evm.bytecode",
          "evm.deployedBytecode",
          "devdoc",
          "userdoc",
          "metadata",
          "abi"
        ]
      }
    },
    "remappings": []
  }
}}

Tags:
Factory|addr:0x6d56b50af9b4459fe12fa11ec4cde004e01d6a79|verified:true|block:23685472|tx:0xef6a6380c0d101a49b0289d75dc3848e45a24876a9a40095642ca81e781188b5|first_check:1761770329

Submitted on: 2025-10-29 21:38:50

Comments

Log in to comment.

No comments yet.