Como gerar Tokens automaticamente | Bootcamp #EthereumRio | Solange Gueiros

Bootcamp Ethereum Rio (2023) · 30 Dec 2022 · 1:03:18

In a Portuguese-language bootcamp session, Solange Gueiros first answers questions about requesting random numbers from a VRF service, then walks participants through automating token issuance on a test network. Attendees deploy an ERC-20 token, a separate minter contract authorised to mint it, and a keepers-compatible contract that mints one token every 30 seconds once registered and funded with LINK. She advises keeping the token contract intact and putting issuance rules in a replaceable minter, and notes her open minter is only a classroom choice.

Speakers

Topics

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

Transcript

cadê o pessoal que me fez perguntar logo que eu comecei o intervalo tinha umas perguntas muito legais que eu falei não respondo nada agora quero responder tudo ao vivo cadê quem fez pergunta para mim logo que eu comecei o intervalo não Então já tem o nosso microfone aqui para você perguntar e a gente gravar sua pergunta mas você quer fazer não não foi Ixi se não for hoje eu descobri o que aconteceu mês a gente resolve não tem problema Pois é alguma coisa errada eu fiz vou descobrir depois eu vejo Vamos para o próximo

então tirando o número aleatório que a gente sabe que não foi e eu vou descobrir depois para contar para vocês porque não fiquei acompanhando é quem você fez pergunta para mim isso eu quero ali para mim eu quero sua pergunta porque sua pergunta foi legal eu queria saber se o número randomínio ele é único É isso aí o número randômico pois é assim para falar a verdade eu não sei dizer porque o que acontece eu sei que ele é aleatório mas eu nunca parei para verificar se é ele que controla ser único ou se sou eu tá provavelmente pensando ao vivo aqui agora eu acho que

quem tem que controlar isso sou eu não é ele eu acho que a possibilidade de gerar dois iguais é Rara tá de geral mesmo eu acho bem Rara Mas você deveria Controlar se esse número já foi gerado para o seu projeto ou não Então essa resposta final tá não Quem gera é um agente externo isso eu estou dando a ordem para o vrf gerar o número para mim mas é o que eu falei é uma coisa rara Mas pode acontecer de gerar duas vezes o mesmo número até pode só que eu no meu smartconds tenho que ter esse controle

tá eu vou confirmar essa resposta para vocês amanhã eu falei eu perguntei excelente que eu realmente não sei responder tô pensando ao vivo mas essa é a minha conclusão agora eu vou olhar a documentação para ter certeza disso tá bom mas adorei tinham mais perguntas que fizeram para mim aqui no quando eu comecei o intervalo que eu queria responder ao vivo aqui eu tenho uma aqui eu consigo limitar esses números dizer um Range consegue tanto que eu posso disponibilizar para vocês o número ele continua sendo um monstro Tá mas eu posso pegar esse número e dividir então se eu quero um número que vai de zero a 20 eu divido por 20 e pego o resto Então eu tenho de 0 a 19

é isso que a gente faz normalmente limitar o tamanho do seu número Inclusive a versão anterior que só gerava um eu pegava esse número grande e usava isso para dividir em vários fazer umas umas mágicas com isso outra pergunta bem legal que mais Então as outras ali ali eu lembro que ele também me fez uma pergunta legal tá chegando a sua Apesar de que eu lembro a sua pergunta tá sua pergunta era relacionada a o Away né onde a gente tá recebendo esses dois números Por que que quando você tá clicando no índice zero agora ele dá reverte era isso certo

você clica na segunda função ali que é Quest Random Words só que quando você pede o índice Zero Não vem nada vem reverso Então esse é porque a gente tem uma lei potencializado então não existe eu coloquei uma rake eu não defini quantas posições ele tem que ter né então o que que vai acontecer com isso se eu não tenho nenhum valor lá dentro e eu for procurar não existe o índice zero Se você pegar por exemplo aquele o register 5 de ontem lembra que tinha uma lei de informações tá se eu coloquei informação até até o 3 né então ele tem informação na posição zero um dois e três se eu procurar o índice 4 vai dar

riverdale também a mesma coisa aquela posição no Away não foi inicializada ainda não tem nenhum dado lá dentro tá Mas então quando chama a função request Randon Word como é que tipo eu requisitei mas onde é que eu pego Então como é que eu vou pegar o sistema do vrf ele faz um Call Back para o seu Smartphone e ele vai procurar uma função chamada mas para ele te devolver o resultado tá então ele não retorna Tipo ele não dá um print ali embaixo da função não embaixo do request não porque você tá pedindo para um serviço esse serviço

leva um tempinho para ser executado e quando ele for executado ele chama o seu smart conta te procurando aquela função Random mas inclusive por isso que tem aquele gás limite de cowback que você tem que aquilo ali é um padrão a gente não mexeria mas se na hora que ele volta dessa função fio urrando mas você tem uma lógica muito grande lá dentro você teria que autorizar ele a gastar mais gás acho que não teve mais né acho que foi isso mesmo né eu lembro que eram essas Então tá bom a gente tem um ali olha lá Ixi lá do outro lado

