githubEditar

Agents

VISÃO GERAL

Este documento fornece informações abrangentes para implantar smart contracts na Polkadot Hub TestNet (Paseo) usando Claude Code. Inclui configurações verificadas, problemas comuns, soluções e estratégias de otimização.

CRÍTICO: Sempre inicie novos projetos com kitdot@latest init para configuração adequada de rede e gerenciamento de dependências.

INFORMAÇÕES DA REDE

Detalhes da Paseo TestNet

  • Nome da Rede: Polkadot Hub TestNet

  • Chain ID: 420420422 (0x1911f0a6 em hex)

  • RPC URL: https://testnet-passet-hub-eth-rpc.polkadot.io

  • Block Explorer: https://blockscout-passet-hub.parity-testnet.parity.io

  • Moeda: PAS

  • Faucet: https://faucet.polkadot.io/?parachain=1111

  • Status: PolkaVM Preview Release (estágio inicial de desenvolvimento)

Características Principais

  • Compatibilidade EVM: Implantação de smart contracts compatível com Ethereum

  • PolkaVM: Requer configuração específica para compatibilidade

  • Limite de Bytecode: ~100KB tamanho máximo do contrato

  • Modelo de Gas: Mecânica padrão de gas EVM

  • Aviso de Versão Node: Funciona com Node.js v21+ apesar dos avisos

DEPENDÊNCIAS OBRIGATÓRIAS

Dependências Principais

Requisitos do Package.json

CRÍTICO: Use a flag --force ao instalar hardhat-toolbox para resolver conflitos de dependência.

CONFIGURAÇÃO DO HARDHAT

hardhat.config.js Completo e Funcional

Requisitos de Configuração

  1. Deve usar formato string para versão do Solidity: solidity: "0.8.28"

  2. Deve incluir configuração resolc: Necessário para compatibilidade PolkaVM

  3. Deve definir polkavm: true: Em todas as configurações de rede

  4. Deve usar hardhat vars: Para gerenciamento de chave privada

  5. Nome da rede: Use passetHub (não paseo ou outros nomes)

PROCESSO DE CONFIGURAÇÃO

Passo 1: Inicializar Projeto com kitdot@latest (Recomendado)

Configuração Manual Alternativa:

Por que kitdot@latest? Configura automaticamente configurações de rede, dependências e estrutura de projeto adequadas. Elimina erros comuns de configuração.

Passo 2: Instalar Dependências

Se usando kitdot@latest: Dependências são instaladas automaticamente.

Instalação manual:

Passo 3: Inicializar Plugin Polkadot

Se usando kitdot@latest: Já configurado.

Configuração manual:

Passo 4: Configurar Chave Privada

Passo 5: Obter Tokens de Teste

  1. Visite https://faucet.polkadot.io/?parachain=1111

  2. Digite o endereço da sua carteira

  3. Solicite tokens PAS

  4. Verifique o saldo na carteira ou block explorer

Passo 6: Criar Configuração Hardhat

Se usando kitdot@latest: Arquivo de configuração já criado com configurações adequadas.

Configuração manual: Copie a configuração exata acima para hardhat.config.js

DESENVOLVIMENTO DE CONTRATOS

Requisitos da Versão Solidity

  • Versão Obrigatória: ^0.8.28

  • Target EVM: paris (padrão)

  • Optimizer: Habilitado por padrão

Exemplo de Contrato Simples

Limitações de Tamanho do Contrato

  • Bytecode Máximo: ~100KB

  • Impacto OpenZeppelin: Imports padrão frequentemente excedem o limite

  • Otimização Necessária: Remover dependências desnecessárias

PROCESSO DE IMPLANTAÇÃO

Usando Hardhat Ignition (Recomendado)

Passo 1: Criar Módulo Ignition

Passo 2: Compilar Contratos

Passo 3: Implantar na Paseo

Estados de Implantação

  • Estado Limpo: rm -rf ignition/deployments/ para começar do zero

  • Retomar: Ignition retoma automaticamente implantações interrompidas

  • Rastrear Transações: Use block explorer para rastrear transações falhadas

ERROS COMUNS E SOLUÇÕES

1. Erro "CodeRejected"

Erro: Failed to instantiate contract: Module(ModuleError { index: 60, error: [27, 0, 0, 0], message: Some("CodeRejected") })

Causas:

  • Configuração PolkaVM ausente

  • Configurações de rede incorretas

  • Configuração resolc ausente

Soluções:

  • Certifique-se de ter polkavm: true na configuração de rede

  • Adicione bloco de configuração resolc

  • Use formato exato do hardhat.config.js acima

2. Erro "initcode is too big"

Erro: initcode is too big: 125282 (ou número similar)

Causa: Bytecode do contrato excede limite de ~100KB

