ETH Price: $2,627.65 (+1.64%)
Gas: 1 Gwei

Contract

0xE27F50fe703E78F37782529A4AAA9420C79d6fE2
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Change Owner62817162018-09-06 10:19:052165 days ago1536229145IN
0xE27F50fe...0C79d6fE2
0 ETH0.000215347.5
0x6060604047674102017-12-20 20:41:122425 days ago1513802472IN
 Contract Creation
0 ETH0.0225561533.8

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x9f2E3744...e0F91B8Ad
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
AutoWallet

Compiler Version
v0.4.15+commit.bbb8e64f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-07-14
*/

pragma solidity ^0.4.15;

contract owned {
    function owned() public { owner = msg.sender; }
    address public owner;

    // This contract only defines a modifier but does not use
    // it - it will be used in derived contracts.
    // The function body is inserted where the special symbol
    // "_;" in the definition of a modifier appears.
    // This means that if the owner calls this function, the
    // function is executed and otherwise, an exception is
    // thrown.
    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }
}

contract ERC20 {
    function balanceOf(address _owner) public constant returns (uint balance);
    function transfer(address _to, uint _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint _value) public returns (bool success);
    function approve(address _spender, uint _value) public returns (bool success);
    function allowance(address _owner, address _spender) public constant returns (uint remaining);
    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
}

/// @title Interface for contracts conforming to ERC-721: Non-Fungible Tokens
/// @author Dieter Shirley <[email protected]> (https://github.com/dete)
contract ERC721 {
    // Required methods
    function totalSupply() public returns (uint256 total);
    function balanceOf(address _owner) public returns (uint256 balance);
    function ownerOf(uint256 _tokenId) external returns (address owner);
    function approve(address _to, uint256 _tokenId) external;
    function transfer(address _to, uint256 _tokenId) external;
    function transferFrom(address _from, address _to, uint256 _tokenId) external;

    // Events
    event Transfer(address from, address to, uint256 tokenId);
    event Approval(address owner, address approved, uint256 tokenId);

    // Optional
    // function name() public view returns (string name);
    // function symbol() public view returns (string symbol);
    // function tokensOfOwner(address _owner) external view returns (uint256[] tokenIds);
    // function tokenMetadata(uint256 _tokenId, string _preferredTransport) public view returns (string infoUrl);

    // ERC-165 Compatibility (https://github.com/ethereum/EIPs/issues/165)
    function supportsInterface(bytes4 _interfaceID) external returns (bool);
}

contract AutoWallet is owned {
    function changeOwner(address _newOwner) external onlyOwner {
        owner = _newOwner;
    }
    
    function () external payable {
        // this is the fallback function; it is called whenever the contract receives ether
        // forward that ether onto the contract owner immediately
        owner.transfer(msg.value);
        // and emit the EtherReceived event in case anyone is watching it
        EtherReceived(msg.sender, msg.value);
    }
    
    function sweep() external returns (bool success) {
        // this can be called by anyone (who wants to pay for gas), but that's safe because it will only sweep
        // funds to the owner's account. it sweeps the entire ether balance
        require(this.balance > 0);
        return owner.send(this.balance);
    }
    
    function transferToken(address _tokenContractAddress, address _to, uint256 _amount) external onlyOwner returns (bool success) {
        // this can only be called by the owner. it sends some amount of an ERC-20 token to some address
        ERC20 token = ERC20(_tokenContractAddress);
        return token.transfer(_to, _amount);
    }
    
    function sweepToken(address _tokenContractAddress) external returns (bool success) {
        // like sweep(), this can be called by anyone. it sweeps the full balance of an ERC-20 token to the owner's account
        ERC20 token = ERC20(_tokenContractAddress);
        uint bal = token.balanceOf(this);
        require(bal > 0);
        return token.transfer(owner, bal);
    }
    
    function transferTokenFrom(address _tokenContractAddress, address _from, address _to, uint256 _amount) external onlyOwner returns (bool success) {
        ERC20 token = ERC20(_tokenContractAddress);
        return token.transferFrom(_from, _to, _amount);
    }
    
    function approveTokenTransfer(address _tokenContractAddress, address _spender, uint256 _amount) external onlyOwner returns (bool success) {
        ERC20 token = ERC20(_tokenContractAddress);
        return token.approve(_spender, _amount);
    }
    
    function transferNonFungibleToken(address _tokenContractAddress, address _to, uint256 _tokenId) external onlyOwner {
        // for cryptokitties etc
        ERC721 token = ERC721(_tokenContractAddress);
        token.transfer(_to, _tokenId);
    }
    
    function transferNonFungibleTokenFrom(address _tokenContractAddress, address _from, address _to, uint256 _tokenId) external onlyOwner {
        ERC721 token = ERC721(_tokenContractAddress);
        token.transferFrom(_from, _to, _tokenId);
    }
    
    function transferNonFungibleTokenMulti(address _tokenContractAddress, address _to, uint256[] _tokenIds) external onlyOwner {
        ERC721 token = ERC721(_tokenContractAddress);
        for (uint i = 0; i < _tokenIds.length; i++) {
            token.transfer(_to, _tokenIds[i]);
        }
    }
    
    event EtherReceived(address _sender, uint256 _value);
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_tokenContractAddress","type":"address"}],"name":"sweepToken","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"sweep","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenContractAddress","type":"address"},{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferNonFungibleTokenFrom","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenContractAddress","type":"address"},{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approveTokenTransfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenContractAddress","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferNonFungibleToken","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenContractAddress","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenIds","type":"uint256[]"}],"name":"transferNonFungibleTokenMulti","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenContractAddress","type":"address"},{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferTokenFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_tokenContractAddress","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferToken","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_sender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"EtherReceived","type":"event"}]

