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
Deve usar formato string para versão do Solidity:
solidity: "0.8.28"Deve incluir configuração resolc: Necessário para compatibilidade PolkaVM
Deve definir polkavm: true: Em todas as configurações de rede
Deve usar hardhat vars: Para gerenciamento de chave privada
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
Visite https://faucet.polkadot.io/?parachain=1111
Digite o endereço da sua carteira
Solicite tokens PAS
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 zeroRetomar: 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: truena configuração de redeAdicione 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
--forceLimpar 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_KEYCertificar-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
Saída de Implantação Bem-sucedida:
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
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:
Verifique o block explorer para transações da conta
Procure por transações falhadas com erros de gas
Use
npx hardhat ignition track-tx <txHash> <deploymentId> --network passetHub
MELHORES PRÁTICAS
Fluxo de Trabalho de Desenvolvimento
Comece Simples: Implante contratos básicos primeiro para verificar a configuração
Otimize Cedo: Verifique tamanhos de contratos durante o desenvolvimento
Teste Localmente: Use rede hardhat local para testes iniciais
Implantação Incremental: Implante componentes separadamente se muito grandes
Documente Endereços: Mantenha registro de todos os endereços de contratos implantados
Design de Contrato para Paseo
Minimizar Dependências: Evite bibliotecas pesadas
Implementações Customizadas: Escreva versões mínimas de contratos padrão
Design Modular: Divida funcionalidade entre múltiplos contratos
Otimização de Gas: Use estruturas de dados e algoritmos eficientes
Padrões Proxy: Considere contratos atualizáveis para lógica complexa
Considerações de Segurança
Gerenciamento de Chave Privada: Sempre use hardhat vars, nunca faça commit de chaves
Apenas Rede de Teste: Paseo é para testes, não valor de produção
Verificação de Código: Verifique contratos no block explorer quando possível
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:
Visitar Console Apillon: https://app.apillon.io
Registrar Conta: Usar email e criar senha segura
Verificar Email: Completar processo de verificação de email
Conectar Carteira: Vincular sua carteira Polkadot/Substrate para pagamentos
Gerar Credenciais API:
Ir para Settings → API 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:
Navegar para Seção Hosting: No console Apillon
Criar Novo Website: Clicar no botão "New Website"
Configurar Projeto:
Copiar UUID do Website: Após criação, copiar o UUID gerado (formato:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)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:
Localizar arquivo config MCP: Geralmente em
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)Adicionar servidor Apillon: Inserir a configuração acima
Substituir placeholders: Atualizar
<APILLON_API_KEY>e<APILLON_API_SECRET>com valores reaisAtualizar caminho filesystem: Mudar
/Users/seu-usuario/Desktoppara seu diretório de projetoReiniciar Claude Desktop: Necessário para que as mudanças MCP tenham efeito
Para Cursor IDE:
Configuração MCP no Cursor:
Instalar extensão MCP: No Cursor, ir para Extensions e buscar "Model Context Protocol"
Abrir configurações Cursor:
Cmd/Ctrl + ,→ Buscar "MCP"Adicionar configuração servidor:
Passos de Configuração Cursor:
Abrir settings.json:
Cmd/Ctrl + Shift + P→ "Preferences: Open Settings (JSON)"Adicionar configuração MCP: Inserir a configuração acima
Substituir placeholders: Atualizar credenciais API
Reiniciar Cursor: Necessário para que as mudanças MCP tenham efeito
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
Configurar MCP primeiro: Configurar servidor MCP do Apillon no seu IDE (Claude Desktop ou Cursor) antes de começar a implantação.
Sempre usar CLI Apillon mais recente:
npm install -g @apillon/cli@latestCredenciais seguras: Armazenar API keys e UUIDs como variáveis de ambiente, nunca no código
Guiar usuário na configuração da conta: Instruir claramente usuários sobre criação de conta Apillon e geração de API key
Verificar implantações: Sempre verificar status da implantação após upload
Usar ambiente produção: Para entregas finais de hackathon
Monitorar custos: Apillon usa modelo pay-per-use
Testar localmente primeiro: Sempre testar builds antes de implantar
Reiniciar seu IDE: Após mudanças de configuração MCP (Claude Desktop ou Cursor)
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
