Meetup #01 - Account Abstraction - Pt 2 (Antônio)

ERC55 Meetups · 25 Sept 2023 · 1:23:03

A hands-on workshop in Portuguese walks through ERC-4337 account abstraction by following a user operation through its parts: an alternative mempool, a bundler that packages operations, an entry point contract that executes them, and paymasters that can sponsor gas or accept tokens. The speaker runs a local node and bundler, deploys the reference contracts and a sample wallet extension, then deploys a smart account paid in ETH. Paymaster sponsorship is explained rather than run, including its stake and deposit, and the bundler is flagged as a new attack surface and a possible centralization point.

Topics

From ERC55 Meetups, hosted by ERC55.

Transcript

E aí ela mostrando que ela entregou o piquenique com a mãe dela e ela tem lá tá comprando tem Bitcoin hoje fez o teste direto isso é muito legal cara essa nossa missão assim deixar isso super fácil um jeito super acessível e descomplicados [Música]

[Música] [Música] o meu setup é um pouco mais raiz vai envolver várias Abas de terminal Mas vamos lá bom só dando uma rápida introdução eu não tenho slide nem nada não vai ser mas vendo o código assim por trás dessa dessa receita já trabalhei empreendendo com várias

coisas desde cripto realidade aumentada o éptrick game e hoje eu tô trabalhando com segurança eu tô auditando protocolos indify desde o início do ano e trabalhando com e também muito interessado em acauteb track eu participei de uma competição de uma rakatão do etern Global acho que alguns meses atrás onde o nosso time era minha dupla né Eu e minha dupla a gente fez um pay Master que você pagava com PayPal E aí você subsidiava suas transações com PayPal então a gente focou num dos componentes apenas da

dessa desse ecossistema né da do workshop aqui é ver todos os componentes e ver como eles interagem entre si né e a ideia é que a ideia é que a gente veja isso olhando o fluxo daction então setup ideal seria te mostrar o fluxo esse seria o fluxo então basicamente só vou dar um overview assim por cima não

sei se vocês já conhece ou não esse fluxo mais mas basicamente essa aí é ip da conta dos traction quem não leu recomendo porque acho que explica Tecnicamente em bastante detalhe o que que são cada um dos componentes como são as regras entre eles né Tem bastante vídeo também no YouTube sobre o histórico de cálcio sobre Como que essa ideia surgiu desde que o eterno surgiu mas eles não tiveram tempo e aí ficou meio que joga enfim sendo revisada e aí agora tem essa primeira versão funcional Mas aqui tem alguns componentes que são usados e a ideia do workshop hoje ia passar por todos esses componentes então bom vou apresentar aqui um pouco

resumidamente os componentes Mas é para que a gente tenha aqueles aquelas simplificações de experiência do usuário e novos maneiras de implementar requeriam que o protocolo fosse mudado por exemplo adicionando novos up codes ou mudando enfim os clientes e isso ninguém queria porque seria muito uma mudança muito grande então essa essa IP Ela traz a ideia de uma alternativa Ou seja você tem novos tipos de

transações né novos tipos de transações entre aspas que são essas chamadas de userrations então às vezes são transações que genéricas né é onde elas são enviadas para essa manipular alternativa e elas são executadas seguindo um fluxo muito específico que é esse fluxo descrito aqui então basicamente é o banner ele seria análogo a um nó no fluxo normal do ethereum onde o banner ele escuta as US operations dessa mempu alternativa né inclusive esse até o nome da ep né que é a calma tava traction e Usain altman Pool então tem uma boa

alternativa que escuta e userrations E aí o banner é um pacote essas operations né tipo e ele envia a transação executando elas num contrato também que tá descrito dentro da IP que é esse entrepoint então entre o poeta é um contrato que todos os banners deveriam confiar nele ele é muito sensível do ponto de vista de segurança porque é ele quem vai estar executando as transações de Fato né então tipo na mente verdadeira exato na verdade esse ponto um aqui é Apple verdadeira

Tipo antes do 1 seria uma empu essa última empu E aí um já é meio verdadeira você chama você executa uma transação chamando Esse contrato entre Point então tipo se você fosse fazer isso na mão né tipo assim você vai executar o contrato entre Pointer aí Aqui tem vários fluxos também importantes que o Banner faz para porque aí tem aquela enfim tem uma parte teórica muito pode ser muito sei lá pode a gente pode falar outro dia porque a minha ia ser mais voltada para o código mas é uma parte muito sensível também de Como você garante que o Banner vai ser pago e aí a IP ela

descreve muitos considerações que tem que ser feitas porque quando você tá subsidiando a transação para o usuário quando você tá pagando em um token que não é hétero e tudo mais pode ser que devido a sei lá a conversão ao gás da rede é o ou por exemplo o banner não seja pago a gente executar uma transação ou pode ser que essa transação do usuário reverta e o banner também ocorre um prejuízo então também existe umas etapas de verificação adicionais né que no fluxo tradicional não tem então o banner verifica se a transação serem seria adicionada ele faz um ele faz um

a conta do usuário tem que ter Fundos né Tipo ela tem que ter éter ou tem que ter um to para poder pagar caso você vai pagar em br-la por exemplo aí caso aí o usuário paga e depois você faz o refando para o usuário então tem todas umas umas uns detalhezinhos aqui que a gente vai ver no código já já E aí tem também o detalhe do pei Master que é para você subsidiar as transações dos usuários ou para você possibilitar que o usuários paguem tokens e não em éter ou no token nativa da rede então no caso do Pay Master também tem o fato de que o pay Master também valida se o usuário

