ETH Price: $2,059.59 (-4.14%)

Contract

0xFF124DC0F6F8Ca2FBec80d0d69bfB2E977dFfF7c
 

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
Sweep All102873932020-06-18 3:49:152108 days ago1592452155IN
0xFF124DC0...977dFfF7c
0 ETH0.0011501824.23423423
Transfer101245432020-05-23 21:27:222133 days ago1590269242IN
0xFF124DC0...977dFfF7c
1.28590279 ETH0.0008936742.47483648
Sweep All100149352020-05-06 20:52:162150 days ago1588798336IN
0xFF124DC0...977dFfF7c
0 ETH0.000195684.12312313
Transfer99479332020-04-26 11:44:592160 days ago1587901499IN
0xFF124DC0...977dFfF7c
1.4038847 ETH0.0008936742.47483648
Transfer97551142020-03-27 18:37:342190 days ago1585334254IN
0xFF124DC0...977dFfF7c
0.1831067 ETH0.0008936742.47483648
Transfer96112552020-03-05 12:42:482212 days ago1583412168IN
0xFF124DC0...977dFfF7c
0.00226997 ETH0.000063123
Sweep All94833622020-02-14 20:34:012232 days ago1581712441IN
0xFF124DC0...977dFfF7c
0 ETH0.000063711.34242423
Transfer94697442020-02-12 18:18:522234 days ago1581531532IN
0xFF124DC0...977dFfF7c
0.72448616 ETH0.000021041
Sweep All90694812019-12-08 2:35:082301 days ago1575772508IN
0xFF124DC0...977dFfF7c
0 ETH0.00005331.12312312
Transfer90694272019-12-08 2:19:002301 days ago1575771540IN
0xFF124DC0...977dFfF7c
1.02848252 ETH0.000021041
Transfer90504532019-12-04 17:20:412304 days ago1575480041IN
0xFF124DC0...977dFfF7c
1.02489358 ETH0.000021041
Sweep All90303942019-12-01 3:48:312308 days ago1575172111IN
0xFF124DC0...977dFfF7c
0 ETH0.000047131.12312323
Transfer90139142019-11-28 5:55:552310 days ago1574920555IN
0xFF124DC0...977dFfF7c
1.01343239 ETH0.000021041
Sweep All90060592019-11-26 20:23:122312 days ago1574799792IN
0xFF124DC0...977dFfF7c
0 ETH0.000050911.21323213
Transfer89758462019-11-21 18:20:492317 days ago1574360449IN
0xFF124DC0...977dFfF7c
1.01817177 ETH0.000021041
Sweep All89647862019-11-19 22:03:292319 days ago1574201009IN
0xFF124DC0...977dFfF7c
0 ETH0.000047131.12312312
Transfer89624862019-11-19 12:46:002319 days ago1574167560IN
0xFF124DC0...977dFfF7c
1.01217605 ETH0.000021041
Sweep All89539562019-11-18 2:25:122321 days ago1574043912IN
0xFF124DC0...977dFfF7c
0 ETH0.000047131.12312323
Transfer89461842019-11-16 19:23:352322 days ago1573932215IN
0xFF124DC0...977dFfF7c
1.01613849 ETH0.000021041
Sweep All89342382019-11-14 19:41:152324 days ago1573760475IN
0xFF124DC0...977dFfF7c
0 ETH0.00004621.1010101
Transfer89244052019-11-13 4:24:532325 days ago1573619093IN
0xFF124DC0...977dFfF7c
1.01251653 ETH0.000021041
Transfer88943802019-11-08 5:21:472330 days ago1573190507IN
0xFF124DC0...977dFfF7c
1.05812659 ETH0.000021041
Sweep All88824232019-11-06 6:56:292332 days ago1573023389IN
0xFF124DC0...977dFfF7c
0 ETH0.00008912.12312323
Transfer88710532019-11-04 11:23:532334 days ago1572866633IN
0xFF124DC0...977dFfF7c
1.01051807 ETH0.000021041
Transfer88459372019-10-31 10:21:412338 days ago1572517301IN
0xFF124DC0...977dFfF7c
1.01273989 ETH0.000021041
View all transactions

