Remove safe-contracts generated

This commit is contained in:
Germán Martínez 2019-04-29 14:27:17 +02:00
parent 7be68f95de
commit d6d9e7cb57
28 changed files with 0 additions and 148163 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,638 +0,0 @@
{
"contractName": "DelegateConstructorProxy",
"abi": [
{
"inputs": [
{
"name": "_masterCopy",
"type": "address"
},
{
"name": "initializer",
"type": "bytes"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
}
],
"bytecode": "0x608060405234801561001057600080fd5b506040516102463803806102468339810180604052604081101561003357600080fd5b8101908080519060200190929190805164010000000081111561005557600080fd5b8281019050602081018481111561006b57600080fd5b815185600182028301116401000000008211171561008857600080fd5b505092919050505081600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610117576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806102226024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101a45773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e60008214156101a0573d81fd5b5050505b5050606e806101b46000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a72305820fc8f0eaf85f81f88a3b472b935d06e74dd227676b2f73b615dce5020f4893fcd0029496e76616c6964206d617374657220636f707920616464726573732070726f7669646564",
"deployedBytecode": "0x608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a72305820fc8f0eaf85f81f88a3b472b935d06e74dd227676b2f73b615dce5020f4893fcd0029",
"sourceMap": "355:889:22:-;;;610:632;8:9:-1;5:2;;;30:1;27;20:12;5:2;610:632:22;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;610:632:22;;;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;610:632:22;;;;;;675:11;715:1:24;692:25;;:11;:25;;;;684:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;781:11;768:10;;:24;;;;;;;;;;;;;;;;;;622:177;742:1:22;721:11;:18;:22;717:519;;;886:42;882:1;876:8;872:57;1050:1;1047;1033:11;1027:18;1020:4;1007:11;1003:22;991:10;983:5;978:3;974:15;961:91;1086:4;1080:11;1131:14;1128:1;1123:3;1108:38;1178:1;1169:7;1166:14;1163:2;;;1195:14;1190:3;1183:27;1163:2;836:390;;;;610:632;;355:889;;;;;;",
"deployedSourceMap": "355:889:22:-;;;1078:42:24;1074:1;1068:8;1064:57;1153:14;1150:1;1147;1134:34;1248:1;1245;1229:14;1226:1;1214:10;1209:3;1196:54;1284:16;1281:1;1278;1263:38;1329:1;1320:7;1317:14;1314:2;;;1344:16;1341:1;1334:27;1314:2;1386:16;1383:1;1376:27",
"source": "pragma solidity ^0.5.0;\nimport \"./Proxy.sol\";\n\n\n/// @title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n/// @author Stefan George - <stefan@gnosis.pm>\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract DelegateConstructorProxy is Proxy {\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n /// @param initializer Data used for a delegate call to initialize the contract.\n constructor(address _masterCopy, bytes memory initializer) Proxy(_masterCopy)\n public\n {\n if (initializer.length > 0) {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas, 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize)\n if eq(success, 0) { revert(ptr, returndatasize) }\n }\n }\n }\n}\n",
"sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol",
"ast": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol",
"exportedSymbols": {
"DelegateConstructorProxy": [
3035
]
},
"id": 3036,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3013,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:22"
},
{
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol",
"file": "./Proxy.sol",
"id": 3014,
"nodeType": "ImportDirective",
"scope": 3036,
"sourceUnit": 3122,
"src": "24:21:22",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3015,
"name": "Proxy",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3121,
"src": "392:5:22",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$3121",
"typeString": "contract Proxy"
}
},
"id": 3016,
"nodeType": "InheritanceSpecifier",
"src": "392:5:22"
}
],
"contractDependencies": [
3121
],
"contractKind": "contract",
"documentation": "@title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n @author Stefan George - <stefan@gnosis.pm>\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 3035,
"linearizedBaseContracts": [
3035,
3121
],
"name": "DelegateConstructorProxy",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 3033,
"nodeType": "Block",
"src": "707:535:22",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3029,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3026,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3020,
"src": "721:11:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3027,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "721:18:22",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3028,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "742:1:22",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "721:22:22",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3032,
"nodeType": "IfStatement",
"src": "717:519:22",
"trueBody": {
"id": 3031,
"nodeType": "Block",
"src": "745:491:22",
"statements": [
{
"externalReferences": [
{
"initializer": {
"declaration": 3020,
"isOffset": false,
"isSlot": false,
"src": "1033:11:22",
"valueSize": 1
}
},
{
"initializer": {
"declaration": 3020,
"isOffset": false,
"isSlot": false,
"src": "1007:11:22",
"valueSize": 1
}
}
],
"id": 3030,
"nodeType": "InlineAssembly",
"operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas(), 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n if eq(success, 0)\n {\n revert(ptr, returndatasize())\n }\n}",
"src": "827:409:22"
}
]
}
}
]
},
"documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.",
"id": 3034,
"implemented": true,
"kind": "constructor",
"modifiers": [
{
"arguments": [
{
"argumentTypes": null,
"id": 3023,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3018,
"src": "675:11:22",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"id": 3024,
"modifierName": {
"argumentTypes": null,
"id": 3022,
"name": "Proxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3121,
"src": "669:5:22",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$",
"typeString": "type(contract Proxy)"
}
},
"nodeType": "ModifierInvocation",
"src": "669:18:22"
}
],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3021,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3018,
"name": "_masterCopy",
"nodeType": "VariableDeclaration",
"scope": 3034,
"src": "622:19:22",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3017,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "622:7:22",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3020,
"name": "initializer",
"nodeType": "VariableDeclaration",
"scope": 3034,
"src": "643:24:22",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3019,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "643:5:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "621:47:22"
},
"returnParameters": {
"id": 3025,
"nodeType": "ParameterList",
"parameters": [],
"src": "707:0:22"
},
"scope": 3035,
"src": "610:632:22",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3036,
"src": "355:889:22"
}
],
"src": "0:1245:22"
},
"legacyAST": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/DelegateConstructorProxy.sol",
"exportedSymbols": {
"DelegateConstructorProxy": [
3035
]
},
"id": 3036,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3013,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:22"
},
{
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol",
"file": "./Proxy.sol",
"id": 3014,
"nodeType": "ImportDirective",
"scope": 3036,
"sourceUnit": 3122,
"src": "24:21:22",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3015,
"name": "Proxy",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3121,
"src": "392:5:22",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$3121",
"typeString": "contract Proxy"
}
},
"id": 3016,
"nodeType": "InheritanceSpecifier",
"src": "392:5:22"
}
],
"contractDependencies": [
3121
],
"contractKind": "contract",
"documentation": "@title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n @author Stefan George - <stefan@gnosis.pm>\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 3035,
"linearizedBaseContracts": [
3035,
3121
],
"name": "DelegateConstructorProxy",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 3033,
"nodeType": "Block",
"src": "707:535:22",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3029,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3026,
"name": "initializer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3020,
"src": "721:11:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3027,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "721:18:22",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3028,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "742:1:22",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "721:22:22",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 3032,
"nodeType": "IfStatement",
"src": "717:519:22",
"trueBody": {
"id": 3031,
"nodeType": "Block",
"src": "745:491:22",
"statements": [
{
"externalReferences": [
{
"initializer": {
"declaration": 3020,
"isOffset": false,
"isSlot": false,
"src": "1033:11:22",
"valueSize": 1
}
},
{
"initializer": {
"declaration": 3020,
"isOffset": false,
"isSlot": false,
"src": "1007:11:22",
"valueSize": 1
}
}
],
"id": 3030,
"nodeType": "InlineAssembly",
"operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas(), 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n if eq(success, 0)\n {\n revert(ptr, returndatasize())\n }\n}",
"src": "827:409:22"
}
]
}
}
]
},
"documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.",
"id": 3034,
"implemented": true,
"kind": "constructor",
"modifiers": [
{
"arguments": [
{
"argumentTypes": null,
"id": 3023,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3018,
"src": "675:11:22",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"id": 3024,
"modifierName": {
"argumentTypes": null,
"id": 3022,
"name": "Proxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3121,
"src": "669:5:22",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Proxy_$3121_$",
"typeString": "type(contract Proxy)"
}
},
"nodeType": "ModifierInvocation",
"src": "669:18:22"
}
],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3021,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3018,
"name": "_masterCopy",
"nodeType": "VariableDeclaration",
"scope": 3034,
"src": "622:19:22",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3017,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "622:7:22",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 3020,
"name": "initializer",
"nodeType": "VariableDeclaration",
"scope": 3034,
"src": "643:24:22",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 3019,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "643:5:22",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "621:47:22"
},
"returnParameters": {
"id": 3025,
"nodeType": "ParameterList",
"parameters": [],
"src": "707:0:22"
},
"scope": 3035,
"src": "610:632:22",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3036,
"src": "355:889:22"
}
],
"src": "0:1245:22"
},
"compiler": {
"name": "solc",
"version": "0.5.7+commit.6da8b019.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.2",
"updatedAt": "2019-04-12T12:46:18.645Z"
}

