ETH Price: $2,136.40 (+1.01%)

Contract

0x8a0Fa955d97A9cc2E52fA6bf8030FbC50087D6f6
 

Overview

ETH Balance

0.000000003434235008 ETH

Eth Value

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

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep95404642020-02-23 15:40:182217 days ago1582472418IN
0x8a0Fa955...50087D6f6
0 ETH0.0012536722
Sweep95404592020-02-23 15:38:302217 days ago1582472310IN
0x8a0Fa955...50087D6f6
0 ETH0.0012536722
Transfer95404382020-02-23 15:33:312217 days ago1582472011IN
0x8a0Fa955...50087D6f6
3.67180763 ETH0.000189459
Sweep94221892020-02-05 10:51:512235 days ago1580899911IN
0x8a0Fa955...50087D6f6
0 ETH0.0012536722
Transfer94221672020-02-05 10:48:422235 days ago1580899722IN
0x8a0Fa955...50087D6f6
14.98375018 ETH0.000189459
Sweep91882532019-12-30 23:52:262271 days ago1577749946IN
0x8a0Fa955...50087D6f6
0 ETH0.0012536722
Transfer91882352019-12-30 23:46:392271 days ago1577749599IN
0x8a0Fa955...50087D6f6
8.50918993 ETH0.000063153
Sweep90404022019-12-02 22:25:252299 days ago1575325525IN
0x8a0Fa955...50087D6f6
0 ETH0.0011012522
Transfer90403842019-12-02 22:21:052299 days ago1575325265IN
0x8a0Fa955...50087D6f6
5.58451229 ETH0.00016848
Sweep60977762018-08-06 9:01:252783 days ago1533546085IN
0x8a0Fa955...50087D6f6
0 ETH0.0050057100
Transfer60977462018-08-06 8:56:232783 days ago1533545783IN
0x8a0Fa955...50087D6f6
4.79454267 ETH0.000054732.6
Transfer55549362018-05-04 13:06:152877 days ago1525439175IN
0x8a0Fa955...50087D6f6
0.19993762 ETH0.0001688
Transfer55528862018-05-04 4:11:462877 days ago1525407106IN
0x8a0Fa955...50087D6f6
0.5 ETH0.0000633
Transfer55509672018-05-03 20:16:262877 days ago1525378586IN
0x8a0Fa955...50087D6f6
1.0014909 ETH0.0000844
Transfer55505882018-05-03 18:40:022877 days ago1525372802IN
0x8a0Fa955...50087D6f6
1.0015749 ETH0.0000633
Transfer55505612018-05-03 18:32:232877 days ago1525372343IN
0x8a0Fa955...50087D6f6
1.0016379 ETH0.0000633
Transfer55505532018-05-03 18:30:052877 days ago1525372205IN
0x8a0Fa955...50087D6f6
1.0017009 ETH0.0000633
Sweep43283662017-10-01 19:19:053091 days ago1506885545IN
0x8a0Fa955...50087D6f6
0 ETH0.0015497831
Transfer43283542017-10-01 19:15:193091 days ago1506885319IN
0x8a0Fa955...50087D6f6
1 ETH0.0004420721
Sweep43240332017-09-30 7:05:543093 days ago1506755154IN
0x8a0Fa955...50087D6f6
0 ETH0.0017010434.02566371
Transfer43240172017-09-30 7:00:183093 days ago1506754818IN
0x8a0Fa955...50087D6f6
1 ETH0.0005968928.35471976
Sweep43170452017-09-27 19:58:063095 days ago1506542286IN
0x8a0Fa955...50087D6f6
0 ETH0.0025496451
Transfer43170352017-09-27 19:55:013095 days ago1506542101IN
0x8a0Fa955...50087D6f6
1 ETH0.0004420721
Sweep43101372017-09-25 10:33:233098 days ago1506335603IN
0x8a0Fa955...50087D6f6
0 ETH0.0025496451
Transfer43101302017-09-25 10:30:143098 days ago1506335414IN
0x8a0Fa955...50087D6f6
0.1 ETH0.0004420721

Latest 12 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-95404642020-02-23 15:40:182217 days ago1582472418
0x8a0Fa955...50087D6f6
2.63179751 ETH
-95404602020-02-23 15:38:402217 days ago1582472320
0x8a0Fa955...50087D6f6
2.63179751 ETH
-95404592020-02-23 15:38:302217 days ago1582472310
0x8a0Fa955...50087D6f6
3.67180763 ETH
-94221892020-02-05 10:51:512235 days ago1580899911
0x8a0Fa955...50087D6f6
14.98375018 ETH
-91882532019-12-30 23:52:262271 days ago1577749946
0x8a0Fa955...50087D6f6
8.50918993 ETH
-90404022019-12-02 22:25:252299 days ago1575325525
0x8a0Fa955...50087D6f6
5.58451229 ETH
Transfer60977762018-08-06 9:01:252783 days ago1533546085
0x8a0Fa955...50087D6f6
4.79454267 ETH
Transfer43283662017-10-01 19:19:053091 days ago1506885545
0x8a0Fa955...50087D6f6
1 ETH
Transfer43240332017-09-30 7:05:543093 days ago1506755154
0x8a0Fa955...50087D6f6
1 ETH
Transfer43170452017-09-27 19:58:063095 days ago1506542286
0x8a0Fa955...50087D6f6
1 ETH
Transfer43101372017-09-25 10:33:233098 days ago1506335603
0x8a0Fa955...50087D6f6
0.1 ETH
Transfer43038852017-09-23 6:37:233100 days ago1506148643  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.