Skip to content

Commit

Permalink
RU fixes (CryptozombiesHQ#214)
Browse files Browse the repository at this point in the history
* verb typo fix

* wrong noun fix

* чтоб -> что

* wrong translation of `if` statement
  • Loading branch information
phDooY authored and enlight committed Apr 3, 2018
1 parent 16478c1 commit 86919ea
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 8 deletions.
10 changes: 5 additions & 5 deletions ru/2/13-kittygenes.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ material:
Zombie storage myZombie = zombies[_zombieId];
_targetDna = _targetDna % dnaModulus;
uint newDna = (myZombie.dna + _targetDna) / 2;
// А здесь добавь оператор «или»:
// А здесь добавь оператор «если»:
_createZombie("NoName", newDna);
}
Expand Down Expand Up @@ -143,9 +143,9 @@ material:

Допустим, последние две цифры ДНК зомбокотика `99` (ведь известно, что у кошки 9 жизней). В нашем коде, `if` (если) зомби происходит от котика, то последние две цифры в ДНК мы установим как `99`.

## Оператор «или»
## Оператор «если»

Оператор «или» в Solidity похож на javascript:
Оператор «если» в Solidity похож на javascript:

```
function eatBLT(string sandwich) public {
Expand All @@ -163,9 +163,9 @@ function eatBLT(string sandwich) public {

1. Сначала давай изменим определение функции на `feedAndMultiply` (питаться и размножаться), чтобы она брала третий аргумент: `string` (строку) под названием `_species` (виды).

2. Когда мы вычислили ДНК нового зомби, добавим оператор `if` (или), чтобы он сравнил `keccak256` хэши строк `_species` (виды) и `"kitty"` (котик).
2. Когда мы вычислили ДНК нового зомби, добавим оператор `if` (если), чтобы он сравнил `keccak256` хэши строк `_species` (виды) и `"kitty"` (котик).

3. Внутри оператора `if` (или) мы хотим заменить последние 2 цифры ДНК на `99`. Один из способов сделать это — использовать логику `newDna = newDna - newDna % 100 + 99;`.
3. Внутри оператора `if` (если) мы хотим заменить последние 2 цифры ДНК на `99`. Один из способов сделать это — использовать логику `newDna = newDna - newDna % 100 + 99;`.

> Объяснение: предположим, `newDna` равна `334455`. Тогда `newDna % 100` равна `55`, поэтому `newDna - newDna % 100` это `334400`. В конце добавим `99` чтобы получить `334499`.
Expand Down
4 changes: 2 additions & 2 deletions ru/3/03-onlyowner.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,10 +231,10 @@ contract MyContract is Ownable {

> Примечание: предоставление владельцу особой власти над подобным контрактом часто необходимо. Но властью можно злоупотреблять: например, владелец может оставить бэкдор, который переведет всех зомби на его адрес!
> Важно помнить, что DApp на Ethereum не означает децентрализацию по умолчанию. Читай исходники, чтобы убедиться, что Когда не содержит средств передачи контроля другому владельцу. Разработчику необходимо найти баланс между контролем над DApp для исправления багов, и созданием децентрализованной платформы, которой пользователи могут доверять.
> Важно помнить, что DApp на Ethereum не означает децентрализацию по умолчанию. Читай исходники, чтобы убедиться, что контракт не содержит средств передачи контроля другому владельцу. Разработчику необходимо найти баланс между контролем над DApp для исправления багов, и созданием децентрализованной платформы, которой пользователи могут доверять.
## Проверь себя

Теперь мы можем запретить доступ к `setKittyContractAddress`, чтобы никто не могу его изменить в будущем.
Теперь мы можем запретить доступ к `setKittyContractAddress`, чтобы никто не мог его изменить в будущем.

1. Добавь модификатор `onlyOwner` к `setKittyContractAddress`.
2 changes: 1 addition & 1 deletion ru/3/07-zombiecooldowns2.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ material:

Модифицируем `feedAndMultiply`, чтобы она учитывала таймер перезарядки.

Если помнишь, в прошлом уроке мы сделали эту функцию открытой. Для безопасности очень важно проверить все `public` и `external` функции и представить, как пользователи могли бы ими злоупотребить. Не забудь, чтоб если у функции нет модификатора вроде `onlyOwner`, любой пользователь может вызывать ее и задавать любые данные.
Если помнишь, в прошлом уроке мы сделали эту функцию открытой. Для безопасности очень важно проверить все `public` и `external` функции и представить, как пользователи могли бы ими злоупотребить. Не забудь, что если у функции нет модификатора вроде `onlyOwner`, любой пользователь может вызывать ее и задавать любые данные.

Если взглянуть еще раз на эту конкретную функцию, видно, что пользователь может вызвать ее напрямую и задать любые `_targetDna` или `_species`. А мы хотим, чтобы пользователи играли по нашим правилам!

Expand Down

0 comments on commit 86919ea

Please sign in to comment.