Back to Home

MessagingContract

other
0xb9371963069c...5fc90cb6743b
FrontierContract #47Source Verified
Deployed August 8, 2015 (10 years ago)Block 54,347

The fifth 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,347
Deployment Date
Aug 8, 2015, 04:51 PM
Code Size
1.2 KB
Gas at Deploy
340,017
Transactions by Year
20151

Description

A messaging contract deployed at rank 47 (1197b 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,216
Unique Opcodes93
Jump Instructions59
Storage Operations25

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