solidityのDocumentの投票のコントラクトコードを解読する

WebpackをベースにDAppsを作ってみようと思っています。
Webpackをベースに作成しますので、WebPackの構築までは   をご覧ください。

そして、作ろうといざターミナルに向かいますが、何からはじめようか…
まずはsolidityの理解ができていないとダメですね…

solidityのDocumentを読む

まずsolidityを理解しないといけません。
敷居が高そうですが、solidityのDocumentを開きましょう。

Blockchains as a concept are not too hard to understand for programmers. The reason is that most of the complications (mining, hashing, elliptic-curve cryptography, peer-to-peer networks, etc.) are just there to provide a certain set of features and promises. Once you accept these features as given, you do not have to worry about the underlying technology – or do you have to know how Amazon’s AWS works internally in order to use it?

そんなに難しくないようですね!

コントラクトコード例

Documentのコントラクトコードの例をみていきましょう。
投票システムのコントラクトコードのようですね!

型の宣言

structは型をまとめて宣言するときに使います。
Proposal[]は配列での宣言です。

投票権を作成する

weight = 1を付与したら投票権を所有するということです。
ただ、配列の最後に追加するだけなのにわざわざfor文を書かないといけないのでしょうか?
できればfor文は書きたくない…

投票権利を付与する

これは投票権を付与しているだけですね。
chairperson(議長?)でなく、投票済みでなく、投票権がない場合に付与できます。

投票権の委託

投票権を委託する場合ですが、委託元のweightは減らさなくてもいいんでしょうか?

投票

Ifproposalis out of the range of the array, this will throw automatically and revert all changes.
ここは特別なコードなくてもエラーが投げられて全部revertできるんですね…

投票結果

アドレスと名前を取得するところです。

solidityのevent

eventを使えば、データを取得することもできます。
以下のようなコントラクトだったとしましょう。

そして、以下のようなコードでresult.args.amountresult.args.fromresult.args.toなどを取得することができます。

Truffle

とはいえ、Truffleも同時に学習していかなければ…

Migration

Migrationに関しては以下の記事がわかりやすいです。

その他

この記事もちゃんと読み解けば勉強になりそうです。

「solidityのDocumentの投票のコントラクトコードを解読する」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です