{ "contractName": "Context", "abi": [], "metadata": "{\"compiler\":{\"version\":\"0.8.11+commit.d7f03943\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [], "sourceMap": "", "deployedSourceMap": "", "source": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)\n\npragma solidity ^0.8.0;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n}\n", "sourcePath": "@openzeppelin/contracts/utils/Context.sol", "ast": { "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "exportedSymbols": { "Context": [ 1543 ] }, "id": 1544, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 1523, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "86:23:7" }, { "abstract": true, "baseContracts": [], "canonicalName": "Context", "contractDependencies": [], "contractKind": "contract", "documentation": { "id": 1524, "nodeType": "StructuredDocumentation", "src": "111:496:7", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, "id": 1543, "linearizedBaseContracts": [ 1543 ], "name": "Context", "nameLocation": "626:7:7", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 1532, "nodeType": "Block", "src": "702:34:7", "statements": [ { "expression": { "expression": { "id": 1529, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, "src": "719:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1530, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "719:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 1528, "id": 1531, "nodeType": "Return", "src": "712:17:7" } ] }, "id": 1533, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nameLocation": "649:10:7", "nodeType": "FunctionDefinition", "parameters": { "id": 1525, "nodeType": "ParameterList", "parameters": [], "src": "659:2:7" }, "returnParameters": { "id": 1528, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1527, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1533, "src": "693:7:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1526, "name": "address", "nodeType": "ElementaryTypeName", "src": "693:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "692:9:7" }, "scope": 1543, "src": "640:96:7", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { "id": 1541, "nodeType": "Block", "src": "809:32:7", "statements": [ { "expression": { "expression": { "id": 1538, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, "src": "826:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "src": "826:8:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "functionReturnParameters": 1537, "id": 1540, "nodeType": "Return", "src": "819:15:7" } ] }, "id": 1542, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nameLocation": "751:8:7", "nodeType": "FunctionDefinition", "parameters": { "id": 1534, "nodeType": "ParameterList", "parameters": [], "src": "759:2:7" }, "returnParameters": { "id": 1537, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1536, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1542, "src": "793:14:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 1535, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "793:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "792:16:7" }, "scope": 1543, "src": "742:99:7", "stateMutability": "view", "virtual": true, "visibility": "internal" } ], "scope": 1544, "src": "608:235:7", "usedErrors": [] } ], "src": "86:758:7" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts/utils/Context.sol", "exportedSymbols": { "Context": [ 1543 ] }, "id": 1544, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 1523, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "86:23:7" }, { "abstract": true, "baseContracts": [], "canonicalName": "Context", "contractDependencies": [], "contractKind": "contract", "documentation": { "id": 1524, "nodeType": "StructuredDocumentation", "src": "111:496:7", "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." }, "fullyImplemented": true, "id": 1543, "linearizedBaseContracts": [ 1543 ], "name": "Context", "nameLocation": "626:7:7", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 1532, "nodeType": "Block", "src": "702:34:7", "statements": [ { "expression": { "expression": { "id": 1529, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, "src": "719:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1530, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "src": "719:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 1528, "id": 1531, "nodeType": "Return", "src": "712:17:7" } ] }, "id": 1533, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nameLocation": "649:10:7", "nodeType": "FunctionDefinition", "parameters": { "id": 1525, "nodeType": "ParameterList", "parameters": [], "src": "659:2:7" }, "returnParameters": { "id": 1528, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1527, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1533, "src": "693:7:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1526, "name": "address", "nodeType": "ElementaryTypeName", "src": "693:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "692:9:7" }, "scope": 1543, "src": "640:96:7", "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "body": { "id": 1541, "nodeType": "Block", "src": "809:32:7", "statements": [ { "expression": { "expression": { "id": 1538, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, "src": "826:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "src": "826:8:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "functionReturnParameters": 1537, "id": 1540, "nodeType": "Return", "src": "819:15:7" } ] }, "id": 1542, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nameLocation": "751:8:7", "nodeType": "FunctionDefinition", "parameters": { "id": 1534, "nodeType": "ParameterList", "parameters": [], "src": "759:2:7" }, "returnParameters": { "id": 1537, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1536, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 1542, "src": "793:14:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 1535, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "793:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "792:16:7" }, "scope": 1543, "src": "742:99:7", "stateMutability": "view", "virtual": true, "visibility": "internal" } ], "scope": 1544, "src": "608:235:7", "usedErrors": [] } ], "src": "86:758:7" }, "compiler": { "name": "solc", "version": "0.8.11+commit.d7f03943.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.4.4", "updatedAt": "2021-12-29T22:14:28.599Z", "devdoc": { "details": "Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.", "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }