Contract 0x20b18855E95B4c4eeAf9AdD71E1b298f65DCb113

Contract Overview

Balance:
0 MATIC
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x2265b2a693fe33ce17332f12cb96e2e9748e1d952a1c10e84d0b55bd564c53c3Create User333024782023-03-19 10:40:368 days 11 hrs ago0x15940575e50821cab60c331a3cce470a5014c2c0 IN  0x20b18855e95b4c4eeaf9add71e1b298f65dcb1130 MATIC0.000090944001 1.000000015
0xbf44e5e8852587adac961ad1597ee2d2c6c455229d8f3c1e0af3fbc4787b87980x60806040333024232023-03-19 10:38:408 days 11 hrs ago0x15940575e50821cab60c331a3cce470a5014c2c0 IN  Create: MessagingApp0 MATIC0.004817030021 1.92060002
[ 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]);
        Message memory newMessage = Message(
            msg.sender,
            receivers[i],
            messages[messageId].message,
            block.timestamp,
            false, 
            0,
            0,
            new address[](0), 
            new address[](0));
        messages.push(newMessage);
        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"}]

608060405234801561001057600080fd5b50612c7b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063629f307d11610071578063629f307d14610190578063bab112f2146101c0578063bdc68c10146101dc578063bf40fac11461020c578063c22c836a1461023c578063f555ffb41461026c576100a9565b80630d80fefd146100ae578063133f50f5146100e45780633e6c7125146101145780634d52a0bd146101305780634fa7353c14610160575b600080fd5b6100c860048036038101906100c39190611bcd565b610288565b6040516100db9796959493929190611cf5565b60405180910390f35b6100fe60048036038101906100f99190611d97565b6103af565b60405161010b9190611dc4565b60405180910390f35b61012e60048036038101906101299190611f27565b610408565b005b61014a60048036038101906101459190611bcd565b610ae7565b6040516101579190612041565b60405180910390f35b61017a60048036038101906101759190611d97565b610b9a565b6040516101879190612063565b60405180910390f35b6101aa60048036038101906101a59190611bcd565b610cbc565b6040516101b79190612041565b60405180910390f35b6101da60048036038101906101d59190611bcd565b610d6f565b005b6101f660048036038101906101f1919061213a565b610e9a565b60405161020391906123ef565b60405180910390f35b6102266004803603810190610221919061213a565b611346565b6040516102339190612411565b60405180910390f35b6102566004803603810190610251919061213a565b61138e565b60405161026391906123ef565b60405180910390f35b61028660048036038101906102819190612487565b61183a565b005b6001818154811061029857600080fd5b90600052602060002090600902016000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600201805461030790612516565b80601f016020809104026020016040519081016040528092919081815260200182805461033390612516565b80156103805780601f1061035557610100808354040283529160200191610380565b820191906000526020600020905b81548152906001019060200180831161036357829003601f168201915b5050505050908060030154908060040160009054906101000a900460ff16908060050154908060060154905087565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180546103fe90612516565b9050119050919050565b6001828154811061041c5761041b612547565b5b9060005260206000209060090201600501600081548092919061043e906125a5565b91905055507f0c43901fbebfc317eb8b7864ebc4e2fb7ded6d68dc290d832b9667b6d45a38c9826001848154811061047957610478612547565b5b906000526020600020906009020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040516104bb939291906125ed565b60405180910390a161052a600183815481106104da576104d9612547565b5b906000526020600020906009020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060600160405280602e8152602001612c18602e9139611a0c565b60005b815181101561093f576001838154811061054a57610549612547565b5b906000526020600020906009020160070182828151811061056e5761056d612547565b5b60200260200101519080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006040518061012001604052803373ffffffffffffffffffffffffffffffffffffffff16815260200184848151811061061357610612612547565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020016001868154811061064a57610649612547565b5b9060005260206000209060090201600201805461066690612516565b80601f016020809104026020016040519081016040528092919081815260200182805461069290612516565b80156106df5780601f106106b4576101008083540402835291602001916106df565b820191906000526020600020905b8154815290600101906020018083116106c257829003601f168201915b505050505081526020014281526020016000151581526020016000815260200160008152602001600067ffffffffffffffff81111561072157610720611de4565b5b60405190808252806020026020018201604052801561074f5781602001602082028036833780820191505090505b508152602001600067ffffffffffffffff8111156107705761076f611de4565b5b60405190808252806020026020018201604052801561079e5781602001602082028036833780820191505090505b508152509050600181908060018154018082558091505060019003906000526020600020906009020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201908161087391906127d7565b506060820151816003015560808201518160040160006101000a81548160ff02191690831515021790555060a0820151816005015560c0820151816006015560e08201518160070190805190602001906108ce929190611a10565b506101008201518160080190805190602001906108ec929190611a10565b50505061092b83838151811061090557610904612547565b5b6020026020010151604051806060016040528060238152602001612bf560239139611a0c565b508080610937906125a5565b91505061052d565b506001828154811061095457610953612547565b5b90600052602060002090600902016001838154811061097657610975612547565b5b90600052602060002090600902016000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060028201816002019081610a6691906128bf565b50600382015481600301556004820160009054906101000a900460ff168160040160006101000a81548160ff02191690831515021790555060058201548160050155600682015481600601556007820181600701908054610ac8929190611a9a565b506008820181600801908054610adf929190611a9a565b509050505050565b606060018281548110610afd57610afc612547565b5b9060005260206000209060090201600801805480602002602001604051908101604052809291908181526020018280548015610b8e57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610b44575b50505050509050919050565b606060011515610ba9836103af565b151514610beb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be290612a19565b60405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054610c3790612516565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6390612516565b8015610cb05780601f10610c8557610100808354040283529160200191610cb0565b820191906000526020600020905b815481529060010190602001808311610c9357829003601f168201915b50505050509050919050565b606060018281548110610cd257610cd1612547565b5b9060005260206000209060090201600701805480602002602001604051908101604052809291908181526020018280548015610d6357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610d19575b50505050509050919050565b60018181548110610d8357610d82612547565b5b90600052602060002090600902016006016000815480929190610da5906125a5565b919050555060018181548110610dbe57610dbd612547565b5b9060005260206000209060090201600801339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e9760018281548110610e4757610e46612547565b5b906000526020600020906009020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518060600160405280602c8152602001612bc9602c9139611a0c565b50565b60606000805b600180549050811015610f4f57610eb684611346565b73ffffffffffffffffffffffffffffffffffffffff1660018281548110610ee057610edf612547565b5b906000526020600020906009020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603610f3c578180610f38906125a5565b9250505b8080610f47906125a5565b915050610ea0565b5060008167ffffffffffffffff811115610f6c57610f6b611de4565b5b604051908082528060200260200182016040528015610fa557816020015b610f92611aec565b815260200190600190039081610f8a5790505b5090506000805b60018054905081101561133a57610fc286611346565b73ffffffffffffffffffffffffffffffffffffffff1660018281548110610fec57610feb612547565b5b906000526020600020906009020160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603611327576001818154811061104d5761104c612547565b5b9060005260206000209060090201604051806101200160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201805461112390612516565b80601f016020809104026020016040519081016040528092919081815260200182805461114f90612516565b801561119c5780601f106111715761010080835404028352916020019161119c565b820191906000526020600020905b81548152906001019060200180831161117f57829003601f168201915b50505050508152602001600382015481526020016004820160009054906101000a900460ff1615151515815260200160058201548152602001600682015481526020016007820180548060200260200160405190810160405280929190818152602001828054801561126357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611219575b50505050508152602001600882018054806020026020016040519081016040528092919081815260200182805480156112f157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116112a7575b50505050508152505083838151811061130d5761130c612547565b5b60200260200101819052508180611323906125a5565b9250505b8080611332906125a5565b915050610fac565b50819350505050919050565b60006002826040516113589190612a75565b908152602001604051809103902060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60606000805b600180549050811015611443576113aa84611346565b73ffffffffffffffffffffffffffffffffffffffff16600182815481106113d4576113d3612547565b5b906000526020600020906009020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361143057818061142c906125a5565b9250505b808061143b906125a5565b915050611394565b5060008167ffffffffffffffff8111156114605761145f611de4565b5b60405190808252806020026020018201604052801561149957816020015b611486611aec565b81526020019060019003908161147e5790505b5090506000805b60018054905081101561182e576114b686611346565b73ffffffffffffffffffffffffffffffffffffffff16600182815481106114e0576114df612547565b5b906000526020600020906009020160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361181b576001818154811061154157611540612547565b5b9060005260206000209060090201604051806101200160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160028201805461161790612516565b80601f016020809104026020016040519081016040528092919081815260200182805461164390612516565b80156116905780601f1061166557610100808354040283529160200191611690565b820191906000526020600020905b81548152906001019060200180831161167357829003601f168201915b50505050508152602001600382015481526020016004820160009054906101000a900460ff1615151515815260200160058201548152602001600682015481526020016007820180548060200260200160405190810160405280929190818152602001828054801561175757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161170d575b50505050508152602001600882018054806020026020016040519081016040528092919081815260200182805480156117e557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161179b575b50505050508152505083838151811061180157611800612547565b5b60200260200101819052508180611817906125a5565b9250505b8080611826906125a5565b9150506114a0565b50819350505050919050565b60001515611847826103af565b151514611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090612afe565b60405180910390fd5b600083839050116118cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c690612b6a565b60405180910390fd5b6000604051806040016040528085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508152602001600115158152509050806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001908161198391906127d7565b5060208201518160010160006101000a81548160ff02191690831515021790555090505081600285856040516119ba929190612baf565b908152602001604051809103902060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b5050565b828054828255906000526020600020908101928215611a89579160200282015b82811115611a885782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611a30565b5b509050611a969190611b66565b5090565b828054828255906000526020600020908101928215611adb5760005260206000209182015b82811115611ada578254825591600101919060010190611abf565b5b509050611ae89190611b66565b5090565b604051806101200160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160008152602001600015158152602001600081526020016000815260200160608152602001606081525090565b5b80821115611b7f576000816000905550600101611b67565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b611baa81611b97565b8114611bb557600080fd5b50565b600081359050611bc781611ba1565b92915050565b600060208284031215611be357611be2611b8d565b5b6000611bf184828501611bb8565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c2582611bfa565b9050919050565b611c3581611c1a565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c75578082015181840152602081019050611c5a565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c9d82611c3b565b611ca78185611c46565b9350611cb7818560208601611c57565b611cc081611c81565b840191505092915050565b611cd481611b97565b82525050565b60008115159050919050565b611cef81611cda565b82525050565b600060e082019050611d0a600083018a611c2c565b611d176020830189611c2c565b8181036040830152611d298188611c92565b9050611d386060830187611ccb565b611d456080830186611ce6565b611d5260a0830185611ccb565b611d5f60c0830184611ccb565b98975050505050505050565b611d7481611c1a565b8114611d7f57600080fd5b50565b600081359050611d9181611d6b565b92915050565b600060208284031215611dad57611dac611b8d565b5b6000611dbb84828501611d82565b91505092915050565b6000602082019050611dd96000830184611ce6565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611e1c82611c81565b810181811067ffffffffffffffff82111715611e3b57611e3a611de4565b5b80604052505050565b6000611e4e611b83565b9050611e5a8282611e13565b919050565b600067ffffffffffffffff821115611e7a57611e79611de4565b5b602082029050602081019050919050565b600080fd5b6000611ea3611e9e84611e5f565b611e44565b90508083825260208201905060208402830185811115611ec657611ec5611e8b565b5b835b81811015611eef5780611edb8882611d82565b845260208401935050602081019050611ec8565b5050509392505050565b600082601f830112611f0e57611f0d611ddf565b5b8135611f1e848260208601611e90565b91505092915050565b60008060408385031215611f3e57611f3d611b8d565b5b6000611f4c85828601611bb8565b925050602083013567ffffffffffffffff811115611f6d57611f6c611b92565b5b611f7985828601611ef9565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611fb881611c1a565b82525050565b6000611fca8383611faf565b60208301905092915050565b6000602082019050919050565b6000611fee82611f83565b611ff88185611f8e565b935061200383611f9f565b8060005b8381101561203457815161201b8882611fbe565b975061202683611fd6565b925050600181019050612007565b5085935050505092915050565b6000602082019050818103600083015261205b8184611fe3565b905092915050565b6000602082019050818103600083015261207d8184611c92565b905092915050565b600080fd5b600067ffffffffffffffff8211156120a5576120a4611de4565b5b6120ae82611c81565b9050602081019050919050565b82818337600083830152505050565b60006120dd6120d88461208a565b611e44565b9050828152602081018484840111156120f9576120f8612085565b5b6121048482856120bb565b509392505050565b600082601f83011261212157612120611ddf565b5b81356121318482602086016120ca565b91505092915050565b6000602082840312156121505761214f611b8d565b5b600082013567ffffffffffffffff81111561216e5761216d611b92565b5b61217a8482850161210c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b60006121cb82611c3b565b6121d581856121af565b93506121e5818560208601611c57565b6121ee81611c81565b840191505092915050565b61220281611b97565b82525050565b61221181611cda565b82525050565b600082825260208201905092915050565b600061223382611f83565b61223d8185612217565b935061224883611f9f565b8060005b838110156122795781516122608882611fbe565b975061226b83611fd6565b92505060018101905061224c565b5085935050505092915050565b60006101208301600083015161229f6000860182611faf565b5060208301516122b26020860182611faf565b50604083015184820360408601526122ca82826121c0565b91505060608301516122df60608601826121f9565b5060808301516122f26080860182612208565b5060a083015161230560a08601826121f9565b5060c083015161231860c08601826121f9565b5060e083015184820360e08601526123308282612228565b91505061010083015184820361010086015261234c8282612228565b9150508091505092915050565b60006123658383612286565b905092915050565b6000602082019050919050565b600061238582612183565b61238f818561218e565b9350836020820285016123a18561219f565b8060005b858110156123dd57848403895281516123be8582612359565b94506123c98361236d565b925060208a019950506001810190506123a5565b50829750879550505050505092915050565b60006020820190508181036000830152612409818461237a565b905092915050565b60006020820190506124266000830184611c2c565b92915050565b600080fd5b60008083601f84011261244757612446611ddf565b5b8235905067ffffffffffffffff8111156124645761246361242c565b5b6020830191508360018202830111156124805761247f611e8b565b5b9250929050565b6000806000604084860312156124a05761249f611b8d565b5b600084013567ffffffffffffffff8111156124be576124bd611b92565b5b6124ca86828701612431565b935093505060206124dd86828701611d82565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061252e57607f821691505b602082108103612541576125406124e7565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125b082611b97565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036125e2576125e1612576565b5b600182019050919050565b60006060820190506126026000830186611ccb565b61260f6020830185611c2c565b81810360408301526126218184611fe3565b9050949350505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261268d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612650565b6126978683612650565b95508019841693508086168417925050509392505050565b6000819050919050565b60006126d46126cf6126ca84611b97565b6126af565b611b97565b9050919050565b6000819050919050565b6126ee836126b9565b6127026126fa826126db565b84845461265d565b825550505050565b600090565b61271761270a565b6127228184846126e5565b505050565b5b818110156127465761273b60008261270f565b600181019050612728565b5050565b601f82111561278b5761275c8161262b565b61276584612640565b81016020851015612774578190505b61278861278085612640565b830182612727565b50505b505050565b600082821c905092915050565b60006127ae60001984600802612790565b1980831691505092915050565b60006127c7838361279d565b9150826002028217905092915050565b6127e082611c3b565b67ffffffffffffffff8111156127f9576127f8611de4565b5b6128038254612516565b61280e82828561274a565b600060209050601f831160018114612841576000841561282f578287015190505b61283985826127bb565b8655506128a1565b601f19841661284f8661262b565b60005b8281101561287757848901518255600182019150602085019450602081019050612852565b868310156128945784890151612890601f89168261279d565b8355505b6001600288020188555050505b505050505050565b6000815490506128b881612516565b9050919050565b8181036128cd5750506129a5565b6128d6826128a9565b67ffffffffffffffff8111156128ef576128ee611de4565b5b6128f98254612516565b61290482828561274a565b6000601f8311600181146129335760008415612921578287015490505b61292b85826127bb565b86555061299e565b601f1984166129418761262b565b965061294c8661262b565b60005b828110156129745784890154825560018201915060018501945060208101905061294f565b86831015612991578489015461298d601f89168261279d565b8355505b6001600288020188555050505b5050505050505b565b7f55736572207769746820676976656e206164647265737320646f6e277420657860008201527f6973740000000000000000000000000000000000000000000000000000000000602082015250565b6000612a03602383611c46565b9150612a0e826129a7565b604082019050919050565b60006020820190508181036000830152612a32816129f6565b9050919050565b600081905092915050565b6000612a4f82611c3b565b612a598185612a39565b9350612a69818560208601611c57565b80840191505092915050565b6000612a818284612a44565b915081905092915050565b7f4163636f756e742077697468207468697320656d61696c20616c72656164792060008201527f6578697374000000000000000000000000000000000000000000000000000000602082015250565b6000612ae8602583611c46565b9150612af382612a8c565b604082019050919050565b60006020820190508181036000830152612b1781612adb565b9050919050565b7f656d61696c2063616e6e6f7420626520656d7074790000000000000000000000600082015250565b6000612b54601583611c46565b9150612b5f82612b1e565b602082019050919050565b60006020820190508181036000830152612b8381612b47565b9050919050565b6000612b968385612a39565b9350612ba38385846120bb565b82840190509392505050565b6000612bbc828486612b8a565b9150819050939250505056fe596f7572206d65737361676520686173206265656e20766965776564206279206f746865722075736572732e596f752068617665207265636569766564206120736861726564206d6573736167652e596f7572206d65737361676520686173206265656e207368617265642077697468206f746865722075736572732ea2646970667358221220cfc9df76384ecceb5133a28284f39e6c3a912ae5770ddc9422fb0cb00aab1df864736f6c63430008120033

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