Construir uma plataforma de negociação NFT de Descentralização a partir do zero
Neste artigo, vamos explorar como implementar uma plataforma de negociação descentralizada de NFT baseada em contratos inteligentes. Ao contrário dos tokens ERC-20 que são negociados através de mecanismos de market maker automático, as transações de NFT geralmente adotam um modelo de livro de ordens. Vamos implementar a funcionalidade de negociação descentralizada de NFT através da escrita de contratos inteligentes e de uma página front-end simples.
Características das transações de NFT
NFT( token não fungível ) segue o protocolo ERC-721, cada token é único. Devido à não fungibilidade do NFT, não é possível definir preços através de curvas de preço como com tokens fungíveis. Atualmente, a forma predominante de negociação de NFTs adota um modelo de livro de ordens, semelhante à exibição de produtos nas prateleiras de um supermercado.
As transações em livro de ordens têm principalmente dois modos:
Ordem de Preço: o vendedor define o preço, o comprador pode comprar se achar apropriado.
Ordem de Compra: O comprador envia uma ordem de compra, o vendedor pode vender se achar o preço adequado.
Este artigo irá focar na implementação do modelo de ordens de preços.
Funções principais da plataforma NFT
Uma plataforma básica de negociação de NFT deve ter as seguintes funcionalidades:
Produtos em estoque: permite que os vendedores definam preços para listar NFTs
Comprar produtos: permite que os compradores comprem NFT ao preço definido
Cobrança de taxa: a taxa de transação é cobrada proporcionalmente ao preço de negociação.
Implementação de Contratos Inteligentes
Os nossos contratos inteligentes precisam implementar os seguintes métodos chave:
1. Listar NFT
O vendedor chama este método para listar o NFT para venda:
solidity
function listNFT(address nftAddress, uint256 tokenId, uint256 price) public {
// Verificar a propriedade do NFT
// Adicionar registro de listagem
// Acionar evento de listagem
}
2. Comprar NFT
O comprador chama este método para comprar o NFT já listado:
solidity
function purchaseNFT(address nftAddress, uint256 tokenId) public payable {
// Obter informações sobre a listagem de NFT
// Calcular e deduzir a taxa de serviço
// Transferir NFT para o comprador
// Transferir para o vendedor
// Disparar evento de compra
}
3. Cancelar listagem
O vendedor pode cancelar o NFT já listado:
solidez
function cancelListing(address nftAddress, uint256 tokenId) public {
// Verificar permissões do chamador
// Marcar o estado de listagem como inválido
// Disparar evento de cancelamento
}
4. Taxa de retirada
Os proprietários da plataforma podem retirar as taxas acumuladas:
solidity
função withdrawFees() pública onlyOwner {
// Transferir a taxa de contrato para o endereço especificado
}
Desenvolvimento Front-end
A página da interface principal contém as seguintes partes:
Conectar carteira: usar Ant Design Web3 para implementar a funcionalidade de conexão de carteira
Página de Mint: utilizada para a mintagem de NFTs de teste
Página de Portfólio: exibe os NFTs que o usuário possui, suportando operações de listagem e deslistagem.
Página de Compra: Exibe todos os NFTs à venda, suportando a operação de compra.
Nós usamos Next.js para desenvolver o front-end e implantá-lo na plataforma Vercel.
Através dos passos acima, conseguimos implementar uma plataforma de negociação NFT com funcionalidades básicas e descentralização. Este simples Demo demonstra a lógica central das transações NFT, estabelecendo a base para o desenvolvimento de um sistema de negociação NFT mais complexo.
É importante notar que este artigo é apenas para fins de estudo e referência; as plataformas de negociação de NFT em ambientes de produção real precisam considerar mais fatores, como segurança e escalabilidade.
Ver original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
8 gostos
Recompensa
8
4
Partilhar
Comentar
0/400
faded_wojak.eth
· 07-11 21:31
Abrindo aviãoing este tutorial me leva Até à lua
Ver originalResponder0
TeaTimeTrader
· 07-09 09:42
Brincar primeiro e depois falar, pode ser que acabe a perder até as calças.
Ver originalResponder0
MetadataExplorer
· 07-09 09:33
Isso não é apenas uma versão simplificada do sistema operacional, hã?
Construindo uma plataforma de negociação descentralizada NFT do zero: explicação detalhada sobre contratos inteligentes e implementação do front-end
Construir uma plataforma de negociação NFT de Descentralização a partir do zero
Neste artigo, vamos explorar como implementar uma plataforma de negociação descentralizada de NFT baseada em contratos inteligentes. Ao contrário dos tokens ERC-20 que são negociados através de mecanismos de market maker automático, as transações de NFT geralmente adotam um modelo de livro de ordens. Vamos implementar a funcionalidade de negociação descentralizada de NFT através da escrita de contratos inteligentes e de uma página front-end simples.
Características das transações de NFT
NFT( token não fungível ) segue o protocolo ERC-721, cada token é único. Devido à não fungibilidade do NFT, não é possível definir preços através de curvas de preço como com tokens fungíveis. Atualmente, a forma predominante de negociação de NFTs adota um modelo de livro de ordens, semelhante à exibição de produtos nas prateleiras de um supermercado.
As transações em livro de ordens têm principalmente dois modos:
Este artigo irá focar na implementação do modelo de ordens de preços.
Funções principais da plataforma NFT
Uma plataforma básica de negociação de NFT deve ter as seguintes funcionalidades:
Implementação de Contratos Inteligentes
Os nossos contratos inteligentes precisam implementar os seguintes métodos chave:
1. Listar NFT
O vendedor chama este método para listar o NFT para venda:
solidity function listNFT(address nftAddress, uint256 tokenId, uint256 price) public { // Verificar a propriedade do NFT // Adicionar registro de listagem
// Acionar evento de listagem }
2. Comprar NFT
O comprador chama este método para comprar o NFT já listado:
solidity function purchaseNFT(address nftAddress, uint256 tokenId) public payable { // Obter informações sobre a listagem de NFT // Calcular e deduzir a taxa de serviço // Transferir NFT para o comprador // Transferir para o vendedor // Disparar evento de compra
}
3. Cancelar listagem
O vendedor pode cancelar o NFT já listado:
solidez function cancelListing(address nftAddress, uint256 tokenId) public { // Verificar permissões do chamador // Marcar o estado de listagem como inválido // Disparar evento de cancelamento }
4. Taxa de retirada
Os proprietários da plataforma podem retirar as taxas acumuladas:
solidity função withdrawFees() pública onlyOwner { // Transferir a taxa de contrato para o endereço especificado }
Desenvolvimento Front-end
A página da interface principal contém as seguintes partes:
Conectar carteira: usar Ant Design Web3 para implementar a funcionalidade de conexão de carteira
Página de Mint: utilizada para a mintagem de NFTs de teste
Página de Portfólio: exibe os NFTs que o usuário possui, suportando operações de listagem e deslistagem.
Página de Compra: Exibe todos os NFTs à venda, suportando a operação de compra.
Nós usamos Next.js para desenvolver o front-end e implantá-lo na plataforma Vercel.
Através dos passos acima, conseguimos implementar uma plataforma de negociação NFT com funcionalidades básicas e descentralização. Este simples Demo demonstra a lógica central das transações NFT, estabelecendo a base para o desenvolvimento de um sistema de negociação NFT mais complexo.
É importante notar que este artigo é apenas para fins de estudo e referência; as plataformas de negociação de NFT em ambientes de produção real precisam considerar mais fatores, como segurança e escalabilidade.