ETH Price: $3,830.83 (-4.03%)

Token

Digiwill (DGW)
 

Overview

Max Total Supply

2,000,000,000 DGW

Holders

1,757 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
500 DGW

Value
$0.00
0x6a199f2c0bc8296cba13449641089d1a7b420202
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Digiwills is a service based on a smart contract that aims to ensure that your digital assets are not lost or fall into the wrong hands.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DigiWill

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-05-29
*/

pragma solidity ^0.4.24;


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

}

/**
 * @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) {
    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);
    return a - b;
	}

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

interface tokenRecipient {
    function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) external;
	}

contract DigiWill is Ownable {
    using SafeMath for uint256;

    string public name = "Digiwill";
    uint8 public decimals = 18;
    string public symbol = "DGW";
    uint public totalSupply;
	bool public enabledTokenTransfer = false;

    mapping (address => uint256) public balances;
    mapping (address => mapping (address => uint256)) public allowed;
	
	mapping (address => bool) public allowedToTransfer;
	mapping (address => bool) public blockedAddress;

///////////
// Constructor
///////////

    // @notice Constructor to create a DigiWillToken
       constructor() public {
        totalSupply = 2000000000 * 10**18;
        balances[msg.sender] = totalSupply;
        allowedToTransfer[msg.sender] = true;
		}


/////////////
// ERC20 Methods
/////////////

    // @notice Send `_amount` tokens to `_to` from `msg.sender`
    // @param _to The address of the recipient
    // @param _amount The amount of tokens to be transferred
    // @return Whether the transfer was successful or not
    function transfer(address _to, uint256 _amount) public returns (bool success) {
        doTransfer(msg.sender, _to, _amount);
        return true;
		}

    // @notice Send `_amount` tokens to `_to` from `_from` on the condition it
    //  is approved by `_from`
    // @param _from The address holding the tokens being transferred
    // @param _to The address of the recipient
    // @param _amount The amount of tokens to be transferred
    // @return True if the transfer was successful
    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) {
        // The standard ERC 20 transferFrom functionality
        require(allowed[_from][msg.sender] >= _amount);
        allowed[_from][msg.sender] -= _amount;
        doTransfer(_from, _to, _amount);
        return true;
		}

    // @dev This is the actual transfer function in the token contract, it can
    //  only be called by other functions in this contract.
    // @param _from The address holding the tokens being transferred
    // @param _to The address of the recipient
    // @param _amount The amount of tokens to be transferred
    // @return True if the transfer was successful
    function doTransfer(address _from, address _to, uint _amount) internal {
        // Do not allow transfer to 0x0 or the token contract itself
		
        require((_to != 0) && (_to != address(this)));
        require(_amount <= balances[_from]);
		require(enabledTokenTransfer == true || allowedToTransfer[_from] == true);
		
		require(!blockedAddress[_from] || blockedAddress[_from] == false);
		require(!blockedAddress[_to] || blockedAddress[_to] == false);

		balances[_from] = balances[_from].sub(_amount);
		balances[_to] = balances[_to].add(_amount);
		emit Transfer(_from, _to, _amount);
		}

    // @return The balance of `_owner`
    function balanceOf(address _owner) public constant returns (uint256 balance) {
        return balances[_owner];
		}
		
	 // @return The lock status of targetAddress
    function lockStatusOf(address targetAddress) public constant returns (bool state) {
        return blockedAddress[targetAddress];
		}
		
	// @return The transfer allowance of targetAddress
    function transferAllowanceOf(address targetAddress) public constant returns (bool state) {
        return allowedToTransfer[targetAddress];
		}

    // @notice `msg.sender` approves `_spender` to spend `_amount` tokens on
    //  its behalf. This is a modified version of the ERC20 approve function
    //  to be a little bit safer
    // @param _spender The address of the account able to transfer the tokens
    // @param _amount The amount of tokens to be approved for transfer
    // @return True if the approval was successful
    function approve(address _spender, uint256 _amount) public returns (bool success) {
        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender,0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require((_amount == 0) || (allowed[msg.sender][_spender] == 0));

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

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

    function burn(uint256 _value) public onlyOwner {
        require(balances[msg.sender] >= _value);
        balances[msg.sender] = balances[msg.sender].sub(_value);
        totalSupply = totalSupply.sub(_value);
		}

    /** @dev This function makes it easy to read the `allowed[]` map
    * @param _owner The address of the account that owns the token
    * @param _spender The address of the account able to transfer the tokens
    * @return Amount of remaining tokens of _owner that _spender is allowed
    *  to spend
	  */
    function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
		}

    // @dev This function makes it easy to get the total number of tokens
    // @return The total number of tokens
    function totalSupply() public constant returns (uint) {
        return totalSupply;
		}
	
	// @dev This function set the lock status
	function setTokenTransferLock(bool lockStatus) public onlyOwner {
		enabledTokenTransfer = lockStatus;
		}
		
	// @dev This function set an address to allow transfer tokens
	function setAddressTransferAllowance(address targetAddress, bool lockStatus) public onlyOwner {
		allowedToTransfer[targetAddress] = lockStatus;
		}
	
	// @dev This function block an address to receive and send tokens	
	function setAddressBlockState(address targetAddress, bool lockStatus) public onlyOwner {
		require(targetAddress != owner);
		blockedAddress[targetAddress] = lockStatus;
		}

    event Transfer(
        address indexed _from,
        address indexed _to,
        uint256 _amount
        );

    event Approval(
        address indexed _owner,
        address indexed _spender,
        uint256 _amount
        );

    event Burn(
        address indexed _burner,
        uint256 _amount
        );
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"targetAddress","type":"address"}],"name":"lockStatusOf","outputs":[{"name":"state","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"targetAddress","type":"address"}],"name":"transferAllowanceOf","outputs":[{"name":"state","type":"bool"}],"payable":false,"stateMutability":"view","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":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"targetAddress","type":"address"},{"name":"lockStatus","type":"bool"}],"name":"setAddressBlockState","outputs":[],"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":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"targetAddress","type":"address"},{"name":"lockStatus","type":"bool"}],"name":"setAddressTransferAllowance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"allowedToTransfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","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":"enabledTokenTransfer","outputs":[{"name":"","type":"bool"}],"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":"lockStatus","type":"bool"}],"name":"setTokenTransferLock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"blockedAddress","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_burner","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60c0604052600860808190527f4469676977696c6c00000000000000000000000000000000000000000000000060a090815261003e91600191906100f5565b506002805460ff191660121790556040805180820190915260038082527f4447570000000000000000000000000000000000000000000000000000000000602090920191825261008e91816100f5565b506005805460ff191690553480156100a557600080fd5b5060008054600160a060020a0319163390811782556b06765c793fa10079d0000000600481905590825260066020908152604080842092909255600890529020805460ff19166001179055610190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061013657805160ff1916838001178555610163565b82800160010185558215610163579182015b82811115610163578251825591602001919060010190610148565b5061016f929150610173565b5090565b61018d91905b8082111561016f5760008155600101610179565b90565b610d4a8061019f6000396000f3006080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c15780630fe09c1f146101f95780631082ec671461021a57806318160ddd1461023b57806323b872dd1461026257806327e235e31461028c5780632d816417146102ad578063313ce567146102d557806342966c68146103005780635c6581651461031857806370a082311461033f5780638da5cb5b1461036057806395d89b411461039157806397fa495e146103a6578063a9059cbb146103cc578063c51544c5146103f0578063cae9ca5114610411578063dd62ed3e1461047a578063f0da8eda146104a1578063f2fde38b146104b6578063f909174e146104d7578063fd4a772c146104f1575b600080fd5b34801561014357600080fd5b5061014c610512565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a036004351660243561059f565b604080519115158252519081900360200190f35b34801561020557600080fd5b506101e5600160a060020a0360043516610641565b34801561022657600080fd5b506101e5600160a060020a036004351661065f565b34801561024757600080fd5b5061025061067d565b60408051918252519081900360200190f35b34801561026e57600080fd5b506101e5600160a060020a0360043581169060243516604435610683565b34801561029857600080fd5b50610250600160a060020a03600435166106f2565b3480156102b957600080fd5b506102d3600160a060020a03600435166024351515610704565b005b3480156102e157600080fd5b506102ea610761565b6040805160ff9092168252519081900360200190f35b34801561030c57600080fd5b506102d360043561076a565b34801561032457600080fd5b50610250600160a060020a03600435811690602435166107e6565b34801561034b57600080fd5b50610250600160a060020a0360043516610803565b34801561036c57600080fd5b5061037561081e565b60408051600160a060020a039092168252519081900360200190f35b34801561039d57600080fd5b5061014c61082d565b3480156103b257600080fd5b506102d3600160a060020a03600435166024351515610888565b3480156103d857600080fd5b506101e5600160a060020a03600435166024356108ca565b3480156103fc57600080fd5b506101e5600160a060020a03600435166108e0565b34801561041d57600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101e5948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506108f59650505050505050565b34801561048657600080fd5b50610250600160a060020a0360043581169060243516610a0e565b3480156104ad57600080fd5b506101e5610a39565b3480156104c257600080fd5b506102d3600160a060020a0360043516610a42565b3480156104e357600080fd5b506102d36004351515610ad6565b3480156104fd57600080fd5b506101e5600160a060020a0360043516610b00565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105975780601f1061056c57610100808354040283529160200191610597565b820191906000526020600020905b81548152906001019060200180831161057a57829003601f168201915b505050505081565b60008115806105cf5750336000908152600760209081526040808320600160a060020a0387168452909152902054155b15156105da57600080fd5b336000818152600760209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600160a060020a031660009081526009602052604090205460ff1690565b600160a060020a031660009081526008602052604090205460ff1690565b60045490565b600160a060020a03831660009081526007602090815260408083203384529091528120548211156106b357600080fd5b600160a060020a03841660009081526007602090815260408083203384529091529020805483900390556106e8848484610b15565b5060019392505050565b60066020526000908152604090205481565b600054600160a060020a0316331461071b57600080fd5b600054600160a060020a038381169116141561073657600080fd5b600160a060020a03919091166000908152600960205260409020805460ff1916911515919091179055565b60025460ff1681565b600054600160a060020a0316331461078157600080fd5b3360009081526006602052604090205481111561079d57600080fd5b336000908152600660205260409020546107bd908263ffffffff610cf616565b336000908152600660205260409020556004546107e0908263ffffffff610cf616565b60045550565b600760209081526000928352604080842090915290825290205481565b600160a060020a031660009081526006602052604090205490565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105975780601f1061056c57610100808354040283529160200191610597565b600054600160a060020a0316331461089f57600080fd5b600160a060020a03919091166000908152600860205260409020805460ff1916911515919091179055565b60006108d7338484610b15565b50600192915050565b60086020526000908152604090205460ff1681565b600083610902818561059f565b15610a06576040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018790523060448401819052608060648501908152875160848601528751600160a060020a03871695638f4ffcb195948b94938b939192909160a490910190602085019080838360005b8381101561099a578181015183820152602001610982565b50505050905090810190601f1680156109c75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156109e957600080fd5b505af11580156109fd573d6000803e3d6000fd5b50505050600191505b509392505050565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b60055460ff1681565b600054600160a060020a03163314610a5957600080fd5b600160a060020a0381161515610a6e57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610aed57600080fd5b6005805460ff1916911515919091179055565b60096020526000908152604090205460ff1681565b600160a060020a03821615801590610b365750600160a060020a0382163014155b1515610b4157600080fd5b600160a060020a038316600090815260066020526040902054811115610b6657600080fd5b60055460ff16151560011480610b995750600160a060020a03831660009081526008602052604090205460ff1615156001145b1515610ba457600080fd5b600160a060020a03831660009081526009602052604090205460ff161580610be55750600160a060020a03831660009081526009602052604090205460ff16155b1515610bf057600080fd5b600160a060020a03821660009081526009602052604090205460ff161580610c315750600160a060020a03821660009081526009602052604090205460ff16155b1515610c3c57600080fd5b600160a060020a038316600090815260066020526040902054610c65908263ffffffff610cf616565b600160a060020a038085166000908152600660205260408082209390935590841681522054610c9a908263ffffffff610d0816565b600160a060020a0380841660008181526006602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610d0257fe5b50900390565b600082820183811015610d1757fe5b93925050505600a165627a7a7230582026a52f902789a7ffaf7fd40612bdb0d1a484868f1a4e83102fa4554417d3b97a0029

Deployed Bytecode

0x6080604052600436106101325763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610137578063095ea7b3146101c15780630fe09c1f146101f95780631082ec671461021a57806318160ddd1461023b57806323b872dd1461026257806327e235e31461028c5780632d816417146102ad578063313ce567146102d557806342966c68146103005780635c6581651461031857806370a082311461033f5780638da5cb5b1461036057806395d89b411461039157806397fa495e146103a6578063a9059cbb146103cc578063c51544c5146103f0578063cae9ca5114610411578063dd62ed3e1461047a578063f0da8eda146104a1578063f2fde38b146104b6578063f909174e146104d7578063fd4a772c146104f1575b600080fd5b34801561014357600080fd5b5061014c610512565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018657818101518382015260200161016e565b50505050905090810190601f1680156101b35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cd57600080fd5b506101e5600160a060020a036004351660243561059f565b604080519115158252519081900360200190f35b34801561020557600080fd5b506101e5600160a060020a0360043516610641565b34801561022657600080fd5b506101e5600160a060020a036004351661065f565b34801561024757600080fd5b5061025061067d565b60408051918252519081900360200190f35b34801561026e57600080fd5b506101e5600160a060020a0360043581169060243516604435610683565b34801561029857600080fd5b50610250600160a060020a03600435166106f2565b3480156102b957600080fd5b506102d3600160a060020a03600435166024351515610704565b005b3480156102e157600080fd5b506102ea610761565b6040805160ff9092168252519081900360200190f35b34801561030c57600080fd5b506102d360043561076a565b34801561032457600080fd5b50610250600160a060020a03600435811690602435166107e6565b34801561034b57600080fd5b50610250600160a060020a0360043516610803565b34801561036c57600080fd5b5061037561081e565b60408051600160a060020a039092168252519081900360200190f35b34801561039d57600080fd5b5061014c61082d565b3480156103b257600080fd5b506102d3600160a060020a03600435166024351515610888565b3480156103d857600080fd5b506101e5600160a060020a03600435166024356108ca565b3480156103fc57600080fd5b506101e5600160a060020a03600435166108e0565b34801561041d57600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526101e5948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506108f59650505050505050565b34801561048657600080fd5b50610250600160a060020a0360043581169060243516610a0e565b3480156104ad57600080fd5b506101e5610a39565b3480156104c257600080fd5b506102d3600160a060020a0360043516610a42565b3480156104e357600080fd5b506102d36004351515610ad6565b3480156104fd57600080fd5b506101e5600160a060020a0360043516610b00565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105975780601f1061056c57610100808354040283529160200191610597565b820191906000526020600020905b81548152906001019060200180831161057a57829003601f168201915b505050505081565b60008115806105cf5750336000908152600760209081526040808320600160a060020a0387168452909152902054155b15156105da57600080fd5b336000818152600760209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b600160a060020a031660009081526009602052604090205460ff1690565b600160a060020a031660009081526008602052604090205460ff1690565b60045490565b600160a060020a03831660009081526007602090815260408083203384529091528120548211156106b357600080fd5b600160a060020a03841660009081526007602090815260408083203384529091529020805483900390556106e8848484610b15565b5060019392505050565b60066020526000908152604090205481565b600054600160a060020a0316331461071b57600080fd5b600054600160a060020a038381169116141561073657600080fd5b600160a060020a03919091166000908152600960205260409020805460ff1916911515919091179055565b60025460ff1681565b600054600160a060020a0316331461078157600080fd5b3360009081526006602052604090205481111561079d57600080fd5b336000908152600660205260409020546107bd908263ffffffff610cf616565b336000908152600660205260409020556004546107e0908263ffffffff610cf616565b60045550565b600760209081526000928352604080842090915290825290205481565b600160a060020a031660009081526006602052604090205490565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105975780601f1061056c57610100808354040283529160200191610597565b600054600160a060020a0316331461089f57600080fd5b600160a060020a03919091166000908152600860205260409020805460ff1916911515919091179055565b60006108d7338484610b15565b50600192915050565b60086020526000908152604090205460ff1681565b600083610902818561059f565b15610a06576040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018790523060448401819052608060648501908152875160848601528751600160a060020a03871695638f4ffcb195948b94938b939192909160a490910190602085019080838360005b8381101561099a578181015183820152602001610982565b50505050905090810190601f1680156109c75780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156109e957600080fd5b505af11580156109fd573d6000803e3d6000fd5b50505050600191505b509392505050565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b60055460ff1681565b600054600160a060020a03163314610a5957600080fd5b600160a060020a0381161515610a6e57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314610aed57600080fd5b6005805460ff1916911515919091179055565b60096020526000908152604090205460ff1681565b600160a060020a03821615801590610b365750600160a060020a0382163014155b1515610b4157600080fd5b600160a060020a038316600090815260066020526040902054811115610b6657600080fd5b60055460ff16151560011480610b995750600160a060020a03831660009081526008602052604090205460ff1615156001145b1515610ba457600080fd5b600160a060020a03831660009081526009602052604090205460ff161580610be55750600160a060020a03831660009081526009602052604090205460ff16155b1515610bf057600080fd5b600160a060020a03821660009081526009602052604090205460ff161580610c315750600160a060020a03821660009081526009602052604090205460ff16155b1515610c3c57600080fd5b600160a060020a038316600090815260066020526040902054610c65908263ffffffff610cf616565b600160a060020a038085166000908152600660205260408082209390935590841681522054610c9a908263ffffffff610d0816565b600160a060020a0380841660008181526006602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610d0257fe5b50900390565b600082820183811015610d1757fe5b93925050505600a165627a7a7230582026a52f902789a7ffaf7fd40612bdb0d1a484868f1a4e83102fa4554417d3b97a0029

