ETH Price: $2,706.29 (-2.07%)

Contract

0xF1A6352FC816E7490051239d25BD854473D38793
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep68412992018-12-07 7:13:422270 days ago1544166822IN
0xF1A6352F...473D38793
0 ETH0.0025028550
Transfer68412812018-12-07 7:10:562270 days ago1544166656IN
0xF1A6352F...473D38793
8.48668831 ETH0.0002315611
Sweep68370892018-12-06 14:25:182271 days ago1544106318IN
0xF1A6352F...473D38793
0 ETH0.0024996550
Transfer68370732018-12-06 14:21:372271 days ago1544106097IN
0xF1A6352F...473D38793
11.5 ETH0.0002105110
Sweep68293872018-12-05 7:58:252272 days ago1543996705IN
0xF1A6352F...473D38793
0 ETH0.0025028550
Transfer68293672018-12-05 7:53:212272 days ago1543996401IN
0xF1A6352F...473D38793
6.31817022 ETH0.0002105110
Sweep68292322018-12-05 7:19:142272 days ago1543994354IN
0xF1A6352F...473D38793
0 ETH0.0024996550
Transfer68292102018-12-05 7:14:042272 days ago1543994044IN
0xF1A6352F...473D38793
4.3 ETH0.0002105110
Sweep68234962018-12-04 8:23:452273 days ago1543911825IN
0xF1A6352F...473D38793
0 ETH0.0025028550
Transfer68234912018-12-04 8:22:122273 days ago1543911732IN
0xF1A6352F...473D38793
6.11729094 ETH0.0002105110
Sweep68234822018-12-04 8:19:012273 days ago1543911541IN
0xF1A6352F...473D38793
0 ETH0.0024996550
Transfer68234642018-12-04 8:14:012273 days ago1543911241IN
0xF1A6352F...473D38793
1 ETH0.0002105110
Sweep63167322018-09-12 7:13:392356 days ago1536736419IN
0xF1A6352F...473D38793
0 ETH0.0024996550
Transfer63167152018-09-12 7:08:582356 days ago1536736138IN
0xF1A6352F...473D38793
5 ETH0.000189459
Sweep63105952018-09-11 6:33:332357 days ago1536647613IN
0xF1A6352F...473D38793
0 ETH0.0025028550
Transfer63105752018-09-11 6:29:092357 days ago1536647349IN
0xF1A6352F...473D38793
2.95936174 ETH0.00012636
Sweep62867592018-09-07 6:29:432361 days ago1536301783IN
0xF1A6352F...473D38793
0 ETH0.0025028550
Transfer62867402018-09-07 6:24:552361 days ago1536301495IN
0xF1A6352F...473D38793
1.99431709 ETH0.000105255
Sweep58562622018-06-26 7:30:552434 days ago1529998255IN
0xF1A6352F...473D38793
0 ETH0.0025028550
Transfer58562302018-06-26 7:24:222434 days ago1529997862IN
0xF1A6352F...473D38793
3.57299831 ETH0.00012636
Sweep57928062018-06-15 10:53:282445 days ago1529060008IN
0xF1A6352F...473D38793
0 ETH0.0025028550
Transfer57927782018-06-15 10:47:212445 days ago1529059641IN
0xF1A6352F...473D38793
2.99829728 ETH0.0003368116
Sweep57806472018-06-13 8:24:422447 days ago1528878282IN
0xF1A6352F...473D38793
0 ETH0.0025028550
Transfer57806222018-06-13 8:18:042447 days ago1528877884IN
0xF1A6352F...473D38793
1.31819258 ETH0.000147357
Sweep57756512018-06-12 11:21:182448 days ago1528802478IN
0xF1A6352F...473D38793
0 ETH0.0025028550
View all transactions

Latest 23 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
68412992018-12-07 7:13:422270 days ago1544166822
0xF1A6352F...473D38793
8.48668831 ETH
68370892018-12-06 14:25:182271 days ago1544106318
0xF1A6352F...473D38793
11.5 ETH
68293872018-12-05 7:58:252272 days ago1543996705
0xF1A6352F...473D38793
6.31817022 ETH
68292322018-12-05 7:19:142272 days ago1543994354
0xF1A6352F...473D38793
4.3 ETH
68234962018-12-04 8:23:452273 days ago1543911825
0xF1A6352F...473D38793
6.11729094 ETH
68234822018-12-04 8:19:012273 days ago1543911541
0xF1A6352F...473D38793
1 ETH
63167322018-09-12 7:13:392356 days ago1536736419
0xF1A6352F...473D38793
5 ETH
63105952018-09-11 6:33:332357 days ago1536647613
0xF1A6352F...473D38793
2.95936174 ETH
62867592018-09-07 6:29:432361 days ago1536301783
0xF1A6352F...473D38793
1.99431709 ETH
58562622018-06-26 7:30:552434 days ago1529998255
0xF1A6352F...473D38793
3.57299831 ETH
57928062018-06-15 10:53:282445 days ago1529060008
0xF1A6352F...473D38793
2.99829728 ETH
57806472018-06-13 8:24:422447 days ago1528878282
0xF1A6352F...473D38793
1.31819258 ETH
57756512018-06-12 11:21:182448 days ago1528802478
0xF1A6352F...473D38793
1.09735072 ETH
57746082018-06-12 7:01:502448 days ago1528786910
0xF1A6352F...473D38793
2.19644204 ETH
51411922018-02-23 9:21:242557 days ago1519377684
0xF1A6352F...473D38793
0.95630098 ETH
51309672018-02-21 15:37:022559 days ago1519227422
0xF1A6352F...473D38793
1.4097 ETH
50523432018-02-08 10:04:142572 days ago1518084254
0xF1A6352F...473D38793
0.74 ETH
50344922018-02-05 9:44:512575 days ago1517823891
0xF1A6352F...473D38793
1 ETH
49242752018-01-17 15:31:532594 days ago1516203113
0xF1A6352F...473D38793
1.5 ETH
45959952017-11-21 18:21:212651 days ago1511288481
0xF1A6352F...473D38793
3.37408038 ETH
45957322017-11-21 17:19:362651 days ago1511284776
0xF1A6352F...473D38793
0.1 ETH
42206342017-08-30 17:49:222734 days ago1504115362
0xF1A6352F...473D38793
0.218 ETH
42200062017-08-30 13:39:162734 days ago1504100356  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.