consegue consegue pagar Se necessário Enfim então tipo tem um fluxo relativamente grande mas a ideia é que a gente passe por todos esses componentes aqui olhando no vs Cold mesmo mostra os separados Então eu queria documentação do Instagram eu queria um diagrama mais bonitinho [Música]

eu sei um eu vou entrar num que eu sei que imagem bom tem essa aqui mas eu acho que essa aqui vai ser mais grande é essa aqui é legal certo certo então então realmente esse acho que esse aqui tá mais fácil de enxergar onde você é essa outman Pool é uma é uma é uma uma lista né de dessas user Operation que os

usuários vão Enviar através das suas Smart wallets a esses banners eles verificam fazem alguns cheques na nessas para ver se elas são válidas porque aí oration ela tem algumas restrições em algumas etapas de enfim o que que elas podem acessar ou não para garantir que o Banner seja pago e aí depois o banner envia isso para o Point onde isso é executado é E aí você chama o contrato da conta né então tipo tem tem o contrato do interpoint que é onde executa o contrato das marcas das Marta

Country ou cria as marcantes ela é um contrato então ele também executa esse Deploy e o Master também pode pagar pelo Deploy mas isso tudo Acho que vai ficar muito mais mais claro quando a gente for ver o fluxo porque na parte da demo a gente vai ver todas essas esses exemplos Mas então eu queria esse repositório aqui tem até um bitly que eu anotei para facilitar o URL que é assim é assim

então aí vocês vão cair nesse ver se eu consigo esconder isso aqui e beleza aí bom que que tem nesse nesse repositório aqui é eu para facilitar eu eu tenho alguns subódulos do próprio

das implementações de referência né do da RC que são esse esse projeto aqui que chama essa organização e Infinity não sei porque que Eles escolheram esse nome mas é basicamente feito pelation E aí lá eles têm todos os componentes lá da RC tem aqui os my controls que fica nesse projeto tem uma implementação do Banner script Mas você poderia fazer bandas de qualquer jeito em Python sei lá em Rusty talvez outros banders possam ser mais eficientes esse aqui é a implantação que eles fizeram tem aqui alguns

especificações seria para caso você vai fazer um banner que não seja esse tipo oficial entre aspas você roda esses testes e garante que o seu bander está funcionando e aí tem uma uma Smart Wallet né tipo seria sei lá como se fosse um metames que doação que essa chamada de trampolim que é uma aula de muito simples feita em react que implementa o SDK que já com todos os métodos para estimar guess para estimar é para ver interaja com pamestre com operations assinar todas essas coisas estão dentro do SDK então tem Enfim então esse aqui seria a organização

oficial E aí aqui no meu no meu no meu repositório tem esses três esses três submódulos aqui e aí aqui eu descrevi Qual que é o fluxo né quais são os componentes e quais são os fluxos e aí a ideia que a gente passa por eles e faça essa demo e vão ser então duas demos duas demos real tipo com a mão na massa na demo na ideia a primeira é você depunhar umas Marta counts que ele chama de Simple acound né é o nome dessa desse exemplo você vai a gente vai depolar uma cinco akmos usando éter então

sentou quem Sem subsidiar essas coisas e a segunda seria usando um tem Master Então a gente vai a gente vai deploiar esse a gente vai depuiar esse esse assim com usando token E aí tem aqui umas tarefas de casa que seria fazer tudo isso fazer uma Multicine fazer não sei o que que aí enfim demoraria mais tempo e a gente vai fazer toda essa demo no local Porque apesar de ser menos realista facilita no The bugging porque aí você consegue ver as os RPC qual estão sendo executados no node e tudo mais então beleza então como que a gente vai fazer então

primeiro quando o repositório né eu já tenho aqui então não precisa Oi vamos testar [Música] já com repositório clonado vamos ver se funciona eu acho que talvez o principal dificuldade seria porque como eu vou precisar rodar o nó local e o banner local ele abre duas portas aleatórias então não sei se aqui ele vai conseguir conectar essas portas vamos testar porque aí o nó é o hard Red node ele vai ser porta sei lá 8 alguma coisa

vamos ver Então a gente vai para vamos fazer primeiro tetup inteiro depois a gente vê no código o que que as coisas estão fazendo então primeiro eu vou dar um nó do Hard Hatch Deixa eu só ver aqui ah não ah Calma que tem

aqui meu explicações que seria aí já tem um yarnzinho então é então tá então vamos fazer o seguinte vou tentar aqui eu acho que vai dar certo eu vou entrar primeiro no banner eu vou dar um CD banner deixa eu aumentar o tamanho da tela não beleza eu entrei no banner aí ah caso quem tem aí quem esteja em casa tem tem todo o passo a passo aqui então essa é a minha cola aí eu vou dar esse Arne hard

Red node para iniciar o o presencial [Música] [Música] Beleza agora eu vou dar um npx

ia entre não dá espaço então aqui para mim ele pede para instalar umas coisas para você não pediu [Música] então eu talvez dê mas mas eu acho que assim se você tem quem tem vai precisar do novo de instalado no PC eu acho que vai dar certo também ó então vou fazer entrar aqui então o que que eu vou fazer eu vou

entrar no banner E aí deixa eu abrir aqui para vocês verem o pack de Jason dele ele tem esse ele tem esse comando aqui ó hard Red Note que ele sei lá já vai ligar eu acho que você tem que dar um Gibson e depois um update não é [Música] Ah tá então faz o seguinte dá um gits quando você clona é dar um gits e depois um gits que eu adicionei

tá então acho que tem que dar esse kit [Música] Então realmente tem esse pré-requisito

aí que a gente que eu tinha esquecido que é dar esse kit do modo de update beleza aí agora a gente vai ligar o Vander tem aqui na no redmi até botei em ordem aqui para a gente não se fazer nada errado mas então a gente vai vai subir um nó seria similar a ter um dieta aí né na sua máquina então hard Red tração é que ele faz com tracinho porque é um comando do ar né Beleza beleza então a gente subiu agora

