O que é Ethers.js? Uma análise aprofundada da biblioteca JavaScript do Ethereum

iniciantes3/18/2024, 8:47:39 AM
O Ethereum é um protocolo de blockchain conhecido por seu conjunto de ferramentas, contratos inteligentes e ecossistema alinhado ao código, dependendo muito do ethers.js (uma biblioteca Javascript) para fornecer a potência necessária para sua abordagem centrada no desenvolvedor.

Se você está de olho no Ether (ETH) em relação a outros jogadores de criptomoedas, você deve dedicar um momento para entender o Ethereum de uma perspectiva mais técnica. Um protocolo de blockchain conhecido por sua caixa de ferramentas, contratos inteligentes e ecossistema alinhado com o código, o Ethereum depende fortemente do ethers.js - uma biblioteca Javascript - para dar à sua abordagem centrada no desenvolvedor a potência necessária.

Embora ethers.js não seja a única biblioteca JavaScript nativa do Ethereum, é a melhor opção para DApps menores. Neste guia, aprofundamos os aspectos do ethers.js, ajudando você a entender esse conceito técnico.

Neste Guia:

  1. Desempacotando ethers.js
  2. Por que o ethers.js é importante?
  3. Todas as versões do Ethers.js explicadas
  4. Começando com ethers.js
  5. Recursos principais
  6. Como publicações de criptografia podem alavancar Ethers.js
  7. Aplicações do mundo real do Ethers.js
  8. Considerações de segurança
  9. Ethers.js: uma ferramenta versátil
  10. Perguntas frequentes

Desembalando ethers.js

ethers.js é uma biblioteca JavaScript — um conjunto de código pré-escrito que automatiza várias funções. Usar bibliotecas JavaScript para o desenvolvimento pode minimizar o esforço de escrita de código. O processo se torna mais amigável ao usuário e, para os desenvolvedores de DApp, essas bibliotecas ajudam a oferecer funcionalidades básicas específicas de blockchain como pacotes.

Ethers.js e o ciclo de desenvolvimento: BeInCrypto

Aqui está o GitHubrepositóriopara a biblioteca.

O que são bibliotecas JavaScript?

Antes de nos aprofundarmos no ethers.js, vamos dar uma olhada mais de perto nas bibliotecas JavaScript. Essas bibliotecas são conjuntos pré-escritos de código JavaScript que podem automatizar tarefas comuns específicas. Usar bibliotecas como ethers.js pode acelerar o processo de criação de DApp e até mesmo agilizar outras interações específicas de blockchain.

Por que precisamos de bibliotecas JavaScript no Ethereum?

Ethereum evoluiu para uma plataforma descentralizada de desenvolvimento de software. Decontratos inteligentesparaDeAplicações financeiras para DApps, a codificação é fundamental para o ecossistema Ethereum. É exatamente por isso que existem bibliotecas JavaScript adaptadas ao Ethereum, como ethers.js. Usando essas bibliotecas, os desenvolvedores podem se conectar à rede, implantar e interagir com contratos inteligentes e gerenciar facilmente blockchaindados.

Sabia? Ethers.js não é a única biblioteca JavaScript Ethereum conhecida. Outra proeminente é a Web3.js, fundada pela Ethereum Foundation. Web3.js é conhecida por sua abrangente coleção de documentação e é destinada para DApps mais complexos.

Por que é importante o ethers.js?

Como mencionado anteriormente, ethers.js é voltado para desenvolvedores que interagem com o blockchain do Ethereum. Quanto à importância, esta biblioteca desenvolvida por Richard Moore, comercializada sob o nome de "Ethers", é útil para as seguintes tarefas:

  1. Simplificando várias transações Ethereum
  2. Oferece acesso a documentação abrangente e recursos
  3. Facilitando o desenvolvimento de DApp


Ecossistema do Ethers.js e os papéis que pode assumir: BeInCrypto

Aqui está um exemplo rápido do trecho de código usado para buscar o saldo atual de uma conta Ethereum. Vamos ler o código primeiro e entender como o ethers.js facilita a vida:

const { ethers } = require(‘ethers’);

// Conecte-se à rede Ethereum

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’);

// Especifique o endereço da conta

const accountAddress = ‘0xABC123…’;

// Buscar e exibir o saldo

provider.getBalance(endereçoDaConta).then((saldo) => {

// Converter o saldo de Wei para Etherconst balanceInEther = ethers.utils.formatEther(balance);console.log(`Saldo: ${balanceInEther} ETH`);

});

Neste exemplo, você pode ver claramente como o comando — ethers.providers.JsonRpcProvider — invoca um endpoint Infura, e getBalance busca o saldo. Você não precisa lidar diretamente com o JSON RPC do Ethereum ou a Chamada de Procedimento Remoto. Neste caso, você pode pensar no ethers.js como um tradutor que torna o Ethereum mais fácil e familiar para você.

Ainda não tem certeza sobre o significado do ethers.js? Aqui está uma rápida analogia.

