メインコンテンツまでスキップ

· 約3分

公式的なリポジトリを見つからなかったが、etherscanから直接にコントラクトソースを見えるので、読んでみます。

contract Ownable
contract ERC721
contract GeneScienceInterface
contract KittyAccessControl
contract KittyBase is KittyAccessControl
contract ERC721Metadata
contract KittyOwnership is KittyBase, ERC721
contract KittyBreeding is KittyOwnership
contract ClockAuctionBase
contract Pausable is Ownable
contract ClockAuction is Pausable, ClockAuctionBase
contract SiringClockAuction is ClockAuction
contract SaleClockAuction is ClockAuction
contract KittyAuction is KittyBreeding
contract KittyMinting is KittyAuction
contract KittyCore is KittyMinting

クラス図でまとめるとこんな感じ。 image0.png

image1.png

· 約4分

ビットコインのトランザクションは、標準的なトランザクションであり、どのアカウントからどのアカウントにどのぐらい送金する かを記録するだけであり、仮想通貨を目指すビットコインの場合これで十分でした。 イーサリアムの場合は、分散アプリケーションのプラットフォーム を目指して設計されたので、スマートコントラクト作成やスマートコントラクト間のやり取りの為、特別なトランザクションが存在しています。

  1. コントラクトを登録するトランザクション
  2. コントラクトの関数を呼び出すトランザクション

標準トランザクションを含めて、各トランザクションに渡すパラメータをまとめました。

· 約5分

論理知識ある程度まとめたので、実際にスマートコントラクトを作成したいです。 他の言語もありましたが、Solidityのほうが一番情報多いので、Solidityで進めます。

· 約4分

知っている限りでは、イーサリアムのスマートコントラクトのトリガーとして考えられるのは

  • 外部アカウントから発動するトランザクション
  • スマートコントラクトのオーナーが直接にスマートコントラクトの関数を呼び出す

ぐらいしかない。

そうでしたら、よく言われている指定の日時になったら、残高をAアカウントに送金する ようなことをどう実現できるかを考えてみます。

「2017/12/01 00:00にアドレスAに10 ETHを送信する」ことを課題とします。