{ "contractName": "Context", "abi": [ { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.12+commit.7709ece9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/GSN/Context.sol\":\"Context\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", "source": "pragma solidity ^0.5.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 GSN 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 */\ncontract Context {\n // Empty internal constructor, to prevent people from mistakenly deploying\n // an instance of this contract, which should be used via inheritance.\n constructor () internal { }\n // solhint-disable-previous-line no-empty-blocks\n\n function _msgSender() internal view returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n", "sourcePath": "@openzeppelin/contracts/GSN/Context.sol", "ast": { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "exportedSymbols": { "Context": [ 417 ] }, "id": 418, "nodeType": "SourceUnit", "nodes": [ { "id": 392, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:2" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 417, "linearizedBaseContracts": [ 417 ], "name": "Context", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 395, "nodeType": "Block", "src": "726:3:2", "statements": [] }, "documentation": null, "id": 396, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 393, "nodeType": "ParameterList", "parameters": [], "src": "714:2:2" }, "returnParameters": { "id": 394, "nodeType": "ParameterList", "parameters": [], "src": "726:0:2" }, "scope": 417, "src": "702:27:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 404, "nodeType": "Block", "src": "850:34:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 401, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "867:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "867:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "functionReturnParameters": 400, "id": 403, "nodeType": "Return", "src": "860:17:2" } ] }, "documentation": null, "id": 405, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nodeType": "FunctionDefinition", "parameters": { "id": 397, "nodeType": "ParameterList", "parameters": [], "src": "807:2:2" }, "returnParameters": { "id": 400, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 399, "name": "", "nodeType": "VariableDeclaration", "scope": 405, "src": "833:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 398, "name": "address", "nodeType": "ElementaryTypeName", "src": "833:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "value": null, "visibility": "internal" } ], "src": "832:17:2" }, "scope": 417, "src": "788:96:2", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { "id": 415, "nodeType": "Block", "src": "947:165:2", "statements": [ { "expression": { "argumentTypes": null, "id": 410, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1107, "src": "957:4:2", "typeDescriptions": { "typeIdentifier": "t_contract$_Context_$417", "typeString": "contract Context" } }, "id": 411, "nodeType": "ExpressionStatement", "src": "957:4:2" }, { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 412, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "1097:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 413, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1097:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "functionReturnParameters": 409, "id": 414, "nodeType": "Return", "src": "1090:15:2" } ] }, "documentation": null, "id": 416, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nodeType": "FunctionDefinition", "parameters": { "id": 406, "nodeType": "ParameterList", "parameters": [], "src": "907:2:2" }, "returnParameters": { "id": 409, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 408, "name": "", "nodeType": "VariableDeclaration", "scope": 416, "src": "933:12:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 407, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "933:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "932:14:2" }, "scope": 417, "src": "890:222:2", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], "scope": 418, "src": "525:589:2" } ], "src": "0:1115:2" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "exportedSymbols": { "Context": [ 417 ] }, "id": 418, "nodeType": "SourceUnit", "nodes": [ { "id": 392, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:2" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 417, "linearizedBaseContracts": [ 417 ], "name": "Context", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 395, "nodeType": "Block", "src": "726:3:2", "statements": [] }, "documentation": null, "id": 396, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 393, "nodeType": "ParameterList", "parameters": [], "src": "714:2:2" }, "returnParameters": { "id": 394, "nodeType": "ParameterList", "parameters": [], "src": "726:0:2" }, "scope": 417, "src": "702:27:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 404, "nodeType": "Block", "src": "850:34:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 401, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "867:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "867:10:2", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "functionReturnParameters": 400, "id": 403, "nodeType": "Return", "src": "860:17:2" } ] }, "documentation": null, "id": 405, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nodeType": "FunctionDefinition", "parameters": { "id": 397, "nodeType": "ParameterList", "parameters": [], "src": "807:2:2" }, "returnParameters": { "id": 400, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 399, "name": "", "nodeType": "VariableDeclaration", "scope": 405, "src": "833:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 398, "name": "address", "nodeType": "ElementaryTypeName", "src": "833:15:2", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "value": null, "visibility": "internal" } ], "src": "832:17:2" }, "scope": 417, "src": "788:96:2", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { "id": 415, "nodeType": "Block", "src": "947:165:2", "statements": [ { "expression": { "argumentTypes": null, "id": 410, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1107, "src": "957:4:2", "typeDescriptions": { "typeIdentifier": "t_contract$_Context_$417", "typeString": "contract Context" } }, "id": 411, "nodeType": "ExpressionStatement", "src": "957:4:2" }, { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 412, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1093, "src": "1097:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 413, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "data", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "1097:8:2", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, "functionReturnParameters": 409, "id": 414, "nodeType": "Return", "src": "1090:15:2" } ] }, "documentation": null, "id": 416, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nodeType": "FunctionDefinition", "parameters": { "id": 406, "nodeType": "ParameterList", "parameters": [], "src": "907:2:2" }, "returnParameters": { "id": 409, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 408, "name": "", "nodeType": "VariableDeclaration", "scope": 416, "src": "933:12:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 407, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "933:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "932:14:2" }, "scope": 417, "src": "890:222:2", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], "scope": 418, "src": "525:589:2" } ], "src": "0:1115:2" }, "compiler": { "name": "solc", "version": "0.5.12+commit.7709ece9.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.0.19", "updatedAt": "2020-02-18T05:14:13.973Z", "devdoc": { "methods": {} }, "userdoc": { "methods": {} } }