Latest 13 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-102873932020-06-18 3:49:152108 days ago1592452155
0xFF124DC0...977dFfF7c
1.28590279 ETH
-100149352020-05-06 20:52:162150 days ago1588798336
0xFF124DC0...977dFfF7c
1.58926137 ETH
-94833622020-02-14 20:34:012232 days ago1581712441
0xFF124DC0...977dFfF7c
0.72448616 ETH
-90694812019-12-08 2:35:082301 days ago1575772508
0xFF124DC0...977dFfF7c
2.0533761 ETH
-90303942019-12-01 3:48:312308 days ago1575172111
0xFF124DC0...977dFfF7c
1.01343239 ETH
-90060592019-11-26 20:23:122312 days ago1574799792
0xFF124DC0...977dFfF7c
1.01817177 ETH
-89647862019-11-19 22:03:292319 days ago1574201009
0xFF124DC0...977dFfF7c
1.01217605 ETH
-89539562019-11-18 2:25:122321 days ago1574043912
0xFF124DC0...977dFfF7c
1.01613849 ETH
-89342382019-11-14 19:41:152324 days ago1573760475
0xFF124DC0...977dFfF7c
2.07064312 ETH
-88824232019-11-06 6:56:292332 days ago1573023389
0xFF124DC0...977dFfF7c
3.03973438 ETH
-88170772019-10-26 19:03:342343 days ago1572116614
0xFF124DC0...977dFfF7c
3.42753495 ETH
-86640942019-10-02 17:07:172367 days ago1570036037
0xFF124DC0...977dFfF7c
2.02328659 ETH
-69596042018-12-27 2:18:272647 days ago1545877107  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 0xF2f313A4...Fd1BF0dA9
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.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-02-27
*/

pragma solidity ^0.4.24;

contract AbstractSweeper {
    function sweepAll(address token) public returns (bool);

    function() public { revert(); }

    Controller controller;

    constructor(address _controller) public {
        controller = Controller(_controller);
    }

    modifier canSweep() {
        if(msg.sender != controller.authorizedCaller() && msg.sender != controller.owner()){ revert(); }
        if(controller.halted()){ revert(); }
        _;
    }
}

contract Token {
    function balanceOf(address a) public pure returns (uint) {
        (a);
        return 0;
    }

    function transfer(address a, uint val) public pure returns (bool) {
        (a);
        (val);
        return false;
    }
}

contract DefaultSweeper is AbstractSweeper {
    constructor(address controller) AbstractSweeper(controller) public { }

    function sweepAll(address _token) public canSweep returns (bool) {
        bool success = false;
        address destination = controller.destination();

        if(_token != address(0)){
            Token token = Token(_token);
            success = token.transfer(destination, token.balanceOf(this));
        }else{
            success = destination.send(address(this).balance);
        }
        return success;
    }
}

contract UserWallet {
    AbstractSweeperList sweeperList;
    constructor(address _sweeperlist) public {
        sweeperList = AbstractSweeperList(_sweeperlist);
    }

    function() public payable { }

    function tokenFallback(address _from, uint _value, bytes _data) public pure {
        (_from);
        (_value);
        (_data);
    }

    function sweepAll(address _token) public returns (bool) {
        return sweeperList.sweeperOf(_token).delegatecall(msg.data);
    }
}

contract AbstractSweeperList {
    function sweeperOf(address _token) public returns (address);
}

