初心者文系主婦がブロックチェーンを学ぶブログ

IT革命のビッグウェーブに乗り遅れた主婦が、ブロックチェーン革命の波にのるべく、ブロックチェーン技術を学ぶブログです。

2018-11-01から1ヶ月間の記事一覧

【CryptZombies】レッスン2チャプター7:ストレージVSメモリ

StroageとMemory Storageはブロックチェーン上に永久に格納される変数です。 状態変数(関数外で宣言された変数のこと)の場合はデフォルトでstorageで格納されます。 Memoryは一時的な変数で、外部関数をコントラクトに呼び出す際に消去されます。 関数内で…

【CryptZombies】レッスン2チャプター6:Import

Import 長いコードを処理するときに、いくつかのファイルに分けて把握しやすいようにすることがあります。 importは、ファイルがいくつかある場合で、別のファイルをインポートしたい場合に使用します。 import "./someothercontract.sol"; contract newCont…

【CryptZombies】レッスン2チャプター5:継承

継承 コントラクトの継承は、ロジック毎に分けて、後で見直したときにコードを理解しやすくしておくものです。 これは、論理的な継承に利用されています。 例:猫が動物のサブクラス しかし、それだけでなく、同じようなロジックを別々のコントラクトにまと…

【CryptZombies】レッスン2チャプター4:Require

Require requireはある条件を満たさない場合はエラーを投げて実行を止めることができるものです。 条件次第で関数を実行したいときにかなり使えます。 エクセルでいうところのif関数みたいなもの? function sayHiToVitalik(string _name) public returns (s…

【CryptZombies】レッスン2チャプター3:Msg.sender

msg.sender msg.senderとは、全ての関数で利用できるグローバル変数の一つです。 msg.senderを利用すると、その関数を呼び出したユーザー(またはスマートコントラクト)のaddressを参照できます。 msg.senderの使用例とmappingの更新 mapping (address => u…

【CryptZombies】レッスン2チャプター2:マッピング(Mapping)とアドレス(Address)

アドレス イーサリアムのブロックチェーンは銀行口座と同じようにアカウント(口座)で構成されています。 このアカウント(口座)には、Ether(イーサ)の残高が記録されていて、Etherを送金したり受け取ったり、別のアカウントに支払うこともできます。 銀…

【CryptZombies】レッスン1チャプター13:イベント

イベント eventsは、ブロックチェーンで何かが生じたときに、コントラクトがアプリのフロントエンドに伝えることができるものです。 しかも特定のイベントを”listening"状態にして、何かあったときにアクションを起こすこともできます。 // イベントの宣言 e…

【CryptZombies】レッスン1チャプター12:統合

チャプター12では、は、すべてを統合する関数を作成します。 関数の作成方法については、今まで学習してきたとおりです。 テストの実行 ①createRandomZombieという名前のpublic関数を作成せよ。そこに_name(string)とうパラメータを設定せよ。 ②関数の最初…

【CryptZombies】レッスン1チャプター11:Keccak256と型キャスト

keccak256 イーサリアムにはSHA3というハッシュ関数のバージョンの一つであるkeccak256が組み込まれています。 ハッシュ関数は基本的には、文字列をランダムな256ビットの16進数に位置づける機能です。 文字列を1字でも変更すれば、ハッシュ値は大きく変わ…

【CryptZombies】レッスン1チャプター10:さらに関数を続ける

戻り値 戻り値は、関数に処理を依頼した後、呼び出して元の関数に返す値のことをいいます。 例えば「料理」という関数に「じゃがいも、にんじん、たまねぎ、肉、カレールー、水、ごはん」という引数を渡して処理をしてもらい、できあがった「カレー」が戻り…

【CryptZombies】レッスン1チャプター9:Private / Public関数

Solidityでは関数はデフォルトでpublicになっています。 要するに、誰でも(別のコントラクトからでも)自身のコントラクトの関数を呼び出して、実行できるということです。 これでは、攻撃に対してコントラクトが脆弱になることになります。 なので、自分が…

【CryptZombies】レッスン1チャプター8:構造体と配列の操作

新しい構造体を作る チャプター5でPerson構造体を作成し、チャプター6でpepleという名前のPerson構造体の配列を設定しました。 ここでは、新しいPersonを作成し、それをpeople配列に格納します。 ①新しいPersonを作る Person構造体を使って、新しいPerson…

【CryptZombies】レッスン1チャプター7:関数の宣言

関数(function)とは、同じ処理をまとめて定義し、何度も使いまわしができるかたちにしたものです。 さらに、その処理の部分に共通の変更点が生じた場合にも、変更が一か所ですむというメリットもあります。 なので、同じような処理が何度も出てくる場合は…

【CryptZombies】レッスン1チャプター6:配列

配列とは? なんだか数学の授業で聞いたことがあるようなないような…。 配列とはなんぞやについて、次のサイトで解説してあったので、ご紹介します。 配列(array)とは同じ型の複数の値を一つの名前(変数名)と添え字によって管理する仕組みです。 例えば…

【CryptZombies】レッスン1チャプター5:構造体

構造体 複雑なデータ型を作成する場合に、構造体(structure)を使用します。 構造体を使えば、複数のプロパティを持つ複雑なデータ型を作成することができます。 上記例では、Personという名前のstruct(構造体)を作成し、Person構造体のプロパティとして、…

【CryptZombies】レッスン1チャプター4:数式演算

Solidityで使う数式はエクセルなどで使うものと同じです。 ・加算(足し算):x + y ・減産(引き算):x - y ・乗算(掛け算):x * y ・除算(割り算):x / y ・剰余(余り) :x % y(例えば、13 % 5は3になります。なぜかというと、5を13で割ると、余り…