{ "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": [ 1723 ] }, "id": 1724, "nodeType": "SourceUnit", "nodes": [ { "id": 1690, "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": 1691, "nodeType": "ImportDirective", "scope": 1724, "sourceUnit": 1689, "src": "24:21:14", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ 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 - ", "fullyImplemented": true, "id": 1723, "linearizedBaseContracts": [ 1723 ], "name": "ProxyFactory", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": null, "id": 1695, "name": "ProxyCreation", "nodeType": "EventDefinition", "parameters": { "id": 1694, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1693, "indexed": false, "name": "proxy", "nodeType": "VariableDeclaration", "scope": 1695, "src": "274:11:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, "id": 1692, "name": "Proxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1688, "src": "274:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, "value": null, "visibility": "internal" } ], "src": "273:13:14" }, "src": "254:33:14" }, { "body": { "id": 1721, "nodeType": "Block", "src": "634:314:14", "statements": [ { "expression": { "argumentTypes": null, "id": 1709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1704, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1702, "src": "644:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1707, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1697, "src": "662:10:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1706, "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_$1688_$", "typeString": "function (address) returns (contract Proxy)" }, "typeName": { "contractScope": null, "id": 1705, "name": "Proxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1688, "src": "656:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } } }, "id": 1708, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "652:21:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, "src": "644:29:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, "id": 1710, "nodeType": "ExpressionStatement", "src": "644:29:14" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1711, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1699, "src": "687:4:14", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 1712, "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": 1713, "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": 1716, "nodeType": "IfStatement", "src": "683:237:14", "trueBody": { "externalReferences": [ { "data": { "declaration": 1699, "isOffset": false, "isSlot": false, "src": "860:4:14", "valueSize": 1 } }, { "proxy": { "declaration": 1702, "isOffset": false, "isSlot": false, "src": "827:5:14", "valueSize": 1 } }, { "data": { "declaration": 1699, "isOffset": false, "isSlot": false, "src": "841:4:14", "valueSize": 1 } } ], "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" } }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1718, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1702, "src": "935:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } ], "id": 1717, "name": "ProxyCreation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1695, "src": "921:13:14", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$1688_$returns$__$", "typeString": "function (contract Proxy)" } }, "id": 1719, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "921:20:14", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "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": 1722, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "createProxy", "nodeType": "FunctionDefinition", "parameters": { "id": 1700, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1697, "name": "masterCopy", "nodeType": "VariableDeclaration", "scope": 1722, "src": "553:18:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1696, "name": "address", "nodeType": "ElementaryTypeName", "src": "553:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1699, "name": "data", "nodeType": "VariableDeclaration", "scope": 1722, "src": "573:10:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 1698, "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": 1703, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1702, "name": "proxy", "nodeType": "VariableDeclaration", "scope": 1722, "src": "617:11:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, "id": 1701, "name": "Proxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1688, "src": "617:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, "value": null, "visibility": "internal" } ], "src": "616:13:14" }, "scope": 1723, "src": "532:416:14", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 1724, "src": "225:725:14" } ], "src": "0:951:14" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol", "exportedSymbols": { "ProxyFactory": [ 1723 ] }, "id": 1724, "nodeType": "SourceUnit", "nodes": [ { "id": 1690, "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": 1691, "nodeType": "ImportDirective", "scope": 1724, "sourceUnit": 1689, "src": "24:21:14", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ 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 - ", "fullyImplemented": true, "id": 1723, "linearizedBaseContracts": [ 1723 ], "name": "ProxyFactory", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": null, "id": 1695, "name": "ProxyCreation", "nodeType": "EventDefinition", "parameters": { "id": 1694, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1693, "indexed": false, "name": "proxy", "nodeType": "VariableDeclaration", "scope": 1695, "src": "274:11:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, "id": 1692, "name": "Proxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1688, "src": "274:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, "value": null, "visibility": "internal" } ], "src": "273:13:14" }, "src": "254:33:14" }, { "body": { "id": 1721, "nodeType": "Block", "src": "634:314:14", "statements": [ { "expression": { "argumentTypes": null, "id": 1709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 1704, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1702, "src": "644:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1707, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1697, "src": "662:10:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 1706, "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_$1688_$", "typeString": "function (address) returns (contract Proxy)" }, "typeName": { "contractScope": null, "id": 1705, "name": "Proxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1688, "src": "656:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } } }, "id": 1708, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "652:21:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, "src": "644:29:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, "id": 1710, "nodeType": "ExpressionStatement", "src": "644:29:14" }, { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 1714, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 1711, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1699, "src": "687:4:14", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 1712, "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": 1713, "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": 1716, "nodeType": "IfStatement", "src": "683:237:14", "trueBody": { "externalReferences": [ { "data": { "declaration": 1699, "isOffset": false, "isSlot": false, "src": "860:4:14", "valueSize": 1 } }, { "proxy": { "declaration": 1702, "isOffset": false, "isSlot": false, "src": "827:5:14", "valueSize": 1 } }, { "data": { "declaration": 1699, "isOffset": false, "isSlot": false, "src": "841:4:14", "valueSize": 1 } } ], "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" } }, { "eventCall": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 1718, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1702, "src": "935:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } ], "id": 1717, "name": "ProxyCreation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1695, "src": "921:13:14", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$1688_$returns$__$", "typeString": "function (contract Proxy)" } }, "id": 1719, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "921:20:14", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "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": 1722, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], "name": "createProxy", "nodeType": "FunctionDefinition", "parameters": { "id": 1700, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1697, "name": "masterCopy", "nodeType": "VariableDeclaration", "scope": 1722, "src": "553:18:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 1696, "name": "address", "nodeType": "ElementaryTypeName", "src": "553:7:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 1699, "name": "data", "nodeType": "VariableDeclaration", "scope": 1722, "src": "573:10:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 1698, "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": 1703, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 1702, "name": "proxy", "nodeType": "VariableDeclaration", "scope": 1722, "src": "617:11:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, "id": 1701, "name": "Proxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 1688, "src": "617:5:14", "typeDescriptions": { "typeIdentifier": "t_contract$_Proxy_$1688", "typeString": "contract Proxy" } }, "value": null, "visibility": "internal" } ], "src": "616:13:14" }, "scope": 1723, "src": "532:416:14", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 1724, "src": "225:725:14" } ], "src": "0:951:14" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, "address": "0x03991c5ca1c3057aac2a76d3d83d69afbc6947f7", "transactionHash": "0x8ef777566f16cc1e7271862d04de617bfdd7d30005d78c895a5aa7b48fd2c30d" }, "1534750848541": { "events": {}, "links": {}, "address": "0xb09bcc172050fbd4562da8b229cf3e45dc3045a6", "transactionHash": "0xe665fef8b7b04e5623d1fc3cdd86dadbbda63ef832c7020e0412343759bbae12" } }, "schemaVersion": "2.0.0", "updatedAt": "2018-08-20T07:50:29.679Z" }