a gente vai subir um banner que seria um outro é um outro componente eu vou abrir um outro terminal Então vou entrar no na pasta do banner de novo e vou dar aí tem aí tem mais coisa que precisa fazer então primeiro Ah você já deram já tem que dar um free process que seria esse aqui ó eu não sei o que isso faz mas tava no tava nas instruções ele vai fazer um pré-processamento [Música] deixa eu não sei hoje

ó aí o próximo passo seria dar esse arnol menos menos um Safe E aí eu já explico porque que serve então o seguinte obanda é um serviço opt em escutando a rede fica escutando as transações que chegam crua entre Point não o banner ele é similar ao nó onde as uzerations são enviadas para o bander então ele é um RPC surver com RPC método sei lá como é que chama específicos definidos no naipe então tipo se você é um operador e

você tá vamos supor que você é o em fúria sei lá você já aceita RPC calls no seu nó e se você quiser aceitar userrations você tem que ligar um outro nó Entre aspa um outro software que seria o bundler Então você vai ter dois volta do 4337 era que não precisasse mudar o protocolo então você não precisa porque o ethereum não mudou nada só que agora você tem um só um um nó né Você tem um client diferente sim você tem um clight diferente que é um bannerização ela é como se fosse uma transação normal

do etéreo só que ela tem um formatinho específico aqui ó tipo [Aplausos] então ela vai ter um formato específico e E aí o banner Essas são os parâmetros dela aí o banner recebe essa userperation e o bander transforme ela em uma etern Action de uma chamada de um Smart contra ti então não é tipo um Jason vamos dizer assim exatamente [Música] você vai ter um outro e

tem uns parâmetros diferentes mesmo [Música] é que esses mesmos parâmetros eles também estão definidos deixando que ele recebeu of Chang Tipo assim seria essa vai ver vai ver mas só só para seria esse fluxo aqui ó que tipo essa essa

userrations vai ter os mesmos parâmetros que são esses daqui não todos na verdade o que o usuário envia não são todos são menos porque algumas dessas outras coisas elas são preenchidas pelo banner por exemplo o usuário não tem que se preocupar com esse prever fication então ele coloca mais parâmetros e depois ele envia para o enter Point E aí o Andre Point recebe aí completa que o usuário enviou E é exatamente para frente é tudo e esse manpool aqui seria aquele chamado que na verdade tá dentro do Banner isso

Exatamente é exatamente ele é um novo clipe né porque eu tô rodando dois eu tô com o nó que seria o get sei lá e exato e agora eu tô com banner tá com dois dois isso são duas portas a porta dele é 3.000 aqui e a do Noé 833 8545 já porque realmente isso não fica caro quando você lei ainda mais com esses campos eu achava que era o Bandeira e quando você fez lá o racatom do paymaster que banda que você usou já tinha Então

é o problema é que na época da rakaton a gente queria depunhar nas Champions que estavam patrocinando e nenhuma dos banders é tem sei lá comerciais tipo em furar o que me ou mesmo não tinham nessas Chains por exemplo que nós tinha não tinha não tinha na scroll sei lá da forma que você tá explicando eu não preciso que esses caras tenham porque eu vou fazer eu tenho que montar um bander depois isso não o que eu quero dizer que a gente não teve como usar um serviço pronto não deu eu não tive como subir como enviar aí os europeration para o infra porque o infra não é não enviaria

userrations para que nós tem então a gente teve que rodar local equivalente a cliente né o cliente é o GAP isso sim já tem essa já tem um cliente padrão de banda então então eu não eu até falei assim ah tem uma implementação padrão né o item infinitivo que é isso aqui eu desconheço outros banners mas em tese você poderia fazer um banner em Rust sei lá o quê é E aí fizeram pepscript

[Música] oficial da telefundation o primeiro banco [Música] e o servia Beleza então o bando ele meio que oficial e o serviço já começaram a se conectar nesse banco eu acho que eles rodam um banner do infinitiza o statup e Ele oferece para você uma porta e aí você não tem que rodar ele no seu ec2 Sei lá onde você envia para ele caso o piquenique conecta no banner do setup por exemplo [Música] Sim sim

e aí tem a crítica né também de que isso aumenta a centralização porque agora você tem vários provedores de rpcs você tem mais uma camada que seriam os provedores de banners e aí na medida que você tem menos provedores esses banners podem censurar e não não introduzir todas essa questão ele pode também fazer ele próprio é MV Tipo ele vai pegar vários também também é tipo tem um fato de que

você antes de enviar e os Operation Você assina a sua ilusão na sua UOL né E aí depois você envia para o banner só que então o banner ele não tem como modificar o seu a sua intenção né de tipo qual a transação que você quis incluir porque você assinou ela antes de enviar para o banner só que é possível que haja alguma falha sei lá no código do bander e enfim eu não sei exatamente Quais explodes que isso pode acontecer mas o banner ele é mais um ponto de ataque né Tipo mais um uma aumenta a superfície de ataque então

ele consegue me ver mas é tem muitas coisas inclusive se eu não souber alguma das coisas que a gente aprende juntos mas então agora que que a gente tem a gente tem o nome a gente subiu o banner agora a gente vai depois os contratos etc importantes para que depois a gente faça demos subindo as mais da cama Então agora eu vou subir uma outra um outro terminal Só para conseguir depunhar é então aqui eu entrei no diretório que é o que tem os contratos agora eu já vou mudar um pouquinho para o vs code só