Ah mas ele chega assim eu respiro assim eu bebo um pouquinho assim então a maioria oi oi a maioria do dos números aleatórios ou pseudo aleatórios que são gerados por software são pseudo aleatórios né e a gente tenta utilizar sementes para tentar melhorar o algoritmo e tal Existe alguma forma da gente passar algoritmos para que a Tim que possa gerar esses números aleatórios e nos entregar baseado nessa semente essa Seria a primeira pergunta e a segunda é relacionado a critérios de aceite mesmo então às vezes a gente

precisa entender Qual é a lógica Qual é algoritmo que gera aqueles números aleatórios ou pseudo aleatórios para justificar se existe algum descritivo algum documento técnico especificação técnica de como esses números são gerados sim por enquanto eles são gerados de uma forma vamos dizer ele é aleatório mas ele é gerado de uma forma única mas você tem essa explicação White Paper então dá para procurar no site da TIM link pegar o itpaper da versão 2 e entender direitinho como ele foi gerado tá bom Então é isso que eu falei por enquanto não porque ele é gerado sempre da mesma

forma isso ele é aleatório mas a regra de gerar o aleatório única é isso que eu quis dizer então tá bom gente tô indo agora para o último tópico do dia que é o keepers lembra que eu falei para vocês que o Smart contact ele é um ser passivo ele não chama o mundo externo para perguntar nada é um mundo externo que tem que acioná-lo então se eu faço um Smart contra ti que depende de regras por exemplo de tempo ou de valores ou até de um data feed externo eu tenho que colocar alguns serviços para chamar o meu smart contra tivesse aquela regra é válida ou não para ser executado tá

então a gente eu acho que a gente poderia fazer um mais um token vamos fazer mais um e mais uma rede então agora o que que eu vou fazer com vocês porque agora é na curva tá então a gente vai pegar aquele nosso token que a gente gerou já mas vai gerar de novo na Cova depois eu vou ensinar vocês a gerar um minter que que é um Inter é um gerador automático de tokens e com esse mim Inter eu vou porque vocês lembram quando a gente tirava o token só quem criou o Smart conta que podia criar tokens novos certo então eu vou criar um segundo Smart Control e vou adicionar esse segundo smartconds vou autorizá-lo a Gerar tokens nesse Smart conta esse novo

que eu tô criando ele chama a função mente Então isso é um Inter eu vou te mostrar um que eu tenho mas acho que não tá com depoimento mas eu vou te mostrar um que eu já tenho pronto com isso e por fim então eu criei o token criei o emissor de Tom aí eu vou criar um Job na Tim link para emitir tokens para mim um pouco em por minuto e enquanto tiver links lá dentro ele vai continuar emitindo os tokens para mim um por minuto Então vamos lá Então esse agora eu não vou seguir

tutorial ele é meu quer dizer eu vou seguir o meu né mas não é o tutorial da TIM tá vou deixar então agora terceiro item que a gente vai trabalhar e é uma coisa eu tô com isso aqui aberto o quatro que depois eu vou colocar o e-mail da Camila tá que tá faltando que o pessoal pediu eu não esqueci não então aqui embaixo agora então agora a gente vai falar do keepers deixa eu dar um Reload aqui para ver se melhora a vida Então tá bom então keepers eu tenho por exemplo aqui

não esse não é o que eu quero este este também não Esse é o mesmo então eu vou pegar um link novo da documentação só para chegar na documentação e colocar uma documentação para vocês eu vou ver se eu já tenho aqui direto que eu vou usar este aqui então referências Ah eu vou falar para vocês que eu tenho um tutorial que eu fiz do keepers mas esse tutorial Ele só tá gerando é um tutorial que aumenta um computador tá ele é mais simples do que eu quero fazer com vocês então vamos primeiro para a parte mais que a gente já fez antes a gente só vai fazer mais uma vez que agora rede

cova Então vamos mudar de rede gente lá vamos nós então vai lá no seu metames que muda para cova Aqui estou aí eu vou no remix Então vamos lá um criar Token 2 criar emissor 3 criar Job para emitir que no caso é o keep né para emitir um token por minuto Então esse é o nosso objetivo então primeiro

vamos lá no Token e o token a gente até já tem eu não devo ter mais o meu né para variar então eu tô nesse cor de sample aqui e repara que isso é uma parte de workspaces tá do remix eu posso ele nem deixou Abrir vou tentar abrir o meu de novo do zero sem ser o workspace eu até vim aqui para um novo muda o fundo para branquinho de novo para ajudar vocês vou colocar que a gente abrir um remix sem os códigos da TIM link agora tá bom tô usando um remix do zero

então aqui estou tenho que criar o token de novo Você já tem o token de vocês não não é só eu Poxa mas tem que fazer o deplay na Cova então vocês já podem fazer o deplay na curva E aí bom para a gente saber onde a gente está logo de cara eu quero saber o endereço do Toquinho de vocês então aqui a gente está no Deploy do Token Então você vai colocar o seu nome e o endereço do Token

