voters二重投票を防ぐため、投票したアカウントのアドレスを集合として記録する。voteパラメタとして候補者の名前(name)を受け取ります。ストレージは上で定義した型storageの値です。...投票可能な時間か?まず、設定で決めた時間帯か確認します。Globalを見ると他の情報取得APIがリストされています。コントラクトを起動したアカウントのアドレスがわかります。これで投票者を判別します。このアドレスが入っています。キーが集合に入っているかどうか調べることができます。入っていればtrue、なければfalse。アカウントを作りまくれば多重投票しまくれます。この問題を解決するには、事前に投票管理者が投票券を作って事前に投票者に配るなどしなければいけませんね。考えてみると面白いと思います。投票券を偽造されないためにはどうしたらいいでしょうか。キーを集合に加えます。登録しているかチェックし、投票数を一つ加えます。«マップ»で与えられたキーに対応した値を取り出します。«値»、しなければNoneが返ります。この返ってきた値をパターンマッチで場合分けしています。存在していなければエラー。存在して現在の値がnであれば、1足して、結果をn'に束縛します。値)の対応を元のマップに追加した新しいマップを作ります。candidates'ができました。いうファイルに作ります。vote.投票してみる投票するにはパラメータに候補者名を指定します。一票入っているのを確認してください。