Merge pull request #62 from gnosis/feature/WA-521-migration-to-personal-edition-contracts

WA-521 - Feature: Update safe-contracts
This commit is contained in:
Adolfo Panizo 2018-09-06 16:24:15 +02:00 committed by GitHub
commit 668c76f064
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
31 changed files with 79650 additions and 20290 deletions

2
.eslintignore Normal file
View File

@ -0,0 +1,2 @@
node_modules/
build_webpack/

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -82,7 +82,7 @@
"id": 2,
"nodeType": "ImportDirective",
"scope": 24,
"sourceUnit": 2989,
"sourceUnit": 1689,
"src": "24:21:0",
"symbolAliases": [],
"unitAlias": ""
@ -96,10 +96,10 @@
"id": 3,
"name": "Proxy",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2988,
"referencedDeclaration": 1688,
"src": "392:5:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
},
@ -109,7 +109,7 @@
}
],
"contractDependencies": [
2988
1688
],
"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>",
@ -117,7 +117,7 @@
"id": 23,
"linearizedBaseContracts": [
23,
2988
1688
],
"name": "DelegateConstructorProxy",
"nodeType": "ContractDefinition",
@ -264,10 +264,10 @@
"name": "Proxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2988,
"referencedDeclaration": 1688,
"src": "662:5:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Proxy_$2988_$",
"typeIdentifier": "t_type$_t_contract$_Proxy_$1688_$",
"typeString": "type(contract Proxy)"
}
},
@ -382,7 +382,7 @@
"id": 2,
"nodeType": "ImportDirective",
"scope": 24,
"sourceUnit": 2989,
"sourceUnit": 1689,
"src": "24:21:0",
"symbolAliases": [],
"unitAlias": ""
@ -396,10 +396,10 @@
"id": 3,
"name": "Proxy",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2988,
"referencedDeclaration": 1688,
"src": "392:5:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
},
@ -409,7 +409,7 @@
}
],
"contractDependencies": [
2988
1688
],
"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>",
@ -417,7 +417,7 @@
"id": 23,
"linearizedBaseContracts": [
23,
2988
1688
],
"name": "DelegateConstructorProxy",
"nodeType": "ContractDefinition",
@ -564,10 +564,10 @@
"name": "Proxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2988,
"referencedDeclaration": 1688,
"src": "662:5:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Proxy_$2988_$",
"typeIdentifier": "t_type$_t_contract$_Proxy_$1688_$",
"typeString": "type(contract Proxy)"
}
},
@ -662,5 +662,5 @@
},
"networks": {},
"schemaVersion": "2.0.0",
"updatedAt": "2018-06-29T09:01:22.054Z"
"updatedAt": "2018-08-20T07:44:41.083Z"
}

View File

@ -147,5 +147,5 @@
},
"networks": {},
"schemaVersion": "2.0.0",
"updatedAt": "2018-06-29T09:01:22.054Z"
"updatedAt": "2018-08-20T07:44:41.083Z"
}

View File

@ -0,0 +1,171 @@
{
"contractName": "EtherPaymentFallback",
"abi": [
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
}
],
"bytecode": "0x6080604052348015600f57600080fd5b50603280601d6000396000f30060806040520000a165627a7a723058208226d93ca47e5b6cb455362823a9ae7ae1ffe3fb79b732dd39f124670f780a070029",
"deployedBytecode": "0x60806040520000a165627a7a723058208226d93ca47e5b6cb455362823a9ae7ae1ffe3fb79b732dd39f124670f780a070029",
"sourceMap": "167:155:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:155:2;;;;;;;",
"deployedSourceMap": "167:155:2:-;;;",
"source": "pragma solidity 0.4.24;\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": "/Users/apanizo/git/gnosis/safe-contracts/contracts/EtherPaymentFallback.sol",
"ast": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/EtherPaymentFallback.sol",
"exportedSymbols": {
"EtherPaymentFallback": [
37
]
},
"id": 38,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 32,
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:23:2"
},
{
"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": 37,
"linearizedBaseContracts": [
37
],
"name": "EtherPaymentFallback",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 35,
"nodeType": "Block",
"src": "312:8:2",
"statements": []
},
"documentation": "@dev Fallback function accepts Ether transactions.",
"id": 36,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 33,
"nodeType": "ParameterList",
"parameters": [],
"src": "272:2:2"
},
"payable": true,
"returnParameters": {
"id": 34,
"nodeType": "ParameterList",
"parameters": [],
"src": "312:0:2"
},
"scope": 37,
"src": "263:57:2",
"stateMutability": "payable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 38,
"src": "167:155:2"
}
],
"src": "0:323:2"
},
"legacyAST": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/EtherPaymentFallback.sol",
"exportedSymbols": {
"EtherPaymentFallback": [
37
]
},
"id": 38,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 32,
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:23:2"
},
{
"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": 37,
"linearizedBaseContracts": [
37
],
"name": "EtherPaymentFallback",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 35,
"nodeType": "Block",
"src": "312:8:2",
"statements": []
},
"documentation": "@dev Fallback function accepts Ether transactions.",
"id": 36,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 33,
"nodeType": "ParameterList",
"parameters": [],
"src": "272:2:2"
},
"payable": true,
"returnParameters": {
"id": 34,
"nodeType": "ParameterList",
"parameters": [],
"src": "312:0:2"
},
"scope": 37,
"src": "263:57:2",
"stateMutability": "payable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 38,
"src": "167:155:2"
}
],
"src": "0:323:2"
},
"compiler": {
"name": "solc",
"version": "0.4.24+commit.e67f0147.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.0",
"updatedAt": "2018-08-20T07:44:41.083Z"
}

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 one or more lines are too long

View File

@ -18,38 +18,38 @@
],
"bytecode": "0x608060405234801561001057600080fd5b50610276806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820243ca7a44eb0464a47c14309cc3a29e407df6e966674981a787df22c0d9280220029",
"deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820243ca7a44eb0464a47c14309cc3a29e407df6e966674981a787df22c0d9280220029",
"sourceMap": "203:673:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:673:5;;;;;;;",
"deployedSourceMap": "203:673:5:-;;;;;;;;;;;;;;;;;;;;;;;;626:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o",
"sourceMap": "203:673:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:673:7;;;;;;;",
"deployedSourceMap": "203:673:7:-;;;;;;;;;;;;;;;;;;;;;;;;626:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4:16;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:7;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o",
"source": "pragma solidity 0.4.24;\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 != 0, \"Invalid master copy address provided\");\n masterCopy = _masterCopy;\n }\n}\n",
"sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol",
"ast": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol",
"exportedSymbols": {
"MasterCopy": [
632
813
]
},
"id": 633,
"id": 814,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 607,
"id": 788,
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:23:5"
"src": "0:23:7"
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol",
"file": "./SelfAuthorized.sol",
"id": 608,
"id": 789,
"nodeType": "ImportDirective",
"scope": 633,
"sourceUnit": 3066,
"src": "24:30:5",
"scope": 814,
"sourceUnit": 1766,
"src": "24:30:7",
"symbolAliases": [],
"unitAlias": ""
},
@ -59,42 +59,42 @@
"arguments": null,
"baseName": {
"contractScope": null,
"id": 609,
"id": 790,
"name": "SelfAuthorized",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3065,
"src": "226:14:5",
"referencedDeclaration": 1765,
"src": "226:14:7",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SelfAuthorized_$3065",
"typeIdentifier": "t_contract$_SelfAuthorized_$1765",
"typeString": "contract SelfAuthorized"
}
},
"id": 610,
"id": 791,
"nodeType": "InheritanceSpecifier",
"src": "226:14:5"
"src": "226:14:7"
}
],
"contractDependencies": [
3065
1765
],
"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": 632,
"id": 813,
"linearizedBaseContracts": [
632,
3065
813,
1765
],
"name": "MasterCopy",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 612,
"id": 793,
"name": "masterCopy",
"nodeType": "VariableDeclaration",
"scope": 632,
"src": "465:18:5",
"scope": 813,
"src": "465:18:7",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
@ -102,10 +102,10 @@
"typeString": "address"
},
"typeName": {
"id": 611,
"id": 792,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "465:7:5",
"src": "465:7:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
@ -116,9 +116,9 @@
},
{
"body": {
"id": 630,
"id": 811,
"nodeType": "Block",
"src": "711:163:5",
"src": "711:163:7",
"statements": [
{
"expression": {
@ -130,19 +130,19 @@
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 622,
"id": 803,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 620,
"id": 801,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 614,
"src": "776:11:5",
"referencedDeclaration": 795,
"src": "776:11:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
@ -153,14 +153,14 @@
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 621,
"id": 802,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "791:1:5",
"src": "791:1:7",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
@ -168,7 +168,7 @@
},
"value": "0"
},
"src": "776:16:5",
"src": "776:16:7",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
@ -177,14 +177,14 @@
{
"argumentTypes": null,
"hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564",
"id": 623,
"id": 804,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "794:38:5",
"src": "794:38:7",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87",
@ -204,21 +204,21 @@
"typeString": "literal_string \"Invalid master copy address provided\""
}
],
"id": 619,
"id": 800,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4039,
4040
3831,
3832
],
"referencedDeclaration": 4040,
"src": "768:7:5",
"referencedDeclaration": 3832,
"src": "768:7:7",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 624,
"id": 805,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -226,32 +226,32 @@
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "768:65:5",
"src": "768:65:7",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 625,
"id": 806,
"nodeType": "ExpressionStatement",
"src": "768:65:5"
"src": "768:65:7"
},
{
"expression": {
"argumentTypes": null,
"id": 628,
"id": 809,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 626,
"id": 807,
"name": "masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 612,
"src": "843:10:5",
"referencedDeclaration": 793,
"src": "843:10:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
@ -261,68 +261,68 @@
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 627,
"id": 808,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 614,
"src": "856:11:5",
"referencedDeclaration": 795,
"src": "856:11:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "843:24:5",
"src": "843:24:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 629,
"id": 810,
"nodeType": "ExpressionStatement",
"src": "843:24:5"
"src": "843:24:7"
}
]
},
"documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.",
"id": 631,
"id": 812,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 617,
"id": 798,
"modifierName": {
"argumentTypes": null,
"id": 616,
"id": 797,
"name": "authorized",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3064,
"src": "696:10:5",
"referencedDeclaration": 1764,
"src": "696:10:7",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "696:10:5"
"src": "696:10:7"
}
],
"name": "changeMasterCopy",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 615,
"id": 796,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 614,
"id": 795,
"name": "_masterCopy",
"nodeType": "VariableDeclaration",
"scope": 631,
"src": "652:19:5",
"scope": 812,
"src": "652:19:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
@ -330,10 +330,10 @@
"typeString": "address"
},
"typeName": {
"id": 613,
"id": 794,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "652:7:5",
"src": "652:7:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
@ -343,56 +343,56 @@
"visibility": "internal"
}
],
"src": "651:21:5"
"src": "651:21:7"
},
"payable": false,
"returnParameters": {
"id": 618,
"id": 799,
"nodeType": "ParameterList",
"parameters": [],
"src": "711:0:5"
"src": "711:0:7"
},
"scope": 632,
"src": "626:248:5",
"scope": 813,
"src": "626:248:7",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 633,
"src": "203:673:5"
"scope": 814,
"src": "203:673:7"
}
],
"src": "0:877:5"
"src": "0:877:7"
},
"legacyAST": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol",
"exportedSymbols": {
"MasterCopy": [
632
813
]
},
"id": 633,
"id": 814,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 607,
"id": 788,
"literals": [
"solidity",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:23:5"
"src": "0:23:7"
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol",
"file": "./SelfAuthorized.sol",
"id": 608,
"id": 789,
"nodeType": "ImportDirective",
"scope": 633,
"sourceUnit": 3066,
"src": "24:30:5",
"scope": 814,
"sourceUnit": 1766,
"src": "24:30:7",
"symbolAliases": [],
"unitAlias": ""
},
@ -402,42 +402,42 @@
"arguments": null,
"baseName": {
"contractScope": null,
"id": 609,
"id": 790,
"name": "SelfAuthorized",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3065,
"src": "226:14:5",
"referencedDeclaration": 1765,
"src": "226:14:7",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SelfAuthorized_$3065",
"typeIdentifier": "t_contract$_SelfAuthorized_$1765",
"typeString": "contract SelfAuthorized"
}
},
"id": 610,
"id": 791,
"nodeType": "InheritanceSpecifier",
"src": "226:14:5"
"src": "226:14:7"
}
],
"contractDependencies": [
3065
1765
],
"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": 632,
"id": 813,
"linearizedBaseContracts": [
632,
3065
813,
1765
],
"name": "MasterCopy",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 612,
"id": 793,
"name": "masterCopy",
"nodeType": "VariableDeclaration",
"scope": 632,
"src": "465:18:5",
"scope": 813,
"src": "465:18:7",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
@ -445,10 +445,10 @@
"typeString": "address"
},
"typeName": {
"id": 611,
"id": 792,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "465:7:5",
"src": "465:7:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
@ -459,9 +459,9 @@
},
{
"body": {
"id": 630,
"id": 811,
"nodeType": "Block",
"src": "711:163:5",
"src": "711:163:7",
"statements": [
{
"expression": {
@ -473,19 +473,19 @@
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 622,
"id": 803,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 620,
"id": 801,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 614,
"src": "776:11:5",
"referencedDeclaration": 795,
"src": "776:11:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
@ -496,14 +496,14 @@
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 621,
"id": 802,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "791:1:5",
"src": "791:1:7",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
@ -511,7 +511,7 @@
},
"value": "0"
},
"src": "776:16:5",
"src": "776:16:7",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
@ -520,14 +520,14 @@
{
"argumentTypes": null,
"hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564",
"id": 623,
"id": 804,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "794:38:5",
"src": "794:38:7",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87",
@ -547,21 +547,21 @@
"typeString": "literal_string \"Invalid master copy address provided\""
}
],
"id": 619,
"id": 800,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4039,
4040
3831,
3832
],
"referencedDeclaration": 4040,
"src": "768:7:5",
"referencedDeclaration": 3832,
"src": "768:7:7",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 624,
"id": 805,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -569,32 +569,32 @@
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "768:65:5",
"src": "768:65:7",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 625,
"id": 806,
"nodeType": "ExpressionStatement",
"src": "768:65:5"
"src": "768:65:7"
},
{
"expression": {
"argumentTypes": null,
"id": 628,
"id": 809,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 626,
"id": 807,
"name": "masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 612,
"src": "843:10:5",
"referencedDeclaration": 793,
"src": "843:10:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
@ -604,68 +604,68 @@
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 627,
"id": 808,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 614,
"src": "856:11:5",
"referencedDeclaration": 795,
"src": "856:11:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "843:24:5",
"src": "843:24:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 629,
"id": 810,
"nodeType": "ExpressionStatement",
"src": "843:24:5"
"src": "843:24:7"
}
]
},
"documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.",
"id": 631,
"id": 812,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 617,
"id": 798,
"modifierName": {
"argumentTypes": null,
"id": 616,
"id": 797,
"name": "authorized",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3064,
"src": "696:10:5",
"referencedDeclaration": 1764,
"src": "696:10:7",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "696:10:5"
"src": "696:10:7"
}
],
"name": "changeMasterCopy",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 615,
"id": 796,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 614,
"id": 795,
"name": "_masterCopy",
"nodeType": "VariableDeclaration",
"scope": 631,
"src": "652:19:5",
"scope": 812,
"src": "652:19:7",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
@ -673,10 +673,10 @@
"typeString": "address"
},
"typeName": {
"id": 613,
"id": 794,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "652:7:5",
"src": "652:7:7",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
@ -686,27 +686,27 @@
"visibility": "internal"
}
],
"src": "651:21:5"
"src": "651:21:7"
},
"payable": false,
"returnParameters": {
"id": 618,
"id": 799,
"nodeType": "ParameterList",
"parameters": [],
"src": "711:0:5"
"src": "711:0:7"
},
"scope": 632,
"src": "626:248:5",
"scope": 813,
"src": "626:248:7",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 633,
"src": "203:673:5"
"scope": 814,
"src": "203:673:7"
}
],
"src": "0:877:5"
"src": "0:877:7"
},
"compiler": {
"name": "solc",
@ -714,5 +714,5 @@
},
"networks": {},
"schemaVersion": "2.0.0",
"updatedAt": "2018-06-29T09:01:22.057Z"
"updatedAt": "2018-08-20T07:44:41.087Z"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -26,14 +26,14 @@
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol",
"exportedSymbols": {
"MultiSend": [
3176
1876
]
},
"id": 3177,
"id": 1877,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3168,
"id": 1868,
"literals": [
"solidity",
"0.4",
@ -48,16 +48,16 @@
"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": 3176,
"id": 1876,
"linearizedBaseContracts": [
3176
1876
],
"name": "MultiSend",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 3174,
"id": 1874,
"nodeType": "Block",
"src": "753:922:19",
"statements": [
@ -65,7 +65,7 @@
"externalReferences": [
{
"transactions": {
"declaration": 3170,
"declaration": 1870,
"isOffset": false,
"isSlot": false,
"src": "870:12:19",
@ -74,7 +74,7 @@
},
{
"transactions": {
"declaration": 3170,
"declaration": 1870,
"isOffset": false,
"isSlot": false,
"src": "993:12:19",
@ -83,7 +83,7 @@
},
{
"transactions": {
"declaration": 3170,
"declaration": 1870,
"isOffset": false,
"isSlot": false,
"src": "1047:12:19",
@ -92,7 +92,7 @@
},
{
"transactions": {
"declaration": 3170,
"declaration": 1870,
"isOffset": false,
"isSlot": false,
"src": "1188:12:19",
@ -101,7 +101,7 @@
},
{
"transactions": {
"declaration": 3170,
"declaration": 1870,
"isOffset": false,
"isSlot": false,
"src": "1115:12:19",
@ -110,7 +110,7 @@
},
{
"transactions": {
"declaration": 3170,
"declaration": 1870,
"isOffset": false,
"isSlot": false,
"src": "1249:12:19",
@ -118,7 +118,7 @@
}
}
],
"id": 3173,
"id": 1873,
"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": "827:848:19"
@ -126,7 +126,7 @@
]
},
"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": 3175,
"id": 1875,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
@ -134,15 +134,15 @@
"name": "multiSend",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3171,
"id": 1871,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3170,
"id": 1870,
"name": "transactions",
"nodeType": "VariableDeclaration",
"scope": 3175,
"scope": 1875,
"src": "714:18:19",
"stateVariable": false,
"storageLocation": "default",
@ -151,7 +151,7 @@
"typeString": "bytes"
},
"typeName": {
"id": 3169,
"id": 1869,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "714:5:19",
@ -168,19 +168,19 @@
},
"payable": false,
"returnParameters": {
"id": 3172,
"id": 1872,
"nodeType": "ParameterList",
"parameters": [],
"src": "753:0:19"
},
"scope": 3176,
"scope": 1876,
"src": "695:980:19",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3177,
"scope": 1877,
"src": "253:1424:19"
}
],
@ -190,14 +190,14 @@
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol",
"exportedSymbols": {
"MultiSend": [
3176
1876
]
},
"id": 3177,
"id": 1877,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3168,
"id": 1868,
"literals": [
"solidity",
"0.4",
@ -212,16 +212,16 @@
"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": 3176,
"id": 1876,
"linearizedBaseContracts": [
3176
1876
],
"name": "MultiSend",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 3174,
"id": 1874,
"nodeType": "Block",
"src": "753:922:19",
"statements": [
@ -229,7 +229,7 @@
"externalReferences": [
{
"transactions": {
"declaration": 3170,
"declaration": 1870,
"isOffset": false,
"isSlot": false,
"src": "870:12:19",
@ -238,7 +238,7 @@
},
{
"transactions": {
"declaration": 3170,
"declaration": 1870,
"isOffset": false,
"isSlot": false,
"src": "993:12:19",
@ -247,7 +247,7 @@
},
{
"transactions": {
"declaration": 3170,
"declaration": 1870,
"isOffset": false,
"isSlot": false,
"src": "1047:12:19",
@ -256,7 +256,7 @@
},
{
"transactions": {
"declaration": 3170,
"declaration": 1870,
"isOffset": false,
"isSlot": false,
"src": "1188:12:19",
@ -265,7 +265,7 @@
},
{
"transactions": {
"declaration": 3170,
"declaration": 1870,
"isOffset": false,
"isSlot": false,
"src": "1115:12:19",
@ -274,7 +274,7 @@
},
{
"transactions": {
"declaration": 3170,
"declaration": 1870,
"isOffset": false,
"isSlot": false,
"src": "1249:12:19",
@ -282,7 +282,7 @@
}
}
],
"id": 3173,
"id": 1873,
"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": "827:848:19"
@ -290,7 +290,7 @@
]
},
"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": 3175,
"id": 1875,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
@ -298,15 +298,15 @@
"name": "multiSend",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3171,
"id": 1871,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3170,
"id": 1870,
"name": "transactions",
"nodeType": "VariableDeclaration",
"scope": 3175,
"scope": 1875,
"src": "714:18:19",
"stateVariable": false,
"storageLocation": "default",
@ -315,7 +315,7 @@
"typeString": "bytes"
},
"typeName": {
"id": 3169,
"id": 1869,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "714:5:19",
@ -332,19 +332,19 @@
},
"payable": false,
"returnParameters": {
"id": 3172,
"id": 1872,
"nodeType": "ParameterList",
"parameters": [],
"src": "753:0:19"
},
"scope": 3176,
"scope": 1876,
"src": "695:980:19",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3177,
"scope": 1877,
"src": "253:1424:19"
}
],
@ -358,28 +358,16 @@
"4": {
"events": {},
"links": {},
"address": "0x7115893bc1477bc22f127bc2d82fcb4dd99e5838",
"transactionHash": "0x1f321cf880f5ec5b189cb1ac1c1c1b71ef8d854fc059c345fea6e6129bb19645"
"address": "0x3a29cf32d22f38b7338874b689a88f185663a1c3",
"transactionHash": "0x86b6895207dff0b3e19c202e140dc9cf823cbfc02672e02636af23a1b580e7e7"
},
"1530013596495": {
"1534750848541": {
"events": {},
"links": {},
"address": "0x18a8eaa498a58752858e5a912c8ff136b0bc6c69",
"transactionHash": "0x7da393438ee13b991e6d94278addb64e86b0c13101efb8a0f0f00d9f86ba51d0"
},
"1530525742205": {
"events": {},
"links": {},
"address": "0x0a25374d1738169d8653e6ee01f464bf4cdc8dea",
"transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05"
},
"1530611935189": {
"events": {},
"links": {},
"address": "0x0b98f9d8fbd164d8d4884a997a3ef8e7275d5e0e",
"transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05"
"address": "0x5b9b42d6e4b2e4bf8d42eba32d46918e10899b66",
"transactionHash": "0xaf733882096b301ccf5bf4a12ebf84616b88927c71cc656cc037fbd892a24104"
}
},
"schemaVersion": "2.0.0",
"updatedAt": "2018-07-03T09:59:18.515Z"
"updatedAt": "2018-08-20T07:50:29.677Z"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -56,14 +56,14 @@
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol",
"exportedSymbols": {
"Proxy": [
2988
1688
]
},
"id": 2989,
"id": 1689,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2947,
"id": 1647,
"literals": [
"solidity",
"0.4",
@ -78,19 +78,19 @@
"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": 2988,
"id": 1688,
"linearizedBaseContracts": [
2988
1688
],
"name": "Proxy",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 2949,
"id": 1649,
"name": "masterCopy",
"nodeType": "VariableDeclaration",
"scope": 2988,
"scope": 1688,
"src": "363:18:13",
"stateVariable": true,
"storageLocation": "default",
@ -99,7 +99,7 @@
"typeString": "address"
},
"typeName": {
"id": 2948,
"id": 1648,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "363:7:13",
@ -113,7 +113,7 @@
},
{
"body": {
"id": 2965,
"id": 1665,
"nodeType": "Block",
"src": "560:116:13",
"statements": [
@ -127,18 +127,18 @@
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 2957,
"id": 1657,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2955,
"id": 1655,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2951,
"referencedDeclaration": 1651,
"src": "578:11:13",
"typeDescriptions": {
"typeIdentifier": "t_address",
@ -150,7 +150,7 @@
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 2956,
"id": 1656,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -174,7 +174,7 @@
{
"argumentTypes": null,
"hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564",
"id": 2958,
"id": 1658,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -201,21 +201,21 @@
"typeString": "literal_string \"Invalid master copy address provided\""
}
],
"id": 2954,
"id": 1654,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4039,
4040
3831,
3832
],
"referencedDeclaration": 4040,
"referencedDeclaration": 3832,
"src": "570:7:13",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2959,
"id": 1659,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -229,25 +229,25 @@
"typeString": "tuple()"
}
},
"id": 2960,
"id": 1660,
"nodeType": "ExpressionStatement",
"src": "570:65:13"
},
{
"expression": {
"argumentTypes": null,
"id": 2963,
"id": 1663,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 2961,
"id": 1661,
"name": "masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2949,
"referencedDeclaration": 1649,
"src": "645:10:13",
"typeDescriptions": {
"typeIdentifier": "t_address",
@ -258,11 +258,11 @@
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 2962,
"id": 1662,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2951,
"referencedDeclaration": 1651,
"src": "658:11:13",
"typeDescriptions": {
"typeIdentifier": "t_address",
@ -275,14 +275,14 @@
"typeString": "address"
}
},
"id": 2964,
"id": 1664,
"nodeType": "ExpressionStatement",
"src": "645:24:13"
}
]
},
"documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.",
"id": 2966,
"id": 1666,
"implemented": true,
"isConstructor": true,
"isDeclaredConst": false,
@ -290,15 +290,15 @@
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2952,
"id": 1652,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2951,
"id": 1651,
"name": "_masterCopy",
"nodeType": "VariableDeclaration",
"scope": 2966,
"scope": 1666,
"src": "520:19:13",
"stateVariable": false,
"storageLocation": "default",
@ -307,7 +307,7 @@
"typeString": "address"
},
"typeName": {
"id": 2950,
"id": 1650,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "520:7:13",
@ -324,12 +324,12 @@
},
"payable": false,
"returnParameters": {
"id": 2953,
"id": 1653,
"nodeType": "ParameterList",
"parameters": [],
"src": "560:0:13"
},
"scope": 2988,
"scope": 1688,
"src": "508:168:13",
"stateMutability": "nonpayable",
"superFunction": null,
@ -337,13 +337,13 @@
},
{
"body": {
"id": 2970,
"id": 1670,
"nodeType": "Block",
"src": "826:470:13",
"statements": [
{
"externalReferences": [],
"id": 2969,
"id": 1669,
"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": "900:396:13"
@ -351,7 +351,7 @@
]
},
"documentation": "@dev Fallback function forwards all transactions and returns all received return data.",
"id": 2971,
"id": 1671,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
@ -359,19 +359,19 @@
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2967,
"id": 1667,
"nodeType": "ParameterList",
"parameters": [],
"src": "786:2:13"
},
"payable": true,
"returnParameters": {
"id": 2968,
"id": 1668,
"nodeType": "ParameterList",
"parameters": [],
"src": "826:0:13"
},
"scope": 2988,
"scope": 1688,
"src": "777:519:13",
"stateMutability": "payable",
"superFunction": null,
@ -379,33 +379,33 @@
},
{
"body": {
"id": 2978,
"id": 1678,
"nodeType": "Block",
"src": "1386:34:13",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 2976,
"id": 1676,
"name": "masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2949,
"referencedDeclaration": 1649,
"src": "1403:10:13",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 2975,
"id": 2977,
"functionReturnParameters": 1675,
"id": 1677,
"nodeType": "Return",
"src": "1396:17:13"
}
]
},
"documentation": null,
"id": 2979,
"id": 1679,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
@ -413,22 +413,22 @@
"name": "implementation",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2972,
"id": 1672,
"nodeType": "ParameterList",
"parameters": [],
"src": "1325:2:13"
},
"payable": false,
"returnParameters": {
"id": 2975,
"id": 1675,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2974,
"id": 1674,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 2979,
"scope": 1679,
"src": "1373:7:13",
"stateVariable": false,
"storageLocation": "default",
@ -437,7 +437,7 @@
"typeString": "address"
},
"typeName": {
"id": 2973,
"id": 1673,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1373:7:13",
@ -452,7 +452,7 @@
],
"src": "1372:9:13"
},
"scope": 2988,
"scope": 1688,
"src": "1302:118:13",
"stateMutability": "view",
"superFunction": null,
@ -460,7 +460,7 @@
},
{
"body": {
"id": 2986,
"id": 1686,
"nodeType": "Block",
"src": "1505:25:13",
"statements": [
@ -468,7 +468,7 @@
"expression": {
"argumentTypes": null,
"hexValue": "32",
"id": 2984,
"id": 1684,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -483,15 +483,15 @@
},
"value": "2"
},
"functionReturnParameters": 2983,
"id": 2985,
"functionReturnParameters": 1683,
"id": 1685,
"nodeType": "Return",
"src": "1515:8:13"
}
]
},
"documentation": null,
"id": 2987,
"id": 1687,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
@ -499,22 +499,22 @@
"name": "proxyType",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2980,
"id": 1680,
"nodeType": "ParameterList",
"parameters": [],
"src": "1444:2:13"
},
"payable": false,
"returnParameters": {
"id": 2983,
"id": 1683,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2982,
"id": 1682,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 2987,
"scope": 1687,
"src": "1492:7:13",
"stateVariable": false,
"storageLocation": "default",
@ -523,7 +523,7 @@
"typeString": "uint256"
},
"typeName": {
"id": 2981,
"id": 1681,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1492:7:13",
@ -538,14 +538,14 @@
],
"src": "1491:9:13"
},
"scope": 2988,
"scope": 1688,
"src": "1426:104:13",
"stateMutability": "pure",
"superFunction": null,
"visibility": "public"
}
],
"scope": 2989,
"scope": 1689,
"src": "190:1342:13"
}
],
@ -555,14 +555,14 @@
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol",
"exportedSymbols": {
"Proxy": [
2988
1688
]
},
"id": 2989,
"id": 1689,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2947,
"id": 1647,
"literals": [
"solidity",
"0.4",
@ -577,19 +577,19 @@
"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": 2988,
"id": 1688,
"linearizedBaseContracts": [
2988
1688
],
"name": "Proxy",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 2949,
"id": 1649,
"name": "masterCopy",
"nodeType": "VariableDeclaration",
"scope": 2988,
"scope": 1688,
"src": "363:18:13",
"stateVariable": true,
"storageLocation": "default",
@ -598,7 +598,7 @@
"typeString": "address"
},
"typeName": {
"id": 2948,
"id": 1648,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "363:7:13",
@ -612,7 +612,7 @@
},
{
"body": {
"id": 2965,
"id": 1665,
"nodeType": "Block",
"src": "560:116:13",
"statements": [
@ -626,18 +626,18 @@
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 2957,
"id": 1657,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2955,
"id": 1655,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2951,
"referencedDeclaration": 1651,
"src": "578:11:13",
"typeDescriptions": {
"typeIdentifier": "t_address",
@ -649,7 +649,7 @@
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 2956,
"id": 1656,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -673,7 +673,7 @@
{
"argumentTypes": null,
"hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564",
"id": 2958,
"id": 1658,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -700,21 +700,21 @@
"typeString": "literal_string \"Invalid master copy address provided\""
}
],
"id": 2954,
"id": 1654,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4039,
4040
3831,
3832
],
"referencedDeclaration": 4040,
"referencedDeclaration": 3832,
"src": "570:7:13",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 2959,
"id": 1659,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -728,25 +728,25 @@
"typeString": "tuple()"
}
},
"id": 2960,
"id": 1660,
"nodeType": "ExpressionStatement",
"src": "570:65:13"
},
{
"expression": {
"argumentTypes": null,
"id": 2963,
"id": 1663,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 2961,
"id": 1661,
"name": "masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2949,
"referencedDeclaration": 1649,
"src": "645:10:13",
"typeDescriptions": {
"typeIdentifier": "t_address",
@ -757,11 +757,11 @@
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 2962,
"id": 1662,
"name": "_masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2951,
"referencedDeclaration": 1651,
"src": "658:11:13",
"typeDescriptions": {
"typeIdentifier": "t_address",
@ -774,14 +774,14 @@
"typeString": "address"
}
},
"id": 2964,
"id": 1664,
"nodeType": "ExpressionStatement",
"src": "645:24:13"
}
]
},
"documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.",
"id": 2966,
"id": 1666,
"implemented": true,
"isConstructor": true,
"isDeclaredConst": false,
@ -789,15 +789,15 @@
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2952,
"id": 1652,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2951,
"id": 1651,
"name": "_masterCopy",
"nodeType": "VariableDeclaration",
"scope": 2966,
"scope": 1666,
"src": "520:19:13",
"stateVariable": false,
"storageLocation": "default",
@ -806,7 +806,7 @@
"typeString": "address"
},
"typeName": {
"id": 2950,
"id": 1650,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "520:7:13",
@ -823,12 +823,12 @@
},
"payable": false,
"returnParameters": {
"id": 2953,
"id": 1653,
"nodeType": "ParameterList",
"parameters": [],
"src": "560:0:13"
},
"scope": 2988,
"scope": 1688,
"src": "508:168:13",
"stateMutability": "nonpayable",
"superFunction": null,
@ -836,13 +836,13 @@
},
{
"body": {
"id": 2970,
"id": 1670,
"nodeType": "Block",
"src": "826:470:13",
"statements": [
{
"externalReferences": [],
"id": 2969,
"id": 1669,
"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": "900:396:13"
@ -850,7 +850,7 @@
]
},
"documentation": "@dev Fallback function forwards all transactions and returns all received return data.",
"id": 2971,
"id": 1671,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
@ -858,19 +858,19 @@
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2967,
"id": 1667,
"nodeType": "ParameterList",
"parameters": [],
"src": "786:2:13"
},
"payable": true,
"returnParameters": {
"id": 2968,
"id": 1668,
"nodeType": "ParameterList",
"parameters": [],
"src": "826:0:13"
},
"scope": 2988,
"scope": 1688,
"src": "777:519:13",
"stateMutability": "payable",
"superFunction": null,
@ -878,33 +878,33 @@
},
{
"body": {
"id": 2978,
"id": 1678,
"nodeType": "Block",
"src": "1386:34:13",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 2976,
"id": 1676,
"name": "masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2949,
"referencedDeclaration": 1649,
"src": "1403:10:13",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 2975,
"id": 2977,
"functionReturnParameters": 1675,
"id": 1677,
"nodeType": "Return",
"src": "1396:17:13"
}
]
},
"documentation": null,
"id": 2979,
"id": 1679,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
@ -912,22 +912,22 @@
"name": "implementation",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2972,
"id": 1672,
"nodeType": "ParameterList",
"parameters": [],
"src": "1325:2:13"
},
"payable": false,
"returnParameters": {
"id": 2975,
"id": 1675,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2974,
"id": 1674,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 2979,
"scope": 1679,
"src": "1373:7:13",
"stateVariable": false,
"storageLocation": "default",
@ -936,7 +936,7 @@
"typeString": "address"
},
"typeName": {
"id": 2973,
"id": 1673,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1373:7:13",
@ -951,7 +951,7 @@
],
"src": "1372:9:13"
},
"scope": 2988,
"scope": 1688,
"src": "1302:118:13",
"stateMutability": "view",
"superFunction": null,
@ -959,7 +959,7 @@
},
{
"body": {
"id": 2986,
"id": 1686,
"nodeType": "Block",
"src": "1505:25:13",
"statements": [
@ -967,7 +967,7 @@
"expression": {
"argumentTypes": null,
"hexValue": "32",
"id": 2984,
"id": 1684,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -982,15 +982,15 @@
},
"value": "2"
},
"functionReturnParameters": 2983,
"id": 2985,
"functionReturnParameters": 1683,
"id": 1685,
"nodeType": "Return",
"src": "1515:8:13"
}
]
},
"documentation": null,
"id": 2987,
"id": 1687,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
@ -998,22 +998,22 @@
"name": "proxyType",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2980,
"id": 1680,
"nodeType": "ParameterList",
"parameters": [],
"src": "1444:2:13"
},
"payable": false,
"returnParameters": {
"id": 2983,
"id": 1683,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2982,
"id": 1682,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 2987,
"scope": 1687,
"src": "1492:7:13",
"stateVariable": false,
"storageLocation": "default",
@ -1022,7 +1022,7 @@
"typeString": "uint256"
},
"typeName": {
"id": 2981,
"id": 1681,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1492:7:13",
@ -1037,14 +1037,14 @@
],
"src": "1491:9:13"
},
"scope": 2988,
"scope": 1688,
"src": "1426:104:13",
"stateMutability": "pure",
"superFunction": null,
"visibility": "public"
}
],
"scope": 2989,
"scope": 1689,
"src": "190:1342:13"
}
],
@ -1056,5 +1056,5 @@
},
"networks": {},
"schemaVersion": "2.0.0",
"updatedAt": "2018-06-29T09:01:22.083Z"
"updatedAt": "2018-08-20T07:44:41.092Z"
}

View File

@ -47,14 +47,14 @@
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol",
"exportedSymbols": {
"ProxyFactory": [
3023
1723
]
},
"id": 3024,
"id": 1724,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2990,
"id": 1690,
"literals": [
"solidity",
"0.4",
@ -66,10 +66,10 @@
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol",
"file": "./Proxy.sol",
"id": 2991,
"id": 1691,
"nodeType": "ImportDirective",
"scope": 3024,
"sourceUnit": 2989,
"scope": 1724,
"sourceUnit": 1689,
"src": "24:21:14",
"symbolAliases": [],
"unitAlias": ""
@ -77,14 +77,14 @@
{
"baseContracts": [],
"contractDependencies": [
2988
1688
],
"contractKind": "contract",
"documentation": "@title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @author Stefan George - <stefan@gnosis.pm>",
"fullyImplemented": true,
"id": 3023,
"id": 1723,
"linearizedBaseContracts": [
3023
1723
],
"name": "ProxyFactory",
"nodeType": "ContractDefinition",
@ -92,36 +92,36 @@
{
"anonymous": false,
"documentation": null,
"id": 2995,
"id": 1695,
"name": "ProxyCreation",
"nodeType": "EventDefinition",
"parameters": {
"id": 2994,
"id": 1694,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2993,
"id": 1693,
"indexed": false,
"name": "proxy",
"nodeType": "VariableDeclaration",
"scope": 2995,
"scope": 1695,
"src": "274:11:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
},
"typeName": {
"contractScope": null,
"id": 2992,
"id": 1692,
"name": "Proxy",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2988,
"referencedDeclaration": 1688,
"src": "274:5:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
},
@ -135,28 +135,28 @@
},
{
"body": {
"id": 3021,
"id": 1721,
"nodeType": "Block",
"src": "634:314:14",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3009,
"id": 1709,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3004,
"id": 1704,
"name": "proxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3002,
"referencedDeclaration": 1702,
"src": "644:5:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
},
@ -167,11 +167,11 @@
"arguments": [
{
"argumentTypes": null,
"id": 3007,
"id": 1707,
"name": "masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2997,
"referencedDeclaration": 1697,
"src": "662:10:14",
"typeDescriptions": {
"typeIdentifier": "t_address",
@ -186,7 +186,7 @@
"typeString": "address"
}
],
"id": 3006,
"id": 1706,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -194,23 +194,23 @@
"nodeType": "NewExpression",
"src": "652:9:14",
"typeDescriptions": {
"typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$2988_$",
"typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$1688_$",
"typeString": "function (address) returns (contract Proxy)"
},
"typeName": {
"contractScope": null,
"id": 3005,
"id": 1705,
"name": "Proxy",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2988,
"referencedDeclaration": 1688,
"src": "656:5:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
}
},
"id": 3008,
"id": 1708,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -220,17 +220,17 @@
"nodeType": "FunctionCall",
"src": "652:21:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
},
"src": "644:29:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
},
"id": 3010,
"id": 1710,
"nodeType": "ExpressionStatement",
"src": "644:29:14"
},
@ -241,7 +241,7 @@
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3014,
"id": 1714,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -250,18 +250,18 @@
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3011,
"id": 1711,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2999,
"referencedDeclaration": 1699,
"src": "687:4:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3012,
"id": 1712,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -280,7 +280,7 @@
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3013,
"id": 1713,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -302,14 +302,14 @@
}
},
"falseBody": null,
"id": 3016,
"id": 1716,
"nodeType": "IfStatement",
"src": "683:237:14",
"trueBody": {
"externalReferences": [
{
"data": {
"declaration": 2999,
"declaration": 1699,
"isOffset": false,
"isSlot": false,
"src": "860:4:14",
@ -318,7 +318,7 @@
},
{
"proxy": {
"declaration": 3002,
"declaration": 1702,
"isOffset": false,
"isSlot": false,
"src": "827:5:14",
@ -327,7 +327,7 @@
},
{
"data": {
"declaration": 2999,
"declaration": 1699,
"isOffset": false,
"isSlot": false,
"src": "841:4:14",
@ -335,7 +335,7 @@
}
}
],
"id": 3015,
"id": 1715,
"nodeType": "InlineAssembly",
"operations": "{\n if eq(call(gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0), 0)\n {\n revert(0, 0)\n }\n}",
"src": "784:136:14"
@ -347,14 +347,14 @@
"arguments": [
{
"argumentTypes": null,
"id": 3018,
"id": 1718,
"name": "proxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3002,
"referencedDeclaration": 1702,
"src": "935:5:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
}
@ -362,22 +362,22 @@
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
],
"id": 3017,
"id": 1717,
"name": "ProxyCreation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2995,
"referencedDeclaration": 1695,
"src": "921:13:14",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$2988_$returns$__$",
"typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$1688_$returns$__$",
"typeString": "function (contract Proxy)"
}
},
"id": 3019,
"id": 1719,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -391,14 +391,14 @@
"typeString": "tuple()"
}
},
"id": 3020,
"id": 1720,
"nodeType": "EmitStatement",
"src": "916:25:14"
}
]
},
"documentation": "@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param masterCopy Address of master copy.\n @param data Payload for message call sent to new proxy contract.",
"id": 3022,
"id": 1722,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
@ -406,15 +406,15 @@
"name": "createProxy",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3000,
"id": 1700,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2997,
"id": 1697,
"name": "masterCopy",
"nodeType": "VariableDeclaration",
"scope": 3022,
"scope": 1722,
"src": "553:18:14",
"stateVariable": false,
"storageLocation": "default",
@ -423,7 +423,7 @@
"typeString": "address"
},
"typeName": {
"id": 2996,
"id": 1696,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "553:7:14",
@ -437,10 +437,10 @@
},
{
"constant": false,
"id": 2999,
"id": 1699,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3022,
"scope": 1722,
"src": "573:10:14",
"stateVariable": false,
"storageLocation": "default",
@ -449,7 +449,7 @@
"typeString": "bytes"
},
"typeName": {
"id": 2998,
"id": 1698,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "573:5:14",
@ -466,31 +466,31 @@
},
"payable": false,
"returnParameters": {
"id": 3003,
"id": 1703,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3002,
"id": 1702,
"name": "proxy",
"nodeType": "VariableDeclaration",
"scope": 3022,
"scope": 1722,
"src": "617:11:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
},
"typeName": {
"contractScope": null,
"id": 3001,
"id": 1701,
"name": "Proxy",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2988,
"referencedDeclaration": 1688,
"src": "617:5:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
},
@ -500,14 +500,14 @@
],
"src": "616:13:14"
},
"scope": 3023,
"scope": 1723,
"src": "532:416:14",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3024,
"scope": 1724,
"src": "225:725:14"
}
],
@ -517,14 +517,14 @@
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol",
"exportedSymbols": {
"ProxyFactory": [
3023
1723
]
},
"id": 3024,
"id": 1724,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2990,
"id": 1690,
"literals": [
"solidity",
"0.4",
@ -536,10 +536,10 @@
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol",
"file": "./Proxy.sol",
"id": 2991,
"id": 1691,
"nodeType": "ImportDirective",
"scope": 3024,
"sourceUnit": 2989,
"scope": 1724,
"sourceUnit": 1689,
"src": "24:21:14",
"symbolAliases": [],
"unitAlias": ""
@ -547,14 +547,14 @@
{
"baseContracts": [],
"contractDependencies": [
2988
1688
],
"contractKind": "contract",
"documentation": "@title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @author Stefan George - <stefan@gnosis.pm>",
"fullyImplemented": true,
"id": 3023,
"id": 1723,
"linearizedBaseContracts": [
3023
1723
],
"name": "ProxyFactory",
"nodeType": "ContractDefinition",
@ -562,36 +562,36 @@
{
"anonymous": false,
"documentation": null,
"id": 2995,
"id": 1695,
"name": "ProxyCreation",
"nodeType": "EventDefinition",
"parameters": {
"id": 2994,
"id": 1694,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2993,
"id": 1693,
"indexed": false,
"name": "proxy",
"nodeType": "VariableDeclaration",
"scope": 2995,
"scope": 1695,
"src": "274:11:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
},
"typeName": {
"contractScope": null,
"id": 2992,
"id": 1692,
"name": "Proxy",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2988,
"referencedDeclaration": 1688,
"src": "274:5:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
},
@ -605,28 +605,28 @@
},
{
"body": {
"id": 3021,
"id": 1721,
"nodeType": "Block",
"src": "634:314:14",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 3009,
"id": 1709,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 3004,
"id": 1704,
"name": "proxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3002,
"referencedDeclaration": 1702,
"src": "644:5:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
},
@ -637,11 +637,11 @@
"arguments": [
{
"argumentTypes": null,
"id": 3007,
"id": 1707,
"name": "masterCopy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2997,
"referencedDeclaration": 1697,
"src": "662:10:14",
"typeDescriptions": {
"typeIdentifier": "t_address",
@ -656,7 +656,7 @@
"typeString": "address"
}
],
"id": 3006,
"id": 1706,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -664,23 +664,23 @@
"nodeType": "NewExpression",
"src": "652:9:14",
"typeDescriptions": {
"typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$2988_$",
"typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$1688_$",
"typeString": "function (address) returns (contract Proxy)"
},
"typeName": {
"contractScope": null,
"id": 3005,
"id": 1705,
"name": "Proxy",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2988,
"referencedDeclaration": 1688,
"src": "656:5:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
}
},
"id": 3008,
"id": 1708,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -690,17 +690,17 @@
"nodeType": "FunctionCall",
"src": "652:21:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
},
"src": "644:29:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
},
"id": 3010,
"id": 1710,
"nodeType": "ExpressionStatement",
"src": "644:29:14"
},
@ -711,7 +711,7 @@
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 3014,
"id": 1714,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -720,18 +720,18 @@
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3011,
"id": 1711,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2999,
"referencedDeclaration": 1699,
"src": "687:4:14",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 3012,
"id": 1712,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -750,7 +750,7 @@
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 3013,
"id": 1713,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -772,14 +772,14 @@
}
},
"falseBody": null,
"id": 3016,
"id": 1716,
"nodeType": "IfStatement",
"src": "683:237:14",
"trueBody": {
"externalReferences": [
{
"data": {
"declaration": 2999,
"declaration": 1699,
"isOffset": false,
"isSlot": false,
"src": "860:4:14",
@ -788,7 +788,7 @@
},
{
"proxy": {
"declaration": 3002,
"declaration": 1702,
"isOffset": false,
"isSlot": false,
"src": "827:5:14",
@ -797,7 +797,7 @@
},
{
"data": {
"declaration": 2999,
"declaration": 1699,
"isOffset": false,
"isSlot": false,
"src": "841:4:14",
@ -805,7 +805,7 @@
}
}
],
"id": 3015,
"id": 1715,
"nodeType": "InlineAssembly",
"operations": "{\n if eq(call(gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0), 0)\n {\n revert(0, 0)\n }\n}",
"src": "784:136:14"
@ -817,14 +817,14 @@
"arguments": [
{
"argumentTypes": null,
"id": 3018,
"id": 1718,
"name": "proxy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3002,
"referencedDeclaration": 1702,
"src": "935:5:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
}
@ -832,22 +832,22 @@
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
],
"id": 3017,
"id": 1717,
"name": "ProxyCreation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2995,
"referencedDeclaration": 1695,
"src": "921:13:14",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$2988_$returns$__$",
"typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$1688_$returns$__$",
"typeString": "function (contract Proxy)"
}
},
"id": 3019,
"id": 1719,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -861,14 +861,14 @@
"typeString": "tuple()"
}
},
"id": 3020,
"id": 1720,
"nodeType": "EmitStatement",
"src": "916:25:14"
}
]
},
"documentation": "@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param masterCopy Address of master copy.\n @param data Payload for message call sent to new proxy contract.",
"id": 3022,
"id": 1722,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
@ -876,15 +876,15 @@
"name": "createProxy",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3000,
"id": 1700,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2997,
"id": 1697,
"name": "masterCopy",
"nodeType": "VariableDeclaration",
"scope": 3022,
"scope": 1722,
"src": "553:18:14",
"stateVariable": false,
"storageLocation": "default",
@ -893,7 +893,7 @@
"typeString": "address"
},
"typeName": {
"id": 2996,
"id": 1696,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "553:7:14",
@ -907,10 +907,10 @@
},
{
"constant": false,
"id": 2999,
"id": 1699,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3022,
"scope": 1722,
"src": "573:10:14",
"stateVariable": false,
"storageLocation": "default",
@ -919,7 +919,7 @@
"typeString": "bytes"
},
"typeName": {
"id": 2998,
"id": 1698,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "573:5:14",
@ -936,31 +936,31 @@
},
"payable": false,
"returnParameters": {
"id": 3003,
"id": 1703,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3002,
"id": 1702,
"name": "proxy",
"nodeType": "VariableDeclaration",
"scope": 3022,
"scope": 1722,
"src": "617:11:14",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
},
"typeName": {
"contractScope": null,
"id": 3001,
"id": 1701,
"name": "Proxy",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2988,
"referencedDeclaration": 1688,
"src": "617:5:14",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Proxy_$2988",
"typeIdentifier": "t_contract$_Proxy_$1688",
"typeString": "contract Proxy"
}
},
@ -970,14 +970,14 @@
],
"src": "616:13:14"
},
"scope": 3023,
"scope": 1723,
"src": "532:416:14",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 3024,
"scope": 1724,
"src": "225:725:14"
}
],
@ -991,28 +991,16 @@
"4": {
"events": {},
"links": {},
"address": "0xb91b58a0e2c5f0737cca7226c0ed41ae0f09af7d",
"transactionHash": "0x6c3db596a40030d69889e70063082d7b7979b3d9637e0a1370f10b1f9ea34772"
"address": "0x03991c5ca1c3057aac2a76d3d83d69afbc6947f7",
"transactionHash": "0x8ef777566f16cc1e7271862d04de617bfdd7d30005d78c895a5aa7b48fd2c30d"
},
"1530013596495": {
"1534750848541": {
"events": {},
"links": {},
"address": "0x9c30095bde0e76c19f0184e26dc7179eeab7aa67",
"transactionHash": "0xc52c6b366f718febb548464465461c5974c0f79b7f3f877c111faea2c9fda273"
},
"1530525742205": {
"events": {},
"links": {},
"address": "0x32d2a0e2b94b3282aea36376e601e07c80d89c23",
"transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285"
},
"1530611935189": {
"events": {},
"links": {},
"address": "0x51d27a55e3375e82e5965a1c266596b0239755f3",
"transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285"
"address": "0xb09bcc172050fbd4562da8b229cf3e45dc3045a6",
"transactionHash": "0xe665fef8b7b04e5623d1fc3cdd86dadbbda63ef832c7020e0412343759bbae12"
}
},
"schemaVersion": "2.0.0",
"updatedAt": "2018-07-03T09:59:18.516Z"
"updatedAt": "2018-08-20T07:50:29.679Z"
}

View File

@ -11,14 +11,14 @@
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol",
"exportedSymbols": {
"SecuredTokenTransfer": [
3048
1748
]
},
"id": 3049,
"id": 1749,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3025,
"id": 1725,
"literals": [
"solidity",
"0.4",
@ -33,30 +33,30 @@
"contractKind": "contract",
"documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 3048,
"id": 1748,
"linearizedBaseContracts": [
3048
1748
],
"name": "SecuredTokenTransfer",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 3046,
"id": 1746,
"nodeType": "Block",
"src": "590:592:15",
"statements": [
{
"assignments": [
3037
1737
],
"declarations": [
{
"constant": false,
"id": 3037,
"id": 1737,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3047,
"scope": 1747,
"src": "600:17:15",
"stateVariable": false,
"storageLocation": "memory",
@ -65,7 +65,7 @@
"typeString": "bytes"
},
"typeName": {
"id": 3036,
"id": 1736,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "600:5:15",
@ -78,14 +78,14 @@
"visibility": "internal"
}
],
"id": 3044,
"id": 1744,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "7472616e7366657228616464726573732c75696e7432353629",
"id": 3040,
"id": 1740,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -102,11 +102,11 @@
},
{
"argumentTypes": null,
"id": 3041,
"id": 1741,
"name": "receiver",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3029,
"referencedDeclaration": 1729,
"src": "673:8:15",
"typeDescriptions": {
"typeIdentifier": "t_address",
@ -115,11 +115,11 @@
},
{
"argumentTypes": null,
"id": 3042,
"id": 1742,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3031,
"referencedDeclaration": 1731,
"src": "683:6:15",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
@ -144,18 +144,18 @@
],
"expression": {
"argumentTypes": null,
"id": 3038,
"id": 1738,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4023,
"referencedDeclaration": 3815,
"src": "620:3:15",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3039,
"id": 1739,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -169,7 +169,7 @@
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 3043,
"id": 1743,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -190,7 +190,7 @@
"externalReferences": [
{
"transferred": {
"declaration": 3034,
"declaration": 1734,
"isOffset": false,
"isSlot": false,
"src": "1061:11:15",
@ -199,7 +199,7 @@
},
{
"data": {
"declaration": 3037,
"declaration": 1737,
"isOffset": false,
"isSlot": false,
"src": "857:4:15",
@ -208,7 +208,7 @@
},
{
"token": {
"declaration": 3027,
"declaration": 1727,
"isOffset": false,
"isSlot": false,
"src": "824:5:15",
@ -217,7 +217,7 @@
},
{
"data": {
"declaration": 3037,
"declaration": 1737,
"isOffset": false,
"isSlot": false,
"src": "838:4:15",
@ -226,7 +226,7 @@
},
{
"transferred": {
"declaration": 3034,
"declaration": 1734,
"isOffset": false,
"isSlot": false,
"src": "1012:11:15",
@ -235,7 +235,7 @@
},
{
"transferred": {
"declaration": 3034,
"declaration": 1734,
"isOffset": false,
"isSlot": false,
"src": "1148:11:15",
@ -243,7 +243,7 @@
}
}
],
"id": 3045,
"id": 1745,
"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:15"
@ -251,7 +251,7 @@
]
},
"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": 3047,
"id": 1747,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
@ -259,15 +259,15 @@
"name": "transferToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3032,
"id": 1732,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3027,
"id": 1727,
"name": "token",
"nodeType": "VariableDeclaration",
"scope": 3047,
"scope": 1747,
"src": "463:13:15",
"stateVariable": false,
"storageLocation": "default",
@ -276,7 +276,7 @@
"typeString": "address"
},
"typeName": {
"id": 3026,
"id": 1726,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "463:7:15",
@ -290,10 +290,10 @@
},
{
"constant": false,
"id": 3029,
"id": 1729,
"name": "receiver",
"nodeType": "VariableDeclaration",
"scope": 3047,
"scope": 1747,
"src": "487:16:15",
"stateVariable": false,
"storageLocation": "default",
@ -302,7 +302,7 @@
"typeString": "address"
},
"typeName": {
"id": 3028,
"id": 1728,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "487:7:15",
@ -316,10 +316,10 @@
},
{
"constant": false,
"id": 3031,
"id": 1731,
"name": "amount",
"nodeType": "VariableDeclaration",
"scope": 3047,
"scope": 1747,
"src": "513:14:15",
"stateVariable": false,
"storageLocation": "default",
@ -328,7 +328,7 @@
"typeString": "uint256"
},
"typeName": {
"id": 3030,
"id": 1730,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "513:7:15",
@ -345,15 +345,15 @@
},
"payable": false,
"returnParameters": {
"id": 3035,
"id": 1735,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3034,
"id": 1734,
"name": "transferred",
"nodeType": "VariableDeclaration",
"scope": 3047,
"scope": 1747,
"src": "568:16:15",
"stateVariable": false,
"storageLocation": "default",
@ -362,7 +362,7 @@
"typeString": "bool"
},
"typeName": {
"id": 3033,
"id": 1733,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "568:4:15",
@ -377,14 +377,14 @@
],
"src": "567:18:15"
},
"scope": 3048,
"scope": 1748,
"src": "430:752:15",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 3049,
"scope": 1749,
"src": "133:1051:15"
}
],
@ -394,14 +394,14 @@
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol",
"exportedSymbols": {
"SecuredTokenTransfer": [
3048
1748
]
},
"id": 3049,
"id": 1749,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3025,
"id": 1725,
"literals": [
"solidity",
"0.4",
@ -416,30 +416,30 @@
"contractKind": "contract",
"documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 3048,
"id": 1748,
"linearizedBaseContracts": [
3048
1748
],
"name": "SecuredTokenTransfer",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 3046,
"id": 1746,
"nodeType": "Block",
"src": "590:592:15",
"statements": [
{
"assignments": [
3037
1737
],
"declarations": [
{
"constant": false,
"id": 3037,
"id": 1737,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3047,
"scope": 1747,
"src": "600:17:15",
"stateVariable": false,
"storageLocation": "memory",
@ -448,7 +448,7 @@
"typeString": "bytes"
},
"typeName": {
"id": 3036,
"id": 1736,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "600:5:15",
@ -461,14 +461,14 @@
"visibility": "internal"
}
],
"id": 3044,
"id": 1744,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "7472616e7366657228616464726573732c75696e7432353629",
"id": 3040,
"id": 1740,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -485,11 +485,11 @@
},
{
"argumentTypes": null,
"id": 3041,
"id": 1741,
"name": "receiver",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3029,
"referencedDeclaration": 1729,
"src": "673:8:15",
"typeDescriptions": {
"typeIdentifier": "t_address",
@ -498,11 +498,11 @@
},
{
"argumentTypes": null,
"id": 3042,
"id": 1742,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3031,
"referencedDeclaration": 1731,
"src": "683:6:15",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
@ -527,18 +527,18 @@
],
"expression": {
"argumentTypes": null,
"id": 3038,
"id": 1738,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4023,
"referencedDeclaration": 3815,
"src": "620:3:15",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 3039,
"id": 1739,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -552,7 +552,7 @@
"typeString": "function (string memory) pure returns (bytes memory)"
}
},
"id": 3043,
"id": 1743,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -573,7 +573,7 @@
"externalReferences": [
{
"transferred": {
"declaration": 3034,
"declaration": 1734,
"isOffset": false,
"isSlot": false,
"src": "1061:11:15",
@ -582,7 +582,7 @@
},
{
"data": {
"declaration": 3037,
"declaration": 1737,
"isOffset": false,
"isSlot": false,
"src": "857:4:15",
@ -591,7 +591,7 @@
},
{
"token": {
"declaration": 3027,
"declaration": 1727,
"isOffset": false,
"isSlot": false,
"src": "824:5:15",
@ -600,7 +600,7 @@
},
{
"data": {
"declaration": 3037,
"declaration": 1737,
"isOffset": false,
"isSlot": false,
"src": "838:4:15",
@ -609,7 +609,7 @@
},
{
"transferred": {
"declaration": 3034,
"declaration": 1734,
"isOffset": false,
"isSlot": false,
"src": "1012:11:15",
@ -618,7 +618,7 @@
},
{
"transferred": {
"declaration": 3034,
"declaration": 1734,
"isOffset": false,
"isSlot": false,
"src": "1148:11:15",
@ -626,7 +626,7 @@
}
}
],
"id": 3045,
"id": 1745,
"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:15"
@ -634,7 +634,7 @@
]
},
"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": 3047,
"id": 1747,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
@ -642,15 +642,15 @@
"name": "transferToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3032,
"id": 1732,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3027,
"id": 1727,
"name": "token",
"nodeType": "VariableDeclaration",
"scope": 3047,
"scope": 1747,
"src": "463:13:15",
"stateVariable": false,
"storageLocation": "default",
@ -659,7 +659,7 @@
"typeString": "address"
},
"typeName": {
"id": 3026,
"id": 1726,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "463:7:15",
@ -673,10 +673,10 @@
},
{
"constant": false,
"id": 3029,
"id": 1729,
"name": "receiver",
"nodeType": "VariableDeclaration",
"scope": 3047,
"scope": 1747,
"src": "487:16:15",
"stateVariable": false,
"storageLocation": "default",
@ -685,7 +685,7 @@
"typeString": "address"
},
"typeName": {
"id": 3028,
"id": 1728,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "487:7:15",
@ -699,10 +699,10 @@
},
{
"constant": false,
"id": 3031,
"id": 1731,
"name": "amount",
"nodeType": "VariableDeclaration",
"scope": 3047,
"scope": 1747,
"src": "513:14:15",
"stateVariable": false,
"storageLocation": "default",
@ -711,7 +711,7 @@
"typeString": "uint256"
},
"typeName": {
"id": 3030,
"id": 1730,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "513:7:15",
@ -728,15 +728,15 @@
},
"payable": false,
"returnParameters": {
"id": 3035,
"id": 1735,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 3034,
"id": 1734,
"name": "transferred",
"nodeType": "VariableDeclaration",
"scope": 3047,
"scope": 1747,
"src": "568:16:15",
"stateVariable": false,
"storageLocation": "default",
@ -745,7 +745,7 @@
"typeString": "bool"
},
"typeName": {
"id": 3033,
"id": 1733,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "568:4:15",
@ -760,14 +760,14 @@
],
"src": "567:18:15"
},
"scope": 3048,
"scope": 1748,
"src": "430:752:15",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 3049,
"scope": 1749,
"src": "133:1051:15"
}
],
@ -779,5 +779,5 @@
},
"networks": {},
"schemaVersion": "2.0.0",
"updatedAt": "2018-06-29T09:01:22.084Z"
"updatedAt": "2018-08-20T07:44:41.093Z"
}

View File

@ -11,14 +11,14 @@
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol",
"exportedSymbols": {
"SelfAuthorized": [
3065
1765
]
},
"id": 3066,
"id": 1766,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3050,
"id": 1750,
"literals": [
"solidity",
"0.4",
@ -33,16 +33,16 @@
"contractKind": "contract",
"documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 3065,
"id": 1765,
"linearizedBaseContracts": [
3065
1765
],
"name": "SelfAuthorized",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 3063,
"id": 1763,
"nodeType": "Block",
"src": "204:112:16",
"statements": [
@ -56,7 +56,7 @@
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 3058,
"id": 1758,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -65,18 +65,18 @@
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3053,
"id": 1753,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4036,
"referencedDeclaration": 3828,
"src": "222:3:16",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3054,
"id": 1754,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -97,14 +97,14 @@
"arguments": [
{
"argumentTypes": null,
"id": 3056,
"id": 1756,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4055,
"referencedDeclaration": 3851,
"src": "244:4:16",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SelfAuthorized_$3065",
"typeIdentifier": "t_contract$_SelfAuthorized_$1765",
"typeString": "contract SelfAuthorized"
}
}
@ -112,11 +112,11 @@
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_SelfAuthorized_$3065",
"typeIdentifier": "t_contract$_SelfAuthorized_$1765",
"typeString": "contract SelfAuthorized"
}
],
"id": 3055,
"id": 1755,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -129,7 +129,7 @@
},
"typeName": "address"
},
"id": 3057,
"id": 1757,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -152,7 +152,7 @@
{
"argumentTypes": null,
"hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374",
"id": 3059,
"id": 1759,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -179,21 +179,21 @@
"typeString": "literal_string \"Method can only be called from this contract\""
}
],
"id": 3052,
"id": 1752,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4039,
4040
3831,
3832
],
"referencedDeclaration": 4040,
"referencedDeclaration": 3832,
"src": "214:7:16",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 3060,
"id": 1760,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -207,23 +207,23 @@
"typeString": "tuple()"
}
},
"id": 3061,
"id": 1761,
"nodeType": "ExpressionStatement",
"src": "214:84:16"
},
{
"id": 3062,
"id": 1762,
"nodeType": "PlaceholderStatement",
"src": "308:1:16"
}
]
},
"documentation": null,
"id": 3064,
"id": 1764,
"name": "authorized",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 3051,
"id": 1751,
"nodeType": "ParameterList",
"parameters": [],
"src": "201:2:16"
@ -232,7 +232,7 @@
"visibility": "internal"
}
],
"scope": 3066,
"scope": 1766,
"src": "152:166:16"
}
],
@ -242,14 +242,14 @@
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol",
"exportedSymbols": {
"SelfAuthorized": [
3065
1765
]
},
"id": 3066,
"id": 1766,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3050,
"id": 1750,
"literals": [
"solidity",
"0.4",
@ -264,16 +264,16 @@
"contractKind": "contract",
"documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 3065,
"id": 1765,
"linearizedBaseContracts": [
3065
1765
],
"name": "SelfAuthorized",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 3063,
"id": 1763,
"nodeType": "Block",
"src": "204:112:16",
"statements": [
@ -287,7 +287,7 @@
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 3058,
"id": 1758,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -296,18 +296,18 @@
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 3053,
"id": 1753,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4036,
"referencedDeclaration": 3828,
"src": "222:3:16",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 3054,
"id": 1754,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -328,14 +328,14 @@
"arguments": [
{
"argumentTypes": null,
"id": 3056,
"id": 1756,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4055,
"referencedDeclaration": 3851,
"src": "244:4:16",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SelfAuthorized_$3065",
"typeIdentifier": "t_contract$_SelfAuthorized_$1765",
"typeString": "contract SelfAuthorized"
}
}
@ -343,11 +343,11 @@
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_SelfAuthorized_$3065",
"typeIdentifier": "t_contract$_SelfAuthorized_$1765",
"typeString": "contract SelfAuthorized"
}
],
"id": 3055,
"id": 1755,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -360,7 +360,7 @@
},
"typeName": "address"
},
"id": 3057,
"id": 1757,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -383,7 +383,7 @@
{
"argumentTypes": null,
"hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374",
"id": 3059,
"id": 1759,
"isConstant": false,
"isLValue": false,
"isPure": true,
@ -410,21 +410,21 @@
"typeString": "literal_string \"Method can only be called from this contract\""
}
],
"id": 3052,
"id": 1752,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4039,
4040
3831,
3832
],
"referencedDeclaration": 4040,
"referencedDeclaration": 3832,
"src": "214:7:16",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 3060,
"id": 1760,
"isConstant": false,
"isLValue": false,
"isPure": false,
@ -438,23 +438,23 @@
"typeString": "tuple()"
}
},
"id": 3061,
"id": 1761,
"nodeType": "ExpressionStatement",
"src": "214:84:16"
},
{
"id": 3062,
"id": 1762,
"nodeType": "PlaceholderStatement",
"src": "308:1:16"
}
]
},
"documentation": null,
"id": 3064,
"id": 1764,
"name": "authorized",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 3051,
"id": 1751,
"nodeType": "ParameterList",
"parameters": [],
"src": "201:2:16"
@ -463,7 +463,7 @@
"visibility": "internal"
}
],
"scope": 3066,
"scope": 1766,
"src": "152:166:16"
}
],
@ -475,5 +475,5 @@
},
"networks": {},
"schemaVersion": "2.0.0",
"updatedAt": "2018-06-29T09:01:22.084Z"
"updatedAt": "2018-08-20T07:44:41.093Z"
}

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 one or more lines are too long

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 one or more lines are too long

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 one or more lines are too long