Deployed Bytecode Sourcemap

2197:6648:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2268:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2268:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2268:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6033:598;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6033:598:0;-1:-1:-1;;;;;6033:598:0;;;;;;;;;;;;;;;;;;;;;;;;;5289:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5289:135:0;-1:-1:-1;;;;;5289:135:0;;;;;5487:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5487:145:0;-1:-1:-1;;;;;5487:145:0;;;;;7783:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7783:89:0;;;;;;;;;;;;;;;;;;;;3745:331;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3745:331:0;-1:-1:-1;;;;;3745:331:0;;;;;;;;;;;;2450:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2450:44:0;-1:-1:-1;;;;;2450:44:0;;;;;8326:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8326:176:0;-1:-1:-1;;;;;8326:176:0;;;;;;;;;;;2306:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2306:26:0;;;;;;;;;;;;;;;;;;;;;;;6969:217;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6969:217:0;;;;;2501:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2501:64:0;-1:-1:-1;;;;;2501:64:0;;;;;;;;;;5115:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5115:117:0;-1:-1:-1;;;;;5115:117:0;;;;;54:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;54:20:0;;;;;;;;-1:-1:-1;;;;;54:20:0;;;;;;;;;;;;;;2339:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2339:28:0;;;;8101:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8101:150:0;-1:-1:-1;;;;;8101:150:0;;;;;;;;;3240:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3240:153:0;-1:-1:-1;;;;;3240:153:0;;;;;;;2572:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2572:50:0;-1:-1:-1;;;;;2572:50:0;;;;;6639:322;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6639:322:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6639:322:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6639:322:0;;-1:-1:-1;6639:322:0;;-1:-1:-1;;;;;;;6639:322:0;7511:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7511:146:0;-1:-1:-1;;;;;7511:146:0;;;;;;;;;;2401:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2401:40:0;;;;706:190;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;706:190:0;-1:-1:-1;;;;;706:190:0;;;;;7922:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7922:108:0;;;;;;;2626:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2626:47:0;-1:-1:-1;;;;;2626:47:0;;;;;2268:31;;;;;;;;;;;;;;;-1:-1:-1;;2268:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6033:598::-;6101:12;6442;;;6441:54;;-1:-1:-1;6468:10:0;6460:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6460:29:0;;;;;;;;;;:34;6441:54;6433:63;;;;;;;;6517:10;6509:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;6509:29:0;;;;;;;;;;;;:39;;;6564;;;;;;;6509:29;;6517:10;6564:39;;;;;;;;;;;-1:-1:-1;6621:4:0;6033:598;;;;:::o;5289:135::-;-1:-1:-1;;;;;5389:29:0;5359:10;5389:29;;;:14;:29;;;;;;;;;5289:135::o;5487:145::-;-1:-1:-1;;;;;5594:32:0;5564:10;5594:32;;;:17;:32;;;;;;;;;5487:145::o;7783:89::-;7855:11;;7783:89;:::o;3745:331::-;-1:-1:-1;;;;;3920:14:0;;3828:12;3920:14;;;:7;:14;;;;;;;;3935:10;3920:26;;;;;;;;:37;-1:-1:-1;3920:37:0;3912:46;;;;;;-1:-1:-1;;;;;3969:14:0;;;;;;:7;:14;;;;;;;;3984:10;3969:26;;;;;;;:37;;;;;;;4017:31;3977:5;4035:3;3999:7;4017:10;:31::i;:::-;-1:-1:-1;4066:4:0;3745:331;;;;;:::o;2450:44::-;;;;;;;;;;;;;:::o;8326:176::-;505:5;;-1:-1:-1;;;;;505:5:0;491:10;:19;483:28;;;;;;8443:5;;-1:-1:-1;;;;;8426:22:0;;;8443:5;;8426:22;;8418:31;;;;;;-1:-1:-1;;;;;8454:29:0;;;;;;;;:14;:29;;;;;:42;;-1:-1:-1;;8454:42:0;;;;;;;;;;8326:176::o;2306:26::-;;;;;;:::o;6969:217::-;505:5;;-1:-1:-1;;;;;505:5:0;491:10;:19;483:28;;;;;;7044:10;7035:20;;;;:8;:20;;;;;;:30;-1:-1:-1;7035:30:0;7027:39;;;;;;7109:10;7100:20;;;;:8;:20;;;;;;:32;;7125:6;7100:32;:24;:32;:::i;:::-;7086:10;7077:20;;;;:8;:20;;;;;:55;7157:11;;:23;;7173:6;7157:23;:15;:23;:::i;:::-;7143:11;:37;-1:-1:-1;6969:217:0:o;2501:64::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;5115:117::-;-1:-1:-1;;;;;5210:16:0;5175:15;5210:16;;;:8;:16;;;;;;;5115:117::o;54:20::-;;;-1:-1:-1;;;;;54:20:0;;:::o;2339:28::-;;;;;;;;;;;;;;;-1:-1:-1;;2339:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8101:150;505:5;;-1:-1:-1;;;;;505:5:0;491:10;:19;483:28;;;;;;-1:-1:-1;;;;;8200:32:0;;;;;;;;:17;:32;;;;;:45;;-1:-1:-1;;8200:45:0;;;;;;;;;;8101:150::o;3240:153::-;3304:12;3329:36;3340:10;3352:3;3357:7;3329:10;:36::i;:::-;-1:-1:-1;3383:4:0;3240:153;;;;:::o;2572:50::-;;;;;;;;;;;;;;;:::o;6639:322::-;6731:12;6796:8;6820:25;6796:8;6838:6;6820:7;:25::i;:::-;6816:140;;;6862:61;;;;;6886:10;6862:61;;;;;;;;;;;;6906:4;6862:61;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6862:23:0;;;;;6886:10;6898:6;;6906:4;6912:10;;6862:61;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6862:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6862:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6862:61:0;;;;6945:4;6938:11;;6816:140;6639:322;;;;;;:::o;7511:146::-;-1:-1:-1;;;;;7626:15:0;;;7589:17;7626:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;7511:146::o;2401:40::-;;;;;;:::o;706:190::-;505:5;;-1:-1:-1;;;;;505:5:0;491:10;:19;483:28;;;;;;-1:-1:-1;;;;;787:22:0;;;;779:31;;;;;;847:5;;;826:37;;-1:-1:-1;;;;;826:37:0;;;;847:5;;;826:37;;;874:5;:16;;-1:-1:-1;;874:16:0;-1:-1:-1;;;;;874:16:0;;;;;;;;;;706:190::o;7922:108::-;505:5;;-1:-1:-1;;;;;505:5:0;491:10;:19;483:28;;;;;;7991:20;:33;;-1:-1:-1;;7991:33:0;;;;;;;;;;7922:108::o;2626:47::-;;;;;;;;;;;;;;;:::o;4457:610::-;-1:-1:-1;;;;;4622:8:0;;;;;;4621:36;;-1:-1:-1;;;;;;4636:20:0;;4651:4;4636:20;;4621:36;4613:45;;;;;;;;-1:-1:-1;;;;;4688:15:0;;;;;;:8;:15;;;;;;4677:26;;;4669:35;;;;;;4717:20;;;;:28;;:20;:28;;:64;;-1:-1:-1;;;;;;4749:24:0;;;;;;:17;:24;;;;;;;;:32;;:24;:32;4717:64;4709:73;;;;;;;;-1:-1:-1;;;;;4800:21:0;;;;;;:14;:21;;;;;;;;4799:22;;:56;;-1:-1:-1;;;;;;4825:21:0;;;;;;:14;:21;;;;;;;;:30;4799:56;4791:65;;;;;;;;-1:-1:-1;;;;;4870:19:0;;;;;;:14;:19;;;;;;;;4869:20;;:52;;-1:-1:-1;;;;;;4893:19:0;;;;;;:14;:19;;;;;;;;:28;4869:52;4861:61;;;;;;;;-1:-1:-1;;;;;4947:15:0;;;;;;:8;:15;;;;;;:28;;4967:7;4947:28;:19;:28;:::i;:::-;-1:-1:-1;;;;;4929:15:0;;;;;;;:8;:15;;;;;;:46;;;;4996:13;;;;;;;:26;;5014:7;4996:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;4980:13:0;;;;;;;:8;:13;;;;;;;;;:42;;;;5032:29;;;;;;;4980:13;;5032:29;;;;;;;;;;;;;4457:610;;;:::o;1740:112::-;1798:7;1821:6;;;;1814:14;;;;-1:-1:-1;1842:5:0;;;1740:112::o;1919:132::-;1977:7;2005:5;;;2024:6;;;;2017:14;;;;2045:1;1919:132;-1:-1:-1;;;1919:132:0:o

Swarm Source

bzzr://26a52f902789a7ffaf7fd40612bdb0d1a484868f1a4e83102fa4554417d3b97a
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.