O que é Ethers.js? Uma Profunda Imersão na Biblioteca JavaScript do Ethereum

Principiante3/18/2024, 8:47:39 AM
Ethereum é um protocolo blockchain conhecido pela sua caixa de ferramentas, contratos inteligentes e ecossistema alinhado com o código, dependendo fortemente do ethers.js (uma biblioteca Javascript) para fornecer a potência necessária para a sua abordagem centrada no programador.

Se estiver de olho no Éter (ETH) em relação a outros jogadores de criptomoedas, deve dedicar um momento a compreender o Ethereum de uma perspetiva mais técnica. Um protocolo blockchain conhecido pelo seu conjunto de ferramentas, contratos inteligentes e ecossistema alinhado com o código, o Ethereum depende muito do ethers.js - uma biblioteca Javascript - para conferir a potência necessária à sua abordagem centrada no desenvolvedor.

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-o a compreender este conceito técnico.

Neste Guia:

  1. Descompactando ethers.js
  2. Porque é importante o ethers.js?
  3. Todas as versões do Ethers.js explicadas
  4. Começar com ethers.js
  5. Funcionalidades principais
  6. Como as publicações de criptomoedas podem aproveitar o 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

Desempacotando ethers.js

ethers.js é uma biblioteca JavaScript - um conjunto de código pré-escrito que automatiza várias funções. Usar bibliotecas JavaScript para desenvolvimento pode minimizar o esforço de escrita de código. O processo torna-se 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. Estas bibliotecas são conjuntos de código JavaScript pré-escrito que podem automatizar tarefas comuns específicas. Utilizar bibliotecas como o ethers.js pode acelerar o processo de criação do DApp e até acelerar outras interações específicas da blockchain.

Porque precisamos de bibliotecas JavaScript no Ethereum?

O Ethereum evoluiu para uma plataforma de desenvolvimento de software descentralizada. De contratos inteligentesparaDeDesde aplicações financeiras até DApps, a codificação é fundamental para o ecossistema do 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 facilmenteblockchaindados.

Sabia que? Ethers.js não é a única biblioteca JavaScript Ethereum conhecida. Outra proeminente é a Web3.js, fundada pela Ethereum Foundation. Web3.js é conhecida pela sua vasta coleção de documentação e destina-se a DApps mais complexas.

Porque é importante o ethers.js?

Como mencionado anteriormente, ethers.js destina-se a desenvolvedores que interagem com a blockchain Ethereum. Quanto à importância, esta biblioteca desenvolvida por Richard Moore, comercializada sob o nome de 'Éter', é útil para as seguintes tarefas:

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


Ecossistema 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 perceber como o ethers.js facilita a vida:

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

// Conectar à rede Ethereum

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

// Especificar 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 Éter const balanceInEther = ethers.utils.formatEther(balance); console.log(`Saldo: ${balanceInEther} ETH`);

});

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

Ainda não tem a 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. 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, surgiram várias versões do Ethers.js, 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 o principal e os segundo e terceiro números denotam as versões secundárias e de correção. Por agora, apenas consideraremos as atualizações da versão principal — mudanças que podem não ser compatíveis com versões anteriores.

  1. Versão 1.x (Legado): Este foi o lançamento inicial, seguido por funcionalidades relacionadas com a assinatura de transações, gestão de carteiras e muito mais.
  2. Versão 2.x (Carteira Ethers): Focado em utilitários e funcionalidades da carteira, incluindo armazenamento seguro de chaves privadas.
  3. Versão 3.x (provedor de Éter): Introduzidas abstrações para conexão a nós de Ethereum. Diferentes tipos de players foram acomodados, incluindo Infura, WebSockets e mais.
  4. Versão 4.x (contrato Ethers): As propriedades lideradas por contratos inteligentes foram expandidas, com mais utilidades para codificação e decodificação de dados, filtros de eventos e muito 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 funcionalidades 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

Pode encontrar mais detalhes sobre cada versão ao visualizar Ethers.js’documentação original.

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

Redbelly Intern, Builder: X

Começar com ethers.js

Antes de planear alavancar o potencial do ethers.js, é necessário saber em que fase do desenvolvimento do DApp ou contrato inteligente é invocado. Aqui está uma rápida análise para aqueles que precisam de conhecer e entender estes elementos desde o início.

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

Ethers.js, por outro lado, 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 ao BeInCrypto

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

Quanto ao IDE, que um desenvolvedor de software precisa testar, 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 Éter, a biblioteca que hospeda ethers.js.

npm instalar ethers

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

/Relacionado

MAIS ARTIGOS

ETF Ethereum explicado: o que é e como funciona

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

