Back to Home

Contract 0x895e7e8f0822...160d767083a8

Exchange
0x895e7e8f0822...160d767083a8
DAO ForkExact Bytecode Match
Deployed October 4, 2016 (9 years ago)Block 2,375,846

Exchange deposit forwarder. Sweeps tokens from user deposit addresses to the exchange hot wallet. One of 4,163 identical deployments.

Key Facts

Deployment Block
2,375,846
Deployment Date
Oct 4, 2016, 05:35 AM
Code Size
602.0 B
Transactions by Year
20161

Description

An exchange deposit forwarding contract deployed by cryptocurrency exchanges for user deposits. When a user deposits tokens, the exchange calls sweep() to forward them to the central wallet. The fallback function automatically sweeps to a default token address.

This is the v1 pattern without pragma or the LOCK identifier. 4,163 identical copies were deployed, making it the second most widely deployed unverified bytecode on early Ethereum.

Functions: transfer(address,uint256), balanceOf(address), sweep(address). The sweep function is owner-restricted and calls token.transfer(owner, token.balanceOf(this)).

Source Verified

SolidityExact bytecode match(602 bytes)
Compiler: 0.4.2+c

Exact runtime bytecode match. solc 0.4.2+commit.af6afb04, optimizer OFF. 4,163 identical siblings.

Heuristic Analysis

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

Detected Type: Exchange
Has ERC-20-like patterns

DAO Fork Era

The controversial fork to recover funds from The DAO hack.

Block span: 1,920,0002,462,999
July 20, 2016October 18, 2016

Bytecode Overview

Opcodes602
Unique Opcodes58
Jump Instructions24
Storage Operations4

Verified Source Available

Source verified through compiler archaeology and exact bytecode matching.

View Verification Proof
Show source code (Solidity)
contract Token {
    function transfer(address to, uint256 value) returns (bool ok);
    function balanceOf(address who) constant returns (uint256 value);
}

contract Forwarder {
    address owner;
    address defaultSweep;

    function Forwarder() {
        owner = 0xab8c0420ad39a5727fd43c917679e8822bff1c51;
        defaultSweep = 0xaec2e87e0a235266d9c5adc9deb4b2e29b54d009;
    }

    function() {
        sweep(defaultSweep);
    }

    function sweep(address _token) {
        address token = _token;
        if (!(msg.sender == owner && Token(token).transfer(owner, Token(token).balanceOf(this)))) throw;
    }
}

External Links