{"language":"Solidity","sources":{"Delegate.sol":{"content":"// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8.25;\r\n\r\ncontract BundleDelegate {\r\n\r\n    address public immutable EXECUTOR;\r\n\r\n    error Unauthorized();\r\n    error CallFailed(bytes reason);\r\n\r\n    event Called(address indexed target, uint256 value);\r\n\r\n    constructor(address _executor) {\r\n        EXECUTOR = _executor;\r\n    }\r\n\r\n    function execute(\r\n        address target,\r\n        uint256 value,\r\n        bytes calldata data\r\n    ) external payable {\r\n        if (msg.sender != EXECUTOR && msg.sender != address(this)) {\r\n            revert Unauthorized();\r\n        }\r\n\r\n        (bool success, bytes memory reason) = target.call{value: value}(data);\r\n        if (!success) revert CallFailed(reason);\r\n\r\n        emit Called(target, value);\r\n    }\r\n\r\n    // ── добавлено: чтобы _safeMint не ревертил на кошельках с 7702-делегацией ──\r\n    function onERC721Received(\r\n        address,\r\n        address,\r\n        uint256,\r\n        bytes calldata\r\n    ) external pure returns (bytes4) {\r\n        return this.onERC721Received.selector; // 0x150b7a02\r\n    }\r\n\r\n    // на всякий случай, если где-то попадётся ERC1155-дроп\r\n    function onERC1155Received(\r\n        address,\r\n        address,\r\n        uint256,\r\n        uint256,\r\n        bytes calldata\r\n    ) external pure returns (bytes4) {\r\n        return this.onERC1155Received.selector; // 0xf23a6e61\r\n    }\r\n\r\n    receive() external payable {}\r\n    fallback() external payable {}\r\n}"}},"settings":{"optimizer":{"runs":200,"enabled":false},"remappings":[]}}