WEB3DEV

Cover image for Criando um Canister de Contador em Motoko (ICP)
Guilherme Boaventura
Guilherme Boaventura

Posted on • Atualizado em

Criando um Canister de Contador em Motoko (ICP)

Artigo escrito por: @guilhermeboaventurarodrigues

Nesse artigo iremos criar um canister de contador em Motoko.

Motoko é a linguagem nativa que iremos utilizar para criar canisters na Internet Computer. Canisters são como os "smart contracts" são denominados na IC.

O que é necessário


Sumário

1 . Abra seu terminal ou WSL e crie um novo projeto dfx

2 . Conhecendo as pastas do projeto

3 . Escrevendo o Canister do Contador

4 . Executando e interagindo com o Canister


Assumindo que você tenha os pré-requisitos instalados, vamos começar com o código!

Abra seu terminal ou WSL e crie um novo projeto dfx

dfx new <nome_da_pasta>
Enter fullscreen mode Exit fullscreen mode

Após apertar enter, o dfx irá criar as pastas iniciais do projeto e instalar as dependências necessárias

Resultado do comando dfx new

Conhecendo as pastas do projeto

Pastas que o dfx new criou

Pronto, agora que as pastas foram criadas, vamos entender melhor como funciona o esqueleto do projeto. O dfx criou pra gente uma pasta chamada src, dentro da pasta src existem mais duas pastas, uma de back-end e outra de front-end, dentro dessas pastas é onde a mágica acontece. Também foi criado o arquivo dfx.json que é o arquivo aonde o dfx manipula os dados, dentro desse arquivo está instanciado a pasta aonde o nosso Canister vai ser executado, pasta do front-end, versão do dfx, entre outras informações sobre o projeto. E por fim, o ultimo arquivo que iremos abordar aqui é o webpack.config.js o webpack é um empacotador de módulos Javascript para o navegador, ele ajuda o front-end do nosso projeto funcionar corretamente.

Escrevendo o Canister do Contador

Entre na pasta src e depois na pasta do back-end, dentro dessa pasta tem um arquivo chamado main.mo, é nesse arquivo que iremos desenvolver o Canister.
Apague o exemplo que está dentro de main.mo para podermos começar a desenvolver nosso Canister.

O código do nosso contador é:

//Criando um canister com o nome Counter
actor Counter {

  //Criando uma variável com o nome counter que vai começar com 0.
  stable var counter = 0;

  //Setando um valor para a variável counter
  public func set(n : Nat) : async () {
    counter := n;
  };


  //Puxando o valor da variável counter
  public query func get() : async Nat {
    return counter;
  };


  //Incrementando um valor para o contador
  public func inc() : async () {
    counter += 1;
  };
};
Enter fullscreen mode Exit fullscreen mode

Executando e interagindo com o Canister

TERMINAL A: Para iniciar um nó local da internet computer, abra seu terminal ou wsl e digite:

dfx start (Caso seu sistema seja linux)
dfx start --emulator (Caso seja WSL no Windowns)
Enter fullscreen mode Exit fullscreen mode

TERMINAL B: Para criar nosso Canister, devemos digitar:

dfx canister create counter
Enter fullscreen mode Exit fullscreen mode

Depois de criado, devemos construir nosso canister, digite:

dfx build
Enter fullscreen mode Exit fullscreen mode

Agora vamos instalar e dar o deploy local no nosso Canister, digite:

dfx canister install counter 
Enter fullscreen mode Exit fullscreen mode

PRONTO! Canister criado e deploy feito! Vamos interagir com ele agora?

Para interagir com o canister, digite no seu terminal:

dfx canister call <nome_do_canister> <nome_da_função> <PARÂMETROS>
Enter fullscreen mode Exit fullscreen mode

No nosso caso, pra setar um número devemos digitar:

dfx canister call counter set 10
Enter fullscreen mode Exit fullscreen mode

PRONTO! viu que fácil? Nesse artigo nós criamos um novo projeto dfx, aprendemos um pouco sobre o esqueleto do projeto, criamos um Canister de contador e ainda interagimos com ele, olha que legal!

Top comments (0)