Ferramentas para utilizar e interagir com a Blockchain | Bootcamp #EthereumRio | Robson Silva

Bootcamp Ethereum Rio (2023) · 19 Dec 2022 · 2:04:18

A hands-on bootcamp session moves beginners from Remix to a professional contract workflow built on three tools. The instructor explains how a decentralized app's browser, node provider and contracts fit together, sets up an Infura project for node access, and installs Hardhat to compile, run a local chain, deploy a sample contract and run tests. Hardhat's console opens a live connection to a test network, and settings keep the mnemonic and project key in an environment file rather than in shared code. The session ends with Tenderly, used to step through a transaction line by line when debugging.

Speakers

Topics

From Bootcamp Ethereum Rio (2023), hosted by Ethereum Brasil.

Transcript

som alô alô vão lá pessoal vamos voltar eu sei que a aula do Alex foi bem avançada até para vocês eu sei que não foi até uma coisa tão prática para o momento mas vocês sabem que a gente está gravando então mais tarde quando acabar o evento a gente vai começar a disponibilizar os vídeos aos poucos tá então vocês terão os vídeos de volta para vocês assistirem fazer esse pedaço agora a gente volta até para uma coisa mais básica de novo que são as instalações de algumas das coisas que o Alex usou Então quem não conseguiu instalar com ele a gente vai instalar agora com calma mas ao mesmo tempo eu sei que talvez agora seja um momento

mais crítico da aula em termos de internet tá porque a gente vai pedir para vocês instalarem novo De tudo ao mesmo tempo a gente vai parar a internet do prédio a isso que é verdade então assim se alguém tiver até internet no seu celular que você queira usar tals ficar lerdo daqui fica à vontade para dar uma troca e para você também ser produtivo tá bom e eu queria apresentar para vocês então agora o hobby faz tempo aí que a gente se conhece a gente se conheceu na Campus Party de 2018 e faz faz muito tempo aí e seguimos nossos caminhos distintos lá na frente nos encontramos de novo mais voltado aí na nas questões de Finanças

descentralizadas em 2020 a gente tá vendendo fazendo o projeto macacão eu fazendo um eles fazendo outro 5:30 da manhã eu terminei o meu tô passando indo embora vejo eles na mesa dele parou lá fico mais um pouquinho com ele foi super legal eu ganhei prêmio eles ganharam prêmio também fiquei muito feliz de ter mais brasileiros ganhando prêmio lá na raca Tom e o projeto deles que eles fizeram lá foi para frente assim é um projeto de sucesso o hobby vai falar mais a respeito e é um super prazer para mim ter o hobby aqui em seguida o Guilherme que também são da equipe são mulheres aí né ainda podes finesse então o hobby vai fazer um projeto usando hard Hatch explicando melhor o rádio Ratinho

detalhes e depois o Guilherme vai fazer um Frontier Então essa é a nossa programação do dia hein e muito muito bem-vindo Ravi beleza gente então vamos começar assim para quem não acompanhou totalmente né a última aula enquanto eu tiver me apresentando você já podem se preparar aqui que a gente vai usar terminal o node o 12 ou 14 eu tô usando o 12.22 Se não me engano 12 a 14 funciona um editor de texto da sua preferência eu prefiro usar o vs code e

seria legal aqui eu vou usar um pouquinho de Java script básico para escrever alguns testes Mas é bem básico então quando tiver me apresentando quem não conseguiu que não tem ainda o node já instala é eu acho que a única biblioteca que a gente vai usar eu não vou nem usar githrub eu vou colar o Smart Contract direto lá no pede para a gente não ter que a gente conseguir pular essa etapa Então beleza uma intro rapida minha e eu vou falar da potes aqui dois minutos eu sou o Robson pessoal me chama de Hobby eu sou engenheiro naval E então isso por que que eu falo isso porque eu

comecei a programar com 24 anos não são aquelas pessoas que trabalham desde os 15 e eram né um gênero do computador hoje eu faço sete anos de programação o meu aniversário hoje inclusive foi sorte e eu passei pela minha trajetória assim eu fui passando por tudo em programação aí eu comecei em back-endi aí do back Angel fui para o frontie Change react aí virei microfoodstack em 2017 quando eu comecei em cripto eu fazia na verdade não fazia Smart contra ti ainda né eu fazia só o front-ends lendo e interagindo com o Smart Control E aí depois que a gente

foi migrando para construção dos Smart contra eles mesmo então isso é legal para vocês terem uma ideia da jornada né do programador assim você não precisa só começar com solidite direto às vezes você começa só no Frontier de você ler contrato isso já é difícil é difícil assim você já É valorizado no mercado né você ser um frontiene que sabe ler contrato interagir contrato já é uma habilidade que quase ninguém sabe e um pouco da potes aí da nossa eu comecei a gritar um pouco antes da Pods Mas essa eu acho que a parte que que mais importa que nos últimos dois anos né O Gui tá aqui comigo ele vai fazer a próxima aula mas após a gente a nossa história começou como se fosse isso

daqui na verdade a gente começou aqui no Brasil a se envolver com rakatons a gente trabalhava junto numa empresa de blockchain E aí a gente foi para o rakaton no mesmo que asfaltava lá em Denver a gente foi um dos finalistas vitally que é esse carinha aqui na esquerda até ele não parece muito impressionado com o que a gente apresentou e sobre muitas portas a exposição então para vocês que vai ter o rakaton semana que vem Isso mudou assim a nossa trajetória depois eu posso contar é quem quiser ouvir mais a parte não de programação mas de empreendedorismo que também algo que a gente consegue compartilhar mudou assim quando a gente foi para o palco e a gente teve essa exposição a gente desceu do palco já

tinha investidor querendo falar com a gente já Vocês estão levantando o quanto o quanto que é a rodada e a gente era um projeto assim eu não sabia nada direito das coisas e aí algumas semanas depois a gente começou a receber umas que eles chamam de code Call né como se fosse olheiro de futebol gente a gente recebeu uma ligação acho que da Finlândia de um cara que viu a gente no vídeo online falando assim olha eu quero investir Eu tenho um amigo E aí nessa hora a gente resolveu sair da empresa que a gente tava trabalhando foi um mês antes do covid um mês depois o convite começar Então tava naquele momento meio de incerteza a gente saiu para montar empresa podes E aí tá dando certo né Ainda tem muito caminho pela frente mas

a gente já chegou em um lugar que a gente não imaginava e dois anos atrás após ela é um é bem complexo não é o tema aqui né não quero fazer propaganda Mas ela é um protocolo de derivativos em cripto né derivativos é aquelas coisas complexas de você tem futuros opções né aquelas coisas que derivam de algo a gente fez começando com Smart né o projeto engraçado ele começou com um ou dois Smart contra E aí depois de um ano e meio aí um ano e pouco de desenvolvimento essa daqui era a cara da nossa arquitetura só da parte de

contratos então a gente quer chegou a ter 24 contratos ao sistema então isso para falar que assim a gente tem um pouquinho de experiência a gente passou por muitos muitas dores de cabeça E aí a gente tá tentando hoje devolver né devolver um pouco aí do que que a gente aprendeu para facilitar a vida de vocês que estão começando agora eles ele vai contar história inteirinha no pendei tá gente vocês podem assistir a história inteirinha do que que a gente passou né Então isso é um pouco da intro o que que eu quero tentar falar é muita

coisa mas vamos ver se a gente consegue No Ritmo saudável na verdade assim a apresentação ela vai ser sobre o canivete suíço de etéreo o remix ele é uma boa porta de entrada mas no dia a dia de uma empresa se você vai querer trabalhar para uma empresa ou você vai abrir a sua empresa o remix às vezes ele não dá conta porque você precisa de mais coisas por exemplo né você vai começar a depunhar contratos na mão daqui a pouco você quer ter um script que você apertou um botão ele já depõe uma sequência de seis contratos já faz uns testes aquelas coisas que uma empresa mais profissionalizada ela precisa ter né o tal do CIA e CD né

continentes já que envolve muita segurança você precisa ter esses processos e para você construir esses processos você precisa de ferramentas hoje eu vou falar de algumas das Ferramentas especificamente três falar de três ferramentas muito úteis para quem vai entrar no mercado aí de Cristo e de botinha eu vou falar do infra do Hard Hatch que vocês acabaram de ouvir o Alex e do tenderli que ele é uma ferramenta para the bugging né para você achar erro imagina na blockchain era muito difícil você achar um erro porque já tá lá

em byte code que os contratos se comunicam você não consegue saber direito que está acontecendo Então tende ele é uma ferramenta nova ele tem dois anos aí que ele é muito bom para divulgar o que que tá acontecendo onde que errou o que que aconteceu no contrato então é um pouco disso que vai ser a aula hoje antes de falar de antes da gente instalar o em fura que vai ser o nosso próximo passo eu quero fazer uma um recap bem rápido de arquitetura né para a gente começar a mudar a mentalidade né quem tá vindo da web 2 para web 3 tem uma diferença aí de como que você pensa numa arquitetura de sistemas

então assim na web 2 isso aqui é qualquer aplicativo o app que você tá pensando ele segue mais ou menos esse formato Então vamos lá pegar o Uber o Uber você tem um aplicativo que tá no lado do que a gente chama de cliente esse aplicativo quando você pede uma corrida ele se conecta num servidor para buscar essa corrida e esse servidor Geralmente se conecta numa base de dados para buscar o motorista aí ele acha o motorista devolve para os servidor o servidor devolve ao mesmo tempo para dois aplicativos do motorista avisando que a corrida chegou e o do cliente falando a sua corrida chega em tantos minutos

então geralmente o steck né que a gente chama dessas linguagens na web 2 no front né você tem aí sei lá o react englore PHP das antigas HTML é isso que roda do lado do cliente se for no Browser se for no Android IOS aí enfim você tem o react Nate vir para C híbrido Swift aqui é só uns nomes para vocês começarem a ser familiarizado aí você tem nas linguagens dos servidor você tem aquelas famosas né novo de gol pai tonyxery por aí vai e na base de dados você tem lá a base de dados SQL normal se você precisa de uma base de

dados rápida como é Uber por exemplo em vez de você gravar a base de dados no HD Você grava na memória RAM a mais famosa delas é o Reds então isso aqui é uma cara de arquitetura web 2 né Isso muda um pouco porque a base de dados É blockchain mas o Smart contra ti e ele tem uma cara de back-end porque ele executa a loja que ele só não grava informação então isso aqui é uma cara do que é um dep né sei lá pegar Pods ou pegar o unishop isso aqui é mais ou menos o que acontece no aplicativo descentralizado Então vamos lá entrei no Uni só entrei

em algum aplicativo descentralizado tá rodando no Browser está instalado no Browser do cliente então também tá no clight só que eu cliente eu não tô rodando a blockchain no meu computador eu não tô rodando não eu posso até rodar posso até baixar o GAP lá e rodar né baixar um tera e rodar blockchain e me conectar em mim mesmo mas geralmente não é isso que acontece quando vocês mexerem como é que tá mesc né quando vocês executam uma transação no meta mesc o metamed que tá mandando aquela sua aquele seu pacotinho a sua transação assinada para alguma coisa para um produto aqui no caso é um fura

que esse cara que roda um nó e ele que vai transmitir né Fazer o broadcast da sua transação para o resto da rede então o que tá aqui em pontilhado é a cara do cliente é o que acontece no cliente aqui tem um ponto aqui de centralização né que poderia ser você você poderia estar rodando você mesmo mas você roda aqui um serviço o que a gente vai instalar agora é não é nem instalar não que a gente vai criar uma conta é nesse serviço nesse em fura então o que que é infura ele é um node essa service ele é um nó esa service eu ele roda blockchain para mim e ele me dá uma chave de acesso e ele

que transmite as informações que vai dar blockchain do meu computador para blockchain eu só mando o pacotinho ali já assinado para ele jogar isso para rede E aí lá na rede aqui o Smart contra ele vira uma cara de back end aqui porque ele vai executar uma lógica e ele vai gravar um estado novo seja no seu contrato ainda seja no contrato de um terceiro e isso vai começar a se propagar na rede na blockchainer então isso aqui é uma também para vocês terem uma ideia aí de começar a pensar um pouco sair só do se não parece você vai no médico e você só fala do braço né É só o soliditismo E aí

é só o Fronte então isso aqui é para vocês começarem a conectar as coisas e ter essa visão um pouco mais macro Beleza então agora a gente vamos para começar com a mão na massa aí né Eu quero que vocês entrem no e crie uma conta nesse serviço então ele a gente eles vão a gente vai estar rodando um nó em fura vai estar rodando nós e ele vai liberar aí pra gente um acesso para você eu vou entrar no Browser aqui para fazer com vocês vocês vão ensaiar ali no canto direito

superior para criar uma conta depois que eles tiverem criado a conta Vocês vão no botão direito aqui em cima que é criar um novo projeto tem perguntas já caiu a internet será em fura apontou gente não é ponto com tá funcionando aqui é boa

assim ó o pé de ser compartilhou Ah desculpa gente ó para compartilhar [Música] [Música] e coloca o link Tipo na segunda linha alguma coisa assim aí deixa ele destacado então para fazer um pé de único ele vai

ficar muito linguiça Então você já até já descobriram que a gente tem um pé de três agora né então é a mesma o dois tava com um número estranho até do Alex mas agora a gente tá com o três então vocês podem ir para esse pad número 3 que tá na tela pede ponto raisap.net/p volta lá para cima por favor retire um rio traço B3 b03 então estamos ali agora e o hobby vai colocar os links ali para vocês quem não tá com o nome na lista pode colocar seu nome aí ligar o Pedro

e eu vou mandar éters para o hobby beleza então para quem já já foi criando a conta botão direito aqui em cima vai ser super simples são dois passos botão direito superior escolhe para qual rede né para Qual blockchain você vai querer que ele Rode um nó para você [Música] quando ele começou só tinha etéreo né

mas hoje em dia a gente vai até ter uma aula de layer 2 aí hoje em dia tem várias redes né Você pode rodar no de várias coisas e ele tem esse serviço e você dá um nome para o projeto aqui eu criei aqui um já quando você criar o projeto ele vai aparecer aqui nessa linha você clica na linha não apareceu que eu queria projeto você procura você clica na linha e se não for direto para essa página que eu tô mostrando você clica em projeto e o que importa para a gente é esse está

higiene points aqui ó aqui embaixo ou Project [Música] e aqui no endpoint ele de novo né ele cria para várias tipos de rede aqui só vai isso é bem útil lá na frente porque porque se você quiser depunhar no covan no gorli usando o hard Hatch não dá mais para você fazer que nem o remix que você vai automaticamente ali que nem a Sol demonstrou você precisa estar conectado na blockchain como metames que já faz isso sozinho por vocês e você injeta lá lembra você dá um jet do metames que no remix você não precisou fazer esse passo

que a gente tá fazendo aqui mas se você quiser usar esse ferramental que eu vou mostrar hoje ele não faz isso automático então é por isso que a gente tá criando um furo aqui e o que a gente vai precisar são os endpoints que ele gerou E aí quem conseguiu chegar até aqui segura segura aí por um pouco eu vou usar isso daqui mais para frente quando a gente for depuiar em uma das redes Então por enquanto vocês entenderem O que é em fura vocês criaram uma conta acharam aqui onde que é o indie Point mas a gente ainda não não vai usar vai

agora pausa guarda aqui no stec de memória da e a gente vai entrar numa outra traje vai começar a falar da outra Beleza a gente possa seguir

bem Se alguém quiser que eu vá mais devagar vocês avisem aí dá um grito posso fazer um check Point Então a gente vai fazer assim ó eu vou copiar a lista de nomes lá no pede e aí eu vou perguntar para vocês quem quem conseguiu fazer a partir do inforou ou não vocês colocam Ok do lado e a gente dá uma olhada como é que vocês estão tá bom pronto a lista tá lá coloca um ok do seu

lado se a partida enfrentar em ordem e a gente olha por aqui quando a gente vê um monte de ok a gente continua isso sempre na lista de baixo tá na última na lista que eu fiz a pergunta né aqui em fura Ok você responde linha 76 gente Quanto isso

eu vou colar aqui o código do contrato que a gente vai usar no pede mas não é para vocês não por enquanto é só para eu já liberar o Gui que o Gui vai usar o ele vai usar o meu contrato para continuar na outra aula E aí ele já consegue desbloqueio ele [Música] beleza gente já deu mais na metade né

tá bom gente então de novo né Guarda no steck Esse passo a gente vai usar daqui a pouco vamos abrir uma nova trade quer falar do Hard Hatch um pouco mais devagar acho que a primeira pergunta é quando né que eu já dei uma resposta prévia Quando que você migra do remix que é muito mais fácil ele é muito para trabalhos rápidos assim né a gente até hoje os remix eu quero fazer um teste eu quero ler um contrato rapidinho mas quando que você sente a necessidade de migrar do remix né Acho que o primeiro é se você vai rodar alguma coisa além do solidite só né porque o