E eu perdi o meu tentar achar o meu de volta sempre é porque se você não selecionar o web3 você tá fazendo tudo localmente e aí a gente não consegue se conectar depois com os keepers que tá na rede cover eu uso muito esse simulador de blockchain quando eu tô querendo testar uma lógica pequenininha mas o restante do tempo acaba fazendo coisa conectando na rede Então eu tinha aqui está esse é o meu Token Então tá bom remix Token

tá lá e tire um livro bootcamp Lá Vou Eu geralmente de novo provavelmente eu perdi aqui também voltei ele já tá compilando de novo e agora mudo injector sempre Nossa ele já tava conectado conectou mesmo ele trouxe meu saldo direitinho Então tá bom não cuidado com contrato tá escolhe o contrato Tool quem não os outros e depois Então daqui a pouquinho eu terei o

endereço do meu Token já tenho endereço deixa eu colocar lá na nossa lista muito bom e bom eu mesma posso remitir tokens para mim como esse é um eu gerei ele de novo vou adicionar ele no meu metamesk essa versão então eu nem tenho ele aqui ó em porte tokens cola o endereço Ele acha que é o RB e adicionar token customizado não tenho tokens é isso aí se vocês quiserem dar já alguns tokens para vocês

pode ser eu vou manter o meu Zerado tá bom aí a próxima etapa Vocês precisam do minter que é o emissor de toldos Então deixa eu pegar aqui eu devo ter o toque em mim ter aqui em algum ponto esse aqui era o Counter Cadê o meu o Inter eu fiz sozinha então deixa eu pegar o Inter para vocês eu não sei qual desses dois está

funcionando Eu acho que eu vou mexer pouquíssima coisa nele eu vou fazer no meu tá e depois eu copio para vocês estou quem não não quero aqui dentro Então a gente vai criar o token deixa eu arrumar o meu primeiro porque eu não tava com ele pronto [Música]

tô até na mesma versão do Token legal aqui é uma interface lembra que eu tava falando antes da interface para vocês que eu tenho só as funções que teria num token mas eu não tenho o código fonte dele aqui o minter em si ele até eu chamei ele de token só na época eu vou mudar ele para outra coisa aqui eu tenho que dizer qual é o endereço do meu Inter E aí ele vai fazer a emissão do Token Tá bonitinho agora eu vou copiar esse código fonte para vocês deixa eu ver como é que vocês estão É tem bastante gente ainda para fazer o token então agora a gente está no início Então agora você vai criar

token minter ponto sol e esse é o token Oi não estamos na Cova dá acompanha a gente pelo pelo Pet tá se vocês pedi então agora a gente tá lá na linha 336 redecoa estamos no Keeper e de onde tu pegou a interface ali do Inter eu criei agora eu copiei do meu withub mas é coisa que eu já tinha Ah legal alguém Pois o token gostei que vocês colocaram o token ali eu vou colocar ele primeiro tá criar Token para quem precisar muito bom

e depois criar o token E aí você vai fazer o Deploy do Token com o parâmetro com o endereço do seu Token que é isso que eu vou fazer agora então eu toquei em minha inter tá aqui ele tá bonitinho vim para cá copiei o endereço do meu Token e agora no toque em mim ter aqui no Deploy muda o contrato para Token Coloca o endereço do seu Token para

fazer Deploy por quê vamos rever só o que faz o token aqui é uma interface que é só para saber que eu tenho Essas funções no meu token e no tokeninter eu tô dizendo que eu vou usar essa Interface para uma variável chamada token e eu defino esta interface no Construtor passando o endereço do meu token depois disso a única coisa que eu tenho é a função conta e quantidade que eu quero emitir só isso então vou fazer o Deploy confirmar

Então tá feito e vamos fazer outro pontinho de controle e eu não tô Outro ponto de controle com vocês que é só então eu vou pedir para que você colocar o seu nome e endereço do Token o meu já deve estar pronto ó toquei no na hora do deprod toca em mim no

contrato ele tem duas opções uma é i e rc20 que é o que tá escrito na interface isso e a outra é o token só o Inter eu vou tirar o sol porque era para ser só toque em mim aí escolhe a segunda opção [Música] e é isso ele sempre vem com a interface primeiro tá aí você tem que escolher o token minter e passar o endereço do seu token como parâmetro no Deploy muito e aí bom eu tenho toquei em mim

ter aqui agora eu tenho o endereço do Token né que que eu faço depois disso depois disso eu vou no Token eu vou adicionar o endereço do Token aonde que eu vou adicionar vou descobrir que eu nem eu lembro pera aí Token Então olha só importantíssimo agora pessoal Olha isso

aqui então Olha eu já tenho eu vim aqui criei o toque em mim ter com o endereço do Token agora eu vou no topo quem e adiciono o endereço do Inter para que ele seja autorizado a fazer a emissão a gente tokens então eu admitir muito bom admiteres já aconteceu

então isso significa que o meu token só o Inter Ele Pode emitir tokens agora eu vou testar na mão isso tá bom como é que eu faço esse teste por exemplo Então espera aí no toque testar a função mente então eu agora eu tô no meu token que virou token no meu caso né eu vou pegar o meu endereço

e eu tinha duas casas decimais então eu quero emitir sem tokens um 0000 Então quem tá emitindo token Zé o token esse tokeninter tem alguma restrição aqui do tipo qualquer pessoa pode vir aqui chamar o meu tokeninter para emitir tokens pode ele é para isso é dentro do Token a função mente só quem pode chamar é o oner mas no tokeninter eu não pus

nenhuma restrição ó não tem nada aqui e eu fiz exatamente para isso para que qualquer pessoa possa emitir o meus tokens e eu até vou deixar aqui para vocês esse tokeninter que eu vim aqui ele não eu não fiz Deploy na covar que eu não mostrei para vocês mas ele tem até um front-end que limite um token só que é um token o que eu fiz na época só na rede da rsk aquele vai falar que não tem o Deploy ó não tá nessa rede mas aqui eu posso emitir os meus toquinhos

eu criei uma Interface para isso eu compartilhei com vocês o github onde tem essa Interface para vocês brincarem depois do meu solzinho Então o meu tô qualquer um pode ir lá olha vocês têm o endereço se vocês quiserem tirar a prova vocês têm o endereço do meu token Aqui vocês têm o endereço do meu token aqui então se vocês quiserem vocês podem distanciar o meu token emite token adicionar o meu token no seu metameski esse eu garanto que funciona agora a gente vai para etapa final que é

automatização disso usando o keepers que é o a ferramenta da TIM link para a gente fazer esse tipo de automatização então eu tô achando que eu tava no smart conta de errado aqui deixa eu ver Só uma pergunta sobre o RC 20 menta vou Qual que é a diferença entre o redminton você não tá Você tá no token né a gente tá aqui admin teria a prove Então o a prove ele aprova ele é uma função padrão do er-c20 ou seja o rc20 é aquele padrão que o Alex falou para vocês então erc20

[Música] só isso aqui Eu acho que eu devo chegar onde eu quero aqui ó posso até deixar isso para vocês lá também vale a pena então lembra que o Alex falou olha que isso aqui foi uma proposta de número 20 realizada há muitos anos atrás a gente não tem aqui a proposta inicial até mas aquele Fala direitinho o que que aconteceu com ela o que que tem que ter é desse app que eu quero mostrar para vocês ó Isso aqui foi uma proposta em novembro de 2015 e é a partir do momento que fizeram Esse standar eu tenho obrigação de seguir esse padrão não é uma sugestão Mas se eu

falo que o meu token é do padrão rc20 meu token tem a obrigação de ter Essas funções e nessas funções aqui vocês vão ver que uma das coisas que tem que ter é esse a prove e esse é prove ele serve para que você acha ele aqui ó para que você autorize que outras pessoas ou outras contas né outros endereços possam utilizar o seu token é esse o nosso objetivo tá então é isso quando eu venho aqui e eu faço uma prove você vai ver que eu tô escolhendo o endereço e uma quantidade então mesmo que não exista este saldo na minha conta

eu tô falando que este endereço pode tirar esta quantidade de tokens da minha conta tá E se eu tenho se eu tenho 100 mas eu falei que ele pode tirar 1000 ele Rapa Minha conta simples assim Ah mas isso aqui eu estou autorizando transferência é totalmente diferente do admin inteiro que eu tô adicionando uma um endereço na regra na whitelist que pode usar a função tá bom Então vamos lá agora a gente vai para a parte que tá faltando do keepers que eu tenho que achar ele aqui

aqui aqui só chama o Smart aqui equipe mente ponto sol Então é isso que a gente vai criar agora então agora nós vamos criar o Keeper mente ponto sol qualquer vantagem de eu criar um contrato diferente para fazer um manter porque que eu não posso fazer no mesmo Então depende de como é que você criou o seu token porque eu queria usar o padrão da openzap ali em que automaticamente já me coloca essa restrição de quem Pode emitir o token eu preferi não sobre descrever a função mente do do pingente

e manter ele intacto porque eu já sei que ele tem um certo grau de auditoria e testes naquilo e criar uma uma coisa parte minha para eu autorizar quem eu quero E aí desse jeito se por exemplo o meu é um pouco em mim ter tá com problema eu quero trocar eu simplesmente tiro autorização deste contrato e começa a usar outro e eu mantenho o meu token intacto se eu coloco a regra diretamente no mim entendeu meio que posso criar uma bagunça e uma falta de controle do que tá acontecendo com meu token é uma boa prática num tom quem você tem um controle de quem emite se você quer que todo mundo emite se cria outro Smart

conta tipo mandar acontecer isso tá agora esse aqui que eu acabei de copiar para vocês que é o keepmininter eu tenho que conversar com vocês não é sair copiando assim não tá Deixa eu só falar o que que você Onde que vocês têm que alterar aqui tô que me interessa então vocês têm que alterar ou eu passo eu vou passar ali como parâmetro para ajudar você está porque esse aqui na época um monte de

gente estava emitindo token mandando só para mim porque tava só com o meu ali então o endereço do Token e eu vou passar mais um parâmetro aqui Deixa eu fazer isso aqui no Remix Tá porque se eu fizer aqui eu não sei se eu tô fazendo coisa errada Então vamos arrumar isso aqui ao vivo é rapidinho Então como é que eu chamei ele toquei em mim que permite eu criar o meu que permites keeper nte e é esse que a gente estava fazendo

