Construir uma plataforma de negociação NFT Descentralização do zero
Para NFTs que seguem o protocolo ERC-721, como implementar a Descentralização nas transações? Atualmente, o método de negociação de NFTs mais comum adota o modelo de livro de ordens, semelhante a exibir produtos em prateleiras, onde os compradores podem comprar quando acham que o preço é adequado. Este artigo irá descrever como criar uma plataforma básica de negociação descentralizada para NFTs através da escrita de contratos inteligentes e uma página de front-end simples.
Funcionalidades básicas da plataforma NFT
Uma plataforma básica de negociação de NFT deve ter as seguintes funcionalidades:
Colocar NFT à venda: o vendedor pode definir o preço para colocar o NFT à venda
Comprar NFT: O comprador pode adquirir o NFT listado ao preço definido
Cobrança de taxas: a plataforma pode retirar uma certa proporção da taxa de transação.
na plataforma NFT
O processo de listagem de NFT é o seguinte:
O vendedor escolhe o NFT a ser listado e define o preço
O contrato de negociação autorizado pelo vendedor pode operar esse NFT
Chamar o método de listagem do contrato, registrar as informações de listagem
Comprar NFT
O processo de compra de NFT é o seguinte:
O comprador escolhe o NFT que deseja comprar
Chamar o método de compra do contrato
O contrato transferirá os fundos do comprador para o vendedor, ao mesmo tempo que transferirá o NFT para o comprador.
Implementar plataforma de negociação
1. Criar NFT de teste
Pode usar o Remix para implementar rapidamente um contrato NFT do protocolo ERC-721 para testes.
2. Escrever contrato de transação
Os contratos de negociação precisam implementar os seguintes métodos principais:
2.1 Colocar NFT na plataforma
solidity
function listNFT(address nftAddress, uint256 tokenId, uint256 price) public {
// Verificar a propriedade do NFT
// Registar informações de listagem
// Acionar evento de listagem
}
2.2 Comprar NFT
solidity
function purchaseNFT(address nftAddress, uint256 tokenId) public payable {
// Obter informações sobre a lista de NFT
// Calcular e deduzir a taxa de serviço
// Transferir NFT para o comprador
// Disparar evento de compra
}
2.3 Cancelar listagem
solidity
function cancelListing(address nftAddress, uint256 tokenId) public {
// Verificar permissões de operação
// Definir o estado de listagem como inválido
// Acionar evento de cancelamento
}
2.4 Taxa de retirada
solidity
function withdrawFees() public onlyOwner {
// Taxas de transferência do contrato
}
3. Desenvolvimento da interface do utilizador
Utilize as seguintes ferramentas para desenvolver o front-end:
Ant Design Web3: utilizado para conexão de carteira e exibição de NFT
Wagmi: usado para interagir com a carteira
Next.js + Vercel: implantação do projeto
A interface inclui as seguintes páginas principais:
Mint: utilizado para criar NFT de teste
Comprar: mercado de NFT, pode comprar NFTs listados.
Portfolio: Gerir os NFTs dos utilizadores, podendo listar e deslistar.
3.1 Conectar carteira
Utilize o componente de conexão do Ant Design Web3 para implementar a funcionalidade de conexão de carteira.
3.2 Página de Mint
Chamar o método mint do contrato NFT para criar um NFT de teste.
3.3 Página do Portfólio
Obter NFTs que o usuário possui
Verificar se o NFT já está listado
Implementar a funcionalidade de listar e deslistar NFTs
3.4 Página de Compra
Mostrar todos os NFTs listados
Implementar a funcionalidade de compra
Até aqui, uma plataforma básica de negociação NFT descentralizada foi concluída. Pode ser implantada no Vercel para testes.
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.
9 gostos
Recompensa
9
6
Partilhar
Comentar
0/400
LiquidationWatcher
· 07-04 15:00
passamos por muitos rugpulls para confiar em outro dex... cuidado com as taxas e contratos inteligentes, família
Ver originalResponder0
hodl_therapist
· 07-04 10:30
Depois de estudar contratos inteligentes o dia todo, é hora de começar do front-end?
Ver originalResponder0
MetaverseLandlady
· 07-01 16:13
As taxas de transação não podem ser melhores do que as que a nossa senhorinha de aluguel está a ganhar, que já quase foram todas feitas as pessoas de parvas.
Ver originalResponder0
ChainMelonWatcher
· 07-01 16:12
A taxa de serviço é mesmo um imposto de inteligência, não é?
Ver originalResponder0
GasFeeCrier
· 07-01 16:04
Mais uma vez a moeda gás está alta. Quando é que vai ficar mais barata?
Ver originalResponder0
FlashLoanKing
· 07-01 15:54
Morrendo de rir, de novo a competir com contratos inteligentes
Construir uma plataforma de negociação NFT Descentralização: de contratos inteligentes a interface frontal
Construir uma plataforma de negociação NFT Descentralização do zero
Para NFTs que seguem o protocolo ERC-721, como implementar a Descentralização nas transações? Atualmente, o método de negociação de NFTs mais comum adota o modelo de livro de ordens, semelhante a exibir produtos em prateleiras, onde os compradores podem comprar quando acham que o preço é adequado. Este artigo irá descrever como criar uma plataforma básica de negociação descentralizada para NFTs através da escrita de contratos inteligentes e uma página de front-end simples.
Funcionalidades básicas da plataforma NFT
Uma plataforma básica de negociação de NFT deve ter as seguintes funcionalidades:
na plataforma NFT
O processo de listagem de NFT é o seguinte:
Comprar NFT
O processo de compra de NFT é o seguinte:
Implementar plataforma de negociação
1. Criar NFT de teste
Pode usar o Remix para implementar rapidamente um contrato NFT do protocolo ERC-721 para testes.
2. Escrever contrato de transação
Os contratos de negociação precisam implementar os seguintes métodos principais:
2.1 Colocar NFT na plataforma
solidity function listNFT(address nftAddress, uint256 tokenId, uint256 price) public { // Verificar a propriedade do NFT // Registar informações de listagem
// Acionar evento de listagem }
2.2 Comprar NFT
solidity function purchaseNFT(address nftAddress, uint256 tokenId) public payable { // Obter informações sobre a lista de NFT // Calcular e deduzir a taxa de serviço // Transferir NFT para o comprador // Disparar evento de compra
}
2.3 Cancelar listagem
solidity function cancelListing(address nftAddress, uint256 tokenId) public { // Verificar permissões de operação // Definir o estado de listagem como inválido // Acionar evento de cancelamento }
2.4 Taxa de retirada
solidity function withdrawFees() public onlyOwner { // Taxas de transferência do contrato }
3. Desenvolvimento da interface do utilizador
Utilize as seguintes ferramentas para desenvolver o front-end:
A interface inclui as seguintes páginas principais:
3.1 Conectar carteira
Utilize o componente de conexão do Ant Design Web3 para implementar a funcionalidade de conexão de carteira.
3.2 Página de Mint
Chamar o método mint do contrato NFT para criar um NFT de teste.
3.3 Página do Portfólio
3.4 Página de Compra
Até aqui, uma plataforma básica de negociação NFT descentralizada foi concluída. Pode ser implantada no Vercel para testes.