Soluções:

  • Remover dependências OpenZeppelin

  • Usar implementações mínimas de contratos

  • Dividir contratos grandes em componentes menores

  • Implementar versões customizadas e leves

3. Erros de Configuração

Erro: Cannot read properties of undefined (reading 'settings')

Solução: Use formato string para versão do Solidity: solidity: "0.8.28"

4. Problemas de Dependência

Erro: Cannot find module 'run-container' ou similar

Soluções:

  • Instalar dependências com flag --force

  • Limpar node_modules e reinstalar

  • Verificar compatibilidade da versão @parity/hardhat-polkadot

5. Problemas de Chave Privada

Erro: No signers found ou falhas de autenticação

Soluções:

  • Definir chave privada via npx hardhat vars set PRIVATE_KEY

  • Certificar-se de que a conta tem tokens PAS

  • Verificar formato da chave privada (sem prefixo 0x nas vars)

OTIMIZAÇÃO DE CONTRATOS

Removendo Dependências OpenZeppelin

Em vez de OpenZeppelin Ownable:

Em vez de OpenZeppelin ReentrancyGuard:

Implementação ERC721 Mínima:

INTEGRAÇÃO FRONTEND

Problemas de Transações Frontend (Problemas de Estimação de Gas/Legacy)

CRÍTICO PARA AGENTES: Aplicações frontend frequentemente encontram problemas de estimação de gas ao enviar transações para redes Polkadot. Sempre implemente essas estratégias:

Método 1: Estimação de Gas Legacy com Buffer

Método 2: Limites de Gas Fixos

Método 3: Tratamento de Erros e Lógica de Retry

Configuração de Rede para MetaMask

Interação com Contrato usando Ethers.js

TESTES E VERIFICAÇÃO

Verificação de Compilação

Verificação de Implantação

  1. Saída de Implantação Bem-sucedida:

  1. Verificação no Block Explorer:

  • Visite https://blockscout-passet-hub.parity-testnet.parity.io

  • Procure pelo endereço do contrato

  • Verifique a transação de criação do contrato

  1. Teste de Interação com Contrato:

ESTRATÉGIAS DE DEPURAÇÃO

Verificar Conectividade da Rede

Verificar Saldo da Conta

Build e Deploy Limpos

Rastreamento de Transação

Se a implantação falhar:

  1. Verifique o block explorer para transações da conta

  2. Procure por transações falhadas com erros de gas

  3. Use npx hardhat ignition track-tx <txHash> <deploymentId> --network passetHub

MELHORES PRÁTICAS

Fluxo de Trabalho de Desenvolvimento

  1. Comece Simples: Implante contratos básicos primeiro para verificar a configuração

  2. Otimize Cedo: Verifique tamanhos de contratos durante o desenvolvimento

  3. Teste Localmente: Use rede hardhat local para testes iniciais

  4. Implantação Incremental: Implante componentes separadamente se muito grandes

  5. Documente Endereços: Mantenha registro de todos os endereços de contratos implantados

Design de Contrato para Paseo

  1. Minimizar Dependências: Evite bibliotecas pesadas

  2. Implementações Customizadas: Escreva versões mínimas de contratos padrão

  3. Design Modular: Divida funcionalidade entre múltiplos contratos

  4. Otimização de Gas: Use estruturas de dados e algoritmos eficientes

  5. Padrões Proxy: Considere contratos atualizáveis para lógica complexa

Considerações de Segurança

  1. Gerenciamento de Chave Privada: Sempre use hardhat vars, nunca faça commit de chaves

  2. Apenas Rede de Teste: Paseo é para testes, não valor de produção

  3. Verificação de Código: Verifique contratos no block explorer quando possível

  4. Controles de Acesso: Implemente sistemas adequados de propriedade e permissão

COMANDOS DE REFERÊNCIA

Comandos Essenciais

Variáveis de Ambiente

IMPLANTAÇÃO NO POLKADOT CLOUD (APILLON)

Configuração de Conta Apillon e UUID do Website

CRÍTICO PARA AGENTES: Ao implantar aplicações frontend no Polkadot Cloud, siga estes passos:

Passo 1: Criar Conta Apillon

INSTRUIR O USUÁRIO PARA:

  1. Visitar Console Apillon: https://app.apillon.io

  2. Registrar Conta: Usar email e criar senha segura

  3. Verificar Email: Completar processo de verificação de email

  4. Conectar Carteira: Vincular sua carteira Polkadot/Substrate para pagamentos

  5. Gerar Credenciais API:

    • Ir para SettingsAPI Keys

    • Clicar em Create New API Key

    • Nomeá-la (ex. "Projeto Hackathon")

    • Copiar API Key e API Secret imediatamente

    • Armazenar com segurança - API Secret só é mostrado uma vez

