Skip to content

Commit

Permalink
Merge pull request CryptozombiesHQ#419 from shibuya-kensuke/patch-1
Browse files Browse the repository at this point in the history
Fix small typo in JP
  • Loading branch information
hankxdev authored Dec 11, 2019
2 parents 190cccf + 73594f2 commit af74d01
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 14 deletions.
4 changes: 2 additions & 2 deletions jp/4/battle-04.md
Original file line number Diff line number Diff line change
Expand Up @@ -302,8 +302,8 @@ require(msg.sender == zombieToOwner[_zombieId]);

1. `ownerOf`という`modifier`を作成せよ。これは1つの引数`_zombieId``uint`)を受け取る。

 本文では、`msg.sender``zombieToOwner[_zombieId]`と同等であるように`require`(要求)し、そうであれば関数を続けるようにせよ。もし修飾詞の構文を覚えていなければ`zombiehelper.sol`を参照してよい。
 本文では、`msg.sender``zombieToOwner[_zombieId]`と同等であるように`require`(要求)し、そうであれば関数を続けるようにせよ。もし修飾子の構文を覚えていなければ`zombiehelper.sol`を参照してよい。

2. `feedAndMultiply`の関数定義を変更し、`ownerOf`修飾詞を使うようにせよ
2. `feedAndMultiply`の関数定義を変更し、`ownerOf`修飾子を使うようにせよ

3. 今は`modifier`を使っているので、以下の一行は削除するのだ。`require(msg.sender == zombieToOwner[_zombieId]);`
4 changes: 2 additions & 2 deletions jp/4/battle-06.md
Original file line number Diff line number Diff line change
Expand Up @@ -232,11 +232,11 @@ material:

リファクタリングは十分できた、`zombieattack.sol`へ戻ろう。

`attack`関数の定義を続けていくが、今度は`ownerOf`修飾詞も使うからな
`attack`関数の定義を続けていくが、今度は`ownerOf`修飾子も使うからな

## さあテストだ

1. `ownerOf`修飾詞を`attack`関数に加え、関数を呼び出した者が`_zombieId`を所有しているか確認せよ。
1. `ownerOf`修飾子を`attack`関数に加え、関数を呼び出した者が`_zombieId`を所有しているか確認せよ。

2. まず最初に、我々の関数は両方のゾンビに`storage`のポインタをゲットしなくてはならない。そうするとより簡単にそれらとやり取りできる。

Expand Down
16 changes: 8 additions & 8 deletions jp/4/payable.md
Original file line number Diff line number Diff line change
Expand Up @@ -229,23 +229,23 @@ material:
}
---

これまで我々は **_関数修飾詞_** をかなりたくさん扱ってきた。だが全部覚えるのは難しいかもしれないから、素早く復習していくぞ。
これまで我々は **_関数修飾子_** をかなりたくさん扱ってきた。だが全部覚えるのは難しいかもしれないから、素早く復習していくぞ。

1. いつどこで関数を呼び出すかをコントロールする可視性修飾詞というものがある`private`修飾詞はコントラクト内の別の関数からのみ呼び出されるという意味だ`internal`修飾詞は`private`修飾詞に似ているが、そのコントラクトを継承したコントラクトからも呼び出す事ができる。`external`修飾詞はコントラクト外からだけ呼び出す事ができて、最後に`public`修飾詞だが、これはコントラクト内部・外部どちらからでも呼び出せるぞ。
1. いつどこで関数を呼び出すかをコントロールする可視性修飾子というものがある`private`修飾子はコントラクト内の別の関数からのみ呼び出されるという意味だ`internal`修飾子は`private`修飾子に似ているが、そのコントラクトを継承したコントラクトからも呼び出す事ができる。`external`修飾子はコントラクト外からだけ呼び出す事ができて、最後に`public`修飾子だが、これはコントラクト内部・外部どちらからでも呼び出せるぞ。

