{
    "Function": "execute",
    "File": "node_modules/@openzeppelin/contracts/metatx/MinimalForwarder.sol",
    "Parent Contracts": [
        "node_modules/@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol"
    ],
    "High-Level Calls": [],
    "Internal Calls": [
        "gasleft()",
        "verify",
        "require(bool,string)",
        "abi.encodePacked()",
        "assert(bool)"
    ],
    "Library Calls": [],
    "Low-Level Calls": [
        "call"
    ],
    "Code": "function execute(ForwardRequest calldata req, bytes calldata signature)\n        public\n        payable\n        returns (bool, bytes memory)\n    {\n        require(verify(req, signature), \"MinimalForwarder: signature does not match request\");\n        _nonces[req.from] = req.nonce + 1;\n\n        (bool success, bytes memory returndata) = req.to.call{gas: req.gas, value: req.value}(\n            abi.encodePacked(req.data, req.from)\n        );\n        // Validate that the relayer has sent enough gas for the call.\n        // See https://ronan.eth.link/blog/ethereum-gas-dangers/\n        assert(gasleft() > req.gas / 63);\n\n        return (success, returndata);\n    }"
}