safe-react/safe-contracts/build/contracts/GnosisSafe.json

1843 lines
126 KiB
JSON
Raw Normal View History

2018-05-31 13:01:02 +00:00
{
"contractName": "GnosisSafe",
"abi": [
{
"constant": false,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "_threshold",
"type": "uint256"
}
],
"name": "addOwnerWithThreshold",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
2018-08-20 07:59:16 +00:00
{
"constant": true,
"inputs": [],
"name": "DOMAIN_SEPERATOR_TYPEHASH",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
2018-05-31 13:01:02 +00:00
{
"constant": true,
"inputs": [
{
"name": "owner",
"type": "address"
}
],
"name": "isOwner",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "value",
"type": "uint256"
},
{
"name": "data",
"type": "bytes"
},
{
"name": "operation",
"type": "uint8"
}
],
"name": "execTransactionFromModule",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "module",
"type": "address"
}
],
"name": "enableModule",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
2018-05-31 13:01:02 +00:00
{
"name": "_threshold",
"type": "uint256"
2018-05-31 13:01:02 +00:00
}
],
"name": "changeThreshold",
"outputs": [],
2018-05-31 13:01:02 +00:00
"payable": false,
"stateMutability": "nonpayable",
2018-05-31 13:01:02 +00:00
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "SENTINEL_MODULES",
"outputs": [
2018-05-31 13:01:02 +00:00
{
"name": "",
2018-05-31 13:01:02 +00:00
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
2018-05-31 13:01:02 +00:00
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "SENTINEL_OWNERS",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getOwners",
"outputs": [
{
"name": "",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "NAME",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getModules",
"outputs": [
{
"name": "",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
2018-08-20 07:59:16 +00:00
{
"constant": true,
"inputs": [],
"name": "domainSeperator",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
2018-05-31 13:01:02 +00:00
{
"constant": false,
"inputs": [
{
"name": "prevModule",
"type": "address"
},
{
"name": "module",
"type": "address"
}
],
"name": "disableModule",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "prevOwner",
"type": "address"
},
{
"name": "oldOwner",
"type": "address"
},
{
"name": "newOwner",
"type": "address"
}
],
"name": "swapOwner",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getThreshold",
"outputs": [
{
"name": "",
"type": "uint256"
2018-05-31 13:01:02 +00:00
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "prevOwner",
"type": "address"
},
{
"name": "owner",
"type": "address"
},
{
"name": "_threshold",
"type": "uint256"
}
],
"name": "removeOwner",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
2018-05-31 13:01:02 +00:00
{
"constant": true,
"inputs": [],
"name": "VERSION",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "newContract",
"type": "address"
}
],
"name": "ContractCreation",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "_owners",
"type": "address[]"
},
{
"name": "_threshold",
"type": "uint256"
2018-05-31 13:01:02 +00:00
},
{
"name": "to",
"type": "address"
},
{
"name": "data",
"type": "bytes"
}
],
"name": "setup",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
2018-08-20 07:59:16 +00:00
"bytecode": "0x608060405234801561001057600080fd5b506131eb806100206000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100fe5780630ec78d9e1461014b5780631da5187f146102215780632f54bf6e14610254578063468721a7146102af578063610b592514610367578063694e80c3146103aa57806385e332cd146103d75780638cff63551461042e578063a0e67e2b14610485578063a3f4df7e146104f1578063b2494df314610581578063cb73ac56146105ed578063e009cfde14610620578063e318b52b14610683578063e75235b814610706578063f8dc5dd914610731578063ffa1ad741461079e575b005b34801561010a57600080fd5b50610149600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b005b34801561015757600080fd5b5061021f6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c34565b005b34801561022d57600080fd5b50610236610dba565b60405180826000191660001916815260200191505060405180910390f35b34801561026057600080fd5b50610295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610de1565b604051808215151515815260200191505060405180910390f35b3480156102bb57600080fd5b5061034d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610e63565b604051808215151515815260200191505060405180910390f35b34801561037357600080fd5b506103a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f8e565b005b3480156103b657600080fd5b506103d560048036038101908080359060200190929190505050611368565b005b3480156103e357600080fd5b506103ec61157a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043a57600080fd5b5061044361157f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049157600080fd5b5061049a611584565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104dd5780820151818401526020810190506104c2565b505050509050019250505060405180910390f35b3480156104fd57600080fd5b5061050661171f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054657808201518184015260208101905061052b565b50505050905090810190601f1680156105735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058d57600080fd5b50610596611758565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105d95780820151818401526020810190506105be565b505050509050019250505060405180910390f35b3480156105f957600080fd5b506106026119fb565b60405180826000191660001916815260200191505060405180910390f35b34801561062c57600080fd5b50610681600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a01565b005b34801561068f57600080fd5b50610704600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e16565b005b34801561071257600080fd5b5061071b612463565b6040518082815260200191505060405180910390f35b34801561073d57600080fd5b5061079c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061246d565b005b3480156107aa57600080fd5b506107b3612952565b6040518080602001828103825283818151815260200191508051906020019080838360
"deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100fe5780630ec78d9e1461014b5780631da5187f146102215780632f54bf6e14610254578063468721a7146102af578063610b592514610367578063694e80c3146103aa57806385e332cd146103d75780638cff63551461042e578063a0e67e2b14610485578063a3f4df7e146104f1578063b2494df314610581578063cb73ac56146105ed578063e009cfde14610620578063e318b52b14610683578063e75235b814610706578063f8dc5dd914610731578063ffa1ad741461079e575b005b34801561010a57600080fd5b50610149600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061082e565b005b34801561015757600080fd5b5061021f6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c34565b005b34801561022d57600080fd5b50610236610dba565b60405180826000191660001916815260200191505060405180910390f35b34801561026057600080fd5b50610295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610de1565b604051808215151515815260200191505060405180910390f35b3480156102bb57600080fd5b5061034d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610e63565b604051808215151515815260200191505060405180910390f35b34801561037357600080fd5b506103a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f8e565b005b3480156103b657600080fd5b506103d560048036038101908080359060200190929190505050611368565b005b3480156103e357600080fd5b506103ec61157a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043a57600080fd5b5061044361157f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049157600080fd5b5061049a611584565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104dd5780820151818401526020810190506104c2565b505050509050019250505060405180910390f35b3480156104fd57600080fd5b5061050661171f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561054657808201518184015260208101905061052b565b50505050905090810190601f1680156105735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561058d57600080fd5b50610596611758565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105d95780820151818401526020810190506105be565b505050509050019250505060405180910390f35b3480156105f957600080fd5b506106026119fb565b60405180826000191660001916815260200191505060405180910390f35b34801561062c57600080fd5b50610681600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a01565b005b34801561068f57600080fd5b50610704600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e16565b005b34801561071257600080fd5b5061071b612463565b6040518082815260200191505060405180910390f35b34801561073d57600080fd5b5061079c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061246d565b005b3480156107aa57600080fd5b506107b3612952565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107f35780820151818401526020810190506107d856
"sourceMap": "322:1070:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;322:1070:4;;;;;;;",
"deployedSourceMap": "322:1070:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;933:457:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;933:457:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;458:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;458:118:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:429:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2712:429:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:459:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:11;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:11;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824:458:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5824:458:11;;;;;;;;;;;;;;;;;390:46:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;390:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;390:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3220:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3220:738:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3220:738:10;;;;;;;;;;;;;;;;;583:30:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;583:30:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1902:474:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1902:474:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:11;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;442:40:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;442:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;442:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:11;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:11;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;933:457:4:-;1067:1;1048:20;;:15;;:20;;;;1040:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;510:66;1151:25;;1178:4;1140:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1140:43:4;;;1130:54;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1130:54:4;;;;;;;;;;;;;;;;1112:15;:72;;;;;;;1194:32;1206:7;1215:10;1194:11;:32::i;:::-;1361:22;1374:2;1378:4;1361:12;:22::i;:::-;933:457;;;;:::o;458:118::-;510:66;458:118;;;:::o;5613:129:11:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2712:429:10:-;2844:12;2952:1;2929:7;:19;2937:10;2929:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2921:85;;;;;;;
"source": "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./ModuleManager.sol\";\nimport \"./OwnerManager.sol\";\n\n\n/// @title Gnosis Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n/// @author Stefan George - <stefan@gnosis.pm>\ncontract GnosisSafe is ModuleManager, OwnerManager {\n\n //keccak256(\n // \"EIP712Domain(address verifyingContract)\"\n //);\n bytes32 public constant DOMAIN_SEPERATOR_TYPEHASH = 0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749;\n\n bytes32 public domainSeperator;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n function setup(address[] _owners, uint256 _threshold, address to, bytes data)\n public\n {\n require(domainSeperator == 0, \"Domain Seperator already set!\");\n domainSeperator = keccak256(abi.encode(DOMAIN_SEPERATOR_TYPEHASH, this));\n setupOwners(_owners, _threshold);\n // As setupOwners can only be called if the contract has not been initialized we don't need a check for setupModules\n setupModules(to, data);\n }\n}\n",
2018-05-31 13:01:02 +00:00
"sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol",
"ast": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol",
"exportedSymbols": {
"GnosisSafe": [
2018-08-20 07:59:16 +00:00
208
2018-05-31 13:01:02 +00:00
]
},
2018-08-20 07:59:16 +00:00
"id": 209,
2018-05-31 13:01:02 +00:00
"nodeType": "SourceUnit",
"nodes": [
{
2018-08-20 07:59:16 +00:00
"id": 155,
2018-05-31 13:01:02 +00:00
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
2018-08-20 07:59:16 +00:00
"src": "0:23:4"
2018-05-31 13:01:02 +00:00
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol",
"file": "./Module.sol",
2018-08-20 07:59:16 +00:00
"id": 156,
2018-05-31 13:01:02 +00:00
"nodeType": "ImportDirective",
2018-08-20 07:59:16 +00:00
"scope": 209,
"sourceUnit": 914,
"src": "24:22:4",
2018-05-31 13:01:02 +00:00
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol",
"file": "./ModuleManager.sol",
2018-08-20 07:59:16 +00:00
"id": 157,
2018-05-31 13:01:02 +00:00
"nodeType": "ImportDirective",
2018-08-20 07:59:16 +00:00
"scope": 209,
"sourceUnit": 1181,
"src": "47:29:4",
2018-05-31 13:01:02 +00:00
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol",
"file": "./OwnerManager.sol",
2018-08-20 07:59:16 +00:00
"id": 158,
2018-05-31 13:01:02 +00:00
"nodeType": "ImportDirective",
2018-08-20 07:59:16 +00:00
"scope": 209,
"sourceUnit": 1589,
"src": "77:28:4",
2018-05-31 13:01:02 +00:00
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
2018-08-20 07:59:16 +00:00
"id": 159,
2018-05-31 13:01:02 +00:00
"name": "ModuleManager",
"nodeType": "UserDefinedTypeName",
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 1180,
"src": "345:13:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
2018-08-20 07:59:16 +00:00
"typeIdentifier": "t_contract$_ModuleManager_$1180",
2018-05-31 13:01:02 +00:00
"typeString": "contract ModuleManager"
}
},
2018-08-20 07:59:16 +00:00
"id": 160,
2018-05-31 13:01:02 +00:00
"nodeType": "InheritanceSpecifier",
2018-08-20 07:59:16 +00:00
"src": "345:13:4"
2018-05-31 13:01:02 +00:00
},
{
"arguments": null,
"baseName": {
"contractScope": null,
2018-08-20 07:59:16 +00:00
"id": 161,
2018-05-31 13:01:02 +00:00
"name": "OwnerManager",
"nodeType": "UserDefinedTypeName",
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 1588,
"src": "360:12:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
2018-08-20 07:59:16 +00:00
"typeIdentifier": "t_contract$_OwnerManager_$1588",
2018-05-31 13:01:02 +00:00
"typeString": "contract OwnerManager"
}
},
2018-08-20 07:59:16 +00:00
"id": 162,
2018-05-31 13:01:02 +00:00
"nodeType": "InheritanceSpecifier",
2018-08-20 07:59:16 +00:00
"src": "360:12:4"
2018-05-31 13:01:02 +00:00
}
],
"contractDependencies": [
2018-08-20 07:59:16 +00:00
153,
37,
1180,
1588,
1765
2018-05-31 13:01:02 +00:00
],
"contractKind": "contract",
"documentation": "@title Gnosis Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - <stefan@gnosis.pm>",
"fullyImplemented": true,
2018-08-20 07:59:16 +00:00
"id": 208,
2018-05-31 13:01:02 +00:00
"linearizedBaseContracts": [
2018-08-20 07:59:16 +00:00
208,
1588,
1180,
153,
37,
1765
2018-05-31 13:01:02 +00:00
],
"name": "GnosisSafe",
"nodeType": "ContractDefinition",
"nodes": [
2018-08-20 07:59:16 +00:00
{
"constant": true,
"id": 165,
"name": "DOMAIN_SEPERATOR_TYPEHASH",
"nodeType": "VariableDeclaration",
"scope": 208,
"src": "458:118:4",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 163,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "458:7:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"hexValue": "307830333561666638336438363933376433356233326530346630646463366666343639323930656566326631623639326438613831356338393430346434373439",
"id": 164,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "510:66:4",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1517718281442037948617199096126532355110765202990829672390711201829802035017_by_1",
"typeString": "int_const 1517...(68 digits omitted)...5017"
},
"value": "0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749"
},
"visibility": "public"
},
{
"constant": false,
"id": 167,
"name": "domainSeperator",
"nodeType": "VariableDeclaration",
"scope": 208,
"src": "583:30:4",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 166,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "583:7:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "public"
},
2018-05-31 13:01:02 +00:00
{
"body": {
2018-08-20 07:59:16 +00:00
"id": 206,
2018-05-31 13:01:02 +00:00
"nodeType": "Block",
2018-08-20 07:59:16 +00:00
"src": "1030:360:4",
2018-05-31 13:01:02 +00:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-08-20 07:59:16 +00:00
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 182,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 180,
"name": "domainSeperator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 167,
"src": "1048:15:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 181,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1067:1:4",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1048:20:4",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "446f6d61696e20536570657261746f7220616c72656164792073657421",
"id": 183,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1070:31:4",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_76b336706355b2c543d4f566e8de773fa4e586723c61d024c00ec0bb4ad3fcae",
"typeString": "literal_string \"Domain Seperator already set!\""
},
"value": "Domain Seperator already set!"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_76b336706355b2c543d4f566e8de773fa4e586723c61d024c00ec0bb4ad3fcae",
"typeString": "literal_string \"Domain Seperator already set!\""
}
],
"id": 179,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
3831,
3832
],
"referencedDeclaration": 3832,
"src": "1040:7:4",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 184,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1040:62:4",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 185,
"nodeType": "ExpressionStatement",
"src": "1040:62:4"
},
{
"expression": {
"argumentTypes": null,
"id": 194,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 186,
"name": "domainSeperator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 167,
"src": "1112:15:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 190,
"name": "DOMAIN_SEPERATOR_TYPEHASH",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 165,
"src": "1151:25:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 191,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3861,
"src": "1178:4:4",
"typeDescriptions": {
"typeIdentifier": "t_contract$_GnosisSafe_$208",
"typeString": "contract GnosisSafe"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_contract$_GnosisSafe_$208",
"typeString": "contract GnosisSafe"
}
],
"expression": {
"argumentTypes": null,
"id": 188,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3815,
"src": "1140:3:4",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 189,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encode",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1140:10:4",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 192,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1140:43:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 187,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3822,
"src": "1130:9:4",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 193,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1130:54:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "1112:72:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 195,
"nodeType": "ExpressionStatement",
"src": "1112:72:4"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 197,
2018-05-31 13:01:02 +00:00
"name": "_owners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 170,
"src": "1206:7:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
{
"argumentTypes": null,
2018-08-20 07:59:16 +00:00
"id": 198,
2018-05-31 13:01:02 +00:00
"name": "_threshold",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 172,
"src": "1215:10:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2018-05-31 13:01:02 +00:00
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2018-05-31 13:01:02 +00:00
}
],
2018-08-20 07:59:16 +00:00
"id": 196,
2018-05-31 13:01:02 +00:00
"name": "setupOwners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 1297,
"src": "1194:11:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (address[] memory,uint256)"
2018-05-31 13:01:02 +00:00
}
},
2018-08-20 07:59:16 +00:00
"id": 199,
2018-05-31 13:01:02 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-08-20 07:59:16 +00:00
"src": "1194:32:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-08-20 07:59:16 +00:00
"id": 200,
2018-05-31 13:01:02 +00:00
"nodeType": "ExpressionStatement",
2018-08-20 07:59:16 +00:00
"src": "1194:32:4"
2018-05-31 13:01:02 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-08-20 07:59:16 +00:00
"id": 202,
2018-05-31 13:01:02 +00:00
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 174,
"src": "1374:2:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2018-08-20 07:59:16 +00:00
"id": 203,
2018-05-31 13:01:02 +00:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 176,
"src": "1378:4:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
2018-08-20 07:59:16 +00:00
"id": 201,
2018-05-31 13:01:02 +00:00
"name": "setupModules",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 975,
"src": "1361:12:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (address,bytes memory)"
}
},
2018-08-20 07:59:16 +00:00
"id": 204,
2018-05-31 13:01:02 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-08-20 07:59:16 +00:00
"src": "1361:22:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-08-20 07:59:16 +00:00
"id": 205,
2018-05-31 13:01:02 +00:00
"nodeType": "ExpressionStatement",
2018-08-20 07:59:16 +00:00
"src": "1361:22:4"
2018-05-31 13:01:02 +00:00
}
]
},
"documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.",
2018-08-20 07:59:16 +00:00
"id": 207,
2018-05-31 13:01:02 +00:00
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "setup",
"nodeType": "FunctionDefinition",
"parameters": {
2018-08-20 07:59:16 +00:00
"id": 177,
2018-05-31 13:01:02 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-08-20 07:59:16 +00:00
"id": 170,
2018-05-31 13:01:02 +00:00
"name": "_owners",
"nodeType": "VariableDeclaration",
2018-08-20 07:59:16 +00:00
"scope": 207,
"src": "948:17:4",
2018-05-31 13:01:02 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
2018-08-20 07:59:16 +00:00
"id": 168,
2018-05-31 13:01:02 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-08-20 07:59:16 +00:00
"src": "948:7:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-08-20 07:59:16 +00:00
"id": 169,
2018-05-31 13:01:02 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-08-20 07:59:16 +00:00
"src": "948:9:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-08-20 07:59:16 +00:00
"id": 172,
2018-05-31 13:01:02 +00:00
"name": "_threshold",
"nodeType": "VariableDeclaration",
2018-08-20 07:59:16 +00:00
"scope": 207,
"src": "967:18:4",
2018-05-31 13:01:02 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2018-05-31 13:01:02 +00:00
},
"typeName": {
2018-08-20 07:59:16 +00:00
"id": 171,
"name": "uint256",
2018-05-31 13:01:02 +00:00
"nodeType": "ElementaryTypeName",
2018-08-20 07:59:16 +00:00
"src": "967:7:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2018-05-31 13:01:02 +00:00
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-08-20 07:59:16 +00:00
"id": 174,
2018-05-31 13:01:02 +00:00
"name": "to",
"nodeType": "VariableDeclaration",
2018-08-20 07:59:16 +00:00
"scope": 207,
"src": "987:10:4",
2018-05-31 13:01:02 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2018-08-20 07:59:16 +00:00
"id": 173,
2018-05-31 13:01:02 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-08-20 07:59:16 +00:00
"src": "987:7:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-08-20 07:59:16 +00:00
"id": 176,
2018-05-31 13:01:02 +00:00
"name": "data",
"nodeType": "VariableDeclaration",
2018-08-20 07:59:16 +00:00
"scope": 207,
"src": "999:10:4",
2018-05-31 13:01:02 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2018-08-20 07:59:16 +00:00
"id": 175,
2018-05-31 13:01:02 +00:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2018-08-20 07:59:16 +00:00
"src": "999:5:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
2018-08-20 07:59:16 +00:00
"src": "947:63:4"
2018-05-31 13:01:02 +00:00
},
"payable": false,
"returnParameters": {
2018-08-20 07:59:16 +00:00
"id": 178,
2018-05-31 13:01:02 +00:00
"nodeType": "ParameterList",
"parameters": [],
2018-08-20 07:59:16 +00:00
"src": "1030:0:4"
2018-05-31 13:01:02 +00:00
},
2018-08-20 07:59:16 +00:00
"scope": 208,
"src": "933:457:4",
2018-05-31 13:01:02 +00:00
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
2018-08-20 07:59:16 +00:00
"scope": 209,
"src": "322:1070:4"
2018-05-31 13:01:02 +00:00
}
],
2018-08-20 07:59:16 +00:00
"src": "0:1393:4"
2018-05-31 13:01:02 +00:00
},
"legacyAST": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol",
"exportedSymbols": {
"GnosisSafe": [
2018-08-20 07:59:16 +00:00
208
2018-05-31 13:01:02 +00:00
]
},
2018-08-20 07:59:16 +00:00
"id": 209,
2018-05-31 13:01:02 +00:00
"nodeType": "SourceUnit",
"nodes": [
{
2018-08-20 07:59:16 +00:00
"id": 155,
2018-05-31 13:01:02 +00:00
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
2018-08-20 07:59:16 +00:00
"src": "0:23:4"
2018-05-31 13:01:02 +00:00
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol",
"file": "./Module.sol",
2018-08-20 07:59:16 +00:00
"id": 156,
2018-05-31 13:01:02 +00:00
"nodeType": "ImportDirective",
2018-08-20 07:59:16 +00:00
"scope": 209,
"sourceUnit": 914,
"src": "24:22:4",
2018-05-31 13:01:02 +00:00
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol",
"file": "./ModuleManager.sol",
2018-08-20 07:59:16 +00:00
"id": 157,
2018-05-31 13:01:02 +00:00
"nodeType": "ImportDirective",
2018-08-20 07:59:16 +00:00
"scope": 209,
"sourceUnit": 1181,
"src": "47:29:4",
2018-05-31 13:01:02 +00:00
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol",
"file": "./OwnerManager.sol",
2018-08-20 07:59:16 +00:00
"id": 158,
2018-05-31 13:01:02 +00:00
"nodeType": "ImportDirective",
2018-08-20 07:59:16 +00:00
"scope": 209,
"sourceUnit": 1589,
"src": "77:28:4",
2018-05-31 13:01:02 +00:00
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
2018-08-20 07:59:16 +00:00
"id": 159,
2018-05-31 13:01:02 +00:00
"name": "ModuleManager",
"nodeType": "UserDefinedTypeName",
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 1180,
"src": "345:13:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
2018-08-20 07:59:16 +00:00
"typeIdentifier": "t_contract$_ModuleManager_$1180",
2018-05-31 13:01:02 +00:00
"typeString": "contract ModuleManager"
}
},
2018-08-20 07:59:16 +00:00
"id": 160,
2018-05-31 13:01:02 +00:00
"nodeType": "InheritanceSpecifier",
2018-08-20 07:59:16 +00:00
"src": "345:13:4"
2018-05-31 13:01:02 +00:00
},
{
"arguments": null,
"baseName": {
"contractScope": null,
2018-08-20 07:59:16 +00:00
"id": 161,
2018-05-31 13:01:02 +00:00
"name": "OwnerManager",
"nodeType": "UserDefinedTypeName",
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 1588,
"src": "360:12:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
2018-08-20 07:59:16 +00:00
"typeIdentifier": "t_contract$_OwnerManager_$1588",
2018-05-31 13:01:02 +00:00
"typeString": "contract OwnerManager"
}
},
2018-08-20 07:59:16 +00:00
"id": 162,
2018-05-31 13:01:02 +00:00
"nodeType": "InheritanceSpecifier",
2018-08-20 07:59:16 +00:00
"src": "360:12:4"
2018-05-31 13:01:02 +00:00
}
],
"contractDependencies": [
2018-08-20 07:59:16 +00:00
153,
37,
1180,
1588,
1765
2018-05-31 13:01:02 +00:00
],
"contractKind": "contract",
"documentation": "@title Gnosis Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - <stefan@gnosis.pm>",
"fullyImplemented": true,
2018-08-20 07:59:16 +00:00
"id": 208,
2018-05-31 13:01:02 +00:00
"linearizedBaseContracts": [
2018-08-20 07:59:16 +00:00
208,
1588,
1180,
153,
37,
1765
2018-05-31 13:01:02 +00:00
],
"name": "GnosisSafe",
"nodeType": "ContractDefinition",
"nodes": [
2018-08-20 07:59:16 +00:00
{
"constant": true,
"id": 165,
"name": "DOMAIN_SEPERATOR_TYPEHASH",
"nodeType": "VariableDeclaration",
"scope": 208,
"src": "458:118:4",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 163,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "458:7:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": {
"argumentTypes": null,
"hexValue": "307830333561666638336438363933376433356233326530346630646463366666343639323930656566326631623639326438613831356338393430346434373439",
"id": 164,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "510:66:4",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1517718281442037948617199096126532355110765202990829672390711201829802035017_by_1",
"typeString": "int_const 1517...(68 digits omitted)...5017"
},
"value": "0x035aff83d86937d35b32e04f0ddc6ff469290eef2f1b692d8a815c89404d4749"
},
"visibility": "public"
},
{
"constant": false,
"id": 167,
"name": "domainSeperator",
"nodeType": "VariableDeclaration",
"scope": 208,
"src": "583:30:4",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 166,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "583:7:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "public"
},
2018-05-31 13:01:02 +00:00
{
"body": {
2018-08-20 07:59:16 +00:00
"id": 206,
2018-05-31 13:01:02 +00:00
"nodeType": "Block",
2018-08-20 07:59:16 +00:00
"src": "1030:360:4",
2018-05-31 13:01:02 +00:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-08-20 07:59:16 +00:00
"commonType": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"id": 182,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 180,
"name": "domainSeperator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 167,
"src": "1048:15:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 181,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1067:1:4",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "1048:20:4",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "446f6d61696e20536570657261746f7220616c72656164792073657421",
"id": 183,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1070:31:4",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_76b336706355b2c543d4f566e8de773fa4e586723c61d024c00ec0bb4ad3fcae",
"typeString": "literal_string \"Domain Seperator already set!\""
},
"value": "Domain Seperator already set!"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_76b336706355b2c543d4f566e8de773fa4e586723c61d024c00ec0bb4ad3fcae",
"typeString": "literal_string \"Domain Seperator already set!\""
}
],
"id": 179,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
3831,
3832
],
"referencedDeclaration": 3832,
"src": "1040:7:4",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 184,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1040:62:4",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 185,
"nodeType": "ExpressionStatement",
"src": "1040:62:4"
},
{
"expression": {
"argumentTypes": null,
"id": 194,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 186,
"name": "domainSeperator",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 167,
"src": "1112:15:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 190,
"name": "DOMAIN_SEPERATOR_TYPEHASH",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 165,
"src": "1151:25:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"id": 191,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3861,
"src": "1178:4:4",
"typeDescriptions": {
"typeIdentifier": "t_contract$_GnosisSafe_$208",
"typeString": "contract GnosisSafe"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_contract$_GnosisSafe_$208",
"typeString": "contract GnosisSafe"
}
],
"expression": {
"argumentTypes": null,
"id": 188,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3815,
"src": "1140:3:4",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 189,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encode",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1140:10:4",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 192,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1140:43:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 187,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3822,
"src": "1130:9:4",
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
"id": 193,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1130:54:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"src": "1112:72:4",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 195,
"nodeType": "ExpressionStatement",
"src": "1112:72:4"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 197,
2018-05-31 13:01:02 +00:00
"name": "_owners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 170,
"src": "1206:7:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
{
"argumentTypes": null,
2018-08-20 07:59:16 +00:00
"id": 198,
2018-05-31 13:01:02 +00:00
"name": "_threshold",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 172,
"src": "1215:10:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2018-05-31 13:01:02 +00:00
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2018-05-31 13:01:02 +00:00
}
],
2018-08-20 07:59:16 +00:00
"id": 196,
2018-05-31 13:01:02 +00:00
"name": "setupOwners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 1297,
"src": "1194:11:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (address[] memory,uint256)"
2018-05-31 13:01:02 +00:00
}
},
2018-08-20 07:59:16 +00:00
"id": 199,
2018-05-31 13:01:02 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-08-20 07:59:16 +00:00
"src": "1194:32:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-08-20 07:59:16 +00:00
"id": 200,
2018-05-31 13:01:02 +00:00
"nodeType": "ExpressionStatement",
2018-08-20 07:59:16 +00:00
"src": "1194:32:4"
2018-05-31 13:01:02 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-08-20 07:59:16 +00:00
"id": 202,
2018-05-31 13:01:02 +00:00
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 174,
"src": "1374:2:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2018-08-20 07:59:16 +00:00
"id": 203,
2018-05-31 13:01:02 +00:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 176,
"src": "1378:4:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
2018-08-20 07:59:16 +00:00
"id": 201,
2018-05-31 13:01:02 +00:00
"name": "setupModules",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-08-20 07:59:16 +00:00
"referencedDeclaration": 975,
"src": "1361:12:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (address,bytes memory)"
}
},
2018-08-20 07:59:16 +00:00
"id": 204,
2018-05-31 13:01:02 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-08-20 07:59:16 +00:00
"src": "1361:22:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-08-20 07:59:16 +00:00
"id": 205,
2018-05-31 13:01:02 +00:00
"nodeType": "ExpressionStatement",
2018-08-20 07:59:16 +00:00
"src": "1361:22:4"
2018-05-31 13:01:02 +00:00
}
]
},
"documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.",
2018-08-20 07:59:16 +00:00
"id": 207,
2018-05-31 13:01:02 +00:00
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "setup",
"nodeType": "FunctionDefinition",
"parameters": {
2018-08-20 07:59:16 +00:00
"id": 177,
2018-05-31 13:01:02 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-08-20 07:59:16 +00:00
"id": 170,
2018-05-31 13:01:02 +00:00
"name": "_owners",
"nodeType": "VariableDeclaration",
2018-08-20 07:59:16 +00:00
"scope": 207,
"src": "948:17:4",
2018-05-31 13:01:02 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
2018-08-20 07:59:16 +00:00
"id": 168,
2018-05-31 13:01:02 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-08-20 07:59:16 +00:00
"src": "948:7:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-08-20 07:59:16 +00:00
"id": 169,
2018-05-31 13:01:02 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-08-20 07:59:16 +00:00
"src": "948:9:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-08-20 07:59:16 +00:00
"id": 172,
2018-05-31 13:01:02 +00:00
"name": "_threshold",
"nodeType": "VariableDeclaration",
2018-08-20 07:59:16 +00:00
"scope": 207,
"src": "967:18:4",
2018-05-31 13:01:02 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2018-05-31 13:01:02 +00:00
},
"typeName": {
2018-08-20 07:59:16 +00:00
"id": 171,
"name": "uint256",
2018-05-31 13:01:02 +00:00
"nodeType": "ElementaryTypeName",
2018-08-20 07:59:16 +00:00
"src": "967:7:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
2018-05-31 13:01:02 +00:00
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-08-20 07:59:16 +00:00
"id": 174,
2018-05-31 13:01:02 +00:00
"name": "to",
"nodeType": "VariableDeclaration",
2018-08-20 07:59:16 +00:00
"scope": 207,
"src": "987:10:4",
2018-05-31 13:01:02 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2018-08-20 07:59:16 +00:00
"id": 173,
2018-05-31 13:01:02 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-08-20 07:59:16 +00:00
"src": "987:7:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-08-20 07:59:16 +00:00
"id": 176,
2018-05-31 13:01:02 +00:00
"name": "data",
"nodeType": "VariableDeclaration",
2018-08-20 07:59:16 +00:00
"scope": 207,
"src": "999:10:4",
2018-05-31 13:01:02 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2018-08-20 07:59:16 +00:00
"id": 175,
2018-05-31 13:01:02 +00:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2018-08-20 07:59:16 +00:00
"src": "999:5:4",
2018-05-31 13:01:02 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
2018-08-20 07:59:16 +00:00
"src": "947:63:4"
2018-05-31 13:01:02 +00:00
},
"payable": false,
"returnParameters": {
2018-08-20 07:59:16 +00:00
"id": 178,
2018-05-31 13:01:02 +00:00
"nodeType": "ParameterList",
"parameters": [],
2018-08-20 07:59:16 +00:00
"src": "1030:0:4"
2018-05-31 13:01:02 +00:00
},
2018-08-20 07:59:16 +00:00
"scope": 208,
"src": "933:457:4",
2018-05-31 13:01:02 +00:00
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
2018-08-20 07:59:16 +00:00
"scope": 209,
"src": "322:1070:4"
2018-05-31 13:01:02 +00:00
}
],
2018-08-20 07:59:16 +00:00
"src": "0:1393:4"
2018-05-31 13:01:02 +00:00
},
"compiler": {
"name": "solc",
"version": "0.4.24+commit.e67f0147.Emscripten.clang"
},
"networks": {},
2018-06-29 11:23:01 +00:00
"schemaVersion": "2.0.0",
2018-08-20 07:59:16 +00:00
"updatedAt": "2018-08-20T07:44:41.084Z"
2018-05-31 13:01:02 +00:00
}