remix você tá ali imagina Que estranho né geralmente numa empresa pequena você não faz só solidit né você Ah faz solidite eu preciso fazer alguma coisa no Frontier então ou mexer alguma coisa no servidor que quase não tem por exemplo na potes a gente já passou em um ano e meio dois a gente tá pensando agora implementar um back end porque como eu falei o Smart já faz a lógica da operação de gravar na base que a blockchain então o back Candy em aplicações descentralizadas ele acaba servindo mais para Ah eu quero Eu quero fazer uma cópia do que tá na blockchain para ser mais performático porque a gente tem um problema de performance aí de se você faz todos os

seus usuários lerem direto da blockchain só começa a dar problema então às vezes é você tem coisas no seu contrato que não muda a cada bloco por exemplo né sei lá Eu tenho um contrato que é o nome do jogo E aí você tem lá uma variável chamada nome tem uma string que é o nome e ela é constante Então ela foi citada uma vez no Construtora ela nunca mais vai mudar essa variável imagina toda vez que o usuário novo entra no seu site você tem que ir lá Na Botinha em inglês não é para informática então às vezes o que que a gente começa a fazer o Mack and com uma base secundária para tirar um pouco de peso aí

da blockchain só então mas enfim aquilo devagar Às vezes você tá lá fazendo um pouco de front-endi você tá fazendo um pouco de solidite você não quer estar no remix aí você Opa minimiza o remix aí vou para o meu o meu editor de texto convencional aí agora volta para o remix Às vezes você tá no ambiente só né você tá com um terminal dividido em dois em você tá rodando a blockchain o outro você tá rodando frontchange você tá usando o mesmo editor de texto você tem seus atalhos configurados Então essa é uma um dos motivos né de Quando Você Me Vira do remix você quer ficar no seu editor de texto que você já tá dois anos acostumado o segundo motivo

trabalhar em equipe geralmente não é só você que faz quando você vai trabalhar na empresa é mesmo para solidite você tá num time eu comi lá às vezes a gente trabalha até no mesmo contrato aqui você faz essa função eu vou fazer essa função e a gente dá um murge no github lá Isso é uma outra assunto bem legal que depois para o rakaton que for participar possa ajudar Como que você se divide né em pessoas para mexer no Smart Control é mas quando você vai trabalhar em equipe você quer também então o remix eu sei que ele evoluiu muito mas

na época pelo menos quando a gente começou a usar não era tão simples você conectar com o githup fazer um Git post Git Bull né então para trabalhos em equipe o rádio Hatch essas ferramentas são mais adequadas E como eu tinha comentado antes se você começa aumentar a complexidade do seu sistema Então você vai fazer você quer criar um script que faz dois deploss faz um teste e manda um aviso no chat do telegram avisando galera o depois foi concluído você precisa de uma ferramenta um pouco mais complexa que é o que eu vou apresentar hoje só para vocês terem noção tem alternativas né hoje tem tem até mais do que isso mas os líderes de mercado desse

kit de ferramentas do etéreo Você tem o trumple que ele na verdade é o original Esse aqui foi o percursor ele é da mesma empresa do metamédica com senses você tem um hard Hatch que tá aqui no meio que ele veio Entre esses dois E você tem o foundre que ele tem menos de um ano assim ele é bem recente falando rapidinho um pouquinho das Diferenças o hard Hatch Surf surgiu para cobrir uma lacuna que o trumple tava começando a ficar Devagar para lançar Fitness novas né então a grande feature que o hard Hatch implementou na época

era você poder colocar console log dentro do solidit e isso facilitava muito de bug porque antes como não dava para colocar console Dog você faz um contrato foi dava um problema no meio você não sabe direito o que que é o erro que reverteu você tinha que ficar alterando e mudando o contrato e chutando coisa Ali era meio com tentativa e erro o hard Hatch você começou a colocar um monte de console logo então você conseguia divulgar melhor a diferença do Hard Hatch do foldre que essa ferramenta mais nova é que os testes que eu vou mostrar para vocês e que geralmente a gente escreve em hard Hatch enquanto no foldre você cria o teste em solidit Então você cria um Smart em

solidit e criou o teste em solidit você não precisa fazer essa migração de linguagem de solicite java script Então essa é a diferença esse cara ele é muito menos Beto testa de né que a gente fala ele é muito recente tem poucas empresas ainda usando vai estar cheio de bug e ele ainda não tem ele não é tão completo quanto o hard Hatch que tem vários plugins né Isso é uma outra característica legal do Hard Hat que ele tem plugin de verificação de contrato Eu quero saber quanto que tá gastando de gás todas as minhas funções para ver quanto que vai custar aí para o meu cliente final ele tem um plugin lá que é guess repórter roda um comando ele mapeia ali tudo que de gás que vai gastar nossas funções então aqui é só um pouquinho para vocês terem uma noção das alternativas

como eu falei então o que a gente vai escolher e o que a gente usa na pós e que tem muitas empresas no mercado usando é o hard Hatch por esses motivos que eu comentei a comunidade dele é muito acessível os falder os fundadores lá o Paladino ou esquecer o nome do outro menino Eles estão no discord eles respondem já tem também no Exchange lá o stakehober flow já tem várias perguntas sobre hard Red é bem legal Dá para aprender bastante coisa na minha é na palestra que eu vou dar no pendei que ainda está em ainda não terminei ainda tô fazendo mas uma das minhas ideias é ensinar aprender tipo ensinar a

aprender né Quais são esses canais né Por onde você aprende já que não tem tanta documentação não tem vídeo tem muita gente falar qual que é o curso que eu compro não tem o curso que você compra não vai a tecnologia muda muito rápido então parte do que eu vou falar lá É aonde que a gente aprende né e o discord é uma ferramenta muito boa para isso Então vamos lá agora mão na massa que que eu vou fazer eu vou abrir um terminal deixa eu limpar as coisas aqui vai ficar minha colinha deixa eu abrir um novo Beleza então eu vou entrar na minha

pasta projetos aqui do meu computador pessoal e eu vou bem do zero aqui gente eu vou criar uma pasta mkdir aqui e fui vou entrar nessa pasta como eu falei a única coisa que vocês vão precisar ter o node então se eu rodar aqui um node menos menos Rush ali em cima não tá ruim de ver é um terminal agora né se abrir um terminal aí gente então dando um passo para trás

isso aqui é um terminal eu tô no Mac eu Minha vontade era ter rodado uma máquina virtual ou ter trazido já um Windows ou Linux para ser mais acessível não deu tempo desculpa Eu gosto do terminal Ubuntu antes eu usei bastante tempo Ubuntu vocês podem instalar o terminal que vocês quiserem Quem não tiver terminal pede ajuda os monitores aí ajudam vocês a instalar o que for melhor eu sei que para o Windows Beleza

então assim parte mais difícil que é o que eu não vou falar aqui que os monitores podem estar te ajudar é como instalar esse note aqui se for Ubuntu você vai dar um surdo PT get provavelmente instinto provavelmente é um executável então aqui é esse é uma parte que eu tô pulando então vocês se viram para instalar o load o pedem ajuda para os monitores Beleza vou dar um npm nit geralmente quando você instaloud já vem com npm é o pacote né de biblioteca para gerenciador de pacotes do node

quando eu do npmite ele vai criar o tal famoso aí né o pack de som na minha pasta que é a biblioteca de pacotes a lista de pacotes aí de plugins aí do bibliotecas né não vocês me perdoem os termos totalmente corretos aqui para ser mais didático eu vou falar umas coisas que não necessariamente a isso não é não é plugin que fala hobby é biblioteca enfim é só para ficar mais didático você coloca eles lá no pet para o pessoal copiar e colar se você quiser já definir o nome de

pasta mesmo para todo mundo fazer igual é melhor Beleza então eu dei o npm nit para

começar o pack de som para começar o porquê que eu tô fazendo isso né gente na verdade porque para instalar o Red eu vou colocar o hard Hatch como uma biblioteca então agora é o momento né que eu vou instalar o hard Red para isso eu npm install Tá eu vou eu vou copiando lá no pede trás é para você salvar ele como uma biblioteca de dependência de desenvolvimento E aí se não me engano o nome do pacote é hard Red deixa eu dar uma consultoria aqui

e agora é onde a nossa Internet vai que todo mundo vai instalar o pacote ao mesmo tempo estou instalando aqui Então é isso gente já são quatro comandos para você instalar o Red hatch no seu computador deixa eu copiar lá esse aqui eu eu não gosto de instalar o pacote

global porque às vezes você vai baixar um outro projeto que tem hard tá numa versão diferente eu sempre prefiro instalar não ele é mais para o projeto porque a versão que ele está instalando aqui é o 2.9.1 Enquanto isso vou mostrando o que

acontece né quando você roda para quem para quem é novo nesse mundo quando você roda o npm né Estou ele cria uma pasta a famosa pastano de moldes que a grande crítica do node que começa a ficar gigantesca com todas aí os seus dependências então se você não você olha olha com o comando ele já instalou tudo isso aqui de dependência Oi o faldo é feito em cima do Deep tools cara o found ele tá tentando ser mais

user friendly do que o Deep Tools porque o débitos não tinha documentação quase que nenhuma é o folder eu não sei se o débito já fazia isso mas ele você consegue fazer teste da pessoa você já conseguia fazer direto então ele deve tudo já dá para fazer também então quando tinha visto Então o que eu sei era isso era documentação infância não tá de diferença fica só na documentação parentes falei fazer teste aqui né ter um termo mais avançado aí mas fazer

teste é uma forma de testar o sistema chama fase porque você bombardeia o contrato a função com valores aleatórios e para smart contrate como a Sol comentou mais cedo tem dinheiro envolvido né então enfim cena dos próximos capítulos mas acho que amanhã eu vou dar uma toque de segurança só e nossa nossa primeira auditoria amanhã vou falar de um dos nossos auditores a primeira frase que ele falou para a gente assim desenvolver Smart contra é muito mais parecido do que criar um hardware do que criar software porque porque quando a

Samsung lança o celular e dá um bug ela não consegue dar o Recall inteiro do celular é um custo absurdo é a mesma coisa do que a gente tava vocês perguntando aí Sei lá isso eu tenho um contrato com um problema eu vou ter que redeprir a ele vai vai ter que declarar isso é um custo absurdo Então você tem que colocar um monte de energia antes um teste em fãs e teste o que der para fazer para que você evite problemas lá na frente voltando trade principal então eu dei um npm install hard Hatch se eu der um LS aqui para ver os

arquivos aqui da minha máquina eu vou dar um Cat aqui que é para você Mostrar o conteúdo aqui do arquivo e agora eu tenho aqui ó na minha biblioteca de dependências Eu tenho um hard Beleza agora eu vou dar um npx hard Hatch e eu acho que a mágica já vai acontecer ou pode acontecer quando eu dou aqui o npx reset ele já sobe para mim aqui um cielar é uma Command Line interface falando o que que eu quero fazer E aí eu vou colocar aqui que eu quero

criar um desde que sempre prodict o escafede que o Alex falou na palestra anterior na verdade muitas as coisas que ele faz ele já encapsula toda essa lógica aqui né já eu tô dando aqui eu tô indo mais para Fundação mostrando o que está acontecendo por debaixo a gente vai selecionar para criar um centro aqui na primeira pergunta em qual pasta Pode ser na pasta que a gente já tá se você quer colocar um kit menor Vamos colocar assim se você quer instalar algumas dependências extras como waffle waffle é um uma Lib uma biblioteca de para facilitar

seus testes ele tem uns acertos extras uma linguagem de programação para teste vai digamos assim que te facilita você criar testes com coisas que são específicas de ou da linguagem ou do ambiente de etéreo então por exemplo balanço você usa muito balanço o balanço do contrato é tal então waffle ele já facilita criação de testes o chain né também libbs relacionadas a teste e aqui um hard Hatch éters e o éters que é uma biblioteca de Java script para interagir com contratos que o Gui vai falar melhor

na próxima aula Vou Colocar assim também e ele vai começar a instalar aqui ele vai começar a criar o projeto para mim e instalar todas essas dependências o comando lá no Vai demorar um pouquinho até a gente

instalar tudo eles estão instalando agora né E vou colocar outro ponto de Controle lá para gente aí eu vou perguntar para vocês se a instalação Tá ok e quando tiver vocês põem um ok para a gente ver quantas pessoas completaram tá bom a minha terminou ele deu uns probleminhas aqui mas tudo bem não vai dar não tem nenhum erro

crítico se der problema já deu bastante problema para mim nesse note gip que é uma das subdependências né que ele precisa para instalar se dá esse problema o guia acho que consegue ajudar vocês dependendo do sistema operacional senão a gente depois da aula a gente senta junto aí e conserta isso beleza gente então deixa eu vou dar um tempo para o pessoal instalar com quem já instalou formação aqui que quem tá com Ubuntu a

versão de folk vem do Ubuntu é a 8 parece que está vindo a 8 e o nosso amigo aqui ele já colou aqui no pé de como instalar o nvm que eu acho que é node version Manager que você consegue com ele alterar para qualquer versão que você quiser rodar o download para o hard Hat funcionar Se não me engano 12 14 essas estão tranquilas para a partida a 10 já não funciona né para quem precisou instalar o nvm

você dá o NV no lixo aqui e ele te mostra quais são as disponíveis ou como ele já escreveu lá no pede você dá um [Música] aí por exemplo nvm use 14 ele já instala a versão 14 e já muda o node rodando aí no seu background para 14 aí você clica o ok ele já vai começar a

criar o projeto é legal né já tem O legal que a galera aqui já tá tem mais um tem um novo comando que eu acho que é para o pessoal do Ubuntu esse último que colaram aqui né legal gente quando vocês

acharem uma solução aí pode colocar no pé de compartilhar com a gente essa parte de instalação por exemplo Eu normalmente que faço com Windows eu não tenho a menor ideia como instalar nos outros eu chega o professor e falo quem conseguiu instalar no Linux no Mac coloca lá o comando por favor Beleza já estamos começando a ter mais da metade de ok

esperar mais uns dois minutos aí a gente volta então não vou esperar Então vou roubar a faixa beleza gente então vou seguir aí porque daqui a pouco vai ter uma pausa vai meio assim né Daqui um pouco tem uma pausa e a gente quem tiver um pouco atrasado e também provavelmente deve ter gente que tá parado na parte do install já teve gente colando aqui do Windows

boa Ah deixa eu esperar então o pessoal falar do Windows aqui enquanto

espera os últimos minutos eu vou copiar um print aqui beleza gente bora

Então agora que tá todo mundo com hard Hatch quase todo mundo corre de head se instalado vamos dar um LS aqui para ver que que ele criou né então a gente rodou aí npx hard Hatch eu vou abrir no meu editor de texto só para a gente dar uma conseguir visualizar melhor aí o que que tá acontecendo e eu vou navegar um pouquinho rapidinho aqui no básico para vocês entenderem qualquer estrutura que ele me criou Então tá Ó tem uma pasta contratos famosa geralmente onde a gente coloca

nosso contratos ele já tá meio que configurado por defu quando ele vai compilar por exemplo ele já olha essa pasta contratos Claro resolvi ser criativo e criar um novo nome não quero que chama contratos você vai quebrar a configuração de fogo aí você vai ter que configurar lá no arquivo de configuração dele qual que é a sua pasta de contratos de bibliotecas né hard foi instalada aqui dentro você até se você abrir tiver curiosidade já está louvar as coisas juntos por exemplo NS ele cria uma pasta de scripts Isso aqui vai ser legal a gente vai deployal

usando esse essa pasta de script e geralmente Esses scrips são em JavaScript o arquivo principal vai ser esse carinha aqui ó hard Hatch é dele que eu vou falar agora Então a gente vai clicar aqui no vai abrir né com seu editor de texto o Radial de S e vamos dar uma limpada nele aqui tirar tudo menos o requaire aqui que ele importou uma parte de plugins tal o

arquivo Começa assim o arquivo de configuração dele é o Mod exports com a versão do solidit que você vai usar nos seus contratos eu via só falando quando eu cheguei alguém perguntou assim ah eu uso chapéu no praga mas eu uso o chapeuzinho eu uso a versão estática né A Sofia é melhor usar a versão estática é mais seguro e consultou reforçando aquilo que ela falou auditoria de segurança se você não coloca você não deixa estático e isso é um dos critérios que eles vão te criticar não pode deixa estático para evitar conflito evitar o compilado você não sabe direito qual que é exatamente o compilador que tá que vai rodar ali no

contrato Então essa aqui é a cara padrão aqui do arquivo de configuração né aqui na parte de cima como eu comentei com vocês o hard Hatch ele funciona com plugins eu coloquei aqui lá no prédio lá em cima vou até colar aqui de novo em baixo tem um site do Hard Hatch lá no site Navegar também para ensinar um pouco como que a cara do site se vocês quiserem ver essa explicação que eu acabei de fazer vocês vão no quick start mas uma parte legal aquele tem

