ETH Price: $3,465.62 (-0.14%)

Token

 

Overview

Max Total Supply

45

Holders

30

Total Transfers

-

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A

Other Info

Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Vyper_contract

Compiler Version
vyper:0.3.6

Optimization Enabled:
N/A

Other Settings:
default evmVersion, Apache-2.0 license

Contract Source Code (Vyper language format)

# @version 0.3.6

# @dev Implementation of ERC-721 Enumerable  standard
# @author Volume Finance

from vyper.interfaces import ERC165
from vyper.interfaces import ERC721

implements: ERC721
implements: ERC165

# Interface for the contract called by safeTransferFrom()
interface ERC721Receiver:
    def onERC721Received(
            _operator: address,
            _from: address,
            _tokenId: uint256,
            _data: Bytes[1024]
        ) -> bytes4: view


# @dev Emits when ownership of any NFT changes by any mechanism. This event emits when NFTs are
#      created (`from` == 0) and destroyed (`to` == 0). Exception: during contract creation, any
#      number of NFTs may be created and assigned without emitting Transfer. At the time of any
#      transfer, the approved address for that NFT (if any) is reset to none.
# @param _from Sender of NFT (if address is zero address it indicates token creation).
# @param _to Receiver of NFT (if address is zero address it indicates token destruction).
# @param _tokenId The NFT that got transfered.
event Transfer:
    _from: indexed(address)
    _to: indexed(address)
    _tokenId: indexed(uint256)

# @dev This emits when the approved address for an NFT is changed or reaffirmed. The zero
#      address indicates there is no approved address. When a Transfer event emits, this also
#      indicates that the approved address for that NFT (if any) is reset to none.
# @param _owner Owner of NFT.
# @param _approved Address that we are approving.
# @param _tokenId NFT which we are approving.
event Approval:
    _owner: indexed(address)
    _approved: indexed(address)
    _tokenId: indexed(uint256)

# @dev This emits when an operator is enabled or disabled for an owner. The operator can manage
#      all NFTs of the owner.
# @param _owner Owner of NFT.
# @param _operator Address to which we are setting operator rights.
# @param _approved Status of operator rights(true if operator rights are given and false if
# revoked).
event ApprovalForAll:
    _owner: indexed(address)
    _operator: indexed(address)
    _approved: bool

event Minted:
    eth_address: indexed(address)
    paloma_address: indexed(String[64])
    token_id: indexed(uint256)

event SetMinter:
    new_minter: indexed(address)
    old_minter: indexed(address)

# @dev Mapping from NFT ID to the address that owns it.
id_to_owner: HashMap[uint256, address]

# @dev Mapping from NFT ID to approved address.
id_to_approvals: HashMap[uint256, address]

# @dev Mapping from owner address to count of his tokens.
owner_to_token_count: HashMap[address, uint256]

# @dev Mapping from owner address to mapping of operator addresses.
owner_to_operators: HashMap[address, HashMap[address, bool]]

owned_tokens_index: HashMap[uint256, uint256]

owned_tokens: HashMap[address, HashMap[uint256, uint256]]

all_tokens: HashMap[uint256, uint256]

totalSupply: public(uint256)

# @dev Address of minter, who can mint a token
minter: public(address)

BASE_URL: constant(String[38]) = "https://eggs.palomachain.com/metadata/"

# @dev Static list of supported ERC165 interface ids
SUPPORTED_INTERFACES: constant(bytes4[4]) = [
    # ERC165 interface ID of ERC165
    0x01ffc9a7,
    # ERC165 interface ID of ERC721
    0x80ac58cd,
    # ERC165 interface ID of ERC721Metadata
    0x5b5e139f,
    # ERC165 interface ID of ERC721Enumerable
    0x780e9d63
]

@external
def __init__(_minter: address):
    """
    @dev Contract constructor.
    """
    self.minter = _minter
    log SetMinter(_minter, empty(address))

