Escrever um Smart Contract
Escreva contratos Solidity compatíveis com a Chiliz Chain: versões recomendadas de Solidity e EVM, decimais do token CAP-20, mecânica de gas e diferenças em relação ao Ethereum.
A partir do momento em que você decide criar um dApp na Chiliz Chain, precisa levar em conta as especificidades do nosso blockchain.
Embora a Chiliz Chain seja compatível com EVM, tratá-la exatamente como o Ethereum pode causar problemas de usabilidade, especialmente em relação a decimais de token e à mecânica de gas.
Vamos explorar!
Pré-requisitos
Ambiente
Antes de começar a escrever seu contrato, verifique se seu ambiente está pronto.
Primeiro, você deve ter uma carteira configurada para a Spicy Testnet (para desenvolvimento) ou para a Chiliz Chain Mainnet (para produção).
Conectar à Chiliz ChainEm seguida, você precisará de $CHZ para pagar as taxas de gas de implantação tanto na Testnet quanto na Mainnet. Enquanto você pode comprar $CHZ da Mainnet em qualquer exchange de criptomoedas, pode usar faucets para tokens de Testnet.
Obter tokens de testnet gratuitosEm termos de ferramentas, você pode usar Hardhat ou Remix. Veja, por exemplo:
Implantar com RemixPor fim, os contratos da Chiliz Chain são escritos na linguagem Solidity:
Use as versões recomendadas de Solidity e EVM:
Fan Tokens / CAP-20
O aspecto mais específico da Chiliz Chain é o padrão CAP-20, usado para Fan Tokens.
O CAP-20 é tecnicamente equivalente ao padrão ERC-20. Desde a Migração de 2026 para Fan Tokens Decimais, os tokens CAP-20 usam 18 decimais de precisão, assim como os tokens ERC-20 padrão, de modo que saldos, transferências e fornecimento total dos Fan Tokens são denominados na menor unidade do token e suportam quantidades fracionadas.
Sobre Fan TokensMelhores práticas para escrever um smart contract
Use Bibliotecas Testadas (OpenZeppelin)
Não comece criando seu contrato do zero. A prática de segurança mais eficaz é basear seu código em padrões auditados pela comunidade, para reduzir o risco de vulnerabilidades.
Para o desenvolvimento na Chiliz Chain, recomendamos fortemente o uso de Contratos OpenZeppelin. Eles fornecem implementações seguras e verificadas pela comunidade para contratos de tokens.
Ao usar contratos padrão, você garante que seus tokens sejam compatíveis com carteiras conhecidas (como MetaMask) e com o ecossistema Chiliz (Socios.com).
Melhores Práticas Gerais de EVM
Independentemente da rede, estes três padrões são inegociáveis para o desenvolvimento seguro em Solidity.
O Padrão "Verificações-Efeitos-Interações"
Esta é sua principal defesa contra Ataques de Reentrância. Sempre estruture suas funções nesta ordem exata:
Verificações: Valide entradas e condições (ex.: declarações
require).Efeitos: Atualize o estado do contrato (ex.: reduzir saldos).
Interações: Interaja com outros contratos ou envie fundos (ex.:
transfer).
Controle de Acesso Robusto
Nunca deixe funções sensíveis desprotegidas. Se uma função cria tokens, altera taxas ou atualiza lógica, ela deve ser restrita.
Simples: Use
Ownablepara contratos com administrador único.Complexo: Use
AccessControlpara contratos que exigem múltiplos papéis (ex.:MINTER_ROLE,ADMIN_ROLE).
Validação de Entrada
Assuma que todas as entradas são maliciosas. Use declarações require() no início de suas funções para validar parâmetros.
Por exemplo:
Verifique endereços zero (
address(0)).Verifique quantidades zero ao transferir.
Verifique se os comprimentos dos arrays coincidem ao passar múltiplos arrays.
etc.
Detalhes de Implementação Específicos da Chiliz
Embora a Chiliz Chain seja compatível com EVM, certas "regras locais" se aplicam, especialmente em relação a decimais de token.
Conformidade com CAP-20 (Fan Tokens)
Se você está escrevendo um contrato que interage com Fan Tokens (ex.: um Pool de Staking para $PSG ou $BAR), leve em conta os decimais deles em vez de assumir um valor fixo.
Desde a Migração de 2026 para Fan Tokens Decimais, os Fan Tokens usam 18 decimais, portanto 1 Token = 10^18 units, o mesmo que a maioria dos tokens ERC-20. Contratos de Fan Token mais antigos usavam 0 decimais (1 Token = 1 unit), e alguns ainda podem ser encontrados on-chain.
Não fixe os decimais de um token no código. Leia
token.decimals()dinamicamente para que seu contrato funcione tanto com tokens que usam 18 decimais quanto com a configuração legada de 0 decimais.Escale as quantidades usando o valor retornado por
decimals()em vez de assumir1e18.
Otimização de Gas na Chiliz
As transações na Chiliz Chain são significativamente mais baratas que no Ethereum, mas código não otimizado ainda pode causar congestionamento ou falhas em transações durante eventos de alto tráfego (ex.: durante uma partida ao vivo).
Três formas de economizar gas:
Use Erros Personalizados: Em vez de mensagens longas em
require, use definições deerrorpara economizar gas.Ordene suas variáveis de estado para caberem em slots de 32 bytes. Coloque
uint128,addresseboolpróximos uns dos outros onde possível.Prefira
externalpara funções que nunca são chamadas internamente pelo próprio contrato.
Atualizado
Isto foi útil?