Recursos sugeridos
Monad é totalmente compatível com bytecode EVM, com todos os opcodes e pré-compilações suportados a partir do fork de Xangai. Monad também preserva as interfaces JSON-RPC padrão do Ethereum.
Como tal, a maioria dos recursos de desenvolvimento para Ethereum Mainnet se aplicam ao desenvolvimento no Monad.
Esta página sugere um conjunto mínimo de recursos para começar a construir um aplicativo descentralizado para Ethereum. As páginas secundárias fornecem detalhes ou opções adicionais.
Como Solidity é a linguagem mais popular para contratos inteligentes Ethereum, os recursos nesta página concentram-se em Solidity; alternativamente, veja recursos no Vyper ou Huff . Observe que, como os contratos inteligentes podem ser compostos, os contratos originalmente escritos em um idioma ainda podem fazer chamadas para contratos em outro idioma.
IDEs
Remix é um IDE Solidity interativo. É a maneira mais fácil e rápida de começar a codificar e compilar contratos inteligentes do Solidity sem a necessidade de instalações de ferramentas adicionais.
Solidity Básico
CryptoZombies é uma excelente introdução completa à construção de dApps no EVM. Ele fornece recursos e lições para qualquer pessoa, desde alguém que nunca programou antes, até desenvolvedores experientes em outras disciplinas que buscam explorar o desenvolvimento de blockchain.
Solidity by Example introduz conceitos progressivamente através de exemplos simples; melhor para desenvolvedores que já possuem experiência básica com outras linguagens.
Solidity Intermediário
A documentação oficial da Solidity Language é uma descrição completa de contratos inteligentes e princípios básicos de blockchain centrados em ambientes EVM. Além da documentação da Solidity Language, ela cobre os fundamentos da compilação do seu código para implantação em um EVM, bem como os componentes básicos relevantes para a implantação de um Contrato Inteligente em um EVM.
O repositório Solidity Patterns fornece uma biblioteca de modelos de código e explicação de seu uso.
O contrato Uniswap V2 é um contrato inteligente profissional, mas fácil de digerir, que fornece uma excelente visão geral de um dApp Solidity em produção. Um passo a passo guiado do contrato pode ser encontrado aqui.
Cookbook.dev fornece um conjunto de exemplos de contratos de modelo interativos com edição ao vivo, implantação com um clique e integração de bate-papo de IA para ajudar com questões de código.
OpenZeppelin fornece biblioteca de modelos de contratos personalizáveis para implantações comuns de tokens Ethereum, como ERC20, ERC712 e ERC1155. Observe que eles não são otimizados para gás.
Solidity Avançado
O repositório Solmate e o repositório Solady fornecem contratos otimizados para gás utilizando Solidity ou Yul.
Yul é uma linguagem intermediária para Solidity que geralmente pode ser considerada como um assembly embutido para o EVM. Não é uma montagem pura, fornecendo construções de fluxo de controle e abstraindo o funcionamento interno da pilha, ao mesmo tempo que expõe o back-end da memória bruta aos desenvolvedores. Yul é direcionado a desenvolvedores que precisam de exposição ao back-end de memória bruta do EVM para construir código EVM otimizado para gás de alto desempenho.
Huff é descrito mais de perto como montagem EVM. Ao contrário de Yul, Huff não fornece construções de fluxo de controle nem abstrai o funcionamento interno da pilha de programas. Apenas os aplicativos mais sensíveis ao desempenho tiram proveito do Huff, no entanto, é uma ótima ferramenta educacional para aprender como o EVM interpreta as instruções em seu nível mais baixo.
Nodes locais
Os desenvolvedores geralmente acham útil poder executar uma rede Ethereum de 1 node com parâmetros modificados para testar a interação com o blockchain:
Anvil é um node Ethereum local empacotado no kit de ferramentas Foundry
Hardhat Network é um node Ethereum local empacotado no kit de ferramentas Hardhat
A instalação é feita mais facilmente como parte da instalação do respectivo kit de ferramentas, descrita na próxima seção.
Kits de ferramentas
Os desenvolvedores muitas vezes acham útil construir seu projeto no contexto de uma estrutura mais ampla que organiza dependências externas (ou seja, gerenciamento de pacotes), organiza testes unitários e de integração, define um procedimento de implantação (em nós locais, testnet e mainnet), registra custos de gás, etc.
Aqui estão os dois kits de ferramentas mais populares para desenvolvimento do Solidity:
Foundry é uma estrutura do Solidity para desenvolvimento e teste. O Foundry gerencia suas dependências, compila seu projeto, executa testes, implanta e permite interagir com a chain a partir da linha de comando e por meio de scripts do Solidity. Os usuários do Foundry normalmente escrevem seus contratos inteligentes e testes na linguagem Solidity.
Hardhat é uma estrutura de desenvolvimento Solidity combinada com uma estrutura de teste JavaScript. Ele permite funcionalidades semelhantes às do Foundry e era o conjunto de ferramentas dominante para desenvolvedores de EVM antes do Foundry.
Interagindo com a API Ethereum RPC
Frontends para dapps normalmente usam JavaScript ou Python para enviar consultas de leitura ou gravação para um nó RPC. Esse código é normalmente chamado de “lado do cliente”, já que os desenvolvedores da web podem equiparar aproximadamente o blockchain a um servidor back-end.
Algumas bibliotecas fornecem métodos padrão para enviar consultas ou transações a um nó RPC:
Pitão:
Aqui está um exemplo rápido para criar um frontend: create-eth-app.
Redes de teste
Monad Testnet estará disponível para desenvolvedores nos próximos meses, no entanto, ser bytecode e RPC compatível com o EVM significa que os desenvolvedores que desejam implantar no Monad podem usar preliminarmente os Testnets da Ethereum .
Detalhes adicionais
As páginas secundárias adicionam recursos adicionais:
Last updated