Tradução feita por Rômulo Rodrigues, artigo original disponível aqui.
Este contrato-inteligente(smart contract) grava e armazena os status das mensagens das contas NEAR que o chamam.
Usuários Windows: Visite-nos através deste README específico para WIndows:Exemplo usando Windows
Pré-Requisitos
Verifique se a CLI(Command Line Interface / Linha de Comando) do NEAR está instalada com o seguinte comando:
near --version
Se necessário, instale a NEAR-CLI através do seguinte comando:
npm install near-cli -g
Verifique se o Rust está instalado com o seguinte comando:
rustc --version
Se necessário, instale Rust com o seguinte comando:
curl <https://sh.rustup.rs> -sSf | sh
Em seguida, instale as dependências:
npm install
Guia de Início Rápido
Para executar este projeto localmente:
1 - Pré-Requisitos: Verifique se você possui o Node.js na versão 12 ou superior (https://nodejs.org), e em seguida use-o para instalar o yarn:
npm install --global yarn
Fica aqui uma versão resumida para o seu conhecimento:
npm i -g yarn
2 - Rode (execute) o servidor de desenvolvimento local:
yarn && yarn dev
Pronto! Você já tem seu ambiente de desenvolvimento apoiado pela TestNet (Rede de Testes) da NEAR. Ao executar o comando yarn dev no seu console irá aparecer a URL para você visitá-la e ver o Web App!
Obs: Verifique o arquivo package.json para observar uma lista inteira de comandos que você pode rodar com o yarn
Construindo este contrato
Para que o processo de build (construção) seja compatível com diferentes Sistemas Operacionais, o processo de build está definido como um comando naquele arquivo package.json. Existem algumas flags (opções) usadas para compilar este smart contract para um arquivo do tipo wasm.
Execute este comando para construir e alocar o arquivo do tipo wasm na pasta res:
npm run build
Nota: Caso você esteja usando yarn, execute:
yarn build
Importante
Caso você encontre um erro similar a este:
note: the wasm32-unknown-unknown target may not be installed
Execute o seguinte comando:
rustup target add wasm32-unknown-unknown
Usando este contrato
Web App
Faça o deploy deste smart contract para uma conta específica criada com a carteira da NEAR. Então, interaja com este contrato usando a biblioteca near-api-js no frontend.
Caso você não tenha uma conta NEAR, crie uma com NEAR Wallet.
Verifique se você tem as credenciais salvas localmente para a conta que você deseja fazer o deploy do contrato.
Para realizar isto, use o seguinte comando com a NEAR cli:
near login
Em seguida, faça o deploy do contrato para sua conta NEAR:
near deploy --wasmFile res/status_message.wasm --accountId NOME_DA_SUA_CONTA
E então, execute o comando para construir o frontend:
npm start
Caso tudo dê certo, o Web App deve estar disponível em:localhost:1234 !
Deploy mais rápido
Execute o build e o deploy deste smart contract para uma conta de desenvolvimento com o comando abaixo. Esta conta de desenvolvimento será criada automaticamente e não deve ser usada como uma conta permanente.
Por favor, verifique nossa seção “Deploy Padrão” mais abaixo para entender como criar uma conta mais personalizada para realizar o deploy
near dev-deploy --wasmFile res/status_message.wasm --helperUrl [https://near-contract-helper.onrender.com](https://near-contract-helper.onrender.com)
Por baixo dos panos este comando cria uma conta e realiza o deploy deste smart contract nela. Verifique se no console foi exibida uma mensagem parecida com essa:
Done deploying to dev-1234567890123
Nesta ocasião a conta é dev-1234567890123. Um arquivo que contém a chave da conta foi criado em _neardev/dev-account _.
Para facilitar os próximos passos vamos criar variáveis de ambiente contendo a identificação desta conta de desenvolvimento e usar essas variáveis nos próximos comandos.
Execute este comando para criar as variáveis de ambiente:
source neardev/dev-account.env
Você pode verificar se a variável de ambiente está criada corretamente, caso o nome da conta seja exibido na tela após rodar este comando:
echo $CONTRACT_NAME
O próximo comando vai chamar o método set_status do contrato:
near call $CONTRACT_NAME set_status '{"message": "aloha!"}' --accountId $CONTRACT_NAME
Para verificar a mensagem do contrato, use o método get_status com o seguinte comando:
near view $CONTRACT_NAME get_status '{"account_id": "'$CONTRACT_NAME'"}'
Deploy Padrão
Realizando o deploy padrão, o contrato-inteligente será implantado em uma conta específica criada com a NEAR Wallet.
Caso você não tenha uma conta NEAR, crie uma aqui:NEAR Wallet.
Verifique se você tem as credenciais salvas localmente para a conta que você deseja fazer o deploy do contrato.
Para realizar isto, use o seguinte comando com a NEAR cli:
near login
Faça o deploy do contrato:
near deploy --wasmFile res/status_message.wasm --accountId NOME_DA_SUA_CONTA
Crie um status para a sua conta:
near call NOME_DA_SUA_CONTA set_status '{"message": "aloha friend"}' --accountId NOME_DA_SUA_CONTA
Veja o status da sua conta:
near view NOME_DA_SUA_CONTA get_status '{"account_id": "NOME_DA_SUA_CONTA"}'
Observe que estas mensagens de status ficam armazenadas em cada conta em um HashMap. Caso queira ver o código, verifique o arquivo em src/lib.rs.
Nós iremos fazer uma nova conta para verificar como a mensagem é armazenada por conta em um HashMap.
**Obs:** Usaremos NOME_DA_SUA_NOVA_CONTA para o nome da segunda conta.
Existem duas maneiras de criar uma nova conta:
- NEAR Wallet (como fizemos há pouco)
- near create_account NOME_DA_SUANOVACONTA —masterAccount NOME_DA_SUA_CONTA
Agora basta chamar o contrato na primeira conta (onde fizemos o deploy):
near call NOME_DA_SUA_CONTA set_status '{"message": "bonjour"}' --accountId *NOME_DA_SUA_**NOVA**_CONTA*
near view NOME_DA_SUA_CONTA get_status '{"account_id": "*NOME_DA_SUA_**NOVA**_CONTA*"}'
O retorno deve ser bonjour.
Verifique se o status original ainda existe com o seguinte comando:
near view NOME_DA_SUA_CONTA get_status '{"account_id": "NOME_DA_SUA_CONTA"}'
Testes
Para rodar os testes execute o seguinte comando:
cargo test --package status-message -- --nocapture
Top comments (0)