ETH Price: $1,973.10 (-4.88%)

Contract

0x0fd021d2EF72Df4ADbbFA0Ca6d9B4b2d59158a2D
 

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
Sweep132310082021-09-15 15:07:151633 days ago1631718435IN
0x0fd021d2...d59158a2D
0 ETH0.00772539136.55629781
Transfer132309872021-09-15 15:02:111633 days ago1631718131IN
0x0fd021d2...d59158a2D
1 ETH0.0020812998.86902837
Sweep131339742021-08-31 14:58:501648 days ago1630421930IN
0x0fd021d2...d59158a2D
0 ETH0.0069058122.06900362
Transfer131339572021-08-31 14:54:321648 days ago1630421672IN
0x0fd021d2...d59158a2D
0.8 ETH0.00214776102.02681216
Sweep113050502020-11-22 1:26:431931 days ago1606008403IN
0x0fd021d2...d59158a2D
0 ETH0.00580577101.904
Transfer113050332020-11-22 1:22:511931 days ago1606008171IN
0x0fd021d2...d59158a2D
1.7 ETH0.0019577493
Sweep111978712020-11-05 14:52:221947 days ago1604587942IN
0x0fd021d2...d59158a2D
0 ETH0.00594798104.40000175
Transfer111978562020-11-05 14:48:201947 days ago1604587700IN
0x0fd021d2...d59158a2D
1 ETH0.0017893385
Sweep111874892020-11-04 0:37:381949 days ago1604450258IN
0x0fd021d2...d59158a2D
0 ETH0.0017775531.2
Transfer111874742020-11-04 0:33:431949 days ago1604450023IN
0x0fd021d2...d59158a2D
0.5 ETH0.0005262725
Transfer111865002020-11-03 21:02:001949 days ago1604437320IN
0x0fd021d2...d59158a2D
0.51 ETH0.00033616
Sweep111810042020-11-03 0:44:051950 days ago1604364245IN
0x0fd021d2...d59158a2D
0 ETH0.0017091930
Transfer111809812020-11-03 0:39:411950 days ago1604363981IN
0x0fd021d2...d59158a2D
0.6 ETH0.0004841723
Sweep111808382020-11-03 0:08:431950 days ago1604362123IN
0x0fd021d2...d59158a2D
0 ETH0.0017091930
Transfer111808162020-11-03 0:03:251950 days ago1604361805IN
0x0fd021d2...d59158a2D
0.25 ETH0.0007409935.2
Sweep111764722020-11-02 8:09:501950 days ago1604304590IN
0x0fd021d2...d59158a2D
0 ETH0.0027757248.72
Transfer111764422020-11-02 8:03:441950 days ago1604304224IN
0x0fd021d2...d59158a2D
0.75 ETH0.001073651
Sweep111736822020-11-01 21:46:591951 days ago1604267219IN
0x0fd021d2...d59158a2D
0 ETH0.0017091930
Transfer111736622020-11-01 21:42:581951 days ago1604266978IN
0x0fd021d2...d59158a2D
0.3 ETH0.0005052224
Sweep111736112020-11-01 21:32:471951 days ago1604266367IN
0x0fd021d2...d59158a2D
0 ETH0.0017091930
Transfer111735882020-11-01 21:27:101951 days ago1604266030IN
0x0fd021d2...d59158a2D
0.3 ETH0.0007367835
Sweep111600932020-10-30 19:39:301953 days ago1604086770IN
0x0fd021d2...d59158a2D
0 ETH0.0017091930
Transfer111600702020-10-30 19:35:431953 days ago1604086543IN
0x0fd021d2...d59158a2D
0.75 ETH0.0005262725
Sweep110093602020-10-07 15:23:411976 days ago1602084221IN
0x0fd021d2...d59158a2D
0 ETH0.0056710999.54
Transfer110093432020-10-07 15:18:561976 days ago1602083936IN
0x0fd021d2...d59158a2D
1.72 ETH0.0015514573.7
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-132310082021-09-15 15:07:151633 days ago1631718435
0x0fd021d2...d59158a2D
1 ETH
-131339742021-08-31 14:58:501648 days ago1630421930
0x0fd021d2...d59158a2D
0.8 ETH
-113050502020-11-22 1:26:431931 days ago1606008403
0x0fd021d2...d59158a2D
1.7 ETH
-111978712020-11-05 14:52:221947 days ago1604587942
0x0fd021d2...d59158a2D
1 ETH
-111874892020-11-04 0:37:381949 days ago1604450258
0x0fd021d2...d59158a2D
0.5 ETH
-111810042020-11-03 0:44:051950 days ago1604364245
0x0fd021d2...d59158a2D
0.6 ETH
-111808382020-11-03 0:08:431950 days ago1604362123
0x0fd021d2...d59158a2D
0.25 ETH
-111764722020-11-02 8:09:501950 days ago1604304590
0x0fd021d2...d59158a2D
0.75 ETH
-111736822020-11-01 21:46:591951 days ago1604267219
0x0fd021d2...d59158a2D
0.3 ETH
-111736112020-11-01 21:32:471951 days ago1604266367
0x0fd021d2...d59158a2D
0.3 ETH
-111600932020-10-30 19:39:301953 days ago1604086770
0x0fd021d2...d59158a2D
0.75 ETH
-110093602020-10-07 15:23:411976 days ago1602084221
0x0fd021d2...d59158a2D
1.72 ETH
-109971542020-10-05 17:41:221978 days ago1601919682
0x0fd021d2...d59158a2D
1 ETH
-109858762020-10-03 23:25:381980 days ago1601767538
0x0fd021d2...d59158a2D
0.55 ETH
-109639412020-09-30 13:07:351983 days ago1601471255
0x0fd021d2...d59158a2D
0.4 ETH
-109519952020-09-28 16:26:411985 days ago1601310401
0x0fd021d2...d59158a2D
1.5 ETH
-109272312020-09-24 19:30:531989 days ago1600975853
0x0fd021d2...d59158a2D
0.15 ETH
-109226972020-09-24 2:56:021990 days ago1600916162
0x0fd021d2...d59158a2D
0.5 ETH
-109014152020-09-20 20:25:401993 days ago1600633540
0x0fd021d2...d59158a2D
0.35 ETH
-108829902020-09-18 0:32:031996 days ago1600389123
0x0fd021d2...d59158a2D
1.25 ETH
-108813742020-09-17 18:31:371996 days ago1600367497
0x0fd021d2...d59158a2D
1.2 ETH
-108740282020-09-16 15:50:081997 days ago1600271408
0x0fd021d2...d59158a2D
0.3 ETH
-108612382020-09-14 16:31:081999 days ago1600101068
0x0fd021d2...d59158a2D
0.6 ETH
-108299152020-09-09 21:14:262004 days ago1599686066
0x0fd021d2...d59158a2D
0.17 ETH
-108149872020-09-07 14:06:272006 days ago1599487587
0x0fd021d2...d59158a2D
0.26 ETH
View All Internal Transactions
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.