Contract 0xd068fcc44525569fb593189c8f22827cf0f50f3f

Contract Overview

Balance:
0 Ether
Txn Hash
Block
From
To
Value
0xec1204229bf4d2f0930bea3923b29d1eeabcf1b134d0376fa3beac933027a2d169184052019-12-06 19:38:28448 days 11 hrs ago0xf89f97597b43d5ea177eb360637620ff0e23098e IN  0xd068fcc44525569fb593189c8f22827cf0f50f3f0 Ether0.0000140821
0xc73e8bf9b4b330facabae7eed083958ac51060e381cc484f86302f01feddcbcc69183972019-12-06 19:36:55448 days 11 hrs ago0xf89f97597b43d5ea177eb360637620ff0e23098e IN  0xd068fcc44525569fb593189c8f22827cf0f50f3f0 Ether0.0000239761
0xd64139f2254493f18a86472345aaa2afe138ead95ad6ecdf68e83cce4921f7a769183302019-12-06 19:20:26448 days 11 hrs ago0xf89f97597b43d5ea177eb360637620ff0e23098e IN  0xd068fcc44525569fb593189c8f22827cf0f50f3f0 Ether0.0000239761
0xbe957bf99fea02625f9780f654812123abe9db363e1d36589c48e97267766df669182932019-12-06 19:10:48448 days 11 hrs ago0xf89f97597b43d5ea177eb360637620ff0e23098e IN  0xd068fcc44525569fb593189c8f22827cf0f50f3f0 Ether0.0005032281
0x9c5edcf06844389c59f6bb86da3a792fa9038f16888be69aa2f742017200ccf769182872019-12-06 19:09:29448 days 11 hrs ago0xf89f97597b43d5ea177eb360637620ff0e23098e IN  0xd068fcc44525569fb593189c8f22827cf0f50f3f0 Ether0.0006366891
0x7bb079e0d77ec95c8db194c1a68e6d47edc2d7d53950a144a8c06f0e690de2b669182822019-12-06 19:08:17448 days 11 hrs ago0xf89f97597b43d5ea177eb360637620ff0e23098e IN  0xd068fcc44525569fb593189c8f22827cf0f50f3f0 Ether0.0000431761
0xdd4c9777fd7a36a4ddbc4c3eff773c4f691398c5f23b166ace5d6aa0e1e6bb2c69182782019-12-06 19:07:50448 days 11 hrs ago0xf89f97597b43d5ea177eb360637620ff0e23098e IN  0xd068fcc44525569fb593189c8f22827cf0f50f3f0 Ether0.0001739911
0xb075338f8d9eb56139d07809d67653a19fce6c32f44cf5fdc8bdf929e8b9dda169182752019-12-06 19:06:24448 days 12 hrs ago0xf89f97597b43d5ea177eb360637620ff0e23098e IN  0xd068fcc44525569fb593189c8f22827cf0f50f3f0 Ether0.0002095781
0x1e55fb38baa40e1cb2769c33c38faae6c8f11b0894d307265ecfa1d21e59dce369182692019-12-06 19:04:45448 days 12 hrs ago0xf89f97597b43d5ea177eb360637620ff0e23098e IN  Contract Creation0 Ether0.0006920951
[ Download CSV Export 
Latest 2 internal transactions
Parent Txn Hash Block From To Value
0xbe957bf99fea02625f9780f654812123abe9db363e1d36589c48e97267766df669182932019-12-06 19:10:48448 days 11 hrs ago 0xd068fcc44525569fb593189c8f22827cf0f50f3f  Contract Creation0 Ether
0x9c5edcf06844389c59f6bb86da3a792fa9038f16888be69aa2f742017200ccf769182872019-12-06 19:09:29448 days 11 hrs ago 0xd068fcc44525569fb593189c8f22827cf0f50f3f  Contract Creation0 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Montagy

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *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)
        }
    }
}

Contract ABI

[{"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"}]

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
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading