Pular para o conteúdo
Skillpedia
Testes48 mil · #4548

web3-testing

Faz seu agente testar códigos de contratos inteligentes de forma completa. Ele usa ferramentas avançadas para garantir que tudo funcione bem.

O que ela faz

Esta habilidade ajuda a testar contratos inteligentes de criptomoedas. Ela usa ferramentas como Hardhat e Foundry para garantir que o código funcione corretamente e de forma segura.

Quando usar

  • ✓Quando você está escrevendo o código de um contrato inteligente.
  • ✓Para verificar se o contrato se comporta como esperado em diferentes situações.
  • ✓Para encontrar e corrigir erros antes de lançar o contrato.

Exemplo do que pedir para a IA

“Como posso testar meu contrato de token para garantir que as transferências funcionem corretamente?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/web3-testing/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/web3-testing/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A habilidade usa ambientes de teste como Hardhat e Foundry para simular o funcionamento do seu contrato. Ela executa testes pré-definidos e verifica se os resultados são os esperados, reportando quaisquer problemas.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill web3-testing

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/web3-testing/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Disponibilidade de Material de Apoio

Esta cópia do catálogo contém as orientações embutidas abaixo, mas não inclui os seguintes caminhos de suporte. São pré-requisitos externos, não arquivos agrupados:

  • <support-root>/references/hardhat-setup.md
  • <support-root>/references/foundry-setup.md
  • <support-root>/references/test-patterns.md
  • <support-root>/references/mainnet-forking.md
  • <support-root>/references/contract-verification.md
  • <support-root>/assets/hardhat-config.js
  • <support-root>/assets/test-suite.js
  • <support-root>/assets/foundry.toml
  • <support-root>/scripts/test-contract.sh

Solicite o material de apoio original ou uma instalação existente antes de usar uma etapa que dependa desses caminhos; este catálogo não identifica uma fonte de download verificada para eles. Resolva cada caminho em relação a essa instalação, inspecione seu conteúdo e verifique quaisquer licenças e pré-requisitos de execução aplicáveis. Não execute um comando ou afirme que um procedimento referenciado foi seguido até que seu arquivo necessário exista. Não fabrique os scripts ausentes nem trate um arquivo não relacionado com o mesmo nome como equivalente. Etapas independentes totalmente documentadas aqui podem prosseguir dentro do escopo autorizado do usuário; relate qualquer etapa dependente como indisponível.

Teste de Contratos Inteligentes Web3

Domine estratégias abrangentes de teste para contratos inteligentes usando Hardhat, Foundry e padrões avançados de teste.

Não use esta habilidade quando

  • A tarefa não estiver relacionada a testes de contratos inteligentes web3
  • Você precisar de um domínio ou ferramenta diferente fora deste escopo

Instruções

  • Clarifique objetivos, restrições e entradas necessárias.
  • Aplique as melhores práticas relevantes e valide os resultados.
  • Forneça etapas acionáveis e verificação.

Use esta habilidade quando

  • Escrevendo testes unitários para contratos inteligentes
  • Configurando suítes de testes de integração
  • Realizando testes de otimização de gas
  • Fuzzing para casos extremos
  • Forkando a mainnet para testes realistas
  • Automatizando relatórios de cobertura de testes
  • Verificando contratos no Etherscan

Configuração de Teste com Hardhat

// hardhat.config.js
require("@nomicfoundation/hardhat-toolbox");
require("@nomiclabs/hardhat-etherscan");
require("hardhat-gas-reporter");
require("solidity-coverage");

module.exports = {
  solidity: {
    version: "0.8.19",
    settings: {
      optimizer: {
        enabled: true,
        runs: 200,
      },
    },
  },
  networks: {
    hardhat: {
      forking: {
        url: process.env.MAINNET_RPC_URL,
        blockNumber: 15000000,
      },
    },
    goerli: {
      url: process.env.GOERLI_RPC_URL,
      accounts: [process.env.PRIVATE_KEY],
    },
  },
  gasReporter: {
    enabled: true,
    currency: "USD",
    coinmarketcap: process.env.COINMARKETCAP_API_KEY,
  },
  etherscan: {
    apiKey: process.env.ETHERSCAN_API_KEY,
  },
};

Padrões de Teste Unitário

const { expect } = require("chai");
const { ethers } = require("hardhat");
const {
  loadFixture,
  time,
} = require("@nomicfoundation/hardhat-network-helpers");

describe("Token Contract", function () {
  // Fixture para configuração de teste
  async function deployTokenFixture() {
    const [owner, addr1, addr2] = await ethers.getSigners();

    const Token = await ethers.getContractFactory("Token");
    const token = await Token.deploy();

    return { token, owner, addr1, addr2 };
  }

  describe("Deployment", function () {
    it("Should set the right owner", async function () {
      const { token, owner } = await loadFixture(deployTokenFixture);
      expect(await token.owner()).to.equal(owner.address);
    });

    it("Should assign total supply to owner", async function () {
      const { token, owner } = await loadFixture(deployTokenFixture);
      const ownerBalance = await token.balanceOf(owner.address);
      expect(await token.totalSupply()).to.equal(ownerBalance);
    });
  });

  describe("Transactions", function () {
    it("Should transfer tokens between accounts", async function () {
      const { token, owner, addr1 } = await loadFixture(deployTokenFixture);

      await expect(token.transfer(addr1.address, 50)).to.changeTokenBalances(
        token,
        [owner, addr1],
        [-50, 50],
      );
    });

    it("Should fail if sender doesn't have enough tokens", async function () {
      const { token, addr1 } = await loadFixture(deployTokenFixture);
      const initialBalance = await token.balanceOf(addr1.address);

      await expect(
        token.connect(addr1).transfer(owner.address, 1),

…
Perguntas frequentes

O que são contratos inteligentes?

São programas que rodam em uma rede de blockchain e executam automaticamente ações quando certas condições são atendidas, como transferir criptomoedas.

O que é Hardhat e Foundry?

São ferramentas populares que ajudam desenvolvedores a criar, testar e gerenciar contratos inteligentes.

Por que testar contratos inteligentes é importante?

Contratos inteligentes lidam com valor e, uma vez implantados, são difíceis de alterar. Testes garantem que eles sejam seguros e funcionem como pretendido, evitando perdas financeiras.

Detalhes

Descrição original do autor

Master comprehensive testing strategies for smart contracts using Hardhat, Foundry, and advanced testing patterns.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4548
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas