ether ライブラリを使用してウォレット残高を取得中に エラーが発生しました。タイトルにも書きましたが。 NPM インストールを行った ether ライブラリを使用しようとしたとき、奇妙なエラーが発生しました。localhost をチェックすると、次のエラーが発生しました:
これは私のエラーメッセージです:
リーリーこれは、メタマスク ウォレット接続コードを実装する私の ReactJS コンポーネントです:
リーリーconnectWallet()
この関数は、メタマスク拡張機能がユーザーのブラウザにインストールされているかどうかを確認します。インストールされている場合、メタマスク拡張機能にリクエストを送信して、ユーザーのウォレットに接続します。接続が成功すると、accountChanged()
関数が呼び出され、defaultAccount
状態が設定され、getUserBalance()
を呼び出してユーザーのウォレット残高を取得します。 Metamask 拡張機能がインストールされていない場合は、setErrorMessage()
関数が呼び出され、ユーザーにエラー メッセージが表示されます。
1. これらを
devDependency
に追加し、yarn/npm install
を実行します。2.
npm install (またはyarn)
を実行して、すべての依存関係がダウンロードされていることを確認します。3.
package.json
内のスクリプトを、react-app-rewired で実行するように変更します:4. ルート フォルダーに
const webpack = require("webpack"); module.exports = 関数オーバーライド(config) { const fallback = config.resolve.fallback || {}; Object.assign(フォールバック, { 暗号: require.resolve("crypto-browserify"), ストリーム: require.resolve("stream-browserify"), アサート: require.resolve("assert"), http: require.resolve("stream-http"), https: require.resolve("https-browserify"), os: require.resolve("os-browserify"), URL: require.resolve("url"), }); config.resolve.fallback = フォールバック; config.plugins = (config.plugins || []).concat([ 新しい webpack.ProvidePlugin({ プロセス: "プロセス/ブラウザ", バッファ: ["バッファ", "バッファ"], })、 ]); 構成を返します。 }; 5. 他にエラーがある場合は、必ずconfig.overrides.js
を作成し、次の内容をコピーして貼り付けます。config.overrides.js
にフォールバックを追加して解決してください。