WEB3DEV

Cover image for NFTs Fracionários Utilizando a Ethereum
Panegali
Panegali

Posted on

NFTs Fracionários Utilizando a Ethereum

Fracionamento é o conceito de dividir a propriedade de um NFT para que muitas pessoas possam receber benefícios dele em proporção ao valor que possuem. É um conceito tradicional que já existe hoje. Mas por que as pessoas associam cada vez mais o fracionamento a ativos digitais registrados como tokens em blockchains e que oportunidades estão sendo criadas?

Assim como as ações de uma empresa, que são propriedade fracionada de uma empresa listada no mercado. Quando você compra uma ação, você está comprando uma fração da propriedade dela.

Neste artigo, vamos demonstrar como fracionar um NFT. Você pode encontrar o código-fonte em nosso repositório no Github.

Ferramentas e tecnologias utilizadas neste artigo:

  • Solidity
  • Remix

Mas como podemos realmente fazer isso em termos técnicos?

A seguir estão as etapas para fracionar um NFT:

  • Criar o NFT;
  • Bloquear o NFT;
  • Cunhar tokens simultâneos padrão ERC-20 do suprimento desejado, o que representa ações desse NFT específico;
  • Os usuários compram as ações desejadas (tokens ERC-20);
  • O dinheiro coletado ou (ações a serem compradas) X (o preço da ação) é enviado ao proprietário do NFT.

Deixe-me orientá-lo sobre o contrato com o Remix IDE.

O Remix IDE é usado para implantar os contratos inteligentes e testá-los localmente antes de implantá-los na rede principal.

Primeiramente, para acessar o código-fonte clique aqui, depois clone-o em seu sistema local.

Copie o link HTTPS.

Abra seu terminal, digite “git clone 'o link HTTPS'” e pressione enter.

Se ele solicitar seu USERID e PASSWORD (senha), consulte este link para obter seu token de acesso pessoal.

Navegue até a pasta de origem usando “cd blockchain-fractionalnft” e altere a ramificação de master para principal digitando o comando “git checkout main”.

Agora vamos entrar no Remix IDE e carregar os contratos inteligentes da pasta de contratos no repositório que acabamos de clonar.

Podemos ver um botão de upload (carregar) acima da pasta de contratos nesta imagem. Pressione o botão de upload.

Seremos direcionados para o nosso armazenamento local.

Navegue até a pasta blockchain-fractionalNFT > contracts

Fazer upload de:

  1. fractional.sol
  2. IECR20.sol
  3. ERC20.sol

Após o upload, o painel esquerdo do Remix IDE deve ficar assim, com todos os nossos contratos inteligentes:

Clique em fractional.sol, você poderá ver o código do contrato inteligente escrito em Solidity.

Vamos compilar nosso contrato inteligente

Para compilar nosso contrato inteligente, selecione a guia Solidity compiler (compilador de Solidity), que está localizada no painel da extrema esquerda da página.

Clique em Compile Fractional.sol.

Após a compilação bem-sucedida, você verá o seguinte:

Após a compilação, vamos implantar o contrato em uma VM (Máquina Virtual) do Remix.

Para implantar o contrato inteligente, selecione a guia deploy & run transactions (implantar e executar transações) no painel da extrema esquerda da página. Antes de implantar, suas entradas devem ficar assim:

E então pressione deploy (implantar).

Agora implantamos o contrato inteligente a partir deste endereço de contrato (que se torna o proprietário da plataforma): “0x5B38Da6a701c568545dCfcB03FcB875f56beddC4”

E o endereço do contrato é “0xd9145CCE52D386f254917e481eB44e9943F39138” conforme abaixo.

Uma vez implantado o contrato inteligente, podemos usar as funções no próprio IDE. Estas são todas as funções presentes em nosso contrato inteligente implantado:

Vamos começar a testar nossas funções!

1.Criar o NFT.

Agora temos essa função createNFT, criamos um NFT colocando esses valores, TokenURI & Price (Preço) do NFT (em ether) e pressionando transact (transacionar). Token URI é apenas o mapeamento associado ao NFT como (0,1,2,3...) para que não haja dois tokens iguais.

Podemos ver os detalhes do NFT se chamarmos nosso mapeamento IdtoNFT, pressione idtoNFTapós adicionar o tokenID 0:

O preço está em "wei". 10000000000000000000 wei é 10 ether

2. Bloquear o NFT e Cunhar os tokens ERC20.

Vamos bloquear o NFT e cunhar o token padrão ERC20 desejado (quantidade de ações) agora, a quantidade total de ações é 10. Portanto, o valor da ação será PREÇO/QUANTIDADE DE AÇÕES, ou seja, 1 ether.

Pressione transact.

Podemos ver aqui o endereço do token fungível ERC20, criado através do mapeamento idToShare.

3. Mudando o endereço da conta.

Agora, vamos trocar os endereços das contas. Para que possamos comprar uma parte fracionária do NFT nos tornando um usuário diferente!

Ao clicar em account (conta), um menu suspenso será aberto e você selecionará uma conta diferente para usar, para suas transações.

Depois de trocar as contas, você deve adicionar valor (ou seja, 1 ether) antes de chamar buyFractionalShares(já que é uma função pagável) como esta:

4. Compre Frações de Ações.

Depois disso, fornecendo a entrada, o ID do token e o total de ações, vamos comprar 1 ação no valor de 1 ether e clicar em transact.

NOTA: esta função está vermelha porque é uma função pagável.

Ether é transferido para o proprietário do NFT

drop downthe accounts tab you will see 0x5B3... account is credited with 1 ether.
Enter fullscreen mode Exit fullscreen mode

E se você detalhar a transação recente que é processada, através da seta para baixo.

Você verá o token ERC20, ou seja, 0x5C9……66dser transferido para o usuário que compra a parte fracionária.


Em nosso contrato inteligente, temos essas funções:

1._ create

Função interna para criar um NFT.

2. _transferNFT

Função Interna para transferir um NFT.

3. createNFT

Função externa para criar um NFT pelo usuário.

4. LockNFT

Nesta Função, bloqueamos o NFT transferindo-o para um contrato e criamos o número desejado de tokens ERC-20 como ações.

5. Buy fractional shares

Função para comprar as ações fracionárias que acabamos de criar, ou seja, os Tokens ERC-20.

6. fetchNFTs

Obter função para visualizar NFTs cunhados pelo usuário.

Github:

GitHub - intelliconnect/blockchain-fractionalnft no main


Conclusão

Se você tiver alguma dúvida, sinta-se à vontade para entrar em contato. Obrigado por ler!


Artigo escrito por Rishabh Singh Jamwal e traduzido por Marcelo Panegali.

Top comments (0)