Crie um clone do Twitter Web3 usando o Solidity e o Polygon | Rahul Agarwal | Skillshare

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Crie um clone do Twitter Web3 usando o Solidity e o Polygon

teacher avatar Rahul Agarwal, Flutter Developer & Trainer

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      INTRODUÇÃO DO CURSO

      1:01

    • 2.

      Crie um projeto hardhat

      7:33

    • 3.

      Teclas de alquimia e metamask

      6:08

    • 4.

      Criando contrato no Twitter

      7:37

    • 5.

      Funcionalidade para adicionar um tweet

      5:49

    • 6.

      Funcionalidade para obter todos os Tweets

      9:26

    • 7.

      Funcionalidade para excluir um tweet

      5:33

    • 8.

      Funcionalidade para atualizar o usuário

      3:43

    • 9.

      Teste usando o Remix IDE

      9:25

    • 10.

      Implemente a rede de teste de Mumbai

      4:59

    • 11.

      Configurar o projeto reage

      15:10

    • 12.

      Trabalhando no componente de aplicativo

      8:31

    • 13.

      Criando componente da barra lateral

      11:41

    • 14.

      Criando o componente da barra direita

      18:08

    • 15.

      Vamos trabalhar na página inicial

      19:41

    • 16.

      Criando o componente Feed

      14:39

    • 17.

      Vamos trabalhar na página de perfil

      14:23

    • 18.

      Vamos trabalhar na página Configurações

      13:13

    • 19.

      Autentique o usuário usando o Metamask

      22:45

    • 20.

      Verifique se o usuário já existe

      18:24

    • 21.

      Configuração do armazenamento Web3 IPFS

      11:52

    • 22.

      Função para adicionar um Tweet

      11:23

    • 23.

      Função para mostrar os Tweets

      19:50

    • 24.

      Mostrar os dados do usuário na página de perfil

      6:37

    • 25.

      Função para excluir um Tweet

      4:22

    • 26.

      Função para atualizar detalhes do perfil

      15:45

    • 27.

      Teste o aplicativo completo

      5:45

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

66

Estudantes

--

Sobre este curso

O Twitter tem sido uma das plataformas de mídia social mais populares para os usuários do mundo todo. No entanto, os usuários de criptografia percebem que uma versão descentralizada do Twitter seria altamente benéfica, pois eliminaria os aspectos negativos da plataforma centralizada do Twitter. Assim, neste curso, vamos construir um clone do Twitter Web3 a partir do zero. Começaremos escrevendo e testando o contrato inteligente usando o Solidity and Remix. Em seguida, vamos implantar o contrato para a rede de testes de Mumbai usando hardhat. Depois disso, vamos usar o React js para criar nosso front-end e finalmente usar o ethers js para interagir com o contrato implantado. Para carregar imagens, vamos usar o provedor de serviço de armazenamento IPFS Web3.

Para ter sucesso neste guia, você deve ter o seguinte:

1. O código Node.js e o código VS devem ser instalados.

2. A extensão de carteira Metamask deve ser instalada no seu navegador com alguns tokens matic de teste nele.

3. Conhecimento básico de Solidity, hardhat e React js exigidos.

A pilha

Neste curso, vamos criar um aplicativo completo usando o seguinte:

Blockchain - Polygon
Writing Smart Contract - biblioteca SolidityUI - React js & Web3UIkitAmbiente de desenvolvimento do

Solidity - Hardhat
File StorageWeb3 Storage
Client Library - Ethers js

No final do curso, você aprenderá todos os conceitos necessários para se candidatar a um trabalho de desenvolvedor web3 ou até mesmo criar sua própria startup na indústria de blockchain. Então, sem perder mais tempo, inscreva-se agora e entre na próxima era da internet o mais rápido possível.

Conheça seu professor

Teacher Profile Image

Rahul Agarwal

Flutter Developer & Trainer

Professor

Hello, I'm Rahul. I am skilled in building cross platform application using Flutter. I am freelance developer as well as conduct workshops to share my knowledge with the community.

Visualizar o perfil completo

