Contract Overview
Balance:
0 Ether
My Name Tag:
Not Available
[ Download CSV Export ]
Latest 2 internal transactions
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0xbe957bf99fea02625f9780f654812123abe9db363e1d36589c48e97267766df6 | 6918293 | 448 days 11 hrs ago | 0xd068fcc44525569fb593189c8f22827cf0f50f3f | Contract Creation | 0 Ether | ||
0x9c5edcf06844389c59f6bb86da3a792fa9038f16888be69aa2f742017200ccf7 | 6918287 | 448 days 11 hrs ago | 0xd068fcc44525569fb593189c8f22827cf0f50f3f | Contract Creation | 0 Ether |
[ Download CSV Export ]
Contract Name:
Montagy
Compiler Version
v0.5.11+commit.c082d0b4
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-12-06 */ pragma solidity ^0.5.11; contract Montagy{ address payable public owner; mapping(bytes32=>bool) isOfficialChecksum; mapping(address=>bytes32) puzzleChecksum; address public lastchildaddr; string public winnerinfo; bool public _gameon; constructor() public payable{ owner = msg.sender; _gameon = false; } modifier onlyOwner(){ require(msg.sender == owner); _; } modifier onlyPuzzle(){ require(puzzleChecksum[msg.sender] != 0); _; } modifier onlyGameOn(){ require(_gameon); _; } function setGame(bool status) public onlyOwner{ _gameon = status; } function registerCode(bytes memory a) public onlyOwner { isOfficialChecksum[tag(a)]=true; } function newPuzzle(bytes memory code) public onlyGameOn returns(address addr){ bytes32 cs = tag(code); require(isOfficialChecksum[cs]); addr = deploy(code); lastchildaddr=addr; puzzleChecksum[addr] = cs; } function solve(string memory info) public onlyGameOn onlyPuzzle { owner.transfer(address(this).balance); winnerinfo = info; } function deploy(bytes memory code) private returns(address addr){ assembly { addr := create(0,add(code,0x20), mload(code)) if eq(extcodesize(addr), 0) { revert(0, 0) } } } function tag(bytes memory a) pure public returns(bytes32 cs){ assembly{ let groupsize := 16 let head := add(a,groupsize) let tail := add(head, mload(a)) let t1 := 0x21711730 let t2 := 0x7312f103 let m1,m2,m3,m4,p1,p2,p3,s,tmp for { let i := head } lt(i, tail) { i := add(i, groupsize) } { s := 0x6644498b tmp := mload(i) m1 := and(tmp,0xffffffff) m2 := and(shr(0x20,tmp),0xffffffff) m3 := and(shr(0x40,tmp),0xffffffff) m4 := and(shr(0x60,tmp),0xffffffff) for { let j := 0 } lt(j, 0x4) { j := add(j, 1) } { s := and(add(s, 0x68696e74),0xffffffff) p1 := sub(mul(t1, 0x10), m1) p2 := add(t1, s) p3 := add(div(t1,0x20), m2) t2 := and(add(t2, xor(p1,xor(p2,p3))), 0xffffffff) p1 := add(mul(t2, 0x10), m3) p2 := add(t2, s) p3 := sub(div(t2,0x20), m4) t1 := and(add(t1, xor(p1,xor(p2,p3))), 0xffffffff) } } cs := xor(mul(t1,0x100000000),t2) } } }
[{"constant":false,"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_gameon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"winnerinfo","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes","name":"a","type":"bytes"}],"name":"tag","outputs":[{"internalType":"bytes32","name":"cs","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"lastchildaddr","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"info","type":"string"}],"name":"solve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes","name":"a","type":"bytes"}],"name":"registerCode","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes","name":"code","type":"bytes"}],"name":"newPuzzle","outputs":[{"internalType":"address","name":"addr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"}]
Contract Creation Code
6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560006101000a81548160ff021916908315150217905550610b248061006e6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80633fa24586116100665780633fa245861461023c57806376fe1e921461028657806381d838e5146103415780638da5cb5b146103fc578063e6744e8d1461044657610093565b8063112b2b071461009857806313bdd91c146100c857806320bed055146100ea578063259d8c3d1461016d575b600080fd5b6100c6600480360360208110156100ae57600080fd5b81019080803515159060200190929190505050610541565b005b6100d06105b7565b604051808215151515815260200191505060405180910390f35b6100f26105ca565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610132578082015181840152602081019050610117565b50505050905090810190601f16801561015f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102266004803603602081101561018357600080fd5b81019080803590602001906401000000008111156101a057600080fd5b8201836020820111156101b257600080fd5b803590602001918460018302840111640100000000831117156101d457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610668565b6040518082815260200191505060405180910390f35b610244610766565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61033f6004803603602081101561029c57600080fd5b81019080803590602001906401000000008111156102b957600080fd5b8201836020820111156102cb57600080fd5b803590602001918460018302840111640100000000831117156102ed57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061078c565b005b6103fa6004803603602081101561035757600080fd5b810190808035906020019064010000000081111561037457600080fd5b82018360208201111561038657600080fd5b803590602001918460018302840111640100000000831117156103a857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061088d565b005b61040461091c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ff6004803603602081101561045c57600080fd5b810190808035906020019064010000000081111561047957600080fd5b82018360208201111561048b57600080fd5b803590602001918460018302840111640100000000831117156104ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610941565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461059a57600080fd5b80600560006101000a81548160ff02191690831515021790555050565b600560009054906101000a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106605780601f1061063557610100808354040283529160200191610660565b820191906000526020600020905b81548152906001019060200180831161064357829003601f168201915b505050505081565b60006010808301835181016321711730637312f10360008060008060008060008060008c5b8c81101561074657636644498b92508051915063ffffffff8216995063ffffffff8260201c16985063ffffffff8260401c16975063ffffffff8260601c16965060005b600481101561073b5763ffffffff6368696e7485011693508a60108e02039650838d0195508960208e0401945063ffffffff85871888188d01169b508860108d02019650838c0195508760208d0403945063ffffffff85871888188e01169c506001810190506106d0565b508e8101905061068d565b50896401000000008c02189e505050505050505050505050505050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900460ff166107a557600080fd5b6000801b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156107f457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610872573d6000803e3d6000fd5b508060049080519060200190610889929190610a4a565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108e657600080fd5b60018060006108f484610668565b815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900460ff1661095c57600080fd5b600061096783610668565b90506001600082815260200190815260200160002060009054906101000a900460ff1661099357600080fd5b61099c83610a29565b915081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050919050565b60008151602083016000f090506000813b1415610a4557600080fd5b919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610a8b57805160ff1916838001178555610ab9565b82800160010185558215610ab9579182015b82811115610ab8578251825591602001919060010190610a9d565b5b509050610ac69190610aca565b5090565b610aec91905b80821115610ae8576000816000905550600101610ad0565b5090565b9056fea265627a7a7231582040cc6f4cbfea3836989591bad88c52248a0d8723104e0a108cb11bdd4f2392fa64736f6c634300050b0032
Deployed ByteCode Sourcemap
28:2789:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;28:2789:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;633:81;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;633:81:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;247:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;216:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;216:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1512:1302;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1512:1302:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1512:1302:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1512:1302:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1512:1302:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1512:1302:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;181:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1120:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1120:148:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1120:148:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1120:148:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1120:148:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1120:148:0;;;;;;;;;;;;;;;:::i;:::-;;726:105;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;726:105:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;726:105:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;726:105:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;726:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;726:105:0;;;;;;;;;;;;;;;:::i;:::-;;51:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;843:265;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;843:265:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;843:265:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;843:265:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;843:265:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;843:265:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;633:81;423:5;;;;;;;;;;;409:19;;:10;:19;;;401:28;;;;;;700:6;690:7;;:16;;;;;;;;;;;;;;;;;;633:81;:::o;247:19::-;;;;;;;;;;;;;:::o;216:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1512:1302::-;1561:10;1623:2;1657:9;1655:1;1651:16;1709:1;1703:8;1697:4;1693:19;1736:10;1770;;;;;;;;;;1853:4;1838:911;1866:4;1863:1;1860:11;1838:911;;;1923:10;1918:15;;1964:1;1958:8;1951:15;;1998:10;1994:3;1990:19;1984:25;;2051:10;2046:3;2041:4;2037:13;2033:29;2027:35;;2104:10;2099:3;2094:4;2090:13;2086:29;2080:35;;2157:10;2152:3;2147:4;2143:13;2139:29;2133:35;;2201:1;2186:548;2211:3;2208:1;2205:10;2186:548;;;2286:10;2274;2271:1;2267:18;2263:34;2258:39;;2344:2;2337:4;2333:2;2329:13;2325:22;2319:28;;2383:1;2379:2;2375:10;2369:16;;2431:2;2424:4;2421:2;2417:12;2413:21;2407:27;;2495:10;2488:2;2485;2481:10;2478:2;2474:18;2470:2;2466:27;2462:44;2456:50;;2553:2;2546:4;2542:2;2538:13;2534:22;2528:28;;2592:1;2588:2;2584:10;2578:16;;2640:2;2633:4;2630:2;2626:12;2622:21;2616:27;;2704:10;2697:2;2694;2690:10;2687:2;2683:18;2679:2;2675:27;2671:44;2665:50;;2230:1;2227;2223:9;2218:14;;2186:548;;;2190:14;1886:9;1883:1;1879:17;1874:22;;1838:911;;;1842:17;2793:2;2780:11;2777:2;2773:19;2769:27;2763:33;;1591:1216;;;;;;;;;;;;;;;;;:::o;181:28::-;;;;;;;;;;;;;:::o;1120:148::-;593:7;;;;;;;;;;;585:16;;;;;;525:1;495:31;;:14;:26;510:10;495:26;;;;;;;;;;;;;;;;:31;;487:40;;;;;;1195:5;;;;;;;;;;;:14;;:37;1218:4;1210:21;;;1195:37;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1195:37:0;1256:4;1243:10;:17;;;;;;;;;;;;:::i;:::-;;1120:148;:::o;726:105::-;423:5;;;;;;;;;;;409:19;;:10;:19;;;401:28;;;;;;819:4;792:18;:26;811:6;815:1;811:3;:6::i;:::-;792:26;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;726:105;:::o;51:28::-;;;;;;;;;;;;;:::o;843:265::-;907:12;593:7;;;;;;;;;;;585:16;;;;;;931:10;944:9;948:4;944:3;:9::i;:::-;931:22;;972:18;:22;991:2;972:22;;;;;;;;;;;;;;;;;;;;;964:31;;;;;;1023:12;1030:4;1023:6;:12::i;:::-;1016:19;;1060:4;1046:13;;:18;;;;;;;;;;;;;;;;;;1098:2;1075:14;:20;1090:4;1075:20;;;;;;;;;;;;;;;:25;;;;612:1;843:265;;;:::o;1280:220::-;1331:12;1418:4;1412:11;1405:4;1400;1396:14;1394:1;1387:37;1379:45;;1463:1;1456:4;1444:17;1441:24;1438:2;;;1478:1;1475;1468:12;1438:2;1364:129;;;:::o;28:2789::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://40cc6f4cbfea3836989591bad88c52248a0d8723104e0a108cb11bdd4f2392fa