ETH Price: $2,630.80 (-1.59%)

Contract

0xD67069D5c76028C81CbcbA7C8fa0253d6Aad3601
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Reclaim Token79806562019-06-18 6:20:402063 days ago1560838840IN
0xD67069D5...d6Aad3601
0 ETH0.000154534
Reclaim Token79806562019-06-18 6:20:402063 days ago1560838840IN
0xD67069D5...d6Aad3601
0 ETH0.0001784
Reclaim Token79806482019-06-18 6:18:312063 days ago1560838711IN
0xD67069D5...d6Aad3601
0 ETH0.0001784
Reclaim Token79806462019-06-18 6:18:102063 days ago1560838690IN
0xD67069D5...d6Aad3601
0 ETH0.0001784
Reclaim Token79806412019-06-18 6:17:132063 days ago1560838633IN
0xD67069D5...d6Aad3601
0 ETH0.00022255
Vote Burn78436352019-05-27 19:49:322085 days ago1558986572IN
0xD67069D5...d6Aad3601
0 ETH0.000680044
Vote Burn78436272019-05-27 19:47:182085 days ago1558986438IN
0xD67069D5...d6Aad3601
0 ETH0.000537595
Vote Burn78436212019-05-27 19:46:182085 days ago1558986378IN
0xD67069D5...d6Aad3601
0 ETH0.000125565
Vote Burn78405552019-05-27 8:14:002085 days ago1558944840IN
0xD67069D5...d6Aad3601
0 ETH0.000200646
Vote Burn78405412019-05-27 8:11:472085 days ago1558944707IN
0xD67069D5...d6Aad3601
0 ETH0.00031725
Vote Burn78405252019-05-27 8:08:222085 days ago1558944502IN
0xD67069D5...d6Aad3601
0 ETH0.00031725
Vote Burn78405122019-05-27 8:06:112085 days ago1558944371IN
0xD67069D5...d6Aad3601
0 ETH0.00074034
Vote Burn78404752019-05-27 7:57:522085 days ago1558943872IN
0xD67069D5...d6Aad3601
0 ETH0.000775065
Vote Burn78404122019-05-27 7:42:382085 days ago1558942958IN
0xD67069D5...d6Aad3601
0 ETH0.000125565
Vote Burn78378042019-05-26 21:52:082086 days ago1558907528IN
0xD67069D5...d6Aad3601
0 ETH0.000465033
Vote Burn78377822019-05-26 21:45:082086 days ago1558907108IN
0xD67069D5...d6Aad3601
0 ETH0.000645223

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ZmineVoteBurn

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-05-07
*/

pragma solidity ^0.5.8;

/**
 * @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);
}

library IterableMap {
    
    struct IMap {
        mapping(address => uint256) mapToData;
        mapping(address => uint256) mapToIndex; // start with index 1
        address[] indexes;
    }
    
    function insert(IMap storage self, address _address, uint256 _value) internal returns (bool replaced) {
      
        require(_address != address(0));
        
        if(self.mapToIndex[_address] == 0){
            
            // add new
            self.indexes.push(_address);
            self.mapToIndex[_address] = self.indexes.length;
            self.mapToData[_address] = _value;
            return false;
        }
        
        // replace
        self.mapToData[_address] = _value;
        return true;
    }
    
    function remove(IMap storage self, address _address) internal returns (bool success) {
       
        require(_address != address(0));
        
        // not existing
        if(self.mapToIndex[_address] == 0){
            return false;   
        }
        
        uint256 deleteIndex = self.mapToIndex[_address];
        if(deleteIndex <= 0 || deleteIndex > self.indexes.length){
            return false;
        }
       
         // if index to be deleted is not the last index, swap position.
        if (deleteIndex < self.indexes.length) {
            // swap 
            self.indexes[deleteIndex-1] = self.indexes[self.indexes.length-1];
            self.mapToIndex[self.indexes[deleteIndex-1]] = deleteIndex;
        }
        self.indexes.length -= 1;
        delete self.mapToData[_address];
        delete self.mapToIndex[_address];
       
        return true;
    }
  
    function contains(IMap storage self, address _address) internal view returns (bool exists) {
        return self.mapToIndex[_address] > 0;
    }
      
    function size(IMap storage self) internal view returns (uint256) {
        return self.indexes.length;
    }
  
    function get(IMap storage self, address _address) internal view returns (uint256) {
        return self.mapToData[_address];
    }

    // start with index 0
    function getKey(IMap storage self, uint256 _index) internal view returns (address) {
        
        if(_index < self.indexes.length){
            return self.indexes[_index];
        }
        return address(0);
    }
}

/**
 * @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;
    }
}

/**
 * @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 public 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() public {
        owner = msg.sender;
    }
    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /**
     * @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 {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

contract ZmineVoteBurn is Ownable {
  
    // Use itmap for all functions on the struct
    using IterableMap for IterableMap.IMap;
    using SafeMath for uint256;
    
    // ERC20 basic token contract being held
    IERC20 public token;
  
    // map address => vote
    IterableMap.IMap voteRecordMap;
    // map address => token available for reclaim
    IterableMap.IMap reclaimTokenMap;
    
    // time to start vote period
    uint256 public timestampStartVote;
    // time to end vote period
    uint256 public timestampEndVote;
    // time to enable reclaim token process
    uint256 public timestampReleaseToken;
    
    // cumulative count for total vote
    uint256 _totalVote;
    
    constructor(IERC20 _token) public {

        token = _token;
        
        // (Mainnet) May 22, 2019 GMT (epoch time 1558483200)
        // (Kovan) from now
        timestampStartVote = 1558483200; 
        
        // (Mainnet) May 28, 2019 GMT (epoch time 1559001600)
        // (Kovan) period for 10 years
        timestampEndVote = 1559001600; 
        
        // (Mainnet) May 30, 2019 GMT (epoch time 1559174400)
        // (Kovan) from now
        timestampReleaseToken = 1559174400; 
    }
    
    /**
     * modifier
     */
     
    // during the votable period?
    modifier onlyVotable() {
        require(isVotable());
        _;
    }
    
    // during the reclaimable period?
    modifier onlyReclaimable() {
        require(isReclaimable());
        _;
    }
  
    /**
     * public methods
     */
     
    function isVotable() public view returns (bool){
        return (timestampStartVote <= block.timestamp && block.timestamp <= timestampEndVote);
    }
    
    function isReclaimable() public view returns (bool){
        return (block.timestamp >= timestampReleaseToken);
    }
    
    function countVoteUser() public view returns (uint256){
        return voteRecordMap.size();
    }
    
    function countVoteScore() public view returns (uint256){
        return _totalVote;
    }
    
    function getVoteByAddress(address _address) public view returns (uint256){
        return voteRecordMap.get(_address);
    }
    
    // vote by transfer token into this contract as collateral
    // This process require approval from sender, to allow contract transfer token on the sender behalf.
    function voteBurn(uint256 amount) public onlyVotable {

        require(token.balanceOf(msg.sender) >= amount);
        
        // transfer token on the sender behalf.
        token.transferFrom(msg.sender, address(this), amount);
        
        // calculate cumulative vote
        uint256 newAmount = voteRecordMap.get(msg.sender).add(amount);
        
        // save to map
        reclaimTokenMap.insert(msg.sender, newAmount);
        voteRecordMap.insert(msg.sender, newAmount);
        
        // cumulative count total vote
        _totalVote = _totalVote.add(amount);
    }
    
    // Take the token back to the sender after reclaimable period has come.
    function reclaimToken() public onlyReclaimable {
      
        uint256 amount = reclaimTokenMap.get(msg.sender);
        require(amount > 0);
        require(token.balanceOf(address(this)) >= amount);
          
        // transfer token back to sender
        token.transfer(msg.sender, amount);
        
        // remove from map
        reclaimTokenMap.remove(msg.sender);
    }
    
    /**
     * admin methods
     */
     
    function adminCountReclaimableUser() public view onlyOwner returns (uint256){
        return reclaimTokenMap.size();
    }
    
    function adminCheckReclaimableAddress(uint256 index) public view onlyOwner returns (address){
        
        require(index >= 0); 
        
        if(reclaimTokenMap.size() > index){
            return reclaimTokenMap.getKey(index);
        }else{
            return address(0);
        }
    }
    
    function adminCheckReclaimableToken(uint256 index) public view onlyOwner returns (uint256){
    
        require(index >= 0); 
    
        if(reclaimTokenMap.size() > index){
            return reclaimTokenMap.get(reclaimTokenMap.getKey(index));
        }else{
            return 0;
        }
    }
    
    function adminCheckVoteAddress(uint256 index) public view onlyOwner returns (address){
        
        require(index >= 0); 
        
        if(voteRecordMap.size() > index){
            return voteRecordMap.getKey(index);
        }else{
            return address(0);
        }
    }
    
    function adminCheckVoteToken(uint256 index) public view onlyOwner returns (uint256){
    
        require(index >= 0); 
    
        if(voteRecordMap.size() > index){
            return voteRecordMap.get(voteRecordMap.getKey(index));
        }else{
            return 0;
        }
    }
    
    // perform reclaim token by admin 
    function adminReclaimToken(address _address) public onlyOwner {
      
        uint256 amount = reclaimTokenMap.get(_address);
        require(amount > 0);
        require(token.balanceOf(address(this)) >= amount);
          
        token.transfer(_address, amount);
        
        // remove from map
        reclaimTokenMap.remove(_address);
    }
    
    // Prevent deposit tokens by accident to a contract with the transfer function? 
    // The transaction will succeed but this will not be recognized by the contract.
    // After reclaim process was ended, admin will able to transfer the remain tokens to himself. 
    // And return the remain tokens to senders by manual process.
    function adminSweepMistakeTransferToken() public onlyOwner {
        
        require(reclaimTokenMap.size() == 0);
        require(token.balanceOf(address(this)) > 0);
        token.transfer(owner, token.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"adminCheckVoteToken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timestampReleaseToken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"adminReclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"adminCheckVoteAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"adminSweepMistakeTransferToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isReclaimable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getVoteByAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timestampStartVote","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isVotable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"adminCheckReclaimableToken","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"voteBurn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminCountReclaimableUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"countVoteScore","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"uint256"}],"name":"adminCheckReclaimableAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"countVoteUser","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timestampEndVote","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reclaimToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405234801561001057600080fd5b50604051602080610e7e8339810180604052602081101561003057600080fd5b5051600080546001600160a01b03199081163317909155600180546001600160a01b0390931692909116919091179055635ce49100600855635cec7a00600955635cef1d00600a55610df7806100876000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c80639701d7c6116100ad578063d6f34c2511610071578063d6f34c2514610291578063dbc0241f14610299578063f2fde38b146102a1578063fc0c546a146102c7578063fff28137146102cf5761012b565b80639701d7c61461022a5780639c4bbb8a14610247578063bfe9edc314610264578063c0f7bdb41461026c578063d412e79a146102745761012b565b80637f731ba3116100f45780637f731ba3146101d057806380525548146101ec5780638229b84f146102125780638da5cb5b1461021a57806393c2a916146102225761012b565b80629ae52a1461013057806316ed0daa1461015f57806320c1a1e7146101675780633c4f37071461018f5780636363ecf1146101c8575b600080fd5b61014d6004803603602081101561014657600080fd5b50356102d7565b60408051918252519081900360200190f35b61014d610332565b61018d6004803603602081101561017d57600080fd5b50356001600160a01b0316610338565b005b6101ac600480360360208110156101a557600080fd5b5035610491565b604080516001600160a01b039092168252519081900360200190f35b61018d6104cb565b6101d8610679565b604080519115158252519081900360200190f35b61014d6004803603602081101561020257600080fd5b50356001600160a01b0316610683565b61014d61069c565b6101ac6106a2565b6101d86106b1565b61014d6004803603602081101561024057600080fd5b50356106cc565b61018d6004803603602081101561025d57600080fd5b5035610717565b61014d61089b565b61014d6108bd565b6101ac6004803603602081101561028a57600080fd5b50356108c3565b61014d6108fd565b61014d610909565b61018d600480360360208110156102b757600080fd5b50356001600160a01b031661090f565b6101ac610994565b61018d6109a3565b600080546001600160a01b031633146102ef57600080fd5b816102fa6002610aef565b11156103295761032261031460028463ffffffff610af616565b60029063ffffffff610b3916565b905061032d565b5060005b919050565b600a5481565b6000546001600160a01b0316331461034f57600080fd5b600061036260058363ffffffff610b3916565b90506000811161037157600080fd5b60015460408051600160e01b6370a08231028152306004820152905183926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156103be57600080fd5b505afa1580156103d2573d6000803e3d6000fd5b505050506040513d60208110156103e857600080fd5b505110156103f557600080fd5b60015460408051600160e01b63a9059cbb0281526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561044e57600080fd5b505af1158015610462573d6000803e3d6000fd5b505050506040513d602081101561047857600080fd5b5061048c905060058363ffffffff610b5516565b505050565b600080546001600160a01b031633146104a957600080fd5b816104b46002610aef565b11156103295761032260028363ffffffff610af616565b6000546001600160a01b031633146104e257600080fd5b6104ec6005610aef565b156104f657600080fd5b60015460408051600160e01b6370a0823102815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561054457600080fd5b505afa158015610558573d6000803e3d6000fd5b505050506040513d602081101561056e57600080fd5b50511161057a57600080fd5b60015460005460408051600160e01b6370a0823102815230600482015290516001600160a01b039384169363a9059cbb93169184916370a0823191602480820192602092909190829003018186803b1580156105d557600080fd5b505afa1580156105e9573d6000803e3d6000fd5b505050506040513d60208110156105ff57600080fd5b50516040805163ffffffff851660e01b81526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561064b57600080fd5b505af115801561065f573d6000803e3d6000fd5b505050506040513d602081101561067557600080fd5b5050565b600a544210155b90565b600061069660028363ffffffff610b3916565b92915050565b60085481565b6000546001600160a01b031681565b600042600854111580156106c757506009544211155b905090565b600080546001600160a01b031633146106e457600080fd5b816106ef6005610aef565b11156103295761032261070960058463ffffffff610af616565b60059063ffffffff610b3916565b61071f6106b1565b61072857600080fd5b60015460408051600160e01b6370a08231028152336004820152905183926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b505050506040513d602081101561079f57600080fd5b505110156107ac57600080fd5b60015460408051600160e01b6323b872dd0281523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b505050506040513d602081101561083357600080fd5b50600090506108598261084d60023363ffffffff610b3916565b9063ffffffff610cc516565b905061086d6005338363ffffffff610cde16565b506108806002338363ffffffff610cde16565b50600b54610894908363ffffffff610cc516565b600b555050565b600080546001600160a01b031633146108b357600080fd5b6106c76005610aef565b600b5490565b600080546001600160a01b031633146108db57600080fd5b816108e66005610aef565b11156103295761032260058363ffffffff610af616565b60006106c76002610aef565b60095481565b6000546001600160a01b0316331461092657600080fd5b6001600160a01b03811661093957600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b6109ab610679565b6109b457600080fd5b60006109c760053363ffffffff610b3916565b9050600081116109d657600080fd5b60015460408051600160e01b6370a08231028152306004820152905183926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d6020811015610a4d57600080fd5b50511015610a5a57600080fd5b60015460408051600160e01b63a9059cbb0281523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b158015610ab157600080fd5b505af1158015610ac5573d6000803e3d6000fd5b505050506040513d6020811015610adb57600080fd5b50610675905060053363ffffffff610b5516565b6002015490565b6002820154600090821015610b3057826002018281548110610b1457fe5b6000918252602090912001546001600160a01b03169050610696565b50600092915050565b6001600160a01b03166000908152602091909152604090205490565b60006001600160a01b038216610b6a57600080fd5b6001600160a01b0382166000908152600184016020526040902054610b9157506000610696565b6001600160a01b0382166000908152600184016020526040902054801580610bbc5750600284015481115b15610bcb576000915050610696565b6002840154811015610c84576002840180546000198101908110610beb57fe5b6000918252602090912001546002850180546001600160a01b03909216916000198401908110610c1757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080846001016000866002016001850381548110610c5e57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b6002840180546000190190610c999082610d8e565b5050506001600160a01b0316600090815260208281526040808320839055600193840190915281205590565b600082820183811015610cd757600080fd5b9392505050565b60006001600160a01b038316610cf357600080fd5b6001600160a01b0383166000908152600185016020526040902054610d6b5750600283018054600180820183556000838152602080822090930180546001600160a01b0319166001600160a01b0388169081179091559354938152908601825260408082209390935590859052908120829055610cd7565b506001600160a01b03919091166000908152602092909252604090912055600190565b81548183558181111561048c5760008381526020902061048c91810190830161068091905b80821115610dc75760008155600101610db3565b509056fea165627a7a7230582069347324d0288efd4bbc471565fedfd9ce4afba9b5f98e93e439f7c208c34b540029000000000000000000000000554ffc77f4251a9fb3c0e3590a6a205f8d4e067d

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012b5760003560e01c80639701d7c6116100ad578063d6f34c2511610071578063d6f34c2514610291578063dbc0241f14610299578063f2fde38b146102a1578063fc0c546a146102c7578063fff28137146102cf5761012b565b80639701d7c61461022a5780639c4bbb8a14610247578063bfe9edc314610264578063c0f7bdb41461026c578063d412e79a146102745761012b565b80637f731ba3116100f45780637f731ba3146101d057806380525548146101ec5780638229b84f146102125780638da5cb5b1461021a57806393c2a916146102225761012b565b80629ae52a1461013057806316ed0daa1461015f57806320c1a1e7146101675780633c4f37071461018f5780636363ecf1146101c8575b600080fd5b61014d6004803603602081101561014657600080fd5b50356102d7565b60408051918252519081900360200190f35b61014d610332565b61018d6004803603602081101561017d57600080fd5b50356001600160a01b0316610338565b005b6101ac600480360360208110156101a557600080fd5b5035610491565b604080516001600160a01b039092168252519081900360200190f35b61018d6104cb565b6101d8610679565b604080519115158252519081900360200190f35b61014d6004803603602081101561020257600080fd5b50356001600160a01b0316610683565b61014d61069c565b6101ac6106a2565b6101d86106b1565b61014d6004803603602081101561024057600080fd5b50356106cc565b61018d6004803603602081101561025d57600080fd5b5035610717565b61014d61089b565b61014d6108bd565b6101ac6004803603602081101561028a57600080fd5b50356108c3565b61014d6108fd565b61014d610909565b61018d600480360360208110156102b757600080fd5b50356001600160a01b031661090f565b6101ac610994565b61018d6109a3565b600080546001600160a01b031633146102ef57600080fd5b816102fa6002610aef565b11156103295761032261031460028463ffffffff610af616565b60029063ffffffff610b3916565b905061032d565b5060005b919050565b600a5481565b6000546001600160a01b0316331461034f57600080fd5b600061036260058363ffffffff610b3916565b90506000811161037157600080fd5b60015460408051600160e01b6370a08231028152306004820152905183926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156103be57600080fd5b505afa1580156103d2573d6000803e3d6000fd5b505050506040513d60208110156103e857600080fd5b505110156103f557600080fd5b60015460408051600160e01b63a9059cbb0281526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561044e57600080fd5b505af1158015610462573d6000803e3d6000fd5b505050506040513d602081101561047857600080fd5b5061048c905060058363ffffffff610b5516565b505050565b600080546001600160a01b031633146104a957600080fd5b816104b46002610aef565b11156103295761032260028363ffffffff610af616565b6000546001600160a01b031633146104e257600080fd5b6104ec6005610aef565b156104f657600080fd5b60015460408051600160e01b6370a0823102815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561054457600080fd5b505afa158015610558573d6000803e3d6000fd5b505050506040513d602081101561056e57600080fd5b50511161057a57600080fd5b60015460005460408051600160e01b6370a0823102815230600482015290516001600160a01b039384169363a9059cbb93169184916370a0823191602480820192602092909190829003018186803b1580156105d557600080fd5b505afa1580156105e9573d6000803e3d6000fd5b505050506040513d60208110156105ff57600080fd5b50516040805163ffffffff851660e01b81526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b15801561064b57600080fd5b505af115801561065f573d6000803e3d6000fd5b505050506040513d602081101561067557600080fd5b5050565b600a544210155b90565b600061069660028363ffffffff610b3916565b92915050565b60085481565b6000546001600160a01b031681565b600042600854111580156106c757506009544211155b905090565b600080546001600160a01b031633146106e457600080fd5b816106ef6005610aef565b11156103295761032261070960058463ffffffff610af616565b60059063ffffffff610b3916565b61071f6106b1565b61072857600080fd5b60015460408051600160e01b6370a08231028152336004820152905183926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b505050506040513d602081101561079f57600080fd5b505110156107ac57600080fd5b60015460408051600160e01b6323b872dd0281523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561080957600080fd5b505af115801561081d573d6000803e3d6000fd5b505050506040513d602081101561083357600080fd5b50600090506108598261084d60023363ffffffff610b3916565b9063ffffffff610cc516565b905061086d6005338363ffffffff610cde16565b506108806002338363ffffffff610cde16565b50600b54610894908363ffffffff610cc516565b600b555050565b600080546001600160a01b031633146108b357600080fd5b6106c76005610aef565b600b5490565b600080546001600160a01b031633146108db57600080fd5b816108e66005610aef565b11156103295761032260058363ffffffff610af616565b60006106c76002610aef565b60095481565b6000546001600160a01b0316331461092657600080fd5b6001600160a01b03811661093957600080fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031681565b6109ab610679565b6109b457600080fd5b60006109c760053363ffffffff610b3916565b9050600081116109d657600080fd5b60015460408051600160e01b6370a08231028152306004820152905183926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610a2357600080fd5b505afa158015610a37573d6000803e3d6000fd5b505050506040513d6020811015610a4d57600080fd5b50511015610a5a57600080fd5b60015460408051600160e01b63a9059cbb0281523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b158015610ab157600080fd5b505af1158015610ac5573d6000803e3d6000fd5b505050506040513d6020811015610adb57600080fd5b50610675905060053363ffffffff610b5516565b6002015490565b6002820154600090821015610b3057826002018281548110610b1457fe5b6000918252602090912001546001600160a01b03169050610696565b50600092915050565b6001600160a01b03166000908152602091909152604090205490565b60006001600160a01b038216610b6a57600080fd5b6001600160a01b0382166000908152600184016020526040902054610b9157506000610696565b6001600160a01b0382166000908152600184016020526040902054801580610bbc5750600284015481115b15610bcb576000915050610696565b6002840154811015610c84576002840180546000198101908110610beb57fe5b6000918252602090912001546002850180546001600160a01b03909216916000198401908110610c1757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080846001016000866002016001850381548110610c5e57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020555b6002840180546000190190610c999082610d8e565b5050506001600160a01b0316600090815260208281526040808320839055600193840190915281205590565b600082820183811015610cd757600080fd5b9392505050565b60006001600160a01b038316610cf357600080fd5b6001600160a01b0383166000908152600185016020526040902054610d6b5750600283018054600180820183556000838152602080822090930180546001600160a01b0319166001600160a01b0388169081179091559354938152908601825260408082209390935590859052908120829055610cd7565b506001600160a01b03919091166000908152602092909252604090912055600190565b81548183558181111561048c5760008381526020902061048c91810190830161068091905b80821115610dc75760008155600101610db3565b509056fea165627a7a7230582069347324d0288efd4bbc471565fedfd9ce4afba9b5f98e93e439f7c208c34b540029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000554ffc77f4251a9fb3c0e3590a6a205f8d4e067d

-----Decoded View---------------
Arg [0] : _token (address): 0x554FFc77F4251a9fB3c0E3590a6a205f8d4e067D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000554ffc77f4251a9fb3c0e3590a6a205f8d4e067d


Deployed Bytecode Sourcemap

6121:5942:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6121:5942:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10759:295;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10759:295:0;;:::i;:::-;;;;;;;;;;;;;;;;6726:36;;;:::i;11106:361::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11106:361:0;-1:-1:-1;;;;;11106:361:0;;:::i;:::-;;10452:295;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10452:295:0;;:::i;:::-;;;;-1:-1:-1;;;;;10452:295:0;;;;;;;;;;;;;;11818:242;;;:::i;7879:119::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;8225:126;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8225:126:0;-1:-1:-1;;;;;8225:126:0;;:::i;6571:33::-;;;:::i;5267:20::-;;;:::i;7716:151::-;;;:::i;10132:308::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10132:308:0;;:::i;8533:603::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8533:603:0;;:::i;9678:124::-;;;:::i;8122:91::-;;;:::i;9814:306::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9814:306:0;;:::i;8010:100::-;;;:::i;6643:31::-;;;:::i;5922:192::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5922:192:0;-1:-1:-1;;;;;5922:192:0;;:::i;6346:19::-;;;:::i;9225:394::-;;;:::i;10759:295::-;10834:7;5719:5;;-1:-1:-1;;;;;5719:5:0;5705:10;:19;5697:28;;;;;;10922:5;10899:20;:13;:18;:20::i;:::-;:28;10896:151;;;10950:46;10968:27;:13;10989:5;10968:27;:20;:27;:::i;:::-;10950:13;;:46;:17;:46;:::i;:::-;10943:53;;;;10896:151;-1:-1:-1;11034:1:0;10896:151;10759:295;;;:::o;6726:36::-;;;;:::o;11106:361::-;5719:5;;-1:-1:-1;;;;;5719:5:0;5705:10;:19;5697:28;;;;;;11187:14;11204:29;:15;11224:8;11204:29;:19;:29;:::i;:::-;11187:46;;11261:1;11252:6;:10;11244:19;;;;;;11282:5;;:30;;;-1:-1:-1;;;;;11282:30:0;;11306:4;11282:30;;;;;;11316:6;;-1:-1:-1;;;;;11282:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;11282:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11282:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11282:30:0;:40;;11274:49;;;;;;11346:5;;:32;;;-1:-1:-1;;;;;11346:32:0;;-1:-1:-1;;;;;11346:32:0;;;;;;;;;;;;;;;:5;;;;;:14;;:32;;;;;;;;;;;;;;:5;;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;11346:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11346:32:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11427:32:0;;-1:-1:-1;11427:15:0;11450:8;11427:32;:22;:32;:::i;:::-;;5736:1;11106:361;:::o;10452:295::-;10529:7;5719:5;;-1:-1:-1;;;;;5719:5:0;5705:10;:19;5697:28;;;;;;10625:5;10602:20;:13;:18;:20::i;:::-;:28;10599:141;;;10653:27;:13;10674:5;10653:27;:20;:27;:::i;11818:242::-;5719:5;;-1:-1:-1;;;;;5719:5:0;5705:10;:19;5697:28;;;;;;11906:22;:15;:20;:22::i;:::-;:27;11898:36;;;;;;11953:5;;:30;;;-1:-1:-1;;;;;11953:30:0;;11977:4;11953:30;;;;;;11986:1;;-1:-1:-1;;;;;11953:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;11953:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11953:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11953:30:0;:34;11945:43;;;;;;11999:5;;;12014;12021:30;;;-1:-1:-1;;;;;12021:30:0;;12045:4;12021:30;;;;;;-1:-1:-1;;;;;11999:5:0;;;;:14;;12014:5;;11999;;12021:15;;:30;;;;;;;;;;;;;;;11999:5;12021:30;;;5:2:-1;;;;30:1;27;20:12;5:2;12021:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12021:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12021:30:0;11999:53;;;;;;;;;;-1:-1:-1;;;;;11999:53:0;;;;;;;;;;;;;;;;;;;;12021:30;;11999:53;;;;;;;-1:-1:-1;11999:53:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;11999:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11999:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;11818:242:0:o;7879:119::-;7968:21;;7949:15;:40;;7879:119;;:::o;8225:126::-;8290:7;8316:27;:13;8334:8;8316:27;:17;:27;:::i;:::-;8309:34;8225:126;-1:-1:-1;;8225:126:0:o;6571:33::-;;;;:::o;5267:20::-;;;-1:-1:-1;;;;;5267:20:0;;:::o;7716:151::-;7758:4;7804:15;7782:18;;:37;;:76;;;;;7842:16;;7823:15;:35;;7782:76;7774:85;;7716:151;:::o;10132:308::-;10214:7;5719:5;;-1:-1:-1;;;;;5719:5:0;5705:10;:19;5697:28;;;;;;10304:5;10279:22;:15;:20;:22::i;:::-;:30;10276:157;;;10332:50;10352:29;:15;10375:5;10352:29;:22;:29;:::i;:::-;10332:15;;:50;:19;:50;:::i;8533:603::-;7493:11;:9;:11::i;:::-;7485:20;;;;;;8607:5;;:27;;;-1:-1:-1;;;;;8607:27:0;;8623:10;8607:27;;;;;;8638:6;;-1:-1:-1;;;;;8607:5:0;;:15;;:27;;;;;;;;;;;;;;:5;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;8607:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8607:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8607:27:0;:37;;8599:46;;;;;;8715:5;;:53;;;-1:-1:-1;;;;;8715:53:0;;8734:10;8715:53;;;;8754:4;8715:53;;;;;;;;;;;;-1:-1:-1;;;;;8715:5:0;;;;:18;;:53;;;;;;;;;;;;;;;:5;;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;8715:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8715:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8827:17:0;;-1:-1:-1;8847:41:0;8881:6;8847:29;:13;8865:10;8847:29;:17;:29;:::i;:::-;:33;:41;:33;:41;:::i;:::-;8827:61;-1:-1:-1;8933:45:0;:15;8956:10;8827:61;8933:45;:22;:45;:::i;:::-;-1:-1:-1;8989:43:0;:13;9010:10;9022:9;8989:43;:20;:43;:::i;:::-;-1:-1:-1;9106:10:0;;:22;;9121:6;9106:22;:14;:22;:::i;:::-;9093:10;:35;-1:-1:-1;;8533:603:0:o;9678:124::-;9746:7;5719:5;;-1:-1:-1;;;;;5719:5:0;5705:10;:19;5697:28;;;;;;9772:22;:15;:20;:22::i;8122:91::-;8195:10;;8122:91;:::o;9814:306::-;9898:7;5719:5;;-1:-1:-1;;;;;5719:5:0;5705:10;:19;5697:28;;;;;;9996:5;9971:22;:15;:20;:22::i;:::-;:30;9968:145;;;10024:29;:15;10047:5;10024:29;:22;:29;:::i;8010:100::-;8056:7;8082:20;:13;:18;:20::i;6643:31::-;;;;:::o;5922:192::-;5719:5;;-1:-1:-1;;;;;5719:5:0;5705:10;:19;5697:28;;;;;;-1:-1:-1;;;;;6003:22:0;;5995:31;;;;;;6063:5;;;6042:37;;-1:-1:-1;;;;;6042:37:0;;;;6063:5;;;6042:37;;;6090:5;:16;;-1:-1:-1;;;;;;6090:16:0;-1:-1:-1;;;;;6090:16:0;;;;;;;;;;5922:192::o;6346:19::-;;;-1:-1:-1;;;;;6346:19:0;;:::o;9225:394::-;7622:15;:13;:15::i;:::-;7614:24;;;;;;9291:14;9308:31;:15;9328:10;9308:31;:19;:31;:::i;:::-;9291:48;;9367:1;9358:6;:10;9350:19;;;;;;9388:5;;:30;;;-1:-1:-1;;;;;9388:30:0;;9412:4;9388:30;;;;;;9422:6;;-1:-1:-1;;;;;9388:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;9388:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9388:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9388:30:0;:40;;9380:49;;;;;;9494:5;;:34;;;-1:-1:-1;;;;;9494:34:0;;9509:10;9494:34;;;;;;;;;;;;-1:-1:-1;;;;;9494:5:0;;;;:14;;:34;;;;;;;;;;;;;;;:5;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;9494:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9494:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9577:34:0;;-1:-1:-1;9577:15:0;9600:10;9577:34;:22;:34;:::i;2625:110::-;2708:12;;:19;;2625:110::o;2912:225::-;3028:12;;;:19;2986:7;;3019:28;;3016:86;;;3070:4;:12;;3083:6;3070:20;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3070:20:0;;-1:-1:-1;3063:27:0;;3016:86;-1:-1:-1;3127:1:0;2912:225;;;;:::o;2745:132::-;-1:-1:-1;;;;;2845:24:0;2818:7;2845:24;;;;;;;;;;;;;2745:132::o;1546:909::-;1617:12;-1:-1:-1;;;;;1659:22:0;;1651:31;;;;;;-1:-1:-1;;;;;1731:25:0;;;;;;:15;;;:25;;;;;;1728:76;;-1:-1:-1;1784:5:0;1777:12;;1728:76;-1:-1:-1;;;;;1846:25:0;;1824:19;1846:25;;;:15;;;:25;;;;;;1885:16;;;:53;;-1:-1:-1;1919:12:0;;;:19;1905:33;;1885:53;1882:96;;;1961:5;1954:12;;;;;1882:96;2089:12;;;:19;2075:33;;2071:226;;;2177:12;;;2190:19;;-1:-1:-1;;2190:21:0;;;2177:35;;;;;;;;;;;;;;;;2147:12;;;:27;;-1:-1:-1;;;;;2177:35:0;;;;-1:-1:-1;;2160:13:0;;;2147:27;;;;;;;;;;;;;;:65;;;;;-1:-1:-1;;;;;2147:65:0;;;;;-1:-1:-1;;;;;2147:65:0;;;;;;2274:11;2227:4;:15;;:44;2243:4;:12;;2268:1;2256:11;:13;2243:27;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2243:27:0;2227:44;;;;;;;;;;;;:58;2071:226;2307:12;;;:24;;-1:-1:-1;;2307:24:0;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;2349:24:0;:14;:24;;;;;;;;;;;2342:31;;;2391:15;;;;:25;;;;;2384:32;2391:15;1546:909::o;4606:150::-;4664:7;4696:5;;;4720:6;;;;4712:15;;;;;;4747:1;4606:150;-1:-1:-1;;;4606:150:0:o;995:539::-;1082:13;-1:-1:-1;;;;;1124:22:0;;1116:31;;;;;;-1:-1:-1;;;;;1171:25:0;;;;;;:15;;;:25;;;;;;1168:263;;-1:-1:-1;1255:12:0;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;1255:27:0;;;;;;;;;;;;-1:-1:-1;;;;;;1255:27:0;-1:-1:-1;;;;;1255:27:0;;;;;;;;1325:19;;1297:25;;;:15;;;:25;;;;;;:47;;;;1359:24;;;;;;;:33;;;1407:12;;1168:263;-1:-1:-1;;;;;;1471:24:0;;;;:14;:24;;;;;;;;;;;;:33;1522:4;;995:539::o;6121:5942::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://69347324d0288efd4bbc471565fedfd9ce4afba9b5f98e93e439f7c208c34b54

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.