para mostrar rapidão o que que são essas essas coisas assim então talvez talvez alguma pessoa já viram Mas vamos sair podem depunhar já E aí depois eu vejo tudo então dá para dar Primeiro dá uma olhada e depois Darwin depois menos menos Neto work deve senão ele vai tentar de apoiar na eu acho eu entrei no meu

Nossa não eu entrei no repostar errado o meu não funciona não agora agora vai Tá beleza então agora eu vou mostrar rapidão aqui o que que a gente deplou né então se vocês virem o oslos do console a gente depolhou um entrepoint a gente depois a gente depois e a gente depolhou um legacitouken master que é para exercício número 2 né No primeiro exercício a gente não vai usar mas dois dois componentes são dois contratos são meio que pré-requisitos para você interagir com a conta do traction o pay

Master não é pré-requisito o primeiro pré-requisito seria o interpoint que é o contrato onde o bander é o contrato que o bander executa então o bander executa uma ele faz uma chamada [Música] tem muitas desculpa galera boa noite boa noite Mares Boa noite é uma Ipu vai ser compartilhada ou Centralizado é só uma boa pergunta Teoricamente o bander poderia compartilhar também pull mas na implementação de referência ele não faz isso ele simplesmente tem um Hawai de várias userrations e ele vai executando esse Array por prioridade de guess

simular similar ao oficial é tradicional só que tipo não existe meio que uma uma Como que fala assim meio que um requisito de que ele compartilhar suas vidas Então ele pode ser centralizado Beleza então tá então o que que o enter Point faz então esse contrato gigante aqui tem um monte de coisa acontecendo vou mostrar só só interface Acho que fica mais simples Então

esse renda Ops é o é a função que o Banner executa então o banner vai pegar várias vezes que os usuários enviaram enviaram E aí ele vai executar pode falar acho que não alô alô alô beleza então então ele você o banner pega várias ordena elas né Um Rei e tem esse benefy aqui que é legal que seria como se fosse como se fosse o a coinbays né tipo enfim

quando você é um validador o bander ele tá recebendo éter por enviar essas transações então tipo isso aqui seria o endereço do meu banner tá ligado do meu da minha conta da minha do meu da minha conta que tá assinando essas transações beleza isso aqui seria para você pegar o resto para poder assinar Total tem umas várias questões se você simular as transações como eu falei porque também tem um problema de que os banners eles assim como eles são mais tipo eles eles têm eles são uma nova superfície de ataque

também existe uma preocupação na RT de que eles não sofram de nada of service então um usuário poderia enviar várias US operations que não seriam incluídas e isso é fazer com que o Banner é ele tipo consuma Muita muitos recursos né sei lá memória enfim e aí você vai crachá o banner do statu começa a enviar um monte de user para eles e essas suas que você tá tentando fazer elas nem vão ser incluídas porque elas são inválidas então também Existem algumas simulações que o Banner executa antes de tentar de fato enviar para mim para o oficial

Total Então umas coisas de simulação aí beleza e aí você e aí tem uma coisa interessante aqui que é o que eu falei da Factory que é o seguinte é tem aqui é o seguinte bom tem um cenário onde você é assim nessa nessa mudança de paradigma onde agora você tem a Você quer que os usuários estejam usando Smart controls para poder gerenciar os fundos porque dessa maneira eles conseguem deu enfim eu estou 15 eles conseguem ter lógicas adicionais por exemplo Multicine

etc e tal o que acontece você precisa de apoiar o contrato só que como é que você depõe o contrato se o contrato não tem dinheiro Então aí existe a Factory que é que ela é responsável pelo depósito do contrato né então tem aqui Um exemplo de Factory Mas isso também é só uma referência que é uma uma Factor muito simples quase que 100% baseado nozes Safe Então essa fé essa Factory é como se ela tivesse depunhando um gnosis Safe um por um uma Multicine um barra um porque porque elas executa qual arbitrários e ela é essa assim com ela obedece todas as

especificações que o enter Point espera então seria isso aqui ó Então essa sem placaunt ela tem o que ela tem um Wonder então é quando você deploia você você a Factory ela pode fazer o upgrade dessa conta ela tem nome se ela tem um entrepoint ela tem Executar a arbitrário Por que que você não depunha direto entre Point porque é existe deixa eu deixa eu pensar melhor aqui é porque na verdade o

banner o bander não o interpoint quando ele está executando as transações esse exemplo aqui ó tipo o fluxo seria o seguinte o bander ele chama o enter Point o enter Point chama a conta e a conta faz qualquer coisa por exemplo transferir o sdc então o banner chamou entre Point Point chamou a conta a conta chamou o contrato do sdctor de contas Factor por exemplo que o Messenger Messenger é o Acara e isso Exatamente é isso aí é isso aí então existe então então por

isso que são dois componentes importantes essenciais um seria o factory a Factor e ela cria contas ela cria Smart counts né e o enterpoint que é quem recebe as transações do ela recebe do banco então esses dois por isso que a gente depois [Música] então isso vai dentro do próprio dails Operation você tem um dos parâmetros que é o Sander que seria seria o Smart Control a Smart count né então a conta tipo assim é que às vezes

na nomenclatura Mas tipo esse acanto aqui seria o Sender Então você quando o banner envia para o enter Point uma e userratio um dos Campos do isration que é esse Sender ele vai ser a Smart count que pode não estar depleada então entre o pointv Ah tá de apoiado não então chama a Factor e depois você sabe você sabe Exatamente porque ele é determinístico porque ele usa o Crate então a Factory ela tem aqui Um que baseado no sol né que geralmente as bolas elas fazem isso crescente né só

