-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
Ethers.jsを使用してスマートコントラクトと対話する方法は?
ethers.js is a JavaScript library used to interact with Ethereum smart contracts, enabling developers to connect to nodes, read data, and send transactions securely and efficiently.
2025/07/29 09:01
スマートコントラクトとは何ですか、そしてなぜethers.jsを使用するのですか?
スマート契約とは、コードに直接書かれた契約の条件との自己執行契約です。これらの契約は、Ethereumブロックチェーンで実行され、開発者が仲介者なしで動作する分散型アプリケーション(DAPP)を作成できるようにします。これらの契約とプログラムでやり取りするために、開発者はしばしばEthers.jsを使用します。これは、Ethereumブロックチェーンと対話するための包括的なツールセットを提供する軽量JavaScriptライブラリです。
Ethers.JSは、Ethereumノードへの接続、トランザクションの署名、スマート契約関数の呼び出しなどのタスクを簡素化します。読み取りおよび書き込み操作の両方をサポートしているため、イーサリアムベースのアプリケーションに取り組む開発者にとって好ましい選択肢となります。
開発環境のセットアップ
Ethers.jsを使用してスマートコントラクトと対話する前に、開発環境が適切に構成されていることを確認してください。必要です:
- Node.jsはシステムにインストールされています
- NPMや糸のようなパッケージマネージャー
- ローカルまたはリモートのイーサリアムノード(例えば、インフラまたは錬金術)
- ターゲットスマートコントラクトのABI (アプリケーションバイナリインターフェイス)
- 契約アドレス
新しいプロジェクトを初期化してEthers.jsをインストールすることから始めます。
mkdir my-ethers-project cd my-ethers-project npm init -y npm install ethersインストールしたら、JavaScriptコードの書き込みを開始してEthereum Networkに接続し、契約と対話できます。
Ethereumプロバイダーへの接続
スマートコントラクトと対話するには、最初にイーサリアムノードに接続する必要があります。 Ethers.jsは、 JSONRPCProvider 、 Infuraprovider 、 Alchemyproviderなど、いくつかのプロバイダーオプションを提供します。
Infuraを使用して接続する方法は次のとおりです。
const { ethers } = require('ethers'); const infuraurl = 'https://mainnet.infura.io/v3/your_infura_project_id'; const provider = new Ethers.jsonrpcprovider(infuraurl); YOUR_INFURA_PROJECT_ID実際のInfuraプロジェクトIDに置き換えます。このプロバイダーを使用すると、ブロックチェーンデータをクエリしてトランザクションを送信できます。
ローカルノードを使用している場合は、次のように接続できます。
const provider = new ethers.JsonRpcProvider('http://localhost:8545');この接続は、契約状態を読み取り、トランザクションをネットワークに送信するために不可欠です。
スマートコントラクトインターフェイスのロード
スマートコントラクトと対話するには、利用可能な機能とイベントを定義するABIが必要です。 ABIは通常、JSONアレイとして提供されます。スクリプトにロードして、 Ethers.contractで使用できます。
ABIを含むMyContract.jsonという名前のJSONファイルがあると仮定します。
const contractABI = require('./MyContract.json'); const contractAddress = '0x...'; // Replace with your contract address const contract = new Ethers.Contract(ContractAddress、ContractAbi、Provider);これにより、関数を呼び出して契約によって放出されるイベントを聞くことができる契約インスタンスが作成されます。
トランザクションを送信する予定(つまり、状態を変更する機能を呼び出す)を計画している場合は、署名者を契約インスタンスに添付する必要があります。
スマートコントラクトにトランザクションを送信します
トークンのメントや変数の更新など、スマートコントラクトで書き込み操作を実行するには、署名者を使用する必要があります。署名者は、トランザクションに署名して送信できるイーサリアムアカウントを表します。
秘密鍵を使用して署名者を作成する方法は次のとおりです。
const privateKey = '0x...'; const wallet = new ethers.Wallet(privateKey, provider); const contractWithSigner = contract.connect(wallet);これで、ブロックチェーン状態を変更する契約関数を呼び出すことができます。たとえば、契約にmint()と呼ばれる関数がある場合:
async function mintToken() { const tx = await contractWithSigner.mint(1); await tx.wait(); console.log('Transaction mined:', tx.hash); }これにより、ネットワークにトランザクションが送信され、確認が確認されます。 Ethers.jsは、トランザクションの署名と提出を自動的に処理します。
スマートコントラクトからデータを読む
スマートコントラクトからデータを読むことはトランザクションを必要とせず、したがって無料です。契約インスタンスを使用して、ビューまたは純粋な関数を直接呼び出すことができます。
たとえば、契約にbalanceOf(address)と呼ばれる関数がある場合:
async function getBalance(address) { const balance = await contract.balanceOf(address); console.log( Balance of ${address}: , balance.toString()); }これにより、特定のイーサリアムアドレスのトークンバランスが取得されます。返された値は通常、バイナーンバーであり、ディスプレイの目的で文字列または番号に変換できます。
また、複数の値を一度に取得したり、構造化されたデータを返す複雑な関数を呼び出すこともできます。 Ethers.jsは、関数のABI定義に基づいて、戻り値が正しくデコードされることを保証します。
よくある質問
Q:Ethereum以外のブロックチェーンでEthers.jsを使用できますか?はい、 Ethers.JSは、 Binance Smart Chain 、 Polygon 、 ArbitrumなどのEVM互換ブロックチェーンをサポートしています。プロバイダーURLを変更し、契約ABIとアドレスがターゲットチェーンに正しいことを確認する必要があります。
Q:Ethers.jsとの契約イベントを処理するにはどうすればよいですか? on()またはonce()メソッドを使用して、スマートコントラクトイベントを聴くことができます。たとえば、 Transferイベントを聞くには:
contract.on('Transfer', (from, to, amount, event) => { console.log( Transfer from ${from} to ${to} of ${amount} ); });Q:スマートコントラクトのABIを公開するのは安全ですか?はい、 ABIは機密データではなく、外部相互作用に必要です。ただし、プライベートキーと署名者は、クライアント側のコードやパブリックリポジトリに公開されないでください。
Q:Ethers.jsを介して送信された失敗したトランザクションをデバッグするにはどうすればよいですか?トランザクションの領収書を検査し、 EtherScanやRemix IDEなどのツールを使用して、トランザクションをシミュレートしてデバッグできます。さらに、 Ethers.jsを使用すると、 call()メソッドを使用して、トランザクションをネットワークに送信せずにシミュレートできます。
免責事項:info@kdj.com
提供される情報は取引に関するアドバイスではありません。 kdj.com は、この記事で提供される情報に基づいて行われた投資に対して一切の責任を負いません。暗号通貨は変動性が高いため、十分な調査を行った上で慎重に投資することを強くお勧めします。
このウェブサイトで使用されているコンテンツが著作権を侵害していると思われる場合は、直ちに当社 (info@kdj.com) までご連絡ください。速やかに削除させていただきます。
- ビットコイン、eCash フォーク、Airdrop のダイナミクス: 暗号通貨の最新の論争を深く掘り下げる
- 2026-05-03 12:55:01
- コンセンサス 2026 マイアミ: Web3、ブロックチェーン、暗号通貨、NFT、メタバース、カンファレンス、5 月 5 日 — ウォール街とデジタル フロンティアが出会う場所
- 2026-05-02 12:45:01
- FRBが金利を据え置き、地政学的な緊張の中、ビットコイン価格の下落を引き起こす
- 2026-05-01 06:45:01
- ビットコインマイナーが送電網を電化:オハイオ州のガス工場買収がデジタルゴールドの新時代を加速
- 2026-05-01 00:45:01
- MegaETH の MEGA トークンがビッグアップルに到達: リアルタイム ブロックチェーンの新しいパフォーマンス ベンチマークを設定
- 2026-05-01 00:55:01
- ソラナの滑りやすい坂道: 価格予測は抵抗力の損失とさらなる下落の可能性を示している
- 2026-05-01 06:45:01
関連知識
Bybit で BTC 取引を行う場合、リニア永久契約とインバース永久契約のどちらを選択すればよいですか?
2026-06-06 02:54:55
契約決済の仕組み1. Bybit のリニア無期限契約は USDT で決済されます。これは、すべての損益計算、証拠金要件、清算閾値がステーブルコイン単位で表示されることを意味します。 2. 逆永久契約は BTC 自体で決済されるため、すべての取引はトレーダーの BTC 残高に直接影響します。利益があれ...
ストップハントやなりすましなどの先物市場操作を特定して回避するにはどうすればよいでしょうか?
2026-06-07 14:20:10
Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、流通する新しい BTC の数を直接減少させます。 3. マイナーは、2020 年の半減期の時点で...
Bybit で 1 日の最大損失を制限するリスク管理ルールを設定するにはどうすればよいですか?
2026-06-04 16:40:15
アカウントレベルの損失制限の設定1. 2 要素認証を使用して、Web またはモバイル アプリケーション経由で Bybit アカウントにログインします。 2. 「資産」セクションに移動し、左側のメニューから「リスク管理」を選択します。 3. 「日次損失制限」を選択し、機能をオンに切り替えてコントロール...
Binance でポートフォリオ証拠金モードを有効にして証拠金要件を減らすにはどうすればよいですか?
2026-06-05 04:59:43
Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、ブロックごとに流通する新しい BTC の数を直接減少させます。 3. マイナーは、2020 年の...
オープン先物ポジションをクローズせずに Binance から Bybit に移行するにはどうすればよいですか?
2026-06-04 03:59:47
Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、流通する新しい BTC の数を直接減少させます。 3. マイナーは、2020 年の半減期の時点で...
米国における仮想通貨先物取引の利益による税金への影響をどのように処理すればよいでしょうか?
2026-05-29 18:19:59
Bitcoin 半減力学1. Bitcoin のプロトコルでは、ブロック報酬を通じて新しいユニットが導入され、2,100 万コインの固定供給上限が強制されます。 2. 210,000 ブロックごと、つまり約 4 年ごとに、ブロック報酬は半分に減ります。これは半減として知られるプロセスです。 3. 最...
Bybit で BTC 取引を行う場合、リニア永久契約とインバース永久契約のどちらを選択すればよいですか?
2026-06-06 02:54:55
契約決済の仕組み1. Bybit のリニア無期限契約は USDT で決済されます。これは、すべての損益計算、証拠金要件、清算閾値がステーブルコイン単位で表示されることを意味します。 2. 逆永久契約は BTC 自体で決済されるため、すべての取引はトレーダーの BTC 残高に直接影響します。利益があれ...
ストップハントやなりすましなどの先物市場操作を特定して回避するにはどうすればよいでしょうか?
2026-06-07 14:20:10
Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、流通する新しい BTC の数を直接減少させます。 3. マイナーは、2020 年の半減期の時点で...
Bybit で 1 日の最大損失を制限するリスク管理ルールを設定するにはどうすればよいですか?
2026-06-04 16:40:15
アカウントレベルの損失制限の設定1. 2 要素認証を使用して、Web またはモバイル アプリケーション経由で Bybit アカウントにログインします。 2. 「資産」セクションに移動し、左側のメニューから「リスク管理」を選択します。 3. 「日次損失制限」を選択し、機能をオンに切り替えてコントロール...
Binance でポートフォリオ証拠金モードを有効にして証拠金要件を減らすにはどうすればよいですか?
2026-06-05 04:59:43
Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、ブロックごとに流通する新しい BTC の数を直接減少させます。 3. マイナーは、2020 年の...
オープン先物ポジションをクローズせずに Binance から Bybit に移行するにはどうすればよいですか?
2026-06-04 03:59:47
Bitcoin 半減力学1. Bitcoin のプロトコルは、ブロック報酬が約 210,000 ブロックごとに半分になる固定発行スケジュールを強制します。 2. このイベントはおよそ 4 年ごとに発生し、流通する新しい BTC の数を直接減少させます。 3. マイナーは、2020 年の半減期の時点で...
米国における仮想通貨先物取引の利益による税金への影響をどのように処理すればよいでしょうか?
2026-05-29 18:19:59
Bitcoin 半減力学1. Bitcoin のプロトコルでは、ブロック報酬を通じて新しいユニットが導入され、2,100 万コインの固定供給上限が強制されます。 2. 210,000 ブロックごと、つまり約 4 年ごとに、ブロック報酬は半分に減ります。これは半減として知られるプロセスです。 3. 最...
すべての記事を見る














