Bytecode verified via sibling
This contract shares identical runtime bytecode with a verified contract (0x02b2f30c...) which has been verified through compiler archaeology.
Token collection wallet that moves an entire token balance to a chosen address, without the ERC223 callback handler.
Historical Significance
The two builds bracket a decision. ERC223 proposed that receiving contracts implement a callback so tokens could not be sent somewhere unable to move them, and for a while wallet authors added the handler defensively. This earlier build predates that choice being made, and the sibling family shows it being added later without any other change to the contract.
Key Facts
Description
The same collection logic as its sibling: transferAllTokens reads the contract's balance of the given token, transfers all of it to the destination, and returns false rather than reverting when the caller is not the owner, when the balance is zero, or when the destination is this contract.
What is missing is the tokenFallback handler. Without it an ERC223 token that calls back into the receiver on transfer will fail, so this build could only safely hold plain ERC20 balances.
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
This contract has verified source code on Etherscan.
Show source code (Solidity)
{{
"language": "Solidity",
"sources": {
"Wallet.sol": {
"content": "// Submitted by EthereumHistory (ethereumhistory.com)\npragma solidity ^0.4.18;\n\ncontract ERC20 {\n function balanceOf(address _owner) public returns (uint256);\n function transfer(address _to, uint256 _value) public returns (bool);\n}\n\ncontract Wallet {\n address public _owner;\n\n function transferAllTokens(address _token, address _to) public returns (bool) {\n if (msg.sender == _owner) {\n ERC20 token = ERC20(_token);\n uint256 bal = token.balanceOf(this);\n if (bal <= 0 || _to == address(this)) {\n return false;\n }\n return token.transfer(_to, bal);\n }\n }\n\n}\n"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 1
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}
}}External Links
Related contracts
Wallet
Same deployerToken collection wallet that moves an entire token balance to a chosen address and refuses to send to itself.
0x001cb5...43290eApril 16, 2018Msg
Same eraMinimal contract that stores a single public string in state, exposed via the auto-generated m() getter. First of 281 identical siblings. Source verified by EthereumHistory.
0x2c8f58...37b173January 13, 2018Wallet
Same eraOwner wallet that forwards ether to its owner, logs any call from a stranger with the full calldata, and lets the owner execute arbitrary calls.
0x001feb...9e7a4fJanuary 20, 2018Forwarder
Same eraNinety-three bytes with one hardcoded destination: every payment received is transferred straight back out to the same address.
0x458353...a562deJanuary 20, 2018Sweeper
Same eraMinimal ETH sweeper, first of 1,900 identical deployments in a 2-day burst in January 2018. All sweep to a single hardcoded destination. Source verified by EthereumHistory.
0xeb15f6...6cb3e1January 23, 2018Sweep
Same eraETH sweep-to-fixed-recipient — fallback forwards the contract's entire balance to `0xd293a88c…8d4` via `.send()` and reverts on failure. Massive cluster of 1899 identical deployments — likely deposit-address contracts for a single custodian.
0x00188b...b260a7January 23, 2018