@external
@pure
def name() -> String[15]:
    return "Paloma Egg Hunt"


@external
@pure
def symbol() -> String[3]:
    return "PEH"


@external
@pure
def supportsInterface(interface_id: bytes4) -> bool:
    """
    @dev Interface identification is specified in ERC-165.
    @param interface_id Id of the interface
    """
    return interface_id in SUPPORTED_INTERFACES


### VIEW FUNCTIONS ###

@external
@view
def balanceOf(_owner: address) -> uint256:
    """
    @dev Returns the number of NFTs owned by `_owner`.
         Throws if `_owner` is the zero address. NFTs assigned to the zero address are considered invalid.
    @param _owner Address for whom to query the balance.
    """
    assert _owner != empty(address)
    return self.owner_to_token_count[_owner]


@external
@view
def ownerOf(_tokenId: uint256) -> address:
    """
    @dev Returns the address of the owner of the NFT.
         Throws if `_tokenId` is not a valid NFT.
    @param _tokenId The identifier for an NFT.
    """
    owner: address = self.id_to_owner[_tokenId]
    # Throws if `_tokenId` is not a valid NFT
    assert owner != empty(address)
    return owner


@external
@view
def getApproved(_tokenId: uint256) -> address:
    """
    @dev Get the approved address for a single NFT.
         Throws if `_tokenId` is not a valid NFT.
    @param _tokenId ID of the NFT to query the approval of.
    """
    # Throws if `_tokenId` is not a valid NFT
    assert self.id_to_owner[_tokenId] != empty(address)
    return self.id_to_approvals[_tokenId]


@external
@view
def isApprovedForAll(_owner: address, _operator: address) -> bool:
    """
    @dev Checks if `_operator` is an approved operator for `_owner`.
    @param _owner The address that owns the NFTs.
    @param _operator The address that acts on behalf of the owner.
    """
    return (self.owner_to_operators[_owner])[_operator]


### TRANSFER FUNCTION HELPERS ###

@internal
@view
def is_approved_or_owner(_spender: address, _tokenId: uint256) -> bool:
    """
    @dev Returns whether the given spender can transfer a given token ID
    @param spender address of the spender to query
    @param tokenId uint256 ID of the token to be transferred
    @return bool whether the msg.sender is approved for the given token ID,
        is an operator of the owner, or is the owner of the token
    """
    owner: address = self.id_to_owner[_tokenId]
    spenderIsOwner: bool = owner == _spender
    spenderIsApproved: bool = _spender == self.id_to_approvals[_tokenId]
    spenderIsApprovedForAll: bool = (self.owner_to_operators[owner])[_spender]
    return (spenderIsOwner or spenderIsApproved) or spenderIsApprovedForAll


@internal
def add_token_to(_to: address, _tokenId: uint256):
    """
    @dev Add a NFT to a given address
         Throws if `_tokenId` is owned by someone.
    """
    # Throws if `_tokenId` is owned by someone
    assert self.id_to_owner[_tokenId] == empty(address)
    # Change the owner
    self.id_to_owner[_tokenId] = _to
    # Change count tracking
    length: uint256 = self.owner_to_token_count[_to]

    self.owned_tokens[_to][length] = _tokenId
    self.owned_tokens_index[_tokenId] = length

    self.owner_to_token_count[_to] = length + 1


@internal
def remove_token_from(_from: address, _tokenId: uint256):
    """
    @dev Remove a NFT from a given address
         Throws if `_from` is not the current owner.
    """
    # Throws if `_from` is not the current owner
    assert self.id_to_owner[_tokenId] == _from
    # Change the owner
    self.id_to_owner[_tokenId] = empty(address)
    # Change count tracking

    last_token_index: uint256 = self.owner_to_token_count[_from] - 1
    token_index: uint256 = self.owned_tokens_index[_tokenId]
    if token_index != last_token_index:
        last_token_id: uint256 = self.owned_tokens[_from][last_token_index]
        self.owned_tokens[_from][token_index] = last_token_id
        self.owned_tokens_index[last_token_id] = token_index
    self.owned_tokens_index[_tokenId] = 0
    self.owned_tokens[_from][last_token_index] = 0

    self.owner_to_token_count[_from] = last_token_index


