Back to Home

MessagingContract

other
0x839333261d34...252249d38dea
FrontierContract #49Source Verified
Deployed August 8, 2015 (10 years ago)Block 54,372

The seventh iteration of an on-chain messaging system by the most prolific Frontier developer, featuring nonce-based message hashing and delete capability.

Key Facts

Deployment Block
54,372
Deployment Date
Aug 8, 2015, 04:59 PM
Code Size
1.5 KB
Gas at Deploy
421,801
Transactions by Year
20151

Description

A messaging contract deployed at rank 49 (1501b runtime) by deployer 0x8674c218, who deployed 31 contracts during Ethereum Frontier week 1. This iteration uses the same nonce-based message hashing interface as ranks 45 and 46: sendMessage, getMessageContents, getMessageTime, deleteMessage, with per-address tracking via hashes and messages mappings. The varying bytecode sizes across iterations (1197b to 1502b) suggest the developer was tuning the implementation with each redeployment.

Source Verified

SolidityNear-exact bytecode match
Compiler: soljson

near_exact_match: same 7-selector interface as ranks 45/46 MessagingContract v3 (hashes, messages, getMessageTime, getMessageContents, sendMessage, deleteMessage, nonce). All selectors confirmed via openchain.xyz. Same deployer (0x8674c218).

Heuristic Analysis

The following characteristics were detected through bytecode analysis and may not be accurate.

Detected Type: other

Frontier Era

The initial release of Ethereum. A bare-bones implementation for technical users.

Block span: 01,149,999
July 30, 2015March 14, 2016

Bytecode Overview

Opcodes1,520
Unique Opcodes126
Jump Instructions69
Storage Operations45

Verified Source Available

This contract has verified source code.

Show source code (Solidity)
contract Messaging {
    mapping(bytes32 => string) messageContents;
    mapping(bytes32 => uint) messageTime;
    mapping(address => bytes32[]) public hashes;
    mapping(address => mapping(bytes32 => bool)) public messages;
    uint public nonce;

    function sendMessage(address to, string content) {
        bytes32 h = sha3(msg.sender, to, content, nonce++);
        messageContents[h] = content;
        messageTime[h] = block.timestamp;
        hashes[to].push(h);
    }

    function getMessageContents(bytes32 hash) constant returns (string) {
        return messageContents[hash];
    }

    function getMessageTime(bytes32 hash) constant returns (uint) {
        return messageTime[hash];
    }

    function deleteMessage(bytes32 hash) {
        delete messageContents[hash];
        delete messageTime[hash];
    }
}

External Links