para que nem o metames que você consiga criar zero um dois sei lá e aí ele dá esse ele veio o endereço baseado no padrão lá do creation então então Exatamente isso a gente vai ver na demo também quando chegar lá que tipo assim vai na Wallet mostra esse aqui é seu endereço não está deploiado Então a primeira coisa que você faz é fazer o Deploy Rone [Música] para por exemplo Digamos que eu fiz uma alteração só que vamos lá Digamos que eu tô comprando é só quero o preço aí eu coloquei lá comprar dois mil dólares só que o

presidente vai cair Então se executar essa transação vai ser uma coisa ruim para mim sim tipo tem uma proteção contra isso sim e também tem a proteção tipo o banner ficar muito tempo segurando a minha Operation e executar Então eu acho que essa é tão Essa é parecido aqui um pouco com a pergunta do papai que é com abstrato não sei se é exatamente mas tipo assim quão flexível E aí a resposta que ela é 100%, porque um dos parâmetros dela é o é o Caldeira então tipo assim É como se você tivesse eu acho que é isso aqui sim tipo É como se você passasse uma uma operação

100% arbitrária para conta e aí por exemplo nesse caso você no unishop Você tem o deadline Então você quando você vai criar seu userratio você em codaria nesse Caldeira o deadline do under demorar demais quando a sua Smart tá Calm chamar o Uni sopra ela não vai ela vai reverter ele poderia nem incluir ela é então deixa eu só ver que teve algumas perguntas que eu não vi também só tal com abstraizer ela mapeia operação de um

ou dá para fazer coisas é coisa flexíveis porque elas são totalmente arbitrárias as cinco a cada um tem a conta de cada cliente externo isso vou só mostrar aqui já já mostrei mais ou menos que a função do a pergunta meio do guia aqui tipo isso aqui seria a sua Smart Country que essa essa seria a smartphone de referência que o próprio infinito proveu tanto é que tá aqui dentro de samples mas ela é muito simples porque ela é só uma multi seguiu um para um ela é como se fosse um

gnose Safe um para um Então ela tem um Execute que simplesmente dá um Call em qualquer coisa passando qualquer coisa chamando qualquer coisa E aí né o excess control é que você só pode chamar essa função se você for Point então o interpoint é quem tá executando esse Qual arbitrário a partir daqui ó entre o ponte chamar Country chama ele sofre por exemplo Beleza então tá então [Música] oficialmente isso essa parte aqui então tá dentro ainda a mesma transação

e isso E aí a calça munições É isso aí para que se encaixa ó Beleza então aqui eu depois essas coisas aí agora vamos vamos para demo é na demo a gente vai subir ao Wallet né tipo E aí para isso tem que fazer uma uma questãozinha aqui que é eu tô usando Chrome aqui né então entra no trampolim dá um CD trampolim Essa é de referência também dá um yarn E aí depois você dá um I'm start

é esse Aliens start ele vai rodar Então esse esse start ele vai subir um web pack que vai que vai tipo transpirar o seu react e vai fazer uma cromat Station aí o que que você tem que fazer você tem que vir em Chrome dois pontos barra barra extensions aí você tem que dar load-up Packs Aqui

é aqui que você pega um vírus você tá fazendo a mesma coisa é que aqui pelo menos é o Pensador se você consegue ó aí você tem que você tem que você tem que carregar esse build aqui que o web pack transpirou no seu trampolim [Música]

bom transparente eu tive que fazer algumas modificações para corrigir um bug que tinha no infinitivo essa parte aqui já já é mais então beleza eu subi o trampolim aqui aí eu queria eu queria zerar tudo Então você fala de novo então [Risadas] Yan start aí depois você vai no Chrome dois pontos/xtentions

do seu do seu é isso que você vai ver você vai ver um trampolim isso aí OK seja download [Música] agora já temos alarmes ali depender ó beleza aí aqui que que isso vai que essa é uma extensão muito simples tipo e muito E então quando você começa o fluxo né tipo Eles realmente fizeram uma exceção

muito fluxo metamésticos Mas aí o x poderia ser revista e tal é uma fluxo totalmente parecido Então beleza aí você que dá um nome para sua E aí você dá um next next E aí você criou a sua na verdade você não criou nada ainda você é exatamente porque aquela questão né Você já sabe o endereço da sua da sua Country mas ela não tá depleada porque você não fez nada é mas esse aqui seria uma uma um Smart que foi que o endereço dele você sabe

por causa do Crate não e a e também tem uma questão que também eu acho que é muito pouco muito então é muito pouco explicada que é tipo assim como é que esse endereço foi gerado esse endereço foi geral tipo assim na verdade uma questão Muito pouco muito pouco falada como é que você assina as transações porque você tem que assinar o seu isorption para que o Banner não modifique ele e aí e que o Banner realmente faça o que você mandou ele fazer com as tradução então tem uma Prime aqui na sua extensão Então não é que a prova que morreu só que a

prova que ela tá abstraída a prova que ela só é usada para assinar então através da sua prévia aqui ela é gerado esse endereço então Tipo no caso imagina que a gente tá usando ali uma Wallet da sei lá enfim uma bola de trampolim o que atrapalha se eu não me engano é gerar uma prova que aleatória então todo mundo deveria ter endereços diferentes isso Então essa é que vai ser usada só para assinar transações e por esse motivo a nossa cinco vai ter endereços diferentes [Música] então agora a gente vai fazer agora a gente vai fazer o Deploy só que aí só

que aí vem a questão tipo também quer que é engraçada que é para você depunhar você tem que ter ou você tem que ter algum Pain Master subsidiando seu depoimento Então você precisa uma dessas duas opções Então a gente vai fazer essas duas Demons A primeira é com s e a segunda compermaster só porque o mestre seria o bônus agora que que a gente vai chegar para declarar no éter a gente vai para depunhar com éter a gente vai precisar de éter é na