contract Controller is AbstractSweeperList {
    address public owner;
    address public authorizedCaller;

    address public destination;

    bool public halted;

    event NewWalletCreated(address receiver);

    modifier onlyOwner() {
        if(msg.sender != owner){ revert(); }
        _;
    }

    modifier onlyAuthorizedCaller() {
        if(msg.sender != authorizedCaller){ revert(); }
        _;
    }

    modifier onlyAdmins() {
        if(msg.sender != authorizedCaller && msg.sender != owner){ revert(); } 
        _;
    }

    constructor() public {
        owner = msg.sender;
        destination = msg.sender;
        authorizedCaller = msg.sender;
    }

    function setAuthorizedCaller(address _newCaller) public onlyOwner {
        authorizedCaller = _newCaller;
    }

    function setDestination(address _dest) public onlyOwner {
        destination = _dest;
    }

    function setOwner(address _owner) public onlyOwner {
        owner = _owner;
    }

    function newWallet() public onlyAdmins returns (address wallet)  {
        wallet = address(new UserWallet(this));
        emit NewWalletCreated(wallet);
    }

    function halt() public onlyAdmins {
        halted = true;
    }

    function start() public onlyOwner {
        halted = false;
    }

    address public defaultSweeper = address(new DefaultSweeper(this));
    mapping (address => address) sweepers;

    function addSweeper(address _token, address _sweeper) public onlyOwner {
        sweepers[_token] = _sweeper;
    }

    function sweeperOf(address _token) public returns (address) {
        address sweeper = sweepers[_token];
        if(sweeper == 0){ sweeper = defaultSweeper; }
        return sweeper;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"}],"name":"sweepAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_sweeperlist","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]

0x608060405234801561001057600080fd5b5060405160208061026e833981016040525160008054600160a060020a03909216600160a060020a031990921691909117905561021c806100526000396000f30060806040526004361061004b5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c0ee0b8a811461004d578063c18cfe86146100c3575b005b34801561005957600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261004b94823573ffffffffffffffffffffffffffffffffffffffff169460248035953695946064949201919081908401838280828437509497506101059650505050505050565b3480156100cf57600080fd5b506100f173ffffffffffffffffffffffffffffffffffffffff6004351661010a565b604080519115158252519081900360200190f35b505050565b60008054604080517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291519190921691633c18d31891602480830192602092919082900301818787803b15801561017f57600080fd5b505af1158015610193573d6000803e3d6000fd5b505050506040513d60208110156101a957600080fd5b505160405173ffffffffffffffffffffffffffffffffffffffff90911690600090369080838380828437820191505092505050600060405180830381855af49493505050505600a165627a7a72305820ec90d4e55fb69f839fa555767145d6ac7a8f1aa98ed098b09c220c4a34f02ba100290000000000000000000000007142eb34d2220152dedc5868745079bc6ffa0fdd

Deployed Bytecode

0x60806040526004361061004b5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663c0ee0b8a811461004d578063c18cfe86146100c3575b005b34801561005957600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261004b94823573ffffffffffffffffffffffffffffffffffffffff169460248035953695946064949201919081908401838280828437509497506101059650505050505050565b3480156100cf57600080fd5b506100f173ffffffffffffffffffffffffffffffffffffffff6004351661010a565b604080519115158252519081900360200190f35b505050565b60008054604080517f3c18d31800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015291519190921691633c18d31891602480830192602092919082900301818787803b15801561017f57600080fd5b505af1158015610193573d6000803e3d6000fd5b505050506040513d60208110156101a957600080fd5b505160405173ffffffffffffffffffffffffffffffffffffffff90911690600090369080838380828437820191505092505050600060405180830381855af49493505050505600a165627a7a72305820ec90d4e55fb69f839fa555767145d6ac7a8f1aa98ed098b09c220c4a34f02ba10029

Deployed Bytecode Sourcemap

1322:501:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;1539:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1539:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1539:139:0;;-1:-1:-1;1539:139:0;;-1:-1:-1;;;;;;;1539:139:0;1686:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1686:134:0;;;;;;;;;;;;;;;;;;;;;;;;;1539:139;;;;:::o;1686:134::-;1736:4;1760:11;;:29;;;;;;:11;:29;;;;;;;;;:11;;;;;:21;;:29;;;;;;;;;;;;;;1736:4;1760:11;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;1760:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1760:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1760:29:0;:52;;:42;;;;;1803:8;;;;1760:52;1803:8;;;;1760:52;;;;;;;;;;;;;;;;;;;;;;1686:134;-1:-1:-1;;;;1686:134:0:o

Swarm Source

bzzr://ec90d4e55fb69f839fa555767145d6ac7a8f1aa98ed098b09c220c4a34f02ba1

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.