Contratos inteligentes de Solana - Programas de solana em rust e tipo | Serpent Academy | Skillshare

Velocidade de reprodução


1.0x


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

Contratos inteligentes de Solana - Programas de solana em rust e tipo

teacher avatar Serpent Academy, Passion for teaching and learning

Assista a este curso e milhares de outros

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

Assista a este curso e milhares de outros

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

Aulas neste curso

    • 1.

      Introdução

      1:40

    • 2.

      Introdução a contratos inteligentes em solana

      2:32

    • 3.

      Ciclo de vida de contratos inteligentes

      6:18

    • 4.

      Criar e implantar primeiro contrato inteligente

      9:41

    • 5.

      Chamar um contrato inteligente da Solana de um cliente

      10:17

    • 6.

      Criar contrato inteligente, enviar dados para contrato inteligente em Solana

      23:48

    • 7.

      Como serializar e Deserialize, salvar dados em conta com o programa Solana

      60:51

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

Gerado pela comunidade

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

79

Estudantes

--

Projeto

Sobre este curso

Como Contratos inteligentes no Solana Trabalhe como escrever seu primeiro Programa Solana e enviar dados serializados para você se comunicar armazenando dados na cadeia e ser capaz de ler com qualquer tipo de cliente: um jogo de vídeo e aplicativo, um navegador da web.

É recomendado para este curso que você conhece um pouco de oxidação.

Código para o curso:

https://github.com/serpentacademy/Basic-Template-Solana-Smart-Contract

https://github.com/serpentacademy/Send-Data-to-Solana-Smart-Contract

Conheça seu professor

Teacher Profile Image

Serpent Academy

Passion for teaching and learning

Professor

Hello, I love coding, science, art, creativity. We are in a great era a Renascence of knowledge is happening right now.

I also love sports and reading, when i was in high school I read poetry a lot, and for sports I was all about basketball and soccer. 

I will love to teach programming and art tutorials, have more than 10 years programming and in robotics.

Let's share this journey together!

 

Visualizar o perfil completo

Level: Intermediate

Nota do curso

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

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

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

Transcrições

1. Introdução: Bem-vindo a isso, o contrato Maori sem terra causa por que isso importa? Contrato como meu contrato é o programa MPS é armazenado na cadeia de blocos. Você não precisa de uma nova corrida mental e faz até mesmo o impulso para ambos os corpos. Capacitando o Fairplay. Lema Yslow. Faça a opção facilmente. transação custa menos de um centavo. Mais rápido que o Visa. E como ele é definitivamente mais rápido mesmo que 500 mil TPS, arcos reais, descentralização e startups. Boca. Chefe, ele era Bay Company era contextos de coração de fraqueza do usuário em tempo real, você vai fazer seu ecossistema, você está falando, não importa se você está construindo um videogame, um banco de aplicativos descentralizados. Portanto, empresa lambda ou solução de longo prazo para criar e alocar. O que estamos aprendendo neste curso? Então lambda é um slide mais complicado. Mas vou criar nosso primeiro contrato na Solana, dados invisíveis para contato asmático e armazenar esses dados em cadeia e fora da cadeia. Vamos aprender a serializar e desserializar dados, tanto fora da cadeia quanto do lado. Vamos aprender a transferir alma com um contrato inteligente. Bem-vindo a este curso. Estou muito feliz por tê-lo aqui. 2. Introdução para contratos inteligentes em solana: Ele programa em Solana, eles são equivalentes a contratos inteligentes em outras blockchains? E eles estão alimentando DeFi e jogos. Dow. Muito mais coisas. Instruções de processamento de programas, programas. Os programas são sem estado. Programas. Suportado em contas marcadas como executáveis. Os programas são. carregador Bpf é recomendado para escrever programas em pose bruta. Você pode usar o C plus plus e você pode usar ver o que Ross é mais fácil e seguro. Os programas de saúde têm uma única instrução de ponto de entrada. Então, quando você quer invocar um programa, os argumentos básicos são a ideia do programa. Você deseja chamar a matriz de contas, os dados de instrução. Programas de escrita. Angkor é uma solução poderosa construída no Ruby on Rails para escrever programas com contratos inteligentes. foco na segurança é construído sobre Salama. Como você escreve programas? O primeiro passo é escrever os programas em recomendação assada e testá-los no host local. Então você pode ir para definir ou testá-lo. E, finalmente, você pode ir à luz para programas de manutenção. invocação de programação é feita fazendo conexão RPC com a API do cluster atual. O cluster pode ser manutenção, não é? Host definido e local para testlet e definido, você pode solicitar isso lambda porque os programas saem em contas e contas pagam unidades de aluguel Alana. No início, você pode testar no host local. Você pode pedir algumas moedas de alguma Solana e você pode testar na rede de desenvolvedores e na rede de teste. E, finalmente, quando você tiver seu programa pronto para entrar em operação, você pode fazer um pouco de Solana e pagar o aluguel. Porque vamos ver as próximas contas. Como eles jogam um programa? Depois de estabelecer seu novo ambiente de cluster, você no terminal ou na linha de comando, você escreve a implantação do pronome Solana com o próton BIPAP. Você pode incluir seu gerente de pacotes de carga se você estiver em filas. 3. Ciclo de vida de contratos inteligentes para Solana: Lambda é o ciclo de vida do meu contrato. A comunicação entre a Terra e a própria Cadeia. O programa pode se comunicar com a rede de cilindros. Existem três maneiras pelo projeto e por um programa. Por exemplo, na rede Solana assada, onde o programa viverá para sempre. Segure isso. Com um cliente. Podemos enviar uma seção de pulso passando instruções para especificar qual programa nesta rede de alarme estamos executando, podemos algumas informações seção e consulta usa a API JSON RPC Upsilon com os métodos que a Solana aprovou, por exemplo, obtenha a contagem para. Um cliente. Pode se comunicar, pode ser qualquer coisa, pode ser a linha de comando, pode ser um pouco reduzido como a unidade de jogo Unreal Engine, o objetivo ou qualquer robô de terceiros pode ser qualquer coisa que o cliente, mas ele precisa para seguir as instruções. Para enviar a API RPC, correto? Formate o JSON com o sinal válido para algumas contas. Assim, podemos ter nossa resposta. Transações. As transações são compostas por assinaturas. A mensagem contém o endereço da conta Heather. A conta aborda fora das entidades que interagem. Por exemplo, pode ser sua conta. Agora que contas de seus amigos ou da nossa rede do aplicativo descentralizado. Você precisará passar matrizes e bloquear as instruções. Uma única instrução só pode chamar um programa. Os bytes de dados são passados em padrões passados. As instruções só podem apontar para um contrato ou programa inteligente. Passe. O programa pode usar esses dados para executar uma ação. As instruções são compostas por contas do AD do programa em beta. O ID do produto é um contrato inteligente que você está ligando. A conta é o subconjunto de contas de transação ou devemos passar? Isso? prova de história usa esses quatro. O tempo, a execução dos programas. Não há colisões. Os dados são uma matriz de bytes dos dados para executar ações. Aqui temos um exemplo do programa Solana Hello World é um carvão limpo e limpo. No TypeScript, temos uma instrução. Temos aqui os dados que enviamos para um sólido meus clusters para a API, para o blockchain. Precisamos dizer que o programa desserializará as informações. E então dissemos menos novamente para a resposta. Temos um aguardar enviar transação não confirmada. Aqui estamos passando uma chave pública. signatário é falso, certo? W é verdade porque estamos mudando o contador do helloworld, o número de vezes que o próton foi chamado na cadeia Solana contém chamado. Aqui temos o assado é o meu contrato que recebe a implementação de entrada de parâmetro 0, implementação ponto de entrada do programa que tem uma chave pública. O programa que é carregado na conta para dizer hello world. Os parâmetros serão retirados do exemplo solar Nick Hello World no GitHub. Programas, como dissemos, podem estar escrevendo em Ross e C plus plus e C recomendado para segurança, desempenho. Multithreading. Os aplicativos. Os aplicativos estão na próxima geração de aplicativos. E em vez de interagir com o banco de dados centralizado em um servidor, você interage com o blockchain e qualquer um pode chamar os programas de ambos. Se eles souberem usar os contratos inteligentes ambos. Às vezes você precisa de algum signatário. Somente downer a assinatura da ulna é necessária. O programa pode ser executado. Se você implantar um programa Selena. Vidas bonitas para sempre na cadeia de blocos. Coca-Cola pode usar contratos ou programas inteligentes. Qualquer pessoa sabe como se comunicar com programas enviando transações com as instruções, precisa ter as assinaturas. A base precisa saber como usar a API RPC de negação para se comunicar com o blockchain e também aprender a criar os contratos inteligentes. Ambos são importantes. Finalmente, vamos ver um exemplo. Você tem um videogame e seu back-end. Você envia a solicitação usando um sinal para o cliente que está pagando um pouco de uma estação base ou em um PC, há um call-to-action e ele pode assinar com o back-end para receber um NFT. Você precisa de uma assinatura da honra, esse indicador do videogame o cliente está pagando no PC. Finalmente, se o cliente aceitar pagar essa taxa pelo NFT, agora você pode comunicar o cliente diretamente à API RPC. E nós duas assinaturas. O usuário pode receber o NFT que tem muito valor. Um exemplo de implementação. 4. Crie e Create o primeiro contrato inteligente: Vamos criar um próton Solana básico, mas é apenas registro no console. E vamos invocar esse programa com essa CLI no TypeScript. Você pode usar um navegador da Web se você fizer um aplicativo de vídeo. No primeiro passo, falamos carga, nova biblioteca, principal, básica. Abrimos o Visual Studio. Eu recomendo que você instale a extensão para. Você pode ir para programas. Você pode procurar preferências de níquel. Extensão. Você pode procurar por nós. Será muito útil para a competição fria. Para fonte. Acredito neste código boilerplate. Vamos mover a primeira categoria para obter as dependências. Precisaremos aprender um programa. Ótima biblioteca de tipos. Nós categoria dominância. Esperamos até a categoria. Quer avançar rapidamente. As habilidades terminam. Agora vamos ao nosso programa. Ok, então vamos escrever o programa que vamos usar do programa Salina. Isso é ótimo, queremos usar uma contagem para. Vamos usar o ponto de entrada para esses requisitos para Rodin. O ponto de entrada. É aí que escrevemos o programa. Além disso, a mensagem, ou podemos causar um baixo no ambiente no cluster. A chave pública para o conhecimento. Agora vamos criar uma instrução de processamento de ponto de entrada. Negligenciamos a função não processando instruções. Passamos o primeiro parâmetro do programa. Referência à conta pública. Isso é um conselheiro de dia inteiro? Correto. Talvez possamos algumas contas que podemos dizer console de fim de semana dos Balcãs. Acertar a contagem para que passamos na conta está certo durante todo o fim de semana se você a vendeu para leitura. Finalmente, o buffer de instruções . Finalmente, escrevemos o programa. Deixe-me ver. Onde está meu contrato? Bronze. Por exemplo, podemos, finalmente, no final dizemos o programa, vamos programar. Ivy, número de contas. Mas estamos passando dados de distorção. Primeiro obtemos o número de contas de prótons. Link de contas porque forma de contas do Papai Noel. Finalmente, dados. Agora, vamos criar um cilindro. Podemos implantar com um novo meio. Escrevemos lambda nu. Com a força. Nós inserimos um pouco 39, senha. Veja que temos o capital para obter a chave. Chegamos lá com base na cópia privada que recebemos. Então, lemme. Ok, então aqui está nosso guardião que estamos chegando para o terminal. Copiamos, replicamos. Agora podemos equilibrar esse lema. E 0 do nosso guardião de cálculos biliares pediu r. Nós pegamos algum envelope e então podemos ver as mitocôndrias. Podemos implantar para as redes de cama. Podemos ver nosso determinante de que nossa URN RPC atual. Definitivamente. Se quiséssemos mudar, precisamos escrever o conjunto de configuração lambda com a pasta URL plana. Podemos mudar o domínio dele. Se você estiver disposto para ambos. Estamos usando o DevNet. Então é assim que você define o URL no programa BPF. Oposto ao avanço rápido. Impressionante, temos nosso contrato e reconstruímos para o grupo branco. Podemos implantar. Precisamos copiar essas linhas. Ser implantado o programa. Ok, ótimo, então o programa é empregado. Temos ID do programa. Então, agora vamos construir o cliente. Podemos interagir com o contrato inteligente invocando o programa. 5. Ligue para um contrato inteligente de Solana de um cliente: Certo, ótimo, podemos implantar nosso programa. Agora vamos vê-lo novamente para que possamos obter, ok, então agora vamos criar o cliente. Trabalhe qualquer coisa que eu fiz três CLI movendo-se para a esquerda, três minutos MPA. Os gerenciadores de pacotes, para que possamos estilizar o aprendiz de viagem na web. Colocamos tudo como padrão. Nós MPM. Ao instalar protuberâncias. E vou avançar rapidamente. Passamos para a pasta CLI e criamos o novo arquivo que invocará o programa. Nós já estilizamos MPM estilo para que possamos espaço com um terminal, podemos florescer em arquivo absoluto. Vou avançar rapidamente. Perfeito. Agora vamos começar a trabalhar o programa. Primeiro importamos tudo. Em seguida, criamos uma conexão com uma constante é igual a nova API de cluster. Estamos na cama. Você pode mudar para principalmente a função Beta. Vamos chamar o programa, receberíamos primeiro uma constante. Para a chave privada. A partir daqui você coloca a chave privada para que possamos obtê-la pela série lambda. Este empreendimento com qualquer pessoa porque no próximo caso, bem em seguida, vamos criar a tarefa. Fui assinar a transação. A alma, o próton pode ser chamado de signatário. Mantenha a chave secreta deles. Com a chave. O programa. Isso está ciente. O programa vai ligar para ligar o nosso permanentemente. Perfeito. Agora vamos limpá-lo. E eu seção, seção é igual a nova ação coletiva. Agora, podemos usá-lo para adicionar métodos instrucionais. seção pode ter várias instruções. Então, por exemplo, aqui, temos uma nova árvore. Na instrução da seção, passamos as chaves. Quais contas estamos passando? Uma matriz vazia? Sem contas. Também passamos campos de doutrina. Programador, você também está passando dados. Estamos passando buffer de dados vazios. Estamos localizados 0. Aqui. Podemos esperar. Perfeito. Finalmente, estamos aguardando a confirmação. Ok, então temos três seções de conexão transexual confirmada. Poderia ser vários signatários. Em seguida, o sinal em expansão para o nosso registro do nosso console. Finalmente, estamos chamando a função principal. Agora. Podemos executar com o índice MDX. Também. Você quer criar alguns logs. Você pode fazer isso usando esses Solana. Pegamos o URL, definitivamente. Estamos abrindo um WebSocket. Estamos esperando. Temos um sinal. Vamos correr novamente. Você pode ver essa oficina e abrir até tarde. Você pode ver que este é um gerenciamento de transações 44. Os períodos do parâmetro. Passamos 0 contagens ou presentes. E a instrução é uma matriz vazia. Você verá que 44 sigma2, 44. Perfeito. Você criou seu primeiro como contrato inteligente. Você tem com um cliente fora da cadeia. Agora vamos passar. Alguns dados. Vive para sempre na cadeia de blocos e podemos ver as luzes e este ano, obrigado criar poderosos, são contextos importantes. 6. Envie dados para o contrato inteligente no Solana: Certo, então seja bem-vindo. Estamos construindo como cliente e esse contrato que recebe dados de um cliente. Vamos criar uma biblioteca de ML. Vamos criar um projeto mecânico. Vamos enviar o programa da OTAN. Agora. Vamos abrir. Sim, noto. Agora precisamos instalar as dependências que estamos usando o programa lambda. Siga também a biblioteca. Ótima biblioteca de tipos. Perfeito. Agora podemos construir um terminal. Perfeito, então a construção foi feita com sucesso. Agora vamos para a pasta de origem. Vá para executar um programa chamado Les, exclua este código boilerplate. A menos que você comece usando esta biblioteca de programas Helena ou ótimo. Estamos usando a contabilidade do objeto para as contas que estamos passando. Nesse caso, estamos passando uma matriz vazia porque só queremos passar alguns dados, algum número. Também estamos usando o ponto de entrada. Também para o ponto de entrada em que usar o progresso escreveria todo o código que executa as operações no contrato inteligente. Também estamos usando a mensagem para registro no console, usando a chave pública para realmente passar o ID do produto. Essa é a única coisa que estamos usando neste programa. Nós fechamos. Agora vamos definir o ponto de entrada. Estamos chamando estrutura de processamento de funções. Mas, na verdade, processamos as instruções. Converta os dados de dados decodificados por bytes. Definimos a instrução de processamento da função. Passamos como programa de argumentos AD. Há um objeto da chave pública, referência à chave pública. Em seguida, passamos a conta como uma matriz de objetos de informações de conta. Finalmente, os dados da minha instituição serão nossa referência a uma matriz no ano de oito bits. Em seguida, escrevemos o resultado do programa. Esse é todo o código que executará o contrato. Suportes angulares de fechamento. Primeiro declaramos. Também estamos encontrando uma pista com a chave, o remanente. Asa. Backdoor. Esses dois dados que queremos dividir. Primeiro. Vamos jogar também. Então, para obter o valor que estamos passando, estamos declarando um valor variável do tipo na assinatura de 64 bits. Usamos o remanente. Remanente. Estamos recebendo de 0 a não inclusivos os oito elementos da matriz. Então estamos realizando uma fatia. Há luz para mapear esses dados, mapeá-los para um número inteiro 64 de Little Endian. Estamos acordados, ou se eles estivessem acordados, foi bem sucedido. Definimos o padrão. Perfeito. Mensagem de substantivo. Esses são registros do console. O valor. Infelizmente. Perfeito Chegamos com, estou terminando a chamada para o contrato inteligente. Passamos alguns dados e temos o codificado de Little Indians. Use um inteiro de 64 bits. Agora é hora de implantar o programa e criar o cliente que pode chamar. Este é meu contrato. Portanto, obtemos o diretório para a CLI para o cliente mudaria para o diretório do cliente. E nós npm, precisamos do gerenciador de pacotes. Definimos tudo como padrão. Vamos, nós npm instalamos as dependências. Estamos usando o trabalho lambda três COMO esperamos até um de nós avançar. Perfeito. Agora, vamos instalar também. Para d não é um roteiro. Não. Perfeito. Agora vamos npm instalar o grande número. Há uma biblioteca de scripts para codificação e decodificação. Cep ser numerado OJS. Agora vamos criar nosso ponto de índice ds, nosso arquivo TypeScript que comunicará uma chamada, a grade do programa, a conexão com o cluster. Na verdade, estou em massa e envio alguns dados. Perfeito. Agora primeiro, vamos importar nossa biblioteca Solana. Próxima lição. Exigir constante, a biblioteca de números grandes. Exigir. Em seguida. Vamos criar a conexão como uma constante usando a classe de conexão. Escovar o URL da API do cluster. Definitivo, mas você também pode usar minuto se você estiver no código de produção. Ótimo. Não vamos criar a função da máquina. Principal. Quero escrever todo o código. Primeiro, vamos definir a chave. O macaco está fazendo um cursor. Crie a ONU, iterar a partir de nossa chave privada é uma matriz de números inteiros. Como obtemos nossa chave privada? Lambda nu? Podemos criar um novo, um novo par de chaves. Precisamos forçar. Esta é uma maneira de conseguir um goleiro. Você entra em um fósforo. Você obtém a raiz do seu par de chaves. Nesse caso, já criamos um anteriormente e ele já está no get confortável. Git config, config, get. Podemos obter todos os padrões. Nós nos aprofundamos e obtemos uma cópia para obter a matriz real de números inteiros. Esta é uma área de números inteiros. Copiamos e colamos na taxa de chave de inteiros de oito bits. Atribuidor, jogamos através de um truque da web mais fundo. Trabalhei três, mantenha-a longe da chave secreta. Nós passamos. Em seguida, estamos definindo o filme. Então, para obter os parâmetros, precisamos realmente implantar o programa. Precisamos voltar. Vamos definir esses parâmetros como chave pública de três pontos da Web. Chave pública. Passamos uma string, string como construtor, hash ela próton do fluxo. Então, precisamos voltar. Verificamos nosso saldo. Temos um epsilon tão lemme que você os pede mais tarde. A corda com a Nana, o número de Solana que você quer seu indefinido. Conhecemos o WACC e faremos o BPF. Agora temos a string de ID do problema. Agora. Temos a chave pública para o parâmetro. Agora vamos criar os dados que vamos enviar. Com dados constantes. Usa um buffer de tipo. Oferecemos de. Usamos o uint8. Fora grande número. Vamos fazer uma pausa, por exemplo, no número três, estamos usando os índios. Perfeito. Agora vamos criar uma transação. Transação. A nova seção. Então, qual seção tem várias instruções? Estamos apenas passando quais instruções para essas transações. Isso é invocar o programa enviando os dados. Temos as instruções de transação. A instrução contém somente as contas. Estamos passando as contas que podem ser creditadas ou debitadas. Nesse caso, estamos enviando apenas uma matriz vazia do objeto de transação, exigimos o nome da conta das chaves e passamos uma matriz vazia, então precisamos da programabilidade. Finalmente, os dados como um buffer. Estamos passando, estamos passando esses oito array. Finalmente, vamos criar uma espera porque ela pode mais de 1 segundo, alguns segundos. Usamos uma transação confirmada de envio da Web três. Aqui está quando pedimos a carteira. Ou, neste caso, já temos a tarefa porque você apenas no TypeScript sem navegador. Agora reagimos. Aqui, precisamos passar a conexão da transação e a matriz de signatários pode ser mais de um signatário. Assim, você pode debitar mais de um signatário ou chave privada e par de chaves públicas. Em seguida, vamos registrar o sinal do console para obter essa função de seta. Dizemos que são todas as funções que queremos consolar o log. Perfeito. Agora vamos chamar a função principal. Agora, no soquete da web do terminal para que possamos ver os logs dos programas. Então, precisamos do ID do problema. Lana registra programaticamente. Com um sinalizador de URL. Definitivo. Recebemos nosso soquete para que possamos ler todo o registro do console dos contratos inteligentes assados implantados na cadeia. Agora chamamos o cliente com MPI X d é nulo, e nosso arquivo. Aqui temos dois terminais. O WebSocket que imprimirá todo o contrato inteligente no terminal principal. Estou no código de abuso terminal. Estamos imprimindo o sigma dois. Como você pode ver. Pode levar alguns segundos porque Q vimos uma ferramenta e temos o valor número três partes, é sempre ótimo. Isso também aparecerá no, como você vê se eu vir também o terminal local deles. Ótimo. Agora vamos correr novamente. Websocket pode fechar porque só abre por menos de um minuto. Você pode executar novamente, houve um pouco como você pode ver, recebemos o número três na transação. Correndo. Mais uma vez. Como você pode ver, temos o valor 321 e escrevemos o código, e também temos a ferramenta de assinatura 44, e também em nossa nova folha permanente local 44. Então, tudo é perfeito. 7. Serialização e desserialização, poupe dados em conta com o Programa Solana: Neste tutorial, queríamos aprender a serializar e desserializar dados. Então CUTLAS significa criar um fluxo de bytes. Podemos enviá-lo. Em seguida, recebemos o fluxo de bytes, desserializamos e processamos, fazemos alterações no objeto. E então utilizamos novamente para salvar essas informações em um programa Solana. Estamos usando Birch board nos permite, por exemplo, ter um objeto JSON e podemos ver os aliados no cliente JavaScript e, em seguida, emergir em nosso contrato inteligente. Podemos desserializar em uma estrutura. Podemos usar todos os dados, fazer as alterações. Então podemos ver novamente e salvá-lo no contrato inteligente. Usar Birch board significa representação de objetos binários, licença CDL para criar hash em projetos críticos de segurança que 30 casos, consistência, segurança e velocidade. Então, certamente, um grande aliado da Solana porque ela está focada em segurança e velocidade. E como dizemos, segurança e consistência. O que é serialização e desserialização? A civilização é um mecanismo de conversão de um objeto em um fluxo de bytes. Para isso, usamos nosso buffer. Temos um objeto convertido em, por exemplo, uma matriz. Nos ouvidos de oito bits. personalização é um processo de conversão do fluxo de bytes em um objeto regulado que não era unido pelo fluxo de bytes. Vamos começar. Ok, então no primeiro passo, queremos criar a categoria, a categoria com a biblioteca plana. Então abrimos um estúdio. Você abre a pasta. O primeiro passo será instalar dependências. Primeiro, a categoria, as dependências das regras. E também estamos criando o CLA do diretório do cliente terminal . No Gadigal. Estamos usando para esses roxos, este programa, o racional, você pode obter o mais recente. Agora estamos usando 1.11.2. Então também estamos usando as instruções da Bosch. 0,91. Para biblioteca, biblioteca. Nós o salvamos. Nós executamos a categoria. Essas são as dependências que precisamos para criar o contrato inteligente. Insulina. Vou avançar rapidamente porque vai demorar algum tempo. Certo, perfeito. Então, criamos uma pasta para o cliente entrar em uma CLI. Para a recriação, nós npm, precisamos criar o pacote JSON, tudo como padrão. Você quer entrar. Aqui, como você pode ver, empacote Jason. Precisamos criar dependências que estamos usando para este projeto. Este? Sim. Isso é para se comunicar com a API asiática ou PCA. Podemos enviar transações, podemos consultar esses dados em uma conta. Também precisamos de Ferroni. Estamos criando um TypeScript. A versão quatro será então eles estão reduzindo os tipos, nulos. Manhã executando TypeScript. Reduzir o comprimento é um. Enquanto tampão de lavagem. Para esses seis. Também estamos usando isso. Aprenderemos esse layout de buffer. Com isso, vamos ajudar no lado do cliente a criar o buffer e os dados serializados. Verdadeiro no fim de semana, envie um código de subbyte. Para este propósito, solução 3. Da mesma forma, ao usar mais, vamos usar o mais recente. Também para mim TypeScript, estamos usando. O mais recente a embarcar é para serializar e desserializar dados. Essas placas no lado do cliente, no TypeScript, você pode usar o aplicativo direto. Qualquer aplicativo que use TypeScript pode ser um navegador da Web, pode ser apenas um servidor. Finalmente, precisamos criar esses pacotes npm, então executamos o npm install. Eles vão parar ou as dependências de clientes mais antigas do TypeScript. Vou avançar rapidamente porque vai demorar algum tempo. Começamos importando dependências que estamos usando. Estamos usando o quadro. E o tabuleiro. O que mais? Estamos usando o programa lamina. Estamos usando as informações da conta. Estamos usando a próxima conta, informações da conta. Também usando do programa Solana, o ponto de entrada. Do ponto de entrada. Próton. Também estamos usando a mensagem para registro de console no salão de cadeia longa um cluster. E estamos usando o programa. Ao usar o programa, você está vendo coma. E essas são as dependências que estamos usando. Agora, o próximo passo, porta leste, defina o tipo de história Estate quando contas. Vamos escrever a notação. Isso é conhecido como traços. Assim, podemos herdar algumas das funcionalidades. Você verá no final desse objetivo que vamos usar, esta área está. Nesse caso, estamos certos. Estamos criando como público. Estamos ligando para nova conta. Estamos tendo apenas um membro. Conta eles são do tipo 32. Perfeito. Agora vamos criar o ponto de entrada para a função de instrução de processamento do programa. Agora vamos criar processamento de função pública parâmetros de instrução de processamento de função pública. Estamos usando aqui. Referência ao tipo. Estamos passando as contas MLF, referência a outra matriz de informações da conta. Finalmente, estamos passando dados de produção. Mas é uma referência a uma matriz de números inteiros de 8 bits. Perfeito. Nós o salvamos. No final. Precisamos criar a raiz dos programas. Escrevemos todo o nosso código e, no final, usamos fóton. Certo? Vamos escrever aqui. O primeiro passo é obter a conta. Assim, podemos ler a taxa da conta iniciada. Lembre-se de que as contas podem manter o saldo. Bumpkins e Beta. A violência é conhecida como saldo Solana ou você pode conter um token, um NFT, por exemplo. Vamos escrever o terno do parâmetro. O primeiro passo é criar um éter. Net. Contas são iguais a referência, referência às contas, mas obtêm a primeira conta. Sua conta. Em seguida, é igual a conta de contagem. Nós economizamos. Precisamos devolver uma promessa. Se você quiser obter a segunda conta. Se você vier, você está passando várias contas, você pode ter uma contagem para escrever essas duas. Momento, só temos uma conta. Passando. No próximo passo, temos a conta. Agora, vamos começar a decodificar as instruções que passamos. Primeiro trabalhamos. Você pode ver aqui nesses dois, temos trabalhando com isso com contas. Agora vamos processar os dados da instituição. Podemos registrar o código no console. Vamos começar a ligar. O primeiro passo. Podemos criar uma variável, podemos chamá-la de dados, recebê-la. Que estamos recebendo uma codificação, um CDL. Eu disse dados do cliente mais antigo. Precisamos primeiro elevação do DCD. Recebemos com a conta estimativa as linhas CDR. Executando esses metais a partir dos dados das instruções. Nós mapeamos. Isso é para evitar dados e lidamos com o erro. Escrevemos a mensagem se houver um estreito, largo, por exemplo, apenas. Na verdade. Finalmente, escrevemos instruções e dados inválidos do programa . Agora, usamos bromo. Agora, se isso não ler o meu estreito, podemos consolar o objeto de log que ele não é. Está tudo bem aqui. Agora, vamos executar uma verificação de segurança. Já trabalhamos com os dados. E com as contas. Nós recebemos a conta. No final do programa, vamos usá-lo. E agora vamos trabalhar com o próton. Talvez. Vamos executar uma verificação de segurança porque você faz o download da conta. A maioria também está no ID do produto. Portanto, somente você pode modificar os dados. Imagine que você coloca isso publicamente e qualquer pessoa pode modificar os dados. Não será seguro para o seu projeto. Executando aqui, verificação de segurança. Antes de escrevermos qualquer coisa, precisamos escrever as verificações de segurança. Se o proprietário da conta, Ele não é igual ao programa. Vamos devolver o programa, terminado. Meu contrato. Nós não estreitamos. Será aprovado em tipo de metal em forma quadrática. Certo. Perfeito. Se tudo estiver bem. Se você é o proprietário, você envia a conta e a conta que Cal este contrato inteligente também é o proprietário do contrato. Agora vamos incrementar esse número total de vezes. Ao adicionar o primeiro CELAC, os dados da conta. Normalmente, temos a licença CDL, os dados, recebemos. Bem, agora precisamos desserializar com esses mesmos métodos, ambos os dados da conta. Vamos fazer isso. Vamos contabilizar brevemente. Também usamos esses metais que eu, escravos de agricultores. Usamos a contagem, a referência à conta. interrogação. Tudo é perfeito. Perfeito. Precisamos aumentar o contador aqui, desserializar os dados. Agora, usamos essa conta. Vamos puxar o valor equivalente que a casa receptora. Queremos mudar o contador. O balcão. Vamos adicionar o receptor. Conte que estamos adicionando. Finalmente, precisamos ver atrasos. Dizemos, precisamos mudar esses dois mutáveis. Podemos mudar. Finalmente, precisamos ver a vida deles. Mais uma vez, debate que escrevemos aqui. Atrasos na conta. Podemos usar isso, você percebe, porque estamos usando placas como você vê aqui, estamos usando a conta circulante. Ambos estavam usando a herança desses traços da escravidão. Porque, como você sabe, o grosseiro não é uma programação orientada a objetos, mas usa características para fazer esse tipo de coisas com anotações. Script, isso lembrará protocolos. Por exemplo, vemos os piolhos e usamos esse objetivo, a conta. Moral. Perfeito. Finalmente, podemos esse registro de console. Podemos escrevê-los. Passamos a conta por escrito. Ótimo. Portanto, eles podem contratar TLAS TBL AC e BC em dados. Agora prontos, precisamos implantar este contrato. Então vamos para o terminal. Temos um problema com eles, marco Gloucester com o DevNet. Estamos implantando na rede de testes que está operacional agora porque muitas pessoas ligando para Solana com ótimo. Há muitos desenvolvedores. Munoz. Voltamos ao nosso terminal e precisamos mudá-los. Para mudar, você cresce Solana, entra em conflito com o URL do sinalizador e define o teste. Agora você está se comunicando com o RPC, não é? Você verifica você para Lana, equilíbrio, intestinal, você pode pedir alguns nós temos algum Solana, você pode Solana solana solar um, por exemplo. Temos um. Finalmente, executamos a visualização de categoria BPF para compilar o programa. Podemos enviá-lo para eles. Implantado no Gloucester. Gloucester. Perfeito. Então, para implantar cópias , queremos obter um produto. Vamos verificar o parâmetro V em um explorador de blocos ele. Finalmente, você copia seu parâmetro. Você explorará um dócil e aquele explorador de blocos azuis. Você precisa mudá-los. Não é? Não é? Um pouco lento porque há muitas pessoas fazendo programas agora em Solana e em todo o mundo. Você pode ver que você escreveu aqui lemme, lemme. Você pode ver que muitas pessoas também acabaram por alguém nesses parâmetros baseados em web socket. Aqui você pode ver o endereço do programa. A violência é executável. O peso deste lindo há conta também o proprietário da conta que eles têm por sola. Vai ver 4.1. Agora que implantamos nosso programa, queremos trabalhar no lado do cliente. Passamos para a pasta do cliente. Agora vamos criar o cliente. Então, criamos a pasta para a CLI para o cliente. Fomos criar aqui um novo arquivo, grupo de pipas de livros de índice. Temos o arquivo. Queremos copiar. A primeira coisa é importar as dependências. Estamos usando a placa. Também estamos importando web três da Solana. Ao passo que importar os termos da camada de buffer dilema. Também somos 14 buffer. Melhor efeito. Agora, vamos definir sua conta de chave pública onde vamos vamos ser uma web. Dot vazado. Perfeito. Agora vamos criar uma classe que armazenará o estado da conta DayGreeting. Criamos o vidro, renomeamos. Conte. O que vamos cobrir conta lá, será inicializá-lo como 0. Construtor com o contador AS de campos. Número é igual a dois. Campos são campos. Então nós definimos esses contadores. Perfeito. Agora vamos definir o esquema que ele o usa para serialização e desserialização. Então, vamos colocar aqui, escrevemos como quimio. quimio é igual a nova, localizando-as. Aqui. Conta de leitura plus. Usando o tipo é que estamos usando com o contador de campos. Assinatura 32. Nós fechamos isso. Perfeito. Agora vamos obter o tamanho da saudação. Onde você vê os CLAs. Clas torna compatível. Esses objetos, tanto em JavaScript quanto em absorvidos, neste caso com TypeScript. Então, usamos, queremos obter o tamanho desses CLAS, um mapa de objetos porque queremos enviar um pouco de Solana. Não compramos, não pagamos aluguel e ficamos para sempre no cluster de destino. Escrevemos const igual a atrasos c. Esquema Daygreeting. Criamos uma nova e uma nova instância da classe de conta batendo Perfect vírgula. Então, obtemos o comprimento. Com essa programação. Com essa utilização, podemos obter tamanho negativo da coisa. Podemos chegar mais tarde, passamos o tamanho para que possamos calcular o número de Lamport que precisamos estar isentos de aluguel. A próxima coisa vai criar uma conexão. Então, vamos criar uma conexão. Como eu disse, estamos usando, lá, não é? Por causa da evidência não está funcionando agora. Já se foi. Conexão, uma nova conexão. Cluster de livros. O teste não porque as divindades não funcionem agora. Muitas pessoas são parâmetros sempre ótimos. Tom isso. Na próxima semana podemos assumir a função. Criaremos uma função assíncrona main. Aqui. Vamos criar isso igual a de. E precisamos aqui, estamos recebendo a chave. Então, precisamos de nossa matriz de inteiro de oito bits. Então, para obter esse d mu, você precisa escrever o sinalizador de força. Funciona para a Lana. Com o plano de força. Eu já tenho um, então vou fazer Solana. Aqui eu tenho meu par de chaves, que é o Apache CLI. Cli. Você pode obter isso vai me levar a obter esses números, esses exemplares. Em seguida, o próximo passo é criar um buffer. Então, vamos usar esse layout de buffer. Isso tudo é uma dependência de aplicativo, ex-alunos de getaways para que possamos interagir e podemos usar JavaScript para criar um buffer, criar o código de bytes e enviar esse bytecode para todos nós e contrato de asma. E podemos desserializar dados e, em seguida, executar as operações e o DTLS novamente para salvá-los. Portanto, estamos criando um layout igual a qual layout de buffer. O tipo, struct. Mais cheio. Atribuição 32. Eles são perfeitos. Então, agora vamos deixar dados. Buffer. Estamos, com o buffer. Estamos alocando o layout. Perfeito. Finalmente, atrasaremos os atrasos. Ou no frio, eles são contados. Podemos dizer, por exemplo, um valor três. Dados. Perfeito. Agora temos nosso amortecedor. Agora vamos criar o atribuidor porque precisamos de uma conta, essa chave precisa criar um signatário que seja um guardião. Podemos pagar pelo custo da transação pelo preço de invocar o programa e criar a conta para armazenar os dados. Vamos ser um designer. Então nós escrevemos, vamos chamá-lo de signatário. Do tipo três pontos, mantenha-se nu. Nu. Agora, estamos recebendo da chave secreta, chave pública. Agora temos o centro. Agora vamos criar um poliqueta com um permanentemente temos o parâmetro na parte superior. Aqui. Esse programa constante. O tipo, Web três pontos, cria uma nova chave. O programa talvez. Perfeito. Então agora temos uma chave pública. O permanentemente. Agora, na primeira vez que chamamos o programa, precisamos criar um salvo. Para criar a primeira coisa que criamos a conta que estamos criando. Então você pode colocar qualquer coisa. O que deve ser único. Para o desvio de elite da segurança do salão. Tópico de armazenamento em cache. Criamos a conta com a semente. Passamos a chave pública do signatário, este IV, que pode ser qualquer texto. Textos sobre o programa com o próximo passo são declarar, deixar isso igual a 0 e, em seguida, obter o poste para obter a exceção de aluguel. Certo? Placa fixa é igual a esperar. Usamos uma conexão. Exceção de saldo mínimo Passamos o king size grego. Perfeito. Perfeito. Em seguida, vamos criar a transação. Estamos passando duas instruções. A primeira instrução para criar essas contas e transferir as portas do Lamp, que ela permaneça para sempre na segunda transação, vamos usá-la para invocar o programa. Então, vamos avaliar a primeira, a primeira transação. Então, primeiro vamos definir a transação. Então, vamos criar uma seção. Vamos chamá-lo de transação. Para este projeto, estamos criando uma nova web de três pontos. Perfeito. Concordamos com essa transação. Agora, menos consumo. Estamos usando um programa de sistema web. Porque o problema do sistema é aquele que criou a conta. Cria a conta com barato. Passar um objeto de má chave é a atribuição. Para base totalmente chave. A chave pública. Então, essas reuniões do IEP. Perfeito. Em seguida, nova chave de conta. Em seguida, as portas da lâmpada tamanho de espaço amostral aleatório. Finalmente, o programa talvez mais uma vírgula se fecha. **** aqui. Nós fechamos aqui. Primeira transação, o programa do sistema está criando uma conta, enviando algumas portas do Lamp para a conta. A conta é alugada XM e pode viver para sempre na cadeia de blocos. Agora precisamos criar outra transação. Ok, então agora vamos adicionar uma segunda instrução a uma transação. Para uma seção mais simples. A seção pode ter várias instruções. Se uma instrução falhar, toda a transação falhará e reverterá para o estado anterior. Então, vamos transection dot app chamado Novo com estrutura de transação de três documentos. Agora vamos pausar as primeiras quatro teclas. Aqui passamos a conta. Neste caso, estamos passando. Para chave pública. Precisamos passar um objeto. Para o bem público. Já passamos da conta. Chave, signatário. Esta conta não é signatária e facilita o trabalho direto porque estamos salvando isso. Perfeito. Ok, então o próximo no objeto e é o produto. Talvez. O último debate. Perfeito. Chamamos nossa segunda instrução. Estamos dizendo que esses amigos de dados, esses buffer com um contador. Estamos dizendo o número três no balcão. Então, tudo o que executamos isso, chamamos essa função irá contrariar o aglomerado de pescoço inchado e onchange. Finalmente, vamos acordar e confirmar a transação. Com essa conexão. A transação, a matriz de signatários, signatários podem ser vários signatários. Neste caso, apenas um. Em seguida, ponto. Então passamos o sinal para dar uma olhada. Razoável. Finalmente, vamos trabalhar uma nova função aqui. Denuncie as saudações. House1, uma função sinc. Primeiro usamos uma constante, obtemos a contabilidade. Então, estamos solicitando da cadeia de blocos a conta. Estamos lendo o número de Saudações, o número no contrato inteligente na conta que isso pode contratar direitos sobre os dados, aguardamos nossa conexão. Usando-o a contabilização dessa lista de contas específica. Usando o esquema de saudação, conta os dados da conta. Finalmente, estamos registrando o console. Coma, coma. Usamos um número, saudação, contador, coma, coma. Feche este relatório. Então, executamos esse código. Vamos executar mpm. T é índice. Agora também podemos lema em massa óssea. Precisamos do cromossomo. Temos chocolates preliminares. Vamos chamá-lo isso. Precisamos lidar com essa bijecção. Para colocar aqui se as informações da conta forem iguais a gama. Ótimo ter alguns erros para que possamos depurar e você pode aprender. Porque não precisamos erro, mas precisamos executar a função principal. No final, executamos a função principal. Vamos abrir isso aberto, eu vou muito bem, porque você está aqui. Estamos abrindo um web socket para aqui, para os logs na cadeia. Temos o número três, certo? Talvez eu abra o WebSocket tarde. Portanto, se você quiser executar esse código novamente, recomendado, você pode mudar. Vejo você que conta qual é a melhor maneira de comentar isso porque não estamos criando uma conta já chamada de conta. Também temos aqui onde conta em vez de BB King e ficando barato. Recomende essas linhas. E criamos essa chave mal igual a três novos. Totalmente chave. Passamos aqui. Por exemplo, liste quatro em vez de três. Então agora eu quero ter sete. Também aqui. Vamos nos conectar a um soquete de servidor. Reparando o Visual Studio ou os logs fora da cadeia aqui do cliente. E no terminal, estamos criando um soquete aqui para desbloquear o Unchained no cluster. Então eles têm registros diferentes. Dissemos que a depuração dupla face é ótima. Devemos ter economizando sete vezes grade porque estamos adicionando o número que passamos é adicionado às sete vezes anteriores. Talvez a oficina não funcione. Vamos tentar novamente. Verifique se estamos no atual. Ok, então agora vamos começar, por exemplo, de sete a 14. Ok, finalmente, há um truque. Se você não receber os registros, O desmarcado, você pode aqui para todos os registros, então você pode copiar os textos antigos, antigos e você pode verificar, por exemplo, podemos começar a escrever isso. Você escreve apenas o URL de aparência Solana e passa isso. Executamos o programa. Você precisa copiar tudo isso, tudo isso, porque às vezes eu não sei por que não está aqui para um produto específico. Mas aqui você vai ver isso. Funcionará onde estamos copiando todo o texto, procurando nosso programa. Esperamos até que seja em 2121, então copiamos tudo em comum. Quando copiamos, podemos abrir um novo colar todo o texto para Controlar um Controle T ou Comando um visualizador na minha planilha de controle. Você cola todos os registros. Existem muitos registros. É por isso que não está funcionando. Você procura por seu produto, talvez os registros. Porque há muitas pessoas, sei que há muita pintura de bootcamp no mundo. Aqui estão os registros excluindo o contador sete. Como você vê. Isso é ótimo. Temos direito ao contrato final, os mesmos dados serializando e desserializando e recuperando os logs, tanto on-line quanto fora da cadeia. Tão maravilhoso. Você está um passo mais perto do seu objetivo.