nossa conta e é engraçado também porque a gente a gente tá enviando aqui é ter para essa para esse endereço sem que eles tenham sido de apoiado né que você pode enviar só para o endereço cuidado Então nesse caso aqui eu tô usando Cash só porque o online mas você poderia fazer um script também alguma coisa assim do fauna é só que tipo Quem já tem falando instalado isso aqui eu não sei só

isso é outro outro que eu tiro para você fazer no Red né Entra no redmi também no redmi você vai nessa parte aqui depois Se emplacar [Música] [Risadas]

seria se tá nesse depois acende não sei o quê [Música] para quem não tem quer fazer um liners aí para instalar esse Cash [Música] mandar dinheiro Isso exatamente

vai três dois um na minha chegou [Música] [Música] beleza aí se você rodou com sucesso teste no caso aqui eu peguei porque o hard reta ele ele tem contas já com 10 mil anos [Música] tipo tá escrito aqui your 5

esse primeiro dinheiro dele mandando para sua Marta Country [Música] tá tudo de uma vez [Música] a gente está chegando no hahaha moment aqui tá agora beleza então no fluxo número 1 você tem éter na sua 5 a count e agora você depõe ela então aqui eu vou clicar

Deploy o trampolim vai abrir uma extensão falar umas coisas vai pedir para eu conectar aí ele vai ele vai ter uma uma um fluxo onde ele te pede para você botar o pay Master no nosso caso a gente não tem isso também é uma questão de refletida né ser pensada porque às vezes o usuário nem sabe o que que é isso tipo talvez você pode simplesmente abstrair isso dele dá para você montar isso também automático Pode ser que o usuário clique nos botões e você já coloca tudo para o usuário enfim aí já não precisa disso aí beleza eu tô vou dar um send aqui a gente torce e vai ter um beleza aí agora agora tem o agora se eu

usa a conta também que é legal é o que a gente depois ela aí eu posso dizer agora eu posso executar qualquer tipo de transação Só que essa é o Wallet ela é muito simples ela só permite você enviar héter tipo assim mas numa aula de verdade você poderia fazer o qualquer coisa então aqui eu vou só enviar éter para qualquer endereço tipo eu vou pegar endereço sei lá tem uns endereços aqui vou mandar é mandar o endereço qualquer vou mandar zero com cinco eth aí ele também é ele também pede ele também pergunta se eu quero usar pay Master Mas a gente não tá usando nesse fluxo E aí eu dou um sangue e ele

aí vai [Música] não porque a ideia acho que o pessoal tá esperando que aí cada banda cada empresa vai permitir o seu eu acho que não tinha Eu testei uma vez Agora eu jurava que aquele pessoal que mostrou lá em Denver que foi todo aquele Auê eu vou achar o que o Banner eram porque também uma coisa que tá aparecendo aí eu posso fazer offline fica mais fácil mas também nada nada impede de ser online Como assim não

tinha que dizer porque toda é legal fazendo of chame mas ali perto do ter um banner Ok então mas é que tem uma Tem uma parte aqui que eu acabei É que na verdade eu acho que eu acho que talvez não dê tempo para passar parte a parte mais Uma das uma das de novo que são as configurações porque na verdade o banner é quem envia a transação para mim [Música] o bander ele envia a transação então

tipo Quem que tá assinando a transação tipo para enviar para o nó é o banner tipo assim o bando ele vai ter uma privatique dele do serviço do serviço isso exato ele tem uma parte que dele e ele tá assinando a sua user Operation e ele tá executando essa isration no contrato do interpoint Então quem tá fazendo meio que o papel do metamesk é o banner então por isso você tem que ter um componente de uma privatec of chain que vai enviar para o entre Point então isso fica meio Claro aqui também no banner com figues aqui ó tipo enfim fica mais ou menos claro que tipo

é o beneficiário é quem tá quem tá recebendo o pagamento por estar provém desse serviço e também fica claro aqui ó Tem uma parte aqui também que eu coloquei também tem aqui tipo aqui quando você o código do Banner aqui ó tem essa parte aqui ó Então eu acho que não vai dar tempo mas é que eu botei toda esse fluxo que a gente foi fazendo eu botei as partes importantes do código e tem essa parte aqui ó tipo que seria essa semble que seria tipo para você que o bander realmente enfim Envia para mim então

será essa aqui então tipo ele envia e disse então ele pega ele cria uma transação é tipo uma transação tradicional dotério exatamente o tio dessa transação é antipoint aí ele dá um sident trans Action com esse com esse Sider que seria ele no caso tá usando o iters aqui então a parte que do bander ela tá sei lá no sei lá

[Música] porque eu sou eterno eu chamei o account E aí eu acabo que vai executar mas aí quando chega lá na na verdade ela count não sim vai ser nessa parte aqui ó porque deixa eu mostrar eu acho que fica mais claro ali é como você falou eu até fiz um teste disso depois a gente tava conversando isso lá no grupo aí eu fui fazer um teste no Polo aí falei alguma outra algum lugar aqui que ele consegue fazer um rack não

sei se com usando não sei até o da Lei tinha aquele mais baixo nível e que ele faz para poder trocar uma senha eu acho que a questão é a seguinte tipo o banner deixou eu entrar aqui de novo que essa essa aqui então tipo assim o fluxo ele o usuário né ele entrou no depi ele mandou aí os Operation o bander ele assinou dele começa de Sender é ele exato começa dizendo a ele e aí não é interpoint fica claro essa distinção porque o renda ou

Ops é do enter Point é exatamente isso aí ele vai fazer o quê ele vai dar esse cute aqui beleza aí aí ó tem as questão que é o seguinte Total renda tem alguma coisa aqui exatamente essa parte aqui ó tipo então o enter Point nessa nessa parte ele vai chamar o Sander só que o Sender

