{"abi":[{"type":"constructor","inputs":[{"name":"_initCodeHash","type":"bytes32","internalType":"bytes32"},{"name":"_competitionDeadline","type":"uint256","internalType":"uint256"},{"name":"_exclusiveDeployer","type":"address","internalType":"address"},{"name":"_exclusiveDeployLength","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"bestAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"bestAddressSalt","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"bestAddressSubmitter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"competitionDeadline","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deploy","inputs":[{"name":"bytecode","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deployer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"exclusiveDeployDeadline","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initCodeHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"updateBestAddress","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"NewAddressFound","inputs":[{"name":"bestAddress","type":"address","indexed":true,"internalType":"address"},{"name":"submitter","type":"address","indexed":true,"internalType":"address"},{"name":"score","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"CompetitionNotOver","inputs":[{"name":"currentTime","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"CompetitionOver","inputs":[{"name":"currentTime","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"Create2EmptyBytecode","inputs":[]},{"type":"error","name":"Create2FailedDeployment","inputs":[]},{"type":"error","name":"Create2InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidBytecode","inputs":[]},{"type":"error","name":"InvalidSender","inputs":[{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"NotAllowedToDeploy","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"deployer","type":"address","internalType":"address"}]},{"type":"error","name":"WorseAddress","inputs":[{"name":"newAddress","type":"address","internalType":"address"},{"name":"bestAddress","type":"address","internalType":"address"},{"name":"newScore","type":"uint256","internalType":"uint256"},{"name":"bestScore","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x610100604052348015610010575f80fd5b50604051610cd5380380610cd583398101604081905261002f9161005b565b60a0849052608083905261004381846100a3565b60e052506001600160a01b031660c052506100c89050565b5f805f806080858703121561006e575f80fd5b84516020860151604087015191955093506001600160a01b0381168114610093575f80fd5b6060959095015193969295505050565b808201808211156100c257634e487b7160e01b5f52601160045260245ffd5b92915050565b60805160a05160c05160e051610b956101405f395f818160bc01526102f601525f818161014a015281816102cb015261036101525f8181610171015281816101d7015281816103a601526104c201525f81816101230152818161022f01528181610282015281816103d101526104250152610b955ff3fe608060405234801561000f575f80fd5b506004361061009e575f3560e01c8063d5f3948811610072578063e87a6f8411610058578063e87a6f8414610193578063edb6e1ca146101b3578063fd3989f5146101bb575f80fd5b8063d5f3948814610145578063db4c545e1461016c575f80fd5b8062774360146100a257806360f871bb146100b7578063756f0683146100f1578063a94557b81461011e575b5f80fd5b6100b56100b03660046109a5565b6101ce565b005b6100de7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100f961039e565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e8565b6100de7f000000000000000000000000000000000000000000000000000000000000000081565b6100f97f000000000000000000000000000000000000000000000000000000000000000081565b6100de7f000000000000000000000000000000000000000000000000000000000000000081565b6001546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b6100de5f5481565b6100b56101c9366004610a95565b6103cf565b805160208201207f00000000000000000000000000000000000000000000000000000000000000001461022d576040517f2363964300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000042116102b3576040517f0474c5c10000000000000000000000000000000000000000000000000000000081524260048201527f000000000000000000000000000000000000000000000000000000000000000060248201526044015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480159061031957507f00000000000000000000000000000000000000000000000000000000000000004211155b1561038e576040517fc419b2d200000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201526044016102aa565b61039a5f80548361063e565b5050565b5f6103ca5f547f000000000000000000000000000000000000000000000000000000000000000061071b565b905090565b7f0000000000000000000000000000000000000000000000000000000000000000421115610451576040517fafa178b00000000000000000000000000000000000000000000000000000000081524260048201527f000000000000000000000000000000000000000000000000000000000000000060248201526044016102aa565b606081901c33811480159061047b575073ffffffffffffffffffffffffffffffffffffffff811615155b156104bb576040517f8c7d9949000000000000000000000000000000000000000000000000000000008152600481018390523360248201526044016102aa565b5f6104e6837f000000000000000000000000000000000000000000000000000000000000000061071b565b90505f6104f161039e565b905061051373ffffffffffffffffffffffffffffffffffffffff831682610730565b6105b55781816105388473ffffffffffffffffffffffffffffffffffffffff1661074b565b6105578473ffffffffffffffffffffffffffffffffffffffff1661074b565b6040517f29551db800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9485166004820152939092166024840152604483015260648201526084016102aa565b5f849055600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915573ffffffffffffffffffffffffffffffffffffffff83167f7e8d398a63ed37daa88e8998642ec9be730043b51e67affe790111f209e4046b6106278261074b565b60405190815260200160405180910390a350505050565b5f83471015610682576040517fe4bbecac000000000000000000000000000000000000000000000000000000008152476004820152602481018590526044016102aa565b81515f036106bc576040517f4ca249dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff8116610714576040517f741752c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9392505050565b5f610727838330610892565b90505b92915050565b5f61073a8261074b565b6107438461074b565b119392505050565b5f606082901b8161075d8282806108bb565b905080600a02830192505f610774838360046108bb565b9050805f0361078757505f949350505050565b8060040361079a57603c840193506107aa565b60048111156107aa576028840193505b5f5b60288110156107dd575f6107c08583610929565b90508060ff166004036107d4576001860195505b506001016107ac565b507f44000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000601285901a60f81b1614801561087e57507f44000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000601385901a60f81b16145b1561088a576014840193505b505050919050565b5f604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b5f6108c860146002610b06565b60ff1683101561071457825b6108e060146002610b06565b60ff16811015610921575f6108f58683610929565b90508360ff168160ff161461090b575050610714565b610916600184610b22565b9250506001016108d4565b509392505050565b5f8083610937600285610b62565b6014811061094757610947610aac565b1a9050610955600284610b75565b5f0361096a5760048160ff16901c9150610971565b80600f1691505b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f602082840312156109b5575f80fd5b813567ffffffffffffffff8111156109cb575f80fd5b8201601f810184136109db575f80fd5b803567ffffffffffffffff8111156109f5576109f5610978565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715610a6157610a61610978565b604052818152828201602001861015610a78575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f60208284031215610aa5575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff818116838216029081169081811461097157610971610ad9565b8082018082111561072a5761072a610ad9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82610b7057610b70610b35565b500490565b5f82610b8357610b83610b35565b50069056fea164736f6c634300081a000a","sourceMap":"403:2954:137:-:0;;;1248:380;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1421:28;;;;1459:42;;;;1537:45;1560:22;1481:20;1537:45;:::i;:::-;1511:71;;-1:-1:-1;;;;;;1592:29:137;;;-1:-1:-1;403:2954:137;;-1:-1:-1;403:2954:137;14:580:262;111:6;119;127;135;188:3;176:9;167:7;163:23;159:33;156:53;;;205:1;202;195:12;156:53;228:16;;306:2;291:18;;285:25;379:2;364:18;;358:25;228:16;;-1:-1:-1;285:25:262;-1:-1:-1;;;;;;414:33:262;;402:46;;392:74;;462:1;459;452:12;392:74;558:2;543:18;;;;537:25;14:580;;;;-1:-1:-1;;;14:580:262:o;599:222::-;664:9;;;685:10;;;682:133;;;737:10;732:3;728:20;725:1;718:31;772:4;769:1;762:15;800:4;797:1;790:15;682:133;599:222;;;;:::o;:::-;403:2954:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061009e575f3560e01c8063d5f3948811610072578063e87a6f8411610058578063e87a6f8414610193578063edb6e1ca146101b3578063fd3989f5146101bb575f80fd5b8063d5f3948814610145578063db4c545e1461016c575f80fd5b8062774360146100a257806360f871bb146100b7578063756f0683146100f1578063a94557b81461011e575b5f80fd5b6100b56100b03660046109a5565b6101ce565b005b6100de7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6100f961039e565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e8565b6100de7f000000000000000000000000000000000000000000000000000000000000000081565b6100f97f000000000000000000000000000000000000000000000000000000000000000081565b6100de7f000000000000000000000000000000000000000000000000000000000000000081565b6001546100f99073ffffffffffffffffffffffffffffffffffffffff1681565b6100de5f5481565b6100b56101c9366004610a95565b6103cf565b805160208201207f00000000000000000000000000000000000000000000000000000000000000001461022d576040517f2363964300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000042116102b3576040517f0474c5c10000000000000000000000000000000000000000000000000000000081524260048201527f000000000000000000000000000000000000000000000000000000000000000060248201526044015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161480159061031957507f00000000000000000000000000000000000000000000000000000000000000004211155b1561038e576040517fc419b2d200000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248201526044016102aa565b61039a5f80548361063e565b5050565b5f6103ca5f547f000000000000000000000000000000000000000000000000000000000000000061071b565b905090565b7f0000000000000000000000000000000000000000000000000000000000000000421115610451576040517fafa178b00000000000000000000000000000000000000000000000000000000081524260048201527f000000000000000000000000000000000000000000000000000000000000000060248201526044016102aa565b606081901c33811480159061047b575073ffffffffffffffffffffffffffffffffffffffff811615155b156104bb576040517f8c7d9949000000000000000000000000000000000000000000000000000000008152600481018390523360248201526044016102aa565b5f6104e6837f000000000000000000000000000000000000000000000000000000000000000061071b565b90505f6104f161039e565b905061051373ffffffffffffffffffffffffffffffffffffffff831682610730565b6105b55781816105388473ffffffffffffffffffffffffffffffffffffffff1661074b565b6105578473ffffffffffffffffffffffffffffffffffffffff1661074b565b6040517f29551db800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9485166004820152939092166024840152604483015260648201526084016102aa565b5f849055600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915573ffffffffffffffffffffffffffffffffffffffff83167f7e8d398a63ed37daa88e8998642ec9be730043b51e67affe790111f209e4046b6106278261074b565b60405190815260200160405180910390a350505050565b5f83471015610682576040517fe4bbecac000000000000000000000000000000000000000000000000000000008152476004820152602481018590526044016102aa565b81515f036106bc576040517f4ca249dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8282516020840186f5905073ffffffffffffffffffffffffffffffffffffffff8116610714576040517f741752c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9392505050565b5f610727838330610892565b90505b92915050565b5f61073a8261074b565b6107438461074b565b119392505050565b5f606082901b8161075d8282806108bb565b905080600a02830192505f610774838360046108bb565b9050805f0361078757505f949350505050565b8060040361079a57603c840193506107aa565b60048111156107aa576028840193505b5f5b60288110156107dd575f6107c08583610929565b90508060ff166004036107d4576001860195505b506001016107ac565b507f44000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000601285901a60f81b1614801561087e57507f44000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000601385901a60f81b16145b1561088a576014840193505b505050919050565b5f604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b5f6108c860146002610b06565b60ff1683101561071457825b6108e060146002610b06565b60ff16811015610921575f6108f58683610929565b90508360ff168160ff161461090b575050610714565b610916600184610b22565b9250506001016108d4565b509392505050565b5f8083610937600285610b62565b6014811061094757610947610aac565b1a9050610955600284610b75565b5f0361096a5760048160ff16901c9150610971565b80600f1691505b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f602082840312156109b5575f80fd5b813567ffffffffffffffff8111156109cb575f80fd5b8201601f810184136109db575f80fd5b803567ffffffffffffffff8111156109f5576109f5610978565b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8501160116810181811067ffffffffffffffff82111715610a6157610a61610978565b604052818152828201602001861015610a78575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f60208284031215610aa5575f80fd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60ff818116838216029081169081811461097157610971610ad9565b8082018082111561072a5761072a610ad9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f82610b7057610b70610b35565b500490565b5f82610b8357610b83610b35565b50069056fea164736f6c634300081a000a","sourceMap":"403:2954:137:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2540:628;;;;;;:::i;:::-;;:::i;:::-;;1193:48;;;;;;;;1416:25:262;;;1404:2;1389:18;1193:48:137;;;;;;;;3225:130;;;:::i;:::-;;;1628:42:262;1616:55;;;1598:74;;1586:2;1571:18;3225:130:137;1452:226:262;761:44:137;;;;;1076:33;;;;;862:37;;;;;673:35;;;;;;;;;577:30;;;;;;1684:800;;;;;;:::i;:::-;;:::i;2540:628::-;2602:19;;;;;;2625:12;2602:35;2598:90;;2660:17;;;;;;;;;;;;;;2598:90;2721:19;2702:15;:38;2698:132;;2763:56;;;;;2782:15;2763:56;;;2224:25:262;2799:19:137;2265:18:262;;;2258:34;2197:18;;2763:56:137;;;;;;;;2698:132;2844:10;:22;2858:8;2844:22;;;;;:68;;;2889:23;2870:15;:42;;2844:68;2840:198;;;2987:40;;;;;3006:10;2987:40;;;2477:74:262;2507:42;3018:8:137;2587:55:262;2567:18;;;2560:83;2450:18;;2987:40:137;2303:346:262;2840:198:137;3117:44;3132:1;3135:15;;3152:8;3117:14;:44::i;:::-;;2540:628;:::o;3225:130::-;3269:7;3295:53;3318:15;;3335:12;3295:22;:53::i;:::-;3288:60;;3225:130;:::o;1684:800::-;1766:19;1748:15;:37;1744:128;;;1808:53;;;;;1824:15;1808:53;;;2224:25:262;1841:19:137;2265:18:262;;;2258:34;2197:18;;1808:53:137;2050:248:262;1744:128:137;1907:22;;;;1961:10;1943:28;;;;;:60;;-1:-1:-1;1975:28:137;;;;;1943:60;1939:104;;;2012:31;;;;;;;;2828:25:262;;;2032:10:137;2869:18:262;;;2862:83;2801:18;;2012:31:137;2654:297:262;1939:104:137;2054:18;2075:42;2098:4;2104:12;2075:22;:42::i;:::-;2054:63;;2127:20;2150:13;:11;:13::i;:::-;2127:36;-1:-1:-1;2178:35:137;:21;;;2127:36;2178:21;:35::i;:::-;2173:154;;2249:10;2261:12;2275:18;:10;:16;;;:18::i;:::-;2295:20;:12;:18;;;:20::i;:::-;2236:80;;;;;3217:42:262;3205:55;;;2236:80:137;;;3187:74:262;3297:55;;;;3277:18;;;3270:83;3369:18;;;3362:34;3412:18;;;3405:34;3159:19;;2236:80:137;2956:489:262;2173:154:137;2337:15;:22;;;2369:20;:33;;;;2392:10;2369:33;;;;;;;2418:59;;;2458:18;2418:59;2458:16;:18::i;:::-;2418:59;;1416:25:262;;;1404:2;1389:18;2418:59:137;;;;;;;1734:750;;;1684:800;:::o;1413:573:49:-;1500:12;1552:6;1528:21;:30;1524:125;;;1581:57;;;;;1608:21;1581:57;;;2224:25:262;2265:18;;;2258:34;;;2197:18;;1581:57:49;2050:248:262;1524:125:49;1662:8;:15;1681:1;1662:20;1658:80;;1705:22;;;;;;;;;;;;;;1658:80;1875:4;1864:8;1858:15;1851:4;1841:8;1837:19;1829:6;1821:59;1813:67;-1:-1:-1;1903:18:49;;;1899:81;;1944:25;;;;;;;;;;;;;;1899:81;1413:573;;;;;:::o;2190:165::-;2273:7;2299:49;2314:4;2320:12;2342:4;2299:14;:49::i;:::-;2292:56;;2190:165;;;;;:::o;459:139:188:-;533:11;578:13;584:6;578:5;:13::i;:::-;563:12;569:5;563;:12::i;:::-;:28;;459:139;-1:-1:-1;;;459:139:188:o;1107:1494::-;1159:23;1273:13;;;;1159:23;1397:38;1273:13;1159:23;;1397:21;:38::i;:::-;1370:65;;1469:16;1488:2;1469:21;1449:42;;;;1574:24;1601:53;1623:9;1634:16;1652:1;1601:21;:53::i;:::-;1574:80;;1734:16;1754:1;1734:21;1730:333;;-1:-1:-1;1782:1:188;;1107:1494;-1:-1:-1;;;;1107:1494:188:o;1730:333::-;1808:16;1828:1;1808:21;1804:259;;1913:2;1894:21;;;;1804:259;;;1959:1;1940:16;:20;1936:127;;;2046:2;2027:21;;;;1936:127;2128:9;2123:283;2147:20;2143:24;;2123:283;;;2192:19;2214:23;2224:9;2235:1;2214:9;:23::i;:::-;2192:45;;2311:13;:18;;2328:1;2311:18;2307:85;;2372:1;2353:20;;;;2307:85;-1:-1:-1;2169:3:188;;2123:283;;;-1:-1:-1;2483:21:188;;2493:2;2483:13;;;;;:21;;:46;;;;-1:-1:-1;2508:21:188;;2518:2;2508:13;;;;;:21;;2483:46;2479:106;;;2568:2;2549:21;;;;2479:106;1297:1298;;1184:1417;1107:1494;;;:::o;2598:1772:49:-;2699:12;2806:4;2800:11;4025:12;4018:4;4013:3;4009:14;4002:36;4074:4;4067;4062:3;4058:14;4051:28;4104:8;4099:3;4092:21;4197:4;4192:3;4188:14;4175:27;;4308:4;4301:5;4293:20;4351:2;4334:20;;;2598:1772;-1:-1:-1;;;;2598:1772:49:o;2774:502:188:-;2909:13;2956:20;:16;2975:1;2956:20;:::i;:::-;2942:34;;:10;:34;2938:77;2992:12;2938:77;3042:10;3025:245;3058:20;:16;3077:1;3058:20;:::i;:::-;3054:24;;:1;:24;3025:245;;;3099:19;3121:23;3131:9;3142:1;3121:9;:23::i;:::-;3099:45;;3179:10;3162:27;;:13;:27;;;3158:78;;3209:12;;;;3158:78;3249:10;3258:1;3249:10;;:::i;:::-;;-1:-1:-1;;3080:3:188;;3025:245;;;;2774:502;;;;;:::o;3462:410::-;3540:19;;3594:5;3600:15;3614:1;3600:11;:15;:::i;:::-;3594:22;;;;;;;:::i;:::-;;;-1:-1:-1;3631:15:188;3645:1;3631:11;:15;:::i;:::-;3650:1;3631:20;3627:239;;3744:1;3732:8;:13;;;;3716:29;;3627:239;;;3840:8;3851:4;3840:15;3824:31;;3627:239;3561:311;3462:410;;;;:::o;14:184:262:-;66:77;63:1;56:88;163:4;160:1;153:15;187:4;184:1;177:15;203:1062;271:6;324:2;312:9;303:7;299:23;295:32;292:52;;;340:1;337;330:12;292:52;380:9;367:23;413:18;405:6;402:30;399:50;;;445:1;442;435:12;399:50;468:22;;521:4;513:13;;509:27;-1:-1:-1;499:55:262;;550:1;547;540:12;499:55;590:2;577:16;616:18;608:6;605:30;602:56;;;638:18;;:::i;:::-;687:2;681:9;834:66;829:2;760:66;753:4;745:6;741:17;737:90;733:99;729:172;721:6;717:185;968:6;956:10;953:22;932:18;920:10;917:34;914:62;911:88;;;979:18;;:::i;:::-;1015:2;1008:22;1039;;;1080:15;;;1097:2;1076:24;1073:37;-1:-1:-1;1070:57:262;;;1123:1;1120;1113:12;1070:57;1179:6;1174:2;1170;1166:11;1161:2;1153:6;1149:15;1136:50;1232:1;1206:19;;;1227:2;1202:28;1195:39;;;;1210:6;203:1062;-1:-1:-1;;;;203:1062:262:o;1865:180::-;1924:6;1977:2;1965:9;1956:7;1952:23;1948:32;1945:52;;;1993:1;1990;1983:12;1945:52;-1:-1:-1;2016:23:262;;1865:180;-1:-1:-1;1865:180:262:o;3450:184::-;3502:77;3499:1;3492:88;3599:4;3596:1;3589:15;3623:4;3620:1;3613:15;3639:184;3691:77;3688:1;3681:88;3788:4;3785:1;3778:15;3812:4;3809:1;3802:15;3828:225;3932:4;3911:12;;;3925;;;3907:31;3958:22;;;;3999:24;;;3989:58;;4027:18;;:::i;4058:125::-;4123:9;;;4144:10;;;4141:36;;;4157:18;;:::i;4188:184::-;4240:77;4237:1;4230:88;4337:4;4334:1;4327:15;4361:4;4358:1;4351:15;4377:120;4417:1;4443;4433:35;;4448:18;;:::i;:::-;-1:-1:-1;4482:9:262;;4377:120::o;4502:112::-;4534:1;4560;4550:35;;4565:18;;:::i;:::-;-1:-1:-1;4599:9:262;;4502:112::o","linkReferences":{},"immutableReferences":{"64141":[{"start":291,"length":32},{"start":559,"length":32},{"start":642,"length":32},{"start":977,"length":32},{"start":1061,"length":32}],"64144":[{"start":369,"length":32},{"start":471,"length":32},{"start":934,"length":32},{"start":1218,"length":32}],"64147":[{"start":330,"length":32},{"start":715,"length":32},{"start":865,"length":32}],"64150":[{"start":188,"length":32},{"start":758,"length":32}]}},"methodIdentifiers":{"bestAddress()":"756f0683","bestAddressSalt()":"edb6e1ca","bestAddressSubmitter()":"e87a6f84","competitionDeadline()":"a94557b8","deploy(bytes)":"00774360","deployer()":"d5f39488","exclusiveDeployDeadline()":"60f871bb","initCodeHash()":"db4c545e","updateBestAddress(bytes32)":"fd3989f5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_initCodeHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_competitionDeadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_exclusiveDeployer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_exclusiveDeployLength\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"CompetitionNotOver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"CompetitionOver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Create2EmptyBytecode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Create2FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"Create2InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidBytecode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"}],\"name\":\"NotAllowedToDeploy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"bestAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"newScore\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bestScore\",\"type\":\"uint256\"}],\"name\":\"WorseAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bestAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"}],\"name\":\"NewAddressFound\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"bestAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bestAddressSalt\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bestAddressSubmitter\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"competitionDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"bytecode\",\"type\":\"bytes\"}],\"name\":\"deploy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deployer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exclusiveDeployDeadline\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initCodeHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"updateBestAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"Create2EmptyBytecode()\":[{\"details\":\"There's no code to deploy.\"}],\"Create2FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"Create2InsufficientBalance(uint256,uint256)\":[{\"details\":\"Not enough balance for performing a CREATE2 deploy.\"}]},\"kind\":\"dev\",\"methods\":{\"bestAddress()\":{\"details\":\"returns the best address found so far\"},\"deploy(bytes)\":{\"details\":\"The bytecode must match the initCodeHash\",\"params\":{\"bytecode\":\"The bytecode of the Uniswap v4 PoolManager contract\"}},\"updateBestAddress(bytes32)\":{\"details\":\"The first 20 bytes of the salt must be either address(0) or msg.sender\",\"params\":{\"salt\":\"The salt to use to compute the new address with CREATE2\"}}},\"stateVariables\":{\"bestAddressSalt\":{\"details\":\"The salt for the best address found so far\"},\"bestAddressSubmitter\":{\"details\":\"The submitter of the best address found so far\"},\"competitionDeadline\":{\"details\":\"The deadline for the competition\"},\"deployer\":{\"details\":\"The deployer who can initiate the deployment of the v4 PoolManager, until the exclusive deploy deadline.After this deadline anyone can deploy.\"},\"exclusiveDeployDeadline\":{\"details\":\"The deadline for exclusive deployment by deployer after deadline\"},\"initCodeHash\":{\"details\":\"The init code hash of the V4 contract\"}},\"title\":\"UniswapV4DeployerCompetition\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deploy(bytes)\":{\"notice\":\"deploys the Uniswap v4 PoolManager contract\"},\"updateBestAddress(bytes32)\":{\"notice\":\"Updates the best address if the new address has a better vanity score\"}},\"notice\":\"A contract to crowdsource a salt for the best Uniswap V4 address\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/UniswapV4DeployerCompetition.sol\":\"UniswapV4DeployerCompetition\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":44444444},\"remappings\":[\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@openzeppelin/=lib/v4-core/lib/openzeppelin-contracts/\",\":@uniswap/v4-core/=lib/v4-core/\",\":ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/v4-core/lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/v4-core/lib/forge-std/src/\",\":hardhat/=lib/v4-core/node_modules/hardhat/\",\":openzeppelin-contracts/=lib/v4-core/lib/openzeppelin-contracts/\",\":permit2/=lib/permit2/\",\":solmate/=lib/v4-core/lib/solmate/\",\":v4-core/=lib/v4-core/src/\"]},\"sources\":{\"lib/v4-core/lib/openzeppelin-contracts/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"src/UniswapV4DeployerCompetition.sol\":{\"keccak256\":\"0x2bf167b262dd86c0737ec1d9cdfc9af4f7866fdc3357730cf8ac317f9dbde981\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c642f829e10afe86cfefc78dbdde5a6ad59d61324fd9b405a8396d3021427e23\",\"dweb:/ipfs/QmU7G5hqSmJ4aUsK3uVZJekzLPPadWjFXgmJW6LASJWVz5\"]},\"src/interfaces/IUniswapV4DeployerCompetition.sol\":{\"keccak256\":\"0xa1d0a1b4dacfdb56ff47314cc021c0b649bccb56d58c471d73d02635c0f096c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://328343cd44e09d46f602f47e5500dce8200da580c255c7cd434f03a033428f1c\",\"dweb:/ipfs/QmeDjPzqSQepkEpGtV4ofwUrWBytiWw3d8HyAUTyV6eUki\"]},\"src/libraries/VanityAddressLib.sol\":{\"keccak256\":\"0xf39fa029edfcb062a053b029a60478014ed54cd62ae43d8aea8db3c727d815c8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3528c34e3535a186ea96a07a0d5ab7b50eb3646f079dd15516d4e9983e174b2a\",\"dweb:/ipfs/QmZcsDDSWW3eFRMg9bzTYSPBFkc2QjuH4vrTkzDZpViZyX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_initCodeHash","type":"bytes32"},{"internalType":"uint256","name":"_competitionDeadline","type":"uint256"},{"internalType":"address","name":"_exclusiveDeployer","type":"address"},{"internalType":"uint256","name":"_exclusiveDeployLength","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"currentTime","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"CompetitionNotOver"},{"inputs":[{"internalType":"uint256","name":"currentTime","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"CompetitionOver"},{"inputs":[],"type":"error","name":"Create2EmptyBytecode"},{"inputs":[],"type":"error","name":"Create2FailedDeployment"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"Create2InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidBytecode"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"InvalidSender"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"deployer","type":"address"}],"type":"error","name":"NotAllowedToDeploy"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"},{"internalType":"address","name":"bestAddress","type":"address"},{"internalType":"uint256","name":"newScore","type":"uint256"},{"internalType":"uint256","name":"bestScore","type":"uint256"}],"type":"error","name":"WorseAddress"},{"inputs":[{"internalType":"address","name":"bestAddress","type":"address","indexed":true},{"internalType":"address","name":"submitter","type":"address","indexed":true},{"internalType":"uint256","name":"score","type":"uint256","indexed":false}],"type":"event","name":"NewAddressFound","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"bestAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bestAddressSalt","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bestAddressSubmitter","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"competitionDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes","name":"bytecode","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"deploy"},{"inputs":[],"stateMutability":"view","type":"function","name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"exclusiveDeployDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"initCodeHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateBestAddress"}],"devdoc":{"kind":"dev","methods":{"bestAddress()":{"details":"returns the best address found so far"},"deploy(bytes)":{"details":"The bytecode must match the initCodeHash","params":{"bytecode":"The bytecode of the Uniswap v4 PoolManager contract"}},"updateBestAddress(bytes32)":{"details":"The first 20 bytes of the salt must be either address(0) or msg.sender","params":{"salt":"The salt to use to compute the new address with CREATE2"}}},"version":1},"userdoc":{"kind":"user","methods":{"deploy(bytes)":{"notice":"deploys the Uniswap v4 PoolManager contract"},"updateBestAddress(bytes32)":{"notice":"Updates the best address if the new address has a better vanity score"}},"version":1}},"settings":{"remappings":["@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@openzeppelin/=lib/v4-core/lib/openzeppelin-contracts/","@uniswap/v4-core/=lib/v4-core/","ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/v4-core/lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/v4-core/lib/forge-std/src/","hardhat/=lib/v4-core/node_modules/hardhat/","openzeppelin-contracts/=lib/v4-core/lib/openzeppelin-contracts/","permit2/=lib/permit2/","solmate/=lib/v4-core/lib/solmate/","v4-core/=lib/v4-core/src/"],"optimizer":{"enabled":true,"runs":44444444},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/UniswapV4DeployerCompetition.sol":"UniswapV4DeployerCompetition"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/v4-core/lib/openzeppelin-contracts/contracts/utils/Create2.sol":{"keccak256":"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e","urls":["bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420","dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR"],"license":"MIT"},"src/UniswapV4DeployerCompetition.sol":{"keccak256":"0x2bf167b262dd86c0737ec1d9cdfc9af4f7866fdc3357730cf8ac317f9dbde981","urls":["bzz-raw://c642f829e10afe86cfefc78dbdde5a6ad59d61324fd9b405a8396d3021427e23","dweb:/ipfs/QmU7G5hqSmJ4aUsK3uVZJekzLPPadWjFXgmJW6LASJWVz5"],"license":"MIT"},"src/interfaces/IUniswapV4DeployerCompetition.sol":{"keccak256":"0xa1d0a1b4dacfdb56ff47314cc021c0b649bccb56d58c471d73d02635c0f096c4","urls":["bzz-raw://328343cd44e09d46f602f47e5500dce8200da580c255c7cd434f03a033428f1c","dweb:/ipfs/QmeDjPzqSQepkEpGtV4ofwUrWBytiWw3d8HyAUTyV6eUki"],"license":"MIT"},"src/libraries/VanityAddressLib.sol":{"keccak256":"0xf39fa029edfcb062a053b029a60478014ed54cd62ae43d8aea8db3c727d815c8","urls":["bzz-raw://3528c34e3535a186ea96a07a0d5ab7b50eb3646f079dd15516d4e9983e174b2a","dweb:/ipfs/QmZcsDDSWW3eFRMg9bzTYSPBFkc2QjuH4vrTkzDZpViZyX"],"license":"MIT"}},"version":1},"id":89}