aí que que eu quero mudar eu acabei de colocar o endereço do Token para passar como parâmetro e eu também quero passar como parâmetro e esse tio como eu quero eu vou guardar ele aqui Andressa então o que que eu vou fazer eu passeio tio aqui também vou colocar ele aqui só para a gente não fazer bagunça Então tá bom

é isso que eu preciso de vocês ele tá funcionando deixa eu copiar ele certinho agora tá Quem Já copiou antes apaga e usa esse aqui que eu vou mandar ainda tem um erro agora tá certinho bom então é isso agora ele tá certinho como estava eu falando para vocês aqui para eu fazer com que o meu contrato

Chame o keepers interaja com os Jobs ele tem que ser compatível com o keepers como é que eu faço essa compatibilidade usando aquele que percompatível interface Então eu estou herdando algumas funções dessa interface no meu então aqui eu estou herdando o quepers aqui eu estou herdando a interface do meu Winter que que eu preciso que que o meu Inter tinha gente a função mente então a minha interface só tem a função mente depois disso aí sim a gente cria esse que permite que é o nosso Smart conta de de verdade

então ele tá ele dando as funções do keepers ele tá usando o interface que vai ser o endereço que a gente vai passar agora do nosso Inter e o two é para quem vai receber esse tokens de minuto em minuto você pode se quiser mandar para mim tudo bem Tá mas pode mandar para sua própria carteira não tem problema aí De quanto em quanto tempo eu quero que ele seja executado no nosso caso a gente pode fazer um por minuto um A cada 30 segundos a gente define tá E para ele ter esse controle de um por minuto a cada 30 segundos ele tem que saber a última vez que foi executado então por isso que a gente guarda o último time

stamp que é o último o endereço o tempo do último bloco tá bom aí vamos lá no Construtor eu tô iniciando tudo isso então eu tô passando qual o intervalo Vamos fazer alguma coisa segundos é 30 segundos 60 que seja toque em mim Inter o endereço do seu token to o endereço que vai receber os tokens de tempos em tempos ele vai atualizar tudo isso eu mantive aquele Counter zero que ele era da versão original até de demonstração ele só vai se aumentado sozinho também aí o nosso token ele tem duas funções só que elas vêm da compatibilidade com

quepers que são essas o check up keep e o perform up é a função que a chamlink então o serviço da TIM link vai chamar no meu smartphone para ver se tem alguma coisa para ser feita então ele vai chamar e ele vai verificar tem alguma coisa para ser feita sim ou não é isso que ele tá fazendo ali se é sim ele vai ali ele tá passando os parâmetros tal eu não vou fazer uma coisa complexa com parâmetro então Aquele cheque data eu não vou usar Agora ele só vai me retornar verdadeiro ou falso se o piquenique precisa ou não precisa atualizar aí lembra que a gente

tava usando no vrf aquela coisa de a gente tem uma função de retorno que o serviço externo procura essa função no vai acontecer a mesma coisa aqui então o serviço do keepers dalink ele vai procurar uma função chamada performe up keep no meu Smart Control E caso o check up keep Seja verdadeiro ele chama a função performe o apequip atualiza a última atualização o último times tem pela do bloco aumenta o contador que eu falei que eu só mantive do Smart contrate passado e emite 100 duas casas esse mais um Token para o

endereço que você definiu e o perfume data a gente não tá usando agora tá Então é isso vamos fazer deploide esse agora E aí eu vou pedir para vocês mandarem também o endereço de vocês aqui do Smart contact que vocês estão fazendo depois publicando agora você vai me mandar então o seu nome e endereço do keeper Winter

Deixa eu fazer o meu e esse aqui dá trabalho né Tem um monte de coisa para colocar aqui dentro então não é interface lembra você tem que escolher o escolher o que permitir aí no Deploy eu aconselho vocês a expandir aqui que é mais fácil intervalo eu quero A cada 30 segundos touca em mim ter é o endereço do meu Inter que eu já fiz o Deploy two é o meu endereço endereço da minha carteira Então é isso Então agora eu posso clicar no transatch vou fazer o Deploy dele

então só recapitulando intervalo de quanto em quanto tempo eu quero que ele Verifique que ele seja executado 30 segundos toque em mim ter endereço do seu token Inter que você Já publicou endereço da sua carteira onde é que tá implementado o loop Isso é o que faz o serviço externo não é nem ele né quem você tá falando Lupe é quem é que checa isso de tempos em tempo certo essa pergunta isso é o serviço da TIM link que daqui a pouco a gente vai ativar a gente não ativou ainda tá então

tem que pagar em link esse serviço a gente também paga em link Mas a gente não chegou lá ainda não vai na realidade para os nós que estão executando esse serviço Então o que permite estar aqui esse é o meu então próxima etapa agora eu vou na Tim link para ativar o meu smart conta de lá dentro então lembra que eu tô copiando do meu aqui então agora a gente vai para cá para

