Wrapped Cryptopunks
About
Stats
Public Functions
29
Event Types
7
Code Size
57,871 bytes
Events (7) keyboard_arrow_up
Functions
paused keyboard_arrow_up
supportsInterface keyboard_arrow_up
balanceOf keyboard_arrow_up
Source Code
function balanceOf(address owner) public view returns (uint256) {
require(owner != address(0), "ERC721: balance query for the zero address");
return _ownedTokensCount[owner].current();
}
ownerOf keyboard_arrow_up
Source Code
function ownerOf(uint256 tokenId) public view returns (address) {
address owner = _tokenOwner[tokenId];
require(owner != address(0), "ERC721: owner query for nonexistent token");
return owner;
}
approve keyboard_arrow_up
Requirements help
Source Code
function approve(address to, uint256 tokenId) public {
address owner = ownerOf(tokenId);
require(to != owner, "ERC721: approval to current owner");
require(_msgSender() == owner || isApprovedForAll(owner, _msgSender()),
"ERC721: approve caller is not owner nor approved for all"
);
_tokenApprovals[tokenId] = to;
emit Approval(owner, to, tokenId);
}
getApproved keyboard_arrow_up
Requirements help
null
Source Code
function getApproved(uint256 tokenId) public view returns (address) {
require(_exists(tokenId), "ERC721: approved query for nonexistent token");
return _tokenApprovals[tokenId];
}
setApprovalForAll keyboard_arrow_up
Source Code
function setApprovalForAll(address to, bool approved) public {
address msgSender = _msgSender();
require(to != msgSender, "ERC721: approve to caller");
_operatorApprovals[msgSender][to] = approved;
emit ApprovalForAll(msgSender, to, approved);
}
isApprovedForAll keyboard_arrow_up
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(address from, address to, uint256 tokenId) public {
// solhint-disable-next-line max-line-length
require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");
_transferFrom(from, to, tokenId);
}
safeTransferFrom keyboard_arrow_up
Requirements help
Source Code
function safeTransferFrom(address from, address to, uint256 tokenId) public {
safeTransferFrom(from, to, tokenId, "");
}
safeTransferFrom keyboard_arrow_up
Requirements help
Source Code
function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public {
require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved");
_safeTransferFrom(from, to, tokenId, _data);
}
name keyboard_arrow_up
symbol keyboard_arrow_up
tokenURI keyboard_arrow_up
Requirements help
null
Source Code
function tokenURI(uint256 tokenId) public view returns (string memory) {
require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");
string memory _tokenURI = _tokenURIs[tokenId];
// If there is no base URI, return the token URI.
if (bytes(_baseURI).length == 0) {
return _tokenURI;
}
// If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).
if (bytes(_tokenURI).length > 0) {
return string(abi.encodePacked(_baseURI, _tokenURI));
}
// If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.
return string(abi.encodePacked(_baseURI, tokenId.fromUint256()));
}
baseURI keyboard_arrow_up
tokenOfOwnerByIndex keyboard_arrow_up
Source Code
function tokenOfOwnerByIndex(address owner, uint256 index) public view returns (uint256) {
require(index < balanceOf(owner), "ERC721Enumerable: owner index out of bounds");
return _ownedTokens[owner][index];
}
totalSupply keyboard_arrow_up
tokenByIndex keyboard_arrow_up
Requirements help
Source Code
function tokenByIndex(uint256 index) public view returns (uint256) {
require(index < totalSupply(), "ERC721Enumerable: global index out of bounds");
return _allTokens[index];
}
owner keyboard_arrow_up
renounceOwnership keyboard_arrow_up
transferOwnership keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
punkContract keyboard_arrow_up
setBaseURI keyboard_arrow_up
Modifiers help
onlyOwner checks for the following:
Source Code
function setBaseURI(string memory baseUri)
public
onlyOwner
{
_setBaseURI(baseUri);
}
pause keyboard_arrow_up
unpause keyboard_arrow_up
registerProxy keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function registerProxy()
public
{
address sender = _msgSender();
require(_proxies[sender] == address(0), "PunkWrapper: caller has registered the proxy");
address proxy = address(new UserProxy());
_proxies[sender] = proxy;
emit ProxyRegistered(sender, proxy);
}
proxyInfo keyboard_arrow_up
mint keyboard_arrow_up
Requirements help
Source Code
function mint(uint256 punkIndex)
public
whenNotPaused
{
address sender = _msgSender();
UserProxy proxy = UserProxy(_proxies[sender]);
require(proxy.transfer(address(_punkContract), punkIndex), "PunkWrapper: transfer fail");
_mint(sender, punkIndex);
}
burn keyboard_arrow_up
Source Code
function burn(uint256 punkIndex)
public
whenNotPaused
{
address sender = _msgSender();
require(_isApprovedOrOwner(sender, punkIndex), "PunkWrapper: caller is not owner nor approved");
_burn(punkIndex);
// Transfers ownership of punk on original cryptopunk smart contract to caller
_punkContract.transferPunk(sender, punkIndex);
}