Executando verificação de segurança...
0

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.

Carregando publicação patrocinada...