<aside> 💡 web3-react-js 와 ethers.js 를 같이 사용하여 구현했습니다.
</aside>
🧐 Web3.js를 사용한 이유 : MetaMask와 Coinbase가 같은 Ethereum 기반으로 이루어져 있어서 사용자가 MetaMask와 Coinbase Wallet 확장을 모두 설치한 경우 주입된 공급자에 연결하면 두 확장 모두 지갑 연결을 위한 팝업 창을 띄우는 상황이 발생합니다.
참고
위의 두 가지 방법으로 해결해 보려고 했지만 어려움이 있었습니다.
참고 : https://docs.cloud.coinbase.com/wallet-sdk/docs/web3-react#additional-resources
<aside> 💡 MetaMask와 Coinbase 중 CoinbaseWallet만 web3를 적용했습니다.
</aside>
설치
npm install ethers
npm install web3 # optional
npm install @web3-react/core
// 6 version
import { Web3ReactProvider } from "@web3-react/core";
import { ethers } from "ethers";
const getLibrary = (provider) => {
const library = new ethers.BrowserProvider(provider);
library.pollingInterval = 8000; // frequency provider is polling
return library;
};
ReactDOM.render(
<Web3ReactProvider getLibrary={getLibrary}>
<BrowserRouter>
<ScrollToTop />
<App />
</BrowserRouter>
</Web3ReactProvider>,
document.getElementById("root")
);