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.