Help us understand the problem. What is going on with this article?

Pythonライクなスマートコントラクト言語Vyperについて

More than 1 year has passed since last update.

この記事は BlockChain Advent Calendar 2017 の22日目の記事です。

前回Pythonのスマートコントラクト開発フレームワークPopulusで新言語Viperを使ってみるという記事を書きました。

Pythonライクに書けるスマートコントラクト開発言語Vyperをもう少し深く掘り下げていきたいのと日本語の記事がまだ少なく、英語を読むのが辛いので見返しやすいようにドキュメントを追って、つらつらと書いていきたいと思います。

まだまだ開発途上なので、順次アップデートしていく予定です。

環境構築などは前回の記事を参照してください。
vyperのバージョンは 0.0.2

Solidityとの違い

  • modifyが使えない(関数をあとから修飾したりする機能)
  • クラスの継承ができない

拡張子

  • v.pyもしくは.vyでもOK。エディタの設定を活かすためにv.pyが推奨されている。

状態変数

storedData : num

pythonでは見慣れないですが、型を宣言するために状態変数は先に宣言します。
この状態変数を関数内で利用する場合はself.storedDataのようにしてデータを格納することができます。

関数

@public
def Function(): // Function
  // ...
}

関数は宣言時に@publicもしくは@privateでデコレートする必要があります。

イベント

Payment: __log__({amount: num, arg2: indexed(address)})

total_paid: num

@public
def pay():
    self.total_paid += msg.value
    log.Payment(msg.value, msg.sender)

イベントは効率的に検索できるようにインデックスで紐付けすることができます。
イベントは、グローバル宣言と関数定義の前に宣言する必要があります。

サンプルコードの紹介やViperについてもっと詳しく書きたかったのですが、体調と時間の関係でここまでとさせて頂きます。申し訳ありません。
この記事は随時アップデートしていきます。

  • 2/4追記(Viper -> Vyperに変更)
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした