{ "contractName": "Extension", "abi": [ { "constant": false, "inputs": [ { "name": "sender", "type": "address" }, { "name": "to", "type": "address" }, { "name": "value", "type": "uint256" }, { "name": "data", "type": "bytes" }, { "name": "operation", "type": "uint8" } ], "name": "isExecutable", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", "source": "pragma solidity 0.4.19;\nimport \"./GnosisSafe.sol\";\n\n\n/// @title Abstract Extension - Functions to be implemented by extensions.\n/// @author Stefan George - \ncontract Extension {\n\n /// @dev Function to be implmeneted by extension. Returns if Safe transaction is valid and can be executed.\n /// @param sender Safe transaction sender address. This is not necessarily a Safe owner and needs to be \n /// verified in case only Safe owners are allowed.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param operation Operation type.\n /// @return Returns if transaction can be executed.\n function isExecutable(address sender, address to, uint256 value, bytes data, GnosisSafe.Operation operation) public returns (bool);\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Extension.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Extension.sol", "exportedSymbols": { "Extension": [ 18 ] }, "id": 19, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "0.4", ".19" ], "nodeType": "PragmaDirective", "src": "0:23:0" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "file": "./GnosisSafe.sol", "id": 2, "nodeType": "ImportDirective", "scope": 19, "sourceUnit": 964, "src": "24:26:0", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": "@title Abstract Extension - Functions to be implemented by extensions.\n @author Stefan George - ", "fullyImplemented": false, "id": 18, "linearizedBaseContracts": [ 18 ], "name": "Extension", "nodeType": "ContractDefinition", "nodes": [ { "body": null, "id": 17, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "isExecutable", "nodeType": "FunctionDefinition", "parameters": { "id": 13, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4, "name": "sender", "nodeType": "VariableDeclaration", "scope": 17, "src": "710:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3, "name": "address", "nodeType": "ElementaryTypeName", "src": "710:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 6, "name": "to", "nodeType": "VariableDeclaration", "scope": 17, "src": "726:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 5, "name": "address", "nodeType": "ElementaryTypeName", "src": "726:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 8, "name": "value", "nodeType": "VariableDeclaration", "scope": 17, "src": "738:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 7, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "738:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 10, "name": "data", "nodeType": "VariableDeclaration", "scope": 17, "src": "753:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 9, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "753:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 12, "name": "operation", "nodeType": "VariableDeclaration", "scope": 17, "src": "765:30:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "typeName": { "contractScope": null, "id": 11, "name": "GnosisSafe.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 61, "src": "765:20:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "value": null, "visibility": "internal" } ], "src": "709:87:0" }, "payable": false, "returnParameters": { "id": 16, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15, "name": "", "nodeType": "VariableDeclaration", "scope": 17, "src": "813:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 14, "name": "bool", "nodeType": "ElementaryTypeName", "src": "813:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "812:6:0" }, "scope": 18, "src": "688:131:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 19, "src": "175:646:0" } ], "src": "0:822:0" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Extension.sol", "exportedSymbols": { "Extension": [ 18 ] }, "id": 19, "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", "0.4", ".19" ], "nodeType": "PragmaDirective", "src": "0:23:0" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "file": "./GnosisSafe.sol", "id": 2, "nodeType": "ImportDirective", "scope": 19, "sourceUnit": 964, "src": "24:26:0", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": "@title Abstract Extension - Functions to be implemented by extensions.\n @author Stefan George - ", "fullyImplemented": false, "id": 18, "linearizedBaseContracts": [ 18 ], "name": "Extension", "nodeType": "ContractDefinition", "nodes": [ { "body": null, "id": 17, "implemented": false, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "isExecutable", "nodeType": "FunctionDefinition", "parameters": { "id": 13, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4, "name": "sender", "nodeType": "VariableDeclaration", "scope": 17, "src": "710:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 3, "name": "address", "nodeType": "ElementaryTypeName", "src": "710:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 6, "name": "to", "nodeType": "VariableDeclaration", "scope": 17, "src": "726:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 5, "name": "address", "nodeType": "ElementaryTypeName", "src": "726:7:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 8, "name": "value", "nodeType": "VariableDeclaration", "scope": 17, "src": "738:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 7, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "738:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 10, "name": "data", "nodeType": "VariableDeclaration", "scope": 17, "src": "753:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, "typeName": { "id": 9, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "753:5:0", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes storage pointer" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 12, "name": "operation", "nodeType": "VariableDeclaration", "scope": 17, "src": "765:30:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" }, "typeName": { "contractScope": null, "id": 11, "name": "GnosisSafe.Operation", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 61, "src": "765:20:0", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$61", "typeString": "enum GnosisSafe.Operation" } }, "value": null, "visibility": "internal" } ], "src": "709:87:0" }, "payable": false, "returnParameters": { "id": 16, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 15, "name": "", "nodeType": "VariableDeclaration", "scope": 17, "src": "813:4:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 14, "name": "bool", "nodeType": "ElementaryTypeName", "src": "813:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "812:6:0" }, "scope": 18, "src": "688:131:0", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 19, "src": "175:646:0" } ], "src": "0:822:0" }, "compiler": { "name": "solc", "version": "0.4.19+commit.c4cbbb05.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", "updatedAt": "2018-05-04T10:42:18.365Z" }