ETH Price: $2,196.37 (-5.67%)

Contract

0x04F9d6926A0BCbC352E2A2cb7bAE69c87bf2f3cA
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep121359322021-03-29 19:04:581815 days ago1617044698IN
0x04F9d692...87bf2f3cA
0 ETH0.01221314227.7
Sweep43704822017-10-16 8:37:183075 days ago1508143038IN
0x04F9d692...87bf2f3cA
0 ETH0.0015517631
Transfer43704642017-10-16 8:32:093075 days ago1508142729IN
0x04F9d692...87bf2f3cA
1.41498417 ETH0.0004420721
Transfer43171032017-09-27 20:25:233094 days ago1506543923IN
0x04F9d692...87bf2f3cA
0.006 ETH0.00008424
Sweep43102392017-09-25 11:18:273096 days ago1506338307IN
0x04F9d692...87bf2f3cA
0 ETH0.002552951
Sweep43102322017-09-25 11:16:253096 days ago1506338185IN
0x04F9d692...87bf2f3cA
0 ETH0.0025496451
Transfer43102322017-09-25 11:16:253096 days ago1506338185IN
0x04F9d692...87bf2f3cA
1.35334769 ETH0.0004420721
Transfer43102262017-09-25 11:13:113096 days ago1506337991IN
0x04F9d692...87bf2f3cA
1.7 ETH0.00008424
Sweep42953962017-09-20 17:02:053101 days ago1505926925IN
0x04F9d692...87bf2f3cA
0 ETH0.0025496451
Transfer42953882017-09-20 16:57:383101 days ago1505926658IN
0x04F9d692...87bf2f3cA
1.63 ETH0.00008424
Sweep42613902017-09-11 6:18:503110 days ago1505110730IN
0x04F9d692...87bf2f3cA
0 ETH0.002552951
Transfer42613852017-09-11 6:17:493110 days ago1505110669IN
0x04F9d692...87bf2f3cA
1.43970926 ETH0.0004792922.76808903
Sweep42395942017-09-05 2:54:493117 days ago1504580089IN
0x04F9d692...87bf2f3cA
0 ETH0.002552951
Transfer42395852017-09-05 2:51:213117 days ago1504579881IN
0x04F9d692...87bf2f3cA
1.58604327 ETH0.0005730327.22106332
Sweep42073002017-08-26 22:34:313126 days ago1503786871IN
0x04F9d692...87bf2f3cA
0 ETH0.0015017130
Transfer42072952017-08-26 22:30:023126 days ago1503786602IN
0x04F9d692...87bf2f3cA
1.43876377 ETH0.0004210220
Sweep41701372017-08-17 18:06:003135 days ago1502993160IN
0x04F9d692...87bf2f3cA
0 ETH0.0016518833.000002
Transfer41701262017-08-17 18:03:583135 days ago1502993038IN
0x04F9d692...87bf2f3cA
0.823 ETH0.0004420721
Sweep41676262017-08-17 3:37:283136 days ago1502941048IN
0x04F9d692...87bf2f3cA
0 ETH0.0017158534.32199982
Transfer41675932017-08-17 3:28:403136 days ago1502940520IN
0x04F9d692...87bf2f3cA
0.5 ETH0.0004420721
Sweep41670402017-08-17 0:10:393136 days ago1502928639IN
0x04F9d692...87bf2f3cA
0 ETH0.0015747731.5
Transfer41670342017-08-17 0:08:183136 days ago1502928498IN
0x04F9d692...87bf2f3cA
0.216 ETH0.0004420721
Sweep41670182017-08-17 0:01:123136 days ago1502928072IN
0x04F9d692...87bf2f3cA
0 ETH0.0015767931.5
Transfer41670122017-08-16 23:59:073136 days ago1502927947IN
0x04F9d692...87bf2f3cA
0.1 ETH0.0004420721
Transfer41669902017-08-16 23:53:283136 days ago1502927608IN
0x04F9d692...87bf2f3cA
0.01 ETH0.0004420721
View all transactions

Latest 12 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer43704822017-10-16 8:37:183075 days ago1508143038
0x04F9d692...87bf2f3cA
1.42098417 ETH
Transfer43102392017-09-25 11:18:273096 days ago1506338307
0x04F9d692...87bf2f3cA
1.35334769 ETH
Transfer43102322017-09-25 11:16:253096 days ago1506338185
0x04F9d692...87bf2f3cA
1.7 ETH
Transfer42953962017-09-20 17:02:053101 days ago1505926925
0x04F9d692...87bf2f3cA
1.63 ETH
Transfer42613902017-09-11 6:18:503110 days ago1505110730
0x04F9d692...87bf2f3cA
1.43970926 ETH
Transfer42395942017-09-05 2:54:493117 days ago1504580089
0x04F9d692...87bf2f3cA
1.58604327 ETH
Transfer42073002017-08-26 22:34:313126 days ago1503786871
0x04F9d692...87bf2f3cA
1.43876377 ETH
Transfer41701372017-08-17 18:06:003135 days ago1502993160
0x04F9d692...87bf2f3cA
0.823 ETH
Transfer41676262017-08-17 3:37:283136 days ago1502941048
0x04F9d692...87bf2f3cA
0.5 ETH
Transfer41670402017-08-17 0:10:393136 days ago1502928639
0x04F9d692...87bf2f3cA
0.216 ETH
Transfer41670182017-08-17 0:01:123136 days ago1502928072
0x04F9d692...87bf2f3cA
0.111 ETH
Transfer41666262017-08-16 21:41:083136 days ago1502919668  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xd1DD82d1...18D918504
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
UserWallet

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-08-15
*/

pragma solidity ^0.4.10;

// Copyright 2017 Bittrex

contract AbstractSweeper {
    function sweep(address token, uint amount) returns (bool);

    function () { throw; }

    Controller controller;

    function AbstractSweeper(address _controller) {
        controller = Controller(_controller);
    }

    modifier canSweep() {
        if (msg.sender != controller.authorizedCaller() && msg.sender != controller.owner()) throw;
        if (controller.halted()) throw;
        _;
    }
}

contract Token {
    function balanceOf(address a) returns (uint) {
        (a);
        return 0;
    }

    function transfer(address a, uint val) returns (bool) {
        (a);
        (val);
        return false;
    }
}

contract DefaultSweeper is AbstractSweeper {
    function DefaultSweeper(address controller)
             AbstractSweeper(controller) {}

    function sweep(address _token, uint _amount)
    canSweep
    returns (bool) {
        bool success = false;
        address destination = controller.destination();

        if (_token != address(0)) {
            Token token = Token(_token);
            uint amount = _amount;
            if (amount > token.balanceOf(this)) {
                return false;
            }

            success = token.transfer(destination, amount);
        }
        else {
            uint amountInWei = _amount;
            if (amountInWei > this.balance) {
                return false;
            }

            success = destination.send(amountInWei);
        }

        if (success) {
            controller.logSweep(this, destination, _token, _amount);
        }
        return success;
    }
}

contract UserWallet {
    AbstractSweeperList sweeperList;
    function UserWallet(address _sweeperlist) {
        sweeperList = AbstractSweeperList(_sweeperlist);
    }

    function () public payable { }

    function tokenFallback(address _from, uint _value, bytes _data) {
        (_from);
        (_value);
        (_data);
     }

    function sweep(address _token, uint _amount)
    returns (bool) {
        (_amount);
        return sweeperList.sweeperOf(_token).delegatecall(msg.data);
    }
}

contract AbstractSweeperList {
    function sweeperOf(address _token) returns (address);
}

contract Controller is AbstractSweeperList {
    address public owner;
    address public authorizedCaller;

    address public destination;

    bool public halted;

    event LogNewWallet(address receiver);
    event LogSweep(address indexed from, address indexed to, address indexed token, uint amount);
    
    modifier onlyOwner() {
        if (msg.sender != owner) throw; 
        _;
    }

    modifier onlyAuthorizedCaller() {
        if (msg.sender != authorizedCaller) throw; 
        _;
    }

    modifier onlyAdmins() {
        if (msg.sender != authorizedCaller && msg.sender != owner) throw; 
        _;
    }

    function Controller() 
    {
        owner = msg.sender;
        destination = msg.sender;
        authorizedCaller = msg.sender;
    }

    function changeAuthorizedCaller(address _newCaller) onlyOwner {
        authorizedCaller = _newCaller;
    }

    function changeDestination(address _dest) onlyOwner {
        destination = _dest;
    }

    function changeOwner(address _owner) onlyOwner {
        owner = _owner;
    }

    function makeWallet() onlyAdmins returns (address wallet)  {
        wallet = address(new UserWallet(this));
        LogNewWallet(wallet);
    }

    function halt() onlyAdmins {
        halted = true;
    }

    function start() onlyOwner {
        halted = false;
    }

    address public defaultSweeper = address(new DefaultSweeper(this));
    mapping (address => address) sweepers;

    function addSweeper(address _token, address _sweeper) onlyOwner {
        sweepers[_token] = _sweeper;
    }

    function sweeperOf(address _token) returns (address) {
        address sweeper = sweepers[_token];
        if (sweeper == 0) sweeper = defaultSweeper;
        return sweeper;
    }

    function logSweep(address from, address to, address token, uint amount) {
        LogSweep(from, to, token, amount);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_amount","type":"uint256"}],"name":"sweep","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_sweeperlist","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"}]

0x6060604052341561000c57fe5b60405160208061026c83398101604052515b60008054600160a060020a031916600160a060020a0383161790555b505b6102218061004b6000396000f300606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029000000000000000000000000a3c1e324ca1ce40db73ed6026c4a177f099b5770

Deployed Bytecode

0x606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029

Swarm Source

bzzr://4cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd1

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.