View File

@ -1,153 +0,0 @@
{
"contractName": "Enum",
"abi": [],
"bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3fe6080604052600080fdfea165627a7a72305820c1930931e85c9dde8b501628eee3c514e015dd5669b3fe14a92e44ba2bb010910029",
"deployedBytecode": "0x6080604052600080fdfea165627a7a72305820c1930931e85c9dde8b501628eee3c514e015dd5669b3fe14a92e44ba2bb010910029",
"sourceMap": "115:95:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;115:95:7;;;;;;;",
"deployedSourceMap": "115:95:7:-;;;;;",
"source": "pragma solidity ^0.5.0;\n\n\n/// @title Enum - Collection of enums\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract Enum {\n enum Operation {\n Call,\n DelegateCall,\n Create\n }\n}\n",
"sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol",
"ast": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol",
"exportedSymbols": {
"Enum": [
1803
]
},
"id": 1804,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1798,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:7"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@title Enum - Collection of enums\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 1803,
"linearizedBaseContracts": [
1803
],
"name": "Enum",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "Enum.Operation",
"id": 1802,
"members": [
{
"id": 1799,
"name": "Call",
"nodeType": "EnumValue",
"src": "160:4:7"
},
{
"id": 1800,
"name": "DelegateCall",
"nodeType": "EnumValue",
"src": "174:12:7"
},
{
"id": 1801,
"name": "Create",
"nodeType": "EnumValue",
"src": "196:6:7"
}
],
"name": "Operation",
"nodeType": "EnumDefinition",
"src": "135:73:7"
}
],
"scope": 1804,
"src": "115:95:7"
}
],
"src": "0:211:7"
},
"legacyAST": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/Enum.sol",
"exportedSymbols": {
"Enum": [
1803
]
},
"id": 1804,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1798,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:7"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@title Enum - Collection of enums\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 1803,
"linearizedBaseContracts": [
1803
],
"name": "Enum",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "Enum.Operation",
"id": 1802,
"members": [
{
"id": 1799,
"name": "Call",
"nodeType": "EnumValue",
"src": "160:4:7"
},
{
"id": 1800,
"name": "DelegateCall",
"nodeType": "EnumValue",
"src": "174:12:7"
},
{
"id": 1801,
"name": "Create",
"nodeType": "EnumValue",
"src": "196:6:7"
}
],
"name": "Operation",
"nodeType": "EnumDefinition",
"src": "135:73:7"
}
],
"scope": 1804,
"src": "115:95:7"
}
],
"src": "0:211:7"
},
"compiler": {
"name": "solc",
"version": "0.5.7+commit.6da8b019.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.2",
"updatedAt": "2019-04-12T12:46:18.632Z"
}

View File

@ -1,169 +0,0 @@
{
"contractName": "EtherPaymentFallback",
"abi": [
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
}
],
"bytecode": "0x6080604052348015600f57600080fd5b50603280601d6000396000f3fe608060405200fea165627a7a723058207bae2a570814c751f55fdecb7fd4413b775bd78e3998b7dad48953a07efc0fd00029",
"deployedBytecode": "0x608060405200fea165627a7a723058207bae2a570814c751f55fdecb7fd4413b775bd78e3998b7dad48953a07efc0fd00029",
"sourceMap": "167:155:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:155:8;;;;;;;",
"deployedSourceMap": "167:155:8:-;;;",
"source": "pragma solidity ^0.5.0;\n\n\n/// @title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract EtherPaymentFallback {\n\n /// @dev Fallback function accepts Ether transactions.\n function ()\n external\n payable\n {\n\n }\n}\n",
"sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol",
"ast": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol",
"exportedSymbols": {
"EtherPaymentFallback": [
1810
]
},
"id": 1811,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1805,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:8"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 1810,
"linearizedBaseContracts": [
1810
],
"name": "EtherPaymentFallback",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 1808,
"nodeType": "Block",
"src": "312:8:8",
"statements": []
},
"documentation": "@dev Fallback function accepts Ether transactions.",
"id": 1809,
"implemented": true,
"kind": "fallback",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1806,
"nodeType": "ParameterList",
"parameters": [],
"src": "272:2:8"
},
"returnParameters": {
"id": 1807,
"nodeType": "ParameterList",
"parameters": [],
"src": "312:0:8"
},
"scope": 1810,
"src": "263:57:8",
"stateMutability": "payable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 1811,
"src": "167:155:8"
}
],
"src": "0:323:8"
},
"legacyAST": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/EtherPaymentFallback.sol",
"exportedSymbols": {
"EtherPaymentFallback": [
1810
]
},
"id": 1811,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1805,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:8"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@title EtherPaymentFallback - A contract that has a fallback to accept ether payments\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 1810,
"linearizedBaseContracts": [
1810
],
"name": "EtherPaymentFallback",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 1808,
"nodeType": "Block",
"src": "312:8:8",
"statements": []
},
"documentation": "@dev Fallback function accepts Ether transactions.",
"id": 1809,
"implemented": true,
"kind": "fallback",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1806,
"nodeType": "ParameterList",
"parameters": [],
"src": "272:2:8"
},
"returnParameters": {
"id": 1807,
"nodeType": "ParameterList",
"parameters": [],
"src": "312:0:8"
},
"scope": 1810,
"src": "263:57:8",
"stateMutability": "payable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 1811,
"src": "167:155:8"
}
],
"src": "0:323:8"
},
"compiler": {
"name": "solc",
"version": "0.5.7+commit.6da8b019.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.2",
"updatedAt": "2019-04-12T12:46:18.632Z"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,423 +0,0 @@
{
"contractName": "ISignatureValidator",
"abi": [
{
"constant": false,
"inputs": [
{
"name": "_data",
"type": "bytes"
},
{
"name": "_signature",
"type": "bytes"
}
],
"name": "isValidSignature",
"outputs": [
{
"name": "",
"type": "bytes4"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"sourceMap": "",
"deployedSourceMap": "",
"source": "pragma solidity ^0.5.0;\n\ncontract ISignatureValidator {\n // bytes4(keccak256(\"isValidSignature(bytes,bytes)\")\n bytes4 constant internal EIP1271_MAGIC_VALUE = 0x20c13b0b;\n\n /**\n * @dev Should return whether the signature provided is valid for the provided data\n * @param _data Arbitrary length data signed on the behalf of address(this)\n * @param _signature Signature byte array associated with _data\n *\n * MUST return the bytes4 magic value 0x20c13b0b when function passes.\n * MUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\n * MUST allow external calls\n */ \n function isValidSignature(\n bytes calldata _data, \n bytes calldata _signature)\n external \n returns (bytes4);\n}",
"sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol",
"ast": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol",
"exportedSymbols": {
"ISignatureValidator": [
2080
]
},
"id": 2081,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2067,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:14"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 2080,
"linearizedBaseContracts": [
2080
],
"name": "ISignatureValidator",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
"id": 2070,
"name": "EIP1271_MAGIC_VALUE",
"nodeType": "VariableDeclaration",
"scope": 2080,
"src": "117:57:14",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 2068,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "117:6:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": {
"argumentTypes": null,
"hexValue": "30783230633133623062",
"id": 2069,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "164:10:14",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_549534475_by_1",
"typeString": "int_const 549534475"
},
"value": "0x20c13b0b"
},
"visibility": "internal"
},
{
"body": null,
"documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n * MUST return the bytes4 magic value 0x20c13b0b when function passes.\nMUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\nMUST allow external calls",
"id": 2079,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "isValidSignature",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2075,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2072,
"name": "_data",
"nodeType": "VariableDeclaration",
"scope": 2079,
"src": "669:20:14",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2071,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "669:5:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2074,
"name": "_signature",
"nodeType": "VariableDeclaration",
"scope": 2079,
"src": "700:25:14",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2073,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "700:5:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "659:67:14"
},
"returnParameters": {
"id": 2078,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2077,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 2079,
"src": "762:6:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 2076,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "762:6:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "761:8:14"
},
"scope": 2080,
"src": "634:136:14",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 2081,
"src": "25:747:14"
}
],
"src": "0:772:14"
},
"legacyAST": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/interfaces/ISignatureValidator.sol",
"exportedSymbols": {
"ISignatureValidator": [
2080
]
},
"id": 2081,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2067,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:14"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 2080,
"linearizedBaseContracts": [
2080
],
"name": "ISignatureValidator",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
"id": 2070,
"name": "EIP1271_MAGIC_VALUE",
"nodeType": "VariableDeclaration",
"scope": 2080,
"src": "117:57:14",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 2068,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "117:6:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": {
"argumentTypes": null,
"hexValue": "30783230633133623062",
"id": 2069,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "164:10:14",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_549534475_by_1",
"typeString": "int_const 549534475"
},
"value": "0x20c13b0b"
},
"visibility": "internal"
},
{
"body": null,
"documentation": "@dev Should return whether the signature provided is valid for the provided data\n@param _data Arbitrary length data signed on the behalf of address(this)\n@param _signature Signature byte array associated with _data\n * MUST return the bytes4 magic value 0x20c13b0b when function passes.\nMUST NOT modify state (using STATICCALL for solc < 0.5, view modifier for solc > 0.5)\nMUST allow external calls",
"id": 2079,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "isValidSignature",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2075,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2072,
"name": "_data",
"nodeType": "VariableDeclaration",
"scope": 2079,
"src": "669:20:14",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2071,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "669:5:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2074,
"name": "_signature",
"nodeType": "VariableDeclaration",
"scope": 2079,
"src": "700:25:14",
"stateVariable": false,
"storageLocation": "calldata",
"typeDescriptions": {
"typeIdentifier": "t_bytes_calldata_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2073,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "700:5:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "659:67:14"
},
"returnParameters": {
"id": 2078,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2077,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 2079,
"src": "762:6:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 2076,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "762:6:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "761:8:14"
},
"scope": 2080,
"src": "634:136:14",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 2081,
"src": "25:747:14"
}
],
"src": "0:772:14"
},
"compiler": {
"name": "solc",
"version": "0.5.7+commit.6da8b019.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.2",
"updatedAt": "2019-04-12T12:46:18.635Z"
}

View File

@ -1,796 +0,0 @@
{
"contractName": "MasterCopy",
"abi": [
{
"constant": false,
"inputs": [
{
"name": "_masterCopy",
"type": "address"
}
],
"name": "changeMasterCopy",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b5061023d806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80637de7edef14610030575b600080fd5b6100726004803603602081101561004657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610074565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806101e6602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561017e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806101c26024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374a165627a7a72305820f0bc2727e8f495f31c4f081c9285cc638d0c77bfa20d15cd34dc551d4a1082e10029",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80637de7edef14610030575b600080fd5b6100726004803603602081101561004657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610074565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806101e6602c913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561017e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806101c26024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe496e76616c6964206d617374657220636f707920616464726573732070726f76696465644d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374a165627a7a72305820f0bc2727e8f495f31c4f081c9285cc638d0c77bfa20d15cd34dc551d4a1082e10029",
"sourceMap": "203:682:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:682:9;;;;;;;",
"deployedSourceMap": "203:682:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:682:9;;;;;;;;;;;;;;;;;;;626:257;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;626:257:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;;244:4:11;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;799:1:9;776:25;;:11;:25;;;;768:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;865:11;852:10;;:24;;;;;;;;;;;;;;;;;;626:257;:::o",
"source": "pragma solidity ^0.5.0;\nimport \"./SelfAuthorized.sol\";\n\n\n/// @title MasterCopy - Base for master copy contracts (should always be first super contract)\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract MasterCopy is SelfAuthorized {\n // masterCopy always needs to be first declared variable, to ensure that it is at the same location as in the Proxy contract.\n // It should also always be ensured that the address is stored alone (uses a full word)\n address masterCopy;\n\n /// @dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n /// @param _masterCopy New contract address.\n function changeMasterCopy(address _masterCopy)\n public\n authorized\n {\n // Master copy address cannot be null.\n require(_masterCopy != address(0), \"Invalid master copy address provided\");\n masterCopy = _masterCopy;\n }\n}\n",
"sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol",
"ast": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol",
"exportedSymbols": {
"MasterCopy": [
1839
]
},
"id": 1840,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1812,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:9"
},
{
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol",
"file": "./SelfAuthorized.sol",
"id": 1813,
"nodeType": "ImportDirective",
"scope": 1840,
"sourceUnit": 1882,
"src": "24:30:9",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1814,
"name": "SelfAuthorized",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1881,
"src": "226:14:9",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SelfAuthorized_$1881",
"typeString": "contract SelfAuthorized"
}
},
"id": 1815,
"nodeType": "InheritanceSpecifier",
"src": "226:14:9"
}
],
"contractDependencies": [
1881
],
"contractKind": "contract",
"documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 1839,
"linearizedBaseContracts": [
1839,
1881
],
"name": "MasterCopy",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 1817,
"name": "masterCopy",
"nodeType": "VariableDeclaration",
"scope": 1839,
"src": "465:18:9",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1816,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "465:7:9",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 1837,
"nodeType": "Block",
"src": "711:172:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 1829,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 1825,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1819,
"src": "776:11:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 1827,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "799:1:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 1826,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "791:7:9",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 1828,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "791:10:9",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "776:25:9",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564",
"id": 1830,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "803:38:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87",
"typeString": "literal_string \"Invalid master copy address provided\""
},
"value": "Invalid master copy address provided"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87",
"typeString": "literal_string \"Invalid master copy address provided\""
}
],
"id": 1824,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4369,
4370
],
"referencedDeclaration": 4370,
"src": "768:7:9",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 1831,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "768:74:9",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1832,
"nodeType": "ExpressionStatement",
"src": "768:74:9"
},
{
"expression": {
"argumentTypes": null,
"id": 1835,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1833,
"name": "masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "852:10:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1834,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1819,
"src": "865:11:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "852:24:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 1836,
"nodeType": "ExpressionStatement",
"src": "852:24:9"
}
]
},
"documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.",
"id": 1838,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 1822,
"modifierName": {
"argumentTypes": null,
"id": 1821,
"name": "authorized",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1880,
"src": "696:10:9",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "696:10:9"
}
],
"name": "changeMasterCopy",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1820,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1819,
"name": "_masterCopy",
"nodeType": "VariableDeclaration",
"scope": 1838,
"src": "652:19:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1818,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "652:7:9",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "651:21:9"
},
"returnParameters": {
"id": 1823,
"nodeType": "ParameterList",
"parameters": [],
"src": "711:0:9"
},
"scope": 1839,
"src": "626:257:9",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 1840,
"src": "203:682:9"
}
],
"src": "0:886:9"
},
"legacyAST": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/MasterCopy.sol",
"exportedSymbols": {
"MasterCopy": [
1839
]
},
"id": 1840,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1812,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:9"
},
{
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol",
"file": "./SelfAuthorized.sol",
"id": 1813,
"nodeType": "ImportDirective",
"scope": 1840,
"sourceUnit": 1882,
"src": "24:30:9",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1814,
"name": "SelfAuthorized",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1881,
"src": "226:14:9",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SelfAuthorized_$1881",
"typeString": "contract SelfAuthorized"
}
},
"id": 1815,
"nodeType": "InheritanceSpecifier",
"src": "226:14:9"
}
],
"contractDependencies": [
1881
],
"contractKind": "contract",
"documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 1839,
"linearizedBaseContracts": [
1839,
1881
],
"name": "MasterCopy",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 1817,
"name": "masterCopy",
"nodeType": "VariableDeclaration",
"scope": 1839,
"src": "465:18:9",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1816,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "465:7:9",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 1837,
"nodeType": "Block",
"src": "711:172:9",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 1829,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 1825,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1819,
"src": "776:11:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 1827,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "799:1:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 1826,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "791:7:9",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 1828,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "791:10:9",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "776:25:9",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564",
"id": 1830,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "803:38:9",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87",
"typeString": "literal_string \"Invalid master copy address provided\""
},
"value": "Invalid master copy address provided"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87",
"typeString": "literal_string \"Invalid master copy address provided\""
}
],
"id": 1824,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4369,
4370
],
"referencedDeclaration": 4370,
"src": "768:7:9",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 1831,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "768:74:9",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1832,
"nodeType": "ExpressionStatement",
"src": "768:74:9"
},
{
"expression": {
"argumentTypes": null,
"id": 1835,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1833,
"name": "masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1817,
"src": "852:10:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1834,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1819,
"src": "865:11:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "852:24:9",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 1836,
"nodeType": "ExpressionStatement",
"src": "852:24:9"
}
]
},
"documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.",
"id": 1838,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 1822,
"modifierName": {
"argumentTypes": null,
"id": 1821,
"name": "authorized",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1880,
"src": "696:10:9",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "696:10:9"
}
],
"name": "changeMasterCopy",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1820,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1819,
"name": "_masterCopy",
"nodeType": "VariableDeclaration",
"scope": 1838,
"src": "652:19:9",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1818,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "652:7:9",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "651:21:9"
},
"returnParameters": {
"id": 1823,
"nodeType": "ParameterList",
"parameters": [],
"src": "711:0:9"
},
"scope": 1839,
"src": "626:257:9",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 1840,
"src": "203:682:9"
}
],
"src": "0:886:9"
},
"compiler": {
"name": "solc",
"version": "0.5.7+commit.6da8b019.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.2",
"updatedAt": "2019-04-12T12:46:18.632Z"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,383 +0,0 @@
{
"contractName": "MultiSend",
"abi": [
{
"constant": false,
"inputs": [
{
"name": "transactions",
"type": "bytes"
}
],
"name": "multiSend",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b506101a5806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80638d80ff0a14610030575b600080fd5b6100e96004803603602081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100eb565b005b805160205b81811015610174578083015160208201840151604083018501516080840186015160a0850187016000856000811461012f576001811461013f5761014a565b6000808585888a5af1915061014a565b6000808585895af491505b50600081141561015957600080fd5b602080601f8501040260a001870196505050505050506100f0565b50505056fea165627a7a72305820b7d1a78429d94e0731621b2828b99b335f5d5ffe3788d74ce661365fe34a8d530029",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c80638d80ff0a14610030575b600080fd5b6100e96004803603602081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506100eb565b005b805160205b81811015610174578083015160208201840151604083018501516080840186015160a0850187016000856000811461012f576001811461013f5761014a565b6000808585888a5af1915061014a565b6000808585895af491505b50600081141561015957600080fd5b602080601f8501040260a001870196505050505050506100f0565b50505056fea165627a7a72305820b7d1a78429d94e0731621b2828b99b335f5d5ffe3788d74ce661365fe34a8d530029",
"sourceMap": "253:1431:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;253:1431:16;;;;;;;",
"deployedSourceMap": "253:1431:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;253:1431:16;;;;;;;;;;;;;;;;;;;695:987;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;695:987:16;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;695:987:16;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;695:987:16;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;695:987:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;695:987:16;;;;;;;;;;;;;;;:::i;:::-;;;877:12;871:19;912:4;929:737;943:6;940:1;937:13;929:737;;;1014:1;1000:12;996:20;990:27;1075:4;1072:1;1068:12;1054;1050:31;1044:38;1143:4;1140:1;1136:12;1122;1118:31;1112:38;1216:4;1213:1;1209:12;1195;1191:31;1185:38;1277:4;1274:1;1270:12;1256;1252:31;1315:1;1340:9;1372:1;1367:66;;;;1455:1;1450:67;;;;1333:184;;1367:66;1429:1;1426;1414:10;1408:4;1401:5;1397:2;1392:3;1387:44;1376:55;;1367:66;;1450:67;1513:1;1510;1498:10;1492:4;1488:2;1483:3;1470:45;1459:56;;1333:184;;1549:1;1540:7;1537:14;1534:2;;;1564:1;1561;1554:12;1534:2;1645:4;1638;1631;1619:10;1615:21;1611:32;1607:43;1601:4;1597:54;1594:1;1590:62;1585:67;;955:711;;;;;;929:737;;;843:833;;;:::o",
"source": "pragma solidity ^0.5.0;\n\n\n/// @title Multi Send - Allows to batch multiple transactions into one.\n/// @author Nick Dodson - <nick.dodson@consensys.net>\n/// @author Gonçalo Sá - <goncalo.sa@consensys.net>\n/// @author Stefan George - <stefan@gnosis.pm>\ncontract MultiSend {\n\n /// @dev Sends multiple transactions and reverts all if one fails.\n /// @param transactions Encoded transactions. Each transaction is encoded as a \n /// tuple(operation,address,uint256,bytes), where operation \n /// can be 0 for a call or 1 for a delegatecall. The bytes \n /// of all encoded transactions are concatenated to form the input.\n function multiSend(bytes memory transactions)\n public\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let length := mload(transactions)\n let i := 0x20\n for { } lt(i, length) { } {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation \n case 0 { success := call(gas, to, value, data, dataLength, 0, 0) }\n case 1 { success := delegatecall(gas, to, data, dataLength, 0, 0) }\n if eq(success, 0) { revert(0, 0) }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n }\n }\n}\n",
"sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol",
"ast": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol",
"exportedSymbols": {
"MultiSend": [
2135
]
},
"id": 2136,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2127,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:16"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@title Multi Send - Allows to batch multiple transactions into one.\n @author Nick Dodson - <nick.dodson@consensys.net>\n @author Gonçalo Sá - <goncalo.sa@consensys.net>\n @author Stefan George - <stefan@gnosis.pm>",
"fullyImplemented": true,
"id": 2135,
"linearizedBaseContracts": [
2135
],
"name": "MultiSend",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 2133,
"nodeType": "Block",
"src": "760:922:16",
"statements": [
{
"externalReferences": [
{
"transactions": {
"declaration": 2129,
"isOffset": false,
"isSlot": false,
"src": "877:12:16",
"valueSize": 1
}
},
{
"transactions": {
"declaration": 2129,
"isOffset": false,
"isSlot": false,
"src": "1000:12:16",
"valueSize": 1
}
},
{
"transactions": {
"declaration": 2129,
"isOffset": false,
"isSlot": false,
"src": "1054:12:16",
"valueSize": 1
}
},
{
"transactions": {
"declaration": 2129,
"isOffset": false,
"isSlot": false,
"src": "1195:12:16",
"valueSize": 1
}
},
{
"transactions": {
"declaration": 2129,
"isOffset": false,
"isSlot": false,
"src": "1122:12:16",
"valueSize": 1
}
},
{
"transactions": {
"declaration": 2129,
"isOffset": false,
"isSlot": false,
"src": "1256:12:16",
"valueSize": 1
}
}
],
"id": 2132,
"nodeType": "InlineAssembly",
"operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation\n case 0 {\n success := call(gas(), to, value, data, dataLength, 0, 0)\n }\n case 1 {\n success := delegatecall(gas(), to, data, dataLength, 0, 0)\n }\n if eq(success, 0)\n {\n revert(0, 0)\n }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n}",
"src": "834:848:16"
}
]
},
"documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions. Each transaction is encoded as a \n tuple(operation,address,uint256,bytes), where operation \n can be 0 for a call or 1 for a delegatecall. The bytes \n of all encoded transactions are concatenated to form the input.",
"id": 2134,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "multiSend",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2130,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2129,
"name": "transactions",
"nodeType": "VariableDeclaration",
"scope": 2134,
"src": "714:25:16",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2128,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "714:5:16",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "713:27:16"
},
"returnParameters": {
"id": 2131,
"nodeType": "ParameterList",
"parameters": [],
"src": "760:0:16"
},
"scope": 2135,
"src": "695:987:16",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 2136,
"src": "253:1431:16"
}
],
"src": "0:1685:16"
},
"legacyAST": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol",
"exportedSymbols": {
"MultiSend": [
2135
]
},
"id": 2136,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2127,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:16"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@title Multi Send - Allows to batch multiple transactions into one.\n @author Nick Dodson - <nick.dodson@consensys.net>\n @author Gonçalo Sá - <goncalo.sa@consensys.net>\n @author Stefan George - <stefan@gnosis.pm>",
"fullyImplemented": true,
"id": 2135,
"linearizedBaseContracts": [
2135
],
"name": "MultiSend",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 2133,
"nodeType": "Block",
"src": "760:922:16",
"statements": [
{
"externalReferences": [
{
"transactions": {
"declaration": 2129,
"isOffset": false,
"isSlot": false,
"src": "877:12:16",
"valueSize": 1
}
},
{
"transactions": {
"declaration": 2129,
"isOffset": false,
"isSlot": false,
"src": "1000:12:16",
"valueSize": 1
}
},
{
"transactions": {
"declaration": 2129,
"isOffset": false,
"isSlot": false,
"src": "1054:12:16",
"valueSize": 1
}
},
{
"transactions": {
"declaration": 2129,
"isOffset": false,
"isSlot": false,
"src": "1195:12:16",
"valueSize": 1
}
},
{
"transactions": {
"declaration": 2129,
"isOffset": false,
"isSlot": false,
"src": "1122:12:16",
"valueSize": 1
}
},
{
"transactions": {
"declaration": 2129,
"isOffset": false,
"isSlot": false,
"src": "1256:12:16",
"valueSize": 1
}
}
],
"id": 2132,
"nodeType": "InlineAssembly",
"operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation\n case 0 {\n success := call(gas(), to, value, data, dataLength, 0, 0)\n }\n case 1 {\n success := delegatecall(gas(), to, data, dataLength, 0, 0)\n }\n if eq(success, 0)\n {\n revert(0, 0)\n }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n}",
"src": "834:848:16"
}
]
},
"documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions. Each transaction is encoded as a \n tuple(operation,address,uint256,bytes), where operation \n can be 0 for a call or 1 for a delegatecall. The bytes \n of all encoded transactions are concatenated to form the input.",
"id": 2134,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "multiSend",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2130,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2129,
"name": "transactions",
"nodeType": "VariableDeclaration",
"scope": 2134,
"src": "714:25:16",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 2128,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "714:5:16",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "713:27:16"
},
"returnParameters": {
"id": 2131,
"nodeType": "ParameterList",
"parameters": [],
"src": "760:0:16"
},
"scope": 2135,
"src": "695:987:16",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 2136,
"src": "253:1431:16"
}
],
"src": "0:1685:16"
},
"compiler": {
"name": "solc",
"version": "0.5.7+commit.6da8b019.Emscripten.clang"
},
"networks": {
"1": {
"links": {},
"events": {},
"address": "0xD4B7B161E4779629C2717385114Bf78D612aEa72",
"updated_at": 1555073253729
},
"4": {
"links": {},
"events": {},
"address": "0xD4B7B161E4779629C2717385114Bf78D612aEa72",
"updated_at": 1555073253778
},
"5": {
"links": {},
"events": {},
"address": "0xD4B7B161E4779629C2717385114Bf78D612aEa72",
"updated_at": 1555073253860
},
"42": {
"links": {},
"events": {},
"address": "0xD4B7B161E4779629C2717385114Bf78D612aEa72",
"updated_at": 1555073253821
}
},
"schemaVersion": "2.0.2",
"updatedAt": "2019-04-12T12:46:18.635Z"
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -1,772 +0,0 @@
{
"contractName": "Proxy",
"abi": [
{
"inputs": [
{
"name": "_masterCopy",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
}
],
"bytecode": "0x608060405234801561001057600080fd5b506040516020806101a88339810180604052602081101561003057600080fd5b8101908080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156100c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806101846024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050606e806101166000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a72305820b50d71a78d6afd5d87e78b6ea8f9a8f22592207124dc9eccf6bd886665e115010029496e76616c6964206d617374657220636f707920616464726573732070726f7669646564",
"deployedBytecode": "0x608060405273ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415603d573d6000fd5b3d6000f3fea165627a7a72305820b50d71a78d6afd5d87e78b6ea8f9a8f22592207124dc9eccf6bd886665e115010029",
"sourceMap": "190:1231:24:-;;;622:177;8:9:-1;5:2;;;30:1;27;20:12;5:2;622:177:24;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;622:177:24;;;;;;;;;;;;;;;;715:1;692:25;;:11;:25;;;;684:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;781:11;768:10;;:24;;;;;;;;;;;;;;;;;;622:177;190:1231;;;;;;",
"deployedSourceMap": "190:1231:24:-;;;1078:42;1074:1;1068:8;1064:57;1153:14;1150:1;1147;1134:34;1248:1;1245;1229:14;1226:1;1214:10;1209:3;1196:54;1284:16;1281:1;1278;1263:38;1329:1;1320:7;1317:14;1314:2;;;1344:16;1341:1;1334:27;1314:2;1386:16;1383:1;1376:27",
"source": "pragma solidity ^0.5.0;\n\n\n/// @title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n/// @author Stefan George - <stefan@gnosis.pm>\ncontract Proxy {\n\n // masterCopy always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.\n // To reduce deployment costs this variable is internal and needs to be retrieved via `getStorageAt`\n address internal masterCopy;\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n constructor(address _masterCopy)\n public\n {\n require(_masterCopy != address(0), \"Invalid master copy address provided\");\n masterCopy = _masterCopy;\n }\n\n /// @dev Fallback function forwards all transactions and returns all received return data.\n function ()\n external\n payable\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas, masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0) { revert(0, returndatasize()) }\n return(0, returndatasize())\n }\n }\n}\n",
"sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol",
"ast": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol",
"exportedSymbols": {
"Proxy": [
3121
]
},
"id": 3122,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3094,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:24"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n @author Stefan George - <stefan@gnosis.pm>",
"fullyImplemented": true,
"id": 3121,
"linearizedBaseContracts": [
3121
],
"name": "Proxy",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 3096,
"name": "masterCopy",
"nodeType": "VariableDeclaration",
"scope": 3121,
"src": "468:27:24",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3095,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "468:7:24",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 3114,
"nodeType": "Block",
"src": "674:125:24",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 3106,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3102,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3098,
"src": "692:11:24",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3104,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "715:1:24",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 3103,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "707:7:24",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 3105,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "707:10:24",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "692:25:24",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564",
"id": 3107,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "719:38:24",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87",
"typeString": "literal_string \"Invalid master copy address provided\""
},
"value": "Invalid master copy address provided"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87",
"typeString": "literal_string \"Invalid master copy address provided\""
}
],
"id": 3101,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4369,
4370
],
"referencedDeclaration": 4370,
"src": "684:7:24",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 3108,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "684:74:24",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3109,
"nodeType": "ExpressionStatement",
"src": "684:74:24"
},
{
"expression": {
"argumentTypes": null,
"id": 3112,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3110,
"name": "masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3096,
"src": "768:10:24",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3111,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3098,
"src": "781:11:24",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "768:24:24",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3113,
"nodeType": "ExpressionStatement",
"src": "768:24:24"
}
]
},
"documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.",
"id": 3115,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3099,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3098,
"name": "_masterCopy",
"nodeType": "VariableDeclaration",
"scope": 3115,
"src": "634:19:24",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3097,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "634:7:24",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "633:21:24"
},
"returnParameters": {
"id": 3100,
"nodeType": "ParameterList",
"parameters": [],
"src": "674:0:24"
},
"scope": 3121,
"src": "622:177:24",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3119,
"nodeType": "Block",
"src": "949:470:24",
"statements": [
{
"externalReferences": [],
"id": 3118,
"nodeType": "InlineAssembly",
"operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas(), masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0)\n {\n revert(0, returndatasize())\n }\n return(0, returndatasize())\n}",
"src": "1023:396:24"
}
]
},
"documentation": "@dev Fallback function forwards all transactions and returns all received return data.",
"id": 3120,
"implemented": true,
"kind": "fallback",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3116,
"nodeType": "ParameterList",
"parameters": [],
"src": "909:2:24"
},
"returnParameters": {
"id": 3117,
"nodeType": "ParameterList",
"parameters": [],
"src": "949:0:24"
},
"scope": 3121,
"src": "900:519:24",
"stateMutability": "payable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 3122,
"src": "190:1231:24"
}
],
"src": "0:1422:24"
},
"legacyAST": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/proxies/Proxy.sol",
"exportedSymbols": {
"Proxy": [
3121
]
},
"id": 3122,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3094,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:24"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n @author Stefan George - <stefan@gnosis.pm>",
"fullyImplemented": true,
"id": 3121,
"linearizedBaseContracts": [
3121
],
"name": "Proxy",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 3096,
"name": "masterCopy",
"nodeType": "VariableDeclaration",
"scope": 3121,
"src": "468:27:24",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3095,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "468:7:24",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 3114,
"nodeType": "Block",
"src": "674:125:24",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 3106,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 3102,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3098,
"src": "692:11:24",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3104,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "715:1:24",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 3103,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "707:7:24",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 3105,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "707:10:24",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "692:25:24",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564",
"id": 3107,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "719:38:24",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87",
"typeString": "literal_string \"Invalid master copy address provided\""
},
"value": "Invalid master copy address provided"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87",
"typeString": "literal_string \"Invalid master copy address provided\""
}
],
"id": 3101,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4369,
4370
],
"referencedDeclaration": 4370,
"src": "684:7:24",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 3108,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "684:74:24",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 3109,
"nodeType": "ExpressionStatement",
"src": "684:74:24"
},
{
"expression": {
"argumentTypes": null,
"id": 3112,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3110,
"name": "masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3096,
"src": "768:10:24",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 3111,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3098,
"src": "781:11:24",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "768:24:24",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 3113,
"nodeType": "ExpressionStatement",
"src": "768:24:24"
}
]
},
"documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.",
"id": 3115,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3099,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3098,
"name": "_masterCopy",
"nodeType": "VariableDeclaration",
"scope": 3115,
"src": "634:19:24",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 3097,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "634:7:24",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "633:21:24"
},
"returnParameters": {
"id": 3100,
"nodeType": "ParameterList",
"parameters": [],
"src": "674:0:24"
},
"scope": 3121,
"src": "622:177:24",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 3119,
"nodeType": "Block",
"src": "949:470:24",
"statements": [
{
"externalReferences": [],
"id": 3118,
"nodeType": "InlineAssembly",
"operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas(), masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0)\n {\n revert(0, returndatasize())\n }\n return(0, returndatasize())\n}",
"src": "1023:396:24"
}
]
},
"documentation": "@dev Fallback function forwards all transactions and returns all received return data.",
"id": 3120,
"implemented": true,
"kind": "fallback",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3116,
"nodeType": "ParameterList",
"parameters": [],
"src": "909:2:24"
},
"returnParameters": {
"id": 3117,
"nodeType": "ParameterList",
"parameters": [],
"src": "949:0:24"
},
"scope": 3121,
"src": "900:519:24",
"stateMutability": "payable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 3122,
"src": "190:1231:24"
}
],
"src": "0:1422:24"
},
"compiler": {
"name": "solc",
"version": "0.5.7+commit.6da8b019.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.2",
"updatedAt": "2019-04-12T12:46:18.646Z"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,785 +0,0 @@
{
"contractName": "SecuredTokenTransfer",
"abi": [],
"bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3fe6080604052600080fdfea165627a7a72305820b5c14d452c505cb1a0f73758b8195a89e0cb28893f97225a3c2af8a0a2a20ac10029",
"deployedBytecode": "0x6080604052600080fdfea165627a7a72305820b5c14d452c505cb1a0f73758b8195a89e0cb28893f97225a3c2af8a0a2a20ac10029",
"sourceMap": "133:1051:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;133:1051:10;;;;;;;",
"deployedSourceMap": "133:1051:10:-;;;;;",
"source": "pragma solidity ^0.5.0;\n\n\n/// @title SecuredTokenTransfer - Secure token transfer\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract SecuredTokenTransfer {\n\n /// @dev Transfers a token and returns if it was a success\n /// @param token Token that should be transferred\n /// @param receiver Receiver to whom the token should be transferred\n /// @param amount The amount of tokens that should be transferred\n function transferToken (\n address token, \n address receiver,\n uint256 amount\n )\n internal\n returns (bool transferred)\n {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", receiver, amount);\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let success := call(sub(gas, 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize)\n switch returndatasize \n case 0 { transferred := success }\n case 0x20 { transferred := iszero(or(iszero(success), iszero(mload(ptr)))) }\n default { transferred := 0 }\n }\n }\n}\n",
"sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol",
"ast": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol",
"exportedSymbols": {
"SecuredTokenTransfer": [
1864
]
},
"id": 1865,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1841,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:10"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 1864,
"linearizedBaseContracts": [
1864
],
"name": "SecuredTokenTransfer",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 1862,
"nodeType": "Block",
"src": "590:592:10",
"statements": [
{
"assignments": [
1853
],
"declarations": [
{
"constant": false,
"id": 1853,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 1862,
"src": "600:17:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 1852,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "600:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1860,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "7472616e7366657228616464726573732c75696e7432353629",
"id": 1856,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "644:27:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
"typeString": "literal_string \"transfer(address,uint256)\""
},
"value": "transfer(address,uint256)"
},
{
"argumentTypes": null,
"id": 1857,
"name": "receiver",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1845,
"src": "673:8:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 1858,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1847,
"src": "683:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
"typeString": "literal_string \"transfer(address,uint256)\""
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1854,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4353,
"src": "620:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 1855,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "620:23:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 1859,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "620:70:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "600:90:10"
},
{
"externalReferences": [
{
"transferred": {
"declaration": 1850,
"isOffset": false,
"isSlot": false,
"src": "1148:11:10",
"valueSize": 1
}
},
{
"data": {
"declaration": 1853,
"isOffset": false,
"isSlot": false,
"src": "857:4:10",
"valueSize": 1
}
},
{
"data": {
"declaration": 1853,
"isOffset": false,
"isSlot": false,
"src": "838:4:10",
"valueSize": 1
}
},
{
"transferred": {
"declaration": 1850,
"isOffset": false,
"isSlot": false,
"src": "1012:11:10",
"valueSize": 1
}
},
{
"transferred": {
"declaration": 1850,
"isOffset": false,
"isSlot": false,
"src": "1061:11:10",
"valueSize": 1
}
},
{
"token": {
"declaration": 1843,
"isOffset": false,
"isSlot": false,
"src": "824:5:10",
"valueSize": 1
}
}
],
"id": 1861,
"nodeType": "InlineAssembly",
"operations": "{\n let success := call(sub(gas(), 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n switch returndatasize()\n case 0 {\n transferred := success\n }\n case 0x20 {\n transferred := iszero(or(iszero(success), iszero(mload(ptr))))\n }\n default {\n transferred := 0\n }\n}",
"src": "764:418:10"
}
]
},
"documentation": "@dev Transfers a token and returns if it was a success\n @param token Token that should be transferred\n @param receiver Receiver to whom the token should be transferred\n @param amount The amount of tokens that should be transferred",
"id": 1863,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "transferToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1848,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1843,
"name": "token",
"nodeType": "VariableDeclaration",
"scope": 1863,
"src": "463:13:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1842,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "463:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1845,
"name": "receiver",
"nodeType": "VariableDeclaration",
"scope": 1863,
"src": "487:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1844,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "487:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1847,
"name": "amount",
"nodeType": "VariableDeclaration",
"scope": 1863,
"src": "513:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1846,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "513:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "453:80:10"
},
"returnParameters": {
"id": 1851,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1850,
"name": "transferred",
"nodeType": "VariableDeclaration",
"scope": 1863,
"src": "568:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1849,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "568:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "567:18:10"
},
"scope": 1864,
"src": "430:752:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 1865,
"src": "133:1051:10"
}
],
"src": "0:1185:10"
},
"legacyAST": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SecuredTokenTransfer.sol",
"exportedSymbols": {
"SecuredTokenTransfer": [
1864
]
},
"id": 1865,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1841,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:10"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 1864,
"linearizedBaseContracts": [
1864
],
"name": "SecuredTokenTransfer",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 1862,
"nodeType": "Block",
"src": "590:592:10",
"statements": [
{
"assignments": [
1853
],
"declarations": [
{
"constant": false,
"id": 1853,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 1862,
"src": "600:17:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 1852,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "600:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1860,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "7472616e7366657228616464726573732c75696e7432353629",
"id": 1856,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "644:27:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
"typeString": "literal_string \"transfer(address,uint256)\""
},
"value": "transfer(address,uint256)"
},
{
"argumentTypes": null,
"id": 1857,
"name": "receiver",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1845,
"src": "673:8:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 1858,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1847,
"src": "683:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b",
"typeString": "literal_string \"transfer(address,uint256)\""
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1854,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4353,
"src": "620:3:10",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 1855,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodeWithSignature",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "620:23:10",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 1859,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "620:70:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "600:90:10"
},
{
"externalReferences": [
{
"transferred": {
"declaration": 1850,
"isOffset": false,
"isSlot": false,
"src": "1148:11:10",
"valueSize": 1
}
},
{
"data": {
"declaration": 1853,
"isOffset": false,
"isSlot": false,
"src": "857:4:10",
"valueSize": 1
}
},
{
"data": {
"declaration": 1853,
"isOffset": false,
"isSlot": false,
"src": "838:4:10",
"valueSize": 1
}
},
{
"transferred": {
"declaration": 1850,
"isOffset": false,
"isSlot": false,
"src": "1012:11:10",
"valueSize": 1
}
},
{
"transferred": {
"declaration": 1850,
"isOffset": false,
"isSlot": false,
"src": "1061:11:10",
"valueSize": 1
}
},
{
"token": {
"declaration": 1843,
"isOffset": false,
"isSlot": false,
"src": "824:5:10",
"valueSize": 1
}
}
],
"id": 1861,
"nodeType": "InlineAssembly",
"operations": "{\n let success := call(sub(gas(), 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n switch returndatasize()\n case 0 {\n transferred := success\n }\n case 0x20 {\n transferred := iszero(or(iszero(success), iszero(mload(ptr))))\n }\n default {\n transferred := 0\n }\n}",
"src": "764:418:10"
}
]
},
"documentation": "@dev Transfers a token and returns if it was a success\n @param token Token that should be transferred\n @param receiver Receiver to whom the token should be transferred\n @param amount The amount of tokens that should be transferred",
"id": 1863,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "transferToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1848,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1843,
"name": "token",
"nodeType": "VariableDeclaration",
"scope": 1863,
"src": "463:13:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1842,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "463:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1845,
"name": "receiver",
"nodeType": "VariableDeclaration",
"scope": 1863,
"src": "487:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1844,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "487:7:10",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1847,
"name": "amount",
"nodeType": "VariableDeclaration",
"scope": 1863,
"src": "513:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1846,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "513:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "453:80:10"
},
"returnParameters": {
"id": 1851,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1850,
"name": "transferred",
"nodeType": "VariableDeclaration",
"scope": 1863,
"src": "568:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 1849,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "568:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "567:18:10"
},
"scope": 1864,
"src": "430:752:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 1865,
"src": "133:1051:10"
}
],
"src": "0:1185:10"
},
"compiler": {
"name": "solc",
"version": "0.5.7+commit.6da8b019.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.2",
"updatedAt": "2019-04-12T12:46:18.632Z"
}

