Owner-controlled multi-purpose wallet, first of 1,374 identical siblings. Accepts ETH, sweeps ERC-20 tokens, and implements ERC-223 tokenFallback. Source verified by EthereumHistory.
Key Facts
Description
This contract is the first of 1,374 identical Wallet contracts. It is an owner-controlled multi-purpose wallet that accepts ETH via a payable fallback, forwards ETH out via an owner-only transfer(address, uint256), sweeps ERC-20 tokens via transferToken(address, address, uint256), allows ownership handover via changeOwner(address), and implements the ERC-223 tokenFallback(address, uint256, bytes) receiver so it can accept ERC-223 tokens without them being trapped.
The source was reconstructed and matches the on-chain runtime code byte-for-byte (836 code bytes) when compiled with solc 0.4.15+commit.bbb8e64f optimizer ON runs=200. Only the trailing 34-byte Swarm/CBOR metadata hash differs from source-formatting delta.
Proof: cartoonitunes/awesome-ethereum-proofs, folder wallet-erc223-0x850c3bea.
Source Verified
Exact match on 836 code bytes with solc 0.4.15 optimizer ON runs=200. Only the trailing 34-byte Swarm metadata hash differs (source formatting delta). Cluster: 1,374+ identical-runtime deployments.
Heuristic Analysis
The following characteristics were detected through bytecode analysis and may not be accurate.
Byzantium Era
First Metropolis hard fork. Added zk-SNARK precompiles, REVERT opcode, and staticcall.
Bytecode Overview
Verified Source Available
Source verified through compiler archaeology and exact bytecode matching.
View Verification ProofShow source code (Solidity)
// Submitted by EthereumHistory (ethereumhistory.com)
pragma solidity ^0.4.13;
contract ERC20Basic {
uint256 public totalSupply;
function balanceOf(address who) constant returns (uint256);
function transfer(address to, uint256 value) returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
library SafeMath {
function mul(uint256 a, uint256 b) internal constant returns (uint256) {
uint256 c = a * b;
assert(a == 0 || c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal constant returns (uint256) {
uint256 c = a / b;
return c;
}
function sub(uint256 a, uint256 b) internal constant returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal constant returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
contract BasicToken is ERC20Basic {
using SafeMath for uint256;
mapping(address => uint256) balances;
function transfer(address _to, uint256 _value) returns (bool) {
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
function balanceOf(address _owner) constant returns (uint256 balance) {
return balances[_owner];
}
}
contract Wallet {
address owner;
function Wallet() {
owner = msg.sender;
}
function changeOwner(address _owner) returns (bool) {
require(owner == msg.sender);
owner = _owner;
return true;
}
function transfer(address _to, uint _value) returns (bool) {
require(owner == msg.sender);
require(_value <= this.balance);
_to.transfer(_value);
return true;
}
function transferToken(address _token, address _to, uint _value) returns (bool) {
require(owner == msg.sender);
BasicToken token = BasicToken(_token);
require(_value <= token.balanceOf(this));
token.transfer(_to, _value);
return true;
}
function () payable {}
function tokenFallback(address _from, uint _value, bytes _data) {
(_from); (_value); (_data);
}
}External Links
Related contracts
Asteroid
Same eraERC20 token built on OpenZeppelin v1.3.0 with owner-restricted burn function. Deployed during the 2017-2018 ICO era.
0xd86e37...474375October 24, 2017CRYPTOCTEST
Same eraCryptoCats pre-launch test contract (Nov 2017). The first version to introduce cat names and the allInitialOwnersAssigned() initialization pattern.
0xd23ade...718456November 11, 2017Contract 0x000141...106902
Same eraExchange deposit wallet (UserWallet). Owner-only ETH collection and ERC-20 token sweeping with Deposit event logging.
0x000141...106902December 13, 20170xBitcoin
Same eraThe original EIP-918 mineable token, Bitcoin's proof-of-work on Ethereum
0xb6ed76...405b31February 6, 20180xDOGE Token
Same eraFirst 0xBitcoin clone, deployed 10 days after 0xBTC. Permanently bricked after 12 mints by a reward dust term and a recursive era-cap bug.
0x0d8bb9...f4e7a9February 16, 20180xLitecoin
Same eraFirst mineable Litecoin on Ethereum, EIP-918 clone deployed April 2018
0x1e2800...560ee0April 14, 2018