é assim placa onde o Sander não é o Messenger Então essa coisa aqui tá fazendo essa parte do fluxo aqui ó que o enter Point executa eu entrepo e faz uma chamada para cá ontem Então esse é que eu acho que é uma libbin que é tá fazendo não então ali ele por enquanto não é não trocou tá vendo quem que é o tio é o sempre que vai ser o local Tá bom então vai ser o tio vai ser o

account sem valer mas aqui aqui tudo que ele vai fazer é ele vai executar ele vai executar qualquer coisa que foi passado né Tipo ele vai passar o qual deita para frente para o 5aconds aí quando chega no simplecar ele vai ele vai chamar esse esse aqui aí esse Call também passa a função para sempre para frente só que só que exatamente porque por exemplo o enter Point chamou fez um Call para cinco a count aí o message Sander Nesse contexto é o entrepoente só que aqui quando você

chama o Up dentro do contexto do unishop o Messenger porque tipo teve o enter Point chamou 5 a Counting chamou aí dentro do unishop o Messenger vai ser o vai ser o valeu valeu vou mandar depois o Docs e eu vou fazer um blog post também pra quem eu vou mandar no grupo depois valeu [Música] não assumiu o target como como fiz um Deploy separado só dele e aí eu

simio qual para chamando Sei lá o rc20 para fazer um transfer então tá bom então abastecer ele com sei lá sem descer sim aí eu tentei chamar fazer um outro contato para simular entre Point chamando cobra aí o rc25 sim ele revertia falando o endereço from né o Messenger é válido com o A30 porque ele não identificou onde então depois manda eu vou abrir no grupo lá eles poderia achar então aconteceu esse aqui estranhamente não mas eu acho que essa parte do enter Point eles ele tipo só só o interpoint

deveria executar o acaute é importante então mas só que veja o entreponte é ele tava então eu Simulator você tava se passando pela Interpol tal executar entendi entendi não então exatamente mas tipo assim na parte 2 a gente usaria Open Master e a gente pagaria o depois e a transferência

com token Só que eu acho que não vai dar tempo mas assim só para vou falar o que fazer mas eu vou falar como funcionaria no caso do pei Master né no caso do tem mestre é que tem enfim tem uma intro que eu acho que valeria a pena falar que é tipo como que o pei Master Como que o Mestre subsidia suas transações eu vou resumir vou resumir mas basicamente tem duas coisas que o mestre tem que fazer o paymester tem um steak e ele tem um depósito que é diferente o steak é como se fosse um steaking tipo é o dinheiro que você bota mas ele não é usado para pagar transações ele é usado só para um

sistema de reputação que tem dentro da CRC e o objetivo é que os paymasters não causam de nylon service nos bundlers então super master ele fala assim ah não prometo que eu vou pagar essa atração mas ele não paga o banner se ferra tipo porque a transação reverte e o banner gastou dinheiro na televisão revertendo então para o banner confiar no paymeter o Play Master tem que colocar um steak no entre Point E aí o banner confia baseado nisso E caso muitas transações rever tão do bem Master é os banners tem um código que tem um tem uma exponente a movie que começa a não enviar mais transações que usem então isso é um

motivo que pelo qual precisa do steak mas na verdade o bimestre ele paga pelas transações pelo depósito então o depósito ele deixa o depósito ele só tipo coloca lá numa variável de estado ali do enter Point isso aqui seria um é um sub é um subcontrato dentro Point então o mestre ele coloca ele ele envia essa ele envia você envia éter e essa seria a conta do Pay Master né então tipo no nosso caso aqui por exemplo eu tô usando um cast também para mandar um depósito para o meu

para o meu para o meu bem Master tá então eu preciso aí é que o meu bem Master Tem uma função depósito então eu executo meu pensamento ele faz o depósito E aí beleza então meu ps agora tem steak tem depósito e nesse caso eu fiz um trimestre que paga com tokens então aqui né a gente veria eu eu daria tokens para o meu enfim não vou fazer tudo de novo mas como seria né Tipo eu iria resetar o setup inteiro zerar o estado da blockchain o estado do local eu iria ter zero éter e eu iria ter um token um token do meu mestre

ser um rc20 E aí essa aqui então ele ele adiciona o steak tal tal e depois você consegue dar sim sim ah não calma steak não desculpa só o depósito o Stay que ele ele pega acender tem que chamar é isso então isso sim exatamente E aí o base tem Master né ele já implementa Essas

funções seria então essa aqui é do lado stake e tal então tem isso aí bom finalizar bom aí então eu o meu pemestra tá lá todo com setup feito e é legal assim quem tiver tempo em casa né Não façam isso e vejam como o que que Quais são os problemas que dá porque o fluxo começa a reverter o banner começa a rejeitar porque ele fala que o bem Master não tem steak E aí começa a dar um monte de erro então tipo assim isso aqui é como você o pré-requisito para o fluxo do bem Master funcionar e também é interessante pensar que tipo Pode ser que você esteja subsidiando transações via pay mestre e aí do nada

as transferência do usuário começam a dar não ir porque o mestre acabou o dinheiro que tinha lá por exemplo E aí bom pro usuário e aí vem onde eu indico o pay Master Então tem um campo né nessa Wallace que que é que vai dar certo não tinha aquele Campo lá onde fala tem Master and the Eita Ah boa verdade Ah tem esse campo aqui pei Master and

