UNPKG

@daostack/upgrades

Version:
680 lines (679 loc) 34.6 kB
{ "fileName": "ProxyCreator.sol", "contractName": "ProxyCreator", "source": "pragma solidity ^0.6.0;\n// SPDX-License-Identifier: MIT\n\nimport \"../application/App.sol\";\nimport \"../Initializable.sol\";\n\ncontract ProxyCreator is Initializable {\n\n address public created;\n\n function initialize(App app, string memory packageName, string memory contractName, address admin, bytes memory data) public initializer {\n created = address(app.create(packageName, contractName, admin, data));\n }\n\n function name() public pure returns (string memory) {\n return \"ProxyCreator\";\n }\n\n}\n", "sourcePath": "contracts/mocks/ProxyCreator.sol", "sourceMap": "122:379:15:-:0;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "122:379:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;414:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;166:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;193:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;414:84;451:13;472:21;;;;;;;;;;;;;;;;;;;;;;;414:84;;:::o;166:22::-;;;;;;;;;;;;;:::o;193:217::-;1056:12:0;;;;;;;;;;;:31;;;;1072:15;:13;:15;;:::i;:::-;1056:31;:47;;;;1092:11;;;;;;;;;;;1091:12;1056:47;1048:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1161:19;1184:12;;;;;;;;;;;1183:13;1161:35;;1206:14;1202:80;;;1245:4;1230:12;;:19;;;;;;;;;;;;;;;;;;1271:4;1257:11;;:18;;;;;;;;;;;;;;;;;;1202:80;354:3:15::1;:10;;;365:11;378:12;392:5;399:4;354:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;336:7;;:69;;;;;;;;;;;;;;;;;;1288:1:0;1300:14:::0;1296:55;;;1339:5;1324:12;;:20;;;;;;;;;;;;;;;;;;1296:55;193:217:15;;;;;;;:::o;1441:498:0:-;1488:4;1829:12;1852:4;1829:28;;1863:10;1908:4;1896:17;1890:23;;1933:1;1927:2;:7;1920:14;;;;;;1441:498;;;;:::o", "abi": [ { "inputs": [], "name": "created", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract App", "name": "app", "type": "address" }, { "internalType": "string", "name": "packageName", "type": "string" }, { "internalType": "string", "name": "contractName", "type": "string" }, { "internalType": "address", "name": "admin", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" } ], "ast": { "absolutePath": "contracts/mocks/ProxyCreator.sol", "exportedSymbols": { "ProxyCreator": [ 4377 ] }, "id": 4378, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 4333, "literals": [ "solidity", "^", "0.6", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:15" }, { "absolutePath": "contracts/application/App.sol", "file": "../application/App.sol", "id": 4334, "nodeType": "ImportDirective", "scope": 4378, "sourceUnit": 355, "src": "57:32:15", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "contracts/Initializable.sol", "file": "../Initializable.sol", "id": 4335, "nodeType": "ImportDirective", "scope": 4378, "sourceUnit": 75, "src": "90:30:15", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 4336, "name": "Initializable", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 74, "src": "147:13:15", "typeDescriptions": { "typeIdentifier": "t_contract$_Initializable_$74", "typeString": "contract Initializable" } }, "id": 4337, "nodeType": "InheritanceSpecifier", "src": "147:13:15" } ], "contractDependencies": [ 74 ], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 4377, "linearizedBaseContracts": [ 4377, 74 ], "name": "ProxyCreator", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "functionSelector": "325a19f1", "id": 4339, "mutability": "mutable", "name": "created", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4377, "src": "166:22:15", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4338, "name": "address", "nodeType": "ElementaryTypeName", "src": "166:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "body": { "id": 4367, "nodeType": "Block", "src": "330:80:15", "statements": [ { "expression": { "argumentTypes": null, "id": 4365, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 4354, "name": "created", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4339, "src": "336:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 4359, "name": "packageName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4343, "src": "365:11:15", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 4360, "name": "contractName", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4345, "src": "378:12:15", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "argumentTypes": null, "id": 4361, "name": "admin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4347, "src": "392:5:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "argumentTypes": null, "id": 4362, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4349, "src": "399:4:15", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "argumentTypes": null, "id": 4357, "name": "app", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4341, "src": "354:3:15", "typeDescriptions": { "typeIdentifier": "t_contract$_App_$354", "typeString": "contract App" } }, "id": 4358, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "create", "nodeType": "MemberAccess", "referencedDeclaration": 353, "src": "354:10:15", "typeDescriptions": { "typeIdentifier": "t_function_external_payable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$_t_contract$_AdminUpgradeabilityProxy_$5849_$", "typeString": "function (string memory,string memory,address,bytes memory) payable external returns (contract AdminUpgradeabilityProxy)" } }, "id": 4363, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "354:50:15", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_AdminUpgradeabilityProxy_$5849", "typeString": "contract AdminUpgradeabilityProxy" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_AdminUpgradeabilityProxy_$5849", "typeString": "contract AdminUpgradeabilityProxy" } ], "id": 4356, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "346:7:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 4355, "name": "address", "nodeType": "ElementaryTypeName", "src": "346:7:15", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 4364, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "346:59:15", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "336:69:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 4366, "nodeType": "ExpressionStatement", "src": "336:69:15" } ] }, "documentation": null, "functionSelector": "6f7b86be", "id": 4368, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 4352, "modifierName": { "argumentTypes": null, "id": 4351, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 47, "src": "318:11:15", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "318:11:15" } ], "name": "initialize", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 4350, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4341, "mutability": "mutable", "name": "app", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4368, "src": "213:7:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_App_$354", "typeString": "contract App" }, "typeName": { "contractScope": null, "id": 4340, "name": "App", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 354, "src": "213:3:15", "typeDescriptions": { "typeIdentifier": "t_contract$_App_$354", "typeString": "contract App" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4343, "mutability": "mutable", "name": "packageName", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4368, "src": "222:25:15", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 4342, "name": "string", "nodeType": "ElementaryTypeName", "src": "222:6:15", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4345, "mutability": "mutable", "name": "contractName", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4368, "src": "249:26:15", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 4344, "name": "string", "nodeType": "ElementaryTypeName", "src": "249:6:15", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4347, "mutability": "mutable", "name": "admin", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4368, "src": "277:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4346, "name": "address", "nodeType": "ElementaryTypeName", "src": "277:7:15", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "internal" }, { "constant": false, "id": 4349, "mutability": "mutable", "name": "data", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4368, "src": "292:17:15", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 4348, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "292:5:15", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], "src": "212:98:15" }, "returnParameters": { "id": 4353, "nodeType": "ParameterList", "parameters": [], "src": "330:0:15" }, "scope": 4377, "src": "193:217:15", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 4375, "nodeType": "Block", "src": "466:32:15", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "50726f787943726561746f72", "id": 4373, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "479:14:15", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f386af0e192358159c576d9cb03b2fccac834c116b8b7298f6ce24e796a80da2", "typeString": "literal_string \"ProxyCreator\"" }, "value": "ProxyCreator" }, "functionReturnParameters": 4372, "id": 4374, "nodeType": "Return", "src": "472:21:15" } ] }, "documentation": null, "functionSelector": "06fdde03", "id": 4376, "implemented": true, "kind": "function", "modifiers": [], "name": "name", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 4369, "nodeType": "ParameterList", "parameters": [], "src": "427:2:15" }, "returnParameters": { "id": 4372, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4371, "mutability": "mutable", "name": "", "nodeType": "VariableDeclaration", "overrides": null, "scope": 4376, "src": "451:13:15", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 4370, "name": "string", "nodeType": "ElementaryTypeName", "src": "451:6:15", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "value": null, "visibility": "internal" } ], "src": "450:15:15" }, "scope": 4377, "src": "414:84:15", "stateMutability": "pure", "virtual": false, "visibility": "public" } ], "scope": 4378, "src": "122:379:15" } ], "src": "0:502:15" }, "bytecode": "0x60806040523480156100115760006000fd5b50610017565b6107a0806100266000396000f3fe60806040523480156100115760006000fd5b50600436106100465760003560e01c806306fdde031461004c578063325a19f1146100d05780636f7b86be1461011a57610046565b60006000fd5b610054610359565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100955780820151818401525b602081019050610079565b50505050905090810190601f1680156100c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100d861039e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610357600480360360a08110156101315760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561016f5760006000fd5b8201836020820111156101825760006000fd5b803590602001918460018302840111640100000000831117156101a55760006000fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509090919290909192908035906020019064010000000081111561020d5760006000fd5b8201836020820111156102205760006000fd5b803590602001918460018302840111640100000000831117156102435760006000fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050909091929090919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156102cb5760006000fd5b8201836020820111156102de5760006000fd5b803590602001918460018302840111640100000000831117156103015760006000fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509090919290909192905050506103c4565b005b60606040518060400160405280600c81526020017f50726f787943726561746f720000000000000000000000000000000000000000815260200150905061039b565b90565b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900460ff16806103e957506103e861071d63ffffffff16565b5b806104015750600060009054906101000a900460ff16155b1515610458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061073d602e913960400191505060405180910390fd5b6000600060019054906101000a900460ff1615905080156104aa576001600060016101000a81548160ff0219169083151502179055506001600060006101000a81548160ff0219169083151502179055505b8573ffffffffffffffffffffffffffffffffffffffff1663cd3e318a868686866040518563ffffffff1660e01b81526004018080602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001848103845288818151815260200191508051906020019080838360005b838110156105545780820151818401525b602081019050610538565b50505050905090810190601f1680156105815780820380516001836020036101000a031916815260200191505b50848103835287818151815260200191508051906020019080838360005b838110156105bb5780820151818401525b60208101905061059f565b50505050905090810190601f1680156105e85780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b838110156106225780820151818401525b602081019050610606565b50505050905090810190601f16801561064f5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b1580156106745760006000fd5b505af1158015610689573d600060003e3d6000fd5b505050506040513d60208110156106a05760006000fd5b8101908080519060200190929190505050603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8015610714576000600060016101000a81548160ff0219169083151502179055505b505b5050505050565b600060003090506000813b905060008114925050506107395650505b9056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a2646970667358221220a22079a0f2e81a2675bb161a8b7019530f8898e05cbab8e8b4701d269b8387f564736f6c634300060a0033", "deployedBytecode": "0x60806040523480156100115760006000fd5b50600436106100465760003560e01c806306fdde031461004c578063325a19f1146100d05780636f7b86be1461011a57610046565b60006000fd5b610054610359565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100955780820151818401525b602081019050610079565b50505050905090810190601f1680156100c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100d861039e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610357600480360360a08110156101315760006000fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561016f5760006000fd5b8201836020820111156101825760006000fd5b803590602001918460018302840111640100000000831117156101a55760006000fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509090919290909192908035906020019064010000000081111561020d5760006000fd5b8201836020820111156102205760006000fd5b803590602001918460018302840111640100000000831117156102435760006000fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050909091929090919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156102cb5760006000fd5b8201836020820111156102de5760006000fd5b803590602001918460018302840111640100000000831117156103015760006000fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509090919290909192905050506103c4565b005b60606040518060400160405280600c81526020017f50726f787943726561746f720000000000000000000000000000000000000000815260200150905061039b565b90565b603360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060019054906101000a900460ff16806103e957506103e861071d63ffffffff16565b5b806104015750600060009054906101000a900460ff16155b1515610458576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e81526020018061073d602e913960400191505060405180910390fd5b6000600060019054906101000a900460ff1615905080156104aa576001600060016101000a81548160ff0219169083151502179055506001600060006101000a81548160ff0219169083151502179055505b8573ffffffffffffffffffffffffffffffffffffffff1663cd3e318a868686866040518563ffffffff1660e01b81526004018080602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001848103845288818151815260200191508051906020019080838360005b838110156105545780820151818401525b602081019050610538565b50505050905090810190601f1680156105815780820380516001836020036101000a031916815260200191505b50848103835287818151815260200191508051906020019080838360005b838110156105bb5780820151818401525b60208101905061059f565b50505050905090810190601f1680156105e85780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b838110156106225780820151818401525b602081019050610606565b50505050905090810190601f16801561064f5780820380516001836020036101000a031916815260200191505b50975050505050505050602060405180830381600087803b1580156106745760006000fd5b505af1158015610689573d600060003e3d6000fd5b505050506040513d60208110156106a05760006000fd5b8101908080519060200190929190505050603360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b8015610714576000600060016101000a81548160ff0219169083151502179055505b505b5050505050565b600060003090506000813b905060008114925050506107395650505b9056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a2646970667358221220a22079a0f2e81a2675bb161a8b7019530f8898e05cbab8e8b4701d269b8387f564736f6c634300060a0033", "compiler": { "name": "solc", "version": "0.6.10+commit.00c0fcaf.Emscripten.clang", "optimizer": {}, "evmVersion": "constantinople" } }