Como criar um contrato inteligente de NFT utilizando Solidity
O código fonte do NFT (non-fungible token) em Solidity pode variar de acordo com a implementação desejada. No entanto, uma implementação básica de um contrato NFT em Solidity pode incluir as seguintes diretivas e funções:
Copy code
pragma solidity ^0.6.0;
contract NFT {
// Definindo a estrutura de um token NFT
struct Token {
uint256 id; // ID único do token
address owner; // Endereço do proprietário do token
string metadata; // Metadados adicionais do token
}
// Armazenando a lista de tokens NFT criados
Token[] public tokens;
// Criando um novo token NFT
function createToken(string memory _metadata) public {
// Gerando um ID único para o token
uint256 id = tokens.length + 1;
// Armazenando o endereço do proprietário do contrato como o proprietário do token
address owner = msg.sender;
// Criando o novo token e adicionando-o à lista de tokens existentes
tokens.push(Token(id, owner, _metadata));
}
// Transferindo um token NFT para outro endereço
function transferToken(uint256 _tokenId, address _to) public {
// Recuperando o token a ser transferido
Token storage token = tokens[_tokenId];
// Verificando se o endereço solicitante é o proprietário atual do token
require(msg.sender == token.owner, "O endereço solicitante não é o proprietário do token");
// Atualizando o proprietário do token
token.owner = _to;
}
// Consultando as informações de um token NFT
function getToken(uint256 _tokenId) public view returns (uint256, address, string memory) {
// Recuperando o token solicitado
Token storage token = tokens[_tokenId];
// Retornando as informações do token
return (token.id, token.owner, token.metadata);
}
}
Esse é apenas um exemplo básico de como implementar um contrato NFT em Solidity. É importante lembrar que essa implementação pode ser aprimorada e adaptada de acordo com as necessidades específicas do projeto.