ETH Price: $2,148.27 (+0.53%)

Contract

0xB4C3fd39B4e90CE5E876379bc793Db0c309403d1
 

Overview

ETH Balance

0.000000007450166729 ETH

Eth Value

Less Than $0.01 (@ $2,148.27/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep87704102019-10-19 9:14:402345 days ago1571476480IN
0xB4C3fd39...c309403d1
0 ETH0.0011012522
Transfer87703872019-10-19 9:10:192345 days ago1571476219IN
0xB4C3fd39...c309403d1
0.10413413 ETH0.000021051
Sweep87352922019-10-13 20:42:432350 days ago1570999363IN
0xB4C3fd39...c309403d1
0 ETH0.0011012522
Transfer87352762019-10-13 20:39:242350 days ago1570999164IN
0xB4C3fd39...c309403d1
0.14244349 ETH0.000021051
Sweep86907352019-10-06 20:42:212357 days ago1570394541IN
0xB4C3fd39...c309403d1
0 ETH0.0011012522
Transfer86907122019-10-06 20:37:542357 days ago1570394274IN
0xB4C3fd39...c309403d1
0.14386403 ETH0.000021051
Sweep86458862019-09-29 20:43:592364 days ago1569789839IN
0xB4C3fd39...c309403d1
0 ETH0.0011012522
Transfer86458662019-09-29 20:37:432364 days ago1569789463IN
0xB4C3fd39...c309403d1
0.14595748 ETH0.000021051
Sweep86012072019-09-22 20:41:082371 days ago1569184868IN
0xB4C3fd39...c309403d1
0 ETH0.0011012522
Transfer86011892019-09-22 20:37:442371 days ago1569184664IN
0xB4C3fd39...c309403d1
0.14979181 ETH0.000021051
Sweep85562532019-09-15 20:34:392378 days ago1568579679IN
0xB4C3fd39...c309403d1
0 ETH0.0011012522
Transfer85562392019-09-15 20:32:012378 days ago1568579521IN
0xB4C3fd39...c309403d1
0.13078726 ETH0.000021051
Sweep85114082019-09-08 20:31:102385 days ago1567974670IN
0xB4C3fd39...c309403d1
0 ETH0.0011012522
Transfer85113942019-09-08 20:27:252385 days ago1567974445IN
0xB4C3fd39...c309403d1
0.16194145 ETH0.000021051
Sweep84664532019-09-01 20:27:172392 days ago1567369637IN
0xB4C3fd39...c309403d1
0 ETH0.0011012522
Transfer84664362019-09-01 20:22:392392 days ago1567369359IN
0xB4C3fd39...c309403d1
0.16260789 ETH0.000021051
Sweep84215042019-08-25 20:23:042399 days ago1566764584IN
0xB4C3fd39...c309403d1
0 ETH0.0011012522
Transfer84214892019-08-25 20:21:042399 days ago1566764464IN
0xB4C3fd39...c309403d1
0.16544273 ETH0.000021051
Sweep83765432019-08-18 20:24:422406 days ago1566159882IN
0xB4C3fd39...c309403d1
0 ETH0.0010998422
Transfer83765172019-08-18 20:19:142406 days ago1566159554IN
0xB4C3fd39...c309403d1
0.15480383 ETH0.000021051
Sweep83313652019-08-11 20:19:142413 days ago1565554754IN
0xB4C3fd39...c309403d1
0 ETH0.0011012522
Transfer83313512019-08-11 20:15:592413 days ago1565554559IN
0xB4C3fd39...c309403d1
0.13082311 ETH0.000021051
Transfer82862562019-08-04 20:10:212420 days ago1564949421IN
0xB4C3fd39...c309403d1
0.01000343 ETH0.000021051
Transfer80024642019-06-21 16:17:172465 days ago1561133837IN
0xB4C3fd39...c309403d1
0.0285467 ETH0.000021051
Sweep79577902019-06-14 16:16:382472 days ago1560528998IN
0xB4C3fd39...c309403d1
0 ETH0.0025028550
View all transactions

Latest 15 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-87704102019-10-19 9:14:402345 days ago1571476480
0xB4C3fd39...c309403d1
0.10413413 ETH
-87352922019-10-13 20:42:432350 days ago1570999363
0xB4C3fd39...c309403d1
0.14244349 ETH
-86907352019-10-06 20:42:212357 days ago1570394541
0xB4C3fd39...c309403d1
0.14386404 ETH
-86458862019-09-29 20:43:592364 days ago1569789839
0xB4C3fd39...c309403d1
0.14595749 ETH
-86012072019-09-22 20:41:082371 days ago1569184868
0xB4C3fd39...c309403d1
0.14979181 ETH
-85562532019-09-15 20:34:392378 days ago1568579679
0xB4C3fd39...c309403d1
0.13078726 ETH
-85114082019-09-08 20:31:102385 days ago1567974670
0xB4C3fd39...c309403d1
0.16194145 ETH
-84664532019-09-01 20:27:172392 days ago1567369637
0xB4C3fd39...c309403d1
0.1626079 ETH
-84215042019-08-25 20:23:042399 days ago1566764584
0xB4C3fd39...c309403d1
0.16544273 ETH
-83765432019-08-18 20:24:422406 days ago1566159882
0xB4C3fd39...c309403d1
0.15480384 ETH
-83313652019-08-11 20:19:142413 days ago1565554754
0xB4C3fd39...c309403d1
0.16937326 ETH
-79577902019-06-14 16:16:382472 days ago1560528998
0xB4C3fd39...c309403d1
0.18454027 ETH
-79130082019-06-07 16:11:392479 days ago1559923899
0xB4C3fd39...c309403d1
0.18269485 ETH
-78682642019-05-31 16:05:092486 days ago1559318709
0xB4C3fd39...c309403d1
0.18100036 ETH
Transfer50648032018-02-10 12:07:082961 days ago1518264428  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.