ativar o serviço então é no keepers da cover tô com muita coisa que não preciso aqui deixa eu tirar tirar esse era do Jeff que eu tô esperando uma resposta aqui então aqui é o Keeper primeira coisa é igualzinho vrf conecta a sua carteira Então minha carteira tá conectada e vocês vão ver que assim esses não são só os da minha carteira né então vários acontecendo eu vou agora registrar o meu

up keep ou seja registrar eu vou criar um Smart conta de que vai ser um Job que vai interagir com o meu e que achem os nós da TIM link que chamam esse smartphonet para fazer essas interações então Regis e que que eu tenho que falar para ele e-mail o nome do meu App então ele é o minter

Winter o endereço dele que eu acabei de fazer o Deploy o administrador ele já é a sua carteira ele falou que ele não consegue verificar porque eu não fiz a verificação não é ter Scan não vou fazer agora não precisa ele vai funcionar outra coisa deixa eu copiar tudo para vocês direto isso aqui então que permiter endereço do seu smart

contact o seu endereço tá gás limite usa esse aqui que eu já testei eu sei que funciona e se não a gente teria que fazer alguns testes dá para fazer alguns ajustes Mas vamos é garantido esse aqui e coloca 20 links no seu token no seu então o que que eu tenho que fazer o gás limite que eu esqueci de olhar o cheque data não precisa por nada era só se a gente quisesse passar parâmetros e o balanço Inicial Eu vou colocar 20 agora eu vou fazer o registro

tem não dá mais você pode pegar lá no falsete a gente já tinha ido no falsete da escova né que é o que eu tô agora então para quem não tem links vou colocar ele lá pertinho para complicar não complicar a vida de vocês Não tem link vai aqui e pega seus links Então você tem que pegar aqui no falsete tanto o link quanto você vai pegar tanto o link da cova

quanto se você não tiver o éter também éter se tem né porque vocês já estão fazendo Deploy Então pega também aí ele vai te dar só 10 links muda para 10 10 funciona eu tô exagerando a gente vai mandar tudo para smart conte até ser menos mas porque daí ele vai ficar emitindo token pela gente mas sempre é mais divertido cheque data deixa em branco isso mesmo e 10 links aí sim eu vou clicar então no Regis

confirmar deixa eu ver quem tá fazendo e agora que eu não vou copiar a lista inteira não mas só coloca o nome e o seu Deixa eu ver se eu quero é do Job o que que eu quero ó ele já fez viu a equipe depois e aqui ele tem odres esse é aquele lá o seu não nem vou pedir nenhum endereço para vocês não

assim aquele tem o job ele aqui em cima me passa esse aqui que é legal de passar é que se eu colocar link complica a vida então aqui ó ele vai dizer qual é o seu Job Tá bom coloca só o seu nome o link que depois a gente pode olhar isso aqui é público eu posso olhar o de vocês também Ai fiquei atrapalhando então Aqui estamos

Se eu olhar aqui que que será que já aconteceu Eu só coloquei os Fundos aqui deixa eu fazer um refresh aqui só para ver se ele já executou Olha gente ele já executou duas vezes então eu tenho que ter ganho pelo menos mais dois vamos dar uma olhada nos eu tenho 102 lembra que eu tinha emitido sem tokens do etire um rio bootcamp eu tinha emitido diretamente no meu Inter Agora ele já emitiu mais dois para mim Oi ele cada vez que ele executa É isso

mesmo então aqui ó e aí a gente vê quanto ele tá cobrando e esse valor repara que ele muda um pouquinho então depende até da daquele momentos tem muita gente chamando os serviços ou não depende do gás da rede Mas é isso então ele tá chamando como eu pus A cada 30 segundos vai ser bem rápido isso aqui e tá lá tá gastando meus links eu exagerei com 10 viu gente vocês queriam Pelo menos eu confesso mas eu tô aqui ganhando pouco hein Se eu voltar aqui agora eu tenho que ter pelo menos quatro se ele já não executou a quinta vez Ó tem quatro e assim vai então eu tô aqui agora

recebendo tokens automaticamente e é essa ideia eu fiz isso para receber tokens Mas vocês podem automatizar qualquer tipo de processo tá é que eu quis fazer do Token que daí a gente já faz bastante coisa cria toquinho de novo cria mente para fazer um processo mais complexo com vocês então quem quem chegou no nesse pedaço quem já está recebendo token sozinho boa quem precisa de ajuda temos um dois três Se tiver vamos ver se os monitores conseguem ajudar quem já fez levanta a mão de novo quem

já fez ajuda o amiguinho quem não fez levanta de novo para ele te ajudarem aí ó então o pessoal já sabe tem um aqui tinha um pessoal lá no fundo Então vamos agora ajudar os amiguinhos enquanto isso Alguém tem pergunta também tem uma pergunta lá do outro lado Deixa ele chegar para poder beber alguma coisa então existe alguma forma de adaptar no sentido de eu quero fazer apenas um

