ETH Price: $2,100.94 (+1.75%)

Contract

0xec3cAb211BeD7D26E51c0b1ccCF0113b2702116A
 

Overview

ETH Balance

0.000000008302326219 ETH

Eth Value

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

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep108190612020-09-08 5:20:412030 days ago1599542441IN
0xec3cAb21...b2702116A
0 ETH0.0047183582.8
Transfer108190432020-09-08 5:16:122030 days ago1599542172IN
0xec3cAb21...b2702116A
0.08232337 ETH0.000021051
Sweep107733202020-09-01 5:16:172037 days ago1598937377IN
0xec3cAb21...b2702116A
0 ETH0.02228398391.05
Transfer107733042020-09-01 5:12:072037 days ago1598937127IN
0xec3cAb21...b2702116A
0.09143771 ETH0.000021051
Sweep107276042020-08-25 5:06:552044 days ago1598332015IN
0xec3cAb21...b2702116A
0 ETH0.00608029106.7
Transfer107275832020-08-25 5:03:372044 days ago1598331817IN
0xec3cAb21...b2702116A
0.03725224 ETH0.000021051
Transfer106819152020-08-18 4:51:482051 days ago1597726308IN
0xec3cAb21...b2702116A
0.11627597 ETH0.000021051
Transfer106365752020-08-11 4:50:162058 days ago1597121416IN
0xec3cAb21...b2702116A
0.01004642 ETH0.000021051
Sweep105599762020-07-30 8:40:292070 days ago1596098429IN
0xec3cAb21...b2702116A
0 ETH0.0042729775
Transfer105599552020-07-30 8:35:402070 days ago1596098140IN
0xec3cAb21...b2702116A
0.01136779 ETH0.000021051
Transfer105146702020-07-23 8:30:462077 days ago1595493046IN
0xec3cAb21...b2702116A
0.04973739 ETH0.000021051
Sweep104695022020-07-16 8:30:162084 days ago1594888216IN
0xec3cAb21...b2702116A
0 ETH0.0044875678.75
Transfer104694832020-07-16 8:24:522084 days ago1594887892IN
0xec3cAb21...b2702116A
0.07563684 ETH0.000021051
Sweep104242502020-07-09 8:27:502091 days ago1594283270IN
0xec3cAb21...b2702116A
0 ETH0.0031028354.45
Transfer104242242020-07-09 8:22:282091 days ago1594282948IN
0xec3cAb21...b2702116A
0.05753636 ETH0.000021051
Transfer103788872020-07-02 8:23:022098 days ago1593678182IN
0xec3cAb21...b2702116A
0.04432563 ETH0.000021051
Sweep103337922020-06-25 8:22:172105 days ago1593073337IN
0xec3cAb21...b2702116A
0 ETH0.0028201649.5
Transfer103337702020-06-25 8:17:082105 days ago1593073028IN
0xec3cAb21...b2702116A
0.05835211 ETH0.000021051
Sweep102887602020-06-18 8:56:162112 days ago1592470576IN
0xec3cAb21...b2702116A
0 ETH0.0012536722
Transfer102885692020-06-18 8:13:272112 days ago1592468007IN
0xec3cAb21...b2702116A
0.10789314 ETH0.000021051
Transfer102432352020-06-11 8:08:202119 days ago1591862900IN
0xec3cAb21...b2702116A
0.04225038 ETH0.000021051
Sweep101981392020-06-04 8:09:322126 days ago1591258172IN
0xec3cAb21...b2702116A
0 ETH0.0023078940.5
Transfer101981182020-06-04 8:05:352126 days ago1591257935IN
0xec3cAb21...b2702116A
0.07649228 ETH0.000021051
Sweep101530502020-05-28 8:06:192133 days ago1590653179IN
0xec3cAb21...b2702116A
0 ETH0.0028207549.5
Transfer101530322020-05-28 8:02:362133 days ago1590652956IN
0xec3cAb21...b2702116A
0.0773671 ETH0.000021051
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-108190612020-09-08 5:20:412030 days ago1599542441
0xec3cAb21...b2702116A
0.08232337 ETH
-107733202020-09-01 5:16:172037 days ago1598937377
0xec3cAb21...b2702116A
0.09143772 ETH
-107276042020-08-25 5:06:552044 days ago1598332015
0xec3cAb21...b2702116A
0.16357465 ETH
-105599762020-07-30 8:40:292070 days ago1596098429
0xec3cAb21...b2702116A
0.06110519 ETH
-104695022020-07-16 8:30:162084 days ago1594888216
0xec3cAb21...b2702116A
0.07563684 ETH
-104242502020-07-09 8:27:502091 days ago1594283270
0xec3cAb21...b2702116A
0.101862 ETH
-103337922020-06-25 8:22:172105 days ago1593073337
0xec3cAb21...b2702116A
0.05835212 ETH
-102887602020-06-18 8:56:162112 days ago1592470576
0xec3cAb21...b2702116A
0.15014352 ETH
-101981392020-06-04 8:09:322126 days ago1591258172
0xec3cAb21...b2702116A
0.07649229 ETH
-101530502020-05-28 8:06:192133 days ago1590653179
0xec3cAb21...b2702116A
0.07736711 ETH
-101080392020-05-21 8:05:102140 days ago1590048310
0xec3cAb21...b2702116A
0.11949089 ETH
-99236662020-04-22 17:45:482168 days ago1587577548
0xec3cAb21...b2702116A
0.06963992 ETH
-98784102020-04-15 17:41:102175 days ago1586972470
0xec3cAb21...b2702116A
0.07207527 ETH
-98329102020-04-08 17:37:012182 days ago1586367421
0xec3cAb21...b2702116A
0.07279794 ETH
-97873682020-04-01 17:29:062189 days ago1585762146
0xec3cAb21...b2702116A
0.0610486 ETH
-97418092020-03-25 17:26:052196 days ago1585157165
0xec3cAb21...b2702116A
0.07202721 ETH
-96968972020-03-18 17:21:422203 days ago1584552102
0xec3cAb21...b2702116A
0.12548605 ETH
-96060142020-03-04 17:19:192217 days ago1583342359
0xec3cAb21...b2702116A
0.07074958 ETH
-95604462020-02-26 17:16:372224 days ago1582737397
0xec3cAb21...b2702116A
0.07021948 ETH
-95149492020-02-19 17:15:462231 days ago1582132546
0xec3cAb21...b2702116A
0.071841 ETH
-94694522020-02-12 17:14:252238 days ago1581527665
0xec3cAb21...b2702116A
0.07460753 ETH
-94238862020-02-05 17:10:452245 days ago1580922645
0xec3cAb21...b2702116A
0.07539808 ETH
-93783212020-01-29 17:04:582252 days ago1580317498
0xec3cAb21...b2702116A
0.05583325 ETH
-93326022020-01-22 16:57:442259 days ago1579712264
0xec3cAb21...b2702116A
0.07439667 ETH
-92869432020-01-15 16:59:042266 days ago1579107544
0xec3cAb21...b2702116A
0.07739774 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.