ETH Price: $3,434.30 (-1.49%)

Contract

0x6EE10C4C566166135C8DE574cE63F583AfC6d2b2
 

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Approve212886392024-11-28 20:39:3527 days ago1732826375IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0003158310.20189593
Approve212886382024-11-28 20:39:2327 days ago1732826363IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0002996810.34896836
Transfer208472462024-09-28 6:09:4788 days ago1727503787IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.000419948.14802129
Transfer206312262024-08-29 2:20:23119 days ago1724898023IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.00009521.69085286
Transfer204528522024-08-04 4:39:23144 days ago1722746363IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.000028881
Transfer203196232024-07-16 14:19:11162 days ago1721139551IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.000724614.06555968
Transfer201772282024-06-26 17:02:59182 days ago1719421379IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0006365512.35061308
Transfer161853292022-12-14 20:29:35742 days ago1671049775IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0007760715.06123178
Transfer155391132022-09-15 12:31:35832 days ago1663245095IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0005932811.51376526
Transfer155085082022-09-10 11:14:49837 days ago1662808489IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.000260078.2229973
Transfer152899452022-08-06 17:02:16872 days ago1659805336IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0017682534.31641361
Transfer151793462022-07-20 11:57:19889 days ago1658318239IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0007958315.44475105
Transfer148199002022-05-21 22:43:34949 days ago1653173014IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0008047815.61478156
Transfer144821742022-03-29 16:30:121002 days ago1648571412IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0031228960.60570522
Transfer144455752022-03-23 23:38:251008 days ago1648078705IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0018286253.09588291
Transfer143862072022-03-14 17:59:161017 days ago1647280756IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0027237552.87204178
Transfer143698662022-03-12 4:40:281020 days ago1647060028IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0009109917.67550885
Transfer141983602022-02-13 14:39:371046 days ago1644763177IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0018575664.31793782
Transfer141983602022-02-13 14:39:371046 days ago1644763177IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0017998962.32113491
Transfer141983602022-02-13 14:39:371046 days ago1644763177IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0017998962.32113491
Transfer141983602022-02-13 14:39:371046 days ago1644763177IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0017691951.38818848
Transfer141964132022-02-13 7:20:471046 days ago1644736847IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0011717634.03516417
Transfer141901692022-02-12 8:27:361047 days ago1644654456IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.00138940.34511061
Transfer141899482022-02-12 7:37:051047 days ago1644651425IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.0015196244.1390979
Transfer141899262022-02-12 7:31:231047 days ago1644651083IN
0x6EE10C4C...3AfC6d2b2
0 ETH0.001686948.9979452
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Ortp

Compiler Version
v0.5.2+commit.1df8f40c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-04-30
*/

// File: node_modules\openzeppelin-solidity\contracts\token\ERC20\IERC20.sol

pragma solidity ^0.5.2;

/**
 * @title ERC20 interface
 * @dev see https://eips.ethereum.org/EIPS/eip-20
 */
interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: node_modules\openzeppelin-solidity\contracts\math\SafeMath.sol

pragma solidity ^0.5.2;

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error
 */
