ETH Price: $2,031.08 (+0.48%)

Contract

0xFF2Bb281a34005cb2f8Fea993434039a9E36bfaE
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep81414982019-07-13 8:02:232433 days ago1563004943IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0010420322
Sweep80906892019-07-05 10:08:442441 days ago1562321324IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0010374122
Sweep80905562019-07-05 9:34:282441 days ago1562319268IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0010434322
Sweep80872042019-07-04 21:20:422442 days ago1562275242IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0010420322
Sweep80354102019-06-26 19:19:202450 days ago1561576760IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0010434322
Sweep80319172019-06-26 6:00:362450 days ago1561528836IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0010420322
Sweep80167742019-06-23 21:38:282453 days ago1561325908IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0014228730
Sweep77648072019-05-15 12:03:462492 days ago1557921826IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0023682550
Sweep77531882019-05-13 16:56:362494 days ago1557766596IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0023714550
Sweep77503072019-05-13 5:54:302494 days ago1557726870IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0023714550
Sweep75425662019-04-10 20:46:102527 days ago1554929170IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0023682550
Sweep75424052019-04-10 20:12:382527 days ago1554927158IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0023682550
Sweep75364632019-04-09 22:05:162528 days ago1554847516IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0023682550
Sweep75310222019-04-09 1:46:252529 days ago1554774385IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0023714550
Sweep75298602019-04-08 21:23:122529 days ago1554758592IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0023682550
Sweep75053422019-04-05 2:06:552533 days ago1554430015IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0023682550
Sweep66111232018-10-30 11:14:412689 days ago1540898081IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0024996550
Transfer*66111012018-10-30 11:08:142689 days ago1540897694IN
0xFF2Bb281...a9E36bfaE
4.5 ETH0.0005068524
Sweep66105092018-10-30 8:57:552689 days ago1540889875IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0031374550
Sweep66103362018-10-30 8:21:202689 days ago1540887680IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0031406550
Sweep66096542018-10-30 5:32:172689 days ago1540877537IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0031374550
Sweep66095072018-10-30 4:59:142689 days ago1540875554IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0031374550
Sweep65933002018-10-27 13:17:582692 days ago1540646278IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0031406550
Sweep65930022018-10-27 12:03:382692 days ago1540641818IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0031406550
Sweep65921862018-10-27 8:47:472692 days ago1540630067IN
0xFF2Bb281...a9E36bfaE
0 ETH0.0031374550
View all transactions

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer66111232018-10-30 11:14:412689 days ago1540898081
0xFF2Bb281...a9E36bfaE
4.5 ETH
Transfer48827302018-01-10 1:18:422983 days ago1515547122
0xFF2Bb281...a9E36bfaE
1.24121211 ETH
Transfer48791622018-01-09 9:21:512983 days ago1515489711
0xFF2Bb281...a9E36bfaE
0.82041416 ETH
Transfer48525472018-01-04 11:28:242988 days ago1515065304
0xFF2Bb281...a9E36bfaE
2.60268025 ETH
Transfer46277692017-11-26 21:14:293027 days ago1511730869
0xFF2Bb281...a9E36bfaE
1.00599519 ETH
Transfer46057402017-11-23 7:48:583030 days ago1511423338  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.