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

1149 lines
85 KiB
JSON
Raw Normal View History

2018-09-26 09:19:53 +00:00
{
"contractName": "BaseSafe",
"abi": [
{
"constant": false,
"inputs": [
{
"name": "owner",
"type": "address"
},
{
"name": "_threshold",
"type": "uint256"
}
],
"name": "addOwnerWithThreshold",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"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": [
{
"name": "_threshold",
"type": "uint256"
}
],
"name": "changeThreshold",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "SENTINEL_MODULES",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"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": "getModules",
"outputs": [
{
"name": "",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"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"
}
],
"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"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "owner",
"type": "address"
}
],
"name": "AddedOwner",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "owner",
"type": "address"
}
],
"name": "RemovedOwner",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "threshold",
"type": "uint256"
}
],
"name": "ChangedThreshold",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "module",
"type": "address"
}
],
"name": "EnabledModule",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "module",
"type": "address"
}
],
"name": "DisabledModule",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "newContract",
"type": "address"
}
],
"name": "ContractCreation",
"type": "event"
}
],
"bytecode": "0x608060405234801561001057600080fd5b506128c9806100206000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100c75780632f54bf6e14610114578063468721a71461016f578063610b592514610227578063694e80c31461026a57806385e332cd146102975780638cff6355146102ee578063a0e67e2b14610345578063b2494df3146103b1578063e009cfde1461041d578063e318b52b14610480578063e75235b814610503578063f8dc5dd91461052e575b005b3480156100d357600080fd5b50610112600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b005b34801561012057600080fd5b50610155600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a04565b604051808215151515815260200191505060405180910390f35b34801561017b57600080fd5b5061020d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561023357600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb1565b005b34801561027657600080fd5b5061029560048036038101908080359060200190929190505050610fee565b005b3480156102a357600080fd5b506102ac611239565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102fa57600080fd5b5061030361123e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035157600080fd5b5061035a611243565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561039d578082015181840152602081019050610382565b505050509050019250505060405180910390f35b3480156103bd57600080fd5b506103c66113de565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104095780820151818401526020810190506103ee565b505050509050019250505060405180910390f35b34801561042957600080fd5b5061047e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611681565b005b34801561048c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af9565b005b34801561050f57600080fd5b5061051861220c565b6040518082815260200191505060405180910390f35b34801561053a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612216565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156106b85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610819576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080
"deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100c75780632f54bf6e14610114578063468721a71461016f578063610b592514610227578063694e80c31461026a57806385e332cd146102975780638cff6355146102ee578063a0e67e2b14610345578063b2494df3146103b1578063e009cfde1461041d578063e318b52b14610480578063e75235b814610503578063f8dc5dd91461052e575b005b3480156100d357600080fd5b50610112600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061059b565b005b34801561012057600080fd5b50610155600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a04565b604051808215151515815260200191505060405180910390f35b34801561017b57600080fd5b5061020d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610a86565b604051808215151515815260200191505060405180910390f35b34801561023357600080fd5b50610268600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb1565b005b34801561027657600080fd5b5061029560048036038101908080359060200190929190505050610fee565b005b3480156102a357600080fd5b506102ac611239565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102fa57600080fd5b5061030361123e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035157600080fd5b5061035a611243565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561039d578082015181840152602081019050610382565b505050509050019250505060405180910390f35b3480156103bd57600080fd5b506103c66113de565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104095780820151818401526020810190506103ee565b505050509050019250505060405180910390f35b34801561042957600080fd5b5061047e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611681565b005b34801561048c57600080fd5b50610501600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af9565b005b34801561050f57600080fd5b5061051861220c565b6040518082815260200191505060405180910390f35b34801561053a57600080fd5b50610599600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612216565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610664576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156106b85750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320
"sourceMap": "371:680:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:680:2;;;;;;;",
"deployedSourceMap": "371:680:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2225:627:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5925:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5925:129:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:429:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:429:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:495;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1182:495:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;5357:441:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5357:441:6;;;;;;;;;;;;;;;;;;;;;;;;;;488:55:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;419:54:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:54:6;;;;;;;;;;;;;;;;;;;;;;;;;;;6136:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6136:458:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6136:458:6;;;;;;;;;;;;;;;;;3293:738:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3293:738:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3293:738:5;;;;;;;;;;;;;;;;;1938:511;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1938:511:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4345:823:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4345:823:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5804:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5804:115:6;;;;;;;;;;;;;;;;;;;;;;;3194:817;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3194:817:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2225:627;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2397:1:6;2388:5;:10;;;;:38;;;;;469:3;2402:24;;:5;:24;;;;2388:38;2380:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2536:1;2519:6;:13;2526:5;2519:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2511:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2595:6;:23;469:3;2595:23;;;;;;;;;;;;;;;;;;;;;;;;;2579:6;:13;2586:5;2579:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2654:5;2628:6;:23;469:3;2628:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2669:10;;:12;;;;;;;;;;;;;2696:17;2707:5;2696:17;;;;;;;;;;;;;;;;;;;;;;2794:10;2781:9;;:23;;2777:68;;;2818:27;2834:10;2818:15;:27::i;:::-;2777:68;2225:627;;:::o;5925:129::-;6002:4;6046:1;6029:6;:13;6036:5;6029:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;6022:25;;5925:129;;;:::o;2785:429:5:-;2917:12;3025:1;3002:7;:19;3010:10;3002:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2994:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3161:46;3169:2;3173:5;3180:4;3186:9;3197;3161:7;:46::i;:::-;3151:56;;2785:429;;;;;;:::o;1182:495::-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1348:1:5;1337:6;1329:20;;;;:59;;;;;539:3;1353:35;;1361:6;1353:35;;;;1329:59;1321:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1502:1;1483:7;:15;1491:6;1483:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1475:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1565:7;:25;539:3;1565:25;;;;;;;;;;;;;;;;;;;;;;;;;1547:7;:15;1555:6;1547:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1628:6;1600:7;:25;539:3;1600:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1649:21;1663:6;1649:21;;;;;;;;;;;;;;;;;;;;;;1182:495;:::o;5357:441:6:-;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:10:6;;5527;:24;;5519:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:1;5661:10;:15;;5653:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:10;5727:9;:22;;;;5764:27;5781:9;;5764:27;;;;;;;;;;;;;;;;;;5357:441;:::o;488:55:5:-;539:3;488:55;:::o;419:54:6:-;469:3;419:54;:::o;6136:458::-;6202:9;6227:22;6321:13;6348:20;6266:10;;6252:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6252:25:6;;;;6227:50;;6337:1;6321:17;;6371:6;:23;469:3;6371:23;;;;;;;;;;;;;;;;;;;;;;;;;6348:46;;6404:162;469:3;6410:31;;:12;:31;;;;6404:162;;;6472:12;6457:5;6463;6457:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6513:6;:20;6520:12;6513:20;;;;;;;;;;;;;;;;;;;;;;;;;6498:35;;6547:8;;;;;;;6404:162;;;6582:5;6575:12;;6136:458;;;;:::o;3293:738:5:-;3360:9;3419:19;3452:21;3652:2
"source": "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./ModuleManager.sol\";\nimport \"./OwnerManager.sol\";\n\n\n/// @title Base 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>\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract BaseSafe is ModuleManager, OwnerManager {\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 setupSafe(address[] _owners, uint256 _threshold, address to, bytes data)\n internal\n {\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",
"sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol",
"ast": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol",
"exportedSymbols": {
"BaseSafe": [
782
]
},
"id": 783,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 751,
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:23:2"
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol",
"file": "./Module.sol",
"id": 752,
"nodeType": "ImportDirective",
"scope": 783,
"sourceUnit": 936,
"src": "24:22:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol",
"file": "./ModuleManager.sol",
"id": 753,
"nodeType": "ImportDirective",
"scope": 783,
"sourceUnit": 1213,
"src": "47:29:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol",
"file": "./OwnerManager.sol",
"id": 754,
"nodeType": "ImportDirective",
"scope": 783,
"sourceUnit": 1653,
"src": "77:28:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 755,
"name": "ModuleManager",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1212,
"src": "392:13:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ModuleManager_$1212",
"typeString": "contract ModuleManager"
}
},
"id": 756,
"nodeType": "InheritanceSpecifier",
"src": "392:13:2"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 757,
"name": "OwnerManager",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1652,
"src": "407:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_OwnerManager_$1652",
"typeString": "contract OwnerManager"
}
},
"id": 758,
"nodeType": "InheritanceSpecifier",
"src": "407:12:2"
}
],
"contractDependencies": [
892,
1212,
1652,
1666,
1735
],
"contractKind": "contract",
"documentation": "@title Base 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>\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 782,
"linearizedBaseContracts": [
782,
1652,
1212,
892,
1666,
1735
],
"name": "BaseSafe",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 780,
"nodeType": "Block",
"src": "843:206:2",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 771,
"name": "_owners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 761,
"src": "865:7:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
{
"argumentTypes": null,
"id": 772,
"name": "_threshold",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 763,
"src": "874:10:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 770,
"name": "setupOwners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1341,
"src": "853:11:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (address[] memory,uint256)"
}
},
"id": 773,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "853:32:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 774,
"nodeType": "ExpressionStatement",
"src": "853:32:2"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 776,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 765,
"src": "1033:2:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 777,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 767,
"src": "1037:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 775,
"name": "setupModules",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 999,
"src": "1020:12:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (address,bytes memory)"
}
},
"id": 778,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1020:22:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 779,
"nodeType": "ExpressionStatement",
"src": "1020:22:2"
}
]
},
"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.",
"id": 781,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "setupSafe",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 768,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 761,
"name": "_owners",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "759:17:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 759,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "759:7:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 760,
"length": null,
"nodeType": "ArrayTypeName",
"src": "759:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 763,
"name": "_threshold",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "778:18:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 762,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "778:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 765,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "798:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 764,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "798:7:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 767,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "810:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 766,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "810:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "758:63:2"
},
"payable": false,
"returnParameters": {
"id": 769,
"nodeType": "ParameterList",
"parameters": [],
"src": "843:0:2"
},
"scope": 782,
"src": "740:309:2",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 783,
"src": "371:680:2"
}
],
"src": "0:1052:2"
},
"legacyAST": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/BaseSafe.sol",
"exportedSymbols": {
"BaseSafe": [
782
]
},
"id": 783,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 751,
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:23:2"
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/Module.sol",
"file": "./Module.sol",
"id": 752,
"nodeType": "ImportDirective",
"scope": 783,
"sourceUnit": 936,
"src": "24:22:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/ModuleManager.sol",
"file": "./ModuleManager.sol",
"id": 753,
"nodeType": "ImportDirective",
"scope": 783,
"sourceUnit": 1213,
"src": "47:29:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/base/OwnerManager.sol",
"file": "./OwnerManager.sol",
"id": 754,
"nodeType": "ImportDirective",
"scope": 783,
"sourceUnit": 1653,
"src": "77:28:2",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 755,
"name": "ModuleManager",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1212,
"src": "392:13:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ModuleManager_$1212",
"typeString": "contract ModuleManager"
}
},
"id": 756,
"nodeType": "InheritanceSpecifier",
"src": "392:13:2"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 757,
"name": "OwnerManager",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1652,
"src": "407:12:2",
"typeDescriptions": {
"typeIdentifier": "t_contract$_OwnerManager_$1652",
"typeString": "contract OwnerManager"
}
},
"id": 758,
"nodeType": "InheritanceSpecifier",
"src": "407:12:2"
}
],
"contractDependencies": [
892,
1212,
1652,
1666,
1735
],
"contractKind": "contract",
"documentation": "@title Base 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>\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 782,
"linearizedBaseContracts": [
782,
1652,
1212,
892,
1666,
1735
],
"name": "BaseSafe",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 780,
"nodeType": "Block",
"src": "843:206:2",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 771,
"name": "_owners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 761,
"src": "865:7:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
}
},
{
"argumentTypes": null,
"id": 772,
"name": "_threshold",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 763,
"src": "874:10:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[] memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 770,
"name": "setupOwners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1341,
"src": "853:11:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$",
"typeString": "function (address[] memory,uint256)"
}
},
"id": 773,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "853:32:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 774,
"nodeType": "ExpressionStatement",
"src": "853:32:2"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 776,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 765,
"src": "1033:2:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 777,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 767,
"src": "1037:4:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 775,
"name": "setupModules",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 999,
"src": "1020:12:2",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (address,bytes memory)"
}
},
"id": 778,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1020:22:2",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 779,
"nodeType": "ExpressionStatement",
"src": "1020:22:2"
}
]
},
"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.",
"id": 781,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "setupSafe",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 768,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 761,
"name": "_owners",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "759:17:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
"typeString": "address[]"
},
"typeName": {
"baseType": {
"id": 759,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "759:7:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 760,
"length": null,
"nodeType": "ArrayTypeName",
"src": "759:9:2",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
"typeString": "address[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 763,
"name": "_threshold",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "778:18:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 762,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "778:7:2",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 765,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "798:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 764,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "798:7:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 767,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 781,
"src": "810:10:2",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 766,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "810:5:2",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "758:63:2"
},
"payable": false,
"returnParameters": {
"id": 769,
"nodeType": "ParameterList",
"parameters": [],
"src": "843:0:2"
},
"scope": 782,
"src": "740:309:2",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 783,
"src": "371:680:2"
}
],
"src": "0:1052:2"
},
"compiler": {
"name": "solc",
"version": "0.4.24+commit.e67f0147.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.0",
"updatedAt": "2018-09-26T08:32:07.631Z"
}