ETH Price: $3,418.59 (-0.76%)
Gas: 1 Gwei

Token

Arcona Digital Land (ARDL)
 

Overview

Max Total Supply

14,181 ARDL

Holders

4,295

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
xcopy.eth
Balance
1 ARDL
0x39cc9c86e67baf2129b80fe3414c397492ea8026
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Arcona merges real and virtual worlds together creating unique layer of augmented reality all over the planet’s surface – the Digital Land.

ICO Information

ICO Start Date : Apr 15, 2018  
ICO End Date : May 15, 2018
Hard Cap : $25,000,000
Soft Cap : 2746 ETH
ICO Price  : 0.0025 ETH
Country : Gibraltar

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ArconaDigitalLand

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-08-23
*/

pragma solidity 0.4.24;

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    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;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

contract Ownable {
    address public owner;
    mapping(address => bool) admins;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event AddAdmin(address indexed admin);
    event DelAdmin(address indexed admin);


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

    modifier onlyAdmin() {
        require(isAdmin(msg.sender));
        _;
    }


    function addAdmin(address _adminAddress) external onlyOwner {
        require(_adminAddress != address(0));
        admins[_adminAddress] = true;
        emit AddAdmin(_adminAddress);
    }

    function delAdmin(address _adminAddress) external onlyOwner {
        require(admins[_adminAddress]);
        admins[_adminAddress] = false;
        emit DelAdmin(_adminAddress);
    }

    function isAdmin(address _adminAddress) public view returns (bool) {
        return admins[_adminAddress];
    }
    /**
     * @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) external onlyOwner {
        require(_newOwner != address(0));
        emit OwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }

}



interface tokenRecipient {
    function receiveApproval(address _from, address _token, uint _value, bytes _extraData) external;
    function receiveCreateAuction(address _from, address _token, uint _tokenId, uint _startPrice, uint _duration) external;
    function receiveCreateAuctionFromArray(address _from, address _token, uint[] _landIds, uint _startPrice, uint _duration) external;
}


contract ERC721 {
    function implementsERC721() public pure returns (bool);
    function totalSupply() public view returns (uint256 total);
    function balanceOf(address _owner) public view returns (uint256 balance);
    function ownerOf(uint256 _tokenId) public view returns (address owner);
    function approve(address _to, uint256 _tokenId) public returns (bool);
    function transferFrom(address _from, address _to, uint256 _tokenId) public returns (bool);
    function transfer(address _to, uint256 _tokenId) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

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



contract LandBase is ERC721, Ownable {
    using SafeMath for uint;

    event NewLand(address indexed owner, uint256 landId);

    struct Land {
        uint id;
    }


    // Total amount of lands
    uint256 private totalLands;

    // Incremental counter of lands Id
    uint256 private lastLandId;

    //Mapping from land ID to Land struct
    mapping(uint256 => Land) public lands;

    // Mapping from land ID to owner
    mapping(uint256 => address) private landOwner;

    // Mapping from land ID to approved address
    mapping(uint256 => address) private landApprovals;

    // Mapping from owner to list of owned lands IDs
    mapping(address => uint256[]) private ownedLands;

    // Mapping from land ID to index of the owner lands list
    // т.е. ID земли => порядковый номер в списке владельца
    mapping(uint256 => uint256) private ownedLandsIndex;


    modifier onlyOwnerOf(uint256 _tokenId) {
        require(owns(msg.sender, _tokenId));
        _;
    }

    /**
    * @dev Gets the owner of the specified land ID
    * @param _tokenId uint256 ID of the land to query the owner of
    * @return owner address currently marked as the owner of the given land ID
    */
    function ownerOf(uint256 _tokenId) public view returns (address) {
        return landOwner[_tokenId];
    }

    function totalSupply() public view returns (uint256) {
        return totalLands;
    }

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

    /**
    * @dev Gets the list of lands owned by a given address
    * @param _owner address to query the lands of
    * @return uint256[] representing the list of lands owned by the passed address
    */
    function landsOf(address _owner) public view returns (uint256[]) {
        return ownedLands[_owner];
    }

    /**
    * @dev Gets the approved address to take ownership of a given land ID
    * @param _tokenId uint256 ID of the land to query the approval of
    * @return address currently approved to take ownership of the given land ID
    */
    function approvedFor(uint256 _tokenId) public view returns (address) {
        return landApprovals[_tokenId];
    }

    /**
    * @dev Tells whether the msg.sender is approved for the given land ID or not
    * This function is not private so it can be extended in further implementations like the operatable ERC721
    * @param _owner address of the owner to query the approval of
    * @param _tokenId uint256 ID of the land to query the approval of
    * @return bool whether the msg.sender is approved for the given land ID or not
    */
    function allowance(address _owner, uint256 _tokenId) public view returns (bool) {
        return approvedFor(_tokenId) == _owner;
    }

    /**
    * @dev Approves another address to claim for the ownership of the given land ID
    * @param _to address to be approved for the given land ID
    * @param _tokenId uint256 ID of the land to be approved
    */
    function approve(address _to, uint256 _tokenId) public onlyOwnerOf(_tokenId) returns (bool) {
        require(_to != msg.sender);
        if (approvedFor(_tokenId) != address(0) || _to != address(0)) {
            landApprovals[_tokenId] = _to;
            emit Approval(msg.sender, _to, _tokenId);
            return true;
        }
    }


    function approveAndCall(address _spender, uint256 _tokenId, bytes _extraData) public returns (bool) {
        tokenRecipient spender = tokenRecipient(_spender);
        if (approve(_spender, _tokenId)) {
            spender.receiveApproval(msg.sender, this, _tokenId, _extraData);
            return true;
        }
    }


    function createAuction(address _auction, uint _tokenId, uint _startPrice, uint _duration) public returns (bool) {
        tokenRecipient auction = tokenRecipient(_auction);
        if (approve(_auction, _tokenId)) {
            auction.receiveCreateAuction(msg.sender, this, _tokenId, _startPrice, _duration);
            return true;
        }
    }


    function createAuctionFromArray(address _auction, uint[] _landIds, uint _startPrice, uint _duration) public returns (bool) {
        tokenRecipient auction = tokenRecipient(_auction);

        for (uint i = 0; i < _landIds.length; ++i)
            require(approve(_auction, _landIds[i]));

        auction.receiveCreateAuctionFromArray(msg.sender, this, _landIds, _startPrice, _duration);
        return true;
    }

    /**
    * @dev Claims the ownership of a given land ID
    * @param _tokenId uint256 ID of the land being claimed by the msg.sender
    */
    function takeOwnership(uint256 _tokenId) public {
        require(allowance(msg.sender, _tokenId));
        clearApprovalAndTransfer(ownerOf(_tokenId), msg.sender, _tokenId);
    }

    /**
    * @dev Transfers the ownership of a given land ID to another address
    * @param _to address to receive the ownership of the given land ID
    * @param _tokenId uint256 ID of the land to be transferred
    */
    function transfer(address _to, uint256 _tokenId) public onlyOwnerOf(_tokenId) returns (bool) {
        clearApprovalAndTransfer(msg.sender, _to, _tokenId);
        return true;
    }


    function ownerTransfer(address _from, address _to, uint256 _tokenId) onlyAdmin public returns (bool) {
        clearApprovalAndTransfer(_from, _to, _tokenId);
        return true;
    }

    /**
    * @dev Internal function to clear current approval and transfer the ownership of a given land ID
    * @param _from address which you want to send lands from
    * @param _to address which you want to transfer the land to
    * @param _tokenId uint256 ID of the land to be transferred
    */
    function clearApprovalAndTransfer(address _from, address _to, uint256 _tokenId) internal {
        require(owns(_from, _tokenId));
        require(_to != address(0));
        require(_to != ownerOf(_tokenId));

        clearApproval(_from, _tokenId);
        removeLand(_from, _tokenId);
        addLand(_to, _tokenId);
        emit Transfer(_from, _to, _tokenId);
    }

    /**
    * @dev Internal function to clear current approval of a given land ID
    * @param _tokenId uint256 ID of the land to be transferred
    */
    function clearApproval(address _owner, uint256 _tokenId) private {
        require(owns(_owner, _tokenId));
        landApprovals[_tokenId] = address(0);
        emit Approval(_owner, address(0), _tokenId);
    }

    /**
    * @dev Internal function to add a land ID to the list of a given address
    * @param _to address representing the new owner of the given land ID
    * @param _tokenId uint256 ID of the land to be added to the lands list of the given address
    */
    function addLand(address _to, uint256 _tokenId) private {
        require(landOwner[_tokenId] == address(0));
        landOwner[_tokenId] = _to;

        uint256 length = ownedLands[_to].length;
        ownedLands[_to].push(_tokenId);
        ownedLandsIndex[_tokenId] = length;
        totalLands = totalLands.add(1);
    }

    /**
    * @dev Internal function to remove a land ID from the list of a given address
    * @param _from address representing the previous owner of the given land ID
    * @param _tokenId uint256 ID of the land to be removed from the lands list of the given address
    */
    function removeLand(address _from, uint256 _tokenId) private {
        require(owns(_from, _tokenId));

        uint256 landIndex = ownedLandsIndex[_tokenId];
        //        uint256 lastLandIndex = balanceOf(_from).sub(1);
        uint256 lastLandIndex = ownedLands[_from].length.sub(1);
        uint256 lastLand = ownedLands[_from][lastLandIndex];

        landOwner[_tokenId] = address(0);
        ownedLands[_from][landIndex] = lastLand;
        ownedLands[_from][lastLandIndex] = 0;
        // Note that this will handle single-element arrays. In that case, both landIndex and lastLandIndex are going to
        // be zero. Then we can make sure that we will remove _tokenId from the ownedLands list since we are first swapping
        // the lastLand to the first position, and then dropping the element placed in the last position of the list

        ownedLands[_from].length--;
        ownedLandsIndex[_tokenId] = 0;
        ownedLandsIndex[lastLand] = landIndex;
        totalLands = totalLands.sub(1);
    }


    function createLand(address _owner, uint _id) onlyAdmin public returns (uint) {
        require(_owner != address(0));
        uint256 _tokenId = lastLandId++;
        addLand(_owner, _tokenId);
        //store new land data
        lands[_tokenId] = Land({
            id : _id
            });
        emit Transfer(address(0), _owner, _tokenId);
        emit NewLand(_owner, _tokenId);
        return _tokenId;
    }

    function createLandAndAuction(address _owner, uint _id, address _auction, uint _startPrice, uint _duration) onlyAdmin public
    {
        uint id = createLand(_owner, _id);
        require(createAuction(_auction, id, _startPrice, _duration));
    }


    function owns(address _claimant, uint256 _tokenId) public view returns (bool) {
        return ownerOf(_tokenId) == _claimant && ownerOf(_tokenId) != address(0);
    }


    function transferFrom(address _from, address _to, uint256 _tokenId) public returns (bool) {
        require(_to != address(this));
        require(allowance(msg.sender, _tokenId));
        clearApprovalAndTransfer(_from, _to, _tokenId);
        return true;
    }

}


contract ArconaDigitalLand is LandBase {
    string public constant name = " Arcona Digital Land";
    string public constant symbol = "ARDL";

    function implementsERC721() public pure returns (bool)
    {
        return true;
    }

    function() public payable{
        revert();
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","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":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_adminAddress","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"approvedFor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_auction","type":"address"},{"name":"_landIds","type":"uint256[]"},{"name":"_startPrice","type":"uint256"},{"name":"_duration","type":"uint256"}],"name":"createAuctionFromArray","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_auction","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_startPrice","type":"uint256"},{"name":"_duration","type":"uint256"}],"name":"createAuction","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_adminAddress","type":"address"}],"name":"delAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_adminAddress","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_claimant","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"owns","outputs":[{"name":"","type":"bool"}],"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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"landsOf","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"ownerTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_id","type":"uint256"}],"name":"createLand","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"allowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"lands","outputs":[{"name":"id","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":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_id","type":"uint256"},{"name":"_auction","type":"address"},{"name":"_startPrice","type":"uint256"},{"name":"_duration","type":"uint256"}],"name":"createLandAndAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"landId","type":"uint256"}],"name":"NewLand","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":"admin","type":"address"}],"name":"AddAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"admin","type":"address"}],"name":"DelAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"}]

608060405260008054600160a060020a031916331790556112e2806100256000396000f3006080604052600436106101535763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610158578063095ea7b3146101e25780631051db341461021a57806318160ddd1461022f57806323b872dd1461025657806324d7806c146102805780632a6dd48f146102a15780635aff457f146102d557806361beb1d71461034157806362d918551461036b5780636352211e1461038e57806370480275146103a657806370a08231146103c7578063818d4b5d146103e85780638da5cb5b1461040c57806395d89b41146104215780639805d7d214610436578063a1291f7f146104a7578063a9059cbb146104d1578063b2e6ceeb146104f5578063cae9ca511461050d578063db165a7614610576578063ddc6a1711461059a578063e261f1e5146105be578063f2fde38b146105d6578063f4c2ebdd146105f7575b600080fd5b34801561016457600080fd5b5061016d610628565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a757818101518382015260200161018f565b50505050905090810190601f1680156101d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ee57600080fd5b50610206600160a060020a036004351660243561065f565b604080519115158252519081900360200190f35b34801561022657600080fd5b50610206610729565b34801561023b57600080fd5b5061024461072f565b60408051918252519081900360200190f35b34801561026257600080fd5b50610206600160a060020a0360043581169060243516604435610735565b34801561028c57600080fd5b50610206600160a060020a0360043516610777565b3480156102ad57600080fd5b506102b9600435610795565b60408051600160a060020a039092168252519081900360200190f35b3480156102e157600080fd5b50604080516020600460248035828101358481028087018601909752808652610206968435600160a060020a0316963696604495919490910192918291850190849080828437509497505084359550505060209092013591506107b09050565b34801561034d57600080fd5b50610206600160a060020a03600435166024356044356064356108d7565b34801561037757600080fd5b5061038c600160a060020a036004351661098a565b005b34801561039a57600080fd5b506102b9600435610a11565b3480156103b257600080fd5b5061038c600160a060020a0360043516610a2c565b3480156103d357600080fd5b50610244600160a060020a0360043516610aa7565b3480156103f457600080fd5b50610206600160a060020a0360043516602435610ac2565b34801561041857600080fd5b506102b9610b06565b34801561042d57600080fd5b5061016d610b15565b34801561044257600080fd5b50610457600160a060020a0360043516610b4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561049357818101518382015260200161047b565b505050509050019250505060405180910390f35b3480156104b357600080fd5b50610206600160a060020a0360043581169060243516604435610bb8565b3480156104dd57600080fd5b50610206600160a060020a0360043516602435610bc3565b34801561050157600080fd5b5061038c600435610be6565b34801561051957600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610206948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610c119650505050505050565b34801561058257600080fd5b50610244600160a060020a0360043516602435610d29565b3480156105a657600080fd5b50610206600160a060020a0360043516602435610e05565b3480156105ca57600080fd5b50610244600435610e2b565b3480156105e257600080fd5b5061038c600160a060020a0360043516610e3d565b34801561060357600080fd5b5061038c600160a060020a036004358116906024359060443516606435608435610ed1565b60408051808201909152601481527f204172636f6e61204469676974616c204c616e64000000000000000000000000602082015281565b60008161066c3382610ac2565b151561067757600080fd5b600160a060020a03841633141561068d57600080fd5b600061069884610795565b600160a060020a03161415806106b65750600160a060020a03841615155b1561072257600083815260066020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091559051859233917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a4600191505b5092915050565b60015b90565b60025490565b6000600160a060020a03831630141561074d57600080fd5b6107573383610e05565b151561076257600080fd5b61076d848484610f12565b5060019392505050565b600160a060020a031660009081526001602052604090205460ff1690565b600090815260066020526040902054600160a060020a031690565b600084815b85518110156107f2576107df8787838151811015156107d057fe5b9060200190602002015161065f565b15156107ea57600080fd5b6001016107b5565b6040517fc89e528e00000000000000000000000000000000000000000000000000000000815233600482018181523060248401819052606484018990526084840188905260a0604485019081528a5160a48601528a51600160a060020a0388169563c89e528e95948d938d938d9360c401906020808801910280838360005b83811015610889578181015183820152602001610871565b505050509050019650505050505050600060405180830381600087803b1580156108b257600080fd5b505af11580156108c6573d6000803e3d6000fd5b5060019a9950505050505050505050565b6000846108e4818661065f565b1561098157604080517f100a0ed10000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810187905260648101869052608481018590529051600160a060020a0383169163100a0ed19160a480830192600092919082900301818387803b15801561096457600080fd5b505af1158015610978573d6000803e3d6000fd5b50505050600191505b50949350505050565b600054600160a060020a031633146109a157600080fd5b600160a060020a03811660009081526001602052604090205460ff1615156109c857600080fd5b600160a060020a038116600081815260016020526040808220805460ff19169055517fb6932914dcfc2a1d602e4e0cd9f9d99dc9640ccfc789b1b83a691fc0c90c24c39190a250565b600090815260056020526040902054600160a060020a031690565b600054600160a060020a03163314610a4357600080fd5b600160a060020a0381161515610a5857600080fd5b600160a060020a0381166000818152600160208190526040808320805460ff1916909217909155517fad6de4452a631e641cb59902236607946ce9272b9b981f2f80e8d129cb9084ba9190a250565b600160a060020a031660009081526007602052604090205490565b600082600160a060020a0316610ad783610a11565b600160a060020a0316148015610aff57506000610af383610a11565b600160a060020a031614155b9392505050565b600054600160a060020a031681565b60408051808201909152600481527f4152444c00000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a038116600090815260076020908152604091829020805483518184028101840190945280845260609392830182828015610bac57602002820191906000526020600020905b815481526020019060010190808311610b98575b50505050509050919050565b600061075733610777565b600081610bd03382610ac2565b1515610bdb57600080fd5b61076d338585610f12565b610bf03382610e05565b1515610bfb57600080fd5b610c0e610c0782610a11565b3383610f12565b50565b600083610c1e818561065f565b15610d21576040517f56826ee60000000000000000000000000000000000000000000000000000000081523360048201818152306024840181905260448401889052608060648501908152875160848601528751600160a060020a038716956356826ee695948b938b939192909160a490910190602085019080838360005b83811015610cb5578181015183820152602001610c9d565b50505050905090810190601f168015610ce25780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610d0457600080fd5b505af1158015610d18573d6000803e3d6000fd5b50505050600191505b509392505050565b600080610d3533610777565b1515610d4057600080fd5b600160a060020a0384161515610d5557600080fd5b506003805460018101909155610d6b8482610fc1565b604080516020818101835285825260008481526004909152828120915190915590518291600160a060020a038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4604080518281529051600160a060020a038616917ff81b1d2ee455f4cd7d6958269606dc9daa4c68e2e0f7965ae36887d2008d65a7919081900360200190a29392505050565b600082600160a060020a0316610e1a83610795565b600160a060020a0316149392505050565b60046020526000908152604090205481565b600054600160a060020a03163314610e5457600080fd5b600160a060020a0381161515610e6957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000610edc33610777565b1515610ee757600080fd5b610ef18686610d29565b9050610eff848285856108d7565b1515610f0a57600080fd5b505050505050565b610f1c8382610ac2565b1515610f2757600080fd5b600160a060020a0382161515610f3c57600080fd5b610f4581610a11565b600160a060020a0383811691161415610f5d57600080fd5b610f67838261105f565b610f7183826110d6565b610f7b8282610fc1565b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081815260056020526040812054600160a060020a031615610fe357600080fd5b506000818152600560209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387169081179091558352600782528083208054600181810183559185528385208101869055858552600890935292208190556002549091611057919061124e565b600255505050565b6110698282610ac2565b151561107457600080fd5b600081815260066020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916905551829190600160a060020a038516907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925908390a45050565b60008060006110e58585610ac2565b15156110f057600080fd5b600084815260086020908152604080832054600160a060020a038916845260079092529091205490935061112b90600163ffffffff61125d16565b600160a060020a03861660009081526007602052604090208054919350908390811061115357fe5b6000918252602080832090910154868352600582526040808420805473ffffffffffffffffffffffffffffffffffffffff19169055600160a060020a03891684526007909252912080549192508291859081106111ac57fe5b6000918252602080832090910192909255600160a060020a03871681526007909152604081208054849081106111de57fe5b6000918252602080832090910192909255600160a060020a038716815260079091526040902080549061121590600019830161126f565b50600084815260086020526040808220829055828252902083905560025461124490600163ffffffff61125d16565b6002555050505050565b600082820183811015610aff57fe5b60008282111561126957fe5b50900390565b81548183558181111561129357600083815260209020611293918101908301611298565b505050565b61072c91905b808211156112b2576000815560010161129e565b50905600a165627a7a723058203dbd5d7025a01ea6c30168547c10f2c6ba85e7aa1f33da6cea154df17e2b6e720029