@internal
def clear_approval(_owner: address, _tokenId: uint256):
    """
    @dev Clear an approval of a given address
         Throws if `_owner` is not the current owner.
    """
    # Throws if `_owner` is not the current owner
    assert self.id_to_owner[_tokenId] == _owner
    if self.id_to_approvals[_tokenId] != empty(address):
        # Reset approvals
        self.id_to_approvals[_tokenId] = empty(address)


@internal
def transfer_from(_from: address, _to: address, _tokenId: uint256, _sender: address):
    """
    @dev Exeute transfer of a NFT.
         Throws unless `msg.sender` is the current owner, an authorized operator, or the approved
         address for this NFT. (NOTE: `msg.sender` not allowed in private function so pass `_sender`.)
         Throws if `_to` is the zero address.
         Throws if `_from` is not the current owner.
         Throws if `_tokenId` is not a valid NFT.
    """
    # Check requirements
    assert self.is_approved_or_owner(_sender, _tokenId)
    # Throws if `_to` is the zero address
    assert _to != empty(address)
    # Clear approval. Throws if `_from` is not the current owner
    self.clear_approval(_from, _tokenId)
    # Remove NFT. Throws if `_tokenId` is not a valid NFT
    self.remove_token_from(_from, _tokenId)
    # Add NFT
    self.add_token_to(_to, _tokenId)
    # Log the transfer
    log Transfer(_from, _to, _tokenId)


### TRANSFER FUNCTIONS ###

@external
def transferFrom(_from: address, _to: address, _tokenId: uint256):
    """
    @dev Throws unless `msg.sender` is the current owner, an authorized operator, or the approved
         address for this NFT.
         Throws if `_from` is not the current owner.
         Throws if `_to` is the zero address.
         Throws if `_tokenId` is not a valid NFT.
    @notice The caller is responsible to confirm that `_to` is capable of receiving NFTs or else
            they maybe be permanently lost.
    @param _from The current owner of the NFT.
    @param _to The new owner.
    @param _tokenId The NFT to transfer.
    """
    self.transfer_from(_from, _to, _tokenId, msg.sender)


@external
def safeTransferFrom(
        _from: address,
        _to: address,
        _tokenId: uint256,
        _data: Bytes[1024]=b""
    ):
    """
    @dev Transfers the ownership of an NFT from one address to another address.
         Throws unless `msg.sender` is the current owner, an authorized operator, or the
         approved address for this NFT.
         Throws if `_from` is not the current owner.
         Throws if `_to` is the zero address.
         Throws if `_tokenId` is not a valid NFT.
         If `_to` is a smart contract, it calls `onERC721Received` on `_to` and throws if
         the return value is not `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`.
    @param _from The current owner of the NFT.
    @param _to The new owner.
    @param _tokenId The NFT to transfer.
    @param _data Additional data with no specified format, sent in call to `_to`.
    """
    self.transfer_from(_from, _to, _tokenId, msg.sender)
    if _to.is_contract: # check if `_to` is a contract address
        returnValue: bytes4 = ERC721Receiver(_to).onERC721Received(msg.sender, _from, _tokenId, _data)
        # Throws if transfer destination is a contract which does not implement 'onERC721Received'
        assert returnValue == convert(method_id("onERC721Received(address,address,uint256,bytes)"), bytes4)


@external
def approve(_approved: address, _tokenId: uint256):
    """
    @dev Set or reaffirm the approved address for an NFT. The zero address indicates there is no approved address.
         Throws unless `msg.sender` is the current NFT owner, or an authorized operator of the current owner.
         Throws if `_tokenId` is not a valid NFT. (NOTE: This is not written the EIP)
         Throws if `_approved` is the current owner. (NOTE: This is not written the EIP)
    @param _approved Address to be approved for the given NFT ID.
    @param _tokenId ID of the token to be approved.
    """
    owner: address = self.id_to_owner[_tokenId]
    # Throws if `_tokenId` is not a valid NFT
    assert owner != empty(address)
    # Throws if `_approved` is the current owner
    assert _approved != owner
    # Check requirements
    senderIsOwner: bool = self.id_to_owner[_tokenId] == msg.sender
    senderIsApprovedForAll: bool = (self.owner_to_operators[owner])[msg.sender]
    assert (senderIsOwner or senderIsApprovedForAll)
    # Set the approval
    self.id_to_approvals[_tokenId] = _approved
    log Approval(owner, _approved, _tokenId)


@external
def setApprovalForAll(_operator: address, _approved: bool):
    """
    @dev Enables or disables approval for a third party ("operator") to manage all of
         `msg.sender`'s assets. It also emits the ApprovalForAll event.
         Throws if `_operator` is the `msg.sender`. (NOTE: This is not written the EIP)
    @notice This works even if sender doesn't own any tokens at the time.
    @param _operator Address to add to the set of authorized operators.
    @param _approved True if the operators is approved, false to revoke approval.
    """
    # Throws if `_operator` is the `msg.sender`
    assert _operator != msg.sender
    self.owner_to_operators[msg.sender][_operator] = _approved
    log ApprovalForAll(msg.sender, _operator, _approved)


### MINT FUNCTION ###
@external
def mint(_to: address, _paloma_address: String[64]) -> bool:
    """
    @dev Function to mint tokens
         Throws if `msg.sender` is not the minter.
         Throws if `_to` is zero address.
    @param _to The address that will receive the minted tokens.
    @return A boolean that indicates if the operation was successful.
    """
    # Throws if `msg.sender` is not the minter
    assert msg.sender == self.minter
    # Throws if `_to` is zero address
    assert _to != empty(address)
    # Add NFT. Throws if `_tokenId` is owned by someone
    total_supply: uint256 = self.totalSupply
    self.add_token_to(_to, total_supply)
    self.all_tokens[total_supply] = total_supply
    self.totalSupply = total_supply + 1

    log Transfer(empty(address), _to, total_supply)
    log Minted(_to, _paloma_address, total_supply)
    return True


@external
def set_minter(_minter: address):
    assert msg.sender == self.minter
    self.minter = _minter
    log SetMinter(_minter, msg.sender)


@external
@pure
def tokenURI(tokenId: uint256) -> String[116]:
    return concat(BASE_URL, uint2str(tokenId))

### ERC721Enumerable FUNCTION ###
@external
@view
def tokenOfOwnerByIndex(owner: address, index: uint256) -> uint256:
    assert index < self.owner_to_token_count[owner]
    return self.owned_tokens[owner][index]

@external
@view
def tokenByIndex(index: uint256) -> uint256:
    assert index < self.totalSupply
    return self.all_tokens[index]

Contract Security Audit

Contract ABI