Como Receber Pagamentos em Bitcoin (BTC): Tudo o Que Precisa Saber

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

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

// Conectar ao MetaMaskcarteira

const provider = 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ê também pode 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 = nova Fábrica de Contrato(abi, bytecode, signatário);

const deployedContract = await contract.deploy();

Para o não iniciado, Abi, Bytecode, Signer são termos necessários para um desenvolvimento contínuo de contratos inteligentes. Abi ou a interface binária de aplicação é mais como o rótulo que ajuda a rede a reconhecer os 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.

Éter.js para o front-end

Uma vez que o contrato inteligente é implantado, você precisa construir o front-end ou a interface do usuário do DApp. Para isso, você pode usar Angular ou React. Você pode até integrar o Ethers.js no 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 = novo ethers.Contract(endereçoContrato, contratoABI, provedor.getSigner());

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

Funcionalidades principais

Ethers.js surge 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 funcionam como pontes entre a rede Ethereum e o DApp em que está a trabalhar. Isso envolve simplificar a consulta de dados da blockchain e também ajuda a transmitir transações. A 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’);

// Verificar o número do bloco atual

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

console.log("Número de bloco atual:", blockNumber);

});

Carteiras

Ethers.js permite-lhe gerir carteiras, permitindo-lhe criar novas contas, importar contas existentes, gerir de forma segura chaves privadas para assinar transações e muito 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 Javascript nativos.


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

Integração ENS

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

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

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