library SafeMath {
    /**
     * @dev Multiplies two unsigned integers, reverts on overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
     * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Adds two unsigned integers, reverts on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
     * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
     * reverts when dividing by zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

// File: openzeppelin-solidity\contracts\token\ERC20\ERC20.sol

pragma solidity ^0.5.2;



/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * https://eips.ethereum.org/EIPS/eip-20
 * Originally based on code by FirstBlood:
 * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 *
 * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for
 * all accounts just by listening to said events. Note that this isn't required by the specification, and other
 * compliant implementations may not do it.
 */
contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowed;

    uint256 private _totalSupply;

    /**
     * @dev Total number of tokens in existence
     */
    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev Gets the balance of the specified address.
     * @param owner The address to query the balance of.
     * @return A uint256 representing the amount owned by the passed address.
     */
    function balanceOf(address owner) public view returns (uint256) {
        return _balances[owner];
    }

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param owner address The address which owns the funds.
     * @param spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowed[owner][spender];
    }

    /**
     * @dev Transfer token to a specified address
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
     * Beware that changing an allowance with this method brings the risk that someone may use both the old
     * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
     * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to be spent.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Transfer tokens from one address to another.
     * Note that while this function emits an Approval event, this is not required as per the specification,
     * and other compliant implementations may not emit the event.
     * @param from address The address which you want to send tokens from
     * @param to address The address which you want to transfer to
     * @param value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        _transfer(from, to, value);
        _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when _allowed[msg.sender][spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when _allowed[msg.sender][spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * Emits an Approval event.
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    /**
     * @dev Transfer token for a specified addresses
     * @param from The address to transfer from.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     */
    function _transfer(address from, address to, uint256 value) internal {
        require(to != address(0));

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }

    /**
     * @dev Internal function that mints an amount of the token and assigns it to
     * an account. This encapsulates the modification of balances such that the
     * proper events are emitted.
     * @param account The account that will receive the created tokens.
     * @param value The amount that will be created.
     */
    function _mint(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.add(value);
        _balances[account] = _balances[account].add(value);
        emit Transfer(address(0), account, value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account.
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burn(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    /**
     * @dev Approve an address to spend another addresses' tokens.
     * @param owner The address that owns the tokens.
     * @param spender The address that will spend the tokens.
     * @param value The number of tokens that can be spent.
     */
    function _approve(address owner, address spender, uint256 value) internal {
        require(spender != address(0));
        require(owner != address(0));

        _allowed[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    /**
     * @dev Internal function that burns an amount of the token of a given
     * account, deducting from the sender's allowance for said account. Uses the
     * internal burn function.
     * Emits an Approval event (reflecting the reduced allowance).
     * @param account The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function _burnFrom(address account, uint256 value) internal {
        _burn(account, value);
        _approve(account, msg.sender, _allowed[account][msg.sender].sub(value));
    }
}

// File: openzeppelin-solidity\contracts\token\ERC20\ERC20Detailed.sol

pragma solidity ^0.5.2;


/**
 * @title ERC20Detailed token
 * @dev The decimals are only for visualization purposes.
 * All the operations are done using the smallest and indivisible token unit,
 * just as on Ethereum all the operations are done in wei.
 */
contract ERC20Detailed is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory name, string memory symbol, uint8 decimals) public {
        _name = name;
        _symbol = symbol;
        _decimals = decimals;
    }

    /**
     * @return the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @return the symbol of the token.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @return the number of decimals of the token.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }
}

// File: openzeppelin-solidity\contracts\ownership\Ownable.sol

pragma solidity ^0.5.2;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @return the address of the owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Allows the current owner to relinquish control of the contract.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     * @notice Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: contracts\lib\lifecycle\Pausable.sol

pragma solidity ^0.5.2;


/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
    event Paused(address account);
    event Unpaused(address account);
    event PausableRenounced(address account);

    bool private _paused;
    bool private _pausable;

    constructor () internal {
        _paused = false;
        _pausable = true;
    }

    /**
     * @return True if the contract is paused, false otherwise.
     */
    function paused() public view returns (bool) {
        return _paused;
    }

    /**
     * @return True if the contract is pausable, false otherwise.
     */
    function pausable() public view returns (bool) {
        return _pausable;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!_paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(_paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is not pausable.
     */
    modifier whenNotPausable() {
        require(!_pausable);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is pausable.
     */
    modifier whenPausable() {
        require(_pausable);
        _;
    }

    /**
     * @dev Called by the owner to pause.
     */
    function pause() public onlyOwner whenPausable whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    /**
     * @dev Called by the owner to unpause.
     */
    function unpause() public onlyOwner whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }

    /**
     * @dev Called by the owner to unpause.
     */
    function renouncePausable() public onlyOwner whenPausable {
        _pausable = false;
        emit PausableRenounced(msg.sender);
    }
}

// File: contracts\lib\token\ERC20Pausable.sol

pragma solidity ^0.5.2;



/**
 * @title Pausable token
 * @dev ERC20 modified with pausable transfers.
 */
contract ERC20Pausable is ERC20, Pausable {
    function transfer(address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transferFrom(from, to, value);
    }

    function approve(address spender, uint256 value) public whenNotPaused returns (bool) {
        return super.approve(spender, value);
    }

    function increaseAllowance(address spender, uint addedValue) public whenNotPaused returns (bool) {
        return super.increaseAllowance(spender, addedValue);
    }

    function decreaseAllowance(address spender, uint subtractedValue) public whenNotPaused returns (bool) {
        return super.decreaseAllowance(spender, subtractedValue);
    }     
}

// File: contracts\lib\lifecycle\WalletPausable.sol

pragma solidity ^0.5.2;


/**
 * @title WalletPausable
 * @dev Base contract which allows children to implement an emergency stop mechanism for wallets.
 */
contract WalletPausable is Ownable {
    event WalletPaused(address account, address wallet);
    event WalletUnpaused(address account, address wallet);
    event WalletPausableRenounced(address account);

    mapping (address => bool) private _walletPaused;
    bool private _walletPausable;

    constructor () internal {
        _walletPausable = true;
    }     
 
    /**
     * @return True if the wallet is paused, false otherwise.
     */
    function walletPaused(address _wallet) public view returns (bool) {
        return _walletPaused[_wallet];
    }

    /**
     * @return True if the wallets are pausable, false otherwise.
     */
    function walletPausable() public view returns (bool) {
        return _walletPausable;
    }

    /**
     * @dev Modifier to make a function callable only when the wallet is not paused.
     */
    modifier whenWalletNotPaused(address _wallet) {
        require(!_walletPaused[_wallet]);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the wallet is paused.
     */
    modifier whenWalletPaused(address _wallet) {
        require(_walletPaused[_wallet]);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the wallets are not pausable.
     */
    modifier whenWalletNotPausable() {
        require(!_walletPausable);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the wallets are pausable.
     */
    modifier whenWalletPausable() {
        require(_walletPausable);
        _;
    }

    /**
     * @dev Called by owner to pause wallet.
     */
    function pauseWallet(address _wallet) public onlyOwner whenWalletPausable whenWalletNotPaused(_wallet) {
        _pauseWallet(_wallet);
    }

    /**
     * @dev Pauses the wallet.
     */
    function _pauseWallet(address _wallet) internal {
        _walletPaused[_wallet] = true;
        emit WalletPaused(msg.sender, _wallet);
    }

    /**
     * @dev Called by owner to unpause wallet.
     */
    function unpauseWallet(address _wallet) public onlyOwner whenWalletPaused(_wallet) {
        _unpauseWallet(_wallet);
    }

    /**
     * @dev Unpauses the wallet.
     */
    function _unpauseWallet(address _wallet) internal {
        _walletPaused[_wallet] = false;
        emit WalletUnpaused(msg.sender, _wallet);
    }

    /**
     * @dev Called by owner to renounce the pausability of wallets.
     */
    function renounceWalletPausable() public onlyOwner whenWalletPausable {
        _walletPausable = false;
        emit WalletPausableRenounced(msg.sender);
    }
}

// File: contracts\lib\token\ERC20WalletPausable.sol

pragma solidity ^0.5.2;



/**
 * @title Token with pausable wallets
 * @dev ERC20 modified with wallet pausable transfers.
 */
contract ERC20WalletPausable is ERC20, WalletPausable {
    function transfer(address to, uint256 value) public whenWalletNotPaused(msg.sender) returns (bool) {
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) public whenWalletNotPaused(from) returns (bool) {
        return super.transferFrom(from, to, value);
    }

    function approve(address spender, uint256 value) public whenWalletNotPaused(msg.sender) returns (bool) {
        return super.approve(spender, value);
    }

    function increaseAllowance(address spender, uint addedValue) public whenWalletNotPaused(msg.sender) returns (bool) {
        return super.increaseAllowance(spender, addedValue);
    }

    function decreaseAllowance(address spender, uint subtractedValue) public whenWalletNotPaused(msg.sender) returns (bool) {
        return super.decreaseAllowance(spender, subtractedValue);
    }     
}

// File: contracts\lib\lifecycle\TransferAndPause.sol

pragma solidity ^0.5.2;


/**
 * @title TransferAndPause
 * @dev Base contract which allows children to implement transfer and pause.
 */
contract TransferAndPause is Ownable {
    event TransferAndPauseRenounced(address account);

    bool private _transferAndPauseEnabled;

    constructor () internal {
        _transferAndPauseEnabled = true;
    }     
 
    /**
     * @return True if the transfer and pause mechanism is enabled, false otherwise.
     */
    function transferAndPauseEnabled() public view returns (bool) {
        return _transferAndPauseEnabled;
    }

    /**
     * @dev Modifier to make a function callable only when the transfer and pause mechanism is not enabled.
     */
    modifier whenTransferAndPauseNotEnabled() {
        require(!_transferAndPauseEnabled);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the transfer and pause mechanism is enabled.
     */
    modifier whenTransferAndPauseEnabled() {
        require(_transferAndPauseEnabled);
        _;
    }

    /**
     * @dev Called by owner to renounce the pausability of transfers.
     */
    function renounceTransferAndPause() public onlyOwner whenTransferAndPauseEnabled {
        _transferAndPauseEnabled = false;
        emit TransferAndPauseRenounced(msg.sender);
    }
}

// File: contracts\Ortp.sol

pragma solidity ^0.5.2;







contract Ortp is ERC20, ERC20Detailed, Ownable, ERC20Pausable, ERC20WalletPausable, TransferAndPause {
    uint8 public constant DECIMALS = 18;
    uint256 public constant INITIAL_SUPPLY = 40000000000 * (10 ** uint256(DECIMALS));

    constructor () public ERC20Detailed("Orientum Plus", "ORTP", DECIMALS) {
        _mint(msg.sender, INITIAL_SUPPLY);
    }

    function renounceOwnership() public onlyOwner {
        revert();
    } 

    function transferAndPause(address to, uint256 value) public whenNotPaused whenWalletNotPaused(msg.sender) whenTransferAndPauseEnabled returns (bool) {
        require(value > 0);
        require(transfer(to, value));
        _pauseWallet(to);
        return true;
    }

    function transferFromAndPause(address from, address to, uint256 value) public whenNotPaused whenWalletNotPaused(from) whenTransferAndPauseEnabled returns (bool) {
        require(value > 0);
        require(transferFrom(from, to, value));
        _pauseWallet(to);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_wallet","type":"address"}],"name":"walletPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renouncePausable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceTransferAndPause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DECIMALS","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pausable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_wallet","type":"address"}],"name":"unpauseWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferAndPause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFromAndPause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_wallet","type":"address"}],"name":"pauseWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transferAndPauseEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceWalletPausable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"walletPausable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"TransferAndPauseRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"wallet","type":"address"}],"name":"WalletPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"wallet","type":"address"}],"name":"WalletUnpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"WalletPausableRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"PausableRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040523480156200001157600080fd5b50604080518082018252600d81527f4f7269656e74756d20506c75730000000000000000000000000000000000000060208083019182528351808501909452600484527f4f525450000000000000000000000000000000000000000000000000000000009084015281519192916012916200009091600391906200024f565b508151620000a69060049060208501906200024f565b506005805460ff191660ff929092169190911761010060a860020a0319166101003381029190911791829055604051600160a060020a0391909204169250600091507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36005805460a860020a61ffff0219167601000000000000000000000000000000000000000000001790556007805461ff001960ff199091166001171661010017905562000170336b813f3978f89409844000000064010000000062000176810204565b620002f4565b600160a060020a03821615156200018c57600080fd5b600254620001a99082640100000000620011436200023582021704565b600255600160a060020a038216600090815260208190526040902054620001df9082640100000000620011436200023582021704565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000828201838110156200024857600080fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029257805160ff1916838001178555620002c2565b82800160010185558215620002c2579182015b82811115620002c2578251825591602001919060010190620002a5565b50620002d0929150620002d4565b5090565b620002f191905b80821115620002d05760008155600101620002db565b90565b61118180620003046000396000f3fe608060405234801561001057600080fd5b5060043610610202576000357c0100000000000000000000000000000000000000000000000000000000900480635c975abb1161012c578063a457c2d7116100bf578063dd62ed3e1161008e578063dd62ed3e14610536578063e11d6bea14610564578063f2fde38b1461056c578063fdbffc811461059257610202565b8063a457c2d7146104b0578063a9059cbb146104dc578063ad6a6ba314610508578063bb835bc01461052e57610202565b80638c49292d116100fb5780638c49292d146104465780638da5cb5b1461047c5780638f32d59b146104a057806395d89b41146104a857610202565b80635c975abb1461040857806370a0823114610410578063715018a6146104365780638456cb591461043e57610202565b80632e0f2625116101a4578063395093511161017357806339509351146103825780633bd00650146103ae5780633f4ba83a146103d45780635b271caa146103dc57610202565b80632e0f26251461034c5780632ff2e9dc1461036a578063313ce56714610372578063367758471461037a57610202565b806315ad8722116101e057806315ad8722146102ea57806318160ddd146102f45780631879ec5f1461030e57806323b872dd1461031657610202565b806306fdde0314610207578063095ea7b31461028457806315686293146102c4575b600080fd5b61020f61059a565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610249578181015183820152602001610231565b50505050905090810190601f1680156102765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b06004803603604081101561029a57600080fd5b50600160a060020a038135169060200135610630565b604080519115158252519081900360200190f35b6102b0600480360360208110156102da57600080fd5b5035600160a060020a0316610662565b6102f2610680565b005b6102fc610713565b60408051918252519081900360200190f35b6102f2610719565b6102b06004803603606081101561032c57600080fd5b50600160a060020a03813581169160208101359091169060400135610782565b6103546107be565b6040805160ff9092168252519081900360200190f35b6102fc6107c3565b6103546107d3565b6102b06107dc565b6102b06004803603604081101561039857600080fd5b50600160a060020a0381351690602001356107ff565b6102f2600480360360208110156103c457600080fd5b5035600160a060020a0316610829565b6102f2610872565b6102b0600480360360408110156103f257600080fd5b50600160a060020a0381351690602001356108f1565b6102b0610973565b6102fc6004803603602081101561042657600080fd5b5035600160a060020a0316610983565b6102f261099e565b6102f26109b1565b6102b06004803603606081101561045c57600080fd5b50600160a060020a03813581169160208101359091169060400135610a60565b610484610aef565b60408051600160a060020a039092168252519081900360200190f35b6102b0610b03565b61020f610b19565b6102b0600480360360408110156104c657600080fd5b50600160a060020a038135169060200135610b7a565b6102b0600480360360408110156104f257600080fd5b50600160a060020a038135169060200135610ba4565b6102f26004803603602081101561051e57600080fd5b5035600160a060020a0316610bce565b6102b0610c23565b6102fc6004803603604081101561054c57600080fd5b50600160a060020a0381358116916020013516610c31565b6102f2610c5c565b6102f26004803603602081101561058257600080fd5b5035600160a060020a0316610cbf565b6102b0610cde565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106265780601f106105fb57610100808354040283529160200191610626565b820191906000526020600020905b81548152906001019060200180831161060957829003601f168201915b5050505050905090565b3360008181526006602052604081205490919060ff161561065057600080fd5b61065a8484610ce7565b949350505050565b600160a060020a031660009081526006602052604090205460ff1690565b610688610b03565b151561069357600080fd5b600554760100000000000000000000000000000000000000000000900460ff1615156106be57600080fd5b6005805476ff00000000000000000000000000000000000000000000191690556040805133815290517f6411781bdd3e552259accf9cf4197fcb37e8dfc0ffd256e79d6fd4bf3ff5f8c39181900360200190a1565b60025490565b610721610b03565b151561072c57600080fd5b600754610100900460ff16151561074257600080fd5b6007805461ff00191690556040805133815290517f15f60cbf700f569cb7982ff70d37c6d716bec07744ee20eb443e40c5a21f09f69181900360200190a1565b600160a060020a038316600090815260066020526040812054849060ff16156107aa57600080fd5b6107b5858585610d12565b95945050505050565b601281565b6b813f3978f89409844000000081565b60055460ff1690565b600554760100000000000000000000000000000000000000000000900460ff1690565b3360008181526006602052604081205490919060ff161561081f57600080fd5b61065a8484610d37565b610831610b03565b151561083c57600080fd5b600160a060020a038116600090815260066020526040902054819060ff16151561086557600080fd5b61086e82610d5b565b5050565b61087a610b03565b151561088557600080fd5b60055460a860020a900460ff16151561089d57600080fd5b6005805475ff000000000000000000000000000000000000000000191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b60055460009060a860020a900460ff161561090b57600080fd5b3360008181526006602052604090205460ff161561092857600080fd5b600754610100900460ff16151561093e57600080fd5b6000831161094b57600080fd5b6109558484610ba4565b151561096057600080fd5b61096984610dba565b5060019392505050565b60055460a860020a900460ff1690565b600160a060020a031660009081526020819052604090205490565b6109a6610b03565b151561020257600080fd5b6109b9610b03565b15156109c457600080fd5b600554760100000000000000000000000000000000000000000000900460ff1615156109ef57600080fd5b60055460a860020a900460ff1615610a0657600080fd5b6005805475ff000000000000000000000000000000000000000000191660a860020a1790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b60055460009060a860020a900460ff1615610a7a57600080fd5b600160a060020a038416600090815260066020526040902054849060ff1615610aa257600080fd5b600754610100900460ff161515610ab857600080fd5b60008311610ac557600080fd5b610ad0858585610782565b1515610adb57600080fd5b610ae484610dba565b506001949350505050565b6005546101009004600160a060020a031690565b6005546101009004600160a060020a0316331490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106265780601f106105fb57610100808354040283529160200191610626565b3360008181526006602052604081205490919060ff1615610b9a57600080fd5b61065a8484610e1c565b3360008181526006602052604081205490919060ff1615610bc457600080fd5b61065a8484610e40565b610bd6610b03565b1515610be157600080fd5b60075460ff161515610bf257600080fd5b600160a060020a038116600090815260066020526040902054819060ff1615610c1a57600080fd5b61086e82610dba565b600754610100900460ff1690565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b610c64610b03565b1515610c6f57600080fd5b60075460ff161515610c8057600080fd5b6007805460ff191690556040805133815290517f84618193ddcc95d0f2b5cf967ae20680bedf37a249b93cd36787fe0656ba291d9181900360200190a1565b610cc7610b03565b1515610cd257600080fd5b610cdb81610e64565b50565b60075460ff1690565b60055460009060a860020a900460ff1615610d0157600080fd5b610d0b8383610eed565b9392505050565b60055460009060a860020a900460ff1615610d2c57600080fd5b61065a848484610f03565b60055460009060a860020a900460ff1615610d5157600080fd5b610d0b8383610f50565b600160a060020a038116600081815260066020908152604091829020805460ff1916905581513381529081019290925280517ff7abde712d1d6d8e5b6fedaef4b3c5589079052dacd8fadcb6f500cadc4a42fd9281900390910190a150565b600160a060020a038116600081815260066020908152604091829020805460ff1916600117905581513381529081019290925280517fbe2a12cdfac987ece3abea7e2d9a976110bbc577c8a41fcddac25a995f0898cc9281900390910190a150565b60055460009060a860020a900460ff1615610e3657600080fd5b610d0b8383610f8c565b60055460009060a860020a900460ff1615610e5a57600080fd5b610d0b8383610fc8565b600160a060020a0381161515610e7957600080fd5b600554604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b6000610efa338484610fd5565b50600192915050565b6000610f10848484611061565b600160a060020a038416600090815260016020908152604080832033808552925290912054610969918691610f4b908663ffffffff61112e16565b610fd5565b336000818152600160209081526040808320600160a060020a03871684529091528120549091610efa918590610f4b908663ffffffff61114316565b336000818152600160209081526040808320600160a060020a03871684529091528120549091610efa918590610f4b908663ffffffff61112e16565b6000610efa338484611061565b600160a060020a0382161515610fea57600080fd5b600160a060020a0383161515610fff57600080fd5b600160a060020a03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600160a060020a038216151561107657600080fd5b600160a060020a03831660009081526020819052604090205461109f908263ffffffff61112e16565b600160a060020a0380851660009081526020819052604080822093909355908416815220546110d4908263ffffffff61114316565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561113d57600080fd5b50900390565b600082820183811015610d0b57600080fdfea165627a7a7230582075654fb3ff64d4e0f65c59a1e338f9ba7fbde41e80f3169faeee15ce311fd7a40029

Deployed Bytecode

0x608060405234801561001057600080fd5b5060043610610202576000357c0100000000000000000000000000000000000000000000000000000000900480635c975abb1161012c578063a457c2d7116100bf578063dd62ed3e1161008e578063dd62ed3e14610536578063e11d6bea14610564578063f2fde38b1461056c578063fdbffc811461059257610202565b8063a457c2d7146104b0578063a9059cbb146104dc578063ad6a6ba314610508578063bb835bc01461052e57610202565b80638c49292d116100fb5780638c49292d146104465780638da5cb5b1461047c5780638f32d59b146104a057806395d89b41146104a857610202565b80635c975abb1461040857806370a0823114610410578063715018a6146104365780638456cb591461043e57610202565b80632e0f2625116101a4578063395093511161017357806339509351146103825780633bd00650146103ae5780633f4ba83a146103d45780635b271caa146103dc57610202565b80632e0f26251461034c5780632ff2e9dc1461036a578063313ce56714610372578063367758471461037a57610202565b806315ad8722116101e057806315ad8722146102ea57806318160ddd146102f45780631879ec5f1461030e57806323b872dd1461031657610202565b806306fdde0314610207578063095ea7b31461028457806315686293146102c4575b600080fd5b61020f61059a565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610249578181015183820152602001610231565b50505050905090810190601f1680156102765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102b06004803603604081101561029a57600080fd5b50600160a060020a038135169060200135610630565b604080519115158252519081900360200190f35b6102b0600480360360208110156102da57600080fd5b5035600160a060020a0316610662565b6102f2610680565b005b6102fc610713565b60408051918252519081900360200190f35b6102f2610719565b6102b06004803603606081101561032c57600080fd5b50600160a060020a03813581169160208101359091169060400135610782565b6103546107be565b6040805160ff9092168252519081900360200190f35b6102fc6107c3565b6103546107d3565b6102b06107dc565b6102b06004803603604081101561039857600080fd5b50600160a060020a0381351690602001356107ff565b6102f2600480360360208110156103c457600080fd5b5035600160a060020a0316610829565b6102f2610872565b6102b0600480360360408110156103f257600080fd5b50600160a060020a0381351690602001356108f1565b6102b0610973565b6102fc6004803603602081101561042657600080fd5b5035600160a060020a0316610983565b6102f261099e565b6102f26109b1565b6102b06004803603606081101561045c57600080fd5b50600160a060020a03813581169160208101359091169060400135610a60565b610484610aef565b60408051600160a060020a039092168252519081900360200190f35b6102b0610b03565b61020f610b19565b6102b0600480360360408110156104c657600080fd5b50600160a060020a038135169060200135610b7a565b6102b0600480360360408110156104f257600080fd5b50600160a060020a038135169060200135610ba4565b6102f26004803603602081101561051e57600080fd5b5035600160a060020a0316610bce565b6102b0610c23565b6102fc6004803603604081101561054c57600080fd5b50600160a060020a0381358116916020013516610c31565b6102f2610c5c565b6102f26004803603602081101561058257600080fd5b5035600160a060020a0316610cbf565b6102b0610cde565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106265780601f106105fb57610100808354040283529160200191610626565b820191906000526020600020905b81548152906001019060200180831161060957829003601f168201915b5050505050905090565b3360008181526006602052604081205490919060ff161561065057600080fd5b61065a8484610ce7565b949350505050565b600160a060020a031660009081526006602052604090205460ff1690565b610688610b03565b151561069357600080fd5b600554760100000000000000000000000000000000000000000000900460ff1615156106be57600080fd5b6005805476ff00000000000000000000000000000000000000000000191690556040805133815290517f6411781bdd3e552259accf9cf4197fcb37e8dfc0ffd256e79d6fd4bf3ff5f8c39181900360200190a1565b60025490565b610721610b03565b151561072c57600080fd5b600754610100900460ff16151561074257600080fd5b6007805461ff00191690556040805133815290517f15f60cbf700f569cb7982ff70d37c6d716bec07744ee20eb443e40c5a21f09f69181900360200190a1565b600160a060020a038316600090815260066020526040812054849060ff16156107aa57600080fd5b6107b5858585610d12565b95945050505050565b601281565b6b813f3978f89409844000000081565b60055460ff1690565b600554760100000000000000000000000000000000000000000000900460ff1690565b3360008181526006602052604081205490919060ff161561081f57600080fd5b61065a8484610d37565b610831610b03565b151561083c57600080fd5b600160a060020a038116600090815260066020526040902054819060ff16151561086557600080fd5b61086e82610d5b565b5050565b61087a610b03565b151561088557600080fd5b60055460a860020a900460ff16151561089d57600080fd5b6005805475ff000000000000000000000000000000000000000000191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b60055460009060a860020a900460ff161561090b57600080fd5b3360008181526006602052604090205460ff161561092857600080fd5b600754610100900460ff16151561093e57600080fd5b6000831161094b57600080fd5b6109558484610ba4565b151561096057600080fd5b61096984610dba565b5060019392505050565b60055460a860020a900460ff1690565b600160a060020a031660009081526020819052604090205490565b6109a6610b03565b151561020257600080fd5b6109b9610b03565b15156109c457600080fd5b600554760100000000000000000000000000000000000000000000900460ff1615156109ef57600080fd5b60055460a860020a900460ff1615610a0657600080fd5b6005805475ff000000000000000000000000000000000000000000191660a860020a1790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b60055460009060a860020a900460ff1615610a7a57600080fd5b600160a060020a038416600090815260066020526040902054849060ff1615610aa257600080fd5b600754610100900460ff161515610ab857600080fd5b60008311610ac557600080fd5b610ad0858585610782565b1515610adb57600080fd5b610ae484610dba565b506001949350505050565b6005546101009004600160a060020a031690565b6005546101009004600160a060020a0316331490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106265780601f106105fb57610100808354040283529160200191610626565b3360008181526006602052604081205490919060ff1615610b9a57600080fd5b61065a8484610e1c565b3360008181526006602052604081205490919060ff1615610bc457600080fd5b61065a8484610e40565b610bd6610b03565b1515610be157600080fd5b60075460ff161515610bf257600080fd5b600160a060020a038116600090815260066020526040902054819060ff1615610c1a57600080fd5b61086e82610dba565b600754610100900460ff1690565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b610c64610b03565b1515610c6f57600080fd5b60075460ff161515610c8057600080fd5b6007805460ff191690556040805133815290517f84618193ddcc95d0f2b5cf967ae20680bedf37a249b93cd36787fe0656ba291d9181900360200190a1565b610cc7610b03565b1515610cd257600080fd5b610cdb81610e64565b50565b60075460ff1690565b60055460009060a860020a900460ff1615610d0157600080fd5b610d0b8383610eed565b9392505050565b60055460009060a860020a900460ff1615610d2c57600080fd5b61065a848484610f03565b60055460009060a860020a900460ff1615610d5157600080fd5b610d0b8383610f50565b600160a060020a038116600081815260066020908152604091829020805460ff1916905581513381529081019290925280517ff7abde712d1d6d8e5b6fedaef4b3c5589079052dacd8fadcb6f500cadc4a42fd9281900390910190a150565b600160a060020a038116600081815260066020908152604091829020805460ff1916600117905581513381529081019290925280517fbe2a12cdfac987ece3abea7e2d9a976110bbc577c8a41fcddac25a995f0898cc9281900390910190a150565b60055460009060a860020a900460ff1615610e3657600080fd5b610d0b8383610f8c565b60055460009060a860020a900460ff1615610e5a57600080fd5b610d0b8383610fc8565b600160a060020a0381161515610e7957600080fd5b600554604051600160a060020a0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b6000610efa338484610fd5565b50600192915050565b6000610f10848484611061565b600160a060020a038416600090815260016020908152604080832033808552925290912054610969918691610f4b908663ffffffff61112e16565b610fd5565b336000818152600160209081526040808320600160a060020a03871684529091528120549091610efa918590610f4b908663ffffffff61114316565b336000818152600160209081526040808320600160a060020a03871684529091528120549091610efa918590610f4b908663ffffffff61112e16565b6000610efa338484611061565b600160a060020a0382161515610fea57600080fd5b600160a060020a0383161515610fff57600080fd5b600160a060020a03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b600160a060020a038216151561107657600080fd5b600160a060020a03831660009081526020819052604090205461109f908263ffffffff61112e16565b600160a060020a0380851660009081526020819052604080822093909355908416815220546110d4908263ffffffff61114316565b600160a060020a038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561113d57600080fd5b50900390565b600082820183811015610d0b57600080fdfea165627a7a7230582075654fb3ff64d4e0f65c59a1e338f9ba7fbde41e80f3169faeee15ce311fd7a40029

Swarm Source

bzzr://75654fb3ff64d4e0f65c59a1e338f9ba7fbde41e80f3169faeee15ce311fd7a4

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.