[{"name":"Transfer","inputs":[{"name":"_from","type":"address","indexed":true},{"name":"_to","type":"address","indexed":true},{"name":"_tokenId","type":"uint256","indexed":true}],"anonymous":false,"type":"event"},{"name":"Approval","inputs":[{"name":"_owner","type":"address","indexed":true},{"name":"_approved","type":"address","indexed":true},{"name":"_tokenId","type":"uint256","indexed":true}],"anonymous":false,"type":"event"},{"name":"ApprovalForAll","inputs":[{"name":"_owner","type":"address","indexed":true},{"name":"_operator","type":"address","indexed":true},{"name":"_approved","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"name":"Minted","inputs":[{"name":"eth_address","type":"address","indexed":true},{"name":"paloma_address","type":"string","indexed":true},{"name":"token_id","type":"uint256","indexed":true}],"anonymous":false,"type":"event"},{"name":"SetMinter","inputs":[{"name":"new_minter","type":"address","indexed":true},{"name":"old_minter","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_minter","type":"address"}],"outputs":[]},{"stateMutability":"pure","type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"pure","type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"pure","type":"function","name":"supportsInterface","inputs":[{"name":"interface_id","type":"bytes4"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"balanceOf","inputs":[{"name":"_owner","type":"address"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"ownerOf","inputs":[{"name":"_tokenId","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"getApproved","inputs":[{"name":"_tokenId","type":"uint256"}],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"isApprovedForAll","inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"transferFrom","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom","inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_data","type":"bytes"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"approve","inputs":[{"name":"_approved","type":"address"},{"name":"_tokenId","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll","inputs":[{"name":"_operator","type":"address"},{"name":"_approved","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"mint","inputs":[{"name":"_to","type":"address"},{"name":"_paloma_address","type":"string"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"set_minter","inputs":[{"name":"_minter","type":"address"}],"outputs":[]},{"stateMutability":"pure","type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256"}],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"tokenOfOwnerByIndex","inputs":[{"name":"owner","type":"address"},{"name":"index","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"tokenByIndex","inputs":[{"name":"index","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"minter","inputs":[],"outputs":[{"name":"","type":"address"}]}]

6020610db26000396000518060a01c610dad5760405234610dad5760405160085560006040517fe490d3138e32f1f66ef3971a3c73c7f7704ba0c1d1000f1e2c3df6fc0376610b60006060a3610d4f61005d61000039610d4f610000f36003361161000c57610a1e565b60003560e01c34610d3d576306fdde03811861009f5760043618610d3d57602080608052600f6040527f50616c6f6d61204567672048756e74000000000000000000000000000000000060605260408160800181518082526020830160208301815181525050508051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506080f35b6395d89b4181186101275760043618610d3d5760208060805260036040527f504548000000000000000000000000000000000000000000000000000000000060605260408160800181518082526020830160208301815181525050508051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506080f35b6301ffc9a781186102055760243618610d3d576004358060201b610d3d576040526040517f01ffc9a70000000000000000000000000000000000000000000000000000000081186101795760016101fa565b7f80ac58cd0000000000000000000000000000000000000000000000000000000081186101a75760016101fa565b7f5b5e139f0000000000000000000000000000000000000000000000000000000081186101d55760016101fa565b7f780e9d63000000000000000000000000000000000000000000000000000000008118155b905060805260206080f35b6370a0823181186102485760243618610d3d576004358060a01c610d3d5760405260405115610d3d57600260405160205260005260406000205460605260206060f35b636352211e811861027d5760243618610d3d57600060043560205260005260406000205460405260405115610d3d5760206040f35b63081812fc81186102c05760243618610d3d57600060043560205260005260406000205415610d3d57600160043560205260005260406000205460405260206040f35b63e985e9c5811861031a5760443618610d3d576004358060a01c610d3d576040526024358060a01c610d3d576060526003604051602052600052604060002080606051602052600052604060002090505460805260206080f35b6323b872dd81186103715760643618610d3d576004358060a01c610d3d576101a0526024358060a01c610d3d576101c0526101a051610100526101c0516101205260443561014052336101605261036f610c9b565b005b6342842e0e811861039b5760643618610d3d576000610600526106008051806101e05250506103d3565b63b88d4fde81186105185760a43610610d3d57606435600401610400813511610d3d578035806101e052602082018181610200375050505b6004358060a01c610d3d576101a0526024358060a01c610d3d576101c0526101a051610100526101c05161012052604435610140523361016052610415610c9b565b6101c0513b15610516576101c05163150b7a0261064052608033610660526101a051610680526044356106a052806106c05280610660016101e0518082526020820181818361020060045afa5050508051806020830101601f82600003163682375050601f19601f8251602001011690508101505060206106406104a461065c845afa6104a7573d600060003e3d6000fd5b60203d10610d3d57610640518060201b610d3d57610b0052610b00905051610620526004610640527f150b7a020000000000000000000000000000000000000000000000000000000061066052610640805160200360031b6020820151811c811b905090506106205118610d3d575b005b63095ea7b381186105f55760443618610d3d576004358060a01c610d3d57604052600060243560205260005260406000205460605260605115610d3d5760605160405114610d3d5733600060243560205260005260406000205414608052600360605160205260005260406000208033602052600052604060002090505460a0526080516105a85760a0516105ab565b60015b15610d3d5760405160016024356020526000526040600020556024356040516060517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600060c0a4005b63a22cb46581186106825760443618610d3d576004358060a01c610d3d576040526024358060011c610d3d576060523360405114610d3d576060516003336020526000526040600020806040516020526000526040600020905055604051337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160605160805260206080a3005b63d0def521811861078c5760643610610d3d576004358060a01c610d3d5760a0526024356004016040813511610d3d5780358060c05260208201818160e0375050506008543318610d3d5760a05115610d3d576007546101205260a051604052610120516060526106f1610aa5565b610120516006610120516020526000526040600020556101205160018101818110610d3d5790506007556101205160a05160007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000610140a46101205160c05160e02060a0517fe678c8da3d2d6082f140bbbaa1ee822f0c7072ab604536db4a3e0315f8a927766000610140a46001610140526020610140f35b631652e9fc81186107e85760243618610d3d576004358060a01c610d3d576040526008543318610d3d57604051600855336040517fe490d3138e32f1f66ef3971a3c73c7f7704ba0c1d1000f1e2c3df6fc0376610b60006060a3005b63c87b56dd811861093f5760243618610d3d576020806101c052600060266040527f68747470733a2f2f656767732e70616c6f6d61636861696e2e636f6d2f6d65746060527f61646174612f0000000000000000000000000000000000000000000000000000608052604080516020820183610140018281848460045afa505050808301925050506004358061088957603060a152600160a05260a06108cb565b6000604f905b826108a957808160ee03528060ee0392506108c7566108bc565b600a83066030018160ee0352600a830492505b60010181811861088f575b5050805b905080516020820183610140018281848460045afa5050508083019250505080610120526101209050816101c001815180825260208301602083018281848460045afa505050508051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506101c0f35b632f745c5981186109a55760443618610d3d576004358060a01c610d3d5760405260026040516020526000526040600020546024351015610d3d576005604051602052600052604060002080602435602052600052604060002090505460605260206060f35b634f6ccce781186109de5760243618610d3d576007546004351015610d3d57600660043560205260005260406000205460405260206040f35b6318160ddd81186109fd5760043618610d3d5760075460405260206040f35b63075461728118610a1c5760043618610d3d5760085460405260206040f35b505b60006000fd5b60006060516020526000526040600020546080526040516080511460a05260016060516020526000526040600020546040511460c0526003608051602052600052604060002080604051602052600052604060002090505460e05260a051610a8e5760c051610a91565b60015b610a9d5760e051610aa0565b60015b815250565b6000606051602052600052604060002054610d3d576040516000606051602052600052604060002055600260405160205260005260406000205460805260605160056040516020526000526040600020806080516020526000526040600020905055608051600460605160205260005260406000205560805160018101818110610d3d5790506002604051602052600052604060002055565b604051600060605160205260005260406000205418610d3d5760006000606051602052600052604060002055600260405160205260005260406000205460018103818111610d3d579050608052600460605160205260005260406000205460a05260805160a05114610c09576005604051602052600052604060002080608051602052600052604060002090505460c05260c051600560405160205260005260406000208060a051602052600052604060002090505560a051600460c0516020526000526040600020555b600060046060516020526000526040600020556000600560405160205260005260406000208060805160205260005260406000209050556080516002604051602052600052604060002055565b604051600060605160205260005260406000205418610d3d57600160605160205260005260406000205415610c9957600060016060516020526000526040600020555b565b6101605160405261014051606052610cb4610180610a24565b6101805115610d3d576101205115610d3d576101005160405261014051606052610cdc610c56565b6101005160405261014051606052610cf2610b3e565b6101205160405261014051606052610d08610aa5565b6101405161012051610100517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000610180a4565b600080fda165767970657283000306000b005b600080fd0000000000000000000000006d727250bd150a9dc006b65b6c7a0d817b02bb2e

Deployed Bytecode

0x6003361161000c57610a1e565b60003560e01c34610d3d576306fdde03811861009f5760043618610d3d57602080608052600f6040527f50616c6f6d61204567672048756e74000000000000000000000000000000000060605260408160800181518082526020830160208301815181525050508051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506080f35b6395d89b4181186101275760043618610d3d5760208060805260036040527f504548000000000000000000000000000000000000000000000000000000000060605260408160800181518082526020830160208301815181525050508051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506080f35b6301ffc9a781186102055760243618610d3d576004358060201b610d3d576040526040517f01ffc9a70000000000000000000000000000000000000000000000000000000081186101795760016101fa565b7f80ac58cd0000000000000000000000000000000000000000000000000000000081186101a75760016101fa565b7f5b5e139f0000000000000000000000000000000000000000000000000000000081186101d55760016101fa565b7f780e9d63000000000000000000000000000000000000000000000000000000008118155b905060805260206080f35b6370a0823181186102485760243618610d3d576004358060a01c610d3d5760405260405115610d3d57600260405160205260005260406000205460605260206060f35b636352211e811861027d5760243618610d3d57600060043560205260005260406000205460405260405115610d3d5760206040f35b63081812fc81186102c05760243618610d3d57600060043560205260005260406000205415610d3d57600160043560205260005260406000205460405260206040f35b63e985e9c5811861031a5760443618610d3d576004358060a01c610d3d576040526024358060a01c610d3d576060526003604051602052600052604060002080606051602052600052604060002090505460805260206080f35b6323b872dd81186103715760643618610d3d576004358060a01c610d3d576101a0526024358060a01c610d3d576101c0526101a051610100526101c0516101205260443561014052336101605261036f610c9b565b005b6342842e0e811861039b5760643618610d3d576000610600526106008051806101e05250506103d3565b63b88d4fde81186105185760a43610610d3d57606435600401610400813511610d3d578035806101e052602082018181610200375050505b6004358060a01c610d3d576101a0526024358060a01c610d3d576101c0526101a051610100526101c05161012052604435610140523361016052610415610c9b565b6101c0513b15610516576101c05163150b7a0261064052608033610660526101a051610680526044356106a052806106c05280610660016101e0518082526020820181818361020060045afa5050508051806020830101601f82600003163682375050601f19601f8251602001011690508101505060206106406104a461065c845afa6104a7573d600060003e3d6000fd5b60203d10610d3d57610640518060201b610d3d57610b0052610b00905051610620526004610640527f150b7a020000000000000000000000000000000000000000000000000000000061066052610640805160200360031b6020820151811c811b905090506106205118610d3d575b005b63095ea7b381186105f55760443618610d3d576004358060a01c610d3d57604052600060243560205260005260406000205460605260605115610d3d5760605160405114610d3d5733600060243560205260005260406000205414608052600360605160205260005260406000208033602052600052604060002090505460a0526080516105a85760a0516105ab565b60015b15610d3d5760405160016024356020526000526040600020556024356040516060517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600060c0a4005b63a22cb46581186106825760443618610d3d576004358060a01c610d3d576040526024358060011c610d3d576060523360405114610d3d576060516003336020526000526040600020806040516020526000526040600020905055604051337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160605160805260206080a3005b63d0def521811861078c5760643610610d3d576004358060a01c610d3d5760a0526024356004016040813511610d3d5780358060c05260208201818160e0375050506008543318610d3d5760a05115610d3d576007546101205260a051604052610120516060526106f1610aa5565b610120516006610120516020526000526040600020556101205160018101818110610d3d5790506007556101205160a05160007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000610140a46101205160c05160e02060a0517fe678c8da3d2d6082f140bbbaa1ee822f0c7072ab604536db4a3e0315f8a927766000610140a46001610140526020610140f35b631652e9fc81186107e85760243618610d3d576004358060a01c610d3d576040526008543318610d3d57604051600855336040517fe490d3138e32f1f66ef3971a3c73c7f7704ba0c1d1000f1e2c3df6fc0376610b60006060a3005b63c87b56dd811861093f5760243618610d3d576020806101c052600060266040527f68747470733a2f2f656767732e70616c6f6d61636861696e2e636f6d2f6d65746060527f61646174612f0000000000000000000000000000000000000000000000000000608052604080516020820183610140018281848460045afa505050808301925050506004358061088957603060a152600160a05260a06108cb565b6000604f905b826108a957808160ee03528060ee0392506108c7566108bc565b600a83066030018160ee0352600a830492505b60010181811861088f575b5050805b905080516020820183610140018281848460045afa5050508083019250505080610120526101209050816101c001815180825260208301602083018281848460045afa505050508051806020830101601f82600003163682375050601f19601f8251602001011690509050810190506101c0f35b632f745c5981186109a55760443618610d3d576004358060a01c610d3d5760405260026040516020526000526040600020546024351015610d3d576005604051602052600052604060002080602435602052600052604060002090505460605260206060f35b634f6ccce781186109de5760243618610d3d576007546004351015610d3d57600660043560205260005260406000205460405260206040f35b6318160ddd81186109fd5760043618610d3d5760075460405260206040f35b63075461728118610a1c5760043618610d3d5760085460405260206040f35b505b60006000fd5b60006060516020526000526040600020546080526040516080511460a05260016060516020526000526040600020546040511460c0526003608051602052600052604060002080604051602052600052604060002090505460e05260a051610a8e5760c051610a91565b60015b610a9d5760e051610aa0565b60015b815250565b6000606051602052600052604060002054610d3d576040516000606051602052600052604060002055600260405160205260005260406000205460805260605160056040516020526000526040600020806080516020526000526040600020905055608051600460605160205260005260406000205560805160018101818110610d3d5790506002604051602052600052604060002055565b604051600060605160205260005260406000205418610d3d5760006000606051602052600052604060002055600260405160205260005260406000205460018103818111610d3d579050608052600460605160205260005260406000205460a05260805160a05114610c09576005604051602052600052604060002080608051602052600052604060002090505460c05260c051600560405160205260005260406000208060a051602052600052604060002090505560a051600460c0516020526000526040600020555b600060046060516020526000526040600020556000600560405160205260005260406000208060805160205260005260406000209050556080516002604051602052600052604060002055565b604051600060605160205260005260406000205418610d3d57600160605160205260005260406000205415610c9957600060016060516020526000526040600020555b565b6101605160405261014051606052610cb4610180610a24565b6101805115610d3d576101205115610d3d576101005160405261014051606052610cdc610c56565b6101005160405261014051606052610cf2610b3e565b6101205160405261014051606052610d08610aa5565b6101405161012051610100517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000610180a4565b600080fda165767970657283000306000b

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

0000000000000000000000006d727250bd150a9dc006b65b6c7a0d817b02bb2e

-----Decoded View---------------
Arg [0] : _minter (address): 0x6D727250bd150A9dC006b65b6C7a0D817B02bB2e

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006d727250bd150a9dc006b65b6c7a0d817b02bb2e


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.