Level: Intermediate

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. INTRODUÇÃO DO CURSO: Mas essa tem sido uma das plataformas de mídia social mais populares em todo o mundo. No entanto, os usuários de criptografia percebem que uma versão descentralizada do Twitter seria altamente benéfica , pois eliminaria os aspectos negativos de uma plataforma centralizada. Neste curso, você aprenderá a construir um clone descentralizado do Twitter usando solubilidade e blockchain de polígono, os usuários poderão se autenticar usando carteira MetaMask e compartilhar seus pensamentos com todos nessa plataforma. Cada usuário terá uma tag aleatória gerada ao se inscrever pela primeira vez. Eles podem até alterar a imagem de exibição e o banner na seção do seu perfil. Mais tarde, começaremos escrevendo e testando esse contrato inteligente usando solidariedade e remix. Em seguida, implantaremos o contrato, a rede de testes de Mumbai usando o coração. Depois disso, usaremos o React js para construir nosso front-end e finalmente, usaremos o JS de Ito para interagir com o contrato diplóide. Para fazer upload de imagens, usaremos um provedor de serviços IPFS de armazenamento de dois pontos na web. Ao final do curso, você aprenderá tudo o que é necessário para se tornar um desenvolvedor web full-stack sem perder mais tempo. Inscreva-se agora e vamos começar. 2. Crie um projeto hardhat: Olá, bem-vindo ao primeiro vídeo que configuraremos o ambiente de desenvolvimento. Antes de avançar, vamos discutir o roteiro do curso. A primeira coisa que faremos é montar esse projeto de cabeça dura. Em seguida, criaremos um contrato inteligente que rastreia e armazena dados de tweets. Depois disso. Vamos testar nosso contrato inteligente. Podemos não escrever teste unitário, mas vamos testá-lo usando remix. Depois que todos os métodos estiverem funcionando corretamente, implantaremos o contrato inteligente no destino do polígono. Depois disso, criaremos um front-end React js e usaremos uma ptose e MetaMask para interagir com o contrato diplóide. Na sessão final, testaremos todo o aplicativo e garantiremos que não haja bugs nele. Também me certifico de que você tenha instalado MetaMask e tenha alguma métrica de teste em sua conta. Você pode simplesmente pesquisar no Google se quiser. Não vou configurar de novo. Você pode assistir a qualquer tutorial. São apenas alguns cliques nos botões e continue com esse curso. Mais uma vez, você pode ver toda a pilha de tecnologia de nosso aplicativo descentralizado. Esse blockchain será a solidez do polígono, capacete de segurança. Usaremos meu damasco. O provedor do nó será o Alchemy. Tem apenas a frente. Em seguida, usaremos HTML, CSS e JS. Então, vamos começar a criar esse projeto. Agora vamos começar criando uma pasta. Vou dar um nome a ele. Tweeter dab. Aqui, criaremos um projeto de capacete de segurança. A propósito, espero que você saiba o que é difícil, difícil. Hard hat é um ambiente os desenvolvedores usam para testar, compilar, implantar e depurar aplicativos descentralizados baseados em blockchain de titânio que ajuda os codificadores a gerenciar muitas das tarefas que adquiri, desenvolver e redigir contratos inteligentes e facilitar esse processo. Então, nesta pasta, traga esse terminal. E antes de criar ou instalar o hardhead, temos que criar um projeto vazio e PM usando esse comando npm nele. Por quê? E depois disso, simplesmente com estilo. Hardhead usando este comando npm install, save dev. Eu tive. Então leia mais sobre capacete de segurança. Você pode simplesmente ir para o cabeça-dura, digamos aqui. E você também pode ler a documentação. Porque qualquer que seja o código que estamos usando, está tudo escrito aqui passo a passo, assim, npm init y, e pagamentos Teilhard tinha Dev assim. Agora, para criar uma lógica, temos que usar um capacete rígido de n px. Em seguida, selecione o primeiro que fiz é criar um projeto JavaScript. Pressione e toque em pressione Enter. Agora, ele está nos dizendo para instalar essa dependência também. É uma caixa de ferramentas simplesmente desperdiçada e pressione Enter. Esses pacotes de ferramentas são pacotes menos usados e como os logins são recomendados para começar a desenvolver, como éteres. Ma Cao Dai, eu tinha chai matchers, hardhat, ele vai escanear, etc. Agora as dependências estão instaladas, basta anexar nosso projeto no VS Code. Vou apenas escrever código. Ele o abrirá no VS Code. E também no código VS, certifique-se de ter extensões como solidez, vento de cauda, hardhead, esse tipo de extensão que você já instalou. Mas é isso para este vídeo. No próximo vídeo, obteremos as chaves alquimia e MetaMask em nosso projeto. Obrigada. 3. Teclas de alquimia e metamask: Oi, hardhead nos dá algumas pastas e arquivos. Discutiremos tudo isso passo a passo. Mas primeiro, vamos para as cadeiras de pontos de configuração hardhead e garantir que estamos apontando nossa rede para a rede de teste de polígono. E para que isso funcione, precisamos da URL do nó poligonal, qualquer endereço válido. Como eu já tenho contas, eu não estaria criando uma nova conta na alquimia. Você pode simplesmente ir aqui, então você pode fazer login e se inscrever para uma nova conta. Se você ainda não tiver um. Depois de entrar na alquimia. Depois de entrar no Alchemy, basta criar um novo aplicativo. Vou dar um nome a ele. Terceiro, a cadeia de abas será um polígono. E será polígono que significa que é aquela cobra de teste. Em seguida, clique em Criar aplicativo. Aqui, precisaremos dessa chave. Mas antes disso, certifique-se de ter instalado o MetaMask também. Você pode instalar meu Tomas acessando meu site Thomas.io e instalar a extensão para o seu navegador. Não deixe de pausar o vídeo e assistir à configuração de uma nova carteira. Qualquer pessoa no YouTube ou no Google. E também sabe como adivinhar, obter polígono de teste. Isso é automático na sua carteira. Você pode obtê-lo via polígono para definir. De um jeito assim. Sim, basta colar o endereço e obter tokens de teste. Vamos dizer isso. Minha máscara. Exigiremos essa chave privada. E vamos armazenar essas chaves, essa é a chave da alquimia e, em seguida, meu Dmowski em nosso projeto. E para esse propósito, usaremos uma dependência chamada ponto ENV. Porque não é recomendável colar essas informações confidenciais diretamente em nossos arquivos. É como aqui diretamente. Não quero que seja colado. Basta trazer seu terminal para a direita. E PM e estilo dot ENV. Agora, verifique se ele está instalado Sim. Na pasta raiz. Basta criar um arquivo chamado ponto ENV e criar variáveis como polígono. Mumbai é igual a assim. E deixe E ser igual a assim. Mas o modo polígono simplesmente vá aqui, clique na tecla View, esta chave e cole-a aqui. Para o endereço privado da carteira. Basta abrir sua máscara Meta. Clique aqui. Ou nesses pontos. Detalhes da conta. Exportar chave privada. Basta inserir sua chave privada. Isso é só digitar sua senha. Em seguida, ele mostrará uma chave privada e garantirá que você não exponha suas chaves a mais ninguém. Copie essa chave. Vá para o arquivo ponto ENV e cole-o. É isso aí. Salve isso. Depois disso. Vá para o arquivo de configuração de ponto de hardware e importe essas chaves. Com este comando ativado, nosso brilhante requer ponto ENV. Vou enlouquecer. Depois disso, no module.exports, basta escrever redes de rede. Então eu vou chamá-lo de “Mom Bye”. Em seguida, no URL, você deve escrever o nome da variável ENV do ponto do processo, que é o polígono Mumbai. E em uma const, que é uma matriz, você simplesmente tem que escrever process dot ENV, wallet, vibrate, assim. Então é isso. Sua configuração de capacete está concluída. No próximo vídeo, escreveremos o contrato inteligente. Obrigada. 4. Criando contrato no Twitter: Oi, bem vindo de volta. Agora vamos começar a trabalhar na redação do nosso contrato inteligente. Remova todos os arquivos de capacete, scripts de contrato e pasta de teste. É, vou apenas removê-lo nos scripts também. Eu o removerei no contrato. Basta copiar ou não, você não precisa copiar. Você pode simplesmente renomear esses pontos de alma. E simplesmente mova todo o resto. Apenas sinalize o código de solidez obrigatório. Agora vamos começar com um novo contrato e dar um nome a ele. Primeiro. Teremos algumas variáveis de estado. O primeiro será o dono. O segundo será o contador. Isto é, ele vai apresentar id, um brinquedo como este. Em seguida, no construtor. Vamos inicializar que é a largura da variável do proprietário , remetente da mensagem. Ou seja, quem implanta o contrato e contraria com 0. Essa é a primeira ideia. Começaremos do 0, assim. Agora, já que estamos escrevendo um contrato que consistirá em ajustes. Então, vamos ter uma estrutura de um nome que tuíte nome, fazemos assim. Ok, eu sou destruidor que atacou. OK. Agora, ele consistirá em um endereço de retorno, esse endereço e nomeie-o como Twitter. Em seguida, ele terá AD, depois terá o peso x. Então a pessoa pode ou não fazer upload da imagem. Será opcional. Então, se essa pessoa quiser excluir, é tweet ou não. E, finalmente, teremos esse carimbo de data/hora para que possamos mostrar a data desse brinquedo. Essa é a estrutura de um tweet. Em seguida, teremos uma estrutura de um usuário. Consistirá no nome sendo esse perfil, ou seja, o usuário escreverá um perfil bio da Índia. Tarde. Esse usuário pode ter uma imagem de perfil. Depois disso, o usuário pode ter um banner de perfil. Assim. Porque se você viu um possível, muito poucos até o viram. Twitter. A pessoa pode fazer upload de uma biografia é nome de usuário, é imagem de perfil, e o banner do perfil também. Depois disso, terei algum mapeamento, que vamos primeiro, ele mapeará agora o ID para uma estrutura de tweet que é id para esperar. E eu vou dar um nome a ele. Os pesos. E o segundo mapeamento será o endereço. E isso apontará para um usuário. Ou seja, usuários. Basta dirigir-se a um usuário. Então, nós apenas seu endereço. Podemos descobrir a imagem do perfil biológico do joelho desse usuário em particular. Digamos que. Além disso. Teremos alguns eventos. O primeiro evento será devido, ele criou. Ele terá endereço. A mesma coisa. Ele terá identificação. Ele terá texto de peso, string. Ele terá a imagem do peso. Esse booleano está atrasado morto e esse carimbo de data/hora. Então isso vai, este é um evento que será emitido na função de tweet do anúncio, que vamos criar no próximo vídeo. O segundo evento será excluído, então? Ele simplesmente terá esse ID do tweet. ID do Tweet e o Boolean são excluídos. Assim. É isso aí. É isso para este vídeo. No próximo vídeo, trabalharemos na funcionalidade para adicioná-la a ela. Obrigada. 5. Funcionalidade para adicionar um tweet: Vamos continuar escrevendo o contrato inteligente. Agora, escreveremos a funcionalidade para adicionar um tweet de rotatividade. Ele aceitará o peso e a imagem do peso. Será uma função pública e também pagável. Por quê? Bem, como exigiríamos que essa pessoa nos enviasse nos 0,01 para ter certeza de que estamos a fim de carregar o histórico, envie 0.01 mágica. Aqui temos que escrever éter, mas enviaremos valor métrico. Se estiver tudo bem, ou seja, esse requisito for cumprido, teremos um ponteiro para eles. É mapeamento. O certo é que você vai fazer os pesos em 0. É aqui a ideia de que 0 ID, vamos começar a adicionar os dados novos a ele. Texto escuro é igual ao texto aqui, depois Novo. E isso deveria ser Tweet. Tweet. Ótimo. A imagem é igual a isso. Então você faz isso. Ponto é igual a mensagem. Remetente. Id é igual ao contador. Em seguida, o novo tweet é excluído, é igual a falso, obviamente. Finalmente, o carimbo de data/hora do ponto é igual ao carimbo de data/hora do ponto do bloco. Depois disso, simplesmente emitiremos nosso tweet. Evento criado. Enviarei esses valores assim. O Twitter é o remetente da mensagem, depois o contador de anúncios e o texto do tweet. A maneira como você gerencia que é excluído false e o carimbo de data/hora. Timestamp. Assim. À tarde, vou apenas incrementar o contador porque o próximo ID do tweet deve ser um. E, finalmente, vou pagar ao dono. Ou seja, vou simplesmente ser transferido. Agora, valorize o nó, assim. Com o proprietário, vou transferir esse valor. Espero que você tenha entendido essa linha de código. Foi muito básico. Em primeiro lugar, exigiremos 0,01 éter que é demótico. Então eu apenas apontei aqui para nossa variável de estado, que são tweets. Esse tipo de dados é struct. É por isso que eu não ouvi um tweet e simplesmente adicionei todos os dados dentro dele. E fizemos que você não está incrementando o contador e simplesmente transportando o valor que é 0,01 Ito. É isso aí. É isso para este vídeo. Obrigada. 6. Funcionalidade para obter todos os Tweets: Oi, bem-vindo de volta. Agora vamos trabalhar na funcionalidade para buscar todos os tweets. Ou seja, como os tweets serão exibidos na linha do tempo do usuário. Basta escrever importada, que são os pesos e Chen, sobre os quais será uma função pública. Ele simplesmente visualizará os retornos em uma estrutura como essa. Agora. Agora, a primeira coisa que faremos é criar uma variável vazia temporária. Ou seja, eu vou apenas como temporário é igual a nu. Tweet. Estará vazio e a terra será contrária. Esse é o nosso número lateral de tweets. Então eu terei o peso reduzido para ser igual a 0. Isso contará apenas o número total de tweets que você pode estar pensando no que estou fazendo. Estou apenas fazendo um loop para garantir que exibamos apenas os tweets que não estão sendo excluídos. Você int I é igual a 0, eu menos que o contador I mais, mais. E então eu terei uma declaração if como esta. Se o ponto I for excluído for igual a false, então apenas adicione isso a ele. Neste temporário. Eddie, nessa posição, contar até oito é igual aos pesos. Eu gosto disso. E simplesmente incremente a contagem de tweets. Depois disso. Terei placas Alda que não estão sendo apagadas. Depois disso, simplesmente terei uma variável vazia, que será o resultado igual a mu 28. Agora essa terra será adequada, ou seja, conte até a sua. Se enviarmos diretamente este, a duração da edição E será muito maior. É por isso que acabei de criar e acabei de criar outra variável de um array vazio. E novamente, você faz o loop for. E desta vez terei menos do que contar tweets. E aqui, basta copiar tudo da variável temporária para essa variável de resultado. E, finalmente, retornarei esse resultado assim. N aqui. O que eu fiz esse erro, o quê? Devem ser novos tweets pequenos. É isso aí. Espero que você tenha entendido. Primeiro, teremos uma matriz vazia comprimento do contador, que pode ser 50. Então teríamos tweets for loop e Alda que não foram excluídos, o que suponha que esteja atrasado. Então, como o comprimento é 50 e dentro disso apenas os itens serão 30. Então eu criei outra área com apenas um pequeno terreno para que o comprimento da matriz seja igual aos itens dentro dela. É isso aí. Essa é a função. Busque todos os tweets. A próxima coisa que vou escrever. O método para obter tweets. Mas, mas o usuário mais legal. Porque se o usuário acessar sua página de perfil, somente os tweets que ele enviou devem ser vistos. Lá. Vamos apenas escrever a função, pegar meus tweets. Será uma coisa externa, mesma coisa, externa ou pública, o que você quiser. Alguns retornos. Ele retornará uma variedade de estruturas de tweets. Novamente, farei a mesma coisa aqui. Eles disseram que eu faço isso. Mamária. O caule pronto é igual a uma nova forma de terra. Então eu terei count, meus pesos variáveis. No loop for, farei a mesma coisa que você. Int I é igual a 0. Eu menos do que conto eu mais mais. Então farei isso se a instrução, se os pesos da partição forem iguais ao remetente da mensagem e me forem iguais ao remetente da mensagem certificarei de que não está sendo excluído. Eu ponto é igual, igual falso, então só vamos adicionar isso nessa variável temporária. Nessa partição, conte meus tweets que eu posiciono. E então vou incrementar a contagem do valor dos meus tweets. Depois do loop for, cada login. Em seguida, clique em criar uma nova matriz vazia. Dê o nome de resultado. Você faz isso. Meu novo int, eu igual a 0. Eu menos do que conto meus tweets. Eu mais, mais. Sim, vamos apenas trocar isso é tudo, desde a variável temporária até a variável de resultado, é isso, nada mais. E, finalmente, retornarei o resultado onde todos, é isso. Essa era a funcionalidade para obter tweets de todos os usuários e obter tweets de um usuário específico. Obrigada. 7. Funcionalidade para excluir um tweet: Vamos continuar trabalhando com as funções. A próxima função que escreveremos é obter um tweet específico. Então, vou dizer apenas minha terceira cor. Eu só vou gostar de diversão. Chegue lá. Temos que enviar um ID de tweet. Bem, a visão sombria retorna. Ele retornará string mamária, mamária e, em seguida, endereço. A primeira coisa é, o que é necessário é garantir que o id seja menor que esse contador. Esse é o número máximo de tweets. Não, tal para oito. Então, teremos apenas o como estamos muito bem apontados para esse tweet, que é o ID do tweet aqui assim, então certifique-se de que o peso não seja excluído. O dia em que deveria ser falso, é excluído. E depois disso, se tudo estiver bem, direi apenas retorne o ponto, texto, ponto, imagem, ponto assim. Esses três valores eu enviarei. Este é apenas um método se, se for o caso, por qualquer motivo, você for obrigado a receber esse tweet. Depois disso, vamos criar tecnologia médica para excluí-lo, faça isso. Quando agitar. Peso atrasado. Temos aqueles que enviam o ID e o Boolean é excluído. Externo. Simplesmente, exigiremos que a pessoa seja a proprietária desse ID do tweet. Caso contrário, você pode excluir honestamente seu próprio tweet assim. Depois disso, simplesmente para o seu id. É excluído, é igual a, é excluído assim. E vou admitir que excluiu o evento aqui. Como emitimos para ele, criamos da mesma maneira. Ao vivo, enviaremos, simplesmente enviaremos esse ID do tweet, ID e será excluído. Assim. Dito isso, isso foi um soco para deletar, fazer isso, foi muito básico. Nós apenas alteramos o valor de E é avaliado para true para que sempre que o usuário quiser obtê-lo, se ele não puder buscar aqueles que, que são denotados, pois não podemos excluir diretamente o valor de um blockchain. Vamos apenas mudar esse valor específico. É isso aí. Saiba que, se quisermos, podemos alterar essa blockchain. Podemos ter uma nova matriz e , em seguida, colocar essa área dentro dessa área assim. Se você quiser, você pode fazer isso. Mas simplesmente terei os dados armazenados para sempre na fila. 8. Funcionalidade para atualizar o usuário: Oi, bem-vindo de volta. Este é o último vídeo do módulo de contrato. Vamos apenas anotar minha vez atualizar os detalhes do usuário. Vou apenas chamá-lo de funtion. O usuário está fazendo, exceto lembrar o novo nome. Sequência mamária, nova biografia, compartilhamento de memória, nova imagem de arquivo. E, finalmente, memória de string, novo arquivo, banner. Perna isso. Será uma função pública. Agora, basta pegar esse usuário ou você pode dizer inserir esse usuário em seus usuários mapeando o remetente da mensagem assim. Em seguida, simplesmente escreverei os dados do usuário. O nome do ponto é igual ao novo nome. Dados do usuário. Biografia é igual a nova biografia. Imagem do arquivo ponto de dados do usuário. Nova imagem de perfil da garota dois. Dados do usuário. Esse banner de perfil é igual a um novo piano de arquivo como este. Dito isso, é assim que você atualiza um detalhe do usuário. Essa última funcionalidade será importante para obter detalhes do usuário. É para um usuário específico. Simplesmente divertido Chen, obter usuário. Enviaremos ao usuário um vestido. Será uma função de visualização pública que retornará um usuário assim. E eu simplesmente retornarei o endereço do usuário pois esse mapeamento de usuário exclui o endereço e ele enviará a estrutura do usuário que, digamos, essa é a função para obter um usuário. São todos os detalhes do usuário. E essa é a função a ser atualizada. O usuário retém. É isso aí. É isso para este módulo. No próximo módulo, concluiremos o contrato inteligente. Obrigada. 9. Teste usando o Remix IDE: Portanto, nosso contrato com o Twitter está pronto. É hora de testar todos os métodos e ter certeza de que não há nenhum bug nele. Vou usar um ID online de remix para essa finalidade. Se você quiser, você também pode escrever teste unitário usando mocha e biblioteca infantil. Depende de você. Mas só para economizar tempo e fazer isso mais rápido, vou usar o remix. Então, basta ir para remix dot m dot o, r g. Então aqui na pasta Contracts, simplesmente crie um novo arquivo e nomeie-o twitter dot soul. Depois disso, vou apenas copiar esta licença. E solidez pragmática. Depois disso, vou apenas copiar o contrato e colá-lo aqui. Veja, está feito. OK. Então, quando vamos testá-lo no IDE de remix, não podemos testar até 0.01 eterno porque quando estamos fazendo a transação, temos que enviar números sem decimal. Então, vou escrever aqui apenas um comedor apenas para fins de teste, mas no código principal será 0,01 em 30. Ontem. Lembra disso? Ok, então aqui vou compilar para inter dot soul. Temos essa marca de seleção verde aqui. Isso significa que está tudo bem. Nenhum adulto está lá. Agora. OK. Vá para esta seção de transações de implantação e execução. Basta clicar em Aplicar. OK. Temos essa resposta. Ou seja, nosso endereço foi implantado. Veja que os métodos e funções da Alda estão lá. Se clicarmos em proprietário, podemos ver que temos o endereço do proprietário, que é esse endereço C4. C4. Você pode ver que esse é o endereço correto. Agora, o que vou fazer é simplesmente mudar a conta. E agora vamos tentar adicionar um novo tweet. Eu vou apenas dar o valor um, já que ele está pedindo por um. E agora temos que enviar um texto de tweet. Ele primeiro fará isso e fará a imagem de algo como www dot, URL fictício, algo assim. Ok? E vou clicar em adicionar a ele. Acho que foi novamente para 0. Se eu clicar novamente, adicione-o. Ok, aqui não deveria ser assim, deveria ser comedor. Agora, se eu tentasse clicar, veja, temos esse sinal verde aqui. Isso é que nós fomos adicionados. E se você verificar a primeira conta, agora é 100. Porque essa função a pagar transfere esse valor para o proprietário dessa conta. É por isso que isso foi incrementado. Agora, se eu clicar em, Obter todos os tweets. Veja que temos esse endereço, este primeiro tweet de texto e URL fictício ou listagens que temos. E se eu escrever, se eu atualizar um usuário, esse é esse usuário, se eu escrever Arapaho, então o que isso está perguntando. Como você pode ver aqui, temos o bio web dev. Então temos a imagem do perfil, novamente, www dot dummy image. E então temos o perfil. Agora vou apenas escrever www.banner.com e atualizado. E agora, se eu estiver certo, obter usuários, esse é o endereço do usuário. Se eu tiver que enviar um endereço de usuário, basta clicar com o botão direito do mouse em Copiar, GetUser e GetUser, veja mapeado para desenvolvedor, imagem fictícia e banner.com para que o usuário seja atualizado. Assim, só mais adiante, eu recebia meu tweet sobre preciso da dose para sua ideia, que são minhas. Agora, se eu alterar a conta para a conta número três, e agora se eu escrever, receber meu tweet e ver que está vazio porque esse usuário não adicionou nenhum a ele. Mas se recebermos todos os tweets, então obviamente todos os tweets estão lá, que estão sendo postados lá neste aplicativo como este. Agora, se essa pessoa quiser remover esse tweet, se ele clicar, ver revertido, você só poderá excluir o seu próprio. Mas se eu for para o segundo e agora se eu tentar excluir isso, ele será excluído porque ele é o dono disso. E agora, se eu clicar com o botão direito, Obter todos os tweets. Espere, vamos ver o que está acontecendo. Acho que há algo adicionado a isso. Se for um documento de identidade, temos esse endereço. Primeiro, faça isso. OK. Quando estamos excluindo o tweet, temos que enviar mais valores que estão aqui, id e também o valor booleano. Foi o editor. Se você quiser, você pode verificar isso e desviá-lo também. Vou apenas ler e deletar. Se eu escrever cetonas que veem que foram excluídas. Isso chega lá. Vamos ver o que acontece. Transação revertida dizendo que foi excluída porque o tweet já foi excluído. Espero que você tenha entendido esse ID de remix porque essa foi uma maneira melhor e mais rápida de testar esse contrato inteligente. Se você quiser, você pode inserir várias características e contrato STR para qualquer outra caixa que eu possa ter perdido. Mas agora, tudo está funcionando perfeitamente. No próximo vídeo, implantaremos esse contrato neles. Rede de testes Polygon Mumbai. Obrigada. 10. Implemente a rede de teste de Mumbai: Oi, bem-vindo de volta. Neste vídeo, implantaremos nosso contrato inteligente rede de teste de polígonos. Então, para isso, vamos gostar do script de implantação. Primeiro na pasta de scripts, crie um novo arquivo e nomeie-o como implantado como ponto js. Agora aqui está escrevendo código. A primeira coisa que é necessária é o laboratório de capacetes. Então teremos uma função sinc chamada main. Então vamos conseguir, obter contrato, fábrica vai conseguir contrato. Por exemplo. Esse é o nome do nosso contrato. Está aqui, digamos, no Twitter. Então temos que escrever esse comando. É pequeno d e depois implantado. É ponto, ponto, implanta assim. Então temos que pesar. Ele está sendo implantado como está. Demora um pouco. E eles são muito finais. Consolaremos o endereço do contrato de registro de pontos, contrato implantado para, em seguida, endereçar assim. E agora temos que chamar essa função principal e simplesmente capturar qualquer erro que esteja sendo lançado. Console.log diz Código de saída igual a um como este. Portanto, esse é o único código necessário para a implantação. Agora, temos que colocar nosso terminal no diretório principal que está nesse diretório de pastas. E escreva esse comando e px. Eu tinha executado scripts. Em seguida, o ponto ly é. E temos que mencionar que a rede, que é movida e pressione Enter. Pode levar alguns minutos. Agora temos a pasta de efeitos diretos criada e vemos seu contrato implantado neste endereço. Verifique se você copiou esse endereço , pois ele será necessário no próximo vídeo. Então, só para ter certeza de que está tudo bem, podemos apenas verificar se os polígonos de Mumbai podem acessar este site, copiar o endereço do contrato, estado base aqui, e apenas pesquisar. Veja, cinco segundos atrás esse bloco foi criado e essa criação de contrato e ele tem 0 pode ter valor. Isso simboliza que nosso contrato foi implantado com sucesso. É isso para este vídeo. Na próxima sessão, trabalharemos no front-end, que é o React JS. Obrigada. 11. Configurar o projeto reage: Nosso contrato foi implantado com sucesso. Agora é hora de trabalharmos no front-end do React JS. Para isso. Vamos criar nosso projeto ADF JS de configuração para isso, basta escrever np x nos oito clientes do aplicativo React assim e pressionar Enter. Espero que você tenha o React js instalado em seu sistema. Se você tem, eu sinto que estou recebendo algum e eu simplesmente instalo o preconceito de idade globalmente. Então, o projeto React agora está configurado. Agora, para interagir com nosso contrato inteligente implantado, precisaremos de duas coisas, endereço do contrato e a ABA. Para obter o ABA, basta copiar esse twitter.json dos contratos de artefatos. Aqui. Este arquivo basta copiá-lo e ir para a pasta do cliente. Em seguida, crie uma nova pasta e nomeie-a como ABI, e cole o arquivo JSON do Twitter aqui que está nessa pasta de origem de linha. Sim. OK. Em seguida, temos que criar um novo arquivo chamado config dot js dentro da pasta de origem, como o ab.js livre de armas. E aqui vamos colar nosso endereço de contrato. O endereço do contrato é igual a este. Basta ir e copiar seu endereço. Cole aqui, assim. Agora, para seguir em frente, precisamos instalar algumas dependências. Basta alterar esse diretório para a pasta do cliente. Aqui, escreva npm com estilo. Éteres, então reagem. E cúpula externa. Em seguida, aquele kit de interface do usuário da web, core Em seguida, adicione oito repetições, três kits de interface do usuário. Posso então pegar o modelo da árvore e finalmente, traço de desenho animado. Então, se você ver aqui. Temos 123456 dependências e pressione enter este oito test.js. Ou seja, o ethos é necessário para interagir com o contrato inteligente implantado. dom do roteador React permite a navegação entre vários componentes no aplicativo React. Web três, o UIKit nos fornece componentes de interface do usuário bonitos e leves por dois desenvolvedores. Esta biblioteca acelerará nosso desenvolvimento dab. Então. Em seguida, temos três modelos que nos permitem conectar nosso aplicativo a muitos provedores válidos como carteira Coinbase, MetaMask, wallet connect. E, finalmente, este desenho animado Avatar gera avatar aleatório para nós. Usaremos isso como uma imagem de perfil fictícia mais tarde. Agora, se você for para package.json aqui, e vamos apenas verificar se o modelo de três da Web está lá fora agora. Desenho de éteres, Avatar. Tudo está morto. Agora. Eu simplesmente vou e escrevo npm. Comece a iniciar nosso celular React JS. Está bem? Portanto, o aplicativo React está sendo executado com sucesso. Agora é hora de trabalharmos no arquivo index.js. Vamos aqui. Estamos importando o React, depois o aplicativo CSS de índice de massa. Em seguida, vou importar navegador e outer react. E cúpula externa. E eu vou importar a defecação. Provedor de defecação. Web três, você escreve código, notificação, fornece isso apenas um impulso. Esse aplicativo. Está no arquivo raiz. Isso permitirá que todos os arquivos exibam notificações. Então, simplesmente temos que remover esse modo estrito de três atos aqui para usar o provedor de defecação, um aplicativo que app interno e provedor de defecação. Em seguida, use o roteador do navegador e envolva o aplicativo dentro do roteador do navegador. Assim. É tudo o que diremos. Ok, está rodando. Agora. Vou criar novos arquivos e diretórios. Dentro da pasta de origem. Vou criar pastas e dar um nome a elas. Vamos Nance, componentes, imagens e páginas. Essas três pastas e páginas de insights. Vou criar vários arquivos. Ponto inicial js, formulário ponto CSS. Novamente. Um arquivo dot js, arquivo dot CSS, depois settings.js, configurações dot CSS. Está bem? Esses, esses muitos arquivos criaram $9 home dot js. Eu escreverei o código. Primeira coisa que vou importar o React. Em seguida, vou importar o link da cúpula do roteador React. Então vou importar aqui neste ponto js home, vou importar o formulário do arquivo CSS do ponto inicial formulário do arquivo CSS do ponto ponto CSS desta forma, ok? Então, simplesmente terei um componente doméstico e exportarei o padrão no final. Então, dentro do componente home, eu retornarei, retornarei algumas tags de link como esta. E eu vou copiá-lo. Eu vou olhar para cima pago duas vezes. A primeira barra única. E nesse dia ele estará em casa. Em seguida, o próximo será o perfil. Será o perfil. O próximo será cenários e pesados como lágrimas, cenários como este. Agora é só copiar todo o código aqui. Vá para o perfil dot js. Cole aqui. Certo. Agora arquive o arquivo CSS de ponto e exporte o perfil no final. Da mesma forma, vá para settings.js, cole-o aqui. É isso. O mesmo código aqui. Vou importar as configurações. Em seguida, o nome do componente será configurações. Vou exportar as configurações no final. Então é isso para este vídeo. Nós fizemos muito aqui. Agora nosso projeto React JS foi iniciado. E, em seguida, nos próximos vídeos, trabalharemos apenas na interface básica do nosso aplicativo. Obrigada. 12. Trabalhando no componente de aplicativo: Olá, Neste vídeo, trabalharemos nesse componente do aplicativo. Então vá para o arquivo app.js. Aqui. Vou remover esse logotipo e começar a importar dependências. O primeiro reagirá do React. O segundo estará fora, assim como os eliminados. Em seguida, vou importar o componente home da página inicial das páginas escuras. Em seguida, vou importar o componente do arquivo. Em seguida, vou importar o componente de configurações. E então vou importar esse arquivo CSS de ponto do aplicativo. Agora, nessa função, removerei tudo e começarei. Nós esvaziamos colchetes. Então Dave, nome da classe, vou dar o nome de página. Eu farei o CSS mais tarde. Em seguida, teremos o nome da aula ao vivo, barra lateral, digamos barra. Então eu terei Dave, janela principal do ClassName. Então eu terei algumas rotas. As rotas que eu escolhi, que serão cortadas em Lee, e o elemento que exibirá o componente doméstico. Da mesma forma, terei que refinar. Ele exibirá o componente Phi e, em seguida, terei configurações. E ele exibirá o componente de configurações. Depois dessa janela principal terá o sobrenome, certo? Bar. E se eu tivesse lido uma barra de escrita assim. E, no final, ele está exportando o aplicativo. Agora, eu tenho esses dias, mas definitivamente vai precisar de alguns estilos. Basta acessar o arquivo CSS do ponto do aplicativo. Sim. Eu removerei tudo. E comece com a página. Vou escrever esse CSS rapidamente. Espero que você tenha conhecimento de CSS porque este tutorial é sobre Web três e não sobre HTML e CSS. Semana de pixels pegajosos. E leia o azul menos 800 Excel em 0,45. Em seguida, fronteira, à direita. Eu serei um pixel, sólido, RGB. Sessenta e três. Sessenta e três, sessenta e três. E colorei-os de branco e vermelho VH. Então eu terei a classe da barra de luz. Vou apenas copiar e colar aqui. Volition sticky, top 0, peso. Sim, será simplesmente fronteira, esquerda, não direita. Dias sólidos de um pixel. E ao lado. Então, teremos janela principal, pixel pretendido. Em seguida, ancorar, representante, obter qualquer link. Qualquer cursor de link será um ponteiro. Então a decoração do texto não será nenhuma. E isso será importante. Em seguida, a altura será de 0 pixel. É importante. Então terei a página de login, que farei mais tarde. Mas devemos escrever o CSS aqui. Porque, como eu sempre digo, o foco não está na parte CSS. O foco está na construção um aplicativo descentralizado completo. Exibir flex, justificar o centro de conteúdo. Direção flexível, coluna, tampa, o pixel. E isso é feito para o índice de ponto CSS. Mas a única mudança que precisamos fazer, desculpe, isso foi rapto, essa é a próxima mudança. Temos que fazer isso no índice de ponto CSS aqui. Após a margem acima, vou apenas adicionar a cor de fundo ao hash, um para um a seis. É isso aí. Agora salve o arquivo. E vamos dar uma olhada na saída. C. Temos a barra lateral e, em seguida, as configurações do perfil inicial aqui. E nós fizemos e eu divido aqui, então temos seções diferentes em nosso aplicativo. Nos vídeos posteriores, trabalharemos em uma seção específica separadamente. Obrigada. 13. Criando componente da barra lateral: Oi, bem-vindo de volta. Neste vídeo, trabalharemos no componente da barra lateral. Basta ir para a pasta 02 componentes. Aqui, crie dois novos arquivos. Primeiro nome nós barra lateral ponto js e outra barra lateral ponto CSS. Na barra lateral JS, vou fechar tudo. E apenas insight, mas ponto js. Sim, a primeira coisa, importar, reagir, reagir. E então, a próxima coisa que temos que importar o arquivo CSS, que é o ponto CSS da barra lateral. Ok? Em seguida, a barra lateral simplesmente vira anti-impostos por enquanto. E exporte a barra lateral padrão. Ok, em goto app.js, aqui, na barra lateral da barra lateral de componentes. Aqui nisso, Dave fez essa div da barra lateral, simplesmente maneiras de fazer o componente da barra lateral como este. Agora, trabalharemos nesses componentes da barra lateral. Primeiras importações, o que será, o que será necessário. Primeiro serão alguns ícones. Eu realmente gosto do Twitter, cubo, usuário e COG, engrenagem do ícone infantil da web aqui. E a segunda coisa que será necessária é o banco de links de um roteador Create React. Não, sim, não fizemos. instrução Return retornará uma div e dará a ela um nome de classe de dados, conteúdo do site. Em seguida, terei outro div e chamarei de menu. Agora, terei outra div e nomearei detalhes. Nesses detalhes, simplesmente terei o logotipo do Twitter ou o ícone do Twitter, que terá um tamanho de fonte de 50 pixels. Depois dos detalhes, simplesmente terei uma tag de link, que simulará também. A página inicial e o nome da classe serão um link. Então, abaixo disso, terei outro nome para itens de menu. Dentro dos itens do menu. Agora. E essa div não está terminada aqui. Eu terei essa tag de link. E dentro da tag do link será concluído. Fora dos itens do menu. E dentro dele terá um logotipo ou ícone de cubo com tamanho de fonte de 50 pixels. E aqui eu me relaciono com o lar. Assim, dito isso, seção Detalhes. Em seguida, menu. Agora, da mesma forma, vou copiar este link, colar duas vezes. Esse segundo será o nome da classe de perfil dentro dos itens do menu. E aqui só vou escrever phi. Esse terceiro será configurações, sobrenome, link. E aqui vou escrever configurações como essa. Ok, esse componente da barra lateral está pronto. Agora temos que trabalhar no CSS de pontos da barra lateral porque obviamente haverá algum estilo ou ficará muito ruim. O primeiro estilo será o conteúdo cidal. Estofamento. O topo terá 20 pixels. Brotando, certo? 90 pixels. Justifique o conteúdo. Espaço entre exibição, flexão, direção flexível, coluna, altura. Cinco, gravamos itens de alinhamento. E então a classe de detalhes terá display, flex. Leitura do que pixel, lacuna. Pixel. Justifique o conteúdo, comece. Alinhe itens, centralize. Texto, decoração, nenhum, e será importante. Em seguida, os itens de menu, vidro, display, flex, justificam o conteúdo dessa lacuna. Mas em pixel, margem, topo, entre dicas do Excel. Depois Elaine. Os itens serão centralizados. Em seguida, fonte. O peso será 600. Tamanho da fonte. Entre célula típica, preenchimento, dez pixels. raio da borda será de mil pixels. A cor será branca. E isso será importante. declaração dos decks não será nenhuma. E novamente é importante. Então. Eu terei itens do menu. E o que acontecerá se você passar o mouse sobre ele, então o cursor será ponteiro. cor de fundo será de 2828 a oito. Então temos a classe de perfil. Ele terá display, flex, flex direction, column e gap será de cinco pixels. Agora salve tudo. E vamos ver a aparência da interface do usuário com essa barra lateral. Veja, e agora o erro que eu cometi foi aqui aquele cubo. Este será o usuário e o último será Kg. Agora, veja, temos ícones diferentes aqui. Configurações do perfil. Agora essa barra lateral está pronta. No próximo vídeo, trabalharemos nessa barra direita. Obrigada. 14. Criando o componente da barra direita: Então, no último vídeo, formamos na barra lateral esquerda. Está na hora. Trabalhamos na barra direita aqui, essa é esta seção. Então, vamos aos componentes. Aqui. Crie dois arquivos. Primeiro nome, barra direita ponto js. E o segundo arquivo será a barra direita ponto CSS, direito Pod ponto js. Simplesmente importar é o React da biblioteca. E segundo, em segundo lugar, vamos importar o CSS. Isso mesmo, barra de ponto CSS assim. Em seguida, uma função. Agora, vamos apenas retornar colchetes vazios. E, finalmente, escreverei export default. Barra direita. Sair. O arquivo CSS está vazio por enquanto? Vá para app dot JS. Sim, importação, componente da barra direita. E nesta seção da barra lateral, basta chamar a atenção. E eu comprei este assim mais cedo, aqui temos o que é chamado de componente da barra lateral. Nesta seção, vamos chamá-lo certo, mas salve-o. A próxima coisa que queremos é na pasta de origem, temos a pasta de imagens. Coloque qualquer imagem fictícia aqui. Você pode baixar a imagem que quiser da Internet e colá-la aqui. Será um anúncio fictício ou uma notícia ou o que você vir à direita. Eu usei essas imagens. Você pode pausar o vídeo se quiser. Depois disso, depois de termos imagens simplesmente no topo, importe essas imagens. Isso é importante. Vou citar o primeiro, capacete. A partir de imagens, r hat dot JPEG. Copie três vezes. Segundo, vou escrever solidez. O nome da imagem é somente o D, e o próximo é Meta mask. E aqui vou escrever meu Dallas. No momento, vamos importar apenas três cursos principais. Ok, eu tenho esse CD atuando também. Vamos importar a imagem reativa à qual eles reagem é um arquivo PNG e um arquivo GIF como este. Agora, como terei dados fictícios aqui, criarei uma variável que será uma matriz. Ele consistirá em objetos. A imagem que eu tinha. Saiba como usar o desenvolvimento de hardware. E se você quiser, você também pode usar o link. Se você quiser que o usuário realmente seja redirecionado para algum lugar. Mas agora, isso é apenas um link vazio e cole-o três vezes mais. Em segundo lugar, seremos solidez. Eu simplesmente escreverei um contrato mestre inteligente. Desenvolvimento 30s reage maestria ato apenas em 2022 ou 20, máscara. No entanto, eu realmente gosto de me tornar um desenvolvedor web. Agora, esses são apenas dados fictícios. Lembre-se, depois disso, terei uma caixa de busca fictícia. Tão importante. Entrada do código da interface do usuário, código interface do usuário da web três e eu importarei pesquisa e essa entrada eu serei N maiúsculo aqui. Ícone de pesquisa da Web três ícones de interface do usuário como este. Agora, vamos ter um conteúdo div . Vou dar um nome a ele. Então eu terei uma contribuição. Assim. O nível será pesquisar. Nome, pesquisa. Nós acabamos com prefixo. Eu terei esse ícone, que é o ícone de pesquisa. Assim. E a cor de fundo será hashtag. Um por um, pequeno d a seis. Assim. Então eu terei outra div. Esse sobrenome será tendência que eu vou apenas me dar uma rubrica de empréstimo. E agora vou simplesmente percorrer o redemoinho assim. E eu voltarei aqui. Dave. Nome da classe, tendência. Ao clicar. Vou simplesmente escrever ponto de janela aberta, link de ponto E assim. E dentro dessa div haverá um E de imagem ponto E de imagem simplesmente. Será uma imagem de ponto. Nome da classe, imagem de tendência. Vamos estilizá-lo logo depois de algum tempo. E depois outra div com esse texto que é tendência. Próximo. Aqui, ele produzirá um texto de ponto e como este. É isso aí. Agora, ficará horrível se não fizermos essa parte do estilo. Então, vamos escrever um estilo de barra que é lido por dot css. Em primeiro lugar, ficarei com oito barras conteúdo adicionando a célula Unify Fix com 80 por cento. Depois, tendências sombrias. Cor de fundo, asteca para ter 34 anos. Em seguida, raio da borda de cinco pixels. Então a altura mínima, eu acho, temos h menos 200 pixels? Máximo, classificado de 90 pixels. Margem, ponta superior, axila. Adicionando os pixels. Peso da fonte, negrito, tamanho da fonte, 18 pixels, estouro. E então eu vou estilizar tendência. Essa tendência. Basta exibir flex. Justifique o conteúdo. Comece. Alinhe itens. Centro. Espaço entre a margem do pixel, 15 pixels superiores. Preenchimento, dez pixels. Depois disso, terei algum efeito hover. Ponteiro e cor de fundo. Quando pairar, devemos ser astecas? Veja 353 e. Em seguida, imagem da marca. Você deixou vermelho. E pixel vermelho, borda, raio, célula grande. E, finalmente, em seguida, um tamanho de 15 pixels. Peso da fonte, normal. Agora, salve todo o código. Que seja compilado. E veja que você acabou de ver que está parecendo bom. Acho que o bonsai não parece bom. Vamos ver. Temos um erro de ortografia aqui. Tendência. Veja. Agora, o tamanho da fonte também é descendente. Temos aqui, isso e tudo mais. Então, vou verificar e preencher. Então, aqui temos o conteúdo certo. Vamos ver. Está tudo bem. E se eu fizer 90 por cento? Está bem? Ao adicionar d, temos esse envio mais profundo. Está bem? Em seguida, tendências, cor de fundo, raio da borda, altura mínima, taxa máxima. Se eu aumentar a largura máxima, nada muda. Margem, tamanho superior. Isso, então temos tendência, justificar conteúdo, margem central, top 15% adicionando 10%, vamos ver como fica. Apenas alguns problemas com esse lado. Eu só sinto que se não tivéssemos feito isso deveria estar em uma linha como esta e todos. A imagem no app dot css. Por que fazer aqui? Ok, agora está parecendo bom. Se eu quiser mudar alguma coisa, farei isso no próximo vídeo. Obrigada. 15. Vamos trabalhar na página inicial: Oi, bem vindo de volta. Neste vídeo, trabalharemos na página inicial. Mas antes de seguir em frente, eu só quero fazer uma pequena mudança aqui no ponto do aplicativo CSS lá, seção de barramento direito, eu vou apenas mudar a largura de 45 aqui, o 55, é isso. Portanto, agora nosso aplicativo parece decente em termos competitivos antes de ter a distância adequada e tudo mais. E também, precisamos de algumas imagens fictícias. Eu tenho essas imagens aqui. Se você quiser, você pode simplesmente usar o avatar do Google ou qualquer imagem de fundo. Se você quiser. Use-o apenas com o propósito de criar a interface do usuário. De qualquer forma, ele será alterado mais tarde. Então, crie um novo arquivo dentro do diretório de origem e nomeie-o. Imagens padrão dot js. Em seguida, basta escrever export. Const. Padrão. As imagens são iguais a n aqui. Basta colar essas duas imagens. Esta é qualquer imagem aleatória de avatar. E este é usado para ser usado como um banner para a seção de perfil. Assim. E salve-o. OK. Agora vá para as páginas e no arquivo home dot js. Agora vamos começar a escrever algum código. Entrada da web. Três ícones de kit de interface do usuário são o núcleo, não, não o código de etapa diagonal. Se quiser, você pode conferir o kit de três interfaces do usuário da Web e quais são os elementos de interface do usuário que eles fornecem? E em segundo lugar, vou importar imagem com três ícones de interface do usuário. E, finalmente, vou importar imagens padrão. Imagens padrão aqui. Agora, como eu não vou exigir nenhum desses, esses são apenas dados fictícios. Também removerei esse ovo de ligação. E comece, acho que do zero, terei um desenvolvimento. E daremos a ele um nome de classe, conteúdo principal. Então eu vou ter outro Dave. Eu nunca vou crescer de cinco a oito. Então eu terei outra seção como essa. E aqui vou usar o elemento avatar do kit de três interfaces do usuário da Web. E eu vou simplesmente estar morto, então a imagem será, agora será padrão. Esta que é padrão, imagens na posição 0 no tamanho 60 da imagem, como esta. Então eu terei uma área de texto. Rótulo. Que agora eu não estou planejando nada. Sim. Placa de identificação. Em seguida, área, arrendatário, igual ao que está acontecendo. E o nome do vidro será texto, área como esta. Então eu vou ter esse Dave. E depois dessa div terá um endereço. Dave. E darei a ele o mesmo nome de classe que é a seção de tweets. Dentro dela. Eu terei Dave, Este tem className image div. Em seguida, usarei o elemento Image image obtendo dos ícones no tamanho será 25. Assim. Depois que você fez Steve, terei simplesmente outra div. Vou escrever o peso e o nome da turma será para comer. Após o estilo, você saberá, entenderá todas as seções menos na hora certa de fazer o aborto SDM. Depois dessa div. Aqui. Eu terei, terei, terei simplesmente a seção de rede, a seção de feed. E teremos a seção de frutas aqui. Eu vou ter a seção de frutas que diz, ok, agora vamos para o ponto inicial CSS. Vamos fazer um pouco de estilo. Comece com a área de texto. O capital colorido de cinco por cento, depois o fundo, transparente. Borda, dois pixels. Em seguida, raio da borda. Mantenha o Excel. Em seguida, altura mínima. E pixel vermelho adicionando 15 células grandes. Transborde isso. E então eu vou ter peso. Um pixel inferior, RGB sólido, 63363. E estofamento. Estamos no pixel. Então eu tenho aquela seção de tweets. Exibição. Flexionar. Justifique o espaço do conteúdo entre a espera, 95 por cento. Alinhe itens, centro, margem, dez pixels superiores. Então eu vou ficar conduzido a isso. Turma. Cor de fundo. Para sete, E5. Em seguida, escolha célula e 20 pixels, raio da borda, mil pixels de branco. Então nós martelamos. Então, imagem, eles têm raio limite de 50 por cento. Adicionando pixel em seguida. Margem esquerda, retrata o vendedor. E então vou adicionar imagem div hover, Curtis, fichário, fundo, cor. Faça isso, faça assim. Eu só vou salvar tudo. E vamos ver. No app.js, temos a seção Início. OK. Não está nas configurações. É por isso que. Vamos para casa ver. Está parecendo bom. Agora, a única coisa é a área de texto. Vamos ver. Vamos ver o que está acontecendo na área de texto. Eles apenas verificarão o CSS. Temos borda lateral, morreu ADS, leitura de altura mínima é o transbordamento oculto. Então eu realmente vou verificar isso. Agora está funcionando. Eu não fiz nada. Eu apenas removo esse código e simplesmente escrevo a mesma coisa. Novamente. É como o nome da classe textarea, sobrenome, este e espaço reservado, o que está acontecendo? É isso aí. Agora somos capazes de escrever aqui, está funcionando. A próxima coisa em que eu gostaria de trabalhar é nesta seção de imagens. É assim que se seleciona uma imagem do diretório do usuário. Vou apenas importar do React. Você declara, usa, ref. Esses dois. Depois de algumas variáveis aqui, ou seja, arquivo de entrada é igual a usar RAF night. Em seguida, const imagem selecionada, conjunto, imagem selecionada. Eles usam dados. Então eu exigiria outro texto const. Esse texto vai usar data e string vazia. Então vou criar uma função, nomeá-la na imagem, clicar, arquivo de entrada, ponto, atual, ponto, clique. E então eu terei troco. Manipulador. Evento. Const. O arquivo de imagem é igual aos arquivos de ponto ponto de evento 0. Em seguida, definirei imagem selecionado objeto URL da imagem selecionado, arquivo de imagem URL assim. Depois disso, simplesmente. Iremos para a área de texto. Sim. E escreverei seu próprio método onChange, que simplesmente definirá texto para o que quer que esteja sendo escrito aqui. E ponto, ponto, valor de ponto, assim. Está bem? E então eu tenho essa imagem, que darei o onclick e simplesmente escreverei na imagem, clique. Desmarque. Depois disso. Aqui dentro, terei uma tag de entrada, que era o arquivo. tipo será cinco. Amigos, será o arquivo de entrada. E a mudança, será a mudança. E aprenda e estilize. Isso é algo que você precisa ver. Eu só vou mostrar nenhum. Não quero que essa tag de entrada seja exibida, elemento de entrada para mostrar. Eu só quero que os usuários possam clicar nessa imagem. E eu terei apenas uma declaração “se-else”. Se a imagem selecionada for verdadeira, então eu simplesmente mostrarei o ovo da imagem, qual fonte. A largura da imagem selecionada será 150. E se não for, mostrarei essa etiqueta. Esse é o ícone da imagem. É isso aí. Salve toda a carne. Selecione o arquivo e veja. Agora eu consigo selecionar uma imagem. E se o usuário quiser, ele pode alterá-lo novamente clicando aqui. É isso aí. Essa seção de imagem está concluída. No próximo vídeo, trabalharemos na seção de pés aqui. Obrigada. 16. Criando o componente Feed: Oi, bem-vindo de volta. Neste vídeo, trabalharemos nesta seção de feed. Para isso, temos que criar um novo componente, ir para a pasta Componentes e criar um novo arquivo no feed dot js. E também tem um arquivo CSS para isso. O peso em ID dot CSS. Ao intuir cadeiras de alimentação File. Importe o ato e importe também o peso no CSS de pontos. Vamos hoje à noite. Podemos explorar os novos dias do pescoço. Vá para casa dot js. E aqui mais o arquivo importar trigo no componente de alimentação. E simplesmente chame o componente aqui assim. E aqui estou enviando um objeto rho phi é igual a falso. Isso significa que não quero todos os feeds aqui, não para um perfil específico. Então. Bom arquivo IGS. Vamos fazer algumas importações. Quadro, padrão, imagens, então. Importar núcleo. E em negrito, mensagem, círculo, estrela e ícones mágicos como este. Na declaração de retorno, vamos escrever o nome da classe Dave para alimentá-la. Vamos ter nossos dados aqui. É arredondado. A imagem é igual às imagens padrão. Essas são apenas algumas imagens agora. Imagem da equipe, digamos 60. Então vamos ter outro Dave. Sobrenome, guache completo. Primeiro, Dave afirma que eles costumavam comer e apenas escrevendo uma máscara de terra agora. E depois. Simplesmente uma contagem como essa. E aqui eu tenho uma conta falsa como essa. Depois Dave, ClassName, content. Legal. Eles estão aprendendo do zero. E eu vou mostrar essa imagem. Havia alguma fonte de luz. Você cai imagens padrão. E uma imagem de sobrenome. Então. Depois de dias, Dave, terei o nome da turma. nome da classe é o. Geralmente em suas interações. As interações terão uma div. Com LastName. Interação entorpecida. Os entorpecidos terão aqui círculo de mensagens, ícone, tamanho da fonte 20. terão aqui círculo de mensagens, Perna esta cópia pesa duas vezes. Então aqui estará, eu simplesmente escreverei morreu. E eu vou fazer mágica. Agora. Eu tenho esses dois componentes prontos, agora é hora de fazermos essa parte do estilo. Vamos ler o tweet. Taxa máxima e porcentagem vermelha. Parte inferior da borda. RGB de um pixel. Sessenta e três. Sessenta e três. Sessenta árvores. Assim. Adicionando branco verde, pixel e colorido. Justifique o conteúdo, o espaço entre a exibição, flex, o cursor, o ponteiro. Em seguida, tuitamos nossa cor de fundo. Vou apenas mudá-lo para este código hexadecimal um. C, faça isso. Antes. Então eu vou aguentar isso completo. Tweet. Essas bandeiras. Justifique o conteúdo, comece. Relaxe a ação da rede. Coluna, lacuna. Em seguida, escolha a célula D9 por cento. OK. Então eu realmente tenho nas eleições, as eleições mitógenas. Em seguida, pixel. Essa peça. Lax. Sim, conteúdo D5, centro, lacuna, 150 pixels. Então eu vou mudar essa interação nums ash, T F T, F, T F. Display, flex. Justifique o conteúdo, escuro, lacuna e pixel. Adicionando pixel, borda, raio. Mil pixels. Depois disso. Eu sei que há muito estilo. Se eu quiser, posso te dar o arquivo, mas estou apenas escrevendo sobre todas as coisas no código CSS também. Porque já que vocês também estão construindo essas coisas, é melhor. Fazemos isso do zero no 28600. E alinhe os itens. central Pixel central. Então, o conteúdo é flexível. Justificar conteúdo. Comece. Direção flexível, coluna, espaço, cilindro fino. Altura máxima em pixels. Então espere. Imagem, espera, 98 por cento, raio e altura de pixel 90%. Então terei outra aula aqui, carregando a qual usaremos mais tarde. Eu gosto estática, coluna, lacuna, fazendo o lead de pixel, certo? Eu sei que havia muito código agora, economize. Vamos verificar nossa página inicial. Há algum erro aqui. Vamos ver o que é um erro idiota. Esse nome de classe. Eu escrevi errado. Vou dar um pequeno f aqui. Salve e veja. Nem tudo é perfeito. Temos a conta aqui, imagem aqui, esse texto. Se o usuário fizer upload de alguma imagem, ela será exibida aqui corretamente. Está parecendo muito bom. Esses são apenas ícones fictícios. Isso mostra que está na rede poligonal. Tão legal. Nossa página inicial está pronta. Ou seja, a interface do usuário está concluída. No próximo vídeo, trabalharemos nesta página de perfil. Obrigada. 17. Vamos trabalhar na página de perfil: Oi. Neste vídeo, trabalharemos nessa página de perfil. Vá para o perfil dot js. E aqui, o topo. Vamos importar algo. Primeiro, vamos importar imagens padrão padrão de imagens padrão como essa. Então eu vou importar o peso em um componente assim. Ok, vamos remover esses links e começar com ativo, não Dave, vou começar com uma imagem, arquivo de sobrenome de outra fonte. Imagens um. Em seguida, teremos outro nome do contêiner div, F, B. Gostaríamos desse perfil. E é assim que uma imagem novamente. E agora esta imagem é exibida na imagem. Basta escrever imagens de arquivo e z, você sabe, aqui. Depois disso em HD, não apenas deixei essa imagem rígida com fechamento automático. Tenha outra div, que será o nome do perfil, olá. E carteira Raphael. Basta ter uma entrada aleatória aqui. Em seguida, terei um link que enviará o usuário para a página de configurações. O nome da classe. Rafael. Tudo bem. Depois desse link, vamos ter mais um dia de bio mais três, que sou eu. Então vamos ter e eu terei um perfil, aplicativos da web. E dentro dele só eu terei uma aba dos meus pesos. Então, no final, terei que esperar em fade. Componente. Largura. O perfil é igual a verdadeiro. Assim. Agora, obviamente, vai parecer, não vai ficar bem. Eu tenho que fazer o estilo para ir para o CSS de pontos de perfil aqui, e vamos fazer esse estilo. Tudo. Aqui está sobre o estilo. Então, porcentagem de peso, porcentagem máxima de peso. Altura para fazer célula típica, cheque, capa. E b, f, b, recipiente. Taxa máxima e porcentagem de chumbo. Exibição. Flexionar. Conteúdo D5, comece. Direção flexível. Coluna. Inferior. Um pixel. Sólido, RGB, 63. Assim. Arquivo, VFB. Com o Excel. Raio. Mais profundo, enviou uma tática pixel por pixel, sólida. Um por um dia a seis. Relativo menos 65 pixels. Esquerda. Retrata. Em seguida, faça o estilo do arquivo. Nome. Branco. Lesão relativa menos 55 pixels. Esquerda. O pixel, tamanho. Dica Excel. Encontre o peso. Depois disso. Eu sei que há muito estilo a ser feito. Carteira de arquivo áspera. Eu não sei se temos o lucrativo, certo? Sim. Esse aqui. Cor RGB. Quando, quando? Quando, quando é para quando, quando? Quando, quando para você parente Shen. Em seguida, menos 50 pixels. Pixel esquerdo. Tamanho da fonte 14 pixels. Depois coisas da Jane, tipo biografia. Aprenda a luz. Bem, você não deve ser relativo menos para o pixel. Esquerda, qual o tamanho do pixel, 16 pixels. Peso da fonte, 500 dólares, ou só se aplica quando as luzes estão certas. Então eu falhei. E sua seção, como para exclusão, relativa menos 1 16º pixel, esquerda, 50 pixels. Tamanho, 16 pixels. Peso da fonte 0,5 pixel. Branco sólido. Espere. E pixel vermelho, centro de conteúdo justificado. Isso deixa bandeiras. Em seguida, arquivo bruto nele . Vá para cern. Ponteiro. Refinar. Aplicativos. Exibir flex, justificar conteúdo centralizado, branco, negrito. E, finalmente, Perfil. Guia. Inferior. Em seguida, pixel, borda. Na parte inferior, dois pixels. Sólido. Um, maiúsculo a, maiúsculo F. Do. Eu sei que havia muito CSS nesse arquivo. Agora, salve-o. E vamos ver a aparência da nossa tela de perfil. Agora. Acho que cometi algum erro aqui porque aprendi, então não estava lá. Vamos ver. Refinar. Esse foi o erro. Salve isso. Veja que a página de perfil está tão bonita. Eu sei aqui que a imagem binária e essa imagem são as mesmas porque estamos apenas usando os mediadores. Mais tarde. As imagens serão diferentes, mas acho que está muito bonito. Nossa página inicial e página de perfil estão prontas. A única coisa que resta é a página de configurações, que faremos no próximo vídeo. Obrigada. 18. Vamos trabalhar na página Configurações: Oi. Neste vídeo, trabalharemos em nossa página de configurações. Vá para settings.js. Vamos começar nosso trabalho aqui. Em primeiro lugar, vou remover todos esses comprimentos. Em seguida, importarei entrada e também o upload. O que eu sou lá eram três códigos de interface do usuário. E vou usar o estado de uso do React. Uma vez que isso envolverá arquivos e tudo mais. Então vou criar algumas variáveis são estados. Primeiro, seremos arquivo, conjunto de arquivos, arquivo de arquivo chamado para usar data como esta. Em seguida, devolveu arquivo, conjunto, arquivo de banner. Eles usam o estado. Em seguida, const name. Setname é uma coisa boa. Data de uso. Em seguida, const bio. Definir biografia. Para usar um estado assim. Então eu terei duas funções. Balanceado. Banner é o evento. Se o evento não for igual a null. Mesmo local definido pelo arquivo agora. Esse evento. E o segundo será o manipulador de arquivos const. Vai fazer um evento? mesma coisa. Se o evento não for igual a null? Em seguida, aquele arquivo bruto. Devemos fazer um evento assim? Então vamos trabalhar aqui. Isso é o returns, uma declaração de retorno onde Dave, LastName, página de configurações. Primeiro será entrada, rótulo, nome, nome, mudança de nome, taxa e porcentagem de leitura rotulados pela cor de fundo. Hashtag um. Para um. O 26. Um onchange será simplesmente definido como nome, valor alvo. Assim. O segundo campo de entrada será chamado bio. Nome, mudança biológica. E a liderança será definida como bio. Então eu terei o sobrenome, PFP, que eu mudo minha imagem. Vou usar esse componente brilhante ou você pode dizer, isso nos é dado por eles em três kits de interface do usuário. E vou usar o manipulador de perfis aqui. E da mesma forma, terei trocado. Imagem binária. E aqui será banido esse manipulador. E, finalmente, terei o botão Salvar, que editarei no CSS. Vá para Configurações do arquivo CSS ponto. Digamos que a página Configurações. Adicionando 1880 pixels. Exibir flex. direção flexível será a lacuna da coluna. O pixel. Então eu vou ter esse. Velar e stack 6878. O acolchoamento à esquerda. E vou usar o CSS para salvar a cor de fundo. Um D, A1, F do que a leitura será então pixel e ponta da asa, axila, raio da borda. Depois branco. No peso seis e vermelho. Vermelho e vermelho por cento. Exibir flex. Justifique o centro de conteúdo. Então, no entanto, vou apenas dizer que Calcutá é carceral deve ser apontado. Vamos economizar e vamos ver. Veja nossa página. Está parecendo decente. página de configurações do perfil também está concluída. Temos todas as nossas páginas prontas. Então, antes de terminar este vídeo, eu gostaria de criar uma tela de login básica para o usuário, porque obviamente o usuário precisa se autenticar antes de ir para esta tela inicial. Até agora, vá para o arquivo app.js. Aqui. Bem no topo. Vou importar o botão. Três códigos de interface do usuário também são uma semana importante e encontraram o ícone de máscara de três ícones de interface do usuário. Agora, aqui eu gostaria de ter algum estado e espero que o tenhamos usado. Não, não deixamos você ficar aqui. Então, basta usar um const. Nosso conjunto morto de dez decaimentos é dez fechado. Eles usam os arquivos no primeiro valor que eu gostaria que fosse falso. Devolver. Eu só vou ter uma declaração if else. Iv, a autenticação é verdadeira. Então eu vou mostrar essa nossa div. Se a autenticação for verdadeira, todo show é o fluxo de horas aqui. E se não, mostrarei esta tela, que será Dave LastName. Agora página de login. Assim. Então eu vou ter que dizer logo em dizer D. E eu vou ter um botão. Eu terei um botão aqui agora, que será desclicado. Simplesmente não fará nada. Tamanho X L, X dois. Quando fizermos login com o MetaMask, equipe, o ícone principal será essa máscara. Eu posso gostar disso. N no app dot CSS, temos esta página de login. Css, como você pode ver. Como vou dizer, bem, se eu for ao meu site e se eu atualizar, ele está compilando, vamos ver se ele está lá no editor. Ok, veja, nossa tela de login também está muito bonita. É muito básico, mas faz nosso trabalho. Isso é tudo para este vídeo. Espero que você tenha aprendido muito. No próximo vídeo, trabalharemos nessas funcionalidades, como login com minha máscara. Então, eventualmente, buscaremos dados do nosso blockchain usando um test.js. Portanto, fique atento e continue aprendendo. Obrigada. 19. Autentique o usuário usando o Metamask: Oi, bem-vindo de volta. Neste vídeo, autenticaremos o MetaMask da semana do usuário. Anteriormente, tínhamos essa tela de login. Agora é hora de escrever a funcionalidade. Então, vamos para o arquivo JS do ponto do aplicativo. Aqui, vou me certificar importância de todas as dependências. A primeira coisa que eu precisaria é o efeito usado. Então eu fiz a partir de um núcleo exigirá notificação usada, bem como carregamento rígido. Então eu tenho isso, eu posso simplesmente girar. E depois disso, vou importar éteres e utilidades dos comedores. Isso nós exigimos. Então vou exigir o modelo da árvore da teia. Do modelo da árvore da web. Depois disso, exigiremos fonte, Arrastar, endereço. Rom. Pode enlouquecer phi prime aqui. Depois disso, exigiremos ABA, pasta ABA e, em seguida, clique nesse ponto Jason. E, finalmente, exija nossa dependência. Vou apenas sentar como você precisa e depois afinar nosso Todd. Essas são as dependências. E acredito que temos o desenho animado. Seu dy já está instalado. Vamos ver, está tudo bem agora há algum erro , está compilando. Acho que está tudo bem, ok. Agora, precisamos de algumas variáveis de estado. Como faremos, exigiremos esse conjunto de dados. O provedor é um estado legal de usar e teremos o tédio da janela como o primeiro encontro. Depois disso, exigiremos biblioteca de notificações do kit de três interfaces do usuário da Web. E então temos um estado apenas para mostrar se o que está recebendo está carregando não está definido. O estado de carregamento está disposto a usá-lo. E a primeira coisa que lemos arquivos. Agora, para ler sobre as notificações, você pode acessar o site dos três UI Kit, site oficial e ver como usar essas notificações e tudo mais. Eu terei apenas uma função de notificação de aviso. Férias são iguais a assim. Só vai dizer que não há defecação. Esse é esse. Ele simplesmente terá isso. E dentro dele, temos que enviar alguns parâmetros como tipo, aviso, mensagem, mudança, rede. Quem polígono para visitar este site? Depois disso, farei com que ele simplesmente mude para a rede de polígonos. E depois disso, terei simplesmente a posição da notificação no canto superior direito. Assim. É isso aí. É assim que mostramos uma notificação. OK. Mesmo assim, exigiremos outra, teremos outra notificação que será conhecida como notificação de informações. O tipo estará completo. Ele aceitará o número da conta. Nessa mensagem, simplesmente mostrará o número da conta. E aqui vamos escrever que eu digo conectado à conta do polígono. Ou seja, se o usuário alternar sua conta poligonal, também mostraremos uma notificação porque esse usuário não pode usar outra rede , como trimestral ou Rob Stone e tudo. Mas ele definitivamente pode trocar de conta no polígono Wallach. É isso aí. Agora, vamos começar a escrever essa função. Vou nomeá-lo, conectar, carteira, afundar, assim. Agora, exigiremos o modelo de três da Web para isso. Vou simplesmente escrever Web três em 70, escapar disso. modelo de árvore pequena é igual ao novo modelo. Então precisamos de conexão igual para aguardar model.fit connect. Depois disso, teremos o provedor de nuvem é igual a novos comedores, que provedores, provedor Dodd Web três. E enviaremos essa conexão aqui assim. Depois disso, obterei a rede que é a rede conectada. Porque somente na rede poligonal o site será aberto. Aguarde o provedor para obter uma rede como esta. E sabemos que para uma cadeia poligonal IgA1, id é igual a 80001. Essa é uma ideia em cadeia de uma rede poligonal. Agora terei uma cláusula if else. Se obter ID do ponto jane da rede, não é igual à ideia da cadeia de polígono se não for equacionada. Em primeiro lugar, mostrarei uma notificação de aviso. Tarde. Eu vou adicionar nosso switch. Em seguida, rede. O que quero dizer com isso, estou indo ao extremo. Vamos selecioná-lo para baixo. Então, simplesmente esse outro. Ele será executado se cadeia de polígonos estiver conectada. Ok? E agora vamos trabalhar nessa tentativa. Vou simplesmente escrever await provider, provedor que a solicitação. Então, o que eu vou pedir, vou pedir que meu Ted deixe É preciso cadeia média. Ou seja, se estiver conectado a outra coisa que é piedosa ou a qualquer rede entre o switch da rede. E paradigmas. Paradigmas, escreveremos o ID da cadeia. Utils, valor hexadecimal de ponto. Simplesmente enviaremos o ID do polígono. E aqui, se for bem-sucedido, então nós simplesmente recarregaremos, ou seja, a localização da janela, não recarregaremos assim. E esse código adicional indica que essa corrente não foi adicionada aos meus danos. Isso é que o usuário não tem essa cadeia. Ok? Mas definitivamente temos que adicionar essa cadeia. Essa é a rede de teste de polígono para a máscara Matter dos usuários. Estamos apenas tentando tornar o site deles cheio de funcionalidades. Ok? Agora, isso significa que vamos e uma rede de polígonos. Você. Pai, máscara do meu pai. OK. Agora vamos verificar se código do ponto do switch é igual a 4902. Nesse caso, basta secar. Sim, eu apenas acrescentaria que a edição é enquanto estamos adicionando lá, ela foi lançada. OK. E aqui vou tentar adicionar a conta. Desculpe, no provedor de blockchain, esse método de solicitação é chamado de carteira. Adicionar. É tédio. Padrões detalhados. Teremos tudo. Isso é. Jane ID será utils, esse valor x. Temos que escrever uma ideia de cadeia de polígono do que a rede de polígono de nome de cadeia leve de companhia Em seguida, URLs RPC. Basta ter um RPC. Ou, se você puder mudar o PC, basta pesquisar no Google. Se, se esse URL não funcionar, Mumbai dot chain, stack, labs.com, block x low URLs, HTTP e HTTPS. Varredura poligonal de Mumbai. É realmente Mumbai, Mumbai dot polygon scan.com. E então eu terei um jardim nativo. Veja. Eu terei a moeda nativa. Aqui. Temos que enviar. Símbolo, magia e decimais 180 k. E aqui simplesmente eu terei. Então isso é um peso. E depois que isso for feito, basta a localização do ponto da janela de carregamento, recarga de pontos, assim. Então, aqui estamos adicionando a cadeia de estádios, que é a cadeia de polígonos, se o usuário ainda não a tiver. E no anterior, estamos simplesmente adicionando, trocando essa corrente. Ou seja, se o usuário tiver, se o usuário estiver usando outra cadeia, então aqui ele simplesmente a mudará. Espero que não haja erro. Tudo funcionará. OK. E agora temos que trabalhar nesta seção L. Ele será executado se cadeia de polígonos estiver conectada ao MetaMask. Então, o que faremos aqui é verificar se o usuário não existe. Em nosso blockchain. Atualizaremos os detalhes do usuário em nosso contrato, bem como o armazenamento local. O que quero dizer com isso é que também usaremos o armazenamento local aqui. Então, primeiro de tudo, o que vou fazer é obter o logout da mesa desde que isso receba signatário assim. Então eu vou pegar esse sinal de que eu me visto, signatário ponto e me visto assim. Então eu vou conseguir esse contrato. Instância do contrato, este novo contrato, este contrato C terá capital assim. N aqui, o que eu vou enviar seu endereço de contrato do Twitter. Então Twitter ABI dot aba. E, finalmente, o signatário, assim. E aqui vou chamar o fundo de detalhes do usuário Chen, que é GetUser await. No caminho certo. Obter usuário. Se você for para o contrato inteligente que esta solidez, você verá esse método que é getUser, onde ele está aceitando endereço. Então, agora o que estamos fazendo é verificar se esse usuário é um novo usuário ou se já foi autenticado anteriormente. É isso aí. Isso é o que adicionamos? Dívida. Então, o que estamos validando aqui, simplesmente obteremos detalhes do usuário. Se o valor da imagem do perfil existir. Ou seja, se o usuário existir estiver aqui, nós simplesmente receberemos e atualizaremos o contrato pela primeira vez . Ok? Isso nós temos que fazer. E depois de fazer isso como está aqui, simplesmente temos que ler o provedor de conjunto com seu valor de provedor. E o conjunto é o nosso 10º bilhete para a verdade. E essa função ou essa declaração if-else que escreveremos no próximo vídeo. Eu sei que havia muito o que fazer neste vídeo, esse vídeo tão longo. Mas, como você vê, esse vídeo foi nosso vídeo mais importante em nossa seção. Obrigada. Vamos continuar no próximo vídeo. 20. Verifique se o usuário já existe: Bem-vindo de volta. Vamos continuar com nossa função connect vallate aqui. Em primeiro lugar, basta fazer essa pequena alteração IMG que é a imagem do perfil. E se o usuário já existir, simplesmente definirei que despejei naquele armazenamento local pelo nome, a primeira coisa que escreverei na conta ativa assim. E eu retransmiti Jason dot stringify. E aqui ele vai renunciar ao endereço deles, mas vou simplesmente copiar isso novamente. E aqui estará, isso será seno em se vestir assim. Então, estou apenas armazenando no navegador do usuário. É o nome da conta dele. Então, então eu escreverei, nome de usuário, estará aqui, getUser detail, e ele virá em um formato JSON e eu simplesmente escreverei o nome. E, da mesma forma, vou copiar e colar. O segundo será a biografia do usuário. Será bio, depois será imagem do usuário. E o próximo será o banner do usuário. E aqui mude para a imagem do perfil. E o segundo será o perfil, assim. Está bem? Portanto, isso acontecerá se o usuário existir e, depois disso, ele definirá isso, fornecerá isso e definirá esses autenticados como verdadeiros. Caso contrário, se o usuário for um usuário iniciante. Agora, aqui, primeiro escreveremos o estado de carregamento definido é igual a true. Então vou simplesmente escrever LED está de acordo com o ajuste do nosso ponto de alcatrão, gerar nosso pneu assim. Portanto, terei um banner padrão aqui. Vou usar o padrão agora a partir de imagens padrão. Então eu tenho esse. Vou usá-lo como um banner padrão. Está bem? Então, da mesma forma, farei a mesma coisa aqui. Definido do que o armazenamento local. Portanto, o nome de usuário ficará vazio , pois se trata de um novo usuário. Portanto, o nome de usuário estará vazio. biografia do usuário estará vazia. Já que o usuário atualizará a biografia mais tarde. A imagem do usuário será nosso Todd. Esse aqui. Apenas um avatar aleatório. E o binário do usuário será esse, banner padrão como este. Então aqui eu espero que você tenha entendido até aqui. Depois disso, vou simplesmente tentar ter aquele bloco de captura como este. Nesse seco, vou simplesmente escrever que transação const é igual a um usuário de atualização de ponto de contrato de taxa. Agora, temos que enviar algumas coisas, nome de usuário, biografia do usuário, perfil, foto e banner assim. Então eu irei imediatamente transação, peso de dados de transação como este. OK. E se houver algum erro, primeiro escreverei o adicionador console.log. Apenas para fins de depuração. E o usuário não tem mágica em sua conta. Apenas para esse propósito, mostrarei uma mensagem de aviso do tipo notificação. Obtenha o melhor polígono magnético de RAM ou um conjunto. Então, obviamente, para esta transação que é atualizar a transação do usuário, precisaremos de algum tipo de tokens somáticos porque há gás e todos eles estão envolvidos aqui. Exigir mínimo 0.1 med tech. Isso é necessário para ver em nosso site. E partição. No canto superior direito. Assim. Após essa regra de multiplicação, defina o estado de carregamento como false. E a partir daqui eu simplesmente voltarei. Então esse era o outro bloco. Ou seja, se o usuário for um usuário iniciante, teremos o avatar padrão, que será gerado aleatoriamente. Então, obviamente, cada usuário terá seu próprio avatar. E mais um banner padrão. Eu não escolhi nenhuma outra biblioteca. Eu simplesmente tenho uma imagem fictícia. Agora, é hora de realmente fazer a parte HTML. Então aqui temos divisão lateral autenticada é a janela principal deles, ok Agora, na página de login, temos isso. Em seguida, imagem do Twitter. Agora, aqui vou ter esse carregamento. Se e então estiver carregando. Então vou mostrar um carregamento rígido. Mesmo tamanho de lugar, 50, cor verde giratória. E como vou mostrar isso, mas pronto. OK. Neste, mas então ele simplesmente conectará a carteira. E fora isso, temos XL. Está tudo bem aqui. Salve isso. Vamos ver nosso site. Espero que esteja tudo bem aqui. Agora, o que vou fazer é acionar essa função de carteira usando o gancho de efeito dos EUA. Aqui. Vou usar um efeito como esse. Ele deve ser acionado quando a página for carregada. Agora arquivo FASTA, o que farei é simplesmente escrever se esse provedor não estiver lá, ou seja. Não há My Thomas instalado. Vou simplesmente escrever um alerta de ponto de janela. Não. Minha máscara foi instalada assim. E vou assimilar window.location dot replace HTTPS. Mask.io acessará o site oficial. E se não, simplesmente chamarei a função connect wallet. E também terei que esses métodos sejam fornecidos para que esse provedor ponha. A primeira coisa será a alteração das contas. Haverá um identificador de chamada de função nos vestidos alterados. Então eu terei mudado. Então, teremos uma função chamada manipular gene alterada. Então eu simplesmente escreverei esta conexão. E ele simplesmente lidará com uma função mais pesada chamada handle this connect. Vamos criar essas funções e excluir contas alteradas. Isso nos dará contas. Aqui. Eu vou fazer uma verificação. Se o id da cadeia de pontos do provedor for igual ao ID da cadeia demótica , ou seja, este é o ID da cadeia mitótica , então eu vou aparecer para notificação e simplesmente enviar as contas 0, que é a conta número. Portanto, ele exibirá no site qual conta foi escolhida. Segundo. Depois disso, eu quero que ele recarregue obviamente. Mas havia alguns problemas. Então, apenas para evitar recarregar duas vezes pela primeira vez, estou usando esta declaração if. Caso contrário, não era necessário. Mas você pode tentar sem essa declaração if. E você verá que o site foi carregado duas vezes e estava perguntando o que você diz. Essa transação várias vezes para a mesma transação. Então, eu quero apenas hoje obter a conta ativa do item aqui. Se não for igual a null. Vamos definir o tempo limite. Simplesmente. Vou escrever a localização da janela dot reload. E deve recarregar dentro das árvores. Isso pode. Só estou dizendo isso de novo. Você pode experimentá-lo sem essa declaração, mas ele será recarregado duas vezes. Então. Agora terei outra função chamada chain alterada. Portanto, temos o ID da cadeia aqui. Então, se Shane ID não for igual ao nosso mágico, então teremos uma notificação de aviso. E vamos simplesmente janela ponto, localização, recarga de pontos. E finalmente, como agora eu não estou fazendo nada. Nesta declaração. Aqui. Se você quiser, você pode fazer, fazer o que quiser. Então, aqui temos tudo pronto. Agora é hora de testar e fazer, lembre-se, eu já testei isso. Então, eu posso ter algum tipo de sessão ou locais em nosso armazenamento local anterior. Então, primeiro de tudo, estou tentando me certificar de que não há nenhuma conta anexada a ela. Acho que não há conta. OK. Porque isso acionará essa função. Ok, para testar. Vamos para outra cadeia de identificação e mostraremos a você. Vou fazer testes antecipados na rede, ok? Agora, se eu salvar tudo, veja a primeira coisa. Está perguntando, Ok, conecte-se com meu Thomas. Eu direi a seguir. Conectar. Em seguida, ele está nos pedindo para adequá-los à sua rede de teste de polígonos. Eu vou e simplesmente troco. Agora ele está carregando e agora está nos pedindo fazer essa transação para atualizar o usuário. Estou confirmando. Agora vamos ver o que acontece. Faça aqui. Tenha algum editor ou está tudo bem. Pode levar algum tempo. Veja, agora somos enviados para a tela. E se eu atualizar, vamos ver o que acontece. Veja nove enviados diretamente para a tela inicial porque essa conta já está sendo conectada. Veja aqui, essa conta está conectada aqui. E se eu for para o endereço do contrato e recarregá-lo, veja que tenho essa transação 31 segundos atrás para atualizar o usuário. Agora ele foi atualizado com sucesso. Nossa parte de autenticação foi bem-sucedida. No próximo vídeo, escreveremos a funcionalidade para adicionar um brinquedo por esse usuário. Obrigada. 21. Configuração do armazenamento Web3 IPFS: Oi. Neste vídeo, trabalharemos na parte de armazenamento do Tao Te. Ou seja, precisamos habilitar algum tipo de IPFS para garantir que o usuário possa fazer upload imagens além do texto. Portanto, existem vários provedores de armazenamento IPFS. Uma é a pinata, a segunda que vou usar são três armazenamentos. Se você simplesmente acessar o site também. Veja, este é o site oficial, armazenamento de três pontos na web. Estamos aqui procurando armazenar arquivos. Se você quiser armazenar LFTs, também há armazenamento de pontos NFT. Então, se você quiser, você pode ler a documentação. Só vou fazer login. Então, agora estou fazendo login na minha conta. Veja, esse é o painel. Aqui. Eu tenho que pegar uma nova chave de token. Obviamente, já existem muitos arquivos no meu armazenamento, mas você deve acessar os tokens da API e criar um novo token. Vou chamá-lo de API do Twitter. E simplesmente criado. Depois disso, apenas copiado, certifique-se de não compartilhar essa chave de token com mais ninguém. Definitivamente, vou excluí-lo mais tarde. Simplesmente nesse arquivo config dot js aqui, certo? Exportação. Armazenamento const três. Api é igual a e cole a chave aqui. Em seguida, vá para o arquivo home dot js aqui. E agora importa poucas coisas. Na Web, três códigos de interface do usuário. Eu gostaria de impor a notificação de carregamento e uso. Depois disso. Depois disso, temos que esperar no feed. Então eu vou importar éteres. Éteres, mas da biblioteca Ethernet, não hardhead. Em seguida, importe o modelo de árvore da web para o modelo Então vou importar esses dois arquivos, que é um endereço de contrato. E esta, nossa API de armazenamento da camada da web. Da configuração. Então vou importar ABA, ABA slash return json. E finalmente vou importar as guloseimas de laboratório contadas a partir dos 18 anos. Hum, instalamos o armazenamento da árvore da web ou não. Vamos ver. Eu não me lembro. Idade da porta dos pontos, eu acho. Não instalamos o armazenamento web two dots. Vamos ver três pontos. Para enfurecer o npm. Temos que instalar isso. Simplesmente. Vá. E PM em grande estilo. O armazenamento T dot. Após a instalação bem-sucedida, novamente, npm start. E aqui temos esse armazenamento web t dot instalado. Está bem? Agora temos esse arquivo de entrada, a imagem de lactato. Depois disso, terei algumas coisas. Vamos começar com const. Use essa imagem. É bom analisar pontos JSON, armazenamento local, ponto obter item. Então, simplesmente estou obtendo a imagem do usuário do armazenamento local como quando, quando estávamos autenticando, tivemos um aleatório ao longo do tempo. Certo? Então, estamos usando isso. Estamos conseguindo do depósito local. Em seguida, fomos o arquivo selecionado, arquivo selecionado para usar o estado. Em seguida, temos o estado de carregamento. Carregando, definido. Carregando, desculpe não carregar, está carregando. Para usar a pausa. Em seguida, temos um URL carregado do BFS vazio. E, finalmente, fizemos notificação para usar a notificação. Essas são todas as coisas que são necessárias. Em seguida, teremos uma função sinc para armazenar o arquivo em nosso IPFS. Vamos anotar isso. Você pode obter esses métodos na documentação, bem como no armazenamento da árvore da web, se tiver tiver alguma confusão aqui. Simplesmente esse cliente const é igual ao novo armazenamento de gostos na web. Então. mesmo acontece com a API de armazenamento em árvore. Então const root CAD é igual a await. Cego. Voto. Tudo bem, assim. E, finalmente, terei IPFS URL igual a isso. Isso está acima da guia. Botão Tab. Como https barra cifrão, raízes CAD ponto b, fs de web dot link do que barra dólar. Arquivo selecionado. Nome. Assim. Essa era uma função para armazenar o arquivo apenas dessa quantidade. Então temos clique na imagem, Ok, e depois temos o manipulador de alterações. Custo. O arquivo de imagem vai para o arquivo de destino e, em seguida, define a imagem selecionada. Nós temos isso. E, em seguida, defina o arquivo selecionado. Alvo de ponto de evento, encontra. É isso aí. Economize em. Espero que não haja problema. Então, neste vídeo, acabamos de trabalhar nas funções do IPFS e tudo mais. No próximo vídeo, escreveremos a funcionalidade completa para adicioná-la a ela. Obrigada. 22. Função para adicionar um Tweet: Oi. Neste vídeo, escreveremos Panchen para adicioná-lo a ele. Então, simplesmente, vamos criar uma nova função quando Chen e eu a nomearmos e adicionarmos a ela. Então, primeiro de tudo, terei uma declaração if else. Se o texto do tweet dot dream for menor que cinco, teremos uma notificação mostrando uma delegação de aviso. Essa mensagem será no mínimo, cinco. A dose será necessária. Judeu e reto. E aqui eu simplesmente voltarei. Ou seja, não quero que as outras funções sejam executadas. Se não for esse o caso, simplesmente escreverei o upload do conjunto. Verdade. Se a imagem estiver selecionada , essa imagem selecionada estará lá. Em seguida, chamarei a função de arquivo da loja. Daqui. É essa função que nos dará o URL carregado pelo IPFS. Depois disso, eu simplesmente terei nossa conexão, ou seja, o modelo Web três é igual ao novo modelo. Então a mesma coisa, const, conexão é igual a aguardar os três pontos se conectam. Contras de altura é igual a novo. Teste se os provedores Dodd Web três provedores. E eu enviarei a conexão aqui. Então const sine é igual ao provedor que obtém Signer. Então eu vou conseguir o contrato. É o contrato. Ele terá o endereço do contrato EVA e cianeto. Então eu terei que o valor do tweet é igual a 0,01. O preço dos contras é igual ao ponto E ponto mais o valor e. Porque se você se lembra de adicioná-lo a ele, temos que enviar essa mágica. Experimentar. Pegar, bloquear, destruir mais longe. Vamos fazer com que nossa transação seja igual a esperar, contratar e twittar. Nós os enviamos para um texto, um URL BFS e nossa transação de valor de preço dessa forma. E depois que eu receber uma notificação, eles são bem-sucedidos. Para isso. E então com sucesso Shen Dao na posição vertical. Em seguida, definirei a imagem selecionada. Faça outro conjunto. Dois, são necessários dois conjuntos vazios selecionados. E, finalmente, configurar o poluente falso. E se tivermos um somador, então, novamente, mostrarei uma notificação. Eles acrescentaram. Aqui, escreverei transação erro de transação de transação, mensagem de erro. E depois disso, configure o upload para false assim, para que o usuário saiba o que está acontecendo. Ok? Em seguida, temos que retornar o arquivo HTML aqui. Vamos verificar se cada linha será a imagem do usuário. Vamos ver onde temos a imagem do usuário aqui. E eu vou fazer uma pequena carta. Use essa imagem. Então temos a área de texto. Então temos o deck Sadia aqui. O valor será texto e em tons. OK. Então temos seção de tweets de Liz, seus amigos onchange exibem nenhuma imagem selecionada. Espere um dia, está tudo bem. Então temos esta seção aqui. Ao clicar. Adicione a oito divertidos Chen. E dentro dele terá uma declaração if como se o upload for true, então mostrarei o indicador de carregamento como um direito real, assim. E aqui vou enviar o upload de prop também, para que mais tarde, quando o usuário adicionar novo a ele, esse tweet no componente fluido também atualize isso. Desculpa. Nada mais. Vamos ver. Vamos ver se há algum erro. Acho que não. Veja, temos nosso tempo aleatório aqui. Então isso significa que está funcionando. Então, nós apenas escrevemos, este é o meu primeiro 28. Vou usar essa imagem. Vou simplesmente escrever para ele, dizer que este é o indicador de carregamento. Agora ele começará a carregar. Depois de fazer o upload, ele os chamará de Meta mask. Para acrescentar isso a isso. Temos que dar 0,01 métrica. Estou confirmando. Obviamente, isso levará algum tempo. Você tem que esperar. Veja o tweet adicionado com sucesso. Temos uma notificação aqui. E se formos ao contrato e atualizarmos, vamos ver. Veja, nós temos esse acréscimo a isso. Três segundos, então eu acho, e o valor é 0 e então tudo está funcionando corretamente. No próximo vídeo, escreveremos a funcionalidade para mostrar os tweets do blockchain. Obrigada. 23. Função para mostrar os Tweets: Oi, bem-vindo de volta. Neste vídeo, trabalharemos na função de mostrar tweets em nossa página inicial, bem como na tela de perfil. Então vá esperar. No arquivo feed dot js. Temos que pegar algumas coisas. Temos que importar a frutificação. Então, vou ver o uso. Vou apenas copiar e colar isso aqui. Isso exigirá uso, efeito, data de uso, essas coisas. Depois disso, exigiremos que exigiremos eles tenham ajustado SCSS a partir do núcleo, exigiremos o carregamento do avatar. Use a notificação. Então, nos ícones, além da mágica, também exigiremos o ícone do compartimento. Em seguida, exigimos um modelo de árvore concisa e um endereço de contrato do Twitter. Não exigimos a API de armazenamento da árvore da web. E, finalmente, exigimos que contemos o contrato. Você pode dar o nome que quiser. Não é como se você tivesse que nomear o mesmo em todos os arquivos. Ponto Jason. OK. Vamos exigir alguns estados. Então, primeiro de tudo, devemos, estamos enviando alguns adereços aqui. É antes de tudo, todos os dias eu disse que const no usuário vai fazer adereços perfil de pontos. E deixe o componente de carga ser igual a props dot reload. Assim. Então eu terei que, está definido como é igual a usar o estado EMTALA. Então eu terei dados de carregamento constante. Conjunto. O estado de carregamento é igual a usar coisas de estado e eu não carregarei. E, finalmente, eu terei feito a notificação se você vai usar a notificação. Ok? Agora, vou escrever essa função para buscar apenas usuários para relacionar uma função sinc, carregar meus tweets. Então aqui vou copiar e colar algumas coisas. Esse é o modelo Web três, conexão e esse contrato aqui. Então aqui temos o modelo da árvore da web, depois a conexão, depois o provedor, depois o signatário e o contrato aqui. Será simplesmente não ter signatário de pontos EBI aqui. E então vou adicionar contras, os dados vão aguardar o contrato. Receba meus tweets do blockchain. Em seguida, adicionarei const. usuário é igual a JSON.parse, local storage dot get item username. E da mesma forma, terei que usar essa imagem é igual à análise de pontos JSON. Aqui será usada essa imagem. E então eu relaciono que o resultado const é igual a esperar. O que vou perder, dados de pontos, mapa de pontos. Aqui, uma pia. Primeiro, vamos ver isso. Tempo. Uniques é uma boa maneira de fazer isso. hora do ponto. Em seguida, armas, eles farão Novo. E apenas convertendo o carimbo de data/hora para a data local. Tempo Unix multiplicado por mil. Isso eu recebi pelo Google. Você também pode pesquisar no Google. Como converter unidades, unidade de um carimbo de data/hora Unix para a data JavaScript. Os fundos até o momento são a data de vencimento para a string de data local f, RC. Ok? Em seguida, adicionarei o item principal. Estou convertendo em um objeto igual ao peso. Twitter. E isso não será igual. Este é o ID da coluna, id do ponto do tweet, ponto do texto txt. Imagem em guache. Essa imagem foi excluída. taxa é nome de usuário. Nome de usuário. Use essa imagem. Use essa imagem. Data, encontro. Este é o objeto item, e aqui vou simplesmente retornar esse item e criar um anúncio neste rádio de resultados. Mas então eu vou simplesmente dizer resultado ponto reverso porque estou apenas revertendo a edição e definindo o estado de carregamento para carregado assim. Depois disso, vou criar uma função semelhante para buscar. Todos os tweets. Isso é para a tela inicial. Vou dar um nome, carregar nossos tweets. Então, essa teia para modelar, essas coisas são comuns. Aqui. Agora, algumas coisas vão mudar, mas nem tudo no caminho certo. Então aqui temos todos os tweets, todos os tweets. Então, aqui não exigimos esse nome de usuário e imagem porque isso será aleatório para todos os usuários. Obviamente, estamos recebendo tweets mais antigos. É por isso que. Em seguida, o resultado promete ponto unix time para uma data de carimbo de data/hora ponto. Está tudo bem. Então, exigimos que os detalhes do usuário sejam iguais a aguardar. Contrato. Dot get usuário. Aqui enviaremos wait dot, Twitter. Obteremos os detalhes do usuário. Temos essa função em nosso contrato inteligente de solidez. Então precisamos devolver sua identidade para uma mensagem de texto. Imagem, é o nome de usuário obterá detalhes do usuário, e aqui ele será nomeado e usará essa imagem será rho phi i m g. Como esse retorno, então tudo é o mesmo. Agora temos que retornar o HTML acordo. Eu vou aqui, certo? Se o estado de carregamento for igual a não carregado, aqui. E devolva o nome da classe. Carregando. Aqui, como carregar o widget 60 e a hashtag colorida da impressora a 2475. Da mesma forma, teremos se o estado de carregamento for igual a carregar e fazer um comprimento de ponto não estiver lá. Em seguida, retornaremos ao nome de uma classe de tag. Eu vou apenas dar cargas. E aqui não adicionará peso disponível. Se o usuário não postou nada, esse será o caso. E se não, então aqui temos tudo. Aqui. Ei, les dot map. Em seguida, teremos o peso e o índice. Vou cortar tudo e colar aqui. Então temos que fazer algumas mudanças. Obviamente. A imagem terá peso. Use essa imagem. Então aqui, em vez de uma massa de terra, vou escrever nome de usuário. Nessa conta. Eu escreverei para ele. Então, nesse conteúdo do tweet aqui, vou twittar o texto. E nessa imagem eu tenho que verificar se a imagem da íris está disponível ou não. Então, vou simplesmente escrever tweet, imagem do tweet não igual a vazia. Então só mostre isso. Então só temos que mostrar aqui uma imagem escura como esta. Ok? Então, no círculo de massas de interações, está tudo bem. Dormente eu disse círculo, eu simplesmente escreveria 0. Aqui em não começa. Em vez desse estilo, vou escrever calendário e simplesmente colar a data do tweet. E então, finalmente, vou fazer uma verificação. Se, a menos que o usuário seja verdadeiro. Em seguida, mostrarei uma pasta bin que é Dave, nome da classe, interações num. E eu vou mostrar que foi dobrado. Peso, cor F, F 0000. E agora isso terá em onClick de null. Nulo. Ok? E na outra parte, vou escrever isso, pode levar um. Está aqui no outro, e vamos apenas colá-los no Ártico. Essa é a lógica que existe. Se for uma seção de perfil que o usuário deve ser capaz de excluir usando esse compartimento. Eu posso fazer seus próprios tweets. Agora, tudo está feito. A única coisa que tenho que fazer é chamada de efeito enorme. Porque, obviamente, temos que chamar essa função que é carregar meus tweets e tudo mais. Eu realmente gosto, se este for um perfil de usuário, então vou ligar para o senhor, meus tweets. Como chamarei, carregue todos os tweets. E esta página será atualizada. Se enviarmos um lago para comer aqui, o componente de carga e tudo. Se isso for alterado, essa página será atualizada. Agora salve e vamos ver se há algum erro ou não. Refrescante. Veja, nós temos nossos dois. Mas eu não. E eu estava prestes a dizer que a imagem não está lá, mas a imagem também é mostrada. Isso significa que tudo está funcionando perfeitamente. Em nossa seção de perfil também, temos isso, ou seja, nossos tweets e todos esses dados também estão corretos. Veja aqui que temos essa pasta bin. Mas aqui temos esse sinal de métrica, o que significa simplesmente que podemos excluir esses tweets da nossa seção de perfil. Espero que você tenha gostado e aprendido muito. No próximo vídeo, trabalharemos para mostrar as informações corretas nesta seção de perfil. Obrigada. 24. Mostrar os dados do usuário na página de perfil: Oi, bem-vindo de volta. Neste vídeo, trabalharemos nesta seção de perfil. Vá para o arquivo dot js do perfil. Em primeiro lugar, temos que importar algumas coisas. Essa cópia, essa coisa CDX que é usada efeito de uso de estatina. Então precisamos em letras em negrito dos comedores. Importe árvore da web, modelo, três modelos e, em seguida, importe de ícones. Agora, aqui vamos precisar de muitos estados. Vamos começar obtendo as informações ativas da conta desse armazenamento local. Jason. Bares. Armazenamento local, item dot get, conta ativa. Da mesma forma, vou apenas copiar e colar algumas vezes. O segundo será o nome do usuário. Aqui estará o nome de usuário, então será a biografia do usuário. Será a biografia do usuário. Em seguida, é a imagem do usuário. Temos a imagem do usuário, depois é Use o banner. Em seguida, o nome da chave é banner do usuário. Então eu terei um estado chamado saldo da conta. O saldo da conta é igual ao seu estado. O primeiro estado será 0. receberei o saldo da conta Também receberei o saldo da conta da carteira e mostrarei em nosso site. Então, basta escrever uma função sinc, obter contagem, equilíbrio. Assim. Terei o verbo tree model, model, new web tree model. Então essa conexão, como sempre, conexão de armas é que aguardaremos Web três módulo 18. Ele terá que modelar essa conexão. Então eu vou deixar, vamos. Vida é devido a novos comedores, provedores, web para provedor. Temos que enviar essa conexão. Então, lidere. Valence é igual a esperar. Ou obtenha equilíbrio. Temos que enviar esse número de conta, que está na conta ativa. Armazenamento local. Então eu vou apenas converter por lentes um bom comedor. Faça o Tails. Formato de ponto de uma tabela. Ótimo, éramos um número muito longo. Vou ajustar os genes que se equilibram à substring. Mostra apenas quatro dígitos de 0 a quatro. É isso aí. E eu vou deixar definir o saldo da conta, vou equilibrar. Então, no efeito dos EUA, chamarei essa função obter saldo da conta. E vou mostrar essas informações aqui que são arquivadas por nó, serão banner do usuário. Em seguida, perfil, imagem será usado nome da imagem. Se houver algum nome, nome de usuário. Aqui, será uma conta ativa. Então eu vou mostrar a magia. Eu posso escrever o saldo da conta assim. Então você tem a biografia do blefe do usuário. Vou apenas escrever a biografia do usuário aqui. usuário é a imagem da biografia deles, pois nem tudo está lá. Digamos, Bem, veja, eu tenho 4,7. Dramático, esta é a minha foto de perfil. Número da conta, nome de usuário, qualquer biografia de usuário não está lá agora porque é uma nova conta. Nós o atualizaremos mais tarde. Mas essa seção de perfil está funcionando perfeitamente. Obrigada. 25. Função para excluir um Tweet: Oi, bem-vindo de volta. Neste vídeo, trabalharemos na função para excluir um tweet. Então, obviamente, nessa seção de perfil, temos que o botão da dívida é excluir oito semanas. Vamos para esse perfil que js e C não estão nas cadeiras de ponto de perfil. Temos que codificar para fazer isso de forma fluida. Aqui. E aqui você verá isso. Nós temos isso sido. Basta ir aqui. Em seguida, o nome da função, peso atrasado. Precisaremos desse ID do tweet para esse propósito. Em seguida, o arquivo FASTA definirei o estado de download como não carregado. Então vou precisar de alguns dias para modelar. Conexão de qualquer um. Os dados Ebi são iguais a aqui , serão excluídos para oito. Então id, e temos que enviar para que isso seja excluído. Então aguarde o peso do ponto de dados do ponto. Então eu vou mostrar na notificação, sucesso. Com sucesso. Audição. Escuro, brilhante. Agora também podemos dar algum padrão. Podemos mudar o ícone. Vou mudar o ícone para este compartimento. E depois disso, vou ligar para carregar meus tweets apenas para atualizá-lo. Ok? Então, aqui neste onclick, temos que escrever, excluir para esperar e fazer isso. ID do ponto. É isso aí. Essa é a mudança apagada necessária. Agora salve tudo n. Só para simplificar, eu já adicionei outro tweet, que agora vou deletar. Veja, isso é um tweet. Sem uma imagem. Vou clicar neste ícone e ver onde há atraso para confirmar que a noite levará algum tempo, como sempre. Veja, esse tweet foi excluído com sucesso, que o Twitter agora saiu da nossa tela de perfil e também da tela inicial. Isso significa que a funcionalidade de exclusão também está funcionando perfeitamente. Isso é tudo para este vídeo na próxima sessão. Obrigada. 26. Função para atualizar detalhes do perfil: Bem-vindo ao vídeo final em que trabalharemos na página Configurações para atualizar os detalhes de um usuário. Vá para o arquivo settings.js. E vamos começar a trabalhar. Do núcleo. Exigirei o carregamento e também a notificação de uso. Então, a partir do React, exigirei data de uso e efeito de uso. Então eu vou importar coisas. Acho que se eu for para o perfil, as cadeiras estão em casa ponto js. Eu vou encontrar todas essas coisas aqui. E vamos apenas colar a teia dos comedores para modelar com um endereço de contrato e armazenamento. Então, para contar a ABI e o armazenamento na web. Agora, na página de configurações, vou precisar, vou deixar a primeira notificação. É bom usar a notificação? Então const username? Vai para Jason, bares, armazenamento local, ponto obter item, nome de usuário. Da mesma forma, exigirei a biografia do usuário. Use a imagem e a faixa do usuário assim. Então eu tenho o arquivo de perfil do Prof, depois o nome do arquivo binário. A primeira coisa que ele terá é a biografia do nome de usuário, o primeiro estado em que terá a biografia do usuário. Então eu terei saltado. Estado de carregamento e carregamento. Use as barras. Então deixe phi. Senhor, você vai usar a imagem logo no início em que o URL de upload do Ben é igual ao painel do usuário. Eu vou explicar tudo. Mas aqui, o que estou fazendo é aqui nome, o primeiro, logo no início, ele terá nome de usuário predefinido, que está no armazenamento local, mostrou isso. Então aqui vou escrever, vou escrever dois ou vai ajudar como um espaço reservado, qualquer que seja o nome anterior. Só por esse motivo. Agora, terei funções. Para isso. Eu simplesmente irei novamente para home dot js, obter a função de arquivo de porta de poeira aqui, cole-o. Aqui. Ele terá selecionado o arquivo. Ele terá selecionado o arquivo e tudo está agora k. E eu retornarei este URL de upload do IPFS. Este URL de upload, eu o devolverei. Todas as outras coisas. Isso será uma pista. Porque isso não foi predefinido. Estamos declarando isso aqui. Está bem? Então, no manipulador de banners, temos isso, que é que não precisamos alterar nada no manipulador de perfil. Evento. Disse o perfil. OK. E teremos esse enorme efeito feito com material de MDF. E isso mudará de acordo, sempre que esse estado de carregamento mudar, ele atualizará a página. Então temos que escrever a função. Temos que escrever a função para atualizar o perfil. Agora, o que vou fazer define o carregamento como verdadeiro. Então, se o perfil Phi não for igual a null, então o que temos que fazer é novo lead, novo arquivo. Url é igual a await store file. E temos que enviar um Adicionar um arquivo de perfil como este. E então escreveremos o carregamento do perfil. Está aqui. É isso. Phy payload que você é executado. Por. Agora faça o upload desse URL. OK. Eu vou apenas inserir aqui. Este é um novo perfil carregado aqui. Será um novo URL carregado do arquivo Raw se o usuário tiver alterado alguma coisa. Da mesma forma, o que farei é se o arquivo do banner mudar, o que farei é realmente ouvir como um novo URL enviado por banner. E ainda assim eu vou gostar do arquivo de banner. E, novamente, aqui vou mudar por não ter carregado. E aqui isso mudará porque são condições porque o usuário pode ou não alterar a foto do perfil. Ele só quer mudar o nome de usuário. Depende dele. É por isso que estou fazendo tantas verificações de IF. OK. Então eu vou exigir depois disso, eu vou exigir, mais uma vez menos coisas. Peso. Tinha muito código. Então agora estou pensando onde aqui, esse código repetidamente exigimos ir para as configurações aqui Eu tenho essa data base. Temos que modelar, temos a conexão, chegar ao centro. Então temos aquele Twitter Aba aqui. Nós aba dot aba. Então temos que a transação é capaz de contrair. Usuário de atualização Dot. O nome do usuário, URL carregado do arquivo bio, banner, URL carregado como este. Em seguida, adicionarei await transaction desse peso e atualizarei isso alterado. Agora, o que precisamos fazer é garantir que também atualizamos o armazenamento local. usuário, JSON.parse, stringify, nome. Em seguida, use a biografia. Jingle fi, bio. Você é imagem, URL carregado do perfil, Banner. Por URL não carregado. Então vou apenas enviar uma notificação. Sucesso. Tudo bem. Teste com sucesso na vertical. E, finalmente, adicionaremos set loading false. Portanto, este tem a função de fazer upload do URL. Finalmente, temos que retornar o HTML também. Aqui. O nome está morto. Sobre mudanças. O S simplesmente temos que adicionar valor é igual ao nome de usuário. Da mesma forma, aqui temos que escrever valor é igual a usar bio. Então temos a imagem do perfil, o que é bom. Também temos essas imagens de banner. Kay? Em seguida, mostrarei apenas um carregamento que, se estiver carregando, em seguida, mostrarei um div LastName Save. E eu vou mostrar o botão de carregamento aqui. E se não estiver carregando nenhum onclick, onclick, vou apenas chamar a atualização. Essa é essa função. Vou cortar e colar aqui. Agora, vamos salvar tudo. Vamos ver, espero que esteja tudo bem. É só dizer o nome. Eram três. Foto do perfil do desenvolvedor. Eu vou mudar para Ben. E aqui vou escrever. Eu vou mudar isso. Eu tentei mudar o binário para este. Obviamente, levará algum tempo porque são duas imagens carregadas no IPFS e todas simplesmente salvas. Espere um pouco. Então, ele está pedindo para atualizar. É por isso que mais alto a confirmação da transação. Vamos esperar. Então, o perfil dos mortos mostra com sucesso. Agora, vamos ao nosso perfil. Veja, está parecendo tão bom. Todas as nossas informações agora estão atualizadas. Temos essa foto de perfil, temos esse novo banner. Se eu for para a tela inicial, veja aqui, e também minha foto de perfil será alterada. Então, todas as funcionalidades e agora funcionando perfeitamente, nosso aplicativo está completo. Espero que você tenha gostado e aprendido muito. No próximo vídeo final, testaremos novamente esse aplicativo completo e veremos se há algum bug ou não. Obrigada. 27. Teste o aplicativo completo: Olá, bem-vindo de volta ao vídeo final deste curso. Neste vídeo, testaremos esse aplicativo completo. Então, vamos começar. Em primeiro lugar, vou apenas copiar o host local e criar uma nova janela anônima. Aqui, eu não instalei massa de matéria. Vamos ver o que acontece. Veja uma instalação normal e mais idiota. Se eu clicar em OK, ele vai diretamente para o site MetaMask. Portanto, o usuário precisa instalá-lo para visitar nosso aplicativo para isso. Então, isso o torna livre de erros. E agora vamos mudar uma conta. Originalmente, eu já tinha essa conta conectada e também adicionei um novo tweet. Agora usaremos essa árvore de contas e clicaremos em Conectar máscara de metal. Muitas vezes, indefinidamente, ele solicitará atualização do perfil de profundidade. Vamos ver quais são os nossos dados que eu recebo. Então veja, esta é a hora que eu recebo e esta é a página inicial. E esse tweet foi feito da minha outra conta. Se eu for para a seção de perfil aqui, ele não mostrará nenhum tweet disponível. E também, se você quiser, você pode simplesmente mudar a cor desse preto para branco. Não parece bom. E agora vou dizer isso também. É da segunda contagem. E eu só digo “tweak”. Confirme esse tweet para nós, edite com sucesso. Obviamente, demorou algum tempo, mas agora é adicionado com esse ponto r aleatório. E você pode ver que também temos isso evidenciado ir e ir para as configurações e simplesmente mudar para. Vou apenas escrever aqui. Mark Zuckerberg, fundador das mídias sociais. E apenas salve-o. Salvar perfil atualizado com sucesso. Se eu for para o perfil, o nome é Mark Zuckerberg. E aqui está apenas mostrando Mark Zuckerberg. Todas essas seções estão funcionando perfeitamente. No lado direito. Você pode simplesmente fazer o anúncio que quiser. Suponha que cursos de treinamento, notícias tendências, blogs de tendências, o que você quiser, você pode simplesmente codificar para o seu site. Agora, gostaria de mostrar a funcionalidade que adicionamos. Suponha que, se mudarmos a conta de um golpe, queremos contabilizar também. Veja se eu conecto. Novamente. Ele realmente conectou o ícone do polígono, este aqui. E agora estou de novo, volte para minha primeira conta. Então, tudo isso é feito aqui dentro. É isso. No app.js. Temos uma conta para mudar e mudar genes e tudo mais. Então, o que acontecerá se eu mudar a rede de polígonos para ficar mole. Veja, então é uma rede de dois polígonos. E agora, se eu clicar aqui, ele está nos pedindo para mudar de rede. E se eu mudar de rede, então, novamente, eu sou enviado de volta para o site ou então eu não poderei visitá-lo. Portanto, este site tem todas as funcionalidades. Tudo está funcionando. Você pode simplesmente torná-lo ao vivo e, eventualmente , em seu portfólio, depende de você. Espero que você tenha gostado. Certifique-se de assistir meus outros cursos também. Obrigada. Tenha um bom dia e continue praticando.