Address Contract Verified
Address
0x551C9fdF1eE7468cc5a1EFF341AE228D3A245EB2
Balance
0 ETH
Nonce
1
Code Size
6305 bytes
Creator
0x27c579aa...5aB7 at tx 0xe2699428...a2c626
Indexed Transactions
0
Contract Bytecode
6305 bytes
0x608060405260043610610113575f3560e01c80636352211e1161009f578063b88d4fde11610063578063b88d4fde1461038e578063c87b56dd146103ad578063d9b6225e146103cc578063dd1c35bc146103eb578063e985e9c5146103fe57610113565b80636352211e146102d457806370a082311461030857806395d89b411461033c578063a0712d6814610350578063a22cb4651461036f57610113565b8063095ea7b3116100e6578063095ea7b31461024057806323b872dd1461025f5780633ccfd60b1461027e57806342842e0e146102925780634e70b1dc146102b157610113565b806301ffc9a71461019357806306394c9b146101c757806306fdde03146101e8578063081812fc14610209575b34801561011e575f80fd5b50600554600160a01b900460ff16156101525760405162461bcd60e51b8152600401610149906112e2565b60405180910390fd5b6005805460ff60a01b1916600160a01b17905560405162461bcd60e51b81526020600482015260036024820152624e6f2160e81b6044820152606401610149565b34801561019e575f80fd5b506101b26101ad366004611320565b610445565b60405190151581526020015b60405180910390f35b3480156101d2575f80fd5b506101e66101e1366004611356565b61047b565b005b3480156101f3575f80fd5b506101fc6104c7565b6040516101be919061136f565b348015610214575f80fd5b506102286102233660046113bb565b610552565b6040516001600160a01b0390911681526020016101be565b34801561024b575f80fd5b506101b261025a3660046113d2565b6105ed565b34801561026a575f80fd5b506101b26102793660046113fa565b6106fd565b348015610289575f80fd5b506101e6610840565b34801561029d575f80fd5b506101b26102ac3660046113fa565b6108e7565b3480156102bc575f80fd5b506102c660025481565b6040519081526020016101be565b3480156102df575f80fd5b506102286102ee3660046113bb565b5f908152600760205260409020546001600160a01b031690565b348015610313575f80fd5b506102c6610322366004611356565b6001600160a01b03165f9081526006602052604090205490565b348015610347575f80fd5b506101fc610b57565b34801561035b575f80fd5b506101e661036a3660046113bb565b610b64565b34801561037a575f80fd5b506101b2610389366004611433565b610c85565b348015610399575f80fd5b506101b26103a83660046114b1565b610daf565b3480156103b8575f80fd5b506101fc6103c73660046113bb565b611020565b3480156103d7575f80fd5b506101e66103e636600461151b565b6110b2565b6101e66103f93660046113bb565b6110ee565b348015610409575f80fd5b506101b261041836600461155a565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205460ff1690565b5f6001600160e01b031982166380ac58cd60e01b148061047557506001600160e01b031982166301ffc9a760e01b145b92915050565b6004546001600160a01b031633146104a55760405162461bcd60e51b81526004016101499061158b565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b5f80546104d3906115c2565b80601f01602080910402602001604051908101604052809291908181526020018280546104ff906115c2565b801561054a5780601f106105215761010080835404028352916020019161054a565b820191905f5260205f20905b81548152906001019060200180831161052d57829003601f168201915b505050505081565b5f808211801561056457506002548211155b6105805760405162461bcd60e51b8152600401610149906115fa565b5f828152600760205260409020546001600160a01b03166105d25760405162461bcd60e51b815260206004820152600c60248201526b426c61636b20686f6c65642160a01b6044820152606401610149565b505f908152600860205260409020546001600160a01b031690565b5f80821180156105ff57506002548211155b61061b5760405162461bcd60e51b8152600401610149906115fa565b5f828152600760205260409020546001600160a01b031633811461069d576001600160a01b0381165f90815260096020908152604080832033845290915290205460ff16151560011461069d575f838152600860205260409020546001600160a01b0316331461069d5760405162461bcd60e51b815260040161014990611631565b5f8381526008602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45060019392505050565b6005545f90600160a01b900460ff16156107295760405162461bcd60e51b8152600401610149906112e2565b6005805460ff60a01b1916600160a01b179055838383801580159061075057506002548111155b61076c5760405162461bcd60e51b8152600401610149906115fa565b5f818152600760205260409020546001600160a01b0390811690841681146107a65760405162461bcd60e51b815260040161014990611656565b336001600160a01b0382161461081a576001600160a01b0381165f90815260096020908152604080832033845290915290205460ff16151560011461081a575f828152600860205260409020546001600160a01b0316331461081a5760405162461bcd60e51b815260040161014990611631565b6108258888886111c8565b50506005805460ff60a01b1916905550600195945050505050565b6004546001600160a01b0316331461086a5760405162461bcd60e51b81526004016101499061158b565b5f47116108ae5760405162461bcd60e51b81526020600482015260126024820152714e6f2045544820746f20776974686472617760701b6044820152606401610149565b6004546040516001600160a01b03909116904780156108fc02915f818181858888f193505050501580156108e4573d5f803e3d5ffd5b50565b6005545f90600160a01b900460ff16156109135760405162461bcd60e51b8152600401610149906112e2565b6005805460ff60a01b1916600160a01b179055826001600160a01b03811661096f5760405162461bcd60e51b815260206004820152600f60248201526e41646472657373206973207a65726f60881b6044820152606401610149565b8484845f8111801561098357506002548111155b61099f5760405162461bcd60e51b8152600401610149906115fa565b5f818152600760205260409020546001600160a01b0390811690841681146109d95760405162461bcd60e51b815260040161014990611656565b336001600160a01b03821614610a4d576001600160a01b0381165f90815260096020908152604080832033845290915290205460ff161515600114610a4d575f828152600860205260409020546001600160a01b03163314610a4d5760405162461bcd60e51b815260040161014990611631565b6001600160a01b0388163b1580610af25750604051630a85bd0160e11b8082523360048301526001600160a01b038b81166024840152604483018a9052608060648401525f60848401529091908a169063150b7a029060a4016020604051808303815f875af1158015610ac2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae6919061167f565b6001600160e01b031916145b610b305760405162461bcd60e51b815260206004820152600f60248201526e526563697069656e7420697373756560881b6044820152606401610149565b610b3b8989896111c8565b50506005805460ff60a01b191690555060019695505050505050565b600180546104d3906115c2565b600554600160a01b900460ff1615610b8e5760405162461bcd60e51b8152600401610149906112e2565b6005805460ff60a01b1916600160a01b179055600454336001600160a01b0390911614610bcd5760405162461bcd60e51b81526004016101499061158b565b5f5b81811015610c3457600554600280546001600160a01b03909216916007915f918290610bfa906116ae565b9182905550815260208101919091526040015f2080546001600160a01b0319166001600160a01b0392909216919091179055600101610bcf565b506005546001600160a01b03165f90815260066020526040902054610c5990826112a2565b600580546001600160a01b03165f90815260066020526040902091909155805460ff60a01b1916905550565b5f6001600160a01b038316610cd25760405162461bcd60e51b81526020600482015260136024820152724e6f2064656c61676174696e6720746f20302160681b6044820152606401610149565b811515600103610d0e57335f9081526009602090815260408083206001600160a01b03871684529091529020805460ff19166001179055610d64565b335f9081526009602090815260408083206001600160a01b038716845290915290205460ff1615610d6457335f9081526009602090815260408083206001600160a01b03871684529091529020805460ff191690555b60405182151581526001600160a01b0384169033907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319060200160405180910390a350600192915050565b6005545f90600160a01b900460ff1615610ddb5760405162461bcd60e51b8152600401610149906112e2565b6005805460ff60a01b1916600160a01b179055846001600160a01b038116610e375760405162461bcd60e51b815260206004820152600f60248201526e41646472657373206973207a65726f60881b6044820152606401610149565b8686865f81118015610e4b57506002548111155b610e675760405162461bcd60e51b8152600401610149906115fa565b5f818152600760205260409020546001600160a01b039081169084168114610ea15760405162461bcd60e51b815260040161014990611656565b336001600160a01b03821614610f15576001600160a01b0381165f90815260096020908152604080832033845290915290205460ff161515600114610f15575f828152600860205260409020546001600160a01b03163314610f155760405162461bcd60e51b815260040161014990611631565b6001600160a01b038a163b1580610fb9575063150b7a0260e01b6001600160e01b0319168a6001600160a01b031663150b7a02338e8d8d8d6040518663ffffffff1660e01b8152600401610f6d9594939291906116c6565b6020604051808303815f875af1158015610f89573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fad919061167f565b6001600160e01b031916145b610ff75760405162461bcd60e51b815260206004820152600f60248201526e526563697069656e7420697373756560881b6044820152606401610149565b6110028b8b8b6111c8565b50506005805460ff60a01b1916905550600198975050505050505050565b60606003805461102f906115c2565b80601f016020809104026020016040519081016040528092919081815260200182805461105b906115c2565b80156110a65780601f1061107d576101008083540402835291602001916110a6565b820191905f5260205f20905b81548152906001019060200180831161108957829003601f168201915b50505050509050919050565b6004546001600160a01b031633146110dc5760405162461bcd60e51b81526004016101499061158b565b60036110e9828483611777565b505050565b600554600160a01b900460ff16156111185760405162461bcd60e51b8152600401610149906112e2565b6005805460ff60a01b1916600160a01b1790555f81815260076020526040902054339082906001600160a01b0316821461119e5760405162461bcd60e51b815260206004820152602160248201527f53656e646572206973206e6f74207468697320746f6b656e2773206f776e65726044820152602160f81b6064820152608401610149565b6004546111b69033906001600160a01b0316856111c8565b50506005805460ff60a01b1916905550565b6001600160a01b0383165f908152600660205260409020546111eb9060016112c7565b6001600160a01b038085165f90815260066020526040808220939093559084168152205461121a9060016112a2565b6001600160a01b038381165f818152600660209081526040808320959095558582526007815284822080546001600160a01b03199081168517909155600882529185902080549092169091559251600181529092918616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b5f806112ae8385611831565b9050838110156112c0576112c0611844565b9392505050565b5f828211156112d8576112d8611844565b6112c08284611858565b6020808252600f908201526e4e6f2072652d656e7472616e63792160881b604082015260600190565b6001600160e01b0319811681146108e4575f80fd5b5f60208284031215611330575f80fd5b81356112c08161130b565b80356001600160a01b0381168114611351575f80fd5b919050565b5f60208284031215611366575f80fd5b6112c08261133b565b5f602080835283518060208501525f5b8181101561139b5785810183015185820160400152820161137f565b505f604082860101526040601f19601f8301168501019250505092915050565b5f602082840312156113cb575f80fd5b5035919050565b5f80604083850312156113e3575f80fd5b6113ec8361133b565b946020939093013593505050565b5f805f6060848603121561140c575f80fd5b6114158461133b565b92506114236020850161133b565b9150604084013590509250925092565b5f8060408385031215611444575f80fd5b61144d8361133b565b915060208301358015158114611461575f80fd5b809150509250929050565b5f8083601f84011261147c575f80fd5b50813567ffffffffffffffff811115611493575f80fd5b6020830191508360208285010111156114aa575f80fd5b9250929050565b5f805f805f608086880312156114c5575f80fd5b6114ce8661133b565b94506114dc6020870161133b565b935060408601359250606086013567ffffffffffffffff8111156114fe575f80fd5b61150a8882890161146c565b969995985093965092949392505050565b5f806020838503121561152c575f80fd5b823567ffffffffffffffff811115611542575f80fd5b61154e8582860161146c565b90969095509350505050565b5f806040838503121561156b575f80fd5b6115748361133b565b91506115826020840161133b565b90509250929050565b6020808252601b908201527f4f6e6c7920746865206f776e65722063616e20646f2074686973210000000000604082015260600190565b600181811c908216806115d657607f821691505b6020821081036115f457634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526018908201527f546f6b656e20696e646578206f7574206f662072616e67650000000000000000604082015260600190565b6020808252600b908201526a139bc8185c1c1c9bdd985b60aa1b604082015260600190565b6020808252600f908201526e24b731b7b93932b1ba1037bbb732b960891b604082015260600190565b5f6020828403121561168f575f80fd5b81516112c08161130b565b634e487b7160e01b5f52601160045260245ffd5b5f600182016116bf576116bf61169a565b5060010190565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290525f828460a08401375f60a0848401015260a0601f19601f85011683010190509695505050505050565b634e487b7160e01b5f52604160045260245ffd5b601f8211156110e957805f5260205f20601f840160051c810160208510156117515750805b601f840160051c820191505b81811015611770575f815560010161175d565b5050505050565b67ffffffffffffffff83111561178f5761178f611718565b6117a38361179d83546115c2565b8361172c565b5f601f8411600181146117d4575f85156117bd5750838201355b5f19600387901b1c1916600186901b178355611770565b5f83815260208120601f198716915b8281101561180357868501358255602094850194600190920191016117e3565b508682101561181f575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b808201808211156104755761047561169a565b634e487b7160e01b5f52600160045260245ffd5b818103818111156104755761047561169a56fea26469706673582212200f31f2ea81ef4488f738e61721cc678fb7eec23e231f95956ccb133584d2443164736f6c63430008180033
Verified Source Code Full Match
Compiler: v0.8.24+commit.e11b9ed9
EVM: shanghai
Optimization: Yes (200 runs)
INcard.sol 227 lines
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.20;
import "./IERC721.sol";
import "./IERC165.sol";
contract INbusinesscard is IERC721, IERC721Metadata, IERC165 {
using SafeMath for uint256;
string public name;
string public symbol;
uint256 public num;
string uri;
address private inAddr;
address private opAddr;
bool private lock;
mapping(address => uint) balances;
mapping(uint256 => address) owners;
mapping(uint256 => address) approvals;
mapping(address => mapping(address => bool)) allApprovals;
//event Log(string message);
//event ContractDestroyed(string message);
constructor() {
inAddr = 0x27c579aa6E1835f448616728a0eF1a86275b5aB7; // nompelis.eth
opAddr = 0xAC557bBf7C4A729Bc27CAf1aD7c4b4289acaeF92;
lock = false;
name = "Ioannis Nompelis";
symbol = "INETH";
uri = "http://nobelware.com/~nompelis/ethereum_card.json";
num = 0;
}
// decorators to guard against bad behaviour
modifier guardReentrancy() {
require(lock == false,"No re-entrancy!");
lock = true;
_;
lock = false;
//emit Log("UNLOCKED");
}
modifier isOwner() {
require(msg.sender == inAddr,"Only the owner can do this!");
//emit Log("ISMYSELF Passed");
_;
}
modifier isOperator() {
require(msg.sender == opAddr,"Only the operator can do this!");
//emit Log("OPERATORSHIP Passed");
_;
}
modifier isTokenOwner(address addr, uint256 tokenId) {
require(addr == owners[tokenId],"Sender is not this token's owner!");
//emit Log("OWNERSHIP Passed");
_;
}
modifier addressSafety(address addr) {
require(addr != address(0),"Address is zero");
//emit Log("ADDRESS SAFETY Passed");
_;
}
modifier validityCheck(address fromAddr, address toAddr, uint256 tokenId) {
require(tokenId > 0 && tokenId <= num,"Token index out of range");
address tokenOwner = owners[tokenId];
require(tokenOwner == fromAddr,"Incorrect owner");
if(msg.sender != tokenOwner ) {
if(allApprovals[tokenOwner][msg.sender] != true) {
require(approvals[tokenId] == msg.sender,"No approval");
}
}
//emit Log("VALIDITY CHECK Passed");
_;
}
// method of IERC-165
function supportsInterface(bytes4 interfaceId) external pure returns (bool) {
return interfaceId == type(IERC721).interfaceId ||
interfaceId == type(IERC165).interfaceId;
}
// getter for the ERC token metadata URI
function tokenURI(uint256 tokenId) external view returns (string memory) {
return uri;
}
// getters of ERC-721
function balanceOf(address owner) external override view returns (uint256) {
return balances[owner];
}
function ownerOf(uint256 tokenID) external override view returns (address) {
return owners[tokenID];
}
function isApprovedForAll(address ownerAddr, address approvedAddr) external view returns (bool) {
return allApprovals[ownerAddr][approvedAddr];
}
function getApproved(uint256 tokenId) external view returns (address) {
require(tokenId > 0 && tokenId <= num,"Token index out of range");
require(owners[tokenId] != address(0), "Black holed!");
return approvals[tokenId];
}
// transfers and approvals (of ERC-721)
function safeTransferFrom(address fromAddr, address toAddr, uint256 tokenId) external override
guardReentrancy()
addressSafety(toAddr)
validityCheck(fromAddr,toAddr,tokenId) returns (bool) {
require(toAddr.code.length == 0 ||
IERC721Receiver(toAddr).onERC721Received(msg.sender,fromAddr,tokenId,"") ==
IERC721Receiver.onERC721Received.selector,
"Recipient issue");
insideTransfer(fromAddr,toAddr,tokenId);
return true;
}
function safeTransferFrom(address fromAddr, address toAddr, uint256 tokenId, bytes calldata data) external override
guardReentrancy()
addressSafety(toAddr)
validityCheck(fromAddr,toAddr,tokenId) returns (bool) {
require(toAddr.code.length == 0 ||
IERC721Receiver(toAddr).onERC721Received(msg.sender,fromAddr,tokenId,data) ==
IERC721Receiver.onERC721Received.selector,
"Recipient issue");
insideTransfer(fromAddr,toAddr,tokenId);
return true;
}
function transferFrom(address fromAddr, address toAddr, uint256 tokenId) external override
guardReentrancy()
validityCheck(fromAddr,toAddr,tokenId) returns (bool) {
insideTransfer(fromAddr,toAddr,tokenId);
return true;
}
function approve(address approvedAddr, uint256 tokenId) external override returns (bool) {
require(tokenId > 0 && tokenId <= num,"Token index out of range");
address tokenOwner = owners[tokenId];
if(msg.sender != tokenOwner ) {
if(allApprovals[tokenOwner][msg.sender] != true) {
require(approvals[tokenId] == msg.sender,"No approval");
}
}
approvals[tokenId] = approvedAddr;
emit Approval(tokenOwner, approvedAddr, tokenId);
return true;
}
function setApprovalForAll(address approvedAddr, bool _approved) external returns (bool) {
require(approvedAddr != address(0),"No delagating to 0!");
if(_approved == true) {
allApprovals[msg.sender][approvedAddr] = true;
} else {
if(allApprovals[msg.sender][approvedAddr] ) delete allApprovals[msg.sender][approvedAddr];
}
emit ApprovalForAll(msg.sender, approvedAddr, _approved);
return true;
}
// functions to manage this contract
function changeOperator(address newAddr) external virtual isOwner() {
// require(newAddr != address(0),"Invalid address"); // not going to fuck this up myself
opAddr = newAddr;
}
function changeMetadata(string calldata metadata) external virtual isOwner() {
uri = metadata;
}
function withdraw() external virtual isOwner() { // just in case
require(address(this).balance > 0, "No ETH to withdraw");
payable(inAddr).transfer(address(this).balance);
}
// functions to create and recycle tokens
function mint(uint256 numTokens) external virtual
guardReentrancy() isOwner() {
for (uint i = 0; i < numTokens; i++) {
owners[++num] = opAddr;
}
balances[opAddr] = balances[opAddr].addSafe(numTokens);
//emit Transfer(address(0), opAddr, numTokens);
}
function recycle(uint256 tokenId) external payable virtual
guardReentrancy() isTokenOwner(msg.sender,tokenId) {
insideTransfer(msg.sender,inAddr,tokenId);
}
// function destroyContract(address payable recipient) public isOwner() {
// emit ContractDestroyed("Contract has been destroyed.");
// selfdestruct(recipient);
// }
function insideTransfer(address fromAddr, address toAddr, uint256 tokenId) private {
balances[fromAddr] = balances[fromAddr].subSafe(1);
balances[toAddr] = balances[toAddr].addSafe(1);
owners[tokenId] = toAddr;
delete approvals[tokenId];
emit Transfer(fromAddr, toAddr, 1);
}
fallback() external guardReentrancy() {
revert("No!");
}
}
library SafeMath {
function subSafe( uint256 a, uint256 b ) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
function addSafe( uint256 a, uint256 b ) internal pure returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
IERC165.sol 8 lines
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.20;
// ERC-165 allows for detection of methods in smart contracts
// (Seeks 4 bytes of a Keccack hash of the method's name to exist.)
interface IERC165 {
function supportsInterface(bytes4 interfaceID) external view returns (bool);
}
IERC721.sol 57 lines
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.20;
// ERC-721 interface built with information from here:
// https://eips.ethereum.org/EIPS/eip-721
// Only the methods needed must be present here so that "type()" can work properly, or...
// .. we use this: 0x80ac58cd.
interface IERC721 {
// return the number of tokens owned by account
function balanceOf(address owner) external view returns (uint256);
// return owner's address for specific token
function ownerOf(uint256 tokenId) external view returns (address);
// transfers token while checking from/to addresses being non-zero
// (token must be owned by"from" and Tx sender must be "from" or authorized)
function safeTransferFrom(address fromAddr, address toAddr, uint256 tokenID) external returns (bool);
// same as safe transfer with no addr!=zero checks
function transferFrom(address fromAddr, address toAddr, uint256 tokenID) external returns (bool);
// stores an approval for "operatorAddr" to be able to send "tokenID" to anyone
function approve(address operatorAddr, uint256 tokenID) external returns (bool);
// returns the address that is approved to send a tokenID (a pressumed "operatorAddr")
function getApproved(uint256 tokenID) external view returns (address);
// function that sets approval for all tokens owned by an address to be maanged by an operator
function setApprovalForAll(address operatorAddr, bool _approved) external returns (bool);
// function that checks if an operator is approved for managing all tokens
function isApprovedForAll(address ownerAddr, address operatorAddr) external view returns (bool);
// function similar to safe-transfer with a payload added
function safeTransferFrom(address fromAddr, address toAddr, uint256 tokenId, bytes calldata data) external returns (bool);
event Transfer(address indexed fromAddr, address indexed toAddr, uint256 tokenID);
event Approval(address indexed ownerAddr, address indexed operatorAddr, uint256 indexed tokeID);
event ApprovalForAll(address indexed ownerAddr, address indexed operatorAddr, bool approved);
}
// This is needed for the "safeTransfer" methods (a type-cast is done)
interface IERC721Receiver {
function onERC721Received(
address operatorAddr,
address fromAddr,
uint256 tokenId,
bytes calldata data
) external returns (bytes4);
}
// Only the methods needed must be present here so that "type()" can work properly, or...
// .. we use this: 0x5b5e139f. No query of this type is expected. The token I am building
// has automatic getters for the name and the symbol.
interface IERC721Metadata {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
// @notice A distinct Uniform Resource Identifier (URI) for a given asset.
// @dev Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC
// 3986. The URI may point to a JSON file that conforms to the "ERC721
// Metadata JSON Schema".
function tokenURI(uint256 _tokenId) external view returns (string memory);
}
Read Contract
balanceOf 0x70a08231 → uint256
getApproved 0x081812fc → address
isApprovedForAll 0xe985e9c5 → bool
name 0x06fdde03 → string
num 0x4e70b1dc → uint256
ownerOf 0x6352211e → address
supportsInterface 0x01ffc9a7 → bool
symbol 0x95d89b41 → string
tokenURI 0xc87b56dd → string
Write Contract 10 functions
These functions modify contract state and require a wallet transaction to execute.
approve 0x095ea7b3
address approvedAddr
uint256 tokenId
returns: bool
changeMetadata 0xd9b6225e
string metadata
changeOperator 0x06394c9b
address newAddr
mint 0xa0712d68
uint256 numTokens
recycle 0xdd1c35bc
uint256 tokenId
safeTransferFrom 0x42842e0e
address fromAddr
address toAddr
uint256 tokenId
returns: bool
safeTransferFrom 0xb88d4fde
address fromAddr
address toAddr
uint256 tokenId
bytes data
returns: bool
setApprovalForAll 0xa22cb465
address approvedAddr
bool _approved
returns: bool
transferFrom 0x23b872dd
address fromAddr
address toAddr
uint256 tokenId
returns: bool
withdraw 0x3ccfd60b
No parameters
Recent Transactions
No transactions found for this address