View File

@ -1,481 +0,0 @@
{
"contractName": "SelfAuthorized",
"abi": [],
"bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3fe6080604052600080fdfea165627a7a72305820ff5397f172a61b5f66b3255abbc8f90a767eb61614e465366ff1ca1d632ba2260029",
"deployedBytecode": "0x6080604052600080fdfea165627a7a72305820ff5397f172a61b5f66b3255abbc8f90a767eb61614e465366ff1ca1d632ba2260029",
"sourceMap": "152:166:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;152:166:11;;;;;;;",
"deployedSourceMap": "152:166:11:-;;;;;",
"source": "pragma solidity ^0.5.0;\n\n\n/// @title SelfAuthorized - authorizes current contract to perform actions\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract SelfAuthorized {\n modifier authorized() {\n require(msg.sender == address(this), \"Method can only be called from this contract\");\n _;\n }\n}\n",
"sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol",
"ast": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol",
"exportedSymbols": {
"SelfAuthorized": [
1881
]
},
"id": 1882,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1866,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:11"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 1881,
"linearizedBaseContracts": [
1881
],
"name": "SelfAuthorized",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 1879,
"nodeType": "Block",
"src": "204:112:11",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 1874,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 1869,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4366,
"src": "222:3:11",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 1870,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "222:10:11",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1872,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4380,
"src": "244:4:11",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SelfAuthorized_$1881",
"typeString": "contract SelfAuthorized"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_SelfAuthorized_$1881",
"typeString": "contract SelfAuthorized"
}
],
"id": 1871,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "236:7:11",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 1873,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "236:13:11",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "222:27:11",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374",
"id": 1875,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "251:46:11",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733",
"typeString": "literal_string \"Method can only be called from this contract\""
},
"value": "Method can only be called from this contract"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733",
"typeString": "literal_string \"Method can only be called from this contract\""
}
],
"id": 1868,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4369,
4370
],
"referencedDeclaration": 4370,
"src": "214:7:11",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 1876,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "214:84:11",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1877,
"nodeType": "ExpressionStatement",
"src": "214:84:11"
},
{
"id": 1878,
"nodeType": "PlaceholderStatement",
"src": "308:1:11"
}
]
},
"documentation": null,
"id": 1880,
"name": "authorized",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 1867,
"nodeType": "ParameterList",
"parameters": [],
"src": "201:2:11"
},
"src": "182:134:11",
"visibility": "internal"
}
],
"scope": 1882,
"src": "152:166:11"
}
],
"src": "0:319:11"
},
"legacyAST": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/common/SelfAuthorized.sol",
"exportedSymbols": {
"SelfAuthorized": [
1881
]
},
"id": 1882,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1866,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:11"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 1881,
"linearizedBaseContracts": [
1881
],
"name": "SelfAuthorized",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 1879,
"nodeType": "Block",
"src": "204:112:11",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 1874,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 1869,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4366,
"src": "222:3:11",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 1870,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "222:10:11",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1872,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4380,
"src": "244:4:11",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SelfAuthorized_$1881",
"typeString": "contract SelfAuthorized"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_SelfAuthorized_$1881",
"typeString": "contract SelfAuthorized"
}
],
"id": 1871,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "236:7:11",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 1873,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "236:13:11",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "222:27:11",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374",
"id": 1875,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "251:46:11",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733",
"typeString": "literal_string \"Method can only be called from this contract\""
},
"value": "Method can only be called from this contract"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733",
"typeString": "literal_string \"Method can only be called from this contract\""
}
],
"id": 1868,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4369,
4370
],
"referencedDeclaration": 4370,
"src": "214:7:11",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 1876,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "214:84:11",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1877,
"nodeType": "ExpressionStatement",
"src": "214:84:11"
},
{
"id": 1878,
"nodeType": "PlaceholderStatement",
"src": "308:1:11"
}
]
},
"documentation": null,
"id": 1880,
"name": "authorized",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 1867,
"nodeType": "ParameterList",
"parameters": [],
"src": "201:2:11"
},
"src": "182:134:11",
"visibility": "internal"
}
],
"scope": 1882,
"src": "152:166:11"
}
],
"src": "0:319:11"
},
"compiler": {
"name": "solc",
"version": "0.5.7+commit.6da8b019.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.2",
"updatedAt": "2019-04-12T12:46:18.633Z"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,361 +0,0 @@
{
"contractName": "Token",
"abi": [
{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x",
"deployedBytecode": "0x",
"sourceMap": "",
"deployedSourceMap": "",
"source": "pragma solidity ^0.5.0;\nimport \"@gnosis.pm/mock-contract/contracts/MockContract.sol\";\ncontract Token {\n\tfunction transfer(address _to, uint value) public returns (bool);\n}\n",
"sourcePath": "/home/ger/git/gnosis/safe-contracts/contracts/mocks/Token.sol",
"ast": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/mocks/Token.sol",
"exportedSymbols": {
"Token": [
2148
]
},
"id": 2149,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2137,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:17"
},
{
"absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol",
"file": "@gnosis.pm/mock-contract/contracts/MockContract.sol",
"id": 2138,
"nodeType": "ImportDirective",
"scope": 2149,
"sourceUnit": 4352,
"src": "24:61:17",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 2148,
"linearizedBaseContracts": [
2148
],
"name": "Token",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"id": 2147,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "transfer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2143,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2140,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 2147,
"src": "122:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2139,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "122:7:17",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2142,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 2147,
"src": "135:10:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2141,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "135:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "121:25:17"
},
"returnParameters": {
"id": 2146,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2145,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 2147,
"src": "163:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2144,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "163:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "162:6:17"
},
"scope": 2148,
"src": "104:65:17",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 2149,
"src": "86:85:17"
}
],
"src": "0:172:17"
},
"legacyAST": {
"absolutePath": "/home/ger/git/gnosis/safe-contracts/contracts/mocks/Token.sol",
"exportedSymbols": {
"Token": [
2148
]
},
"id": 2149,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2137,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:17"
},
{
"absolutePath": "@gnosis.pm/mock-contract/contracts/MockContract.sol",
"file": "@gnosis.pm/mock-contract/contracts/MockContract.sol",
"id": 2138,
"nodeType": "ImportDirective",
"scope": 2149,
"sourceUnit": 4352,
"src": "24:61:17",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": false,
"id": 2148,
"linearizedBaseContracts": [
2148
],
"name": "Token",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": null,
"documentation": null,
"id": 2147,
"implemented": false,
"kind": "function",
"modifiers": [],
"name": "transfer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2143,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2140,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 2147,
"src": "122:11:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2139,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "122:7:17",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2142,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 2147,
"src": "135:10:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2141,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "135:4:17",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "121:25:17"
},
"returnParameters": {
"id": 2146,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2145,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 2147,
"src": "163:4:17",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2144,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "163:4:17",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "162:6:17"
},
"scope": 2148,
"src": "104:65:17",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 2149,
"src": "86:85:17"
}
],
"src": "0:172:17"
},
"compiler": {
"name": "solc",
"version": "0.5.7+commit.6da8b019.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.2",
"updatedAt": "2019-04-12T12:46:18.635Z"
}

File diff suppressed because one or more lines are too long