Pense no ethers.js como um antigo cartão de biblioteca. Lembra-se de que esses cartões tinham catálogos, permitindo que você encontrasse o livro certo localizando o corredor e depois o número da prateleira? É isso que o ethers.js pretende fazer. Ele simplifica e organiza as enormes capacidades do Ethereum, permitindo que os desenvolvedores encontrem exatamente o que precisam.

https://twitter.com/wondernw/status/1764751034096800009?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1764751034096800009%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Todas as versões do Ethers.js explicadas

Ao longo dos anos, várias versões do Ethers.js surgiram, cada uma introduzindo um novo recurso ou uma correção de bug. Além disso, a numeração segue a semântica padrão, como v1.2.3, onde o primeiro número significa a versão principal e os segundo e terceiro números denotam versões secundárias e de correção. Vamos considerar apenas as atualizações da versão principal por enquanto — mudanças que podem não ser compatíveis com versões anteriores.

  1. Versão 1.x (Legado): Esta foi a versão inicial, seguida por recursos relacionados à assinatura de transações, gerenciamento de carteira e muito mais.
  2. Versão 2.x (Carteira Ethereum): Focado em utilidades e recursos da carteira, incluindo armazenamento seguro de chaves privadas.
  3. Versão 3.x (provedor de Ethers): Introduziu abstrações para se conectar a nós do Ethereum. Diferentes tipos de players foram acomodados, incluindo Infura, WebSockets e outros.
  4. Versão 4.x (contrato de Ethers): As propriedades lideradas por contratos inteligentes foram expandidas, com mais utilidades para codificação e decodificação de dados, filtros de eventos e mais.
  5. Versão 5.x: Oferece uma arquitetura modular, suporte aprimorado para ENS, tratamento abrangente de erros e muito mais.
  6. Versão 6.x: Inclusão de recursos ES6, introdução de BigInt, acessibilidade de sobrecarga e mais.


Arquitetura e componentes do Ethers.js: BeInCrypto

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Você pode encontrar mais detalhes sobre cada versão visualizando Ethers.js’documentação original.

“Ethers.js brilha com superior interoperabilidade de blockchain, suporte nativo ao TypeScript e ferramentas avançadas de depuração. É uma biblioteca enxuta e eficaz que se integra perfeitamente a estruturas populares como React, Vue, Angular etc.”

Redbelly Intern, Construtor: X

Começando com ethers.js

Antes de planejar alavancar o potencial do ethers.js, é necessário saber em que estágio do desenvolvimento de DApp ou contrato inteligente ele é invocado. Aqui está uma rápida explicação para aqueles que precisam saber e entender esses elementos do zero.

"Web3.js é amigável para iniciantes e mais conciso do que ethers.js.

Por outro lado, Ethers.js oferece mais opções e é novo; é um pouco mais complexo do que o Web3.js.

degenBRo, desenvolvedor de blockchain e Fundador da Solidity Finance: Como contado à BeInCrypto

Para começar, você primeiro precisa abrir o computador e configurar o ambiente de desenvolvimento. Isso inclui o Node.js e o Ambiente de Desenvolvimento Integrado. Note que o JavaScript geralmente é executado no navegador, mas com o Node.js, o mesmo pode ser executado no computador. É o ambiente de tempo de execução do Node.js que instala bibliotecas Javascript como o ethers.js.

Quanto ao IDE, que um desenvolvedor de software precisa para testar, você pode considerar o VS Code, Sublime Text ou qualquer outra coisa.

https://twitter.com/juniorrbn_dev/status/1765370597066862749?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370597066862749%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Instalando suporte ethers.js

O próximo passo é instalar Ethers, a biblioteca que hospeda ethers.js.

npm instalar ethers

Então, você precisa usar Ethers para se conectar ao Carteira Ethereum, pois a interação com o blockchain exigirá esta etapa para validar credenciais. Você pode usar a biblioteca Ethers instalada para isso. Aqui está o comando de exemplo:

/Related

MAIS ARTIGOS

ETF Ethereum Explicado: O Que É e Como Funciona

14 mins 15 de março de 2024 3 dias atrás

Como ser pago em Bitcoin (BTC): Tudo o que você precisa saber

25 mins 15 de março de 2024 2 dias atrás

const { ethers } = require(‘ethers’);

// Connect to the MetaMaskcarteira

const provedor = new ethers.providers.Web3Provider(window.ethereum);

Uma vez feito, você pode usar o IDE para escrever o código de solidez e criar contratos inteligentes para DApps. Ethers.js será usado para implantar o mesmo. Você pode até testar o DApp ou o contrato localmente, usando ambientes como Trufflee Hardhat. Em seguida, você implanta os contratos na rede Ethereum, para a qual é necessário o ethers.js.

const contrato = new ethers.ContractFactory(abi, bytecode, signer);

const deployedContract = await contract.deploy();