deita é que ele é tipo um seria meio que um Ibi em colding do endereço do Pay Master e do dado que o pei Master precisa para executar sua transação Pode ser que o paymeter tem uma lógica Mega Custom que ele não tá subsidiando então se ele não tiver subsidiana ele vai precisar de dados adicionais então sem corda isso também no meu caso como pamestre ele só subsidia né Tipo ele troca o peito ou quem pelo pelo mais simples de todos ele só tá hardcorado aqui né tipo a um token vale 100 até sei lá alguma coisa assim tipo tem rádio rodada

conversão e depois e quando valida ele ele não usa nada do que você tá enviando como extrair data mas foi mais complexo ele vai usar E aí vai dar certo então tipo aí você poderia depunhar sua conta sem ter nela tendo apenas pay tokens E você também poderia fazer um bem Master que nem tem peito nem nada ele simplesmente valida endereços que ele tá wik listado por exemplo o bem mestre ele pode ter um servidor onde você White lista por exemplo o seu contrato E aí se o endereço foi esse aqui por exemplo ele vai subsidiar minha transação então tipo

então você pode criar conta você pode criar contas novas e o bimestre é quem tá pagando por elas então desculpa aí gasta muito tempo mas essa essa vale a pena eu acho que depois olhar essas linhas porque são elas que mostram por exemplo Ah pô como é que o Banner como é que funciona esse negócio da mapu tem aqui Um Maple Manager que ele coloca no ar Ray Ah como é que funciona na questão do da questão do como é que é o Wallet envia para o banner aí tem aqui Um RPC client aí como é que você devolve essa essa resposta tipo eles também é parceiro uma resposta do interpoint e coloca no formato

também de você enfim criar as às vezes operations do na parte da UOL Então essas urls aqui são vale a pena agora essa parte do pagamento como fica a chave eu ia eu ia comentar a mesma coisa que o Henrique porque ele não resolve pelo menos essa Demo não resolve o problema que a gente tava falando apresentando a minha máquina foi para o queimou não resolve esse problema essa Demo não resolve né mas

Teoricamente você poderia fazer esse MPC E aí ao juntar essas desculpa na verdade não é essa questão porque você ainda Precisa de um de um designer para poder assinar as transações na Wallet o MPC resolve a questão das cinco acaute porque assim pô a calma no meu caso nesse caso é uma multi seguir um barra um que nem eu falei mas você poderia fazer com que e userrations assinadas por mais de um por diferentes Chaves também executassem com então uma cebola count onde tudo bem sou eu mas aí eu coloco umas outras duas três contas que eu possa exatamente que

na verdade assim essa seria a tarefa né mas assim essa tarefa ela existe a resposta dela que fizeram de verdade ao alguém fez isso tipo E aí tem tem uma no item hipnotizando é uma multigrisa é uma realidade que a gente conversou que ele tem alguns projetos na Globo que é justamente isso ele tem um problema de eu vou fazer aqui um evento eu não quero ficar imaginando e tal tudo bem eu vou criar uma conta

sendo um Smart contra mas eu preciso ela trocar o allner alguma coisa aí eu tenho que ter outras três que eu pudesse mas daí não vai fugir muito aquele esquema do pessoal que muita gente critica mas eu falo tá bom me fala hoje uma alternativa melhor que é ah o cara o amigos entram Então tá bom ela confia em vocês três quando tem alguma coisa você recupera minha conta ou eu vou fazendo um esquema Google Apple tal que se recuperar eu vou por lá era alguma coisa por ali mas tipo essa demo tá no próprio é um pé tem um próprio item infinitivo fez essa demo de que são

dois homens e aí realmente eles estendem assim por acaso e adicionam a possibilidade de se os dois assinarem você eu acho que sem segurança para do tipo assim Ah legal para não fazer alguém sei lá roubar precisa de duas assinatura mas eu acho que isso não é um modelo para recuperação [Música]

Então e o negócio lá do pesqui né já embutida não eu acho que isso é uma tarefa difícil eu acho que é uma tarefa boa já para todo mundo aqui é fazer isso na guerra e tipo passar pelos perrengues de verdade como é que ele eu não posso usar o fundo de uma conta Sem ela ter autorizado antes como é que funciona isso como é que foi Master aceita que vai usar os Fundos dele para poder

não exato tipo o bem mestre ele tem uma lógica de aprovar uma transação então por exemplo nesse pay mestre simples aqui que seria essa lógica que é o validate nesse caso aqui como esse pei mestre ele é um token né tipo assim se user tentou quem tá validado ele só dá um belos off então tipo assim se o usuário tem token e eu sei a conversão né que é que eu tava hardcodada conversão de um para 100 eu vou Bernardo a Elena ele transfere né é equivalente

ele ele tira token do usuário meio que tá abordando token do usuário e aí o enter Point vai pegar o éter que o pay Master depositou é só que então e seria um caso onde não é muito subsidiário você tá tipo em vez de pagar éter está pagando token aí tentei mestre cune Stop tem outros mais complicados mas no caso subsidiar você poderia por exemplo ter uma White list onde o dono do serviço Sei lá o dono da piquenique vai lá e coloca na whitelist E aí se o endereço do cara tá na OLX Eu já avalida eu já aprovo né eu retorno aqui trueration e aí o Where Point vai sacar o éter que o bem Master depositou [Música]

então gente valeu quem veio online A ideia como eu falei começar a tentar fazer isso com mais frequência começar a ter voltar aqui no Brasil a gente tem essa pegada mais colaborativa né de compartilhar mais conhecimento quem que quiser pensar nisso junto comigo me manda uma mensagem no privado a gente tá bolando um plano antigo Aí de ter uma Down de ter um token de retribuição para Tipo isso que o Antônio fez agora pois mais cedo que tem um incentivo nem que seja reputacional né para a galera que ajuda a proteção se ajuda compartilhando

conhecimento aí então é isso aí valeu e até a próxima