Deployed Bytecode

0x606060405236156100885763ffffffff60e060020a6000350416631be19560811461010457806335faa41614610137578063486b03c21461015e57806352a23bbb1461018e5780636bbe0bab146101ca57806382b5b8ab146101f45780638da5cb5b14610229578063a6f9dae114610258578063e599490514610279578063f5537ede146102bb575b5b600054600160a060020a03163480156108fc0290604051600060405180830381858888f1935050505015156100bd57600080fd5b7f1e57e3bb474320be3d2c77138f75b7c3941292d647f5f9634e33a8e94e0e069b3334604051600160a060020a03909216825260208201526040908101905180910390a15b005b341561010f57600080fd5b610123600160a060020a03600435166102f7565b604051901515815260200160405180910390f35b341561014257600080fd5b610123610404565b604051901515815260200160405180910390f35b341561016957600080fd5b610102600160a060020a0360043581169060243581169060443516606435610450565b005b341561019957600080fd5b610123600160a060020a03600435811690602435166044356104ec565b604051901515815260200160405180910390f35b34156101d557600080fd5b610102600160a060020a036004358116906024351660443561058f565b005b34156101ff57600080fd5b610102600160a060020a0360048035821691602480359091169160443591820191013561061d565b005b341561023457600080fd5b61023c6106d7565b604051600160a060020a03909116815260200160405180910390f35b341561026357600080fd5b610102600160a060020a03600435166106e6565b005b341561028457600080fd5b610123600160a060020a036004358116906024358116906044351660643561072e565b604051901515815260200160405180910390f35b34156102c657600080fd5b610123600160a060020a03600435811690602435166044356107df565b604051901515815260200160405180910390f35b60008181600160a060020a0382166370a0823130836040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561035157600080fd5b6102c65a03f1151561036257600080fd5b50505060405180519150506000811161037a57600080fd5b60008054600160a060020a038085169263a9059cbb929091169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156103e057600080fd5b6102c65a03f115156103f157600080fd5b50505060405180519350505b5050919050565b6000600160a060020a0330163181901161041d57600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19450505050505b90565b6000805433600160a060020a0390811691161461046c57600080fd5b5083600160a060020a0381166323b872dd85858560405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b15156104cf57600080fd5b6102c65a03f115156104e057600080fd5b5050505b5b5050505050565b60008054819033600160a060020a0390811691161461050a57600080fd5b5083600160a060020a03811663095ea7b3858560006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561056957600080fd5b6102c65a03f1151561057a57600080fd5b50505060405180519250505b5b509392505050565b6000805433600160a060020a039081169116146105ab57600080fd5b5082600160a060020a03811663a9059cbb848460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561060157600080fd5b6102c65a03f1151561061257600080fd5b5050505b5b50505050565b60008054819033600160a060020a0390811691161461063b57600080fd5b5084905060005b828110156106cd57600160a060020a03821663a9059cbb8686868581811061066657fe5b9050602002013560405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156106b057600080fd5b6102c65a03f115156106c157600080fd5b5050505b600101610642565b5b5b505050505050565b600054600160a060020a031681565b60005433600160a060020a0390811691161461070157600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60008054819033600160a060020a0390811691161461074c57600080fd5b5084600160a060020a0381166323b872dd86868660006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156107b857600080fd5b6102c65a03f115156107c957600080fd5b50505060405180519250505b5b50949350505050565b60008054819033600160a060020a039081169116146107fd57600080fd5b5083600160a060020a03811663a9059cbb858560006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561056957600080fd5b6102c65a03f1151561057a57600080fd5b50505060405180519250505b5b5093925050505600a165627a7a72305820c52f8630959cad38ee2df0e96665886478135e1ac06e855cdebb7004c9aa7bae0029

Swarm Source

bzzr://c52f8630959cad38ee2df0e96665886478135e1ac06e855cdebb7004c9aa7bae

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  ]

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.