Para os não iniciados, Abi, Bytecode, Signer são termos necessários para o desenvolvimento contínuo de contratos inteligentes. Abi ou a interface binária de aplicativo é mais como o rótulo que ajuda a rede a reconhecer seus contratos inteligentes. Bytecode é a versão compilada ou melhor, pronta para a rede do contrato inteligente e o signer é a entidade que gera a assinatura.

Ethers.js para o front-end

Depois que o contrato inteligente é implantado, você precisa criar o front-end ou a interface do usuário do DApp. Para isso, você pode usar Angular ou React. Você pode até mesmo integrar Ethers.js dentro do front-end para garantir que ele possa interagir com contratos inteligentes Ethereum. Aqui está o código de exemplo para o mesmo:

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contrato = new ethers.Contract(endereçoDoContrato, contratoABI, provedor.getSigner());

Depois disso, você precisa testar o DApp em uma testnet, como Rinkeby ou Ropsten. Quando estiver satisfeito, você pode lançar o DApp na mainnet. Observe quantas vezes ao longo do processo você precisa interagir com Ethers ou ethers.js.

Recursos principais

Ethers.js se apresenta como uma biblioteca Ethereum abrangente. Aqui estão algumas das ofertas exclusivas que podem facilitar a vida dos desenvolvedores:

Fornecedores

Os provedores do Ethers.js atuam como pontes entre a rede Ethereum e o DApp em que você está trabalhando. Isso envolve simplificar a consulta de dados da blockchain e também ajudar na transmissão de transações. Infura é um dos provedores que o Ethers.js utiliza.

Aqui está o código de exemplo para o mesmo:

const { ethers } = require('ethers');

// Conectar usando Infura

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

// Verifique o número do bloco atual

provider.getBlockNumber().then((blockNumber) => {

console.log(“Número do bloco atual:”, blockNumber);

});

Carteiras

Ethers.js permite que você gerencie carteiras, permitindo que você crie novas contas, importe contas existentes, gerencie com segurança chaves privadas para assinar transações e faça mais.

Contratos

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Este componente da existência do Ethers.js suporta a instanciação de objetos. Isso torna mais fácil chamar funções de contrato específicas, mais parecido com métodos nativos do Javascript.


Ethers.js e interação com contratos inteligentes: BeInCrypto

Integração ENS

O Ethers.js pode resolver nomes ENS para seus endereços Ethereum e vice-versa. Essa funcionalidade reduz o risco de erros.

Aqui está um trecho de código de exemplo para isso:

const { ethers } = require('ethers');

const provedor = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

const ensName = ‘alice.eth’;

provider.resolveName(ensName).then((address) => {

console.log(`${ensName} é resolvido para ${address}`);

});

Além das características mencionadas, o Ethers.js também se orgulha dos seguintes aspectos ou características, ajudando os desenvolvedores com acesso direto específico ao Ethereum:

  1. Signatários
  2. Utilidades
  3. Ouvintes de eventos e filtros (destinados a ativar respostas em tempo real às ações da blockchain)
  4. Transações
  5. Suporte a várias chamadas
  6. Suporte ao TypeScript (destinado a melhorar a confiabilidade do código e a experiência geral do desenvolvedor)

Alguns benefícios de usar Ethers.js:

https://twitter.com/juniorrbn_dev/status/1765370617937736000?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370617937736000%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Como publicações cripto podem aproveitar o Ethers.js

Publicações de mídia como BeInCrypto podem aproveitar o Ethers.js para criar ferramentas avançadas e úteis da web3 do zero. Dessa forma, torna-se possível usar recursos alimentados por blockchain ou, melhor, Ethereum para aprimorar a usabilidade. Aqui estão as opções que alguém pode considerar:

Feeds de dados

Os recursos do Ethers.js podem ser usados para integrar feeds de dados cripto em tempo real, como estatísticas de rede, taxas de gás, e mais, para manter os artigos e recursos sempre atualizados. Aqui está um código de exemplo para buscar o número do bloco mais recente, digamos para o Bitcoin, para rastrear o halving em tempo real.

const { ethers } = require(‘ethers’);

const provider = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

fornecedor.getBlockNumber().then((blockNumber) => {

console.log(“Número do bloco atual:”, blockNumber);// Integre esses dados à plataforma de publicação para um feed de dados em tempo real

});

Conteúdo interativo

As publicações podem criar pedaços de conteúdo interativo, permitindo que os usuários interajam diretamente com contratos inteligentes, participem de enquetes ou até joguem pequenos jogos, se necessário.

Aqui está um trecho de código de exemplo para recuperar uma saudação específica de um marco de um contrato inteligente:

const { ethers } = require('ethers');

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contractAddress = ‘0x…’;

const contractABI = [

“função getGreeting() visualização retorna (string)”

];

const contrato = new ethers.Contract(contractAddress, contractABI, provedor);