vários guias muito bons inclusive e isso gente parece besteira mas isso faz diferença Por exemplo quando você me perguntou os versos cara ele pode até ser escrito em Rush é mais performático mas você não entende o que você tem que fazer isso não é fácil e você vai contratar um desenvolvedor para o seu time você vai ter que ficar dois dias explicando para ele como instalar e configurar o débitos é um trade isso isso como um programador vocês tem que ter Claro na cabeça é sempre um traidor e o hard Hatch um dos Traders muito positivos dele é a documentação infelizmente está em inglês mas aqui vocês têm todo o guia de como compilar tudo que eu vou falar um pouco na aula e muito mais tá aqui na esquerda aqui embaixo tem os plugins que é porque

o motivo de que eu tô falando isso entrei nessa thread aqui de entrar no site por causa dos plugins lá no nosso arquivo de configuração aqui geralmente em cima você se eu vou instalar um plugin novo do Hard Hatch a queda instalar o plugin de verificação de contratos eu instalo O plugin usando o npm installa do node e eu venho aqui e não recuar no nome do Plugin que eu coloquei então isso para vocês souberem aí Para o Futuro por enquanto a gente vai usar só esse plugin é padrão que veio a parte de baixo ele tá mostrando a versão do Sony zit

mas isso aqui ainda não é suficiente o que a gente vai fazer agora nessa etapa nesses próximos 10 minutos da aula é melhorar esse arquivo de configuração a gente vai importar uma chave privada aqui nele para eu ter uma chave porque eu consigo escrever na blockchain e a gente vai importar Aquela nossa chave do infura que a gente criou ali no começo da aula para que eu consiga me conectar a um nó para escrever uma transação eu vou copiar aqui na minha colinha um que eu já tava fazendo lá no pede mas eu vou primeiro Navegar com vocês o que que a gente vai adicionar nesse arquivo de configuração inicial

Então vamos lá de comentar aqui o nosso arquivo de configuração Inicial que veio Ele só tinha o solidite ele falava só a versão do pronto dentro do modo do ecosports eu vou acrescentar uma chave uma chave de Networks para que a gente já Comece a ter um gerenciamento de redes aqui ah eu quero depoimento contrato ao mesmo tempo na covana gorli na polygon beleza é aqui que você vai vir nesse objeto Networks para adicionar essas redes por enquanto para facilitar aqui nosso para facilitar aqui nosso exemplo eu vou

copiar e colar aqui para vocês eu vou colocar duas redes uma rede local em que eu vou rodar uma blockchain na minha máquina igual o remix roda uma blockchain no Browser ali na memória que nem a Sol falou o hard Hatch roda uma blockchain na memória só que em vez de sobrar aqui da sua máquina eu vou acrescentar uma rede local aqui e eu vou acrescentar a rede da gole e eu já falo aqui do que que precisa ter para acrescentar a rede mas como eu já falei a gente vai precisar da ID e aqui eu já tô dando uma eu poderia colar direto aqui né A mnemônica sei lá

Beta né dog Mas isso é uma prática a que eu já tô ensinando para vocês uma forma melhores práticas né de como que você configura o seu projeto aqui do Hard hat você coloca ele no próximo e para trabalhar com o processo eu vou instalar uma biblioteca chamada dot end que como que eu instalo ela com ntm install então Primeira coisa eu vou copiar e colar todo esse arquivo de

configuração aqui lá no pede para quem quiser ir mais rápido copiar colar e entender depois né O que que tá possa acontecendo adiantando o trabalho também de quem já tá mais acelerado eu vou lá no Ted então vocês vão copiar o que eu tô colando lá e colar no arquivo de vocês eu já perdi o sol Como que você coloca o código geralmente você fala assim mesmo

tá bom Tá beleza então aqui é o código de configuração e como eu falei para a gente com melhores práticas gerenciar a nossa mnemônica as 12 palavras lá e o ID do infra bem outro motivo né

porque que eu não posso só jogar diretamente Digamos que eu vou tô no githrub eu tô compartilhando meu código com meu amigo de trabalho e eu vou lá e dou upload da minha chave privada no github Provavelmente em cinco minutos você vai ser hackeado que já tem bote que fica olhando com padrão de dois palavras então não faça isso para a gente evitar ser hackeado a gente vai instalar essa biblioteca que é o dot end então eu vou lá no meu terminal e eu vou dar um npm install savedev para instalar como dependência de desenvolvimento o dote eu vou copiar esse comando e copiar e

colar beleza então primeiro passo vocês vão fazer agora npm

install Safe David segundo passo copiar e colar esse arquivo de configuração que eu colei que eu colei lá no Ted no projeto de vocês e eu vou fazer a mesma coisa para ver se tem problemas no caminho beleza então o que que eu fiz de novo revisando aqui por cima do arquivo original eu criei um arquivo de Networks

nele ele segue esse padrãozinho aqui se vocês quiserem saber as configurações completas vocês dão uma olhada na documentação do Hardware mas as propriedades mais importantes para quando eu adiciono uma Network é com que conta que eu vou escrever na blockchain e com qual nó da onde eu vou ler essa informação quem está conectado na blockchain para conseguir ler essa informação o resto é menos importante para eu saber com que conta que eu vou escrever Vamos criar um arquivo isso daqui gente que eu tô mostrando ele

é meio é um padrãozinho assim não é só para várias tipos de aplicações seja front-end tal esse criar um arquivo para quem já é de programação quem trabalha com isso isso aqui é meio que é dado assim é meio básico mas para quem tá chegando agora então entenda que por que que eu faço isso porque eu não quero hardcoldar não quero escrever direto no meu código propriedades delicadas como minha chave privada ou como a minha chave do infura a chave de infra é menos é menos importante do que a sua chave privada né a chave privada você perde o seu dinheiro problema de você deixar a chave do infra público é que

alguém pode ir lá pegar sua chave de Fúria e falar a minha parte frame acabou vou pegar aqui do fulaninho ou vou até ser malicioso Digamos que por exemplo podes ela paga um fura Premium a gente tem um limite de requests para tá dentro de um certo padrão se eu deixo minha chave pública se eu deixar em fura projectoide aqui público pode vir alguém pegar fazer um ddos bombardear a minha conta do infra E aí eu abro minha fatura lá do cartão no final do mês e tem mil dólares de infra que alguém fez isso então por isso que a gente tem essa boa prática de não deixar no código

essas informações então a gente deixa no Andy e aí o que que a gente faz a gente vai lá no Git ignora geralmente até padrão o que te ignora é aquele arquivo que define o que não vai ser comentado que não vai ser mostrado no github né então Wave é um negócio pessoal próprio cada um tem o seu e no hard Hatch config a gente pode deixar lá no público eu e o Gui a gente pode compartilhar esse arquivo sem problemas então beleza A gente vai criar o nosso end e a gente vai adicionar as duas propriedades aí lá no Wave uma é o deve mina

isso esse nome aqui ele poderia ser qualquer coisa tá gente é o nome que você dá no seu ponto M Ela poderia ser batata aqui eu tô só colocando o nome padronizado e você vai adicionar no ponto Angel e fura Project de novo esse nome também poderia ser batata aqui mas padronização vou colocar os mesmos nomes a gente vai lá no projeto que a gente

criou aqui no canto direito Project settings e a gente vai copiar o Project desculpa a gente vai copiar o Project e a gente vai aqui colar isso que eu tô fazendo é tá gravado então depois da aula eu vou lá e deleto a minha conta nem Fúria para né alguém acabei de falar que não pode compartilhar eu tô mostrando na tela aqui a mesma coisa para o metamesk o metamed que eu criei o metames que novo aqui

para aula porque eu vou compartilhar a minhas 12 palavras com vocês Se alguém quiser me ferrar aqui durante a aula poderia simplesmente por exemplo só acabou de me mandar dois éteres aqui eu vou compartilhar as duas palavras a pessoa podia importar as 12 palavras e roubar meus éteres agora por favor Não façam isso então eu vou aqui no settings para eu pegar as duas palavras né Security Desculpa então canta o direito superior 7

vamos ver se eu lembro assim que eu acabei de criar e vou copiar aqui as 12 palavras e colar no meu arquivo and que eu criei Então agora eu tenho as duas informações necessárias para conseguir interagir com uma conta com uma prova de que aí para eu conseguir escrever e o infra e de para conseguir me conectar algum nó com isso aqui eu já consigo no hard Hatch depois já tá pronto mas isso aqui já é um plus Tá eu já eu tô começando a falar que

aqui do arquivo de configuração mas na verdade a gente vai começar a testar no local Então nem precisaria desses Passos aqui que eu tô explicando mas eu já tô dando aqui né no projeto de raca toda semana que vem você não vai ou já é meio estranho você criar um projeto no local você vai pelo menos uma testenet A testenete tá aí para isso Então já tô dando uns passos de como que você vai depilar o contrato na Taste beleza gente então tudo isso que a gente está fazendo aqui é configurando o hard Hatch para que a gente consiga deployar os contratos nas outras redes né

até aqui tudo bem daqui para frente eu vou já começar ir para parte do contrato então aqui a gente configurou a configuração básica do revisando de novo hein configuração básica do Hard Hat config é versão do solidite dos seus contratos que eu vou usar aqui aqui eu coloquei um exemplo até um pouquinho mais complexo né porque eu tô eu posso mexer no opte mais é dele enfim configurações um pouquinho mais complexas se não quiser a configuração mais básica essa daqui você só joga lá um version e a versão dos seus contratos Networks de novo né você precisa de dois elementos importantes

você já criaram a conta nem Fúria e para vocês deixarem uma forma mais segura de vocês interagirem com essas informações vamos agora entender os comandos básicos né do Hard Hat vamos sair um pouco da configuração vocês eu vou fazer com o contrato que ele já deu aqui só para mostrar rapidinho ele já ele já deu ele dá um Hello hoje aqui um contrato hello world básico ele dá um contrato de teste básico ele dá um contrato de script básico vamos testar com os três que ele

já deu E aí depois a gente cria o nosso então voltando lá para o terminal Se você dá agora npx hard Hatch a primeira vez que você fez esse comando ele instalou ele viu que não tinha nada na pasta e falou ah quero instalar tal agora que você já tem quando você dá npxd Hatch ele não pede para instalar ele te dá um monte de opções algumas opções né que a gente vai ver hoje aqui a gente vai ver o compare pô quero compilar o meu código equivalente lá no remix aquele botãozinho do compare o que você deixa lá o Jack Box alto com pai Jack aqui você dá um PX

ele se deu certo ele vai te dar uma mensagem aqui de opa se dá errado vamos forçar um erro aqui então por exemplo vou forçar um erro no meu contrato eu vou em vez de colocar a versão 08 vou colocar 05 que é uma versão que eu não estou instalado lá no meu arquivo de configuração Se eu tentar compilar ele vai falar um erro aqui Opa essa versão aqui pragma aquela não condiz com a versão que você tem nas

suas configurações beleza então MPX hard Hatch npx hard Hatch que que ele vai fazer esse comando Esse é bem legal se funcionar Ah que eu já tenho rodado aqui o processo ele precisa de onde ele roda uma local para você em memória equivalente ao que o remix faz lá no Browser ele roda ele tá rodando uma brotinha

aqui uma simulação a botinha livre né por isso que ah bom mas bloqueei não tem um tera E como que eu tanta informação não aqui eu tô querendo uma botinha limpa e ele te dá uma porta que de acesso e ele já te cria aqui umas contas com algumas privates com saldo inicial das contas aqui contas Beleza então aqui npx hard Hatch node estamos rodando uma blockchain local eu vou dividir o meu terminal em dois aqui em um deles eu vou deixar a blockchain rodando e no outro agora vou tentar

depunhar então a gente compilou o código rodou uma bloco tinha local vamos tentar deplear para depunhar não é tão simples que nem no remix que é só clicar no botão aqui eu preciso escrever um script tá aqui mesmo assim eu tô complicando para me dar mais habilidade para se eu quiser fazer algo mais complexo como exemplo vamos entrar no simple script dele que ele dá aqui no na pasta escrito eu vou tirar vou deletar todos os comentários para deixar bem Limpo aqui e a gente leu o que que tá acontecendo Beleza então tem aqui 17 linhas Fechar

isso aqui então isso aqui ó é um exemplo que vocês podem usar de arquivo de Deploy instancial hard Hatch aqui dá um recuar não é necessário aqui entra um pouco de conhecimento de JavaScript como eu comentei então para algumas pessoas podem pode ficar aqui um pouquinho difícil deu erro aí você trocou por npm Red Hatch E aí funcionou beleza gente então fica

Deve ser não sei se esse sistema operacional seleção depois a gente vê isso mas quem não conseguiu com npxide Hatch npm Head Beleza então o que que tá fazendo depolando Esse contrato básico que ele deu para a gente eu vou dar uma leitura aqui para vocês verem o que tá acontecendo aqui eu já tô usando éters que é como eu tinha comentado o Gui vai falar melhor a biblioteca desde java script para interagir com contratos beleza nessa linha aqui ele tá criando uma Instância de contrato contrato dele chama glitter que é o hello world dele ele usa o método get contra e você passa

o nome do contrato aqui dentro Eu vou Vai ficar mais claro quando eu fazer com contrato do zero mas uma linha para instanciar o contrato com o método chamado get contratrefere outra linha para deploiar o contrato tá vendo que ele tá chamando a função Deploy com parâmetro aqui uma string hello world aqui dentro porque que provavelmente se a gente olhar lá o contrato de Deploy ou contrato dele básico no Construtor aqui ó Construtora precisa de um parâmetro estribo se o Construtor tivesse vazio aqui ó aqui no meu contrato de Deploy poderia

estar vazio também eu posso te chamar um deploide um contrato que não exige parâmetro nenhum inicial vou voltar aqui beleza Aí ele dá uma wante glitter deploide porque isso é aquela função assim uma vez que você leva uma você deploi um contrato Digamos que a Itália e uma net demora um tempo de bloco lá os aproximadamente 15 segundos então se você quer executar alguns outros comandos em sequência você precisa esperar o contrato ser deploiado na verdade que essa função tá me fazendo por debaixo dos planos é checando o evento né se tem

ali um evento de Deploy você até consegue configurar quantos blocos você quer que Espere ai eu quero que espere cinco transações de confirmação você consegue tem que configurações mais avançadas mas por enquanto aqui na nossa aula básica vamos vamos com isso aqui então são essas três linhas para depunhar uma senha o contrato como o método Gatti Factor e passando o nome do contrato é o nome mesmo aqui tá como eu te falei ele sabe que a pasta de fogo é contrats agora não lembro se é nome do contrato o nome da aqui do da classe depois Quem souber essa resposta me fala não lembro então uma para instanciar duas para

chamar o método de Deploy do contrato distanciado então ele criou uma variável chamado gritanciou ela e aí eu chamo um método de Deploy nessa Instância de contrato que ele criou passando parâmetros iniciais se o contrato precisar ou não essa função aqui é um como eu falei para você esperar que o contrato tenha pelo menos uma confirmação na blockchain para falar não depoimento porque se não posso a gente vai né vai ter um problema de comissão de corrida aqui sei lá quero executar alguma lógica que depende que o contrato esteja

deploiado mas não passou por exemplo nem 15 segundos ainda porque o etéreo tem os aproximadamente 15 segundos então ele não vai funcionar se for acho que é 4 Segundos polígono 4 Segundos e você quer emendar algo aqui não vai funcionar beleza gente então três linhas Isso aqui é uma configuração padrão do Hard Hatch para executar aqui o node e chamar matar o processo vocês não precisam saber desses detalhes agora vamos lá testar então o que que a gente tinha dos dois comandos básicos iniciais do Red né o meu projeto

Como já tinha comprado ele dá um toque de companhia o outro foi o note que já tá rodando aqui uma blockchain do outro lado aqui do meu outro terminal eu vou rodar então o script de Deploy como roda o scripts então é o que a gente vai aprender como modo script é npx hard Hatch E aí eu passo o caminho do script aqui que eu quero aonde que ele tá né então ponto barra para estar na mesma pasta script e é o nome do meu script é o sample scripts rodei E aí ele já começou a dar printar

as mensagens aqui ó Opa Deploy Hello red hat deploiou e me printou o endereço Mas como que Ele pintou o endereço onde que veio isso porque lá no nosso arquivo de inscritos eu pedi aqui é um greater.adrez Eu dei um console logo aqui no final ele deu na verdade porque esse é o arquivo de configuração padrão não esse é um exemplo né Tá mas Hobby pô Não apareceu nada nessa bloquinha que a gente rodou no local aqui é não apareceu porque eu não especifiquei que é nela que eu tô deplondo se eu só rodo o programa npx hard Hatch ele na verdade ele queria na memória

desse processo uma mini blockchain depois nesse processo e não na blockchain local com aquela porta um dois do IP aqui que eu que eu abri aqui para eu conseguir apontar para essa bloco tinha local e começar a ver o que que tá acontecendo nas coisas eu vou passar uma Flag Flag é um parâmetro que né no comando chamada Network e o nome da netor que tá lá no arquivo de configuração no caso Vamos começar com a local então Agora sim

com a Flag Network local aqui eu já começa a printar aqui na minha tela da minha avó que tinha local o que aconteceu então ele já começa a pintar aqui um pouco baixo nível aqui ó contraste deploide nome do contrato Qual que é o endereço o quanto de gás que foi usado Qual que é o número do bloco Como eu como eu falei eu criei uma blockchain nova tá no bloco 1 tal e ele deu um console log aqui que doideira não de vez com Sony log se a gente olhar e a gente vai entrar agora na quarta

lição da aula se a gente olhar lá no nosso contrats ele deu Import aqui em cima console ponto sol e Opa tem um console logo aqui dentro do Construtor que doideira se você tentar usar isso no remix eu acho que quebra a não ser que você faça alguma coisa Alguma mágica lá que ele eu não sei se ele já entende o consultório em ponto log provavelmente nessas versões mais atuais ele já entende se você faz alguma coisa mas antes ele não entendia e isso era grande vantagem do Hard Hatch você conseguir colocar uns consoles no meio dos seus contratos aí na blockchain então

eu vou escrever lá no prédio com isso a gente já fez três comandos aqui do Hard Hatch node para instalar para rodar uma blockchain na minha máquina local uma simuladora de blockchain você quer apontar ele para uma rede específica você dá uma Flag de Neto aqui e coloca o nome da rede aqui no final e agora o quarta quarta parte da das coisas que a gente consegue fazer com head head console log Então como que eu faço para dar console log no hard Hatch mesmo eu preciso acrescentar essa linha no meu

contrato eu inclusive isso aqui você usa tanto que eu queria até um Sniper acho que se eu digito hh é eu queria um snake para mim mesmo aí tipo digito hh ele já importa já cresce a linha para mim de tantas vezes que a gente usa isso Então se importou essa linha aí você consegue usar o console log padrão parênteses um pouquinho mais avançado para logar o índice os formatos os tipos de variáveis padrões é string endereço e

o índice 256 não lembro um dos ruins é só console log se você quiser logar coisas mais complexas aí ele tem um umas versões sei lá console log 2032 tal que vocês podem ver essas coisas um pouco mais avançadas na documentação do White ele tem uns console Logos específicos dependendo do tipo de variável Beleza então eu vou te dar uma pausa ao respirar um minuto de enquanto isso eu vou copiando e colando no pede e aí eu vou colocar um controle lá para ver quem conseguiu compilar quem conseguiu fazer essas quatro coisas aqui

né compilar rodar uma bloquinha local deploiar o contrato padrão que o radjet já coloca na blockchain local e se viu o log né vou considerar aqui nessa quarta quarta Milestone aqui se conseguiu ver esse log aqui na botinha local beleza

e a última último comando dessa parte inicial é o de teste já vai já vou explicar como criar um dos Testes mas só para você já saberem como funciona o comando que é bem fácil npx hard Ret teste ou npm quando você roda NX Zero de teste ele já entra na pasta teste já ver os seus arquivos de teste já começa a executar no caso o padrão ele vem com um teste né já para te dar como exemplo e ele tá passando [Música]

parentes avançados para turma do avançado aí testes em solidit com hard Hatch para quem é de já tem experiência isso daqui é um tempo é quase um segundo para rodar um teste é muito tempo isso então tem várias técnicas a gente pode conversar depois quem tiver essas dúvidas de como você otimizar coisas mais avançadas para tirar esse tempo para vocês terem uma ideia de mercado ainda pode toda vez que a gente muda algo no nosso contrato a gente tem mais ou menos 500 testes testa esse

balanço Tá ok transfere para outra série para outra Todas aquelas coisas que dá para acontecer no contrato né muda avança no tempo volta no tempo para rodar 500 testes na Pods a gente está demorando acho que 21 20 minutos aos 20 minutos no Git no github cara 20 minutos para rodar o teste Imagina isso é muito tempo então isso que a gente já melhorou bastante a performance lá então para quem é do avançado saiba que isso é uma das coisas que você tem que pensar em escalabilidade mais para frente Beleza então ele precisa de teste é o o último comando que eu quero falar

antes da gente ir para os contratos se todo mundo eu vou copiar a lista aqui de novo Ah tá entendi porque tem a lista inicial então gente quem conseguiu rodar esses quatro comandos básicos do Hard Red e funcionou na máquina dá um ok e também Copiou o arquivo de

configuração o módulo

wafer não tá achando tá [Música] vamos tenta fazer Tenta tirar então aqui no config aqui em cima esse radietware ele devia ter instalado de padrão lembra quando a gente criou E aí ele pergunta você quer instalar as bibliotecas extras era para ter vindo legal é então para quem teve o problema dele que

deu um problema no waffle pode comentar a linha aqui do aí pode ser que tenha problema no teste deixa eu ver beleza Provavelmente você vai ter problema no teste tá porque agora como você está sem a biblioteca que ele usa para teste [Música]

é tenta isso aqui ó vou colar lá o npm install npm Install e esse nome completo aqui com save né na frente se não quiser Então vou até colar para quem não conseguiu instalar o waffle pela linha de comando [Música] eu vou continuando porque eu já passei

do horário aqui né e eu vou vou acelerar então eu vi que já tem uns já estamos perdendo um soldados já tem menos já tem gente com erro hh8 se puder colar com que que é o nome do erro que ele tá falando quem escreveu a h8 Vale de config

é quem tá com esse erro do Vale de Radiante com fig o Gui se você puder dar uma olhada ali quem escreveu erro h8 aqui ó o Rafael que tá com o hh 110 eu [Música] esse erro aqui o inverno de projetion É que na verdade eu eu tinha falado certo e depois falei errado é o Project mesmo

não é o prodution Então tenta trocar quem tá com esse erro h110 Tenta colocar o Project e ver se funciona o Rafael bourguignon quem tá com h8 o Gui tá indo aí Tem o quê

funcionando se quiser acrescentar isso no prédio beleza gente então que eu tava falando

para o Rafael o que eu fiz agora eu rodei o nosso script de Deploy mas eu coloquei uma Flag de netorique E aí em vez de usar Network local que aqui onde eu vejo na minha bloco tinha local eu usei uma rede oficial eu falei deixa eu tentar oficialmente né deixa eu tentar deployar na rede mesmo de verdade aqui então coloquei uma Flag Network coloquei o nome da rede esse nome aqui ele de novo ele não tem nada ele poderia ser nome e batata aqui ó ele é o nome da rede que você colocou no seu arquivo de

configuração Se eu colocar a batata aqui no arquivo de configuração e rodar Network batata ele vai seguir olha ele tá rodando e vai deploiar na Network batata então o que que ele olha ele vai olhar isso aqui ele falar beleza a Network Batata para eu me conectar na blockchain batata eu preciso desse URL aqui no caso a URL que eu tô passando é da Go ele linfura então lembra o que que tá acontecendo por trás dos panos o infura tá rodando um nó para mim ele realmente baixou a blockchain da Gol ele e tal eu tô me conectando a ele e eu estou assinando a transação de Deploy com a

minha mnemônica que eu passei aqui revisando porque que eu usei o Wave para não ficar explícito aqui a minha prova de que eu não vou compartilhar no github Eu criei esse arquivo ponto m com a minha mina Beleza então se vocês quiserem lá em outras né agora é só colocar dinheiro na mnemônica dessa conta e rodar o seu script de Deploy aqui do Tá bom vamos para vamos interagir né com esse contrato então

vamos voltar lá no contrato vamos ver como que esse relógio ele tem uma função Grid ele tem umas como que eu faço para interagir comando novo do Hard Hatch vou dividir a tela em mais uma aqui e agora a gente vai aprender o npx hard Hatch que que console o console ele abre uma conexão com a blockchain que eu quero e ele abre um terminal que eu consigo instanciar e mandar transações direto nesse terminalzinho como se fosse o que o remix cria com os

botões laranjas e azuis que já é uma facilitação absurda né o hard Hatch aqui ele tem essa Command Line aqui para gente então eu npx adject console e eu dou uma Flag em qual que é a blockchain que eu quero me conectar nosso caso é ele né que eu tinha mudado o nome [Música] Lembrando que sempre para funcionar tem que estar dentro da pasta do

que está instalado o hard Red que o DNPM install então console Network eu só vou fazer uma transação e mostrar ela no tender ele para a gente beleza gente Então agora eu estou conectado na goele e eu vou executar Esse contrato aqui para isso eu preciso de novo sempre são duas etapas eu instanncio o contrato

para instanciar o contrato Geralmente eu preciso de duas informações o Gui vai bater a tecla nisso a Bi né sol já falou é a lista que me fala ele traduz ele é um tradutor ele é um dicionário que me fala Olha você vai te code aqui ele equivale com essas funções e o endereço onde que ele tá onde ele tá gravado como eu já tô no meu próprio projeto eu não preciso passar a Bi direto para ele porque ele já vai olhar na minha pasta de artes do avançado aqui toda vez que eu comi um contrato usando

o código do rádio Hatch ele cria uma pasta para mim chamar Darth se eu entro nessa artefax Ele criou um Jason e É nesse Jason aqui que eu consigo achar tanto byte code do Deploy isso aqui pode ser útil para verificação de contrato lá na frente mas o principal a b e então eu posso pegar essa Bi e mandar para o Gui falar Gui você vai criar um frontienge ou a Baby do contrato está pronta essa aqui é a Bi essa aqui é o endereço faz aí o front-end como mas como aqui eu estou no meu

próprio projeto Ele já sabe onde está a pastas ele já procura abi sozinho para mim então o que que eu faço eu vou instanciar o contrato Então vou chamar o meu contrato de Hello aqui para eu instanciar o contrato a wait para a função assim éters que a Biblioteca de Java script são duas bibliotecas famosas para JavaScript que interagem com contratos é a web3 e o éters a web3 ela já dominou muito mercado é uma época mas ela foi ficando para trás em atualização hoje todo o pessoal que a gente conversa ali do

mercado que a gente conhece migrou para éteres Então se vocês forem escolher nem pensa muito cara vai para éteres é o que o mercado tá usando tá mais atualizado e o método que eu vou chamar é o get contrachets que é para um especial contrato aqui eu passo o nome dele do contrato e o endereço eu vou passar esse endereço aqui que foi o endereço de Deploy direto da Gold foi o que eu já deploi na gorda eu consegui depois que eu compartilhei a mnemônica no meu ponto Wave beleza para ver se deu certo vamos

chamar um método de leitura aqui vou olhar rapidinho lá no nosso glitter ele tem esse Grid vamos ver então Hello é o nome da minha Instância e Grid é o nome da função que eu quero passar ele tem um autocomplete beleza eu deixo eu chamei aqui o a Instância do contrato e o método que eu quero chamar na gor ele e ele me retornou a mensagem aqui Hello hard Hatch o que que ele fez ele executou a lógica lá do meu contrato ele executar essa função aqui que ele dá um retânea de greeting que é uma string

que foi gravada no Construtor é uma função como a Paixão já falou pública qualquer uma pessoa pode chamar viu porque ela não muda o estado e ela retorna uma variável do tipo string vamos agora executar uma função E aí a gente vai para nossa última parte da aula que é depois que eu executar uma função eu vou usar o tender que a nossa terceira ferramenta para divulgar o que aconteceu então para eu Executar a função eu simplesmente em vez de chamar o

método Grid eu chamo o método set Grite e eu passo a variável no caso a streaming né na função E aí ele me retornou aqui ó ele me retornou em vez de me retornar só o valor que nem no comando é acima como é que eu tô executando uma transação porque eu tô mudando o estado do contrato aí ele já me manda o resto da

transação em qual mais detalhes né E aí se eu pegar esse ou melhor né se eu ir no meu meta mesc clicar aqui nos três pontinhos e olhar no éter scan eu vou ver o éter que já até esperto como esse é um contrato padrão ele Já identificou o bitecode ele já tá me mostrando qual que é o método da função que eu chamei lá ó 36 segundos atrás eu executei uma função pelo meu terminal Ele já sabe qual que é a função porque

provavelmente é muitas pessoas já compilarem verificar Esse contrato eu já consigo até dar um Decode output aqui ó ele já pegou ele é o dado que eu coloquei lá aí então npx hard Hatch console é o nosso último comando da aula que é para vocês conseguirem se conectar por meio do terminal e uma blockchain que você define na sua Network isso gente assim eu tô eu tô ensinando buildbox mas já vai montando na sua cabeça tipo puto cara então você já consigo ter esse controle pro terminal de novo eu consigo ter uma sequência de

scripts que fazem várias coisas deplo lá em vários contratos leem informação quero fazer vamos lá quero fazer um negócio de falar isso que a primeira coisa que vem na cabeça quero fazer um robô Trader da unislope mais suave mas não sei o que cara instancia aí unisuap ave Sushi não sei o quê cria um script aqui no hard Red que vai instanciar os contratos leia as informações jogar no csv para você para ficar vendo o rendimento por exemplo a arbitragem de preço Então essas primeiras ideias aí que vem na cabeça né [Música]

de aplicações descentralizadas algumas das famosas Amanhã acho que as nove né 69 a gente vai ter uma aula de defay que aí eu vou entrar só nesse o que que é este bocoin o que que é Landing Beleza então npx da Jet console nosso último comando de hoje E aí a nossa última ferramenta que é bem rápida e que é uma mão na roda cara a gente ama essa ferramenta é o tender ali ele tem uma versão para desenvolvedor gratuita sei lá até quantos contratos

você consegue usar ele de forma gratuita e o que que ele é ele é um the Burger Você joga uma transação então eu jogo lá o resto da transação que eu executei aqui ó no caso ela foi com sucesso Beleza não tem dor de cabeça mas às vezes deu um erro e silêncio ele dá um revolte zero um overflow no meio do contrato você não faz ideia onde aí você poderia agora você já tem o hard Red poderia colocar vários console logos em todas as suas variáveis e ver aonde que deu esse hoverflow Mas você pode usar essa ferramenta ainda melhor que aí você pega

lá o resto da transação que deu erro e você joga no tênis deixa eu dar uma introdução a cara do tender aqui né então beleza você tem o tender ele ele é um the bug ele é mais do que isso mais a utilidade principal dele é e ele tem um Google uma barra de pesquisa aqui que ele aceita hash de transação para funcionar o contrato tem que estar verificado Você pode verificar o contrato tanto pela éter Scan mesmo não deu tempo de fazer isso hoje eu vou estar aqui a semana inteira para o rakaton também vamos voltar lá ajudando quem quiser a gente senta junto e eu ensino a parte da verificação truta

ainda ele funcionar o contrato tem que estar verificado no éter Scan ou no policar no Snow Trace no Block Explorer que você está usando ou tender ele tem uma verificação própria Você pode verificar o contrato no tender E aí ele também vai funcionar que que ele faz você joga aqui o resto da transação e ele vai te falar linha a linha o que que tá acontecendo Então no caso essa transação Aqui não está verificado que eu não verifiquei Então não vai Infelizmente o exemplo não vai

não vai funcionar deixa eu pegar não com esse aqui não vai funcionar o exemplo que eu quero mostrar então eu vou mostrar o nosso aqui mesmo vou pegar um contrato da pós lá da nossa empresa mesmo contrato de mente aqui ó uma função de mente Olha o que eu consigo fazer com o tender eu clico aqui viu The Burger e ele me mostra na transação linha a linha eu vou dando um next aqui ó e ele vai mostrando linha linha O que

que tá executando lá na blockchain quais eram os estados os valores de todas as minhas variáveis qual que era o steck tracer né ele chamou o contrato externo ah deu um erro travou lá no contrato do sol fez um contrato eu chamo o contrato da sol não é o meu contrato que tá com erro da sol o se o contrato da sorte vai verificar do meu verificado tem dele vai mostrar exatamente a linha que deu erro tem uma ferramenta muito poderosa enfim Então essa é só uma das coisas Os The Burger você consegue simular Putz Será que foi porque eu chamei a função com o valor de 10 você tem um botão reea Simulator aqui

que ele pega ele dá um Snapchat ali do momento da transação e você consegue rodar um valor é mudando o estado dela na hora tem uma ferramenta para vocês envolvedores terem aí no toolkit muito poderosa é um mercado inteiro tá usando e é isso Então é isso gente eu acho que eu consegui passar pelas funções básicas aí do Red instalamos em fura conectamos em fura no hard Hatch temos agora mnemônicas e já conseguem começar a rodar scripts mais elaborados e essa cereja no bolo aqui tem dele de bugging se vocês estiverem com

dificuldade meu contrato tá dando erro eu não sei é o que que tá acontecendo Eu já rodei console logo e não tô achando tendo ali pode ser uma boa ou já deplo aí já o meu projeto já tá ao vivo já tá lá no rakaton já tá para E aí eu já tô mexendo no Frontier de tá dando erro tendo ele salva vidas Então é isso gente com infura hard Hatch tem nele remix você já já tem ferramenta legal aí para começar a programar no rockton é isso