Deployed Bytecode

0x6080604052600436106101535763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610158578063095ea7b3146101e25780631051db341461021a57806318160ddd1461022f57806323b872dd1461025657806324d7806c146102805780632a6dd48f146102a15780635aff457f146102d557806361beb1d71461034157806362d918551461036b5780636352211e1461038e57806370480275146103a657806370a08231146103c7578063818d4b5d146103e85780638da5cb5b1461040c57806395d89b41146104215780639805d7d214610436578063a1291f7f146104a7578063a9059cbb146104d1578063b2e6ceeb146104f5578063cae9ca511461050d578063db165a7614610576578063ddc6a1711461059a578063e261f1e5146105be578063f2fde38b146105d6578063f4c2ebdd146105f7575b600080fd5b34801561016457600080fd5b5061016d610628565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101a757818101518382015260200161018f565b50505050905090810190601f1680156101d45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101ee57600080fd5b50610206600160a060020a036004351660243561065f565b604080519115158252519081900360200190f35b34801561022657600080fd5b50610206610729565b34801561023b57600080fd5b5061024461072f565b60408051918252519081900360200190f35b34801561026257600080fd5b50610206600160a060020a0360043581169060243516604435610735565b34801561028c57600080fd5b50610206600160a060020a0360043516610777565b3480156102ad57600080fd5b506102b9600435610795565b60408051600160a060020a039092168252519081900360200190f35b3480156102e157600080fd5b50604080516020600460248035828101358481028087018601909752808652610206968435600160a060020a0316963696604495919490910192918291850190849080828437509497505084359550505060209092013591506107b09050565b34801561034d57600080fd5b50610206600160a060020a03600435166024356044356064356108d7565b34801561037757600080fd5b5061038c600160a060020a036004351661098a565b005b34801561039a57600080fd5b506102b9600435610a11565b3480156103b257600080fd5b5061038c600160a060020a0360043516610a2c565b3480156103d357600080fd5b50610244600160a060020a0360043516610aa7565b3480156103f457600080fd5b50610206600160a060020a0360043516602435610ac2565b34801561041857600080fd5b506102b9610b06565b34801561042d57600080fd5b5061016d610b15565b34801561044257600080fd5b50610457600160a060020a0360043516610b4c565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561049357818101518382015260200161047b565b505050509050019250505060405180910390f35b3480156104b357600080fd5b50610206600160a060020a0360043581169060243516604435610bb8565b3480156104dd57600080fd5b50610206600160a060020a0360043516602435610bc3565b34801561050157600080fd5b5061038c600435610be6565b34801561051957600080fd5b50604080516020600460443581810135601f8101849004840285018401909552848452610206948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610c119650505050505050565b34801561058257600080fd5b50610244600160a060020a0360043516602435610d29565b3480156105a657600080fd5b50610206600160a060020a0360043516602435610e05565b3480156105ca57600080fd5b50610244600435610e2b565b3480156105e257600080fd5b5061038c600160a060020a0360043516610e3d565b34801561060357600080fd5b5061038c600160a060020a036004358116906024359060443516606435608435610ed1565b60408051808201909152601481527f204172636f6e61204469676974616c204c616e64000000000000000000000000602082015281565b60008161066c3382610ac2565b151561067757600080fd5b600160a060020a03841633141561068d57600080fd5b600061069884610795565b600160a060020a03161415806106b65750600160a060020a03841615155b1561072257600083815260066020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091559051859233917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259190a4600191505b5092915050565b60015b90565b60025490565b6000600160a060020a03831630141561074d57600080fd5b6107573383610e05565b151561076257600080fd5b61076d848484610f12565b5060019392505050565b600160a060020a031660009081526001602052604090205460ff1690565b600090815260066020526040902054600160a060020a031690565b600084815b85518110156107f2576107df8787838151811015156107d057fe5b9060200190602002015161065f565b15156107ea57600080fd5b6001016107b5565b6040517fc89e528e00000000000000000000000000000000000000000000000000000000815233600482018181523060248401819052606484018990526084840188905260a0604485019081528a5160a48601528a51600160a060020a0388169563c89e528e95948d938d938d9360c401906020808801910280838360005b83811015610889578181015183820152602001610871565b505050509050019650505050505050600060405180830381600087803b1580156108b257600080fd5b505af11580156108c6573d6000803e3d6000fd5b5060019a9950505050505050505050565b6000846108e4818661065f565b1561098157604080517f100a0ed10000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810187905260648101869052608481018590529051600160a060020a0383169163100a0ed19160a480830192600092919082900301818387803b15801561096457600080fd5b505af1158015610978573d6000803e3d6000fd5b50505050600191505b50949350505050565b600054600160a060020a031633146109a157600080fd5b600160a060020a03811660009081526001602052604090205460ff1615156109c857600080fd5b600160a060020a038116600081815260016020526040808220805460ff19169055517fb6932914dcfc2a1d602e4e0cd9f9d99dc9640ccfc789b1b83a691fc0c90c24c39190a250565b600090815260056020526040902054600160a060020a031690565b600054600160a060020a03163314610a4357600080fd5b600160a060020a0381161515610a5857600080fd5b600160a060020a0381166000818152600160208190526040808320805460ff1916909217909155517fad6de4452a631e641cb59902236607946ce9272b9b981f2f80e8d129cb9084ba9190a250565b600160a060020a031660009081526007602052604090205490565b600082600160a060020a0316610ad783610a11565b600160a060020a0316148015610aff57506000610af383610a11565b600160a060020a031614155b9392505050565b600054600160a060020a031681565b60408051808201909152600481527f4152444c00000000000000000000000000000000000000000000000000000000602082015281565b600160a060020a038116600090815260076020908152604091829020805483518184028101840190945280845260609392830182828015610bac57602002820191906000526020600020905b815481526020019060010190808311610b98575b50505050509050919050565b600061075733610777565b600081610bd03382610ac2565b1515610bdb57600080fd5b61076d338585610f12565b610bf03382610e05565b1515610bfb57600080fd5b610c0e610c0782610a11565b3383610f12565b50565b600083610c1e818561065f565b15610d21576040517f56826ee60000000000000000000000000000000000000000000000000000000081523360048201818152306024840181905260448401889052608060648501908152875160848601528751600160a060020a038716956356826ee695948b938b939192909160a490910190602085019080838360005b83811015610cb5578181015183820152602001610c9d565b50505050905090810190601f168015610ce25780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610d0457600080fd5b505af1158015610d18573d6000803e3d6000fd5b50505050600191505b509392505050565b600080610d3533610777565b1515610d4057600080fd5b600160a060020a0384161515610d5557600080fd5b506003805460018101909155610d6b8482610fc1565b604080516020818101835285825260008481526004909152828120915190915590518291600160a060020a038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4604080518281529051600160a060020a038616917ff81b1d2ee455f4cd7d6958269606dc9daa4c68e2e0f7965ae36887d2008d65a7919081900360200190a29392505050565b600082600160a060020a0316610e1a83610795565b600160a060020a0316149392505050565b60046020526000908152604090205481565b600054600160a060020a03163314610e5457600080fd5b600160a060020a0381161515610e6957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000610edc33610777565b1515610ee757600080fd5b610ef18686610d29565b9050610eff848285856108d7565b1515610f0a57600080fd5b505050505050565b610f1c8382610ac2565b1515610f2757600080fd5b600160a060020a0382161515610f3c57600080fd5b610f4581610a11565b600160a060020a0383811691161415610f5d57600080fd5b610f67838261105f565b610f7183826110d6565b610f7b8282610fc1565b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600081815260056020526040812054600160a060020a031615610fe357600080fd5b506000818152600560209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387169081179091558352600782528083208054600181810183559185528385208101869055858552600890935292208190556002549091611057919061124e565b600255505050565b6110698282610ac2565b151561107457600080fd5b600081815260066020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916905551829190600160a060020a038516907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925908390a45050565b60008060006110e58585610ac2565b15156110f057600080fd5b600084815260086020908152604080832054600160a060020a038916845260079092529091205490935061112b90600163ffffffff61125d16565b600160a060020a03861660009081526007602052604090208054919350908390811061115357fe5b6000918252602080832090910154868352600582526040808420805473ffffffffffffffffffffffffffffffffffffffff19169055600160a060020a03891684526007909252912080549192508291859081106111ac57fe5b6000918252602080832090910192909255600160a060020a03871681526007909152604081208054849081106111de57fe5b6000918252602080832090910192909255600160a060020a038716815260079091526040902080549061121590600019830161126f565b50600084815260086020526040808220829055828252902083905560025461124490600163ffffffff61125d16565b6002555050505050565b600082820183811015610aff57fe5b60008282111561126957fe5b50900390565b81548183558181111561129357600083815260209020611293918101908301611298565b505050565b61072c91905b808211156112b2576000815560010161129e565b50905600a165627a7a723058203dbd5d7025a01ea6c30168547c10f2c6ba85e7aa1f33da6cea154df17e2b6e720029

Swarm Source

bzzr://3dbd5d7025a01ea6c30168547c10f2c6ba85e7aa1f33da6cea154df17e2b6e72
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.