função assíncrona displayGreeting() {

const saudação = await contrato.getGreeting();document.getElementById(‘saudação’).innerText = saudação;

Abrir conta na KuCoin & receber um bônus garantido de até 700 USDT.

  1. Comece sua jornada de negociação de criptomoedas com a KuCoin e obtenha uma vantagem inicial!
  2. Negocie com confiança na KuCoin! Nossa plataforma prioriza sua segurança, oferecendo proteção de alto nível para seus ativos digitais.
  3. Explore o vasto mundo das criptomoedas com KuCoin!

Registre-se agora!

Um exemplo do mundo real de como o Ethers.js é implantado:

https://twitter.com/ronakpal1/status/1767071343345095092?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1767071343345095092%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Publicação descentralizada

As publicações de mídia também podem considerar a publicação descentralizada, onde um fragmento de um artigo é publicado na rede blockchain. Isso pode ajudar na resistência à censura e até na integridade do conteúdo.

Aqui está um código de amostra onde o hash do artigo é armazenado online como prova de publicação:

const { ethers } = require(‘ethers’);

const carteira = new ethers.Wallet(‘YOUR_PRIVATE_KEY’, provedor);

const contentHash = ethers.utils.id("Conteúdo do artigo aqui");

const tx = await carteira.sendTransaction({

para: '0xSomeStorageContractAddress', dados: contentHash // Supondo que o contrato aceite e armazene esses dados

});

console.log('Hash da transação (prova de publicação):', tx.hash);

Estes são apenas alguns casos de uso para publicações de mídia. Mas há outros setores que podem aproveitar o poder do ethers.js. Estes incluem:

  1. Desenvolvedores de blockchain (esperados)
  2. Analistas financeiros que trabalham com DeFimétricas
  3. Desenvolvedores de jogos
  4. Criadores de conteúdo
  5. Gerentes de cadeia de suprimentos

E mais.

Aplicações do mundo real do Ethers.js

Além de ser útil em DeFi, projetos NFT e de jogos, existem alguns DApps existentes que suportam o uso do Ethers.js. Estes incluem o seguinte:

  1. Uniswap: O Ether.js interage com os contratos inteligentes inerentes da Uniswap para executar negociações, adicionar liquidez e até mesmo consultar estatísticas de pool. Neste caso, os desenvolvedores de DApps planejam construir ferramentas que interajam com a Uniswap, como bots de negociação, ferramentas de gestão de portfólio e muito mais.
  2. Aave: Os desenvolvedores de DApp e outras partes interessadas podem aproveitar as funcionalidades do Ether.js para interagir com contratos inteligentes específicos da Aave. Dessa forma, eles podem preparar a interface para empréstimo de ativos, depósito de garantias e muito mais.

Desmascarando alguns mitos sobre o Ether.js:

https://twitter.com/imashuttoshh/status/1765558806291894739?refsrc=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765558806291894739%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Considerações de segurança

Usar Ethers.js vem com um conjunto bastante extenso desegurançaconsiderações. Aqui estão algumas a seguir:

  1. É aconselhável não codificar em duro as chaves privadas dentro do código-fonte da sua aplicação.
  2. Toda interação de contrato inteligente deve ser precedida por testes e auditorias extensas dos contratos.
  3. Sempre que interagir com contratos inteligentes, use padrões seguros como “call” para tarefas somente leitura.
  4. Para otimizar o uso do ethers.js, você pode considerar o agrupamento de solicitações. Aqui é possível agrupar, por exemplo, solicitações somente para leitura para minimizar o número de chamadas de rede. Não é preciso dizer que essas técnicas de otimização podem tornar o aplicativo altamente escalável e eficiente em termos de custos.

Aqui está um exemplo de como funciona:

// Pseudocódigo para agrupar chamadas de contrato com Ethers.js (exemplo conceitual)

const contrato = new ethers.Contract(endereço, abi, provedor);

const [valor1, valor2, valor3] = await Promise.all([

contract.viewFunction1(),contract.viewFunction2(),contract.viewFunction3()

];

Ethers.js: uma ferramenta versátil

Patrocinado

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Conforme demonstrado neste guia, o Ethers.js é uma ferramenta versátil. Embora tenhamos dado uma olhada rápida em suas capacidades, a melhor maneira de entender completamente o Ethers.js é aprofundar-se no mundo dos contratos inteligentes, JavaScript, IDEs, DApps e muito mais. Além disso, juntar-se às comunidades Ethereum e Ethers também pode ser útil.

Perguntas frequentes

Como os desenvolvedores podem usar eventos Ethers.js?

Quais são as principais utilidades oferecidas pelo Ethers.js?

Qual é a conexão entre Ethers.js e Web3.js?

Aviso Legal:

  1. Este artigo é reproduzido a partir de [beincrypto], Todos os direitos autorais pertencem ao autor original [Ananda Banerjee]. Se houver objeções a esta reimpressão, por favor entre em contato com o Gate Learnequipe, e eles lidarão com isso prontamente.
  2. Responsabilidade de Isenção: As opiniões expressas neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe Gate Learn. Salvo indicação em contrário, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

O que é Ethers.js? Uma análise aprofundada da biblioteca JavaScript do Ethereum

iniciantes3/18/2024, 8:47:39 AM
O Ethereum é um protocolo de blockchain conhecido por seu conjunto de ferramentas, contratos inteligentes e ecossistema alinhado ao código, dependendo muito do ethers.js (uma biblioteca Javascript) para fornecer a potência necessária para sua abordagem centrada no desenvolvedor.

Se você está de olho no Ether (ETH) em relação a outros jogadores de criptomoedas, você deve dedicar um momento para entender o Ethereum de uma perspectiva mais técnica. Um protocolo de blockchain conhecido por sua caixa de ferramentas, contratos inteligentes e ecossistema alinhado com o código, o Ethereum depende fortemente do ethers.js - uma biblioteca Javascript - para dar à sua abordagem centrada no desenvolvedor a potência necessária.

Embora ethers.js não seja a única biblioteca JavaScript nativa do Ethereum, é a melhor opção para DApps menores. Neste guia, aprofundamos os aspectos do ethers.js, ajudando você a entender esse conceito técnico.

Neste Guia:

  1. Desempacotando ethers.js
  2. Por que o ethers.js é importante?
  3. Todas as versões do Ethers.js explicadas
  4. Começando com ethers.js
  5. Recursos principais
  6. Como publicações de criptografia podem alavancar Ethers.js
  7. Aplicações do mundo real do Ethers.js
  8. Considerações de segurança
  9. Ethers.js: uma ferramenta versátil
  10. Perguntas frequentes

Desembalando ethers.js

ethers.js é uma biblioteca JavaScript — um conjunto de código pré-escrito que automatiza várias funções. Usar bibliotecas JavaScript para o desenvolvimento pode minimizar o esforço de escrita de código. O processo se torna mais amigável ao usuário e, para os desenvolvedores de DApp, essas bibliotecas ajudam a oferecer funcionalidades básicas específicas de blockchain como pacotes.

Ethers.js e o ciclo de desenvolvimento: BeInCrypto

Aqui está o GitHubrepositóriopara a biblioteca.

O que são bibliotecas JavaScript?

Antes de nos aprofundarmos no ethers.js, vamos dar uma olhada mais de perto nas bibliotecas JavaScript. Essas bibliotecas são conjuntos pré-escritos de código JavaScript que podem automatizar tarefas comuns específicas. Usar bibliotecas como ethers.js pode acelerar o processo de criação de DApp e até mesmo agilizar outras interações específicas de blockchain.

Por que precisamos de bibliotecas JavaScript no Ethereum?

Ethereum evoluiu para uma plataforma descentralizada de desenvolvimento de software. Decontratos inteligentesparaDeAplicações financeiras para DApps, a codificação é fundamental para o ecossistema Ethereum. É exatamente por isso que existem bibliotecas JavaScript adaptadas ao Ethereum, como ethers.js. Usando essas bibliotecas, os desenvolvedores podem se conectar à rede, implantar e interagir com contratos inteligentes e gerenciar facilmente blockchaindados.

Sabia? Ethers.js não é a única biblioteca JavaScript Ethereum conhecida. Outra proeminente é a Web3.js, fundada pela Ethereum Foundation. Web3.js é conhecida por sua abrangente coleção de documentação e é destinada para DApps mais complexos.

Por que é importante o ethers.js?

Como mencionado anteriormente, ethers.js é voltado para desenvolvedores que interagem com o blockchain do Ethereum. Quanto à importância, esta biblioteca desenvolvida por Richard Moore, comercializada sob o nome de "Ethers", é útil para as seguintes tarefas:

  1. Simplificando várias transações Ethereum
  2. Oferece acesso a documentação abrangente e recursos
  3. Facilitando o desenvolvimento de DApp


Ecossistema do Ethers.js e os papéis que pode assumir: BeInCrypto

Aqui está um exemplo rápido do trecho de código usado para buscar o saldo atual de uma conta Ethereum. Vamos ler o código primeiro e entender como o ethers.js facilita a vida:

const { ethers } = require(‘ethers’);

// Conecte-se à rede Ethereum

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’);

// Especifique o endereço da conta

const accountAddress = ‘0xABC123…’;

// Buscar e exibir o saldo

provider.getBalance(endereçoDaConta).then((saldo) => {

// Converter o saldo de Wei para Etherconst balanceInEther = ethers.utils.formatEther(balance);console.log(`Saldo: ${balanceInEther} ETH`);

});

Neste exemplo, você pode ver claramente como o comando — ethers.providers.JsonRpcProvider — invoca um endpoint Infura, e getBalance busca o saldo. Você não precisa lidar diretamente com o JSON RPC do Ethereum ou a Chamada de Procedimento Remoto. Neste caso, você pode pensar no ethers.js como um tradutor que torna o Ethereum mais fácil e familiar para você.

Ainda não tem certeza sobre o significado do ethers.js? Aqui está uma rápida analogia.

Pense no ethers.js como um antigo cartão de biblioteca. Lembra-se de que esses cartões tinham catálogos, permitindo que você encontrasse o livro certo localizando o corredor e depois o número da prateleira? É isso que o ethers.js pretende fazer. Ele simplifica e organiza as enormes capacidades do Ethereum, permitindo que os desenvolvedores encontrem exatamente o que precisam.

https://twitter.com/wondernw/status/1764751034096800009?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1764751034096800009%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Todas as versões do Ethers.js explicadas

Ao longo dos anos, várias versões do Ethers.js surgiram, cada uma introduzindo um novo recurso ou uma correção de bug. Além disso, a numeração segue a semântica padrão, como v1.2.3, onde o primeiro número significa a versão principal e os segundo e terceiro números denotam versões secundárias e de correção. Vamos considerar apenas as atualizações da versão principal por enquanto — mudanças que podem não ser compatíveis com versões anteriores.

  1. Versão 1.x (Legado): Esta foi a versão inicial, seguida por recursos relacionados à assinatura de transações, gerenciamento de carteira e muito mais.
  2. Versão 2.x (Carteira Ethereum): Focado em utilidades e recursos da carteira, incluindo armazenamento seguro de chaves privadas.
  3. Versão 3.x (provedor de Ethers): Introduziu abstrações para se conectar a nós do Ethereum. Diferentes tipos de players foram acomodados, incluindo Infura, WebSockets e outros.
  4. Versão 4.x (contrato de Ethers): As propriedades lideradas por contratos inteligentes foram expandidas, com mais utilidades para codificação e decodificação de dados, filtros de eventos e mais.
  5. Versão 5.x: Oferece uma arquitetura modular, suporte aprimorado para ENS, tratamento abrangente de erros e muito mais.
  6. Versão 6.x: Inclusão de recursos ES6, introdução de BigInt, acessibilidade de sobrecarga e mais.


Arquitetura e componentes do Ethers.js: BeInCrypto

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Você pode encontrar mais detalhes sobre cada versão visualizando Ethers.js’documentação original.

“Ethers.js brilha com superior interoperabilidade de blockchain, suporte nativo ao TypeScript e ferramentas avançadas de depuração. É uma biblioteca enxuta e eficaz que se integra perfeitamente a estruturas populares como React, Vue, Angular etc.”

Redbelly Intern, Construtor: X

Começando com ethers.js

Antes de planejar alavancar o potencial do ethers.js, é necessário saber em que estágio do desenvolvimento de DApp ou contrato inteligente ele é invocado. Aqui está uma rápida explicação para aqueles que precisam saber e entender esses elementos do zero.

"Web3.js é amigável para iniciantes e mais conciso do que ethers.js.

Por outro lado, Ethers.js oferece mais opções e é novo; é um pouco mais complexo do que o Web3.js.

degenBRo, desenvolvedor de blockchain e Fundador da Solidity Finance: Como contado à BeInCrypto

Para começar, você primeiro precisa abrir o computador e configurar o ambiente de desenvolvimento. Isso inclui o Node.js e o Ambiente de Desenvolvimento Integrado. Note que o JavaScript geralmente é executado no navegador, mas com o Node.js, o mesmo pode ser executado no computador. É o ambiente de tempo de execução do Node.js que instala bibliotecas Javascript como o ethers.js.

Quanto ao IDE, que um desenvolvedor de software precisa para testar, você pode considerar o VS Code, Sublime Text ou qualquer outra coisa.

https://twitter.com/juniorrbn_dev/status/1765370597066862749?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370597066862749%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Instalando suporte ethers.js

O próximo passo é instalar Ethers, a biblioteca que hospeda ethers.js.

npm instalar ethers

Então, você precisa usar Ethers para se conectar ao Carteira Ethereum, pois a interação com o blockchain exigirá esta etapa para validar credenciais. Você pode usar a biblioteca Ethers instalada para isso. Aqui está o comando de exemplo:

/Related

MAIS ARTIGOS

ETF Ethereum Explicado: O Que É e Como Funciona

14 mins 15 de março de 2024 3 dias atrás

Como ser pago em Bitcoin (BTC): Tudo o que você precisa saber

25 mins 15 de março de 2024 2 dias atrás

const { ethers } = require(‘ethers’);

// Connect to the MetaMaskcarteira

const provedor = new ethers.providers.Web3Provider(window.ethereum);

Uma vez feito, você pode usar o IDE para escrever o código de solidez e criar contratos inteligentes para DApps. Ethers.js será usado para implantar o mesmo. Você pode até testar o DApp ou o contrato localmente, usando ambientes como Trufflee Hardhat. Em seguida, você implanta os contratos na rede Ethereum, para a qual é necessário o ethers.js.

const contrato = new ethers.ContractFactory(abi, bytecode, signer);

const deployedContract = await contract.deploy();

Para os não iniciados, Abi, Bytecode, Signer são termos necessários para o desenvolvimento contínuo de contratos inteligentes. Abi ou a interface binária de aplicativo é mais como o rótulo que ajuda a rede a reconhecer seus contratos inteligentes. Bytecode é a versão compilada ou melhor, pronta para a rede do contrato inteligente e o signer é a entidade que gera a assinatura.

Ethers.js para o front-end

Depois que o contrato inteligente é implantado, você precisa criar o front-end ou a interface do usuário do DApp. Para isso, você pode usar Angular ou React. Você pode até mesmo integrar Ethers.js dentro do front-end para garantir que ele possa interagir com contratos inteligentes Ethereum. Aqui está o código de exemplo para o mesmo:

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contrato = new ethers.Contract(endereçoDoContrato, contratoABI, provedor.getSigner());

Depois disso, você precisa testar o DApp em uma testnet, como Rinkeby ou Ropsten. Quando estiver satisfeito, você pode lançar o DApp na mainnet. Observe quantas vezes ao longo do processo você precisa interagir com Ethers ou ethers.js.

Recursos principais

Ethers.js se apresenta como uma biblioteca Ethereum abrangente. Aqui estão algumas das ofertas exclusivas que podem facilitar a vida dos desenvolvedores:

Fornecedores

Os provedores do Ethers.js atuam como pontes entre a rede Ethereum e o DApp em que você está trabalhando. Isso envolve simplificar a consulta de dados da blockchain e também ajudar na transmissão de transações. Infura é um dos provedores que o Ethers.js utiliza.

Aqui está o código de exemplo para o mesmo:

const { ethers } = require('ethers');

// Conectar usando Infura

const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

// Verifique o número do bloco atual

provider.getBlockNumber().then((blockNumber) => {

console.log(“Número do bloco atual:”, blockNumber);

});

Carteiras

Ethers.js permite que você gerencie carteiras, permitindo que você crie novas contas, importe contas existentes, gerencie com segurança chaves privadas para assinar transações e faça mais.

Contratos

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Este componente da existência do Ethers.js suporta a instanciação de objetos. Isso torna mais fácil chamar funções de contrato específicas, mais parecido com métodos nativos do Javascript.


Ethers.js e interação com contratos inteligentes: BeInCrypto

Integração ENS

O Ethers.js pode resolver nomes ENS para seus endereços Ethereum e vice-versa. Essa funcionalidade reduz o risco de erros.

Aqui está um trecho de código de exemplo para isso:

const { ethers } = require('ethers');

const provedor = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

const ensName = ‘alice.eth’;

provider.resolveName(ensName).then((address) => {

console.log(`${ensName} é resolvido para ${address}`);

});

Além das características mencionadas, o Ethers.js também se orgulha dos seguintes aspectos ou características, ajudando os desenvolvedores com acesso direto específico ao Ethereum:

  1. Signatários
  2. Utilidades
  3. Ouvintes de eventos e filtros (destinados a ativar respostas em tempo real às ações da blockchain)
  4. Transações
  5. Suporte a várias chamadas
  6. Suporte ao TypeScript (destinado a melhorar a confiabilidade do código e a experiência geral do desenvolvedor)

Alguns benefícios de usar Ethers.js:

https://twitter.com/juniorrbn_dev/status/1765370617937736000?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765370617937736000%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Como publicações cripto podem aproveitar o Ethers.js

Publicações de mídia como BeInCrypto podem aproveitar o Ethers.js para criar ferramentas avançadas e úteis da web3 do zero. Dessa forma, torna-se possível usar recursos alimentados por blockchain ou, melhor, Ethereum para aprimorar a usabilidade. Aqui estão as opções que alguém pode considerar:

Feeds de dados

Os recursos do Ethers.js podem ser usados para integrar feeds de dados cripto em tempo real, como estatísticas de rede, taxas de gás, e mais, para manter os artigos e recursos sempre atualizados. Aqui está um código de exemplo para buscar o número do bloco mais recente, digamos para o Bitcoin, para rastrear o halving em tempo real.

const { ethers } = require(‘ethers’);

const provider = new ethers.providers.JsonRpcProvider(‘https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);

fornecedor.getBlockNumber().then((blockNumber) => {

console.log(“Número do bloco atual:”, blockNumber);// Integre esses dados à plataforma de publicação para um feed de dados em tempo real

});

Conteúdo interativo

As publicações podem criar pedaços de conteúdo interativo, permitindo que os usuários interajam diretamente com contratos inteligentes, participem de enquetes ou até joguem pequenos jogos, se necessário.

Aqui está um trecho de código de exemplo para recuperar uma saudação específica de um marco de um contrato inteligente:

const { ethers } = require('ethers');

const provider = new ethers.providers.Web3Provider(window.ethereum);

const contractAddress = ‘0x…’;

const contractABI = [

“função getGreeting() visualização retorna (string)”

];

const contrato = new ethers.Contract(contractAddress, contractABI, provedor);

função assíncrona displayGreeting() {

const saudação = await contrato.getGreeting();document.getElementById(‘saudação’).innerText = saudação;

Abrir conta na KuCoin & receber um bônus garantido de até 700 USDT.

  1. Comece sua jornada de negociação de criptomoedas com a KuCoin e obtenha uma vantagem inicial!
  2. Negocie com confiança na KuCoin! Nossa plataforma prioriza sua segurança, oferecendo proteção de alto nível para seus ativos digitais.
  3. Explore o vasto mundo das criptomoedas com KuCoin!

Registre-se agora!

Um exemplo do mundo real de como o Ethers.js é implantado:

https://twitter.com/ronakpal1/status/1767071343345095092?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1767071343345095092%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Publicação descentralizada

As publicações de mídia também podem considerar a publicação descentralizada, onde um fragmento de um artigo é publicado na rede blockchain. Isso pode ajudar na resistência à censura e até na integridade do conteúdo.

Aqui está um código de amostra onde o hash do artigo é armazenado online como prova de publicação:

const { ethers } = require(‘ethers’);

const carteira = new ethers.Wallet(‘YOUR_PRIVATE_KEY’, provedor);

const contentHash = ethers.utils.id("Conteúdo do artigo aqui");

const tx = await carteira.sendTransaction({

para: '0xSomeStorageContractAddress', dados: contentHash // Supondo que o contrato aceite e armazene esses dados

});

console.log('Hash da transação (prova de publicação):', tx.hash);

Estes são apenas alguns casos de uso para publicações de mídia. Mas há outros setores que podem aproveitar o poder do ethers.js. Estes incluem:

  1. Desenvolvedores de blockchain (esperados)
  2. Analistas financeiros que trabalham com DeFimétricas
  3. Desenvolvedores de jogos
  4. Criadores de conteúdo
  5. Gerentes de cadeia de suprimentos

E mais.

Aplicações do mundo real do Ethers.js

Além de ser útil em DeFi, projetos NFT e de jogos, existem alguns DApps existentes que suportam o uso do Ethers.js. Estes incluem o seguinte:

  1. Uniswap: O Ether.js interage com os contratos inteligentes inerentes da Uniswap para executar negociações, adicionar liquidez e até mesmo consultar estatísticas de pool. Neste caso, os desenvolvedores de DApps planejam construir ferramentas que interajam com a Uniswap, como bots de negociação, ferramentas de gestão de portfólio e muito mais.
  2. Aave: Os desenvolvedores de DApp e outras partes interessadas podem aproveitar as funcionalidades do Ether.js para interagir com contratos inteligentes específicos da Aave. Dessa forma, eles podem preparar a interface para empréstimo de ativos, depósito de garantias e muito mais.

Desmascarando alguns mitos sobre o Ether.js:

https://twitter.com/imashuttoshh/status/1765558806291894739?refsrc=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765558806291894739%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F

Considerações de segurança

Usar Ethers.js vem com um conjunto bastante extenso desegurançaconsiderações. Aqui estão algumas a seguir:

  1. É aconselhável não codificar em duro as chaves privadas dentro do código-fonte da sua aplicação.
  2. Toda interação de contrato inteligente deve ser precedida por testes e auditorias extensas dos contratos.
  3. Sempre que interagir com contratos inteligentes, use padrões seguros como “call” para tarefas somente leitura.
  4. Para otimizar o uso do ethers.js, você pode considerar o agrupamento de solicitações. Aqui é possível agrupar, por exemplo, solicitações somente para leitura para minimizar o número de chamadas de rede. Não é preciso dizer que essas técnicas de otimização podem tornar o aplicativo altamente escalável e eficiente em termos de custos.

Aqui está um exemplo de como funciona:

// Pseudocódigo para agrupar chamadas de contrato com Ethers.js (exemplo conceitual)

const contrato = new ethers.Contract(endereço, abi, provedor);

const [valor1, valor2, valor3] = await Promise.all([

contract.viewFunction1(),contract.viewFunction2(),contract.viewFunction3()

];

Ethers.js: uma ferramenta versátil

Patrocinado

https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd

Conforme demonstrado neste guia, o Ethers.js é uma ferramenta versátil. Embora tenhamos dado uma olhada rápida em suas capacidades, a melhor maneira de entender completamente o Ethers.js é aprofundar-se no mundo dos contratos inteligentes, JavaScript, IDEs, DApps e muito mais. Além disso, juntar-se às comunidades Ethereum e Ethers também pode ser útil.

Perguntas frequentes

Como os desenvolvedores podem usar eventos Ethers.js?

Quais são as principais utilidades oferecidas pelo Ethers.js?

Qual é a conexão entre Ethers.js e Web3.js?

Aviso Legal:

  1. Este artigo é reproduzido a partir de [beincrypto], Todos os direitos autorais pertencem ao autor original [Ananda Banerjee]. Se houver objeções a esta reimpressão, por favor entre em contato com o Gate Learnequipe, e eles lidarão com isso prontamente.
  2. Responsabilidade de Isenção: As opiniões expressas neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe Gate Learn. Salvo indicação em contrário, copiar, distribuir ou plagiar os artigos traduzidos é proibido.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!