ETH Price: $1,972.50 (-4.23%)

Contract

0x694802d4e35c1599FbB2AAAb17Bda550fd1439bf
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep130001512021-08-10 22:27:231668 days ago1628634443IN
0x694802d4...0fd1439bf
0 ETH0.01350341238.63948096
Transfer130001352021-08-10 22:22:171668 days ago1628634137IN
0x694802d4...0fd1439bf
47 ETH0.0210511,000
Sweep130000992021-08-10 22:14:091668 days ago1628633649IN
0x694802d4...0fd1439bf
0 ETH0.02822629498.93587219
Transfer130000942021-08-10 22:12:261668 days ago1628633546IN
0x694802d4...0fd1439bf
1.25 ETH0.01225168582
Sweep130000242021-08-10 21:58:121668 days ago1628632692IN
0x694802d4...0fd1439bf
0 ETH0.0031536355.74461315
Transfer130000032021-08-10 21:54:151668 days ago1628632455IN
0x694802d4...0fd1439bf
0.5 ETH0.0016419778
Sweep117781072021-02-02 17:15:571858 days ago1612286157IN
0x694802d4...0fd1439bf
0 ETH0.0125139219.6
Transfer117780902021-02-02 17:11:551858 days ago1612285915IN
0x694802d4...0fd1439bf
25 ETH0.00673632320
Sweep117059032021-01-22 14:43:481869 days ago1611326628IN
0x694802d4...0fd1439bf
0 ETH0.00888778156
Transfer117058862021-01-22 14:39:551869 days ago1611326395IN
0x694802d4...0fd1439bf
2.925 ETH0.00303134144
Sweep80657022019-07-01 12:44:072440 days ago1561985047IN
0x694802d4...0fd1439bf
0 ETH0.0023174430
Sweep52797232018-03-18 22:18:562909 days ago1521411536IN
0x694802d4...0fd1439bf
0 ETH0.0025028550
Transfer52796832018-03-18 22:08:302909 days ago1521410910IN
0x694802d4...0fd1439bf
50 ETH0.000147357
Sweep45150492017-11-08 17:40:003039 days ago1510162800IN
0x694802d4...0fd1439bf
0 ETH0.0010011420
Transfer45150362017-11-08 17:38:013039 days ago1510162681IN
0x694802d4...0fd1439bf
49 ETH0.0004041719.2
Sweep45149722017-11-08 17:25:473039 days ago1510161947IN
0x694802d4...0fd1439bf
0 ETH0.0009998620
Transfer45149622017-11-08 17:23:033039 days ago1510161783IN
0x694802d4...0fd1439bf
1 ETH0.0004041719.2

Latest 9 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-130001512021-08-10 22:27:231668 days ago1628634443
0x694802d4...0fd1439bf
47 ETH
-130000992021-08-10 22:14:091668 days ago1628633649
0x694802d4...0fd1439bf
1.25 ETH
-130000242021-08-10 21:58:121668 days ago1628632692
0x694802d4...0fd1439bf
0.5 ETH
-117781072021-02-02 17:15:571858 days ago1612286157
0x694802d4...0fd1439bf
25 ETH
-117059032021-01-22 14:43:481869 days ago1611326628
0x694802d4...0fd1439bf
2.925 ETH
Transfer52797232018-03-18 22:18:562909 days ago1521411536
0x694802d4...0fd1439bf
50 ETH
Transfer45150492017-11-08 17:40:003039 days ago1510162800
0x694802d4...0fd1439bf
49 ETH
Transfer45149722017-11-08 17:25:473039 days ago1510161947
0x694802d4...0fd1439bf
1 ETH
Transfer44402512017-10-27 16:21:103052 days ago1509121270  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.