ETH Price: $2,071.05 (+4.29%)

Contract

0x3e9A3EAE83783a968B07D70480b9eb02cdEB43Db
 

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
Sweep75509512019-04-12 4:20:002544 days ago1555042800IN
0x3e9A3EAE...2cdEB43Db
0 ETH0.0024996550
Transfer75509302019-04-12 4:14:132544 days ago1555042453IN
0x3e9A3EAE...2cdEB43Db
3.04312 ETH0.00016848
Sweep75468352019-04-11 12:51:272545 days ago1554987087IN
0x3e9A3EAE...2cdEB43Db
0 ETH0.0025028550
Transfer75468222019-04-11 12:48:582545 days ago1554986938IN
0x3e9A3EAE...2cdEB43Db
2.437316 ETH0.0002105110
Sweep75432492019-04-10 23:15:292545 days ago1554938129IN
0x3e9A3EAE...2cdEB43Db
0 ETH0.0024996550
Transfer75432202019-04-10 23:10:332545 days ago1554937833IN
0x3e9A3EAE...2cdEB43Db
1.7 ETH0.000105255
Transfer75429752019-04-10 22:17:032545 days ago1554934623IN
0x3e9A3EAE...2cdEB43Db
1 ETH0.0001055
Sweep75380542019-04-10 4:00:592546 days ago1554868859IN
0x3e9A3EAE...2cdEB43Db
0 ETH0.0024996550
Transfer75380352019-04-10 3:56:132546 days ago1554868573IN
0x3e9A3EAE...2cdEB43Db
2.03 ETH0.00012636
Sweep75315412019-04-09 3:39:112547 days ago1554781151IN
0x3e9A3EAE...2cdEB43Db
0 ETH0.0024996550
Transfer75315192019-04-09 3:33:212547 days ago1554780801IN
0x3e9A3EAE...2cdEB43Db
2.7 ETH0.00016848
Sweep75160272019-04-06 17:58:232549 days ago1554573503IN
0x3e9A3EAE...2cdEB43Db
0 ETH0.0024996550
Transfer75160092019-04-06 17:52:532549 days ago1554573173IN
0x3e9A3EAE...2cdEB43Db
2 ETH0.000105255
Sweep75082632019-04-05 13:13:492550 days ago1554470029IN
0x3e9A3EAE...2cdEB43Db
0 ETH0.0024996550
Transfer75082492019-04-05 13:10:412551 days ago1554469841IN
0x3e9A3EAE...2cdEB43Db
3 ETH0.00012636
Sweep74505512019-03-27 12:18:542560 days ago1553689134IN
0x3e9A3EAE...2cdEB43Db
0 ETH0.0025028550
Transfer74505322019-03-27 12:14:312560 days ago1553688871IN
0x3e9A3EAE...2cdEB43Db
4.34028 ETH0.000189459
Sweep74393362019-03-25 18:10:032561 days ago1553537403IN
0x3e9A3EAE...2cdEB43Db
0 ETH0.0024996550
Transfer74393192019-03-25 18:07:022561 days ago1553537222IN
0x3e9A3EAE...2cdEB43Db
15 ETH0.000189459
Sweep73751962019-03-15 18:22:342571 days ago1552674154IN
0x3e9A3EAE...2cdEB43Db
0 ETH0.0025028550
Transfer73751812019-03-15 18:18:432571 days ago1552673923IN
0x3e9A3EAE...2cdEB43Db
0.733703 ETH0.00008424
Sweep73649302019-03-14 4:01:552573 days ago1552536115IN
0x3e9A3EAE...2cdEB43Db
0 ETH0.0024996550
Transfer73649152019-03-14 3:58:552573 days ago1552535935IN
0x3e9A3EAE...2cdEB43Db
1.8 ETH0.000105255
Sweep73583152019-03-13 3:29:532574 days ago1552447793IN
0x3e9A3EAE...2cdEB43Db
0 ETH0.0025028550
Transfer73583012019-03-13 3:27:252574 days ago1552447645IN
0x3e9A3EAE...2cdEB43Db
5.18089039 ETH0.0002105110
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-75509512019-04-12 4:20:002544 days ago1555042800
0x3e9A3EAE...2cdEB43Db
3.04312 ETH
-75468352019-04-11 12:51:272545 days ago1554987087
0x3e9A3EAE...2cdEB43Db
2.437316 ETH
-75432492019-04-10 23:15:292545 days ago1554938129
0x3e9A3EAE...2cdEB43Db
1.7 ETH
-75380542019-04-10 4:00:592546 days ago1554868859
0x3e9A3EAE...2cdEB43Db
2.03 ETH
-75315412019-04-09 3:39:112547 days ago1554781151
0x3e9A3EAE...2cdEB43Db
2.7 ETH
-75160272019-04-06 17:58:232549 days ago1554573503
0x3e9A3EAE...2cdEB43Db
2 ETH
-75082632019-04-05 13:13:492550 days ago1554470029
0x3e9A3EAE...2cdEB43Db
3 ETH
-74505512019-03-27 12:18:542560 days ago1553689134
0x3e9A3EAE...2cdEB43Db
4.34028 ETH
-74393362019-03-25 18:10:032561 days ago1553537403
0x3e9A3EAE...2cdEB43Db
15 ETH
-73751962019-03-15 18:22:342571 days ago1552674154
0x3e9A3EAE...2cdEB43Db
0.733703 ETH
-73649302019-03-14 4:01:552573 days ago1552536115
0x3e9A3EAE...2cdEB43Db
1.8 ETH
-73583152019-03-13 3:29:532574 days ago1552447793
0x3e9A3EAE...2cdEB43Db
5.18089039 ETH
-73521132019-03-12 4:18:002575 days ago1552364280
0x3e9A3EAE...2cdEB43Db
2.67974835 ETH
-73289332019-03-08 13:37:212578 days ago1552052241
0x3e9A3EAE...2cdEB43Db
5.05940742 ETH
-73253572019-03-08 0:15:272579 days ago1552004127
0x3e9A3EAE...2cdEB43Db
2.5850065 ETH
-72846702019-03-01 15:43:002585 days ago1551454980
0x3e9A3EAE...2cdEB43Db
2.71910761 ETH
-72591782019-02-23 22:35:532591 days ago1550961353
0x3e9A3EAE...2cdEB43Db
1.30648258 ETH
-72202522019-02-14 17:39:592600 days ago1550165999
0x3e9A3EAE...2cdEB43Db
3.24543836 ETH
-72121062019-02-12 18:56:332602 days ago1549997793
0x3e9A3EAE...2cdEB43Db
2.42706337 ETH
-71985912019-02-09 15:54:342605 days ago1549727674
0x3e9A3EAE...2cdEB43Db
1.24236705 ETH
-70816362019-01-17 13:05:012629 days ago1547730301
0x3e9A3EAE...2cdEB43Db
2.43158997 ETH
-70457302019-01-11 2:40:552635 days ago1547174455
0x3e9A3EAE...2cdEB43Db
4.3 ETH
-70438932019-01-10 18:55:122635 days ago1547146512
0x3e9A3EAE...2cdEB43Db
4.797312 ETH
-70427902019-01-10 14:09:072635 days ago1547129347
0x3e9A3EAE...2cdEB43Db
1.9007075 ETH
-70383242019-01-09 18:51:062636 days ago1547059866
0x3e9A3EAE...2cdEB43Db
1.4 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.