ETH Price: $3,540.62 (-1.16%)
Gas: 23 Gwei

Contract

0xf549820146183299e4FEa3F0309b4B28602ED559
 

Overview

ETH Balance

0.019605639443436725 ETH

Eth Value

$69.42 (@ $3,540.62/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Sweep159347242022-11-09 20:03:23505 days ago1668024203IN
0xf5498201...8602ED559
0 ETH0.0057712777.6888919
Sweep159266462022-11-08 16:55:35506 days ago1667926535IN
0xf5498201...8602ED559
0 ETH0.0043271158.24860484
Sweep159255592022-11-08 13:17:35506 days ago1667913455IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep159214202022-11-07 23:26:11507 days ago1667863571IN
0xf5498201...8602ED559
0 ETH0.0022282530
Sweep159202262022-11-07 19:26:23507 days ago1667849183IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep158688652022-10-31 15:13:47514 days ago1667229227IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep158549032022-10-29 16:28:11516 days ago1667060891IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep158477582022-10-28 16:28:35517 days ago1666974515IN
0xf5498201...8602ED559
0 ETH0.0056052575.45404352
Sweep158475562022-10-28 15:47:59517 days ago1666972079IN
0xf5498201...8602ED559
0 ETH0.0022282530
Sweep157751092022-10-18 12:52:23527 days ago1666097543IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep157696912022-10-17 18:43:47528 days ago1666032227IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep157497332022-10-14 23:48:35531 days ago1665791315IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep157485982022-10-14 20:00:35531 days ago1665777635IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep157485362022-10-14 19:47:59531 days ago1665776879IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep157475462022-10-14 16:29:23531 days ago1665764963IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep157424752022-10-13 23:29:23532 days ago1665703763IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep157344802022-10-12 20:41:35533 days ago1665607295IN
0xf5498201...8602ED559
0 ETH0.0022282530
Sweep157338002022-10-12 18:24:47533 days ago1665599087IN
0xf5498201...8602ED559
0 ETH0.0030500741.0645812
Sweep157331122022-10-12 16:06:23533 days ago1665590783IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep157248882022-10-11 12:32:47534 days ago1665491567IN
0xf5498201...8602ED559
0 ETH0.0022282530
Sweep156846612022-10-05 21:42:59540 days ago1665006179IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep156835582022-10-05 18:01:47540 days ago1664992907IN
0xf5498201...8602ED559
0 ETH0.0022282530
Sweep156833662022-10-05 17:23:11540 days ago1664990591IN
0xf5498201...8602ED559
0 ETH0.0040606854.6621885
Sweep156763622022-10-04 17:48:59541 days ago1664905739IN
0xf5498201...8602ED559
0 ETH0.0022286130
Sweep156691052022-10-03 17:25:35542 days ago1664817935IN
0xf5498201...8602ED559
0 ETH0.0026701435.94942689
View all transactions

Latest 8 internal transactions

Advanced mode:
Parent Txn Hash Block From To Value
52999822018-03-22 7:49:412199 days ago1521704981
0xf5498201...8602ED559
0.05774671 ETH
50934662018-02-15 7:38:332234 days ago1518680313
0xf5498201...8602ED559
0.07395239 ETH
49224382018-01-17 7:37:482263 days ago1516174668
0xf5498201...8602ED559
0.09823218 ETH
47300012017-12-14 7:38:362297 days ago1513237116
0xf5498201...8602ED559
0.05379499 ETH
46304162017-11-27 7:30:272314 days ago1511767827
0xf5498201...8602ED559
0.05249413 ETH
45373972017-11-12 7:30:412329 days ago1510471841
0xf5498201...8602ED559
0.0976226 ETH
43881002017-10-19 7:25:312353 days ago1508397931
0xf5498201...8602ED559
0.06558332 ETH
43125362017-09-26 6:35:112376 days ago1506407711  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

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.