const provider = 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}`);

});

Para além das funcionalidades mencionadas, o Ethers.js também apresenta os seguintes aspetos ou funcionalidades, ajudando os programadores com acesso direto específico ao Ethereum:

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

Algumas vantagens 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 de criptomoedas podem aproveitar o Ethers.js

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

Feeds de dados

As funcionalidades do Ethers.js podem ser usadas 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 atuais. Aqui está um código de exemplo para obter o número do bloco mais recente, digamos para 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’);

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

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

});

Conteúdo interativo

As publicações podem criar pequenos conteúdos interativos, permitindo que os utilizadores interajam diretamente com contratos inteligentes, participem em sondagens ou até mesmo joguem pequenos jogos, se necessário.

Aqui está um trecho de código de exemplo para recuperar uma saudação específica do 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, provider);

função async displayGreeting() {

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

}

Abrir conta na KuCoin & obter um bónus garantido até 700 USDT.

  1. Inicie a sua jornada de negociação de criptomoedas com KuCoin e tenha uma vantagem inicial!
  2. Negocie com confiança na KuCoin! Nossa plataforma prioriza sua segurança, oferecendo proteção de primeira linha para seus ativos digitais.
  3. Explore o vasto mundo das criptomoedas com a KuCoin!

Registe-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 da mídia também podem considerar a publicação descentralizada, onde um resquício de um artigo é publicado na rede blockchain. Isso pode ajudar na resistência à censura e até mesmo na integridade do conteúdo.

Aqui está um código de exemplo onde o hash do artigo é armazenado on-line 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: ‘0xEndereçoDoContratoDeArmazenamento’, dados: hashDeConteúdo // Assumindo que o contrato aceita e armazena esses dados

});

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

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

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

E mais.

Aplicações do mundo real de Ethers.js

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

  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 DApp 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 Éter.js para interagir com contratos inteligentes específicos da Aave. Desta forma, podem preparar a interface para pedir emprestado ativos, depositar garantias e fazer mais.

Desmascarando alguns mitos sobre o Ethers.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 chaves privadas dentro do código-fonte da sua aplicação.
  2. Cada interação com contrato inteligente deve ser precedida por testes e auditorias extensivas dos contratos.
  3. Sempre que interagir com contratos inteligentes, utilize padrões seguros como "chamada" para tarefas de leitura apenas.
  4. Para otimizar o uso do ethers.js, você pode considerar a realização de requisições em lote. É aqui que você pode agrupar, por exemplo, requisições somente leitura para minimizar o número de chamadas de rede. Não é preciso dizer que essas técnicas de otimização podem tornar a aplicação altamente escalável e econômica.

Aqui está um exemplo de como funciona:

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

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

Como demonstrado neste guia, o Ethers.js é uma ferramenta versátil. Embora tenhamos dado uma rápida olhada 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 podem os desenvolvedores usar eventos Ethers.js?

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

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

Aviso legal:

  1. Este artigo é reproduzido a partir de [beincrypto], Todos os direitos de autor pertencem ao autor original [Ananda Banerjee]. Se houver objeções a esta reimpressão, por favor entre em contato com o Gate Learnequipa, e eles tratarão disso prontamente.
  2. Isenção de Responsabilidade: 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, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

O que é Ethers.js? Uma Profunda Imersão na Biblioteca JavaScript do Ethereum

Principiante3/18/2024, 8:47:39 AM
Ethereum é um protocolo blockchain conhecido pela sua caixa de ferramentas, contratos inteligentes e ecossistema alinhado com o código, dependendo fortemente do ethers.js (uma biblioteca Javascript) para fornecer a potência necessária para a sua abordagem centrada no programador.

Se estiver de olho no Éter (ETH) em relação a outros jogadores de criptomoedas, deve dedicar um momento a compreender o Ethereum de uma perspetiva mais técnica. Um protocolo blockchain conhecido pelo seu conjunto de ferramentas, contratos inteligentes e ecossistema alinhado com o código, o Ethereum depende muito do ethers.js - uma biblioteca Javascript - para conferir a potência necessária à sua abordagem centrada no desenvolvedor.

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-o a compreender este conceito técnico.

Neste Guia:

  1. Descompactando ethers.js
  2. Porque é importante o ethers.js?
  3. Todas as versões do Ethers.js explicadas
  4. Começar com ethers.js
  5. Funcionalidades principais
  6. Como as publicações de criptomoedas podem aproveitar o 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

Desempacotando ethers.js

ethers.js é uma biblioteca JavaScript - um conjunto de código pré-escrito que automatiza várias funções. Usar bibliotecas JavaScript para desenvolvimento pode minimizar o esforço de escrita de código. O processo torna-se 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. Estas bibliotecas são conjuntos de código JavaScript pré-escrito que podem automatizar tarefas comuns específicas. Utilizar bibliotecas como o ethers.js pode acelerar o processo de criação do DApp e até acelerar outras interações específicas da blockchain.

Porque precisamos de bibliotecas JavaScript no Ethereum?

O Ethereum evoluiu para uma plataforma de desenvolvimento de software descentralizada. De contratos inteligentesparaDeDesde aplicações financeiras até DApps, a codificação é fundamental para o ecossistema do 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 facilmenteblockchaindados.

Sabia que? Ethers.js não é a única biblioteca JavaScript Ethereum conhecida. Outra proeminente é a Web3.js, fundada pela Ethereum Foundation. Web3.js é conhecida pela sua vasta coleção de documentação e destina-se a DApps mais complexas.

Porque é importante o ethers.js?

Como mencionado anteriormente, ethers.js destina-se a desenvolvedores que interagem com a blockchain Ethereum. Quanto à importância, esta biblioteca desenvolvida por Richard Moore, comercializada sob o nome de 'Éter', é útil para as seguintes tarefas:

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


Ecossistema 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 perceber como o ethers.js facilita a vida:

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

// Conectar à rede Ethereum

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

// Especificar 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 Éter const balanceInEther = ethers.utils.formatEther(balance); console.log(`Saldo: ${balanceInEther} ETH`);

});

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

Ainda não tem a 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. 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, surgiram várias versões do Ethers.js, 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 o principal e os segundo e terceiro números denotam as versões secundárias e de correção. Por agora, apenas consideraremos as atualizações da versão principal — mudanças que podem não ser compatíveis com versões anteriores.

  1. Versão 1.x (Legado): Este foi o lançamento inicial, seguido por funcionalidades relacionadas com a assinatura de transações, gestão de carteiras e muito mais.
  2. Versão 2.x (Carteira Ethers): Focado em utilitários e funcionalidades da carteira, incluindo armazenamento seguro de chaves privadas.
  3. Versão 3.x (provedor de Éter): Introduzidas abstrações para conexão a nós de Ethereum. Diferentes tipos de players foram acomodados, incluindo Infura, WebSockets e mais.
  4. Versão 4.x (contrato Ethers): As propriedades lideradas por contratos inteligentes foram expandidas, com mais utilidades para codificação e decodificação de dados, filtros de eventos e muito 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 funcionalidades 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

Pode encontrar mais detalhes sobre cada versão ao visualizar Ethers.js’documentação original.

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

Redbelly Intern, Builder: X

Começar com ethers.js

Antes de planear alavancar o potencial do ethers.js, é necessário saber em que fase do desenvolvimento do DApp ou contrato inteligente é invocado. Aqui está uma rápida análise para aqueles que precisam de conhecer e entender estes elementos desde o início.

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

Ethers.js, por outro lado, 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 ao BeInCrypto

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

Quanto ao IDE, que um desenvolvedor de software precisa testar, 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 Éter, a biblioteca que hospeda ethers.js.

npm instalar ethers

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

/Relacionado

MAIS ARTIGOS

ETF Ethereum explicado: o que é e como funciona

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

Como Receber Pagamentos em Bitcoin (BTC): Tudo o Que Precisa Saber

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

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

// Conectar ao MetaMaskcarteira

const provider = 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ê também pode 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 = nova Fábrica de Contrato(abi, bytecode, signatário);

const deployedContract = await contract.deploy();

Para o não iniciado, Abi, Bytecode, Signer são termos necessários para um desenvolvimento contínuo de contratos inteligentes. Abi ou a interface binária de aplicação é mais como o rótulo que ajuda a rede a reconhecer os 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.

Éter.js para o front-end

Uma vez que o contrato inteligente é implantado, você precisa construir o front-end ou a interface do usuário do DApp. Para isso, você pode usar Angular ou React. Você pode até integrar o Ethers.js no 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 = novo ethers.Contract(endereçoContrato, contratoABI, provedor.getSigner());

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

Funcionalidades principais

Ethers.js surge 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 funcionam como pontes entre a rede Ethereum e o DApp em que está a trabalhar. Isso envolve simplificar a consulta de dados da blockchain e também ajuda a transmitir transações. A 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’);

// Verificar o número do bloco atual

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

console.log("Número de bloco atual:", blockNumber);

});

Carteiras

Ethers.js permite-lhe gerir carteiras, permitindo-lhe criar novas contas, importar contas existentes, gerir de forma segura chaves privadas para assinar transações e muito 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 Javascript nativos.


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

Integração ENS

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

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

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

const provider = 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}`);

});

Para além das funcionalidades mencionadas, o Ethers.js também apresenta os seguintes aspetos ou funcionalidades, ajudando os programadores com acesso direto específico ao Ethereum:

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

Algumas vantagens 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 de criptomoedas podem aproveitar o Ethers.js

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

Feeds de dados

As funcionalidades do Ethers.js podem ser usadas 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 atuais. Aqui está um código de exemplo para obter o número do bloco mais recente, digamos para 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’);

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

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

});

Conteúdo interativo

As publicações podem criar pequenos conteúdos interativos, permitindo que os utilizadores interajam diretamente com contratos inteligentes, participem em sondagens ou até mesmo joguem pequenos jogos, se necessário.

Aqui está um trecho de código de exemplo para recuperar uma saudação específica do 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, provider);

função async displayGreeting() {

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

}

Abrir conta na KuCoin & obter um bónus garantido até 700 USDT.

  1. Inicie a sua jornada de negociação de criptomoedas com KuCoin e tenha uma vantagem inicial!
  2. Negocie com confiança na KuCoin! Nossa plataforma prioriza sua segurança, oferecendo proteção de primeira linha para seus ativos digitais.
  3. Explore o vasto mundo das criptomoedas com a KuCoin!

Registe-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 da mídia também podem considerar a publicação descentralizada, onde um resquício de um artigo é publicado na rede blockchain. Isso pode ajudar na resistência à censura e até mesmo na integridade do conteúdo.

Aqui está um código de exemplo onde o hash do artigo é armazenado on-line 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: ‘0xEndereçoDoContratoDeArmazenamento’, dados: hashDeConteúdo // Assumindo que o contrato aceita e armazena esses dados

});

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

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

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

E mais.

Aplicações do mundo real de Ethers.js

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

  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 DApp 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 Éter.js para interagir com contratos inteligentes específicos da Aave. Desta forma, podem preparar a interface para pedir emprestado ativos, depositar garantias e fazer mais.

Desmascarando alguns mitos sobre o Ethers.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 chaves privadas dentro do código-fonte da sua aplicação.
  2. Cada interação com contrato inteligente deve ser precedida por testes e auditorias extensivas dos contratos.
  3. Sempre que interagir com contratos inteligentes, utilize padrões seguros como "chamada" para tarefas de leitura apenas.
  4. Para otimizar o uso do ethers.js, você pode considerar a realização de requisições em lote. É aqui que você pode agrupar, por exemplo, requisições somente leitura para minimizar o número de chamadas de rede. Não é preciso dizer que essas técnicas de otimização podem tornar a aplicação altamente escalável e econômica.

Aqui está um exemplo de como funciona:

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

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

Como demonstrado neste guia, o Ethers.js é uma ferramenta versátil. Embora tenhamos dado uma rápida olhada 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 podem os desenvolvedores usar eventos Ethers.js?

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

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

Aviso legal:

  1. Este artigo é reproduzido a partir de [beincrypto], Todos os direitos de autor pertencem ao autor original [Ananda Banerjee]. Se houver objeções a esta reimpressão, por favor entre em contato com o Gate Learnequipa, e eles tratarão disso prontamente.
  2. Isenção de Responsabilidade: 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, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
即刻开始交易
注册并交易即可获得
$100
和价值
$5500
理财体验金奖励!