ETH Price: $2,664.16 (+4.35%)

Contract

0x39a70ee9C6D476af0104c0f373E89E6949D4D5a1
 

Overview

ETH Balance

0.010053185889974559 ETH

Eth Value

$26.78 (@ $2,664.16/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer56473682018-05-20 17:32:232458 days ago1526837543IN
0x39a70ee9...949D4D5a1
0.01005317 ETH0.000021051
Sweep55668922018-05-06 15:20:332472 days ago1525620033IN
0x39a70ee9...949D4D5a1
0 ETH0.0025028550
Transfer55668442018-05-06 15:07:492472 days ago1525619269IN
0x39a70ee9...949D4D5a1
0.08695877 ETH0.000021051
Transfer55269622018-04-29 14:59:172479 days ago1525013957IN
0x39a70ee9...949D4D5a1
0.01004329 ETH0.000021051
Sweep54778702018-04-21 3:49:462487 days ago1524282586IN
0x39a70ee9...949D4D5a1
0 ETH0.0025028550
Transfer54778532018-04-21 3:46:082487 days ago1524282368IN
0x39a70ee9...949D4D5a1
0.08454889 ETH0.000021051
Sweep54369112018-04-14 3:46:362494 days ago1523677596IN
0x39a70ee9...949D4D5a1
0 ETH0.0025028550
Transfer54368862018-04-14 3:39:422494 days ago1523677182IN
0x39a70ee9...949D4D5a1
0.10015549 ETH0.000021051
Sweep54068282018-04-09 2:59:252499 days ago1523242765IN
0x39a70ee9...949D4D5a1
0 ETH0.0025028550
Transfer54067912018-04-09 2:49:172499 days ago1523242157IN
0x39a70ee9...949D4D5a1
0.10002613 ETH0.000021051
Sweep53809802018-04-04 20:10:242504 days ago1522872624IN
0x39a70ee9...949D4D5a1
0 ETH0.0025028550
Transfer53809372018-04-04 20:01:422504 days ago1522872102IN
0x39a70ee9...949D4D5a1
0.10011681 ETH0.000021051
Sweep53651122018-04-02 5:00:472506 days ago1522645247IN
0x39a70ee9...949D4D5a1
0 ETH0.0025028550
Transfer53650832018-04-02 4:52:352506 days ago1522644755IN
0x39a70ee9...949D4D5a1
0.10011111 ETH0.000021051
Sweep53450442018-03-29 20:53:142510 days ago1522356794IN
0x39a70ee9...949D4D5a1
0 ETH0.0025028550
Transfer53450172018-03-29 20:47:442510 days ago1522356464IN
0x39a70ee9...949D4D5a1
0.10001966 ETH0.000021051
Sweep53275402018-03-26 21:56:252512 days ago1522101385IN
0x39a70ee9...949D4D5a1
0 ETH0.0025028550
Transfer53275122018-03-26 21:48:072513 days ago1522100887IN
0x39a70ee9...949D4D5a1
0.10003311 ETH0.000021051
Sweep53094122018-03-23 21:26:112516 days ago1521840371IN
0x39a70ee9...949D4D5a1
0 ETH0.0025028550
Transfer53093832018-03-23 21:17:582516 days ago1521839878IN
0x39a70ee9...949D4D5a1
0.10022437 ETH0.000021051
Sweep52937722018-03-21 6:45:202518 days ago1521614720IN
0x39a70ee9...949D4D5a1
0 ETH0.0025028550
Transfer52937342018-03-21 6:36:482518 days ago1521614208IN
0x39a70ee9...949D4D5a1
0.10025411 ETH0.000021051
Sweep52736382018-03-17 21:41:102522 days ago1521322870IN
0x39a70ee9...949D4D5a1
0 ETH0.0025028550
Transfer52735882018-03-17 21:30:332522 days ago1521322233IN
0x39a70ee9...949D4D5a1
0.1000618 ETH0.000021051
Sweep52545092018-03-14 15:29:572525 days ago1521041397IN
0x39a70ee9...949D4D5a1
0 ETH0.0025028550
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
55668922018-05-06 15:20:332472 days ago1525620033
0x39a70ee9...949D4D5a1
0.09700207 ETH
54778702018-04-21 3:49:462487 days ago1524282586
0x39a70ee9...949D4D5a1
0.0845489 ETH
54369112018-04-14 3:46:362494 days ago1523677596
0x39a70ee9...949D4D5a1
0.10015549 ETH
54068282018-04-09 2:59:252499 days ago1523242765
0x39a70ee9...949D4D5a1
0.10002614 ETH
53809802018-04-04 20:10:242504 days ago1522872624
0x39a70ee9...949D4D5a1
0.10011682 ETH
53651122018-04-02 5:00:472506 days ago1522645247
0x39a70ee9...949D4D5a1
0.10011111 ETH
53450442018-03-29 20:53:142510 days ago1522356794
0x39a70ee9...949D4D5a1
0.10001967 ETH
53275402018-03-26 21:56:252512 days ago1522101385
0x39a70ee9...949D4D5a1
0.10003311 ETH
53094122018-03-23 21:26:112516 days ago1521840371
0x39a70ee9...949D4D5a1
0.10022438 ETH
52937722018-03-21 6:45:202518 days ago1521614720
0x39a70ee9...949D4D5a1
0.10025411 ETH
52736382018-03-17 21:41:102522 days ago1521322870
0x39a70ee9...949D4D5a1
0.10006181 ETH
52545092018-03-14 15:29:572525 days ago1521041397
0x39a70ee9...949D4D5a1
0.10015668 ETH
52361182018-03-11 12:29:382528 days ago1520771378
0x39a70ee9...949D4D5a1
0.1000716 ETH
52195562018-03-08 16:48:302531 days ago1520527710
0x39a70ee9...949D4D5a1
0.10003137 ETH
52052552018-03-06 6:40:142533 days ago1520318414
0x39a70ee9...949D4D5a1
0.10008733 ETH
51916732018-03-03 23:15:322535 days ago1520118932
0x39a70ee9...949D4D5a1
0.10013665 ETH
51763962018-03-01 9:11:352538 days ago1519895495
0x39a70ee9...949D4D5a1
0.10014063 ETH
51640362018-02-27 7:03:142540 days ago1519714994
0x39a70ee9...949D4D5a1
0.10022897 ETH
51508152018-02-25 0:27:502542 days ago1519518470
0x39a70ee9...949D4D5a1
0.10001101 ETH
51385272018-02-22 22:19:242544 days ago1519337964
0x39a70ee9...949D4D5a1
0.10000312 ETH
51267002018-02-20 21:58:492546 days ago1519163929
0x39a70ee9...949D4D5a1
0.10022504 ETH
51149912018-02-18 21:58:192548 days ago1518991099
0x39a70ee9...949D4D5a1
0.10001237 ETH
51030072018-02-16 22:06:262550 days ago1518818786
0x39a70ee9...949D4D5a1
0.10005459 ETH
50914092018-02-14 23:27:252552 days ago1518650845
0x39a70ee9...949D4D5a1
0.10007007 ETH
50796482018-02-12 23:39:262554 days ago1518478766
0x39a70ee9...949D4D5a1
0.10021858 ETH
View All Internal Transactions
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.