FC2ブログ

キャッシュバック機能付き仮想通貨コントラクトをデプロイしてみる

どうも、ぺろりんです。

新年あけましておめでとうございます。
昨年読んで下さった方もそうでない方も、本年もどうぞよろしくお願いします。

さて、だいぶ時間が空いてしまいましたが、引き続きEthereumのお勉強を「はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)」でやっていきます。

前回はブラックリスト機能付きの仮想通貨コントラクトで遊んでみました。
今回は上の教科書でこの次に書いてある、キャッシュバック機能付きの仮想通貨コントラクトをデプロイして遊んでみようかと思います。

コードはJavaScript VMを使って、ブラウザ上で動かします。


キャッシュバックの仕組み

キャッシュバックの仕組みとしては簡単です。

「setCashbackRate」というメソッドを通して、キャッシュバック率を変数「CashbackRate」に設定します。
送金時にこのキャッシュバック率分を、送金額から引いてやることで「キャッシュバック」を実現します。


コードのデプロイ

コンパイル

まずはコードをコンパイルします。
「Auto compile」にはチェックしてないんですが、どうも勝手にコンパイルされる……?


ちなみに、コンパイラをちゃんと選ばないと怒られます。
サンプルコードで
pragma solidity ^0.4.8;

となっているので、0.4.8のバージョンを選ぶとうまくいきました。



デプロイ

無事コンパイルできたので、デプロイしてやります。

まずは「Environment」を「JavaScript VM」にしてやって、VM環境に設定しておきます。


デプロイ時のパラメータを入力しつつ、「Deploy」を実行します。
文字は「"(ダブルクォーテーション)」で囲む必要があるので注意が必要です。


無事にデプロイできました。


今回の状態変数はこんな感じです。




キャッシュバックの動作確認

前回までのコードに“キャッシュバック機能”が付いたものなのでブラックリスト用の変数があったりしますが、気にせずキャッシュバック関連だけイジって遊んでみます。


今回使うアドレス

先に、以下で使いたいアドレスをまとめておきます。

Aさん、Bさん、Cさんとして、以下のアドレスを使うことにします。
Aさんはデプロイ時に使ったアドレスなので、オーナーアドレスとなります。

 Aさん: 0xca35b7d915458ef540ade6068dfe2f44e8fa733c
 Bさん: B 0x14723a09acff6d2a60dcdf7aa4aff308fddc160c
 Cさん: 0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db


各アドレスの初期残高確認

まずは初期状態を確認しておきましょう。

Aさんはオーナーアドレスなので、初期状態ではすべてのOreOreCoin( 10000 [oc])を所有しています。


Bさんの初期状態は 0 [oc]です。


同じく、Cさんの初期状態も 0 [oc]です。



OreOreCoinを流通させる

このままだと面白くないので、OreOreCoinをすこし流通させてみましょう。

まずはAさんからBさんへ 2000 [oc]プレゼントしてみます。




同様に、AさんからCさんへ 1500 [oc]プレゼントしておきます。




CさんからBさんに送金してみる(キャッシュバックなしの場合)

はじめに、キャッシュバック率が0の場合の挙動を見ておきましょう。

まずはBさんのキャッシュバック率が0であることを確認しておきます。
具体的には、「Account」をBさんのアドレスにして、「CashbackRate」の値を確認します。



たしかにBさんの「CashbackRate」が0であることがわかりました。

つぎに「Account」をCさんのアドレスにして、Bさんへ 500 [oc]送ってみます。





キャッシュバックなしなので、普通に送金されました。


CさんからBさんに送金してみる(Bさんがキャッシュバック率を設定した場合)

今度はBさんがキャッシュバック率 20% を設定した場合を見てみましょう。

「Account」をBさんのアドレスにして、「setCashbackRate」に「20」を入れて実行してやります。



これで、Bさんの「CashbackRate」というキャッシュバック率を表す状態変数の値が「20」(%)になりました。


この状態で「Account」をCさんのアドレスにして、再びBさんへ 500 [oc]送ってみます。



BさんとCさんの残高を確認すると、たしかにBさんへは2割引きの 400 [oc]が送金されたことがわかります。




まとめ

今回は、キャッシュバック機能付きの仮想通貨コントラクトをデプロイして遊んでみました。

詳しいコードは「はじめてのブロックチェーン・アプリケーション Ethereumによるスマートコントラクト開発入門 (DEV Engineer's Books)」を見ていただきたいのですが、やっていることは簡単で、送金時に
 (送金額)=(送金しようと設定した額) - (送金しようと設定した額)×(キャッシュバック率)
と計算した“送金額”を送金しています。

テキストではデプロイ時のアドレス(オーナーアドレス)と普通のユーザーだけで動作確認していたので、オーナーアドレス以外の普通のユーザー2人の場合で動作を見てみました。

次回はコントラクトの継承と連携についてです。

それでは今回はこのへんで。

テーマ : プログラミング
ジャンル : コンピュータ

Keyword : ブロックチェーン 仮想通貨 暗号資産 イーサリアム Ethereum Browser-Solidity Solidity

コメントの投稿

Secret

プロフィール

ぺろりん

Author:ぺろりん
まだ始まってもいない暗号資産(仮想通貨)、今後が楽しみです。
基本的な技術をちゃんと知りたいなぁと思いつつ、まったりお勉強していこうかと思います。

twitter:ぺろりん@ぶろっくちぇーん

カテゴリ
最新記事
最新コメント
月別アーカイブ
カレンダー
06 | 2019/07 | 08
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
メールフォーム

名前:
メール:
件名:
本文: