Latest 3 txns

TxHash Age From To Value [TxFee]
0xdeadcc0cb2035010541ef0c6b7c56df96c6cffd32c2c8793abc81d607ccb12bc18 hrs 47 mins ago0x2d60bcb733f6dfb068489ce9b890f597a582c153  IN   0x048a4be922544e06d40645a6a39d780a1e4482eb0.01 Ether0.000357
0x283dbcc2a650a760d5a070b40b7d4a290125b2e5e4118ce3d32af06ed8a841f528 days 23 hrs ago0x9bb6060de9add0206d987fa9d9575b8390a5ac25  IN   0x048a4be922544e06d40645a6a39d780a1e4482eb0 Ether0.000072178
0xf86080a246289bd2da978c8229aae9ff397b6e7508255e8e5b3c22bca424143029 days 12 mins ago0x9bb6060de9add0206d987fa9d9575b8390a5ac25  IN    Contract Creation0 Ether0.001016162
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: LAND1
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.24;

/**
 * @title ERC20Interface
 * @dev Standard version of ERC20 interface
 */
contract ERC20Interface {
    uint256 public totalSupply;
    function balanceOf(address _owner) public view returns (uint256 balance);
    function transfer(address _to, uint256 _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
    function allowance(address _owner, address _spender) public view returns (uint256 remaining);
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

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

    /**
     * @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 current 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));
        owner = newOwner;
    }
}

/**
 * @title GAMT
 * @dev Implemantation of the GAMT token
 */
contract LAND1 is Ownable, ERC20Interface {
    using SafeMath for uint256;

    string public constant symbol = "LAND1";
    string public constant name = "LAND1";
    uint8 public constant decimals = 18;
    uint256 private _unmintedTokens = 300000000 * uint(10) ** decimals;

    mapping(address => uint256) balances;
    mapping (address => mapping (address => uint256)) internal allowed;

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

    event Burn(address indexed _address, uint256 _value);
    event Mint(address indexed _address, uint256 _value);

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

    /**
     * @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 success) {
        require(_to != address(0));
        require(balances[msg.sender] >= _value);
        assert(balances[_to] + _value >= balances[_to]);

        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }


    /**
     * @dev Transfer tokens from one address to another
     * @param _from The address which you want to send tokens from
     * @param _to The address which you want to transfer to
     * @param _value The amout of tokens to be transfered
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        require(_to != address(0));
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);
        assert(balances[_to] + _value >= balances[_to]);

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub( _value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    /**
     * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender
     * @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 success) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens than an owner allowed to a spender
     * @param _owner The address which owns the funds
     * @param _spender The address which will spend the funds
     * @return A uint specifing the amount of tokens still avaible for the spender
     */
    function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }

    /**
     * @dev Mint GAMT tokens. No more than 300,000,000 GAMT can be minted
     * @param _account The address to which new tokens will be minted
     * @param _mintedAmount The amout of tokens to be minted
     */
    function mintTokens(address _account, uint256 _mintedAmount) public onlyOwner returns (bool success){
        require(_mintedAmount <= _unmintedTokens);

        balances[_account] = balances[_account].add(_mintedAmount);
        _unmintedTokens = _unmintedTokens.sub(_mintedAmount);
        totalSupply = totalSupply.add(_mintedAmount);
        emit Mint(_account, _mintedAmount);
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_spender] == 0.
     * @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) {
        require(_spender != address(0));

        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     * approve should be called when allowed_[_spender] == 0.
     * 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) {
        require(_spender != address(0));

        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].sub(_subtractedValue);
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    /**
     * @dev Mint GAMT tokens and aproves the passed address to spend the minted amount of tokens
     * No more than 300,000,000 GAMT can be minted
     * @param _target The address to which new tokens will be minted
     * @param _mintedAmount The amout of tokens to be minted
     * @param _spender The address which will spend minted funds
     */
    function mintTokensWithApproval(address _target, uint256 _mintedAmount, address _spender) public onlyOwner returns (bool success){
        require(_mintedAmount <= _unmintedTokens);

        balances[_target] = balances[_target].add(_mintedAmount);
        _unmintedTokens = _unmintedTokens.sub(_mintedAmount);
        totalSupply = totalSupply.add(_mintedAmount);
        allowed[_target][_spender] = allowed[_target][_spender].add(_mintedAmount);
        emit Mint(_target, _mintedAmount);
        return true;
    }

    /**
     * @dev Decrease amount of GAMT tokens that can be minted
     * @param _burnedAmount The amount of unminted tokens to be burned
     */
    function burnUnmintedTokens(uint256 _burnedAmount) public onlyOwner returns (bool success){
        require(_burnedAmount <= _unmintedTokens);
        _unmintedTokens = _unmintedTokens.sub(_burnedAmount);
        emit Burn(msg.sender, _burnedAmount);
        return true;
    }


    /**
     * @dev 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) onlyOwner public {
        require(_account != address(0));

        totalSupply = totalSupply.sub(_value);
        balances[_account] = balances[_account].sub(_value);

        emit Burn(_account, _value);

    }

    /**
     * @dev 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) onlyOwner public {
        allowed[_account][msg.sender] = allowed[_account][msg.sender].sub(_value);
        burn(_account, _value);

        emit Burn(_account, _value);
    }


    /**
     * @dev Returns the number of unminted token
     */
    function unmintedTokens() onlyOwner view public returns (uint256 tokens){
        return _unmintedTokens;
    }

}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than asserting '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;
    assert(c / _a == _b);

    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    // assert(_b > 0); // Solidity automatically throws when dividing by 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 numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
    assert(_b <= _a);
    uint256 c = _a - _b;

    return c;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
    uint256 c = _a + _b;
    assert(c >= _a);

    return c;
  }
}

    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":"success","type":"bool"}],"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":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"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":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_mintedAmount","type":"uint256"},{"name":"_spender","type":"address"}],"name":"mintTokensWithApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_burnedAmount","type":"uint256"}],"name":"burnUnmintedTokens","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unmintedTokens","outputs":[{"name":"tokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"},{"name":"_mintedAmount","type":"uint256"}],"name":"mintTokens","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"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"},{"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":"_address","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Mint","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60806040526af8277896582678ac00000060025560008054600160a060020a03191633179055610d88806100346000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461010b578063095ea7b31461019557806318160ddd146101cd57806323b872dd146101f4578063313ce5671461021e578063395093511461024957806370a082311461026d57806379cc67901461028e5780638da5cb5b146102b457806391fe7bab146102e557806395d89b411461010b5780639dc29fac14610310578063a457c2d714610334578063a9059cbb14610358578063dc8855271461037c578063dd62ed3e14610394578063e21827a1146103bb578063f0dda65c146103d0578063f2fde38b146103f4575b600080fd5b34801561011757600080fd5b50610120610415565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015a578181015183820152602001610142565b50505050905090810190601f1680156101875780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a157600080fd5b506101b9600160a060020a036004351660243561044c565b604080519115158252519081900360200190f35b3480156101d957600080fd5b506101e26104b2565b60408051918252519081900360200190f35b34801561020057600080fd5b506101b9600160a060020a03600435811690602435166044356104b8565b34801561022a57600080fd5b50610233610655565b6040805160ff9092168252519081900360200190f35b34801561025557600080fd5b506101b9600160a060020a036004351660243561065a565b34801561027957600080fd5b506101e2600160a060020a036004351661070a565b34801561029a57600080fd5b506102b2600160a060020a0360043516602435610725565b005b3480156102c057600080fd5b506102c96107e1565b60408051600160a060020a039092168252519081900360200190f35b3480156102f157600080fd5b506101b9600160a060020a0360043581169060243590604435166107f0565b34801561031c57600080fd5b506102b2600160a060020a0360043516602435610922565b34801561034057600080fd5b506101b9600160a060020a03600435166024356109e3565b34801561036457600080fd5b506101b9600160a060020a0360043516602435610a2e565b34801561038857600080fd5b506101b9600435610b35565b3480156103a057600080fd5b506101e2600160a060020a0360043581169060243516610bb0565b3480156103c757600080fd5b506101e2610bdb565b3480156103dc57600080fd5b506101b9600160a060020a0360043516602435610bfa565b34801561040057600080fd5b506102b2600160a060020a0360043516610cd7565b60408051808201909152600581527f4c414e4431000000000000000000000000000000000000000000000000000000602082015281565b336000818152600460209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60015481565b6000600160a060020a03831615156104cf57600080fd5b600160a060020a0384166000908152600360205260409020548211156104f457600080fd5b600160a060020a038416600090815260046020908152604080832033845290915290205482111561052457600080fd5b600160a060020a038316600090815260036020526040902054828101101561054857fe5b600160a060020a038416600090815260036020526040902054610571908363ffffffff610d3216565b600160a060020a0380861660009081526003602052604080822093909355908516815220546105a6908363ffffffff610d4616565b600160a060020a0380851660009081526003602090815260408083209490945591871681526004825282812033825290915220546105ea908363ffffffff610d3216565b600160a060020a03808616600081815260046020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b601281565b6000600160a060020a038316151561067157600080fd5b336000908152600460209081526040808320600160a060020a03871684529091529020546106a5908363ffffffff610d4616565b336000818152600460209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a031660009081526003602052604090205490565b600054600160a060020a0316331461073c57600080fd5b600160a060020a0382166000908152600460209081526040808320338452909152902054610770908263ffffffff610d3216565b600160a060020a038316600090815260046020908152604080832033845290915290205561079e8282610922565b604080518281529051600160a060020a038416917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a25050565b600054600160a060020a031681565b60008054600160a060020a0316331461080857600080fd5b60025483111561081757600080fd5b600160a060020a038416600090815260036020526040902054610840908463ffffffff610d4616565b600160a060020a03851660009081526003602052604090205560025461086c908463ffffffff610d3216565b600255600154610882908463ffffffff610d4616565b600155600160a060020a038085166000908152600460209081526040808320938616835292905220546108bb908463ffffffff610d4616565b600160a060020a038086166000818152600460209081526040808320948816835293815290839020939093558151868152915190927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885928290030190a25060019392505050565b600054600160a060020a0316331461093957600080fd5b600160a060020a038216151561094e57600080fd5b600154610961908263ffffffff610d3216565b600155600160a060020a03821660009081526003602052604090205461098d908263ffffffff610d3216565b600160a060020a038316600081815260036020908152604091829020939093558051848152905191927fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592918290030190a25050565b6000600160a060020a03831615156109fa57600080fd5b336000908152600460209081526040808320600160a060020a03871684529091529020546106a5908363ffffffff610d3216565b6000600160a060020a0383161515610a4557600080fd5b33600090815260036020526040902054821115610a6157600080fd5b600160a060020a0383166000908152600360205260409020548281011015610a8557fe5b33600090815260036020526040902054610aa5908363ffffffff610d3216565b3360009081526003602052604080822092909255600160a060020a03851681522054610ad7908363ffffffff610d4616565b600160a060020a0384166000818152600360209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b60008054600160a060020a03163314610b4d57600080fd5b600254821115610b5c57600080fd5b600254610b6f908363ffffffff610d3216565b60025560408051838152905133917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5919081900360200190a2506001919050565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205490565b60008054600160a060020a03163314610bf357600080fd5b5060025490565b60008054600160a060020a03163314610c1257600080fd5b600254821115610c2157600080fd5b600160a060020a038316600090815260036020526040902054610c4a908363ffffffff610d4616565b600160a060020a038416600090815260036020526040902055600254610c76908363ffffffff610d3216565b600255600154610c8c908363ffffffff610d4616565b600155604080518381529051600160a060020a038516917f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885919081900360200190a250600192915050565b600054600160a060020a03163314610cee57600080fd5b600160a060020a0381161515610d0357600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008083831115610d3f57fe5b5050900390565b600082820183811015610d5557fe5b93925050505600a165627a7a72305820fede51defed4bb3bcca144da0d537cd97823dd5a24b110c2e872a96b538ae6580029

   Swarm Source:
bzzr://fede51defed4bb3bcca144da0d537cd97823dd5a24b110c2e872a96b538ae658

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward