[Música] Boa noite pessoal tudo bem Aqui é o luí e vamos começando Nossa tradicional Live de segunda-feira como todas as segundas-feiras sempre às 19 horas vou trazer hoje mais um conteúdo bacana para vocês envolvendo aí programação JavaScript web web 3 blockchain crypto e esses assuntos aí que são o grande foco deste canal então se você ainda não é inscrito não é inscrita se é sua primeira vez aqui no canal saiba que todas as segundas-feiras sempre nesse horário você me encontra por aqui trazendo conteúdo bacana sobre esses tópicos que eu citei por isso desde já fica
o convite caso você ainda não seja inscrito ou inscrita se inscrever aqui no canal né recentemente a gente bateu a marca ali dos 29.000 inscritos estamos buscando agora os 30.000 aproveitar a oportunidade para agradecer todo mundo que é inscrito no canal e também né desde já antes da gente começar o conteúdo Central já pedi o like de vocês né quem conhece o meu trabalho sabe como é que funciona as dinâmicas sabe como que é a didática o suporte etc puder deixar o seu like de largada eu agradeço porque aí o YouTube pega e disponibiliza essa
Live enquanto ela tá acontecendo ainda para mais pessoas aqui na plataforma agora se você é a primeira vez você ainda não conhece o meu trabalho puder me dar esse voto de confiança eu agradeço beleza deixo aqui embaixo na tela para vocês também Quem ainda não me segue nas redes sociais né além das lives todas as segundas-feiras 19 horas a gente tem Live a gente tem desculpa vídeo aqui no canal todas as quartas-feiras e todas as sextas-feiras além de conteúdo em formato menor aqueles shorts aqui no YouTube né quase todos os dias tá melhor maneira de
você não perder nada do que eu produzo não só aqui no canal quanto lá no meu blog também luiz.com.br é você me seguir nas redes sociais né você se inscrever aqui no canal E aí o YouTube vai te entregar e te avisar de tudo que eu produzi por aqui mas as redes sociais como o Instagram o Linkedin e o meu canal no telegram você vai receber as notificações também dos posts do blog você vai receber também notificações de quando eu faço eventos quando eu faço cursos agora nesse mês de setembro eu vou tá presencialmente em
São Paulo no The developers conference São Paulo eu vou est palestrando na trilha de node JS com uma palestra sobre web 3 né integrando backend node com a blockchain e eu também vou estar coordenando no mesmo dia 19 de setembro o hacking Lounge de web 133 blockchain neste mesmo evento vai ter uma atividade muito bacana lá para todos os participantes vão ser na verdade uma série de atividades ao longo do dia e eu vou estar facilitando coordenando ali o espaço junto a outros eh instrutores né que vão estar disponíveis lá para eh ensinar vocês um
monte de coisas bacanas certo então fica aqui o convite se você é de São Paulo né ou região puder estar lá presencialmente será um prazer né tê-lo Eh comigo né conhecê-lo ou conhecer pessoalmente neste evento aí que é um dos maiores um dos maiores de Tecnologia do país tá bom teria ser aí São Paulo o evento é dias 18 1920 mas eu vou instalar o dia 19 apenas o dia inteiro Tá bom se você não for da da grande São Paulo vamos dizer assim o evento também tem a possibilidade de você assistir ele digitalmente ok
tem mais instruções aqui na página do evento vou largar o link para vocês aqui no chat se você tivesse assistindo a gravação dessa Live depois do dia que o evento termina sinto muito né mas se você não for da grande de Porto Alegre da grande de Porto Alegre não desculpa da grande de São Paulo você pode assistir ele online tá tem tanto trilhas gratuitas quanto trilhas pagas então fica a dica aí de dar uma olhada depois vê se não rola de você aprender algumas coisas bacanas não apenas comigo no dia 19 mas também com os
demais palestrantes coordenadores e etc nos dias 18 19 e 20 então Esse é um outro tipo de conteúdo que eu divulgo nas minhas redes sociais né quando tem evento quando tem seja evento que eu vou participar ou evento que eu estou conduzindo né eventualmente faço alguns eventos de programação online h quando lanço o ebook novo quando tem promoção de ebook quando tem promoção de curso e por aí vai para você ficar sabendo de tudo isso basta me seguir aqui nas redes sociais qualquer uma delas todas elas TM o mesmo conteúdo você vai estar recebendo as
minhas eh novidades diariamente beleza deixa eu ver quem já tá aqui comigo essa nossa noite de segunda-feira dia 2 de setembro Boa noite aí pro Paulo Power Boa noite pro Lucas pro Leandro Barros Leandro que é aluno aí sempre presente na nas lives Maurício também é aluno show de bola boa noite boa noite pros demais aí que forem chegando e que eu não veja que eu não consiga dar boa noite quando eu vou já estar conduzindo aí o o conteúdo beleza show de bola que que eu preparei para essa nossa noite de de hoje tá
ã um assunto que muitos de vocês que me acompanham curtem bastante que é a parte de Dex né de integração com Dex certo Dex para quem não sabe são as corretoras descentralizadas são corretoras que elas funcionam que elas operam exclusivamente em cima da blockchain n Então você não tem aqueles riscos Quais são os maiores riscos das corretoras de criptomoedas tradicionais as centralizadas né é a própria centralização do seu dinheiro né Elas vão girando ali o as os trades né os trades vão acontecendo mas o dinheiro de fato fica todo Centralizado na mão da administração da
corretora né ele não fica na custódia de vocês né a gente até tem endereços de carteiras nas corretoras centralizadas Mas eles são apenas para depósitos né eles não são para você de fato ter a custódia ter a posse das suas moedas e nas corretoras descentralizadas não você faz o trade delas utilizando mantendo a custódia própria na sua carteira e apenas cedendo pontualmente né ah o controle sobre esses fundos para quando precisa fazer o que a gente chama de Swap né uma troca de um token por outro então esse é um assunto que vocês gostam bastante
um assunto que tem pouquíssimo conteúdo em português e PR essa noite de hoje eu preparei basicamente focado na Dex pancake Swap né que é uma das maiores deck aí do mercado se eu não estou enganado ela é a maior da rede bsc que é a rede da binance né a BNB smartchain e também tem Deploy dela em algumas outras redes Tá mas eu sei que se não me engan na rede da binance El é que tem o maior volume de negociações e consequentemente ela é uma das maiores do mundo e o que gente vai fazer
em cima dessa Dex aqui eu preparei um conteúdo aqui para vocês de monitoramento né Qualquer que seja a integração que vocês vierem a fazer o monitoramento vai dar uma base fundamental para vocês Luiz eu quero fazer um um dashboard um painel de acompanhamento que eu vou trazer aqui vai te ajudar muito luí eu quero fazer um robô de sinais né para monitorar o mercado e me avisar ou avisar um grupo de boas entradas e saídas o que eu vou trazer aqui vai te ajudar muito eu quero fazer um bot Trader o que eu vou te
trazer aqui é metade do caminho do bot Trader é a parte Inicial ali de monitoramento e inteligência de mercado Então a gente vai trabalhar aqui hoje como que eu monitoro ativos na Dex pancake Swap e não vou mostrar isso de apenas uma forma vou mostrar isso de três formas diferentes para vocês cada uma das formas vai abrir um Horizonte de possibilidades e obviamente vai destravar algumas habilidades novas em vocês porque uma das coisas uma das coisas mais legais de você investir ou de você trabalhar em projetos em cima de de investimentos com criptomoedas é o
quanto de conhecimento técnico você acaba agregando pro seu portfólio também então eu vou mostrar para vocês hoje três formas diferentes né todas elas TM prós e contras de fazer o monitoramento da de da pancake Swap beleza lembrando então que essa Live aqui tá sendo gravada Então quem tiver assistindo ao vivo comigo primeiro grande vantagem assistir ao vivo você tira dúvidas na hora tá aqui na minha esquerda tá o chat então mandem suas dúvidas à vontade tá vou est acompanhando elas e encaixando elas ao longo da explicação se você tiver assistindo a gravação você não vai
ter mais o chat à disposição Mas você consegue deixar as dúvidas na sessão de comentários aqui embaixo tá então podem mandar dúvidas à vontade aliás eu gosto quando vocês mand dúvidas porque comentários nos vídeos assim como os likes que eu tenho certeza que vocês já deixaram né para me ajudar aqui com o meu canal as dúvidas de vocês também geram engajamento com o vídeo o YouTube entende que o vídeo é interessante que ele gerou engajamento e acaba ajudando aí na divulgação do vídeo então podem mandar as dúvidas de vocês aí à vontade e por fim
qualquer link que eu citar ao longo aqui link material etc inclusive os Fontes eu vou deixar depois na descrição aqui da gravação da Live Tá bom você vai vai ali na descrição vai ter alguns links link das minhas redes sociais link de fontes e por aí vai vocês vão encontrar ali então quem tiver assistindo ao vivo dedique-se em assistir procurar entender tirar dúvidas ao vivo e deixe para codificar num segundo momento pega a gravação depois da Live E aí acompanha de novo uma segunda vez codificando junto etc que vai ser muito mais proveitoso não tem
de fazer tudo junto comigo aqui porque você acaba se perdendo perde uma parte da explicação tem erro e tal não é muito ã produtivo tá eí claro se você tiver erros depois na sequência da Live deixa ação de comentários aqui que eu respondo aí todo mundo beleza galera Então vamos Começando aqui o nosso conteúdo Central só tomando uma água aí porque pra voz durar até o final da Live né senão não dura Show Beleza então a gente tem a missão de neste vídeo né aprender a monitorar ativos na pancake Swap o principal ativo que a
gente tem na Pake Swap o que a gente vai monitorar aqui são as criptomoedas listadas nela certo na verdade o termo mais correto seria os tokens listados nela né mas a gente costuma chamar tudo de de criptomoeda e as criptomoedas na pancake Swap elas são listadas elas são organizadas através de pulls de liquidez né O que que é um pull de liquidez um pull de liquidez ele é um um um local né para fazer uma analogia né Ele é um local onde você coloca dois ativos nesse Pool E aí o equilíbrio entre esses dois ativos
que dá a precificação deles então por exemplo se eu tenho num P 1000 usdt né que é uma criptomo atrelada ao dólar e eu tenho por exemplo um de uma outra moeda qualquer Vamos inventar aí uma Luis coin tem um p de liquidez com um Lis Coin e 1000 usdt o equilíbrio entre elas é o que precifica os ativos certo então neste Pool qualquer Swap né que é uma troca de criptomoedas que aconteça vai ser feito buscando manter este equilíbrio de 1000 para um certo então um usdt um um Lis coin nesse pull fictício Valeria
1000 usdt né e um usdt Valeria um milésimo de Luis coin neste Pool aí depois em cima disso tem algumas fórmulas matemáticas dependendo da versão da Dex certo para garantir que esse Pool não se esgote rapidamente então conforme você vai tirando mais o SDT vai ficando mais caro né o o Luis conseguiu o Luis Coin e vice-versa né vai tio mais Lu coin vai ficando mais caro conseguir o o SDT né Para garantir um que o pulo esgote rapidamente E também temos além desse fator de flutuação do preço a gente tem também as taxas dos
pulls né então existem puls com taxas aí desde 0.01 até puls com taxas de 1% ou seja parte das negociações fica né para ah tanto a o lucro da plataforma quanto para o lucro dos investidores que são os os fornecedores de liquidez são quem botam dinheiro nos puls para que eles existam e as pessoas possam fazer suap com eles então aqui eu dei um resumo de como que a Dex mais ou menos funciona do ponto de vista de pull de liquidez né E para vocês entenderem que é justamente olhando estes PS que eu consigo entender
o preço dos ativos contidos neles Ok beleza E no momento que eu entendo que as Dex como a pancake Swap por exemplo elas operam inteiramente em cima de smart contracts eu posso presumir que eu tenho algum Smart Contract com o qual eu consiga consultar o preço de um Pool de liquidez né as informações de um de liquidez incluindo o seu preço tá E essa essa H essa ideia né Ela é válida de fato é assim que acontece né eu tenho Smart contracts para criação de pulls eu tenho Smart contracts para pegar cotações de puls eu
tenho Smart Contract para fazer o Swap de Fato né então eu ten Smart cont para as mais variadas atividades da deex e através deles que a gente faz todas as interações com a deex tá bom diferente das corretoras centralizadas onde a gente tem apis geralmente r t ou via websockets para fazer consumo de informações ou envio de ordens por exemplo nas corretoras descentralizadas é tudo feito via integração com os Smart contracts Luiz o que que é o Smart Contract tá muito resumidamente são programas que você escreve que rodam na blockchain tá no caso de decs
como uniswap pancake Swap Sushi Swap entre a imensa maioria das outras a gente escreve esse Smart cont utilizando uma linguagem chamada Solid que é bem específica de uso de blockchain né e depois a gente pega a compilação desse Smart Contract e faz o Deploy na blockchain para ele passar a existir então toda Dex nasce dessa forma opera dessa forma tá bom todas as Dex modernas pelo menos Beleza então essa essa introdução rápida para você começar a entender um pouco mais Caso seja novidade para você né como é que esse mercado de Dex funciona como é
que a gente interage programaticamente né via software com esse mercado é então se integrando um software que você escrever em qualquer tecnologia Com estes Smart contracts e quando o assunto é monitoramento tem várias formas da gente monitorar esse mercado desde você ir no site manualmente né eh e e olhar visualmente as informações quanto você via software obter essas informações de diferentes formas todas as formas inclusive ver no site manualmente no final das contas elas vão parar em algum momento lá no smart Contract tá porque a informação real final tá lá no smart Contract então em
algum momento seja você olhando no site Seja você usando um API de terceiro seja você olhando no smart Contract vai virar uma olhada no smart Contract de alguma forma em algum momento então eu vou mostrar três formas aqui para vocês mas no final das contas todas elas né Eh acabam em algum momento gerando o mesmo resultado algumas são mais simples outras mais complexas algumas tem limitações maiores outras menores mas afal das contas a informação real tá no smart Contract por isso que que a primeira forma que eu vou mostrar é justamente a forma que você
se conecta diretamente no smart contracts sem intermediários né para olhar lá né para chamar lá as funções para obter cotação E aí depois em cima dessa forma que é a mais vamos dizer assim Certeira mais precisa mas também a mais complexa de implementar a gente vai estudar outras duas formas mais simples mas que tem outras desvantagens aí no processo tá bom Então vamos lá primeiro ponto quero me conectar no smart Contract tá no smart Contract da pancake Swap para obter uma cotação de uma criptomoeda para fazer isso você vai precisar programar chamadas Jon RPC para
um nó da blockchain alvo no caso da pancake Swap ela trabalha em algumas blockchains sendo a principal a bsc que é a a BNB smartchain que é a blockchain da binance popularmente chamada então Primeiro passo é você precisa ter um nó da bsc disponível felizmente a bsc disponibiliza pra gente nós públicos gratuitamente Você vai precisar ter um software programado por você que vai enviar chamadas de RPC para esse nó tá existem no mercado em diferentes tecnologias bibliotecas que facilitam esta comunicação do seu software com o nó da blockchain eu vou trabalhar aqui com vocês com
a tecnologia nodejs certo que a tecnologia que eu trabalho quase que principalmente desde 2016 é minha tecnologia principal onde a gente utilizando JavaScript que é uma linguagem extremamente simples de aprender a gente consegue fazer todo tipo de aplicação inclusive aplicações Integradas da blockchain como a gente vai fazer hoje e um dos motivos de utilizar nodejs com JavaScript é porque hoje né a linguagem JavaScript através do npm o npm é um repositório de bibliotecas e pacotes né Tem um maior ecossistema né de bibliotecas e pacotes do mundo comparando aí com todas as demais linguagens tá desbancou
até mesmo o maven que era o maior do mundo que é o repositório do Java e quando a gente fala de JavaScript a gente tem duas principais bibliotecas para fazer essa comunicação com a blockchain de maneira facilitada uma é a eers que é essa aqui que eu tô abrindo a página com vocês e a outra é a web 3js tá bom que eu não vou usar hoje aqui mas que daria também perfeitamente para utilizar também então o que eu vou fazer com vocês eu vou criar um projeto nodejs vou instalar nele a biblioteca eers e
nós vamos programar nele a comunicação com Smart contracts da pun Swap para obter cotação de PS de liquidez que com isso eu vou ter informações de preço de criptomoedas beleza Luiz nunca programei nodejs antes vou deixar o link aqui na descrição de um vídeo aqui do canal que ensina a instalação do ambiente Tá mas é só baixar e executar até o final não tem muito mistério mas tem um videozinho bem passo a passo eu vou usar também uma ferramenta chamada visual Studio code que nesse mesmo vídeo ensina a instalar também certo e ã se você
quiser aprender o básico de node JS Se você souber programar qualquer outra coisa você vai conseguir acompanhar aqui o passo a passo tá mas se você quiser de fato aprender nojs você encontra aqui no no canal playlists de programação para iniciantes você encontra no meu blog L studos.com.br na sessão meus livros tem e-book gratuito também para ensinar o básico de no JS e se você enfim tiver alguma dúvida ou à Não tá partindo do zero tá partindo de algum outro momento quiser alguma orientação sobre como estudar no JS pode deixar aqui nos comentários também que
eu respondo aí todo mundo beleza então eu vou começar criando aqui pra gente o nosso projeto Deixa eu só abrir aqui a minha ferramenta pra gente começar então aqui eu tô com o visual Studio code aberto né eu tenho na minha máquina já tá instalado code instalado se eu for no menu terminal New terminal eu abro aqui o console E aí eu vou navegar at uma pasta qualquer eu vou entrar no desktop tá mas você pode navegar em qualquer pasta aí da sua máquina com comando CD e eu vou criar uma passa pro nosso projeto
Tá vou chamar aqui de pancake Swap trç monitor beleza aí eu entro nessa pasta pancake Swap traço monitor se você quiser criar visualmente também dá para criar não tem problema nenhum tá o importante é você abrir o terminal entrar na referida pasta inicializar o projeto com comando npm nit Men Y tá esse comando aqui é para inicializar um novo projeto node JS aí na sua máquina com o projeto inicializado nós vamos instalar dois pacotes tá um eu apresentei ali antes que é o eers que é o pacote de comunicação com a blockchain mas eu vou
instalar também o pacote D env que é o pacote pra gente fazer o carregamento das configurações do nosso projeto Dá um enter aí para mandar instalar ele vai instalar aqui pra gente e aí você pode ir no menu Open e mandar Abrir Esse projeto aí P Swap monitor e vai abrir aqui pra gente então eu tenho aqui a node modules que são os pacotes que a gente tá utilizando package Lock que é relativo a áv de dependências e o package json que o arquivo de configuração do projeto eu vou criar aqui primeiramente o arquivo com
as configurações do nosso projeto ok daí eu já vou explicar algumas coisas de como é que vai funcionar o arquivo de configurações de projeto node a gente chama de ponto envi tá que é o o envi é de environment né que é ambiente que a gente coloca as variáveis de ambiente as configurações gerais do ambiente da infraestrutura do nosso projeto como o nosso projeto ele é um monitoramento a primeira configuração que eu vou ter aqui eu vou chamar de interval Tá o que que é o interval é o intervalo de monitoramento tá de quanto e
quanto tempo você vai querer buscar essa informação Ah luí eu posso buscar essa informação de um em um segundo Tecnicamente falando pode tá mas você vai ver que quando você vai monitorar algum tipo de de ativo primeiro que nem todo segundo tem alguma mudança significativa e segundo é que os nós de blockchain né eles costumam ter limitações de consumo de recursos pras pessoas não né não infernizar o Nó e acabarem derrubando ele com consultas como por exemplo de preço Então você tem que dosar de alguma forma que você consiga ter um intervalo que te permita
ter a informação com a atualização que você precisa mas que ao mesmo tempo não fira os limites de uso do node blockchain que você estiver utilizando aqui nós vamos utilizar um node blockchain gratuito certo então tem que tomar cuidado aí para não perder esse esse benefício não ser bloqueado certo se você for utilizar um node blockchain pago existem também vários aí no mercado que você pode contratar de provedores em nuvem aí você vai ter lá bem claro no seu plano O que que você pode fazer o que você não pode E aí tem planos que
você pode usar quandoo quiser desde que você pague por isso tá bom então aqui eu vou colocar tá não é uma recomendação exata é apenas uma um exemplo tá um intervalo de 300.000 msos que dá aí 5 minutos tá então eu pegaria o valor a cada 5 minutos tá mas aí você pode depois ajustar conforme a sua realidade o seu interesse beleza essa é a primeira configuração o intervalo de monitoramento segunda configuração eu vou chamar de provider URL que que é provider URL Luiz provider URL é o endereço do nó de blockchain no qual você
vai se conectar tá a blockchain como ela é descentralizada você não tem um único endereço global que todo mundo usa você tem que pegar o endereço de algum nó que esteja conectado nessa rede pode ser inclusive um nó que você tenha na sua máquina dependendo da blockchain você consegue fazer isso mas é o endereço aqui de um no específico que você vai se conectar como eu vou monitorar a pancake Swap na rede na blockchain bsc eu preciso de um nó público da bsc felizmente a bsc Me fornece isso facilmente e gratuitamente tá se você colocar
no Google binance metamask você vai achar esse artigo aqui ó connecting metam to BNB smartchain a metam é uma carteira cripto não vem ao caso a gente falar de carteira cripto hoje mas nesse tutorial aqui deles eles dão os endereços os nós públicos e gratuitos pra gente ó tá aqui embaixo aqui então ambiente de teste e mais aqui embaixo Você acha o ambiente de produção algum canto aqui cadê H É este aqui que tá imagem ó só quero achar ele escrito para copiar ele é aqui é o de teste mas é esse que tá na
imagem aqui ó tá esse bsc data seed binance Org eu tenho ele aqui na minha colinha mas eu acho que tem algum lugar aqui do texto que tem ele também para copiar mas é esse que aparece aqui na imagem da mainnet Ok vamos fazer o monitoramento em produção mesmo então esse aqui é o endereço tá bsc trdat sed. binance.org próximo próxima configuração tá bom tem o endereço da blockchain só que agora eu preciso do endereço do Smart Contract que eu vou utilizar para consultar a informação de cotação Esse contrato de cotação nas dec a gente
chama de coter tá ou coter Contract alguma coisa assim cter seria de de cotação né que obtém cotação Então vou chamar essa configuração de quoter address endereço de cotação tá aqui eu tenho tem que pegar o endereço do contrato todas as as dec possuem uma página onde elas listam os diferentes endereços dos seus contratos então aqui eu vou est trabalhando com PC Swap V3 tá muito importante essa informação porque muda bastante de uma versão para outra das dec tá a versão atual a data que eu tô gravando seleção é a V3 e nesta página Aqui
você encontra os endereços de todos os contratos nas diferentes redes que a pancake Swap tem Deploy E aí você tem que procurar aqui o coter ó coter V2 esse aqui é o cara tá a aex V3 mas esse contato na versão 2 ok e nele a gente tem aqui ó nas diferentes redes o endereço como eu sou na bsc então o endereço que eu preciso usar É este aqui esse coter é o contrato que Me fornece cotações de puls de liquidez beleza show próxima configuração Qual é o token que você quer cotar Então você vou
chamar isso de token underline in underline address quando eu falo token não é o código dele tá gente Ah vou botar aqui btc não na blockchain os tokens eles são identificados pelo endereço do seu smart Contract então aqui você tem que colocar o endereço do Smart Contract que você quer monitorar do Token né Smart Contract do Token você quer monitorar Tá bom então por exemplo eu separei aqui o endereço do wbnb que que é o wbnb Luiz wbnb é o Rapid BNB né é a versão erc20 da criptomoeda BNB tá só abrindo um parêntese muito
rápido o que que acontece toda blockchain tem uma moeda Nativa na blockchain da binance é moeda Nativa é BNB só que a moeda Nativa ela não segue as regras dos tokens rc20 que é o padrão universal para tokens né no mercado Defy em geral Então existe o Rapid BNB que é um rc20 do BNB que é o que a gente utiliza nas negociações nas Dex tá a mesma coisa pro eth eth é moeda nativa da eum daí eu tenho o wth que é a versão rc20 do etherum para poder usar ele em protocolos Defy Dex
E por aí vai tá bom então este endereço aqui é do wbnb ok na M você pode utilizar aí qualquer token que você quiser monitorar tá se eu for aqui ó bscscan.com colar aquele endereço aqui ó ó tô no token Rapid BNB wbnb Tá bom então é esse cara aqui que a gente vai monitorar quero saber o preço dele e aí você me pergunta o preço dele em que qual unidade de medida né Qual outra moeda de cotação aí você vai definir em outra variável token underline out E aí você vai colocar aqui o endereço
da moeda de cotação essa aqui é a moeda que vai ser cotada e aqui embaixo a moeda de cotação Como assim Luiz você quer saber o preço do BNB em qu Ah eu quero saber em dólares Beleza então bota aqui embaixo o endereço de uma stable coin lastreada em dólar parada em dólar Ah não Lu eu quero saber o preço do BNB em btc Beleza então bota aqui embaixo o endereço né de um btc de um contrato de de wbtc provavelmente né na rede bsc então aqui em cima é o token a ser cotado aqui
embaixo o token de cotação eu peguei aqui pra gente o usdt na mainnet certo então esse endereço aqui é o SDT se eu for lá no explorador de blocos você vão ver ó bsc USD tá então parado aí com o dólar tá bom show então nós temos aqui né No final das contas que eu vou estar monitorando é o preço do wbnb em o SDT Beleza então essas são as configurações que nós precisamos para o nosso projeto e as explicações de cada uma delas tá um outro ponto que é interessante você dar uma olhada também
é se você pegar esse quoter address aqui for lá no explorador de blocos você vai pro contrato né em questão e aqui na aba Contract você vai ver as funções de leitura que este contrato tem e as funções de escrita que esse contrato tem então reparem que são funções relativas aí a cotações tá bom E é isso que a gente vai utilizar a gente vai chamar a função de cotação ela vai fazer os cálculos né e me dizer por quanto sairia né A minha se eu fosse vender um BNB quantos usdt Eu receberia por exemplo
ou o contrário conforme vocês assim configurarem na função Então essa aqui é a ideia inclusive você pode fazer isso aqui visualmente também pelo explorador de blocos né Beleza então esse é o primeira etapa que é a etapa aí de configuração fazer esse primeiro monitoramento aqui é o mais complicado depois os outros vocês vão ver que é mais tranquilo porque você já vai ter até os os conceitos todos né já ã frescos na memória né Beleza que mais que o vou precisar aqui tá sempre que eu for me comunicar com o Smart Contract eu preciso ter
o abi desse Smart Contract o que que é um abi É um application binary interface uma interface né binária de aplicação o abi ele é basicamente um arquivo Jon que me descreve Como Eu me comunico com determinado Smart Contract o que que determinado Smart cont consegue fazer tá ele e ele é vital para que as bibliotecas de web 3 consigam se comunicar corretamente com o Smart Contract em questão então eu vou criar aqui um outro arquivo que eu vou chamar de coter porque é o abi do contrato de coter pabi Jason e aqui dentro eu
vou colar o abi do contrato de cotação contrato de cotação é esse aqui né se eu vier aqui em code você vai monar o abi dele aqui embaixo cadê Aqui ó tá aqui o abi então você pode copiar ele aqui e colar aqui ok então esse arquivo ele é necessário para que a comunicação ocorra aí com sucesso Beleza então a gente estava até agora só preparando o ambiente para que a gente possa então começar a programar o nosso monitor o monitor em si a gente vai deixar ele num arquivo index JS que eu tô criando
aqui agora a gente pode testar inclusive esse arquivo com console log qualquer e eu posso inclusive aqui no pack Jason dizer que eu quero inicializar o meu projeto meu script de start a partir do arquivo index JS tá dou um node index JS aqui então se eu fizer um npm start ó hello Road tá então tá tudo OK aí no nosso no nosso projeto eu posso começar a programar ele de fato o Maurício perguntou né se ele puder utilizar um nó local né subir um full node local na máquina dele se ele consegue fazer alta
frequência né se ele consegue por exemplo consultar ilimitadamente aquele nó dele ou escrever de repente né ilimitadamente aquele nó dele tá ã sim e não tá do ponto de vista de limite de consultas por exemplo você não vai ter nenhum limite exceto acab capade da sua máquina certo do ponto de vista de escritas Você ainda tem as mesmas regras né relativas à taxas de transação por exemplo certo aa tem as mesmas regras de pagar taxas etc etc tá claro considerando aí redes que você tem que pagar taxas tem diferentes tipos de de redes no mercado
o problema é dependendo da rede que você quiser subir um full node você pode ou não pode ou tem regras diferentes umas das outras por exemplo no caso da ethereum para você poder subir um full node na sua máquina você tem que ter 32 eth para realmente ter um full node completo com todas as funcionalidade tem que ter 32 th na sua carteira para poder ter essa permissão vamos dizer assim tá o que você consegue se não me engano é subir aqueles Light nodes que talvez só pra consulta Se for esse objetivo acredito que já
vai lhe servir Tá bom mas um F node mesmo completo com todos os recursos tem que ter 32 eth no caso da binance na BS SC a rede de blockchain da binance tem outras regras relativas ao BNB eu não vou saber se tá agora no detalhe uma vez eu vi que também tinha a ver com ter um alto volume de BNB na carteira tá mas eu não Realmente não vou saber todos os detalhes o mais importante aqui é você dar uma olhada na sua rede alvo né que você deseja subir um nó vê se você
pode ou se você não pode e quais os requisitos de hardware Porque mesmo as redes que te permitem né Por exemplo a etherium da última vez que eu vi precisava ter 4 ta de disco para subir eu não sei como é que tá isso hoje em dia tá então tem requisitos de hardware né de CPU de memória de disco que você tem que atender também tá mas sim H melhora bastante a sua capacidade de monitorar blockchain de você interagir com blockchain se você tiver um full node local uma outra opção é se você não puder
fazer local é você contratar isso em nuven tá tem vários provedores como infura como quick node ã anchor ã tem um monte tem um monte de provedores aí a inf fur é a mais famosa onde você aluga né ã nó de blockchain em nuven Tá bom então são essas opções aí que nós temos no mercado Então vamos criar agora nosso index JS com o código de fato tá primeiro passo Vamos carregar as variáveis de ambiente né através da função config do nosso pacote dnv Ok então subi aqui o d env que é este arquivo aqui
e carreguei as variáveis paraa memória beleza próximo passo vou carregar o pacote eers que a gente vai utilizar ele aqui para interação com a blockchain então tô carregando aqui um objeto eers eu tô fazendo uma decomposição de variável né entre Chaves é quando eu quero pegar apenas uma coisa do pacote Eu quero um objeto iters tem lá dentro o mais importante depois eu vou também novamente fazer uma nova decomposição de variável em cima das variáveis de ambiente então eu quero pegar aqui o interval eu quero pegar o cter address basicamente eu vou pegar todas as
variáveis de ambiente tá token in address token out address e o provider URL tá então decompos todo process Envy que tinha todas as variáveis de ambiente cada uma para uma constante local aqui para facilitar o meu uso tá vai ficar mais mais direto aqui a forma que eu vou usar eles próxima coisa que a gente tem que fazer carregar o abi lembra que eu falei do abi que é esse cara aqui eu vou carregar ele para uma variável local que a gente vai precisar utilizar ele num parâmetro lá da comunicação Então vou chamar aqui de
quoter abi para carregar um Jon gente no no node é bem simples tá É só passar o caminho pro Jon e ele carrega como sendo um objeto Jon aqui beleza que mais vamos configurar agora a conexão com no blockchain como é que eu faço isso a gente costuma chamar essa conexão de provider de provedor tá então vou inicializar um provider como sendo um New eers P Jon RPC provider Tem vários tipos de provider tá Jon RPC seria o mais genérico deles e RPC ele espera que a gente passe a URL do nó de blockchain para
ele então dessa forma eu estabeleço aquele objeto provider tudo que eu mandar ele fazer vai ir parar naquele nó de blockchain que tá que tá nessa nesse endereço aqui tá que é este cara aqui que é basicamente um nó de bsc mainnet ah Luiz Eu tenho um nó local na minha máquina Beleza você vai colocar o endereço do nó local da sua máquina aqui ah luí eu contratei um num Block num serviço de blockchain nuven blockchain as a service você vai colocar aqui o endereço que o blockchain as a service vai te fornecer beleza show
então configuramos aqui as variáveis iniciais agora a gente pode programar o monitoramento de fato Tá eu vou colocar isso dentro de uma função para que a gente possa chamar essa função repetidas vezes né para ele monitorar de tempos em tempos Então vai ser uma async function execution cycle então um ciclo de de execução né o nome na verdade pouco importa né E aí eu vou receber aqui um token de entrada um token de saída e a taxa o que que isso quer dizer gente todo Pool de liquidez tem no mínimo essas três informações o token
de entrada do seu Swap o token de saída do seu Swap e a taxa daquele P com base nessas três informações a Dex vai conseguir rotear a sua requ encontrar o pool adequado o p existente e fazer o cálculo da precificação e te devolver tá ela precisa dessas três informações Qual é o token que você tá dando Qual o token que você quer receber e qual a taxa que você quer pagar tá Ah Luiz Como assim a taxa que eu quero pagar Como Eu mencionei Em outro momento as taxas variam de 0.0% até 1% por
que que alguém pagaria 1% o mercado ele flutua bastante né então tem PS de liquidez que estão às vezes com preço melhor mas aá uma taxa mais cara porque os pulls de liquidez que tem uma taxa mais baixa geralmente é mais os Traders são mais agressivos ali então eles são mais judiados né são mais atacados vamos dizer assim então às vezes você consegue num outro Pool que tá que tem uma taxa mais cara você consegue fazer uma negociação melhor muitas vezes né também tem uma questão ligada à volatilidade das moedas algumas moedas muito voláteis você
não consegue consegue criar P de liquidez pensando agora como investidor com taxas baixas porque senão você perde muito dinheiro ou às vezes a própria Dex não te permite então o importante aqui você entender que você tem que ter né para conseguir monitorar você tem que ter o endereço do Token que você quer dar que você gostaria de receber que é o que você vai saber a cotação né e a taxa que você tá disposto aí a pagar tá bom show agora como que a gente programa esse ciclo de execução primeiro passo eu preciso ter um
objeto que vai me permitir comunicar com o contrato esse provider me comunica com o nó da blockchain de maneira genérica agora tô criando um objeto Contract que é para comunicar com contrato específico que tá na blockchain para isso a gente utiliza a classe it. Contract ela pede como primeiro parâmetro que eu passe o endereço do contrato que eu quero me me conectar então é o cter address o segundo parâmetro ela me pede o abi deste contrato que é o cter abi e o terceiro parâmetro ela me pede o provider tá eles chamam de Runner aqui
na na no autocomplete mas é a conexão onde é que eu vou conversar com este contrato aqui neste provider aqui certo então isso aqui esse cara aqui me conecta de maneira genérica blockchain esse aqui me conecta naquele nó que eu conectei antes amente um contrato que eu passei o endereço e o abi aqui e aí agora a partir da linha de baixo eu consigo chamar qualquer função existente neste contrato a partir do objeto Contract Então vamos lá que que eu vou chamar aqui quoter Contract ah na verdade é Contract só né Contract ponto a função
que eu vou chamar é a quach exact input single então é cotar né obter a cotação exata simples com entrada exata tá o simples aqui é que você consegue tem tem funções que você consegue fazer cotações mais complexas tá que uma cotação simples você vai dar um você vai fornecer um token ser assim você fornece um token e no mesmo você recebe outro token cotações envolvem às vezes passar por vários pools imagina que você quer trocar token a por token B mas não tem um Pool que troque a por B mas tem um que troca
a por c e um que troca C por b então você conseguiria fazer essas cotações com múltiplos saltos que eles chamam certo isso tem até aqui ó no próprio contrato né tem ó o exact input e o exact input single que é o que a gente tá utilizando aqui tá bom então é o mais simples a gente obter cotações e também é o que você vai perder menos com taxas né então vai dar um preço mais próximo do do real do final tá bom que você fazer saltos em vários pulls É como se você fizesse
várias negociações né então Coach ex input single e esta função aqui ela espera um objeto por parâmetro e esse objeto ele tem a propriedade token in que é o endereço do Token de entrada que você quer saber a cotação um parâmetro token out uma propriedade token out que é a moeda de cotação né a moeda que você vai receber na receberia na saída então por exemplo aqui seria o nosso wbnb aqui seria o nosso usdt terceira propriedade é o Fi né que é a taxa Depois tem uma propriedade que é amount in quantia de entrada
token in é qual token você quer saber a cotação amount in é quanto que você vai fornecer para calcular a cotação Como assim Luiz a cotação não é a mesma se eu vou trocar um BNB ou 10 BNB não é a mesma não tá por qu assim como numa corretora centralizada quanto maior o tamanho do lote que você vai colocar vai fazer a compra por exemplo ou a venda não importa maior vai ser a variação de preço que você vai obter no preço médio correto uma coisa você vai comprar uma porção bem pequena né vou
comprar ali o equivalente a $1 não vai nem fazer cosquinha no mercado Provavelmente você vai vai conseguir um preço estável agora se você vai comprar 1 milhão de dólares um ativo isso vai mexer com com o mercado certo Possivelmente falando tá ess valores não são literais é só uma Uma analogia então o seu preço médio vai escorregar para Além Do preço que você vai estar vendo num primeiro momento né porque ele vai comprar de quem tá vendendo mais barato daqui a pouco de quem tá vendendo mais ou menos barato daqui a pouco a gente tá
vendendo caro até conseguir preencher toda a sua ordem de Swap Tá bom então aqui você tem que dar Qual é o amount in do Token in n Qual a quantia do Token in que você vai utilizar como base para saber a cotação Eu costumo trabalhar com token inteiro né se eu quero saber a cotação de um BNB eu passo para cá um BNB ok aqui eu tô utilizando a função parer para converter o número um paraa escala correta certo como assim Luiz na blockchain todos os valores monetários são registrados na menor fração da moeda que
a gente chama de Way certo então no caso do BNB né um BNB se a gente pegar a menor fração ele não é um ele é um seguido de vários zeros certo então para eu não colocar aqui escrito um com um monte de zero eu uso aqui o iters PP iter ele vai fazer a conversão corretamente pra gente tá bom e o último parâmetro que eu tenho que passar é o sqrt price com P maiúsculo limit com l maiúsculo x maiúsculo 96 e eu vou passar zero o que que é esse parâmetro aqui tá esse
parâmetro é a sua Toler vamos dizer assim a variação de preço quando eu coloco zero eu quero dizer cara me dá o preço que que tá aí no mercado n não vou botar uma trava aqui seria uma trava seria equivalente a ordens limite das corretoras centralizadas é esse parâmetro aqui é quando você não quer que o preço Fuja do quanto você tá disposto a pagar tá bom zero é cara foge à vontade aí então essa função que que ela faz ela Vai forçar vai vai exercitar vamos chamar assim se eu colocar um inteiro de token
in né uma unidade inteira do Token in por exemplo um wbnb né Eu quero do outro lado receber token out pagando uma taxa que tá em Fei né Depois a gente vai falar sobre um valor qualquer e eu aceito o preço que vier pode flutuar ali o que a gente chama de slippage né que é o o o deslize né pode flutuar o que for desde que me preencha Essa ordem por completo porque eu quero saber o preço de uma unidade inteira de token in repare um um ponto bem delicado que essa função Coach exact
input single como as demais de cotação também elas são funções de escrita tá elas são funções de escrita consequentemente as funções de escrita elas incorrem em transações que por sua vez T taxas na blockchain E aí a gente se depara com uma questão mas pera aí então para obter uma cotação eu tenho que pagar né uma taxa da mesma forma que eu faria um Swap por exemplo né que eu faria uma transação de fato eh em tese sim tá ã tem um porquê disso tem um porquê dessa transação isso é melhor explicado nas documentações técnicas
das dec tá eu não sei explicar agora rapidamente o porquê mas tem um porquê mas por outro lado também tem um truque que você pode fazer no seu código para que você não Pag essa taxa de transação e ainda assim você tenha essa essa cotação que você deseja tá E esse truque É após o nome da função ISO vale para qualquer função Ok você coloca ponto static Call o que que isso quer dizer que esta transação aqui Coach ex input single ela vai enviada para blockchain ela processada mas ela não vai ser registrada e quando
eu tenho uma função uma chamada que não é registrada na blockchain que não salva dado novo que não muda nada ela não é cobrada Então esse ponto static Call aqui você pode utilizar em qualquer função que seja de transação em que você queira fazer o processamento daqui a pouco pegar o resultado mas você não vai escrever os dados não vão persistir na blockchain Ok então ela serve pr faz faz simulações tá então isso aqui Vai forçar uma simulação de cotação perfeito e aí eu posso aqui na na nossa esquerda eh eu vou ter aqui o
retorno são vários parâmetros retornados Ok eu quero somente o amount out tá é uma Array de parâmetros retornados eu quero o amount out que é a quantia de saída Se eu colocar um inteiro do Token um quanto de token out eu vou receber esse amount out aqui beleza e aí a gente vai mandar imprimir isso aqui embaixo wbnb 1 é igual a o SDT amount out só que amount out vai vir na escala de Way né que é sempre a menor fração sempre que eu envio uma informação de moeda é em sempre que eu recebo
a informação de moeda é também então para ficar mais bonitinho al na tela a gente pode formar matar né Ah pra escala de ether né o amount out beleza ele vai formatar aqui pra gente vai ficar mais agradável da gente entender o valor então aqui eu tenho o execution cycle eu posso agora criar o mecanismo de monitoramento que é a última etapa aqui a gente vai botar para rodar então eu tenho aqui token in é o token in address token out token out address e a Fi é o seguinte a fi ela deve ser em
base de 10.000 Tá o que que isso quer dizer 10.000 é igual 1% tá 10.000 É iG 1% É nessa base de 10.000 aqui chegou em 10.000 é 1% então se eu colocar 1000 eu tô falando de 0.1% certo eu vou colocar aqui 100 tá que seria a menor taxa existente que é 0.0% de taxa Luiz da onde é que você tirou esse 100 porque eu sei que existe um Pool de wbnb usdt com taxa de 0.01 por. que em tese seria o pool mais vantajoso tá por isso que eu vou colocar ele aqui agora
você tem que dar uma olhada na punk Swap lá se você for fazer com outros pares de moedas se tem um Pool com taxa de 0.01 lá se não tem você vai ter que buscar 0.03 ou 0.1 você vai ter que ver que que tem de Pool existente para você poder fazer o monitoramento Porque se o pull não existir o monitoramento vai dar erro ok show então aqui execution cycle já vou colocar aqui o set interval que é o mecanismo para ele ficar repetindo então eu vou mandar executar execution cycle aqui ass não vai funcionar
né Vamos fazer assim execution cycle com esses mesmos parâmetros aqui sempre a cada interval de tempo tá bom então isso que ele vai fazer para nó vai importar primeiro teste não vou ficar esperando aqui ele ele executar de novo mas serve como como exemplo como é que vocês podem deixar rodando né de tempos em tempos ele fazendo de novo certo então eu vou rodar agora o que que eu espero que aconteça né que ele me obtém a cotação para um wbnb quantos usdt eu receberia é isso que eu espero essa mensagem aqui que eu espero
no terminal então vamos rodar só rodar um npm start ó deu um erro que que deu aqui ó conexão recusada esse IP aqui é meu IP local ó 127001 então ele tentou se conectar local e claro que deu recusado porque não tô com nó de blockchain rodando na minha máquina isso é porque eu coloquei um l minúsculo aqui sem querer né Eu bati o olho aqui já vi ó ó eu botei um l minúsculo sem querer daí ele não achou essa variável aqui ó tem que ser exatamente igual tá então consequentemente ele não pegou o
endereço do nó correto tentou consultar local vamos de novo Agora sim ó ele tá me dizendo que o um wbnb neste exato instante que eu tô gravando a lição é equivalente é 527 usdt p38 tá E aí Claro você pode est consultando né na corretora fazendo uma comparação o preço nunca vai ser exatamente igual em corretores diferentes OK mas você pode estar olhando no mercado né eu tenho aqui por exemplo na acha que aqui não quero vazar nada de informação mas aqui por exemplo na binance a gente tá ali com o BNB a 527 certo
nesse exato momento e aqui deu pra gente 527 é deu bem bem próximo 57 por 38 praticamente a mesma coisa tá é uma variação Zinha minúscula ali então deu o preço bem ã coerente pra gente certo e aí com base nisso você trocando os endereços de token in token out você consegue pegar diferentes cotações diferentes moedas né na mesma Dex na mesma rede Beleza então essa é a primeira principal e eu diria a única forma real de você obter a cotação de uma cripto na Dex P Swap qualquer outra forma eu vou apresentar mais duas
para vocês aqui rapidamente qualquer outra forma que vocês forem fazer no final das contas ela vai parar neste mesmo Smart Contract de cotação que eu trouxe aqui para vocês porque esta é a forma que a Dex opera certo então por que que existem outras formas porque vocês viram aqui que não é não é depois que você faz não é tão complexo mas também não é uma coisa das mais simples né você tem alguns passos tem muita configuração Zinha muito fácil de ter erro errar alguma coisinha certo então a gente eventualmente quando eu vou fazer um
projeto eu posso poss querer um jeito mais fácil de fazer isso né eu posso querer daqui a pouco pagar por esta informação para ter ela mais mastigada para ter limites de uso diferenciados para ter Talvez um tempo de resposta melhor porque existem empresas no mercado que já implementaram Isso numa escala muito grande para muitas moedas e fornecem acesso a essa informação gratuita até certo ponto e depois paga para quem precisa de muita quantidade dessa mesma informação Então as outras duas formas né Elas Tão um pouco nessa linha que eu tô mencionando para vocês um pouco
não el são exatamente nessa linha que eu tô mencionando para vocês né são empresas que ficam fazendo essas consultas na blockchain além de outras coisas e te fornecem através de apis né é uma forma mais fácil de você consumir essa informação e tantos outros benefícios que elas fornecem tá bom só que Claro tem um nível de gratuidade depois é pago o restante Beleza então é isso que eu vou mostrar aí para vocês deixa eu ver aqui qual que é a segunda deixa eu arrumar minha minha colinha aqui da segunda para reduzir a chance de ter
erros aqui com vocês ao vivo depois deixo todos os links para vocês ali na na descrição Beleza então vamos lá deixa eu fechar aqui o meu vest code a gente vai criar outro projeto existe uma empresa de web 3 chamada 0 x.org tá que que essa empresa faz ó conectando desenvolvedores aos mercados web 3 né então a sua loja de parada única para construir produtos financeiros nos trilhos das criptos habilite trades mais rápidos preços melhores e experiência superior no seu aplicativo Então essa empresa de web TR o que que ela fez ela construiu uma série
de softwares que fazem ações na blockchain né e expõe essas ações através de apis mais comuns né Apis htp que qualquer programador web tradicional sai utilizar então eles TM por exemplo apis para fazer swaps apis que não tem os custos de transação você não precisa se preocupar com pagamento de taxa de transação você vai se preocupar só com pagar essa api API de orderbook API de histórico de transações registro de tokens API de preços então pro nosso exemplo aqui o que mais nos importa é ai de preços né que ela diz aqui ó preços em
tempo real de de Dex para qualquer token né nas pontas dos seu dedos para você não perder nenhuma oportunidade é o que diz aqui certo então URL dele tá quebrado aqui agora foi bizarro ah alguma coisa na internet de repente mas o que qual que é a ideia aqui ao invés de eu fazer um monitoramento diretamente conectado na blockchain né escrevendo um código muitas vezes complexo me preocupando com limites de uso de nós públicos ou de nós pagos eu posso utilizar as apis da z0 x.org ligadas a preço para obter essa informação né de preços
das dec que obviamente eles tenham compatibilidade que obviamente né eles eles tenham se integrado eles também não são onipresentes né n as decs mais famosas em blockchains famosas eles vão ter aqui as apis para vocês Beleza então o primeiro passo se você quer utilizar as apis da zer x.org é você criar uma conta no site deles e com esta conta você criar uma chave de api tá você vai vir aqui no topo ó go to dashboard aí você vai fazer o cadastro certo Create an account vai fazer o seu cadastro ele vai mandar um e-mail
para você Você vai confirmar o seu e-mail certo e aí depois você vai poder entrar com seu usuário e senha aqui dentro da plataforma beleza uma vez dentro da plataforma Você tem uma parte aqui que é da da API acho que vem aqui em creating app acho que é lembrar agora onde é que tá ap vamos ver aqui settings de repente tá eles T um plano gratuito certo eles TM um plano gratuito que vai nos atender aqui pro desenvolvimento ã eu tenho até anotado aqui as limitações do plano gratuito Já digo para vocês na data
que eu tô gravando seleção tá é 40 chamadas por minuto deix ver aqui Pera aí só um minutinho hum tinha separado isso aqui on é que eu guardei aqui você pode fazer no plano gratuito deles 40 chamadas a qualquer api tá não somente é de preço qualquer api 40 chamadas por minuto e não mais do que uma chamada por segundo certo então mesmo que você possa fazer 40 por minuto você não pode chamar as 40 no mesmo segundo certo então você ter que controlar isso aí 40 por minuto Não mais do que uma por segundo
Essa é a limitação do plano free na data que eu tô gravando essa lição aqui depois claro tem os planos pagos se você precisar mais do que isso tá só tô onde é que foi parar a minha py aqui aqui a questão dos planos Hum era bem na tela aqui que ficava aqui ó pys ó você tem que criar uma uma aplicação né se você não tiver só clicar aqui em Create an app aí você vai vir aqui em ap Case ó essa aqui é minha apq né Não não vou exibir ela tá pela metade
aqui né mas você pode criar uma nova ele vai dar o endereço para vocês vocês vão usar esse endereço na aplicação de vocês Beleza você precisa desse endereço para poder utilizar as apis da z0 x.org Show Beleza então cria vamos supor que você já criou a conta aqui você criou a aplicação criou sua P Key gratuita certo cer agora nós vamos criar nosso projeto vou abrir aqui no visual Studio code vou abrir o terminal deente comando vgar até uma pasta qualquer do meu computador V chamar aqui de pancake Swap 0x B op Desculpa um Mad
né para criar pasta M agora vou entrar nessa pasta aqui e dentro dela npm nit - Y para inicializar um projeto beleza projeto inicializado eu vou instalar as dependências que nós vamos precisar nós vamos precisar aqui de três dependências tá npm install eu vou utilizar a iters para fazer a comunicação ã com a blockchain eu preco pera aí eu preciso da iters eu tenho anotado ela na minha colinha aqui mas eu não lembro se preciso dela deixa só consultar aqui rapidinho não não vai precisar perdão eu anotei aqui na colinha mas não devo ter copiado
e colado do da outra Cola tá vamos precisar só de duas bibliotecas aqui então npm install vou precisar da do env para carregar as configurações do projeto e a biblioteca axius para fazer a comunicação com as apis da zer x.org Ok isso que eu vou precisar aqui que como a api deles é htp rest né o axus vai fazer essa comunicação pra gente então fiz aqui a instalação das dos pacotes vou abrir o projeto aqui na da minha máquina então p Swap 0x Org e vou começar criando as configurações então num arquivo.env que configurações que
eu vou precisar primeiro se eu vou fazer algum monitoramento preciso ter uma variável de para controle do intervalo Ok E aí você vai definir o intervalo dentro das limitações de uso do plano free ou do pago se você você escolher os planos pagos você vai determinar aí o quanto que você quer monitorar tá Vou colocar aqui 300.000 que é 5 minutos mas é um valor qualquer que eu tô jogando aqui porque na verdade os meus testes não vou deixar rodando de Fato né Beleza próximo passo tá eu tenho que passar o o token que eu
quero saber a cotação deixa eu pegar aqui o endereço da Deixa eu ver se eu deixei separado o endereço da documentação para mostrar para vocês lá Hum perí deixa eu ver se eu acho eu separei aqui eu mostra documentação para vocês hum até tinha deixado mas Eles mudaram o endereço depois ter que atualizar meu link aqui tá dando sempre 404 quando eu acesso os links que eu tinha salvo aqui tranquilo depois eu pego os links atualizados Tá mas o que que acontece eu preciso na na requisição passar os endereços dos contratos que eu quero saber
a cotação tá lembrando que na blockchain é sempre a partir dos endereços dos contratos dos tokens rc20 que a gente identifica eles na blockchain Não é pelos símbolos né Não adianta eu passar btc lá ele não vai achar tem que ser o endereço do contrato da moeda que eu quero cotar certo então eu vou passar aqui um token eu vou chamar de pode ser token in token Zero Não importa tá é o meu token de ã que eu quero saber a cotação o token a ser cotado certo e aí você pode pegar por exemplo o
wbnb por exemplo né você pode pegar qualquer token que tenha na mainet né você pode pegar qualquer token da mainet e colocar aqui eu tenho separado para esse teste aqui acho que eu separei o token cake aqui eu acho deixa eu ver aqui deixa me achar aqui que são três Colinas aqui é eu separei o cake tá que é o token de governança da pancake Swap Tá bom então aqui esse aqui é o token cake na mainnet vou colocar um outro aqui também que é o token um address que seria o token de saída ou
token de cotação eu separei aqui para nós o endereço da usdt na mainnet então basicamente eu vou estar sabendo né aqui eu tenho o cake e aqui eu tenho o usdt Então vou est sabendo o valor de Cake em dólar entre aspas né o valor de Cake em usdt certo que mais que eu vou precisar de configurações eu preciso também acho que tá bom para começar ah vou precisar da api né prar da nossa ap Key também então V criar mais uma configuração que é api Key onde você vai colocar a sua chave né de
api da zer x.org a mesma que você criou lá no painel de controle deles Tá bom então eu não vou mostrar a minha aqui para vocês né daí vocês depois utilizem aí a sua então eu vou parar de compartilhar aqui rapidinho a tela só para poder preencher ali sem vazar a minha chave embora é só a chave de teste do plano gratuito mas né acho que é um bom exemplo a gente nunca ficar mostrando as chaves uns pros outros né só um minutinho que eu vou pegar aqui a minha peguei aqui só vou colocar no
lugar certo aí beleza então meu ponto enf além das variáveis que eu já tinha mostrado para vocês ali coloquei a minha chave na variável API underline Key Certo que a gente vai precisar disso para na hora das requisições a gente está devidamente autenticado Então vamos lá index JS então para programar o nosso monitoramento primeiro passo require do dmf para carregar as variáveis de ambiente para memória certo depois eu vou carregar aqui também algumas variáveis para simplificar né a obtenção dos endereços Então os token zero address para uma variável token zero depois token um uma variável
token um os nomes vocês podem mudar à vontade né desde que vocês se achem aí ã e acho que tá essas aqui são suficient pra gente começar o nosso script de start também é sempre legal a gente deixar configurado aqui o start dizendo qual é o arquivo que dá o Play na nossa aplicação né E também a gente pode Claro testar né posso jogar um console logo aqui é sempre legal fazer esse teste para ver se a gente inicializou o projeto com coretamente se não deixamos nenhum problema aí tá então npm start ó tá aqui
os os dois endereços dos tokens Beleza então podemos avançar que que eu vou fazer agora né fazer a comunicação V fazer isso numa função pra gente poder chamar ela de maneira intervalada né de tempos em tempos nós vamos fazer uma função que bate na api da Ger x.org na API de preço especificamente né e retorna O o valor de cotação pra gente conforme os parâmetros que a gente passar então aqui uma EC function chamar de get Price certo e aí esse get Price que que ele vai fazer ele vai eu ter carregar o axius né
Vamos carregar aqui const axius recebe um require de axius que é a minha biblioteca htp para fazer a comunicação E aí eu vou chamar AX pget porque é uma chamada get ok uma chamada get numa URL E aí eu vou utilizar aqui Cras certo não é aspas é Cras para poder utilizar template string que é quando a gente combina o string com variáveis e o endereço é htps 2 bar Se você quiser você pode colocar esse endereço também no ponto env tá mas não não vejo necessidade neste momento aqui api é bsc ponto api px.bar
barra v1 barra Price então é a mesma P Swap só que eu quero pegar só o preço quero pegar só a cotação tá simular um Swap E aí onde é que eu passo as informações da minha simulação nas variáveis da query string n então interrogação primeira variável token se é o token seria o token que eu estou querendo vender certo então seria o token que eu estou dando N E aí de volta receberia a cotação n uma simulação de Swap então se eu der um Cake no meu exemplo aqui apontado cake quanto que eu vber
do outro lado né ou colar aqui o endereço do Cake certo então eu vou carregar aqui em cima Ah já pegamos né aqui é o token zero tá então token zero é o endereço do contrato do Token de entrada agora o byy token né Qual o token que né eu receberei certo esse é o que eu tô vendendo né Eu estou vendendo um cake qual que eu vou receber tá aqui você vai colocar o endereço do outro token certo que no nosso caso ali eu tô usando o SDT perfeito e o último parâmetro é a
quantia Boto mais um e Comercial Cell amount com a maiúsculo tá as palavras sempre a segunda palavra começa com letra maiúscula então Cell amount igual e aí você tem que passar a quantia que você quer usar na simulação Lembrando que quanto maior a quantia mais o preço desliza né menos preciso ele se torna Eu gosto de trabalhar sempre com uma unidade inteira então aqui no caso eu quero uma unidade inteira de de cake né como eu não impl importei biblioteca ERS não ten as ferramentas ali de formatar eu vou colocar o preço aqui no no
valor completo com todos os zeros Ok então é este cara aqui acho que são 3 6 9 12 15 18 zeros tá então é um seguido de 18 zeros para ter uma unidade inteira aí de Cake a maioria das moedas da rede das redes basadas em tério são 18 zeros né e o que eu tenho que passar aqui na sequência além da URL tá você tem que passar um objeto até vou vou quebrar a linha aqui para vocês se acharem mais fácil tá então primeiro aqui é o RL fica mais fácil de vocês enxergarem tá
então primeiro é URL daí eu passo a URL aqui e o segundo parâmetro são os cabeçalhos certo tenho que passar nos cabeçalhos na verdade é objeto de configuração uma das configurações são os cabeçário os headers E aí eu tenho que passar neles Ah a minha chave de api certo a documentação da zer.um cabeçalho com este nome aqui ó exatamente estee nome 0x tro api tro Key tudo minúsculo e daí aqui eu passo a nossa process.env P apiq então eu vou acessar esta api esta URL certo com essas configurações aqui aqui passando esta chave de acesso
isso vai me retornar uma resposta que dentro dela só o que me interessa é o parâmetro propriedade data e aí eu vou pegar o data.on price que é onde vai vir o preço eu vou fazer um parce Flot porque na verdade não é obrigado a fazer o par Flot tá até vou botar ele aqui para evitar qualquer tipo de arredondamento vou jogar o preço cru mesmo certo então essa aqui é a minha função de preço na verdade eu não preciso nem retornar eu posso dar um console log aqui mesmo a gente pode fazer assim ó
ã cake 1 é igual a o SDT e o preço tá a gente pode fazer alguma coisa assim então vai imprimir no console aí tá isso porque o meu token zero tá apontado pro cake meu tokem um tá apontado pro SDT ambos em mainnet tá produção certo cer agora eu posso chamar o get Price e posso já definir o intervalo aqui n que ele vai chamar aqui get Price a cada interval aí não carreguei o interval né então process interv Beleza vai disparar aquela mesma função cada x tempo aqui então reparem como é simples né
de de utilizar ap ap rest né http get inclusive É só passar tudo na RL mesmo só ten aqui a única complicador é o parâmetro do cabeçalho E aí eu já vou ter o preço tá reparem que aqui eu não passei informação por exemplo de taxa de pull né ou não escolhi um Pool específico então ele vai pegar aqui um preço médio acredito eu tá pelas pelo análise que eu fiz é um preço médio embora não tenha exatamente essa informação de não se eles pegam do P mais barato do pul mais caro do pul médio
faz uma média deles não sei exatamente qual é o algoritmo que eles montaram tá mas é um preço Ok hã que vocês vão ter acesso com essa ap aqui então vamos executar ó Então tá dizendo aqui que o um cake neste momento né na na bsc né tá valendo aí 1.73 deixa eu ver se eu tenho isso aqui pra gente dar uma comparada vou usar como comparação A binance tá mas na verdade a binance não é a regra né não é a lei né só porque uma corretora muito famosa Ah bem bem assertivo tá se
a gente olhar aqui deixa ver se eu não vou vazar nenhuma informação não tá dando 1 p3 aqui no nosso monitor né Se for olhar na binance ó lá o cake ó cake SDT 173 tá bom obviamente na data que tô gravando essa lição né Isso vai variar conforme o o tempo tá então batendo bem fiel aí ao preço na bance isso c na rede bsc né que é a principal rede que a PC Swap opera beleza show de bola ver que tinha uma dúvida que eu não respondi ainda né seguinte pergun haveria um contrato
para buscar as p de um token específico exemplo todas as PS de wbnb usdt Deixa eu pensar tem uma forma de você calcular os possíveis PS basead nas informações de token in out e fi a você poderia simular né com todas as fis e descobrir quais as PS mas tem também um outro método em que vocês trazem eu não sei se dá para filtrar para uma moeda específica mas agora eu vou mostrar a terceira forma de monitorar e utilizando a graph api né que é uma das formas de monitoramento de de ativos na blockchain você
consegue trazer todos os pools por exemplo e daí em cima dos pulls você pode pegar os pulls que te interessam E aí com com os pulls que te interessam você pode fazer as consultas individuais em cada um deles tá então eu acho que vai vai te ajudar o uso de de graph api que é o que eu vou mostrar agora na na sequência tá mas Mas tipo baseado num num token descobrir todos os pools eu desconheço talvez tenha Tá mas eu desconheço a existência de alguma coisa nesse sentido Tá bom talvez nessas empresas tipo as
zer x.org e outras elas forneçam algum tipo de ap nesse sentido tá eu tô pensando que a cabeça de nativamente né descobrir isso eu não tenho certeza é Maurício perguntou nência de itter não era para conversão na minha cola não não tá lá a conversão mas poderia ser usada PR conversão sim tá show de bola então deixa eu fechar aqui o Code pra gente entrar na terceira e última forma de monitoramento de preços n de tokens na rede bsc onde opera aí a principal Dex a maior Dex da rede bsc é a pancake Swap bom
deixa eu só abrir minha colinha certa aqui não fazer confusão sempre um desafio fazer aulas ao vivo né Tem muita coisa que pode dar errado então a gente quanto mais preparado a gente tiver melhor Lembrando que todos os links tá vou deixar aqui na descrição da Live para vocês se eu esquecer algum também é só me cobrar nos comentários que a gente resolve vamos lá então a terceira e última forma que eu quero trazer para vocês de monitoramento ela dependendo da informação que vocês precisam Ela É de longe a mais fácil de vocês utilizarem tá
porque ela traz diferentes informa ações não apenas do preço Então dependendo do que vocês precisam ela vai vai ser mais completa do que as outras duas que eu trouxe para vocês por outro lado né Ela também tem algumas limitações de uso né E ela ã tem também uma questão de tempo de indexação tá ela não é exatamente tempo real tá que eu quero dizer com isso vai ter ali uma alguns segundos à Não sei dizer exatamente o tempo exato não sei nem se existe um tempo exato né o que eles se comprometam com isso mas
pela minha experiência ela tem alguma coisa entre segundos e quase um minuto que pode levar da informação oficial lá de smart Contract e parar nela tá e eu tô falando de graph api ou subgraphs tá as corretoras de criptomoedas baseadas em uniswap E aí eu falo uniswap pancake Swap Sushi Swap e várias outras elas fornecem acesso aos dados presentes no seus Smart contracts através de grafos né grafos são estruturas de dados Onde você consegue facilmente achar informações de maneira estruturada e elas hospedam os seus subgrafos através dessa empresa aqui ó deg.com tá essa empresa de
graph.com é uma plataforma para você hospedar apis no formato de graph api tá não é o formato ã mais tradicional de se utilizar APS na internet mas para alguns casos de uso cai com uma luva A exemplo aqui dos dados das corretoras das dec tá então basicamente uma graph API é eles pegam todos os dados deles jogam nessa plataforma né de tempos em tempos aa plataforma atualiza esses dados e ela fornece pra gente através de uma linguagem de consulta que é a Graphic L que é uma linguagem de consulta de grafos a possibilidade da gente
fazer pesquisas nesses dados das corretoras tá então aqui eu tô numa página que é a dos o grafo de Pake Swap V3 na rede bsc Ok especificamente isso Pake Swap V3 na rede bsc e por esse próprio link que que é fornecido no site da punk Swap mesmo do site da deg.com eu consigo já fazer essas consultas tá depois claro a gente vai fazer isso programaticamente mas aqui mesmo por exemplo já tenho uma consulta de exemplo então se eu der um Play aqui ó que que ele me traz total de PS que tem nessa Dex
30.270 contag de transações até hoje nessa Dex total de volume transacionado em dólares até hoje nessa Dex Então traz algumas informações mas um exemplo de consulta seguindo essa sintaxe aqui que basicamente passar um objeto similar a j com os campos que eu quero o tipo de dado que eu quero pesquisar euns filtros de pesquisa me traz oado em dado Jon Então vou pegar um outro exemplo para vocês aqui vamos pegar aqui ISS aqui é bem legal tem algumas consultas que no própria documentação da corretora me traz mas eu separei algumas pra gente testar aqui ó
ó aqui eu tenho uma consulta que é eu quero os PS deixa dar um zoom aqui para ajudar vocês eu quero os PS ordenados por volume transacionado em dólares direção decrescente e destes PS Eu quero essas informações aqui ó ID volume transacionado em dólares a taxa preço do Token zero preço do Token 1 informações do Token zero informações do Token 1 Se eu der um play aqui ele me traz ó os primeiros Se não me engano 100 puls tá eu posso até pedir mais ó posso botar aqui um first 1000 o limite é 1000 tá
então first 1000 então el vai me trazer os primeiros 1000 pools com maior volume transacionado historicamente falando então qual é o p da pancake Swap V3 na rede bsc que mais transacionou em volume em dólares na história é este primeiro aqui ó o SDT wbnb certo este pul aqui a taxa dele é 100 então é na base 10.000 né então a gente tá falando de 0.01 de taxa ele é composto pelas moedas usdt que tem 18 decimais Esse é o ID do contrato pelas pela moeda wbnb tem 18 decimais Esse é do contrato o preço
né ã em usdt então se eu der wbnb quantos SDT eu recebo neste Pool 1 wbnb me dá 526 p20 o usdt mas se o Swap for ao contrário se eu der um usdt quanto wbnb eu recebo você recebe 0.0019 wbnb então notem que eu consigo ver o preço dos dois lados dando um usdt dando um wbnb certo consigo ver o preço aqui além de algumas outras informações muito boas né Como por exemplo o endereço dos contratos dos tokens E também o endereço do Pool tá então este ID aqui ó é o endereço do Pool
na blockchain Beleza então a partir desse endereço depois eu consigo ficar monitorando só ele se eu quiser por exemplo né não preciso monitorar vários posso olhar só ele por exemplo E se eu olhar aqui ó Qual é o segundo Pool que mais teve negociações né na história dessa Dex é esse aqui ó o SDT wbnb de novo tá isso é natural tá gente Geralmente os PS com maior volume de negociações é o da moeda nativa da rede pareado com dólar sabe isso é padrão se você for fazer essa consulta por exemplo lá no uniswap você
vai ver que é o wth que é a moeda nativa da da etherum em cima de dólar tá aqui como a gente tá na bsc né wbnb em cima de dólar dólar então aqui é uma taxa de 500 que é 0.05% certo então já uma taxa um pouquinho mais cara então a gente vai ter alguma variação no preço as a variação não é muito alta É depende do quanto tá sendo utilizado cada P no momento certo À vezes um p tá com mais liquidez do outro consegue um preço melhor esse tipo de coisa tá então
aqui você consegue nessa ferramenta fazer uma série de Pesquisas certo para você chegar as informações que você deseja então eu posso por exemplo uma vez que eu saiba qual p que eu quero monitorar eu posso pegar o ID dele vamos dizer que eu quero esse P aqui dabt pego o ID dele e aí em vez de pegar Ps eu posso pegar um p só em vez de PS no plural né pego um p só com ID sendo este aqui e as informações que eu quero são essas ele vai me trazer somente de um Pool ó
somente daquele pull que eu quero o pull que tem esse D aqui eu consigo ficar fazendo o monitoramento somente neste cara aqui aqui claro eu tô fazendo monitoramento manual no site aqui é ilimitado né no site ele não vai te cobrar nada não vai te limitar em nada mas para fazer monitoramento automatizado via software Você vai precisar de uma chave de api tá e de endereço de api tá o endereço de api ele dá aqui embaixo ó aqui embaixo tá para vocês ó é esse o endereço Gate grafic.com brá ó o espaço onde você coloca
pay Key quebrou linha mas tá aqui ó que você coloca sua P Key e aqui o restante da informação e além de acessar seu RL você tem que passar no corpo da requisição a sua consulta né o Jon aqui da sua consulta é tipo um Jon tá não é literalmente um json mas é tipo um um Jon na verdade é Graphic L né é uma linguagem de consulta em grafo Então o que falta pra gente aqui é esta api Key Certo se não engano tá até aqui embaixo para conseguir a ap Key eu acho que
esse aqui ó Generation secur Keys subgraph Studio eu acho que é esse cara aqui não não aqui é um blog ã é eu já tô autenticado aqui tá aqui em cima vocês vão ver uma opção para vocês autenticar a autenticação ela é via uma carteira cripto de vocês tá eu tô com a met mesc aqui no meu browser daí eu me autentiquei com a metam mesc daí por isso eu já tô autenticado aqui então tem que ter uma carteira cripto no no browser para poder se cadastrar nessa plataforma quando você autentica além da permissão na
carteira ele vai pedir para você assinar uma mensagem para provar que você é você tá Você assina esta mensagem só clicar no botão de assinar isso não tem custo nenhum e você vai est autenticado uma vez autenticado você pode criar chave de api Deixa eu ver se eu acho aqui onde nunca acho onde é que fica a chave de api mas eu tenho o link aqui deixa eu acessar direto o link aqui ó o link é deg.com bar Studio barp Case daí você cai na página de chave de api Ok então aqui eu já tenho
uma chave de api criada você não vai ter nenhuma primeira vez que você acessar Aí você vem aqui ó Create ap Key clica aqui você vai criar uma chave você copia Ela tá no caso aqui ele não mostra de novo a chave depois é só clicar nesse botão ele copia de novo pra gente Caso vocês precisem copiar mais de uma vez você vai precisar vári uma chave de Api para poder utilizar ã Lembrando que a gente vai est operando aqui num plano gratuito certo eu não lembro de cabeça agora os limite de uso mas se
você vir aqui em Billing você vai encontrar não não aqui é só o uso que eu já tive provavelmente ter que ir lá no site ver os limites de uso e aí com base nesse limite de uso você vai dimensionar o quanto você pode chamar por por minuto por hora por dia etc para não estourar o plano gratuito a menos que você claro ã queira pagar né para avançar pros planos planos pagos o que vale muito a pena se você for ganhar dinheiro com isso né criar algum serviço alguma plataforma um robô Trader uma coisa
assim Pode valer a pena Tá bom mas então eu vou partir do pressuposto agora que você eh se autenticou com a sua carteira cripto na plataforma criou uma chave de api você brincou também visualmente ali tá é importante que você teste visualmente as suas consultas antes de ir pro código até para você não gastar requisição né Por nada então você testa ali a sua consulta que você quer descobre Qual o qu o p que você quer monitorar pega o ID dele ou se vai ser mais de um enfim brinca ali primeiro à vontade antes de
para o código tá bom Beleza então t no code vou abrir ali em terminal New terminal e vou criar eu vou entrar uma pasta qualquer aqui da minha máquina vou entrar desktop e vou criar uma pasta pro nosso projeto Tá eu vou chamar ele de pancake Swap graf api por exemplo Então vou entrar aqui na pasta Swap api e vou inicializar um projeto node JS nela npm Y uma vez que projeto inicializado eu vou instalar as dependências que nós vamos precisar na verdade utilizar uma grai não é muito diferente do que utilizar uma API rest
tradicional certo então você pode utilizar uma biblioteca como o axus por exemplo ou alguma coisa assim até ã eu vou fazer diferente aqui eu ia fazer um console eu vou fazer uma aplicação com Interface tá fazer um nextjs ali ou alguma coisa do tipo deixa eu excluir esse cara aqui começar de novo tá então ao invés de fazer uma aplicação console eu vou fazer uma aplicação Zinha web que a gente possa colar na esquerda o nosso filtro e na direita ele vai dar o o resultado pra gente tá E aí com base nisso depois vocês
podem pegar o código que vai fazer a consulta e adaptar para diferentes cenários certo então eu vou utilizar aqui o utilitário Create next app que é utilitário para criar aplicações next o Next é um Framework para criar aplicações de frontend principalmente tá é tela tela web né então vou chamar aqui de pancake Swap bar graf traço api ele vai criar pra gente projeto se eu quero usar typescript ou não vou colocar não tá se você conhece typescript pode utilizar Sem problema nenhum exc lente não tem Wind não sear sim indo só nos default se você
parar para ver aqui ó tô só apertando enter tá da ele vai estruturar o projeto aqui pra gente e aí o único depois de criado o ú único pacote que a gente vai precisar instalar é o axius tá que é o pacote que serve para fazer a comunicação com as apis e a graph api http você consegue enviar para ela tudo via axios normalmente Então vou entrar aqui na pasta pancake Swap gra API uma vez nessa pasta eu vou instalar o axius então npm install axus certo e npm Run Dev para subir essa nossa aplicação
e uma vez que ela esteja up tudo que eu for programando salvando ela já vai atualizar no Browser a gente vai poder ver em tempo real as coisas acontecendo lá para acessar essa aplicação é local host 3000 tá aqui ó tá aplicação zinha de exemplo nextjs agora a gente vai codificar ela vai ser uma codificação bem spartana na verdade tá o intuito não é fazer um front bonito mas só para variar um pouco aqui não fazer tudo em console então desktop P Swap graph api tá aqui o nosso projeto o que nos importa nesse projeto
é aqui emce app page JS tá é isso aqui que nos importa porque esse aqui é justamente o código Tudo que tá nesse return é o código que vocês estão vendo lá naquela tela do navegador Ok então eu posso inclusive ã remover ele e colocar outro no lugar tá então posso botar aqui um Main com uma div aqui vai HTML tá gente HTML quem já programou pra web sabe como é que funciona né eu vou criando aqui as as minhas tags então vou ter aqui uma div posso colocar um um hello aqui no meio salvo
vou lá no navegador Opa que que deu ruim aqui ah eu derrubei encarei aqui achei que tinha quando abri o projeto caiu o terminal vamos de novo aqui eu dei um Open no projeto acho que ele derrubou aqui o terminal Agora sim tá então tá terrivelmente feio aqui mas não nos importa muito isso mas tá o Hell Road ali no cantinho pra gente tá só pra gente ver se tá táa funcionando o que que eu vou fazer agora aqui eu vou colocar duas dives tá uma div na esquerda onde você vai colocar o seu filtro
da eu vou ter um botão e uma div na direita onde vai ter o resultado da consulta tá vai ser meio que uma simulação do site do The graph.com ali então minha minha primeira div ela vai ter um estilo né abro um objeto flo left para ela flutuar paraa esquerda Então vai ter uma flotando pra Esquerda ou paraa direita e a largura de 500 pixels OK aí dentro desse cara text area que é uma um campo de texto bem grande ID TXT filtro o estilo vou abrir aqui um objeto com altura de 500 e largura
de 100% tá 500 de altura e largura de tudo que cber então aqui o meu text area abaixo do text area vou colocar um botão então Button escrito aí enviar e depois eu faço o clique dele e do lado desta área aqui vou colocar uma outra div com estilo também vou abrir um objeto aqui vou mandar ele flutuar float flutuar à direita e uma largura também de 500 e dentro dele vou colocar outro text area o tão da direita certo esse cara aqui vai ser o nosso deix ter resultado o nome que eu botei na
colinha aqui para não ficar diferente é nem precisa botar ID na verdade Tira aqui meu estilo então altura 500 largura de 100% também vou colocar nesse aqui um read only true para não permitir escrita então ele somente leitura somente para exibir resultados certo Beleza então salvei aqui vamos lá para interface Ó que coisa feia mas vai tá funcional prometo tá então tem ali um campo da esquerda botãozinho Campo da direita tá só pra gente variar um pouco aqui não fazer tudo console vamos lá o que que eu quero aqui eu quero que no on Click
do botão de enviar a gente dispare uma função que vai fazer a consulta na pi pegando nosso filtro né e devolvendo no outro Campo vou chamar isso de btn enviar cli que é uma função que a gente vai criar aqui em cima isso que a gente tá programando gente o Framework se chama nextjs tá E ele trabalha em cima do react JS essa sintaxe aqui na verdade é reactjs tá que é uma biblioteca para criar frameworks dinâmicos na web então BT nvr Click que vai fazer a magia acontecer por enquanto ele vai jogar só um
Alert com Hello Road pra gente ver se tá funcionando então salvei escrev function aqui então Ah tá como eu vou disparar código do cliente e tudo mais o Next ele consegue operar tanto em modo client Side qu server Side Tá eu vou botar aqui em cima um use client para ele operar modo client Side então aqui vou clicar em enviar ó hello Road Então tá funcionando o clique do botão agora eu quero que o botão pegue a informação que tá neste Campo aqui que vai ser o nosso filtro certo então como é que eu vou
fazer eu vou eu vou fazer o chama de componente controlado que é quando eu associo uma variável de estado a um componente aí tudo que eu escrevo no componente ele guarda automaticamente na variável daí quando eu quiser exibir na tela é só ou usar para alguma maneira é só ler essa variável então para isso eu vou tirar esses imports que a gente não tá utilizando aqui vou usar um Import use state w bioteca do react Men A gente tá usando o react né next é em cima do react com essa biblioteca US state eu vou
declarar um uma Array onde o primeira posição eu tenho uma variável chamada query que é consulta em inglês e na segunda posição eu tenho uma outra variável chamada set query que é para alterar a consulta e a gente vai usar aqui um US state a função US state para inicializar essas duas variáveis com o valor padrão de vazio e aí no meu text are aqui ó que é esse cara onde eu vou escrever o meu filtro eu vou vincular ele a ã aquela variável de estado ali em cima aquela query set query ali que eu
botei ali em cima certo então como é que isso funciona primeiro o campo value vou quebrar a linha para ficar mais fácil para vocês enxergarem tá ID Style value o campo value a gente diz que ele é a variável query então tudo que tiver em query vai exibir dentro dessa text area e toda vez que alguém di alguma coisa dentro area vai disparar um evento on Change certo que eu vou colocar aqui um TXT filtro Change uma função que a gente vai criar aqui em cima então toda vez que alguém digitar alguma coisa vai disparar
Esta função aqui para que vai servir Essa função para atualizar a variável de estado aqui em cima daí eu consigo manter o componente sempre atualizado em relação variável variável atualizada em relação ao componente o evento de de um Campo ele recebe um evento pro parâmetro informações do evento pro parâmetro e com essas informações eu posso chamar o set query que é essa função aqui para atualizar query tá não adianta atualizar essa variável aqui direto tá tem que ser pela função set query e eu vou passar para ela o eventtarget value que é justamente o texto
digitado que disparou esse evento é texo que usuári digitou na caixinha ali em cima então isso vai atualizar vai Monter atualizar essa variável aqui aqui que por sua vez né tá linkada aqui com o campo pela propriedade value tá então ainha muito rápida aí de como funciona react JS nextjs etc tá linha rápida de fronte então agora o meu BT enviar ele não vai mais jogar o alerta ele vai jogar o query Ok então salvei tá se eu digitar aqui ó ã Luiz Tools clico em enviar Luis Tools escrito tá então ele tá conseguindo já
pegar a informação aqui se já tô conseguindo pegar a informação o que que me falta enviar essa informação PR api da deg.com né PR a gente ter o resultado e poder jogar o resultado nesse segundo Campo aqui bom para jogar alguma coisa para pii eu vou utilizar a biblioteca axius que a gente instalou no início desse tutorial tá então Import axius from axius E aí aqui no enviar clique agora em vez de fazer esse a gente vai chamar um axius poost tá graph api a gente sempre faz post e aqui eu tenho que passar a
url que é fornecida lá no site Cadê acho que eu troquei de tela né acho que era aqui antes Aqui ó então Exchange V3 bsc lá embaixo eu vou encontrar o RL que eu preciso ó esta URL aqui ó posso clicar aqui para copiar inclusive tá então copiei o RL essa aqui é o RL que eu preciso a única coisa que vocês vão fazer é mudar essa pia aqui tá esse trecho tira as chaves também tá tudo que tá entre Chaves incluindo as chaves você coloca sua py aqui dentro é a única coisa que você
vai ã ter que mudar o restante da RL é igual deixa eu ver se é só isso não tem nenhum cabeçalho Ah E aí você tem que passar como segundo parâmetro deixa eu quebrar a linha fic mais fácil você enxergar arem botar aqui então const URL então aqui eu vou botar o RL e o segundo parâmetro é um objeto com a query de vocês que é o que o usuário digitou né Essa query tá associada a esse state essa variável de estado que é basicamente que o usuário digitou lá no primeiro campo então é isso
que eu envio no post Isso aqui vai me retornar uma resposta cuja única informação que me importa é a data botar um a aqui no início para poder usar o e dentro da função e este data eu vou usar um outro state declar um outro state aqui em cima Data Set data e eu vou chamar aqui um set data passando esses dados novos e vou vincular o Val desse segundo text area ao data então tudo que acontecer lá na variável de estado data vai aparecer nesse segundo Campo aqui consequentemente ele vai ser atualizado beleza show
então a única coisa que vocês precisam fazer diferente aqui é trocar a chave de api vocês também podem colocar em ponto env carregar ponto env é um pouquinho diferente do do normal ali no console né tem algumas características as próprias do nextjs mas dá para colocar aqui dentro também para fins de teste né para agilizar aí o processo então eu vou colocar aqui só a minha variável e A Gente Faz aí esse último teste vocês vão ver que na prática o que a gente vai fazer ali vai ser o mesmo né a mesma experiência que
você teria utilizando lá a interface do deg.com deixa eu pegar de novo aqui minha minha chave para colocar lá pra gente encerrar aqui deixa eu ver se foi aqui só para voltar a compartilhar a tela Hum só um minutinho enquanto ISS podem ir mandando as nossas últimas dúvidas aí pra gente ir encerrando tá achei um errinho aqui já vamos vamos falar sobre ele só um um último ponto importante aqui tá essa esse data vai vir um objeto para que ele consiga exibir corretamente dentro do text area você tem que converter ess objeto para um texto
text só consegue exibir texto Então eu vou usar aqui um Jone string com passando data que daí ele vai transformar o data para texto Ok beleza então agora a gente pode fazer Posso trocar minha chave de Epi aqui e a gente faz o teste só um minutinho Pera aí que eu perdi minha chave de ap de novo copia de novo ela aqui Deixa eu testar que está ok Ah sim agora sim então vamos lá fazer o último teste então que que ficou nessa aplicação no final de contas né eu tenho aqui na esquerda onde eu
coloco o meu filtro aqui na direita eu tenho meu resultado eu posso clicar em enviar então vou colocar com um filtro qualquer esse filtro aqui ele é puls ordenados por volume transacionado decrescente e ele vai me trazer aí os PS né os mais transacionados e depois os menos passando algumas informações do Pool e informações sobre os tokens vinculados a ele então eu clico em enviar ele pega essa informação junto com a minha chave de api bate lá na api do deg.com e me imprime aqui do lado tá claro que ele imprimiu sem qualquer formatação né
tá tudo dado cru aqui então nós vamos pegar esse primeiro P aqui vou copiar só o ID dele para refinar minha pesquisa então agora eu quero em vez de PS Eu quero só o p com o ID sendo este aqui e esses os dados já fica melhor fica menos informação né que eu tenho aqui ó a taa é 100 n em base 10.000 o ID é esse o token zer ó 18 cas decimais Esse é o ID sbol usdt preço do Token zer né então se eu for vender wbnb que é o token 1 eu
vou ganhar 56.93 usdt né meu token 1 é wbnb tá aqui as informações preço dele né Então tá tudo aqui então se você pegar aqui eu coloquei numa interface quando eu clico no botão faz uma chamada api mas se você pegar aquela mesma chamada via axios e você colocar por exemplo numa aplicação node JS console né e colocar dentro num set interval você vai de tempos em tempos fazer essa mesma chamada de novo pegar a informação do preço de novo né você na verdade aqui tá pegando várias informações se você se quiser só o preço
dá para pegar só o preço também né tira as demais aqui que não te interessam pega só o preço ou recebe todas essas informações e acessa só a propriedade de preço certo aí vai variar conforme o que você deseja pegar de informação tá E tem mais informações Além dessas tá na documentação oficial da PK Swap Você encontra tudo que você pode ã pegar os endereços do subgraphs E por aí vai ó tá aqui em subgraph ó Então tá aqui os endereços do subgraphs Tem uma parte aqui também traz quais os campos que você consegue filtrar
e por aí vai tá então aqui ó panque subgraph tá o código ó todos os o as estruturas de dados Vocês conseguem pesquisar e daí dá para brincar e dar uma estudada conforme o que interessa mais para vocês tá bom Show de Bola Deixa eu ver aqui como é que estão nossas dúvidas pra gente ir encerrando beleza eu vi que o rfg Mídia falou alguma coisa ser mais mais C Sharp alguma coisa assim eu trabalho só com JavaScript tá rfg mas você pode utilizar a linguagem que você quiser tá bom qualquer linguagem essas aí que
você citou conseguem fazer chamadas htp né consegue fazer o uso das apis que eu mostrei ali tá bom e deve ter bibliotecas também para lidar com blockchain apis etc tá eu utilizo com com JavaScript você vai ver que no canal sempre utilizando JavaScript ou typescript que é a variação do JavaScript ou ainda no caso de smart Contract especificamente eu utilizo aí solidity tá bom que é a linguagem número um para smart contracts que mais o Leandro perguntou qual dessas três opções né então estão falando de monitoramento via Smart Contract via z0 x.org e via graph
api seria melhor para coletar os dados ou calcular o liquidity volume e o Mc da Pool vamos lá Market Cap Leandro nenhuma dessas APS vai te dar ok Porque Market cap é uma questão de mercado não é uma questão de código certo Market Cap você tem que procurar em apis de market Cap como por exemplo coing gecko coin Market Cap e outras empresas aí que faz esse tipo de análise tá ã que mais liquidez aí você consegue diretamente nos contratos da ã [Música] do Pool né do Pool você vai conseguir esse tipo de informação de
liquidez a graph api vai te ajudar pode te ajudar também nessa questão de liquidez e a 0 x.org não sei se tem alguma coisa de liquidez tá acho que não mas teria que dar uma olhada nas apis deles lá se eles não tem alguma coisa nesse sentido volume também volume e liquidez é a mesma coisa tá no sentido de onde procurar tanto no smart contracts quanto na graph pii você vai ser melhor atendido Até onde eu sei do que na 0 x.org Tá bom agora Market Cap acho que não você não vai ser bem atendido
nenhuma dessas três apis que eu citei você teria que ir em apis de market Cap como a coin Market Cap e a coin gecko tá bom que mais vamos ver vamos ver eu vi que o FG F FG Mia mandou algumas mensagens mas eu não entendi direito o que ele quis dizer tá P SD um valor enfim que mais vamos ver vamos [Música] ver o Eduardo perguntou este monitoramento das Moedas não dá para fazer pela binance Eduardo se você quiser o preço na binance dá faça pela binance como aqui o mot é monitorar o preço
na pancake Swap Então são ferramentas que olham para a blockchain diretamente né mesma blockchain que é p Swap Olha que é bsc certo e muita às vezes passando pelos contratos da pking Swap para ter a maior precisão possível tá se você olhar nas APS da binance você vai ter o preço na binance tá lembrando que criptomoeda gente não é um mercado regulado certo a os valores variam enormemente entre diferentes corretoras e diferentes mercados então por isso que se você quer de uma Dex específica você tem que olhar os contratos daquela Dex se você quer uma
corretora específica Tem que olhar o contrato o contrato não as apis daquela corretora se for centralizada né no caso da da bines tá então você olhar um preço na binance não quer dizer que aquele preço vai est sendo negociado na pancake Swap beleza show galera eu espero que eu tenha trazido alguns conhecimentos novos para vocês que vocês tenham gostado do material tá todos os links e materiais eu vou deixar na descrição para vocês depois aqui tá alguma coisa já está lá mas o que faltar depois eu posso colocar e se faltar ainda mais coisa podem
pedir aí nos comentários bem como se vocês tiverem qualquer dúvida adicional podem deixar depois nos comentários tá em especial pessoal que tá assistindo gravado peço novamente aí quem não deixou o like ainda na Live se puder deixar agradeço bastante para vocês é super rápido e gratuito e para mim ajuda muito aqui no crescimento do canal da mesma forma Quem ainda não for inscrito né e puder se inscrever além de ajudar o crescimento do canal o YouTube vai te entregar as te avisar as lives todas as segundas-feiras vai te avisar dos vídeos novos quartas e sextas
e sempre que sair shorts por aqui você vai receber na sua timeline também tá bom outra maneira de você ser avisado sempre das novidades são as minhas as redes sociais as principais estão aqui na tela o meu Instagram o meu LinkedIn sempre um prazer se conectar com vocês no Linkedin e o meu canal no telegram tá bom no mais agradeço muito a presença de todos vocês nessa noite de hoje e tenham todos aí uma excelente semana que tá só começando tá bom Um abração para todo mundo aí até mais