Back to Home

MessagingContract

Unclassified
0xba41af292f5c...03752e4eb0e1
FrontierContract #48Source VerifiedEdit this contract
Deployed August 8, 2015 (11 years ago)Block 54,357

The 8 August 2015 messaging contract where sendMessage first writes a message, keyed by the nonce.

Frontier EraVerified Source

Historical Significance

The onchain messaging contract of 0x8674c218f0351a62c3ba78c34fd2182a93da94e2 with sendMessage finally doing something, deployed on 8 August 2015 twelve minutes after the version that only advanced the nonce. sendMessage reads the current nonce, casts it to bytes32 as the message key, advances the nonce, and writes Message(uint64(now), contents) into mapping (address => mapping (bytes32 => Message)) messages under the recipient's address. Recipients read their own mail with getMessageTime and getMessageContents, both keyed on msg.sender, and deleteMessage clears the stored message and then scans the caller's hash list for the matching entry and zeroes it. The mapping (address => bytes32[]) hashes that getMessageHashes returns is still never written, so a recipient has no way to learn the key of a message sent to them. Source recovered by exact bytecode match: solc v0.1.1+commit.6ff4cd6 with the optimizer on reproduces all 1379 bytes of the creation transaction.

Context

Deployed 8 August 2015, the second day of the Ethereum Frontier network.

Key Facts
Deployment Block
54,357
Deployment Date
Aug 8, 2015, 04:55 PM
Code Size
1.3 KB
Gas at Deploy
384,180
Transactions by Year
20151

Description

The onchain messaging contract of 0x8674c218f0351a62c3ba78c34fd2182a93da94e2 with sendMessage finally doing something, deployed on 8 August 2015 twelve minutes after the version that only advanced the nonce. sendMessage reads the current nonce, casts it to bytes32 as the message key, advances the nonce, and writes Message(uint64(now), contents) into mapping (address => mapping (bytes32 => Message)) messages under the recipient's address. Recipients read their own mail with getMessageTime and getMessageContents, both keyed on msg.sender, and deleteMessage clears the stored message and then scans the caller's hash list for the matching entry and zeroes it. The mapping (address => bytes32[]) hashes that getMessageHashes returns is still never written, so a recipient has no way to learn the key of a message sent to them. Source recovered by exact bytecode match: solc v0.1.1+commit.6ff4cd6 with the optimizer on reproduces all 1379 bytes of the creation transaction.

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: Unclassified

Bytecode Overview

Opcodes1,379
Unique Opcodes101
Jump Instructions62
Storage Operations38

External Links

Related contracts