📜 [專欄新文章] Solidity Weekly #20
✍️ mingderwang
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Metamask “Privacy Mode”
前一陣子,Metamask 與其他幾家 Ether 數位錢包公司,為了安全起見,決定改變叫用帳號的流程。舊的 Ðapp 網站需要改寫,才能搭配使用,這裏來做個介紹。
Breaking Change: No Accounts Exposed by Default,這篇文章有做完整的說明,從 2018 年 11 月 6日起,Metamask plugin 錢包與 Status,Mist,以及 ImToken 計畫一起提供一個新而且更安全的方法 (EIP-1102),來讀取錢包帳號的資料,例如它的 balance,交易歷史,以及一些敏感資料,未來錢包的 “Privacy Mode” 將預設為開啟。也就是在使用舊有的 Ðapp 網頁, Metamask “Privacy Mode” 必須是關閉,才能跟以前一樣使用,直接可讀取 Metamask 裡的帳號資料,進行交易。
對程式設計師而言,簡單講就是要叫用一個新的 ethereum.enable() function,它會 return 一個 Promise。如果 user 同意讓 Ðapp 使用他的帳號, 就會回傳 provider 結果,否則回傳 Error。這個 ethereum 物件,是 Metamask 在啟動時,會加到瀏覽器的 window 裡的,所以程式範例如下(僅供參考, 它還可以寫得更好);
import Web3 from ‘web3’
let web3;
if (typeof web3 !== ‘undefined’ && window.ethereum) {
const ethereum = window.ethereum;
ethereum.enable().then((account) => {
const defaultAccount = account[0]
console.log(defaultAccount);}).error(console.log);
web3 = new Web3(web3.currentProvider);// orweb3 = new Web3(ethereum);
} else {console.log('maybe user does not install metamask');
// set the provider you want from Web3.providers
web3 = new Web3(new Web3.providers.HttpProvider(“http://localhost:8545"));
}
v4.14.0 版以後的 Metamask,provider 的 window.ethereum 就開始支援 enable() function,只是預設值是關閉的。
如上圖,新版 MetaMask v5.0.x 設定裡也已經可以看到 Privacy Mode 的開關。目前版本的預設是關著的。以後新版將會預設成開。有些舊 ÐApp 網站沒搭配著修改,就無法使用。但為了相容起見,user 關掉 Privacy Mode,還是能正常使用,但這樣對使用者來講就不安全了。
這個標準定義在 EIP-1102,想深入了解底層的開發者可以參考。
相關 Links:
EIP-1102: How to prepare your dapp
Tutorial — How To Connect A JavaScript Front-End To A Smart Contract On Ethereum
Solidity Weekly #20 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「typeof javascript」的推薦目錄:
- 關於typeof javascript 在 Taipei Ethereum Meetup Facebook 的最佳解答
- 關於typeof javascript 在 コバにゃんチャンネル Youtube 的最佳貼文
- 關於typeof javascript 在 大象中醫 Youtube 的最佳解答
- 關於typeof javascript 在 大象中醫 Youtube 的最佳貼文
- 關於typeof javascript 在 Understanding the typeof operator in Javascript - Stack Overflow 的評價
- 關於typeof javascript 在 [譯]typeof 與instanceof 技巧- 簡易的動態型別檢查 的評價
- 關於typeof javascript 在 Javascript: typeof & $.type() - gists · GitHub 的評價
- 關於typeof javascript 在 typeof Operator - JavaScript Tutorial - YouTube 的評價
typeof javascript 在 コバにゃんチャンネル Youtube 的最佳貼文
typeof javascript 在 大象中醫 Youtube 的最佳解答
typeof javascript 在 大象中醫 Youtube 的最佳貼文
typeof javascript 在 [譯]typeof 與instanceof 技巧- 簡易的動態型別檢查 的推薦與評價
這邊文字要講的是關於使instanceof 可適用於更多的情形下。 1. 關於typeof vs instanceof在javascript 中,當我們需要確認一個值的型別時, ... ... <看更多>
typeof javascript 在 Javascript: typeof & $.type() - gists · GitHub 的推薦與評價
Javascript : typeof & $.type(). GitHub Gist: instantly share code, notes, and snippets. ... <看更多>
typeof javascript 在 Understanding the typeof operator in Javascript - Stack Overflow 的推薦與評價
... <看更多>
相關內容