Back to Home

TwoD

program
0x78e33260f284...7cd9f6fc4dec
FrontierContract #1,076Exact Bytecode MatchEdit this contract
Deployed September 12, 2015 (10 years ago)Block 224,764

A tutorial contract testing two-dimensional array support in early Solidity.

Key Facts

Deployer
Cyrus Adkisson(0xcf684D...AD1Bac)
Deployment Block
224,764
Deployment Date
Sep 12, 2015, 08:07 PM
Code Size
624.0 B
Gas at Deploy
856,747
Transactions by Year
20151

Description

A tutorial contract from Cyrus Adkisson's solidity-baby-steps series testing two-dimensional array functionality. Creates a 2D array of uint8 values, populates it with test data, and provides getter functions to read individual elements.

Part of the numbered tutorial progression (contract #55) exploring more advanced data structures in Solidity. Cyrus deployed multiple iterations of this contract as he experimented with 2D array syntax and access patterns.

Source Verified

SolidityExact bytecode match(624 bytes)
Compiler: soljson

Exact creation bytecode match. Author Cyrus Adkisson published source at https://github.com/cyrusadkisson/solidity-baby-steps/blob/master/contracts/55_2D_array.sol. Batch-matched against 357 deploy TXs from deployer 0xcf684dfb8304729355b58315e8019b1aa2ad1bac.

Heuristic Analysis

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

Detected Type: program

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

Opcodes624
Unique Opcodes57
Jump Instructions27
Storage Operations12

Verified Source Available

Source verified through compiler archaeology and exact bytecode matching.

View Verification Proof
Show source code (Solidity)
contract TwoD {

    address creator;
    uint8 arraylength = 10;
    uint8[10][10] integers; // compiler says this line can't yet know about arraylength variable in the line above

    function TwoD() 
    {
        creator = msg.sender;
        uint8 x = 0;
        uint8 y = 0;
        while(y < arraylength)
 		{
        	x = 0;
 		    while(x < arraylength)
        	{
 		    	integers[x][y] = arraylength*y + x; // row 0: 0, 1   row 1: 2, 3
        		x++;
        	}
        	y++;
        }
    }
    
    function getValue(uint8 x, uint8 y) constant returns (uint8)
    {
    	return integers[x][y];
    }
    
    /**********
     Standard kill() function to recover funds 
     **********/
    
    function kill()
    { 
        if (msg.sender == creator)
        {
            suicide(creator);  // kills this contract and sends remaining funds back to creator
        }
    }
}

External Links