Passo 2: Criar Projeto de Website

INSTRUIR O USUÁRIO PARA:

  1. Navegar para Seção Hosting: No console Apillon

  2. Criar Novo Website: Clicar no botão "New Website"

  3. Configurar Projeto:

  4. Copiar UUID do Website: Após criação, copiar o UUID gerado (formato: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)

  5. Fornecer UUID ao Agente: Compartilhar o UUID do Website para que o agente possa configurar a implantação

Passo 3: Obter UUID do Website para Implantação

Configuração MCP para Hosting no Polkadot Cloud

Configuração do Protocolo de Contexto de Modelo (MCP):

Passo 1: Configuração do Servidor MCP

CRÍTICO PARA AGENTES: Configure seu cliente MCP para usar o servidor MCP do Apillon.

Para Claude Desktop:

Adicione isso ao seu arquivo de configuração MCP:

Passos de Configuração Claude Desktop:

  1. Localizar arquivo config MCP: Geralmente em ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)

  2. Adicionar servidor Apillon: Inserir a configuração acima

  3. Substituir placeholders: Atualizar <APILLON_API_KEY> e <APILLON_API_SECRET> com valores reais

  4. Atualizar caminho filesystem: Mudar /Users/seu-usuario/Desktop para seu diretório de projeto

  5. Reiniciar Claude Desktop: Necessário para que as mudanças MCP tenham efeito

Para Cursor IDE:

Configuração MCP no Cursor:

  1. Instalar extensão MCP: No Cursor, ir para Extensions e buscar "Model Context Protocol"

  2. Abrir configurações Cursor: Cmd/Ctrl + , → Buscar "MCP"

  3. Adicionar configuração servidor:

Passos de Configuração Cursor:

  1. Abrir settings.json: Cmd/Ctrl + Shift + P → "Preferences: Open Settings (JSON)"

  2. Adicionar configuração MCP: Inserir a configuração acima

  3. Substituir placeholders: Atualizar credenciais API

  4. Reiniciar Cursor: Necessário para que as mudanças MCP tenham efeito

  5. Verificar conexão: Verificar status MCP na paleta de comandos do Cursor

Passo 2: Instalar CLI do Apillon (Método Alternativo)

Passo 3: Configurar Autenticação

Passo 4: Configurar MCP para Implantação Automatizada

Criar .apillon.json na raiz do projeto:

Passo 5: Script de Implantação MCP

Passo 6: Variáveis de Ambiente

Melhores Práticas para Agentes

  1. Configurar MCP primeiro: Configurar servidor MCP do Apillon no seu IDE (Claude Desktop ou Cursor) antes de começar a implantação.

  2. Sempre usar CLI Apillon mais recente: npm install -g @apillon/cli@latest

  3. Credenciais seguras: Armazenar API keys e UUIDs como variáveis de ambiente, nunca no código

  4. Guiar usuário na configuração da conta: Instruir claramente usuários sobre criação de conta Apillon e geração de API key

  5. Verificar implantações: Sempre verificar status da implantação após upload

  6. Usar ambiente produção: Para entregas finais de hackathon

  7. Monitorar custos: Apillon usa modelo pay-per-use

  8. Testar localmente primeiro: Sempre testar builds antes de implantar

  9. Reiniciar seu IDE: Após mudanças de configuração MCP (Claude Desktop ou Cursor)

  10. Verificar conexão MCP: Verificar se servidor MCP do Apillon está conectado corretamente antes da implantação

DIRETRIZES DE ESCRITA PARA LLMs

Ao criar documentação ou ajudar desenvolvedores:

CHECKLIST DE SOLUÇÃO DE PROBLEMAS

Primeiro: Tente kitdot@latest init com projeto novo e copie código existente

Quando a implantação falhar, verifique:

LIMITAÇÕES E SOLUÇÕES ALTERNATIVAS

Limitações Atuais

  • Tamanho do Contrato: Limite de 100KB de bytecode

  • OpenZeppelin: A maioria das bibliotecas são muito grandes

  • Estabilidade da Rede: Preview release, possível tempo de inatividade

  • Ferramentas de Depuração: Limitadas comparadas à mainnet

  • Documentação: Escassa, soluções dirigidas pela comunidade

Soluções Alternativas Recomendadas

  • Problemas de Tamanho: Use implementações customizadas mínimas

  • Lógica Complexa: Divida entre múltiplos contratos

  • Gerenciamento de Estado: Use eventos para dados off-chain

  • Experiência do Usuário: Forneça mensagens de erro claras

  • Testes: Testes locais extensivos antes da implantação

Este guia fornece informações abrangentes para implantação bem-sucedida de smart contracts na Paseo TestNet usando Claude Code, incluindo todas as configurações críticas, problemas comuns e estratégias de otimização.

Última actualización