{"contractName":"DelegateConstructorProxy","abi":[{"inputs":[{"internalType":"address","name":"_masterCopy","type":"address"},{"internalType":"bytes","name":"initializer","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}],"bytecode":"0x608060405234801561001057600080fd5b506040516102ea3803806102ea8339818101604052604081101561003357600080fd5b81019080805190602001909291908051604051939291908464010000000082111561005d57600080fd5b8382019150602082018581111561007357600080fd5b825186600182028301116401000000008211171561009057600080fd5b8083526020830192505050908051906020019080838360005b838110156100c45780820151818401526020810190506100a9565b50505050905090810190601f1680156100f15780820380516001836020036101000a031916815260200191505b5060405250505081600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561017f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806102c66024913960400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060008151111561020c5773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e6000821415610208573d81fd5b5050505b505060aa8061021c6000396000f3fe608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea265627a7a72315820c3510a8a6c5b65ca8e96d5526ac9618ce50542ba78fc34464f95234d1634fee164736f6c634300050e0032496e76616c6964206d617374657220636f707920616464726573732070726f7669646564","deployedBytecode":"0x608060405273ffffffffffffffffffffffffffffffffffffffff600054167fa619486e0000000000000000000000000000000000000000000000000000000060003514156050578060005260206000f35b3660008037600080366000845af43d6000803e60008114156070573d6000fd5b3d6000f3fea265627a7a72315820c3510a8a6c5b65ca8e96d5526ac9618ce50542ba78fc34464f95234d1634fee164736f6c634300050e0032","sourceMap":"363:893:28:-;;;618:636;8:9:-1;5:2;;;30:1;27;20:12;5:2;618:636:28;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;618:636:28;;;;;;;;;;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;330:9;325:1;311:12;307:20;289:16;285:43;282:58;261:11;247:12;244:29;233:115;230:2;;;361:1;358;351:12;230:2;384:12;379:3;372:25;420:4;415:3;411:14;404:21;;0:432;;618:636:28;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;618:636:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;683:11;985:1:31;962:25;;:11;:25;;;;954:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1051:11;1038:10;;:24;;;;;;;;;;;;;;;;;;892:177;750:1:28;729:11;:18;:22;725:523;;;894:42;890:1;884:8;880:57;1058:1;1055;1041:11;1035:18;1028:4;1015:11;1011:22;999:10;991:5;986:3;982:15;969:91;1094:4;1088:11;1139:16;1136:1;1131:3;1116:40;1188:1;1179:7;1176:14;1173:2;;;1205:16;1200:3;1193:29;1173:2;844:394;;;;618:636;;363:893;;;;;;","deployedSourceMap":"363:893:28:-;;;1348:42:31;1344:1;1338:8;1334:57;1526:66;1522:1;1509:15;1506:87;1503:2;;;1622:10;1619:1;1612:21;1660:4;1657:1;1650:15;1503:2;1711:14;1708:1;1705;1692:34;1806:1;1803;1787:14;1784:1;1772:10;1767:3;1754:54;1842:16;1839:1;1836;1821:38;1887:1;1878:7;1875:14;1872:2;;;1902:16;1899:1;1892:27;1872:2;1944:16;1941:1;1934:27","source":"pragma solidity >=0.5.0 <0.7.0;\nimport \"./Proxy.sol\";\n\n\n/// @title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n/// @author Stefan George - <stefan@gnosis.pm>\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract DelegateConstructorProxy is Proxy {\n\n    /// @dev Constructor function sets address of master copy contract.\n    /// @param _masterCopy Master copy address.\n    /// @param initializer Data used for a delegate call to initialize the contract.\n    constructor(address _masterCopy, bytes memory initializer) Proxy(_masterCopy)\n        public\n    {\n        if (initializer.length > 0) {\n            // solium-disable-next-line security/no-inline-assembly\n            assembly {\n                let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n                let success := delegatecall(sub(gas, 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n                let ptr := mload(0x40)\n                returndatacopy(ptr, 0, returndatasize())\n                if eq(success, 0) { revert(ptr, returndatasize()) }\n            }\n        }\n    }\n}\n","compiler":{"name":"solc","version":"0.5.14+commit.01f1aaa4.Emscripten.clang"},"networks":{},"schemaVersion":"2.0.3","updatedAt":"2022-11-11T08:20:54.759Z"}