agendamento entendeu quero executar apenas uma vez e não em um intervalo existe essa opção existe porque eu defini o intervalo no meu smart conta te lembra o meu smart contas é que tá olhando já passou 30 segundos responde verdadeiro não passou responde falso então você poderia no seu smart conta te dizer exatamente o que você quer então onde eu faria isso aqui ó no meu cheque up keep eu vou Eu Tô verificando se o bloco atual menos o último passou de 30 segundos eu poderia colocar por exemplo o piquei

up somente se a o Block o time stamp atual é maior que um determinado e ele vai fazer uma vez só obrigado e aí eu posso trabalhar com a geração automática também por exemplo desse tipo de contrato né não é legal sim poderia você poderia dar para fazer umas coisas bem bem interessantes assim automaticamente para automatizar mais alguma dúvida de que peso ou de link bom eu sei que agora a gente está vendo individual tem uma aqui

aí você não tinha me feito perguntantes que eu pedi para fazer ao vivo ótimo eu tenho mais uma também tá bom Suponha que coloquei lá tá rodando up keep sempre e acabou meus meus links E aí eu adicionei mais link na minha conta ele vai acabar com os meus links de novo ou ele encerra Ah não tem mais link aqui esse cara que foi liquidado Não ele só vai acabar se você cancelar o serviço então você tem duas alternativas se você quer cancelar eu tenho 10 links eu já executei uma quantidade de vezes e eu não quero mais então eu vou lá e eu cancelo o serviço E aí eu posso fazer o saque dos links que sobraram Esse é um

caminho Ou eu deixei gastar todos os meus links que que acontece agora ele não continua ele Checa a ver que é verdadeiro mas não faz nada mais nunca mais aí ele ficou um mês sem fazer nada eu coloquei link de volta ele volta a fazer a segunda a executar de novo pergunta no na sessão anterior você tinha isso se eu perguntei qual que era a função do row row fuel Deixa eu voltar aqui para você e eu acho que eu não consigo voltar que eu tô em outro remix né bom mas eu

consigo só falar o ralful feel Words ele é só para você ver o como se fosse assim o bruto da sua chamada tá você me perguntou mas não tá prestando atenção então que que é porque você pode assim você tem aquele aí de E aí você pode a partir do momento daquele dia olhar olha quando foi este aí de o número randômico gerado foi esse então ele serve para você ver se você chamar o mesmo Job várias vezes ou seja pedir vários números para saber a partir do é de qual que foi você consegue pegar vários assim não

é só para você olhar as chamadas anteriores no Rei você vai colocar o id então cada vez que eu chamo eu tenho um ID então eu ID da chamada e o índice que eu quero ver que ele preencheu naquele momento isso então como estamos Opa tem mais aonde mil eu amanhã eu vou falar que vocês só podem ficar para cá eu não vou deixar você ficar tão longe assim fortalece o caráter dele andar

normalmente ou certo isso dentro do programa mas eu teria como utilizar o shaylink para mim tá o token por tempo certo mas eu teria como fazer o banner dele também jogar para uma carteira morta retirar fazer extração não tenho como fazer toda essa adaptação dentro do challenge então do jeito que eu fiz usando o keepers né você executa o que você quiser eu quis executar uma emissão de token ele tem por exemplo uma outra dentro do meu próprio Smart contat ele tem uma outra coisa que ele tá fazendo junto que é um contador então se eu voltar aqui eu nem sei o que Pimentas para vocês né ó tem um monte de coisa aqui que foi ele que gerou né o Counter tá aumentando eu até sei quantas vezes

ele mentiu Token para mim porque eu tenho Counter mas eu escolhi o exemplo por exemplo do tutorial da tink ele é só o contador aí eu adicionei o emissão de tokens porque eu queria fazer uma coisa diferente eu poderia fazer queima eu poderia fazer transferência eu faço o que eu quiser eu posso inclusive fazer uma regra olha olha essa carteira toda vez que essa carteira tiver mais de mil tokens transfere para mim para outra que eu sei que é uma carteira fria minha uma Cold wolete que eu quero deixar reservado poderia por exemplo você tá um prazo de validade por exemplo também aí você vai olhar pelo time stamp para

isso pensando mais como validação para importação exportação né você poderia sim então você vê que assim o que a gente consegue o tipo de job que a gente consegue fazer com uma regra dessa de smart conta que é infinito né porque isso resolve o problema de que tá bom eu tenho a regra no smart Confort mas alguém de fora tem que chamar aí eu automatiza essa chamada também eu tenho tudo Redondo tudo automatizado ali dentro do mesmo serviço e não eu não te ouço nunca daqui vai ser completamente possível quando você tá com microfone você já fala baixinho

desculpa é costume não eu ia comentar né que normalmente mais comum as pessoas que vem de outras linguagens de programação normalmente setar ela dentro da própria linguagem fazer um automatizador você desconhece dessa sistema e acaba nunca procurando uma coisa que assim é conhecida E continuaria se não tivesse curiosidade de vida sim muito bom e assim é super prazer fazer vocês se conhecerem isso aí bom tem uma pergunta e a gente é incrível né as perguntas é uma na ponta Tadinho dele gente porque é uma lá na ponta de lá e aí a outra tá na ponta de Cá pode dar algum problema de

ligar mais de um Inter né para o mesmo contrato em paralelo Não não pode ele vai fazer se por exemplo se quiser fazer um teste aí é usa o meu o meu Inter Coloca ele vai emitir o meu token E aí você começa você a ganhar os meus tokens qualquer um de vocês tá se vocês quiserem fazer comer um Inter e ganhar o meu token pode ganhar tá disponível para todo mundo aí tem mais uma que tá do lado olha o que eu falei que então Juliana do meu amiguinhos Espera aí mas deixa ele primeiro em relação a modificadores de acesso eu teria como qualificar na hora de escrever uma função que eu já sei que eu

quero automatizar bilhete em link que apenas aquele Smart contra a gente conseguirá invocar aquela função por exemplo eu como Smart contra ou como AdWords Eu não conseguiria chamar e sim apenas aqueles que a tianing está executando para mim você sabe me dizer se essa é uma possibilidade de eu conseguiria criar esse tipo de modificador sim eu não chamaria de modificador tá o conceito de modifyer é outro mas eu poderia nem que fosse eu faria como um link um link interno Putz Mas pior que não eu tô achando que eu não consigo fazer

isso porque quando eu tenho que saber eu vou ver se eu tenho o endereço do meu up keepers E aí eu limite que só o meu apkippers pode chamar então o processo vai ser você faz o deploide do seu smart conta que você registra o Up keepers pega o endereço do Up keepers volta no seu smart contra ti e registra que só ele pode chamar sim poderia dessa forma teria que ter uma variável para isso é isso mesmo É Isso Aí teria que fazer tudo isso tá bom E aí tinha um aqui

Ai que bom Agora eu tenho dois por exemplo qualquer pessoa Pode emitir o meu token do jeito que eu fiz sim sim mas isso na prática é não sei se é errado é a palavra mas talvez em controlável assim gente é uma aula eu quis fazer desse jeito assim é real a gente é um pouquinho de teste eu faço o que eu quiser com ele óbvio que assim na vida real dependendo da do valor que você quer dar para o seu então que você nunca vai fazer uma coisa dessas mas eu tô fazendo uma brincadeirinha em aula é só para vocês verem eu tô fazendo uma coisa mais Ampla E aí você vai restringindo conforme a sua regra de negócio que você tá implementando

bom é só só continuando Pergunta dele é apesar de sem aula esse modelo de eu criar o token e o Inter para que eu possa o sempre que eu precisar mudar o gerador do meu token eu só mandar o minter e meu token continuar é parado esse é o geralmente o molde que você vai usar é uma boa prática em vida real em vez de você fazer com que seu com o seu contrato gera o token você mantém o contrato intacto e cria um minter ok então tudo depende do que você quer na prática quando a gente gera um pouco de verdade muitas vezes você já gera uma determinada quantidade e até uma regra de negócio você vai criar um negócio

novo se o seu Tom que tem emissão infinita muita gente desconfia de você porque ele vai comprar seu token E aí você vai emitir um monte e vai desvalorizar Então depende das regras de negócio que vocês querem fazer eu tô fazendo aqui as coisas mais genéricas Poss mas vocês saibam que vocês vão limitar de acordo com a regra de negócio aí eu dei ferramentas para vocês até fazerem esses limites mas em relação à token uma boa prática é essa sim eu gosto muito e até vou falar um caso real para vocês na transfere eu criei uma Bridge eles têm um token BRZ que é uma stable com brasileira e eles têm em etirem nesse Smart Sheen rsk e o Smart conta de até

do Token deles era diferente nas redes em uma das três redes que eu não lembro qual é a gente não conseguia a única pessoa que podia fazer a emissão do Token mesmo em teste net era o dono era todo poderoso da empresa e assim na teste net gente não tinha condição nisso aí eu fiz um menino inteiro nesse mim Inter o meu Inter não era simples assim então eu tinha um Inter com controle nesse controle eu adicionei o próprio dono para ele poder continuar emitindo adicionei o meu smart conta de Eu queria um intermediário que era o gerenciador de acesso do Token coloquei o dono coloquei o meu Inter e aí nós dois ficamos felizes porque agora tanto eu

quanto o dono conseguia eu não né o meu Inter quanto o dono podia fazer emissão e eu tive que fazer isso de verdade assim um projeto que já existe então inclusive é uma lição para você ver dependente de como foi feito o projeto Às vezes você tem que adaptar o que tem esse é um caso muito comum tá diga eu criei um gás de limite de 20 mil né e ele não conseguiu rodar nenhuma vez aí eu aumentei para 200 mil e aí ele começou a rodar é Então como que a gente enfim poderia usar como proxy esse comportamento da peste net pra vida real

né é Não nesse caso porque esse gás limite que ele tá usando não é o preço né é a quantidade de litros de gasolina que eu expliquei para vocês então dá para fazer esses cálculos contrato a contrato quanto cada função tá chamando eu não fiz isso não vou fazer aqui é uma coisa muito aí muito mais adiantada para vocês por isso que eu falei 200 mil tá bom Funciona porque a gente tá precisando mas você pode otimizar esse tipo de coisa também tá