ETH Price: $2,715.51 (-1.74%)

Contract

0x968f2034733109074dbF776Cd04EbFc45f3B662d
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep117590492021-01-30 19:03:031485 days ago1612033383IN
0x968f2034...45f3B662d
0 ETH0.0054021794.80000161
Transfer117590152021-01-30 18:56:001485 days ago1612032960IN
0x968f2034...45f3B662d
4.0674606 ETH0.00288398137
Sweep116956152021-01-21 0:32:371495 days ago1611189157IN
0x968f2034...45f3B662d
0 ETH0.0048882885.8
Transfer116955852021-01-21 0:26:041495 days ago1611188764IN
0x968f2034...45f3B662d
3 ETH0.0021472102
Sweep68075272018-12-01 16:57:592276 days ago1543683479IN
0x968f2034...45f3B662d
0 ETH0.0024996550
Transfer68075112018-12-01 16:52:312276 days ago1543683151IN
0x968f2034...45f3B662d
8.44447616 ETH0.0002315611
Sweep59216112018-07-07 12:44:162423 days ago1530967456IN
0x968f2034...45f3B662d
0 ETH0.0050057100
Transfer59215852018-07-07 12:36:462423 days ago1530967006IN
0x968f2034...45f3B662d
1.66599008 ETH0.0016840880
Transfer59215512018-07-07 12:24:412423 days ago1530966281IN
0x968f2034...45f3B662d
0.03 ETH0.0016840880
Sweep54977092018-04-24 13:46:022497 days ago1524577562IN
0x968f2034...45f3B662d
0 ETH0.0025028550
Transfer54976942018-04-24 13:42:092497 days ago1524577329IN
0x968f2034...45f3B662d
1.06191306 ETH0.00012636
Sweep47750732017-12-22 5:35:412620 days ago1513920941IN
0x968f2034...45f3B662d
0 ETH0.0029995860
Transfer47744632017-12-22 2:58:042621 days ago1513911484IN
0x968f2034...45f3B662d
0.678 ETH0.0008420440
Sweep47695242017-12-21 5:39:292621 days ago1513834769IN
0x968f2034...45f3B662d
0 ETH0.002799656
Transfer47690612017-12-21 3:40:522622 days ago1513827652IN
0x968f2034...45f3B662d
1.36 ETH0.0008420440
Sweep47612572017-12-19 18:10:302623 days ago1513707030IN
0x968f2034...45f3B662d
0 ETH0.0025496451
Transfer47612002017-12-19 17:55:152623 days ago1513706115IN
0x968f2034...45f3B662d
0.58903296 ETH0.0007115233.8
Sweep47455872017-12-17 0:34:442626 days ago1513470884IN
0x968f2034...45f3B662d
0 ETH0.002552951
Transfer47455542017-12-17 0:25:452626 days ago1513470345IN
0x968f2034...45f3B662d
1.01895351 ETH0.0005262725
Sweep46638672017-12-02 18:52:472640 days ago1512240767IN
0x968f2034...45f3B662d
0 ETH0.0010011420
Transfer46638402017-12-02 18:44:492640 days ago1512240289IN
0x968f2034...45f3B662d
1.98958 ETH0.0004210220
Transfer46638372017-12-02 18:44:132640 days ago1512240253IN
0x968f2034...45f3B662d
0.01 ETH0.0004210220

Latest 11 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
117590492021-01-30 19:03:031485 days ago1612033383
0x968f2034...45f3B662d
4.0674606 ETH
116956152021-01-21 0:32:371495 days ago1611189157
0x968f2034...45f3B662d
3 ETH
68075272018-12-01 16:57:592276 days ago1543683479
0x968f2034...45f3B662d
8.44447616 ETH
59216112018-07-07 12:44:162423 days ago1530967456
0x968f2034...45f3B662d
1.69599008 ETH
54977092018-04-24 13:46:022497 days ago1524577562
0x968f2034...45f3B662d
1.06191306 ETH
47750732017-12-22 5:35:412620 days ago1513920941
0x968f2034...45f3B662d
0.678 ETH
47695242017-12-21 5:39:292621 days ago1513834769
0x968f2034...45f3B662d
1.36 ETH
47612572017-12-19 18:10:302623 days ago1513707030
0x968f2034...45f3B662d
0.58903296 ETH
47455872017-12-17 0:34:442626 days ago1513470884
0x968f2034...45f3B662d
1.01895351 ETH
46638672017-12-02 18:52:472640 days ago1512240767
0x968f2034...45f3B662d
1.99958 ETH
46287742017-11-27 1:12:062646 days ago1511745126  Contract Creation0 ETH
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
/**
 *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

[{"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"}]

Deployed Bytecode

0x606060405236156100495763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416636ea056a98114610052578063c0ee0b8a14610092575b6100505b5b565b005b341561005a57fe5b61007e73ffffffffffffffffffffffffffffffffffffffff60043516602435610104565b604080519115158252519081900360200190f35b341561009a57fe5b604080516020600460443581810135601f810184900484028501840190955284845261005094823573ffffffffffffffffffffffffffffffffffffffff169460248035956064949293919092019181908401838280828437509496506101ef95505050505050565b005b6000805460408051602090810184905281517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015292519290931692633c18d318926024808301939282900301818787803b151561017b57fe5b6102c65a03f1151561018957fe5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff1660003660006040516020015260405180838380828437820191505092505050602060405180830381856102c65a03f415156101e057fe5b50506040515190505b92915050565b5b5050505600a165627a7a723058204cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd10029

Swarm Source

bzzr://4cdd69fdcf3cf6cbee9677fe380fa5f044048aa9e060ec5619a21ca5a5bd4cd1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.