他の暗号通貨プレイヤーに目を向けるよりもEther(ETH)に注目している場合は、より技術的な観点からEthereumを理解するための時間を取るべきです。ツールキット、スマートコントラクト、コードに沿ったエコシステムで知られるブロックチェーンプロトコル、Ethereumは、開発者中心のアプローチに必要な効力を与えるために、ethers.jsというJavascriptライブラリに重点を置いています。
ethers.jsは唯一のEthereumネイティブJavaScriptライブラリではありませんが、小規模なDAppsにとってはより良い選択肢です。このガイドでは、ethers.jsの側面にさらに深く踏み込み、この技術的概念を理解するのに役立ちます。
このガイドでは:
Ethers.jsと開発サイクル:BeInCryptoこちらがGitHubですリポジトリ図書館用。
Ethers.jsは唯一の有名なEthereum Javascriptライブラリではありません。もう1つの著名なものは、Ethereum Foundationによって設立されたWeb3.jsです。Web3.jsは包括的なドキュメントコレクションで知られており、より複雑なDApps向けに作られています。
Ethers.jsエコシステムとそれが担う役割:BeInCryptoここには、Ethereumアカウントの現在の残高を取得するために使用されるコードスニペットの簡単な例があります。まず、コードを読んで、ethers.jsがどのように生活を楽にしているかを理解しましょう。const { ethers } = require(‘ethers’);
// イーサリアムネットワークに接続します
const provider = new ethers.providers.JsonRpcProvider('https://mainnet.infura.io/v3/YOUR_INFURA_API_KEY’);
// アカウントアドレスを指定します
const accountAddress = ‘0xABC123…’;
// バランスを取得して表示します
provider.getBalance(accountAddress).then((balance) => {
// WeiからEtherに残高を変換const balanceInEther = ethers.utils.formatEther(balance);console.log(`残高:${balanceInEther} ETH`);
```});
この例では、コマンドであるethers.providers.JsonRpcProviderがInfuraエンドポイントを呼び出し、getBalanceが残高を取得する方法が明確に示されています。EthereumのJSON RPCやリモート手続き呼び出しと直接やり取りする必要はありません。この場合、ethers.jsを、Ethereumをより簡単で馴染みやすくする翻訳者と考えることができます。
ethers.jsの重要性についてまだ理解していないのですか?ここに簡単な類推があります。
ethers.jsを古い図書カードと考えてみてください。覚えていますか、あのカードにはカタログがあり、通路を見つけてから棚番号を見つけることで、正しい本を見つけることができました。これがethers.jsが目指すことです。それはEthereumの膨大な機能を簡素化し整理し、開発者が必要なものを正確に見つけることを可能にします。
[https://twitter.com/wonder*nw/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](https://twitter.com/wonder_nw/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)
## すべてのエーテル.jsのバージョンについて説明しますこれまでに、いくつかのEthers.jsバージョンが登場し、それぞれ新機能やバグ修正が導入されています。また、バージョニングは、v1.2.3のように標準的なセマンティクスに従っており、最初の数字はメジャーバージョンを示し、2番目と3番目の数字はマイナーおよびパッチを示しています。今回はメジャーバージョンのアップグレードのみを考慮します - 互換性がないかもしれない変更です。
- バージョン1.x(レガシー):これは最初のリリースであり、取引署名、ウォレット管理などに関連する機能に続いています。- バージョン2.x(イーサーズウォレット):ウォレットユーティリティや機能に焦点を当て、安全な保管を含む[プライベートキー](https://beincrypto.com/learn/private-key-crypto/).- バージョン3.x(Ethersプロバイダー):Ethereumノードに接続するための抽象化が導入されました。 Infura、WebSocketsなど、さまざまなタイプのプレーヤーが収容されました。- バージョン4.x(イーサリアム契約):スマートコントラクト主導のプロパティが拡張され、データのエンコードとデコード、イベントフィルターなどのユーティリティがさらに増えました。- バージョン5.x:モジュラーアーキテクチャ、強化されたサポートを提供します[ENS](https://beincrypto.com/learn/ethereum-name-service-ens/)、包括的なエラー処理、およびその他の機能。- バージョン6.x:ES6の機能の追加、BigIntの導入、オーバーローディングのアクセシビリティなど。
Ethers.jsのアーキテクチャとコンポーネント:BeInCrypto[https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd](https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd)
Ethers.js’の各バージョンの詳細については、詳細をご覧ください。[元のドキュメント](http://ethers.js/).
「Ethers.jsは、優れたブロックチェーンの相互運用性、ネイティブなTypeScriptサポート、高度なデバッグツールで輝いています。React、Vue、Angularなどの人気フレームワークにシームレスに統合される、すっきりとしたライブラリです。」
Redbelly Intern、Builder: [X](https://x.com/junior_rbn_dev/status/1765370606868901996)
## ethers.jsを使い始めるethers.jsのポテンシャルを活用する前に、DAppやスマートコントラクトの開発のどの段階でそれが呼び出されるかを知っておくことが必要です。これは、ゼロからこれらの要素を知り、理解する必要がある人々のための素早い概要です。
Web3.jsは初心者にやさしく、ethers.jsよりも簡潔です。
一方、Ethers.js はより多くのオプションを提供し、新しいです。Web3.js よりも少し複雑です。
[degenBRo](https://twitter.com/devEmkiddo), ブロックチェーン開発者であり、Solidity Financeの創設者:BeInCryptoに語ったところ
始めるには、まずコンピュータを開いて開発環境を設定する必要があります。これにはNode.jsと統合開発環境が含まれます。JavaScriptは通常ブラウザ上で実行されますが、Node.jsを使用すると同じコンピュータ上で実行することもできます。ethers.jsなどのJavaScriptライブラリをインストールするのはNode.jsのランタイム環境です。
ソフトウェア開発者がテストする必要があるIDEについては、VS Code、Sublime Text、またはその他を検討できます。
[https://twitter.com/junior*rbn_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](https://twitter.com/junior_rbn_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)
### ethers.jsサポートのインストール次のステップは、Ethers.jsをホストするライブラリであるEthersをインストールすることです。
npm install ethersをインストール
その後、接続するにはエーテルを使用する必要があります。[イーサリアムウォレット](https://beincrypto-com.webpkgcache.com/doc/-/s/beincrypto.com/learn/the-top-15-ethereum-wallets-in-2020/), ブロックチェーンとのやり取りは認証情報を検証するためにこの手順が必要です。これにはインストール済みのエーテルライブラリを使用できます。以下はサンプルコマンドです:
## /Related[その他の記事](https://beincrypto.com/learn/)

### イーサリアムETFの説明:それは何か、そしてどのように動作するのか14分 2024年3月15日 3日前

### ビットコイン(BTC)で支払いを受ける方法:知っておく必要があるすべて25分 2024年3月15日 2日前
const { ethers } = require(‘ethers’);
// Connect to the [MetaMask](https://beincrypto.com/learn/guide-to-using-metamask/)ウォレット
const provider = new ethers.providers.Web3Provider(window.ethereum);
完了したら、IDEを使用してSolidityコードを記述し、DAppsのスマートコントラクトを作成できます。Ethers.jsを使用して同じものを展開します。ローカルでDAppまたは契約をテストすることもできます。[トリュフ](https://beincrypto.com/learn/what-is-ethereum-truffle/)そして、Hardhatを使用します。その後、契約をEthereumネットワークにデプロイします。その際には、ethers.jsが必要です。
const contract = new ethers.ContractFactory(abi, bytecode, signer);
const deployedContract = await contract.deploy();
未経験のabi、バイトコード、サイン者は、スムーズなスマートコントラクトの開発に必要な用語です。Abiまたはアプリケーションバイナリインターフェースは、ネットワークがあなたのスマートコントラクトを認識するのに役立つラベルのようなものです。バイトコードは、スマートコントラクトのコンパイル済み、あるいはネットワーク用のバージョンであり、サイン者は署名生成エンティティです。
### フロントエンド用のエーテル.jsスマートコントラクトが展開されると、DAppのフロントエンドまたはユーザーインターフェースを構築する必要があります。これには、AngularまたはReactを使用できます。フロントエンド内にEthers.jsを統合して、Ethereumスマートコントラクトとやり取りできるようにすることもできます。以下は同じためのサンプルコードです。
const provider = new ethers.providers.Web3Provider(window.ethereum);
const contract = new ethers.Contract(contractAddress, contractABI, provider.getSigner());
その後、RinkebyやRopstenなどのテストネット上でDAppをテストする必要があります。満足しているときには、DAppをメインネット上で展開できます。プロセス全体でEthersまたはethers.jsとやり取りする回数に注目してください。
## コア機能Ethers.jsは包括的なEthereumライブラリとして現れます。開発者の生活を簡単にするいくつかの独占的な提供があります。
### プロバイダーEthers.jsのプロバイダーは、Ethereumネットワークとあなたが作業しているDAppの間の橋渡しとなります。これには、ブロックチェーンデータの問い合わせを簡素化することや、トランザクションのブロードキャストを支援することも含まれます。Infuraは、Ethers.jsが使用するプロバイダーの1つです。
同じもののサンプルコードがこちらにあります:
const { ethers } = require(‘ethers’);
// Infuraを使用して接続
const provider = new ethers.providers.JsonRpcProvider('[https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’](https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’));
// 現在のブロック番号を確認します
provider.getBlockNumber().then((blockNumber) => {
console.log("現在のブロック番号:", blockNumber);
### ウォレットEthers.jsを使用すると、ウォレットを管理し、新しいアカウントを作成したり、既存のアカウントをインポートしたり、取引の署名に使用する秘密鍵を安全に管理したり、その他の操作を行ったりできます。
### 契約[https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd](https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd)
Ethers.jsのこの構成要素はオブジェクトのインスタンス化をサポートしています。これにより、特定の契約関数を呼び出しやすくなり、ネイティブなJavascriptメソッドのようになります。

Ethers.jsとスマートコントラクトの相互作用:BeInCrypto### ENS統合Ethers.jsはENS名をそれらのEthereumアドレスに解決し、その逆も可能です。この機能によりエラーのリスクが低減されます。
これはこれに対するサンプルコードスニペットです:
const { ethers } = require(‘ethers’);
const provider = new ethers.providers.JsonRpcProvider('[https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’](https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’);
const ensName = ‘[アリス](https://beincrypto.com/learn/alice-token/).eth’;
provider.resolveName(ensName).then((address) => {
console.log(${ensName} は ${address} に解決されました。);
前述の機能に加えて、Ethers.jsには以下の側面や機能もあり、Ethereum固有の直接アクセスを開発者が支援します。
- サイン者- ユーティリティ- イベントリスナーとフィルター(ブロックチェーンのアクションに対するリアルタイム応答を活性化するためのもの)- 取引- マルチコールサポート- TypeScriptサポート(コード信頼性と開発者全体のエクスペリエンス向上を意図したもの)Ethers.jsを使用する利点のいくつか:
[https://twitter.com/junior*rbn_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](https://twitter.com/junior_rbn_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)
## 暗号通貨の出版物がEthers.jsを活用する方法BeInCryptoなどのメディア出版物は、Ethers.jsを活用して、ゼロから高度で有用なweb3ツールを作成することができます。これにより、ブロックチェーン、あるいはむしろイーサリアムの機能を活用して、利便性を向上させることが可能になります。以下は、検討できるオプションです。
### データフィードEthers.jsの機能を使用して、ネットワーク統計などの実際のリアルタイム暗号データフィードを統合することができます。[ガス手数料](https://beincrypto.com/learn/ethereum-gas-fees-lowest/), そして、記事やリソースを常に最新の状態に保つためのさらなる機能があります。こちらは、ビットコインの最新ブロック番号を取得し、リアルタイムでハーフィングを追跡するためのサンプルコードです。
const { ethers } = require(‘ethers’);
const provider = new ethers.providers.JsonRpcProvider('[https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’](https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID’));
provider.getBlockNumber().then((blockNumber) => {
console.log(“現在のブロック番号:”, blockNumber);// このデータをあなたの出版プラットフォームに統合して、リアルタイムのデータフィードを提供します
### インタラクティブコンテンツ出版物は、ユーザーがスマートコントラクトと直接やり取りしたり、投票に参加したり、必要に応じて小さなゲームをプレイしたりするためのインタラクティブコンテンツを作成することができます。
こちらは、スマートコントラクトから特定のマイルストーンの挨拶を取得するためのサンプルコードスニペットです。
const { ethers } = require(‘ethers’);
const provider = new ethers.providers.Web3Provider(window.ethereum);
const contractAddress = ‘0x…’;
const contractABI = [
「function getGreeting() view returns (string)」
const contract = new ethers.Contract(contractAddress, contractABI, provider);
async function displayGreeting() {
const greeting = await contract.getGreeting();document.getElementById(‘greeting’).innerText = greeting;
KuCoinで口座を開設し、最大700 USDTの保証ボーナスを受け取りましょう。
- KuCoinを使って暗号通貨取引の旅を始めて、一歩リードしましょう!- KuCoinで安心して取引しましょう!当社のプラットフォームは、デジタル資産のために最高水準の保護を提供し、セキュリティを最優先にしています。- KuCoinと一緒に仮想通貨の広大な世界を探検しましょう
Ethers.jsが展開されている実際の例:
[https://twitter.com/ronak*pal1/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](https://twitter.com/ronak_pal1/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)
### 分散型出版メディア出版社は、ブロックチェーンネットワーク上に記事の一部が公開される分散型の出版も検討することができます。これにより検閲への抵抗やコンテンツの信頼性向上に役立つことがあります。
ここには、記事のハッシュがオンラインで公開の証拠として保存されているサンプルコードがあります。
const { ethers } = require(‘ethers’);
const wallet = new ethers.Wallet(‘YOUR_PRIVATE_KEY’, provider);
const contentHash = ethers.utils.id("記事のコンテンツをここに入力");
const tx = await wallet.sendTransaction({
to: ‘0xSomeStorageContractAddress’,data: contentHash // このデータを受け入れ、保存する契約を想定しています
console.log("トランザクションハッシュ(公開の証明):", tx.hash);
これらはメディア出版のためのユースケースのわずかな例に過ぎません。しかし、他のセクターも ethers.js の力を活用することができます。これには次のものが含まれます。
- ブロックチェーン開発者(予定)- 金融アナリストは、[DeFi](https://beincrypto.com/learn/ethereum-decentralized-finance-revolution/)メトリックス- ゲーム開発者- コンテンツクリエイター- サプライチェーンマネージャーそれ以上。
## Ethers.jsの実世界アプリケーションBesides being useful in [ディーファイ](https://beincrypto.com/learn/decentralized-finance-and-use-cases/), NFTやゲームプロジェクトに加え、いくつかの既存のDAppsがEthers.jsの使用をサポートしています。これには以下が含まれます:
- Uniswap: Ether.jsは、取引の実行、流動性の追加、さらにはプール統計のクエリを行うためにUniswapの固有のスマートコントラクトとやり取りします。この場合、DApp開発者は、取引ボット、ポートフォリオ管理ツールなど、Uniswapとやり取りするツールを構築する予定です。- [Aave](https://beincrypto.com/learn/what-is-aave/): DApp開発者やその他関係者は、Ether.jsの機能を活用してAave固有のスマートコントラクトとやり取りすることができます。これにより、彼らは借入資産のためのフロントエンドを準備し、担保を預け、その他多くのことを行うことができます。Ethers.jsの幾つかの神話を破る:
[https://twitter.com/imashuttoshh/status/1765558806291894739?ref*src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765558806291894739%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1*&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F](https://twitter.com/imashuttoshh/status/1765558806291894739?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1765558806291894739%7Ctwgr%5Ec1f906e08013316a8e26d4dc6736b846d7473e55%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fbeincrypto.com%2Flearn%2Fethers-js-explained%2F)
## セキュリティの考慮事項Ethers.jsを使用すると、かなり広範囲なセットが付属しています[セキュリティ](https://beincrypto.com/learn/top10-must-have-cryptocurrency-security-tips/)考慮事項。以下は、従うべきいくつかのポイントです。
- アプリケーションのコードベース内にプライベートキーをハードコードすることは避けることをお勧めします。- すべてのスマートコントラクトのやりとりは、契約のテストと徹底した監査の前に行われるべきです。- スマートコントラクトとやり取りする際は、「call」のような安全なパターンを使用して、読み取り専用のタスクを実行してください。- ethers.jsの使用を最適化するためには、リクエストのバッチ処理を検討することができます。これにより、読み取り専用のリクエストをバッチ処理してネットワークコールの回数を最小限に抑えることができます。これらの最適化技術によって、アプリケーションを高度にスケーラブルかつコスト効率の良いものにすることができるのは言うまでもありません。こちらは、それがどのように機能するかの例です。
// Ethers.jsを使用したコントラクト呼び出しのバッチ処理の擬似コード(概念的な例)
const contract = new ethers.Contract(address, abi, provider);
const [value1, value2, value3] = await Promise.all([
contract.viewFunction1(),contract.viewFunction2(),contract.viewFunction3()
## Ethers.js: 多目的ツールスポンサー
[https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd](https://harambetoken.ai/?domain=beincrypto&banner=header-banner-3&cpid=1ce31526-203f-4d6a-bf00-af77d6cf6edd)
このガイドで示されているように、Ethers.jsは多機能なツールです。その機能を簡単に見てきましたが、Ethers.jsを完全に理解する最良の方法は、スマートコントラクト、JavaScript、IDE、DAppsなどの世界にさらに深く入り込むことです。また、EthereumとEthersコミュニティに参加することも役立ちます。
## よくある質問開発者はEthers.jsのイベントをどのように利用できますか?
Ethers.jsが提供する主要なユーティリティは何ですか?
Ethers.jsとWeb3.jsの間の接続は何ですか?
### 免責事項:- この記事は[から転載されました[beincrypto](https://beincrypto.com/learn/ethers-js-explained/)], すべての著作権は元の著者に帰属します [[アナンダ・バネルジー](https://beincrypto.com/author/ananda-banerjee/)]。もし、この転載に異議がある場合は、お問い合わせください。[Gate Learn](https://www.Gate.com/questionnaire/3967)チームが速やかに対処します。- 責任の免責事項:この記事で表現された意見は、著者個人のものであり、投資アドバイスを構成するものではありません。- 他の言語への記事の翻訳は、Gate Learnチームによって行われます。特に言及されていない限り、翻訳された記事のコピー、配布、または盗用は禁止されています。





