{ "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": [ 381 ] }, "id": 382, "nodeType": "SourceUnit", "nodes": [ { "id": 356, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:2" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 381, "linearizedBaseContracts": [ 381 ], "name": "Context", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 359, "nodeType": "Block", "src": "726:3:2", "statements": [] }, "documentation": null, "id": 360, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 357, "nodeType": "ParameterList", "parameters": [], "src": "714:2:2" }, "returnParameters": { "id": 358, "nodeType": "ParameterList", "parameters": [], "src": "726:0:2" }, "scope": 381, "src": "702:27:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 368, "nodeType": "Block", "src": "850:34:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 365, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1057, "src": "867:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 366, "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": 364, "id": 367, "nodeType": "Return", "src": "860:17:2" } ] }, "documentation": null, "id": 369, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nodeType": "FunctionDefinition", "parameters": { "id": 361, "nodeType": "ParameterList", "parameters": [], "src": "807:2:2" }, "returnParameters": { "id": 364, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 363, "name": "", "nodeType": "VariableDeclaration", "scope": 369, "src": "833:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 362, "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": 381, "src": "788:96:2", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { "id": 379, "nodeType": "Block", "src": "947:165:2", "statements": [ { "expression": { "argumentTypes": null, "id": 374, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1071, "src": "957:4:2", "typeDescriptions": { "typeIdentifier": "t_contract$_Context_$381", "typeString": "contract Context" } }, "id": 375, "nodeType": "ExpressionStatement", "src": "957:4:2" }, { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 376, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1057, "src": "1097:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 377, "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": 373, "id": 378, "nodeType": "Return", "src": "1090:15:2" } ] }, "documentation": null, "id": 380, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nodeType": "FunctionDefinition", "parameters": { "id": 370, "nodeType": "ParameterList", "parameters": [], "src": "907:2:2" }, "returnParameters": { "id": 373, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 372, "name": "", "nodeType": "VariableDeclaration", "scope": 380, "src": "933:12:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 371, "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": 381, "src": "890:222:2", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], "scope": 382, "src": "525:589:2" } ], "src": "0:1115:2" }, "legacyAST": { "absolutePath": "@openzeppelin/contracts/GSN/Context.sol", "exportedSymbols": { "Context": [ 381 ] }, "id": 382, "nodeType": "SourceUnit", "nodes": [ { "id": 356, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:2" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 381, "linearizedBaseContracts": [ 381 ], "name": "Context", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 359, "nodeType": "Block", "src": "726:3:2", "statements": [] }, "documentation": null, "id": 360, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 357, "nodeType": "ParameterList", "parameters": [], "src": "714:2:2" }, "returnParameters": { "id": 358, "nodeType": "ParameterList", "parameters": [], "src": "726:0:2" }, "scope": 381, "src": "702:27:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 368, "nodeType": "Block", "src": "850:34:2", "statements": [ { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 365, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1057, "src": "867:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 366, "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": 364, "id": 367, "nodeType": "Return", "src": "860:17:2" } ] }, "documentation": null, "id": 369, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgSender", "nodeType": "FunctionDefinition", "parameters": { "id": 361, "nodeType": "ParameterList", "parameters": [], "src": "807:2:2" }, "returnParameters": { "id": 364, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 363, "name": "", "nodeType": "VariableDeclaration", "scope": 369, "src": "833:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" }, "typeName": { "id": 362, "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": 381, "src": "788:96:2", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { "id": 379, "nodeType": "Block", "src": "947:165:2", "statements": [ { "expression": { "argumentTypes": null, "id": 374, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1071, "src": "957:4:2", "typeDescriptions": { "typeIdentifier": "t_contract$_Context_$381", "typeString": "contract Context" } }, "id": 375, "nodeType": "ExpressionStatement", "src": "957:4:2" }, { "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 376, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1057, "src": "1097:3:2", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 377, "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": 373, "id": 378, "nodeType": "Return", "src": "1090:15:2" } ] }, "documentation": null, "id": 380, "implemented": true, "kind": "function", "modifiers": [], "name": "_msgData", "nodeType": "FunctionDefinition", "parameters": { "id": 370, "nodeType": "ParameterList", "parameters": [], "src": "907:2:2" }, "returnParameters": { "id": 373, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 372, "name": "", "nodeType": "VariableDeclaration", "scope": 380, "src": "933:12:2", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 371, "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": 381, "src": "890:222:2", "stateMutability": "view", "superFunction": null, "visibility": "internal" } ], "scope": 382, "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": "2019-12-29T01:52:30.751Z", "devdoc": { "methods": {} }, "userdoc": { "methods": {} } }