{ "contractName": "ProxyFactory", "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "name": "proxy", "type": "address" } ], "name": "ProxyCreation", "type": "event" }, { "constant": false, "inputs": [ { "name": "masterCopy", "type": "address" }, { "name": "data", "type": "bytes" } ], "name": "createProxy", "outputs": [ { "name": "proxy", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b506104dd806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102a38061020f833901905600608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820fb8f7addc79801292900c520af66dd86a1f9d0b643abe5d3ef1ac03eeb2d04080029a165627a7a72305820c742bd15271cf4492803c598458497f17945465dfdcebd0ab4ff208e21d7becf0029", "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102a38061020f833901905600608060405234801561001057600080fd5b506040516020806102a38339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff16141515156100e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806101386000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820fb8f7addc79801292900c520af66dd86a1f9d0b643abe5d3ef1ac03eeb2d04080029a165627a7a72305820c742bd15271cf4492803c598458497f17945465dfdcebd0ab4ff208e21d7becf0029", "sourceMap": "225:725:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:725:14;;;;;;;", "deployedSourceMap": "225:725:14:-;;;;;;;;;;;;;;;;;;;;;;;;532:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;532:416:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;617:11;662:10;652:21;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;652:21:14;644:29;;701:1;687:4;:11;:15;683:237;;;874:1;870;867;860:4;854:11;847:4;841;837:15;834:1;827:5;822:3;817:55;814:62;811:2;;;889:1;886;879:12;811:2;793:114;921:20;935:5;921:20;;;;;;;;;;;;;;;;;;;;;;532:416;;;;:::o;225:725::-;;;;;;;;;;:::o", "source": "pragma solidity 0.4.24;\nimport \"./Proxy.sol\";\n\n\n/// @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 - \ncontract ProxyFactory {\n\n event ProxyCreation(Proxy proxy);\n\n /// @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.\n function createProxy(address masterCopy, bytes data)\n public\n returns (Proxy proxy)\n {\n proxy = new Proxy(masterCopy);\n if (data.length > 0)\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n if eq(call(gas, proxy, 0, add(data, 0x20), mload(data), 0, 0), 0) { revert(0, 0) }\n }\n emit ProxyCreation(proxy);\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol", "exportedSymbols": { "ProxyFactory": [ 3023 ] }, "id": 3024, "nodeType": "SourceUnit", "nodes": [ { "id": 2990, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:23:14" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", "file": "./Proxy.sol", "id": 2991, "nodeType": "ImportDirective", "scope": 3024, "sourceUnit": 2989, "src": "24:21:14", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ 2988 ], "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 - ", "fullyImplemented": true, "id": 3023, "linearizedBaseContracts": [ 3023 ], "name": "ProxyFactory", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": null, "id": 2995, "name": "ProxyCreation", "nodeType": "EventDefinition", "parameters": { "id": 2994, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2993, "indexed": false, "name": "proxy", "nodeType": "VariableDeclaration", "scope": 2995, "src": "274:11:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, "id": 2992, "name": "Proxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2988, "src": "274:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } }, "value": null, "visibility": "internal" } ], "src": "273:13:14" }, "src": "254:33:14" }, { "body": { "id": 3021, "nodeType": "Block", "src": "634:314:14", "statements": [ { "expression": { "argumentTypes": null, "id": 3009, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3004, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3002, "src": "644:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3007, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2997, "src": "662:10:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "652:9:14", "typeDescriptions": { "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$2988_$", "typeString": "function (address) returns (contract Proxy)" }, "typeName": { "contractScope": null, "id": 3005, "name": "Proxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2988, "src": "656:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } } }, "id": 3008, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "652:21:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } }, "src": "644:29:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } }, "id": 3010, "nodeType": "ExpressionStatement", "src": "644:29:14" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3014, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3011, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2999, "src": "687:4:14", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 3012, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "687:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 3013, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "701:1:14", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "687:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3016, "nodeType": "IfStatement", "src": "683:237:14", "trueBody": { "externalReferences": [ { "data": { "declaration": 2999, "isOffset": false, "isSlot": false, "src": "860:4:14", "valueSize": 1 } }, { "proxy": { "declaration": 3002, "isOffset": false, "isSlot": false, "src": "827:5:14", "valueSize": 1 } }, { "data": { "declaration": 2999, "isOffset": false, "isSlot": false, "src": "841:4:14", "valueSize": 1 } } ], "id": 3015, "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" } }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3018, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3002, "src": "935:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } ], "id": 3017, "name": "ProxyCreation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2995, "src": "921:13:14", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$2988_$returns$__$", "typeString": "function (contract Proxy)" } }, "id": 3019, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "921:20:14", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3020, "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, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "createProxy", "nodeType": "FunctionDefinition", "parameters": { "id": 3000, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2997, "name": "masterCopy", "nodeType": "VariableDeclaration", "scope": 3022, "src": "553:18:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2996, "name": "address", "nodeType": "ElementaryTypeName", "src": "553:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2999, "name": "data", "nodeType": "VariableDeclaration", "scope": 3022, "src": "573:10:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2998, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "573:5:14", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "552:32:14" }, "payable": false, "returnParameters": { "id": 3003, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3002, "name": "proxy", "nodeType": "VariableDeclaration", "scope": 3022, "src": "617:11:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, "id": 3001, "name": "Proxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2988, "src": "617:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } }, "value": null, "visibility": "internal" } ], "src": "616:13:14" }, "scope": 3023, "src": "532:416:14", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 3024, "src": "225:725:14" } ], "src": "0:951:14" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol", "exportedSymbols": { "ProxyFactory": [ 3023 ] }, "id": 3024, "nodeType": "SourceUnit", "nodes": [ { "id": 2990, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", "src": "0:23:14" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", "file": "./Proxy.sol", "id": 2991, "nodeType": "ImportDirective", "scope": 3024, "sourceUnit": 2989, "src": "24:21:14", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ 2988 ], "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 - ", "fullyImplemented": true, "id": 3023, "linearizedBaseContracts": [ 3023 ], "name": "ProxyFactory", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": null, "id": 2995, "name": "ProxyCreation", "nodeType": "EventDefinition", "parameters": { "id": 2994, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2993, "indexed": false, "name": "proxy", "nodeType": "VariableDeclaration", "scope": 2995, "src": "274:11:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, "id": 2992, "name": "Proxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2988, "src": "274:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } }, "value": null, "visibility": "internal" } ], "src": "273:13:14" }, "src": "254:33:14" }, { "body": { "id": 3021, "nodeType": "Block", "src": "634:314:14", "statements": [ { "expression": { "argumentTypes": null, "id": 3009, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 3004, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3002, "src": "644:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3007, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2997, "src": "662:10:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 3006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", "src": "652:9:14", "typeDescriptions": { "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$2988_$", "typeString": "function (address) returns (contract Proxy)" }, "typeName": { "contractScope": null, "id": 3005, "name": "Proxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2988, "src": "656:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } } }, "id": 3008, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "652:21:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } }, "src": "644:29:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } }, "id": 3010, "nodeType": "ExpressionStatement", "src": "644:29:14" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 3014, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 3011, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2999, "src": "687:4:14", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 3012, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "687:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "argumentTypes": null, "hexValue": "30", "id": 3013, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "701:1:14", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "687:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 3016, "nodeType": "IfStatement", "src": "683:237:14", "trueBody": { "externalReferences": [ { "data": { "declaration": 2999, "isOffset": false, "isSlot": false, "src": "860:4:14", "valueSize": 1 } }, { "proxy": { "declaration": 3002, "isOffset": false, "isSlot": false, "src": "827:5:14", "valueSize": 1 } }, { "data": { "declaration": 2999, "isOffset": false, "isSlot": false, "src": "841:4:14", "valueSize": 1 } } ], "id": 3015, "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" } }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 3018, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3002, "src": "935:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } ], "id": 3017, "name": "ProxyCreation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2995, "src": "921:13:14", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$2988_$returns$__$", "typeString": "function (contract Proxy)" } }, "id": 3019, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "921:20:14", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 3020, "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, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "createProxy", "nodeType": "FunctionDefinition", "parameters": { "id": 3000, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2997, "name": "masterCopy", "nodeType": "VariableDeclaration", "scope": 3022, "src": "553:18:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2996, "name": "address", "nodeType": "ElementaryTypeName", "src": "553:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 2999, "name": "data", "nodeType": "VariableDeclaration", "scope": 3022, "src": "573:10:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 2998, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "573:5:14", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "552:32:14" }, "payable": false, "returnParameters": { "id": 3003, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 3002, "name": "proxy", "nodeType": "VariableDeclaration", "scope": 3022, "src": "617:11:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, "id": 3001, "name": "Proxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2988, "src": "617:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$2988", "typeString": "contract Proxy" } }, "value": null, "visibility": "internal" } ], "src": "616:13:14" }, "scope": 3023, "src": "532:416:14", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 3024, "src": "225:725:14" } ], "src": "0:951:14" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, "address": "0xb91b58a0e2c5f0737cca7226c0ed41ae0f09af7d", "transactionHash": "0x6c3db596a40030d69889e70063082d7b7979b3d9637e0a1370f10b1f9ea34772" }, "1530013596495": { "events": {}, "links": {}, "address": "0x9c30095bde0e76c19f0184e26dc7179eeab7aa67", "transactionHash": "0xc52c6b366f718febb548464465461c5974c0f79b7f3f877c111faea2c9fda273" }, "1530525742205": { "events": {}, "links": {}, "address": "0x32d2a0e2b94b3282aea36376e601e07c80d89c23", "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" }, "1530611935189": { "events": {}, "links": {}, "address": "0x51d27a55e3375e82e5965a1c266596b0239755f3", "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" } }, "schemaVersion": "2.0.0", "updatedAt": "2018-07-03T09:59:18.516Z" }