ETH Price: $2,710.49 (+2.68%)

Contract

0x98Cd89d9A33a44F747204F311284c0839A65C6e7
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sweep All181292062023-09-13 18:36:47516 days ago1694630207IN
0x98Cd89d9...39A65C6e7
0 ETH0.0014127322.123123
Sweep All113741302020-12-02 16:18:261531 days ago1606925906IN
0x98Cd89d9...39A65C6e7
0 ETH0.000907619.123123
Transfer106060682020-08-06 11:49:311650 days ago1596714571IN
0x98Cd89d9...39A65C6e7
0.05000089 ETH0.000021041
Transfer105794512020-08-02 9:01:351654 days ago1596358895IN
0x98Cd89d9...39A65C6e7
0.0502047 ETH0.000021041
Transfer105690132020-07-31 18:32:431655 days ago1596220363IN
0x98Cd89d9...39A65C6e7
0.05010068 ETH0.000021041
Transfer105623082020-07-30 17:45:161656 days ago1596131116IN
0x98Cd89d9...39A65C6e7
0.05018034 ETH0.000021041
Transfer105550092020-07-29 14:19:041657 days ago1596032344IN
0x98Cd89d9...39A65C6e7
0.05025379 ETH0.000021041
Transfer105532392020-07-29 7:56:081658 days ago1596009368IN
0x98Cd89d9...39A65C6e7
0.05057176 ETH0.000021041
Transfer105440102020-07-27 21:45:581659 days ago1595886358IN
0x98Cd89d9...39A65C6e7
0.05001957 ETH0.000021041
Transfer105282022020-07-25 11:02:151662 days ago1595674935IN
0x98Cd89d9...39A65C6e7
0.05001122 ETH0.000021041
Transfer105187812020-07-23 23:49:421663 days ago1595548182IN
0x98Cd89d9...39A65C6e7
0.05005778 ETH0.000021041
Transfer104985152020-07-20 20:28:171666 days ago1595276897IN
0x98Cd89d9...39A65C6e7
0.05021515 ETH0.000021041
Transfer104911022020-07-19 16:42:091667 days ago1595176929IN
0x98Cd89d9...39A65C6e7
0.0501112 ETH0.000021041
Transfer104840492020-07-18 14:42:381668 days ago1595083358IN
0x98Cd89d9...39A65C6e7
0.05025691 ETH0.000021041
Transfer104759492020-07-17 8:47:201670 days ago1594975640IN
0x98Cd89d9...39A65C6e7
0.05023277 ETH0.000021041
Transfer104652472020-07-15 16:50:031671 days ago1594831803IN
0x98Cd89d9...39A65C6e7
0.05010431 ETH0.000021041
Transfer104492212020-07-13 5:08:151674 days ago1594616895IN
0x98Cd89d9...39A65C6e7
0.05001611 ETH0.000021041
Sweep All104397732020-07-11 18:07:081675 days ago1594490828IN
0x98Cd89d9...39A65C6e7
0 ETH0.0010499922.12342342
Transfer104352632020-07-11 1:39:211676 days ago1594431561IN
0x98Cd89d9...39A65C6e7
0.05007003 ETH0.000021041
Transfer104228102020-07-09 3:06:401678 days ago1594264000IN
0x98Cd89d9...39A65C6e7
0.05004806 ETH0.000021041
Transfer104158142020-07-08 1:17:501679 days ago1594171070IN
0x98Cd89d9...39A65C6e7
0.05008666 ETH0.000021041
Transfer103739042020-07-01 13:56:101685 days ago1593611770IN
0x98Cd89d9...39A65C6e7
0.04415058 ETH0.000021041
Transfer103288282020-06-24 13:52:201692 days ago1593006740IN
0x98Cd89d9...39A65C6e7
0.05003704 ETH0.000021041
Transfer103213552020-06-23 10:06:381694 days ago1592906798IN
0x98Cd89d9...39A65C6e7
0.05004355 ETH0.000021041
Transfer103021962020-06-20 10:47:541697 days ago1592650074IN
0x98Cd89d9...39A65C6e7
0.01004759 ETH0.000021041
View all transactions

Latest 7 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
113741302020-12-02 16:18:261531 days ago1606925906
0x98Cd89d9...39A65C6e7
0.75233725 ETH
104397732020-07-11 18:07:081675 days ago1594490828
0x98Cd89d9...39A65C6e7
1.02259306 ETH
99268642020-04-23 5:22:351755 days ago1587619355
0x98Cd89d9...39A65C6e7
1.2478844 ETH
97422902020-03-25 19:17:491783 days ago1585163869
0x98Cd89d9...39A65C6e7
1.00655068 ETH
89647862019-11-19 22:03:291910 days ago1574201009
0x98Cd89d9...39A65C6e7
1.000666 ETH
84795042019-09-03 21:00:021987 days ago1567544402
0x98Cd89d9...39A65C6e7
0.82022523 ETH
65833132018-10-25 21:59:292300 days ago1540504769  Contract Creation0 ETH
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
/**
 *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

[{"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"}]

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 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.