'web3.currentProvider.selectedAddress' is null with MetaMask
문제.
서명 거래를 발행하고 싶지만 코드 옆에 기밀 키를 기술하고 싶지 않습니다.
그래서 MetaMask의 웹 3을 사용하고 싶은데 왜 사용할 수 없는지 모르겠습니다.
web3.currentProvider.selectedAddress
의 반환값이 null
로 변경됩니다.물론
web3.eth.accounts[0]
의 반환치도 undefined
이다.해결책
웹 사이트에서 액세스할 수 있도록 허용
ethereum.enable()
까닭
버전 4.18 이후의 MetaMask에는 PrivacyMode라는 옵션이 추가된 것 같습니다.
그리고 7.0 이후 모든 사용자의 기본 설정은 Privacy Mode입니다.
따라서 기존의 초기화 방법에서는 메타마스크 계정에 접근할 수 없을 것 같다.
허가 전
ethereum
은 selectedAddress
이고 허가 후는 수치다.null
실행 후 팝업하여 허용 여부를 묻습니다.허락해 주시면 계좌 주소를 얻을 수 있습니다.잡담
지금까지
ethereum.enable()
처럼 공급자를 사용하여 웹 3을 초기화했습니다.앞으로
window.web3 = new Web3(web3.currentProvider);
처럼 초기화하는 게 좋을 것 같아요.자세한 내용은 공식 Doc 및 Medium을 참조하십시오.그나저나 MetaMask 2020년 3월 14일까지 버전은 7.8이다.
참고 자료
Reference
이 문제에 관하여('web3.currentProvider.selectedAddress' is null with MetaMask), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sikeda107/items/f1928734d3abde2a82ff텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)