2. 状態修飾詞といって、関数がブロックチェーンとどのように作用し合うのか示してくれるものもある。`view`修飾詞は関数が動作しても、なんのデータも保存または変更されないということだ。`pure`修飾詞は、関数がブロックチェーンにデータを保存しないだけでなく、ブロックチェーンからデータを読み込むこともないと表しているぞ。どちらも、コントラクト外部から呼び出された場合はガスは必要ない。(ただし、コントラクト内にある別の関数から呼び出されるとガスが必要となるからな。)
2. 状態修飾子といって、関数がブロックチェーンとどのように作用し合うのか示してくれるものもある。`view`修飾子は関数が動作しても、なんのデータも保存または変更されないということだ。`pure`修飾子は、関数がブロックチェーンにデータを保存しないだけでなく、ブロックチェーンからデータを読み込むこともないと表しているぞ。どちらも、コントラクト外部から呼び出された場合はガスは必要ない。(ただし、コントラクト内にある別の関数から呼び出されるとガスが必要となるからな。)

3. それからカスタムの`modifier`、例えばレッスン3で学んだ`onlyOwner``aboveLevel`というものがある。我々は、これら修飾詞の関数への影響の仕方を決定するための、カスタムした理論を定義することが可能だ。
3. それからカスタムの`modifier`、例えばレッスン3で学んだ`onlyOwner``aboveLevel`というものがある。我々は、これら修飾子の関数への影響の仕方を決定するための、カスタムした理論を定義することが可能だ。

これらの修飾詞は、全て以下のように一つの関数定義に組み込むことができる。
これらの修飾子は、全て以下のように一つの関数定義に組み込むことができる。

```
function test() external view onlyOwner anotherModifier { /* ... */ }
```

このチャプターでは、さらにもう一つ`payable`という関数修飾詞を紹介して行くからな
このチャプターでは、さらにもう一つ`payable`という関数修飾子を紹介して行くからな

## `payable`修飾詞
## `payable`修飾子

`payable`関数は、solidityとEthereumをこんなにもクールにしているものの1つといえる。Etherを受け取ることができる特別なタイプの関数なんだ。

Expand Down Expand Up @@ -278,7 +278,7 @@ OnlineStore.buySomething({from: web3.eth.defaultAccount, value: web3.utils.toWei

`value`の部分を見て欲しい。ここではJavaScriptのファンクション・コールで`ether`をどのくらい送るかを定めている(0.001etherだ)。もしトランザクションを封筒のようなものと考えると、ファンクション・コールに渡すパラメーターは、封筒の中に入れた手紙の内容だ。そして`value`を追加するのは、封筒の中に現金を入れるようなものだ。受取人に手紙とお金が一緒に届けられるからな。

>注:関数にpayable修飾詞がなく、Etherを上記のように送ろうとする場合、その関数はトランザクションを拒否します。
>注:関数にpayable修飾子がなく、Etherを上記のように送ろうとする場合、その関数はトランザクションを拒否します。

## それではテストだ
Expand Down
4 changes: 2 additions & 2 deletions jp/4/withdraw.md
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ contract GetPaid is Ownable {
}
```

インポートされていることを想定して、`owner``onlyOwner`修飾詞を`Ownable`コントラクトから用いていることに注目してくれ。
インポートされていることを想定して、`owner``onlyOwner`修飾子を`Ownable`コントラクトから用いていることに注目してくれ。

`transfer`関数を使ってEtherをあるアドレスに送ることができ、`this.balance`はコントラクトに溜まっている残高の総量を返す。なのでもし100人のユーザーが1Etherを我々のコントラクトに支払ったとしたら、`this.balance`は100Etherに等しくなるはずだ。

Expand All @@ -281,6 +281,6 @@ msg.sender.transfer(msg.value - itemFee);

そこで一ついいアイディアがある。コントラクトの所有者として、我々が`levelUpFee`を設定できるような関数を作成するのだ。

a. 一つの引数`uint _fee`を受け取る`setLevelUpFee`という名の関数を作成せよ。これは`external`であり、`onlyOwner`修飾詞を用いることとする
a. 一つの引数`uint _fee`を受け取る`setLevelUpFee`という名の関数を作成せよ。これは`external`であり、`onlyOwner`修飾子を用いることとする

b. 作成した関数に`levelUpFee`を設定し、`_fee`と同等となるようにせよ。

0 comments on commit af74d01

Please sign in to comment.