📜 [專欄新文章] 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.
👏 歡迎轉載分享鼓掌
同時也有2部Youtube影片,追蹤數超過2,290的網紅Youji,也在其Youtube影片中提到,お客様の中にJavaScriptに詳しい方はいらっしゃいませんか? セレクトボックスの選択肢の配列を切り替える方法がワーカリーマセーン よってフェス用ステージと通常ステージの切り替えにはツールの再起動を要します。悪しからず ~~~~~~~~~~~~ 日本語 / Japanese ~~~~~~~~~...
「else if in javascript」的推薦目錄:
- 關於else if in javascript 在 Taipei Ethereum Meetup Facebook 的最佳貼文
- 關於else if in javascript 在 Youji Youtube 的最佳貼文
- 關於else if in javascript 在 Youji Youtube 的最佳解答
- 關於else if in javascript 在 JavaScript if else Statement By Examples 的評價
- 關於else if in javascript 在 Javascript one line If...else...else if statement - Stack Overflow 的評價
- 關於else if in javascript 在 JS 筆記- 控制判斷(if、else if、switch) - 提姆寫程式 的評價
else if in javascript 在 Youji Youtube 的最佳貼文
お客様の中にJavaScriptに詳しい方はいらっしゃいませんか?
セレクトボックスの選択肢の配列を切り替える方法がワーカリーマセーン
よってフェス用ステージと通常ステージの切り替えにはツールの再起動を要します。悪しからず
~~~~~~~~~~~~ 日本語 / Japanese ~~~~~~~~~~~~
< ご挨拶 >
初めまして。ヨージです。アメリカに住んでいる純日本人です。
主にスコープ付きチャージャーを使います。
【フレンドコード】: SW-3516-9899-0870
* フレンド申請を送ったら”必ず”Switchで使っているお名前を教えて下さい!
* たまにフレンド整理が必要な時がありますが、消去されても次に遊ぶ時にまた送ってくだされば幸いです。
< 配信について >
気分に合わせてレギュラー、リグマやレーティングプラベをやります。
まれにサモランもやります。たつじん限定でおねがいします。
レギュラーマッチ以外は人数が多ければ交代などしていきます。
【パスワード(リグマとサモラン)】: 3745
# レーティングプラベについて
可能な限りウデマエ差をなくしてチーム分けを行うプラベです。
もっと詳しい説明などはプラベ開催時に行います。
【パスワード(プラベ専用)】: 0541
* いずれかのルールのウデマエがB-以上の方限定です。
* 初参戦時、過去に到達した一番高いウデマエを教えて下さい。
XならXパワー、S+ならその後の数字も一緒に教えて下さい。
* 初参戦後にウデマエを更新した場合は報告してください。
* 武器編成は真面目に頼みますよ!譲り合いは平和の象徴です。
< 決まりごと >
# ざっくりなルール
* 暴言・煽りはそっちの自由。だが、裁くのはこっちの自由だ。
* (回線落ちなどで)他人に迷惑を掛けたら謝りましょう!幼稚園で習いましたよね。
* 英語圏リスナーさんのチャットの翻訳は受け付けておりません。
例外として、伝える必要がある内容だと判断した場合は自発的に翻訳します。
* ナワバリ合流時に連続で待機になったり、レーティングプラベの準備に時間が掛かっても忍耐強く待てるリスナーさんは理想的です!
* 人数合わせが大変なので、リグマやプラベを抜ける際は一言下さい。
可能であれば前もって言ってくださるととても助かります。
* 不良ではないのでタイマンはしません。大人なのでかくれんぼもできません。
# 禁止事項
ここに書かれていないことでも一度注意されたら辞めてもらえると助かります。
* 放置や意図的な回線切断
* 裏部屋の作成・やり取り
* 他プレイヤーに対する指示
* 自分や他人の個人情報の開示
* 個人的なネガティブな話
* リスナー同士の他人が混ざれない会話
* 似た・同じ内容の発言の繰り返し
* 宣伝・売名行為
* その他公序良俗に反する発言
それでは、健闘を祈る!
~~~~~~~~~~~~ English / 英語 ~~~~~~~~~~~~
{ Greeting }
Hello. My name is Youji. I'm full Japanese who living in U.S. Nice to meet you. I use chargers at most of the time.
[My Friend Code] SW-3516-9899-0870
* If you sent a friend request, you MUST tell me your name on Switch!
* I need to organize my friends sometimes, but you may resend it when you play next time.
{ About Stream }
I play regular, league or rating private mainly. I play salmon occasionally with Profreshional only. We’ll take turns if there are many players who want to join.
[Password (league or salmon]: 3745
# About Rating Private
It;’s a special private battle that makes no rank gaps between the both team. I’ll explain the detail when we actually playing it.
[Password (only for private)] 0541
* You must be at least B- for any of the rules.
* Tell me what was your highest rank in the past. Tell me your X Power or a number among S+ if applicable.
* If you raised your rank after the last time you played this, tell me.
* Please be serious to choose your weapon. The concession is very important for a peaceful stream.
{ Rules }
# General
* It’s your choice to disrespect others or squidbagging, but it’s my choice to penalize you.
* If you annoy others (eg. disconnect), it’s a manner to apologize. I assume you already learned that at kinder garden.
* It’s helpful if you say you want to leave in advance when we playing league, salmon or private.
# Prohibitions
Please watch out your actions even it’s not wrote on here if I warned you.
* AFK while playing the game / Disconnect on purpose
* Telling others what to do
* Telling your or others’ personal information
* Talking about your personal negative stories
* Talking to other viewers about personal topics that no one else can join
* Posting the same or similar message over and over
* Advertising
* Any other inappropriate talks
Have a good luck!
~~~~~~~~~~~~ アドバタイズ / Advertise ~~~~~~~~~~~~
このチャンネルのメンバーになるには下のURLにアクセスすればいいかもよ。
You can join as a member from the link below.
https://www.youtube.com/channel/UC8UO9XDFb2MedQFptOBUlIw/join
Twitch
メイン配信サイト。ワンピースの世界ではラフテルと呼ばれる。
My main streaming platform. The final destination for all of my viewers.
https://www.twitch.tv/youjiman
Twitter (JPN)
誰か分かる人ならフォロー返しするかもよ。
https://twitter.com/youjiman
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#NintendoSwitch#スプラトゥーン2#Splatoon2#視聴者参加型#PlayingwithViewers
Support the stream: https://streamlabs.com/youjiman
else if in javascript 在 Youji Youtube 的最佳解答
お客様の中にJavaScriptに詳しい方はいらっしゃいませんか?
セレクトボックスの選択肢の配列を切り替える方法がワーカリーマセーン
よってフェス用ステージと通常ステージの切り替えにはツールの再起動を要します。悪しからず
~~~~~~~~~~~~ 日本語 / Japanese ~~~~~~~~~~~~
< ご挨拶 >
初めまして。ヨージです。アメリカに住んでいる純日本人です。
主にスコープ付きチャージャーを使います。
【フレンドコード】: SW-3516-9899-0870
* フレンド申請を送ったら”必ず”Switchで使っているお名前を教えて下さい!
* たまにフレンド整理が必要な時がありますが、消去されても次に遊ぶ時にまた送ってくだされば幸いです。
< 配信について >
気分に合わせてレギュラー、リグマやレーティングプラベをやります。
まれにサモランもやります。たつじん限定でおねがいします。
レギュラーマッチ以外は人数が多ければ交代などしていきます。
【パスワード(リグマとサモラン)】: 3745
# レーティングプラベについて
可能な限りウデマエ差をなくしてチーム分けを行うプラベです。
もっと詳しい説明などはプラベ開催時に行います。
【パスワード(プラベ専用)】: 0541
* いずれかのルールのウデマエがB-以上の方限定です。
* 初参戦時、過去に到達した一番高いウデマエを教えて下さい。
XならXパワー、S+ならその後の数字も一緒に教えて下さい。
* 初参戦後にウデマエを更新した場合は報告してください。
* 武器編成は真面目に頼みますよ!譲り合いは平和の象徴です。
< 決まりごと >
# ざっくりなルール
* 暴言・煽りはそっちの自由。だが、裁くのはこっちの自由だ。
* (回線落ちなどで)他人に迷惑を掛けたら謝りましょう!幼稚園で習いましたよね。
* 英語圏リスナーさんのチャットの翻訳は受け付けておりません。
例外として、伝える必要がある内容だと判断した場合は自発的に翻訳します。
* ナワバリ合流時に連続で待機になったり、レーティングプラベの準備に時間が掛かっても忍耐強く待てるリスナーさんは理想的です!
* 人数合わせが大変なので、リグマやプラベを抜ける際は一言下さい。
可能であれば前もって言ってくださるととても助かります。
* 不良ではないのでタイマンはしません。大人なのでかくれんぼもできません。
# 禁止事項
ここに書かれていないことでも一度注意されたら辞めてもらえると助かります。
* 放置や意図的な回線切断
* 裏部屋の作成・やり取り
* 他プレイヤーに対する指示
* 自分や他人の個人情報の開示
* 個人的なネガティブな話
* リスナー同士の他人が混ざれない会話
* 似た・同じ内容の発言の繰り返し
* 宣伝・売名行為
* その他公序良俗に反する発言
それでは、健闘を祈る!
~~~~~~~~~~~~ English / 英語 ~~~~~~~~~~~~
{ Greeting }
Hello. My name is Youji. I'm full Japanese who living in U.S. Nice to meet you. I use chargers at most of the time.
[My Friend Code] SW-3516-9899-0870
* If you sent a friend request, you MUST tell me your name on Switch!
* I need to organize my friends sometimes, but you may resend it when you play next time.
{ About Stream }
I play regular, league or rating private mainly. I play salmon occasionally with Profreshional only. We’ll take turns if there are many players who want to join.
[Password (league or salmon]: 3745
# About Rating Private
It;’s a special private battle that makes no rank gaps between the both team. I’ll explain the detail when we actually playing it.
[Password (only for private)] 0541
* You must be at least B- for any of the rules.
* Tell me what was your highest rank in the past. Tell me your X Power or a number among S+ if applicable.
* If you raised your rank after the last time you played this, tell me.
* Please be serious to choose your weapon. The concession is very important for a peaceful stream.
{ Rules }
# General
* It’s your choice to disrespect others or squidbagging, but it’s my choice to penalize you.
* If you annoy others (eg. disconnect), it’s a manner to apologize. I assume you already learned that at kinder garden.
* It’s helpful if you say you want to leave in advance when we playing league, salmon or private.
# Prohibitions
Please watch out your actions even it’s not wrote on here if I warned you.
* AFK while playing the game / Disconnect on purpose
* Telling others what to do
* Telling your or others’ personal information
* Talking about your personal negative stories
* Talking to other viewers about personal topics that no one else can join
* Posting the same or similar message over and over
* Advertising
* Any other inappropriate talks
Have a good luck!
~~~~~~~~~~~~ アドバタイズ / Advertise ~~~~~~~~~~~~
このチャンネルのメンバーになるには下のURLにアクセスすればいいかもよ。
You can join as a member from the link below.
https://www.youtube.com/channel/UC8UO9XDFb2MedQFptOBUlIw/join
Twitch
メイン配信サイト。ワンピースの世界ではラフテルと呼ばれる。
My main streaming platform. The final destination for all of my viewers.
https://www.twitch.tv/youjiman
Twitter (JPN)
誰か分かる人ならフォロー返しするかもよ。
https://twitter.com/youjiman
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#NintendoSwitch#スプラトゥーン2#Splatoon2#視聴者参加型#PlayingwithViewers
Support the stream: https://streamlabs.com/youjiman
else if in javascript 在 Javascript one line If...else...else if statement - Stack Overflow 的推薦與評價
... <看更多>
else if in javascript 在 JS 筆記- 控制判斷(if、else if、switch) - 提姆寫程式 的推薦與評價
if 後面的小括號要放 比較運算子 ,也就是 name == value ,不能放 name = value ,這樣會變成變數值。 else if、else. 是延續 if 的屬性,倘若 if 內陳述 ... ... <看更多>
else if in javascript 在 JavaScript if else Statement By Examples 的推薦與評價
JavaScript if else Statement · let x = 25; if( x > 10 ) console. · if( condition ) { // statements } · if( condition ) { // statement } else { // statement (when ... ... <看更多>