Contract 0x5D416a9049c82590FC71dC3833062Bbac3255EA5

Contract Overview

Balance:
0 MATIC
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x66f6cbc60e196f029945df89fe20ddcbb31c2346808aadf821300e234f6de7c70x60806040333026822023-03-19 10:47:508 days 12 hrs ago0x15940575e50821cab60c331a3cce470a5014c2c0 IN  Create: MessagingApp0 MATIC0.151937576456 65.863000025
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MessagingApp

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 1 : MessagingApp.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

contract MessagingApp {
    struct User {
        string email;
        bool exists;
    }

    struct Message {
        address sender;
        address receiver;
        string message;
        uint256 timestamp;
        bool read;
        uint256 shares;
        uint256 views;
        address[] sharedWith;
        address[] viewedBy;
    }

    mapping(address => User) userList;
    // mapping(bytes32 => Message[]) allMessages;
    Message[] public messages;
    mapping(string => address) userListByEmail;
    event MessageShared(uint256 messageId, address sender, address[] receivers);

    // CHECK USER EXISTS
    function checkUserExists(address user) public view returns (bool) {
        return bytes(userList[user].email).length > 0;
    }

    function createUser(string calldata email, address adresse) external {
        require(
            checkUserExists(adresse) == false,
            "Account with this email already exist"
        );
        require(bytes(email).length > 0, "email cannot be empty");
        User memory newUser = User(email, true);
        userList[adresse] = newUser;
        userListByEmail[email] = adresse;
    }

    function getEmail(address adresse) external view returns (string memory) {
        require(
            checkUserExists(adresse) == true,
            "User with given address don't exist"
        );
        return userList[adresse].email;
    }

    function getAddress(string memory emailAdd) public view returns (address) {
        return userListByEmail[emailAdd];
    }

    function sendMessage(address reciever, string calldata message) private {
        require(
            checkUserExists(msg.sender) == true,
            "You must have an account"
        );
        require(checkUserExists(reciever) == true, "Recipient does not exist");
        Message memory newMessage = Message(
            msg.sender,
            reciever,
            message,
            block.timestamp,
            false,
            0,
            0,
            new address[](0), 
            new address[](0));
        messages.push(newMessage);
    }
    function MessageSent(
        string memory email
    ) external view returns (Message[] memory) {
        uint count = 0;
        for (uint i = 0; i < messages.length; i++) {
            if (messages[i].sender == getAddress(email)) {
                count++;
            }
        }
        Message[] memory messagesSent = new Message[](count);
        uint index = 0;
        for (uint i = 0; i < messages.length; i++) {
            if (messages[i].sender == getAddress(email)) {
                messagesSent[index] = messages[i];
                index++;
            }
        }
        return messagesSent;
    }

    function MessageRecieved(
        string memory email
    ) external view returns (Message[] memory) {
        uint count = 0;
        for (uint i = 0; i < messages.length; i++) {
            if (messages[i].receiver == getAddress(email)) {
                count++;
            }
        }
        Message[] memory messagesRecieved = new Message[](count);
        uint index = 0;
        for (uint i = 0; i < messages.length; i++) {
            if (messages[i].receiver == getAddress(email)) {
                messagesRecieved[index] = messages[i];
                index++;
            }
        }
        return messagesRecieved;
    }
//    function shareMessage(uint256 messageId, address[] memory receivers) public {
//         messages[messageId].shares++;
//         emit MessageShared(messageId, messages[messageId].sender, receivers);
//         sendNotification(messages[messageId].sender, "Your message has been shared with other users.");
//         for (uint i = 0; i < receivers.length; i++) {
//             messages[messageId].sharedWith.push(receivers[i]);
//             sendNotification(receivers[i], "You have received a shared message.");
//         }
//     }




function shareMessage(uint256 messageId, address[] memory receivers) public {
    messages[messageId].shares++;
    emit MessageShared(messageId, messages[messageId].sender, receivers);
    sendNotification(messages[messageId].sender, "Your message has been shared with other users.");
    for (uint i = 0; i < receivers.length; i++) {
        messages[messageId].sharedWith.push(receivers[i]);
        sendNotification(receivers[i], "You have received a shared message.");
    }
    // Store the updated message in the messages array
    messages[messageId] = messages[messageId];
}

    function viewMessage(uint256 messageId) public {
        messages[messageId].views++;
        messages[messageId].viewedBy.push(msg.sender);
        sendNotification(messages[messageId].receiver, "Your message has been viewed by other users.");
    }

    function getSharedWith(uint256 messageId) public view returns (address[] memory) {
        return messages[messageId].sharedWith;
    }

    function getViewedBy(uint256 messageId) public view returns (address[] memory) {
        return messages[messageId].viewedBy;
    }
    function sendNotification(address user, string memory message) private {
        // implementation omitted for brevity
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"messageId","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address[]","name":"receivers","type":"address[]"}],"name":"MessageShared","type":"event"},{"inputs":[{"internalType":"string","name":"email","type":"string"}],"name":"MessageRecieved","outputs":[{"components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"string","name":"message","type":"string"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bool","name":"read","type":"bool"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"views","type":"uint256"},{"internalType":"address[]","name":"sharedWith","type":"address[]"},{"internalType":"address[]","name":"viewedBy","type":"address[]"}],"internalType":"struct MessagingApp.Message[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"email","type":"string"}],"name":"MessageSent","outputs":[{"components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"string","name":"message","type":"string"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bool","name":"read","type":"bool"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"views","type":"uint256"},{"internalType":"address[]","name":"sharedWith","type":"address[]"},{"internalType":"address[]","name":"viewedBy","type":"address[]"}],"internalType":"struct MessagingApp.Message[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"checkUserExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"email","type":"string"},{"internalType":"address","name":"adresse","type":"address"}],"name":"createUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"emailAdd","type":"string"}],"name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adresse","type":"address"}],"name":"getEmail","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"messageId","type":"uint256"}],"name":"getSharedWith","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"messageId","type":"uint256"}],"name":"getViewedBy","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"messages","outputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"string","name":"message","type":"string"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"bool","name":"read","type":"bool"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"views","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"messageId","type":"uint256"},{"internalType":"address[]","name":"receivers","type":"address[]"}],"name":"shareMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"messageId","type":"uint256"}],"name":"viewMessage","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b506128d7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063629f307d11610071578063629f307d14610190578063bab112f2146101c0578063bdc68c10146101dc578063bf40fac11461020c578063c22c836a1461023c578063f555ffb41461026c576100a9565b80630d80fefd146100ae578063133f50f5146100e45780633e6c7125146101145780634d52a0bd146101305780634fa7353c14610160575b600080fd5b6100c860048036038101906100c39190611829565b610288565b6040516100db9796959493929190611951565b60405180910390f35b6100fe60048036038101906100f991906119f3565b6103af565b60405161010b9190611a20565b60405180910390f35b61012e60048036038101906101299190611b83565b610408565b005b61014a60048036038101906101459190611829565b6107cd565b6040516101579190611c9d565b60405180910390f35b61017a600480360381019061017591906119f3565b610880565b6040516101879190611cbf565b60405180910390f35b6101aa60048036038101906101a59190611829565b6109a2565b6040516101b79190611c9d565b60405180910390f35b6101da60048036038101906101d59190611829565b610a55565b005b6101f660048036038101906101f19190611d96565b610b80565b604051610203919061204b565b60405180910390f35b61022660048036038101906102219190611d96565b61102c565b604051610233919061206d565b60405180910390f35b61025660048036038101906102519190611d96565b611074565b604051610263919061204b565b60405180910390f35b610286600480360381019061028191906120e3565b611520565b005b6001818154811061029857600080fd5b90600052602060002090600902016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600201805461030790612172565b80601f016020809104026020016040519081016040528092919081815260200182805461033390612172565b80156103805780601f1061035557610100808354040283529160200191610380565b820191906000526020600020905b81548152906001019060200180831161036357829003601f168201915b5050505050908060030154908060040160009054906101000a900460ff16908060050154908060060154905087565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180546103fe90612172565b9050119050919050565b6001828154811061041c5761041b6121a3565b5b9060005260206000209060090201600501600081548092919061043e90612201565b91905055507f0c43901fbebfc317eb8b7864ebc4e2fb7ded6d68dc290d832b9667b6d45a38c98260018481548110610479576104786121a3565b5b906000526020600020906009020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040516104bb93929190612249565b60405180910390a161052a600183815481106104da576104d96121a3565b5b906000526020600020906009020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060600160405280602e8152602001612874602e91396116f2565b60005b8151811015610625576001838154811061054a576105496121a3565b5b906000526020600020906009020160070182828151811061056e5761056d6121a3565b5b60200260200101519080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506106128282815181106105ec576105eb6121a3565b5b6020026020010151604051806060016040528060238152602001612851602391396116f2565b808061061d90612201565b91505061052d565b506001828154811061063a576106396121a3565b5b90600052602060002090600902016001838154811061065c5761065b6121a3565b5b90600052602060002090600902016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002820181600201908161074c9190612449565b50600382015481600301556004820160009054906101000a900460ff168160040160006101000a81548160ff021916908315150217905550600582015481600501556006820154816006015560078201816007019080546107ae9291906116f6565b5060088201816008019080546107c59291906116f6565b509050505050565b6060600182815481106107e3576107e26121a3565b5b906000526020600020906009020160080180548060200260200160405190810160405280929190818152602001828054801561087457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161082a575b50505050509050919050565b60606001151561088f836103af565b1515146108d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c8906125a3565b60405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805461091d90612172565b80601f016020809104026020016040519081016040528092919081815260200182805461094990612172565b80156109965780601f1061096b57610100808354040283529160200191610996565b820191906000526020600020905b81548152906001019060200180831161097957829003601f168201915b50505050509050919050565b6060600182815481106109b8576109b76121a3565b5b9060005260206000209060090201600701805480602002602001604051908101604052809291908181526020018280548015610a4957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116109ff575b50505050509050919050565b60018181548110610a6957610a686121a3565b5b90600052602060002090600902016006016000815480929190610a8b90612201565b919050555060018181548110610aa457610aa36121a3565b5b9060005260206000209060090201600801339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b7d60018281548110610b2d57610b2c6121a3565b5b906000526020600020906009020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060600160405280602c8152602001612825602c91396116f2565b50565b60606000805b600180549050811015610c3557610b9c8461102c565b73ffffffffffffffffffffffffffffffffffffffff1660018281548110610bc657610bc56121a3565b5b906000526020600020906009020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610c22578180610c1e90612201565b9250505b8080610c2d90612201565b915050610b86565b5060008167ffffffffffffffff811115610c5257610c51611a40565b5b604051908082528060200260200182016040528015610c8b57816020015b610c78611748565b815260200190600190039081610c705790505b5090506000805b60018054905081101561102057610ca88661102c565b73ffffffffffffffffffffffffffffffffffffffff1660018281548110610cd257610cd16121a3565b5b906000526020600020906009020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361100d5760018181548110610d3357610d326121a3565b5b9060005260206000209060090201604051806101200160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282018054610e0990612172565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3590612172565b8015610e825780601f10610e5757610100808354040283529160200191610e82565b820191906000526020600020905b815481529060010190602001808311610e6557829003601f168201915b50505050508152602001600382015481526020016004820160009054906101000a900460ff16151515158152602001600582015481526020016006820154815260200160078201805480602002602001604051908101604052809291908181526020018280548015610f4957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610eff575b5050505050815260200160088201805480602002602001604051908101604052809291908181526020018280548015610fd757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f8d575b505050505081525050838381518110610ff357610ff26121a3565b5b6020026020010181905250818061100990612201565b9250505b808061101890612201565b915050610c92565b50819350505050919050565b600060028260405161103e91906125ff565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60606000805b600180549050811015611129576110908461102c565b73ffffffffffffffffffffffffffffffffffffffff16600182815481106110ba576110b96121a3565b5b906000526020600020906009020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361111657818061111290612201565b9250505b808061112190612201565b91505061107a565b5060008167ffffffffffffffff81111561114657611145611a40565b5b60405190808252806020026020018201604052801561117f57816020015b61116c611748565b8152602001906001900390816111645790505b5090506000805b6001805490508110156115145761119c8661102c565b73ffffffffffffffffffffffffffffffffffffffff16600182815481106111c6576111c56121a3565b5b906000526020600020906009020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115015760018181548110611227576112266121a3565b5b9060005260206000209060090201604051806101200160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016002820180546112fd90612172565b80601f016020809104026020016040519081016040528092919081815260200182805461132990612172565b80156113765780601f1061134b57610100808354040283529160200191611376565b820191906000526020600020905b81548152906001019060200180831161135957829003601f168201915b50505050508152602001600382015481526020016004820160009054906101000a900460ff1615151515815260200160058201548152602001600682015481526020016007820180548060200260200160405190810160405280929190818152602001828054801561143d57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116113f3575b50505050508152602001600882018054806020026020016040519081016040528092919081815260200182805480156114cb57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611481575b5050505050815250508383815181106114e7576114e66121a3565b5b602002602001018190525081806114fd90612201565b9250505b808061150c90612201565b915050611186565b50819350505050919050565b6000151561152d826103af565b15151461156f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156690612688565b60405180910390fd5b600083839050116115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac906126f4565b60405180910390fd5b6000604051806040016040528085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152602001600115158152509050806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000190816116699190612714565b5060208201518160010160006101000a81548160ff02191690831515021790555090505081600285856040516116a092919061280b565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b5050565b8280548282559060005260206000209081019282156117375760005260206000209182015b8281111561173657825482559160010191906001019061171b565b5b50905061174491906117c2565b5090565b604051806101200160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008152602001600015158152602001600081526020016000815260200160608152602001606081525090565b5b808211156117db5760008160009055506001016117c3565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b611806816117f3565b811461181157600080fd5b50565b600081359050611823816117fd565b92915050565b60006020828403121561183f5761183e6117e9565b5b600061184d84828501611814565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061188182611856565b9050919050565b61189181611876565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156118d15780820151818401526020810190506118b6565b60008484015250505050565b6000601f19601f8301169050919050565b60006118f982611897565b61190381856118a2565b93506119138185602086016118b3565b61191c816118dd565b840191505092915050565b611930816117f3565b82525050565b60008115159050919050565b61194b81611936565b82525050565b600060e082019050611966600083018a611888565b6119736020830189611888565b818103604083015261198581886118ee565b90506119946060830187611927565b6119a16080830186611942565b6119ae60a0830185611927565b6119bb60c0830184611927565b98975050505050505050565b6119d081611876565b81146119db57600080fd5b50565b6000813590506119ed816119c7565b92915050565b600060208284031215611a0957611a086117e9565b5b6000611a17848285016119de565b91505092915050565b6000602082019050611a356000830184611942565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611a78826118dd565b810181811067ffffffffffffffff82111715611a9757611a96611a40565b5b80604052505050565b6000611aaa6117df565b9050611ab68282611a6f565b919050565b600067ffffffffffffffff821115611ad657611ad5611a40565b5b602082029050602081019050919050565b600080fd5b6000611aff611afa84611abb565b611aa0565b90508083825260208201905060208402830185811115611b2257611b21611ae7565b5b835b81811015611b4b5780611b3788826119de565b845260208401935050602081019050611b24565b5050509392505050565b600082601f830112611b6a57611b69611a3b565b5b8135611b7a848260208601611aec565b91505092915050565b60008060408385031215611b9a57611b996117e9565b5b6000611ba885828601611814565b925050602083013567ffffffffffffffff811115611bc957611bc86117ee565b5b611bd585828601611b55565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611c1481611876565b82525050565b6000611c268383611c0b565b60208301905092915050565b6000602082019050919050565b6000611c4a82611bdf565b611c548185611bea565b9350611c5f83611bfb565b8060005b83811015611c90578151611c778882611c1a565b9750611c8283611c32565b925050600181019050611c63565b5085935050505092915050565b60006020820190508181036000830152611cb78184611c3f565b905092915050565b60006020820190508181036000830152611cd981846118ee565b905092915050565b600080fd5b600067ffffffffffffffff821115611d0157611d00611a40565b5b611d0a826118dd565b9050602081019050919050565b82818337600083830152505050565b6000611d39611d3484611ce6565b611aa0565b905082815260208101848484011115611d5557611d54611ce1565b5b611d60848285611d17565b509392505050565b600082601f830112611d7d57611d7c611a3b565b5b8135611d8d848260208601611d26565b91505092915050565b600060208284031215611dac57611dab6117e9565b5b600082013567ffffffffffffffff811115611dca57611dc96117ee565b5b611dd684828501611d68565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b6000611e2782611897565b611e318185611e0b565b9350611e418185602086016118b3565b611e4a816118dd565b840191505092915050565b611e5e816117f3565b82525050565b611e6d81611936565b82525050565b600082825260208201905092915050565b6000611e8f82611bdf565b611e998185611e73565b9350611ea483611bfb565b8060005b83811015611ed5578151611ebc8882611c1a565b9750611ec783611c32565b925050600181019050611ea8565b5085935050505092915050565b600061012083016000830151611efb6000860182611c0b565b506020830151611f0e6020860182611c0b565b5060408301518482036040860152611f268282611e1c565b9150506060830151611f3b6060860182611e55565b506080830151611f4e6080860182611e64565b5060a0830151611f6160a0860182611e55565b5060c0830151611f7460c0860182611e55565b5060e083015184820360e0860152611f8c8282611e84565b915050610100830151848203610100860152611fa88282611e84565b9150508091505092915050565b6000611fc18383611ee2565b905092915050565b6000602082019050919050565b6000611fe182611ddf565b611feb8185611dea565b935083602082028501611ffd85611dfb565b8060005b85811015612039578484038952815161201a8582611fb5565b945061202583611fc9565b925060208a01995050600181019050612001565b50829750879550505050505092915050565b600060208201905081810360008301526120658184611fd6565b905092915050565b60006020820190506120826000830184611888565b92915050565b600080fd5b60008083601f8401126120a3576120a2611a3b565b5b8235905067ffffffffffffffff8111156120c0576120bf612088565b5b6020830191508360018202830111156120dc576120db611ae7565b5b9250929050565b6000806000604084860312156120fc576120fb6117e9565b5b600084013567ffffffffffffffff81111561211a576121196117ee565b5b6121268682870161208d565b93509350506020612139868287016119de565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061218a57607f821691505b60208210810361219d5761219c612143565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061220c826117f3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361223e5761223d6121d2565b5b600182019050919050565b600060608201905061225e6000830186611927565b61226b6020830185611888565b818103604083015261227d8184611c3f565b9050949350505050565b60008154905061229681612172565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026122ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826122c2565b61230986836122c2565b95508019841693508086168417925050509392505050565b6000819050919050565b600061234661234161233c846117f3565b612321565b6117f3565b9050919050565b6000819050919050565b6123608361232b565b61237461236c8261234d565b8484546122cf565b825550505050565b600090565b61238961237c565b612394818484612357565b505050565b5b818110156123b8576123ad600082612381565b60018101905061239a565b5050565b601f8211156123fd576123ce8161229d565b6123d7846122b2565b810160208510156123e6578190505b6123fa6123f2856122b2565b830182612399565b50505b505050565b600082821c905092915050565b600061242060001984600802612402565b1980831691505092915050565b6000612439838361240f565b9150826002028217905092915050565b81810361245757505061252f565b61246082612287565b67ffffffffffffffff81111561247957612478611a40565b5b6124838254612172565b61248e8282856123bc565b6000601f8311600181146124bd57600084156124ab578287015490505b6124b5858261242d565b865550612528565b601f1984166124cb8761229d565b96506124d68661229d565b60005b828110156124fe578489015482556001820191506001850194506020810190506124d9565b8683101561251b5784890154612517601f89168261240f565b8355505b6001600288020188555050505b5050505050505b565b7f55736572207769746820676976656e206164647265737320646f6e277420657860008201527f6973740000000000000000000000000000000000000000000000000000000000602082015250565b600061258d6023836118a2565b915061259882612531565b604082019050919050565b600060208201905081810360008301526125bc81612580565b9050919050565b600081905092915050565b60006125d982611897565b6125e381856125c3565b93506125f38185602086016118b3565b80840191505092915050565b600061260b82846125ce565b915081905092915050565b7f4163636f756e742077697468207468697320656d61696c20616c72656164792060008201527f6578697374000000000000000000000000000000000000000000000000000000602082015250565b60006126726025836118a2565b915061267d82612616565b604082019050919050565b600060208201905081810360008301526126a181612665565b9050919050565b7f656d61696c2063616e6e6f7420626520656d7074790000000000000000000000600082015250565b60006126de6015836118a2565b91506126e9826126a8565b602082019050919050565b6000602082019050818103600083015261270d816126d1565b9050919050565b61271d82611897565b67ffffffffffffffff81111561273657612735611a40565b5b6127408254612172565b61274b8282856123bc565b600060209050601f83116001811461277e576000841561276c578287015190505b612776858261242d565b8655506127de565b601f19841661278c8661229d565b60005b828110156127b45784890151825560018201915060208501945060208101905061278f565b868310156127d157848901516127cd601f89168261240f565b8355505b6001600288020188555050505b505050505050565b60006127f283856125c3565b93506127ff838584611d17565b82840190509392505050565b60006128188284866127e6565b9150819050939250505056fe596f7572206d65737361676520686173206265656e20766965776564206279206f746865722075736572732e596f752068617665207265636569766564206120736861726564206d6573736167652e596f7572206d65737361676520686173206265656e207368617265642077697468206f746865722075736572732ea26469706673582212200029548ecf6c1ff9a430685c70074756223e5bc12272165e45c9f225f14eac0164736f6c63430008120033

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading