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>
Após apertar enter, o dfx irá criar as pastas iniciais do projeto e instalar as dependências necessárias
Conhecendo as pastas do projeto
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;
};
};
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)
TERMINAL B: Para criar nosso Canister, devemos digitar:
dfx canister create counter
Depois de criado, devemos construir nosso canister, digite:
dfx build
Agora vamos instalar e dar o deploy local no nosso Canister, digite:
dfx canister install counter
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>
No nosso caso, pra setar um número devemos digitar:
dfx canister call counter set 10
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!
Oldest comments (0)