Skip to content

Commit

Permalink
Reflects POINTS made by thurendous about Event Lecturegit add .
Browse files Browse the repository at this point in the history
  • Loading branch information
PolymetisOutis committed Aug 26, 2024
1 parent 9c1f758 commit 37995e8
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
10 changes: 5 additions & 5 deletions Languages/ja/12_Event_ja/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tags:
- event
---

# WTF Solidity Tutorial: 12. Events(イベント)
# WTF Solidity 超シンプル入門: 12. Events(イベント)

最近、Solidity の学習を再開し、詳細を確認しながら「Solidity 超シンプル入門」を作っています。これは初心者向けのガイドで、プログラミングの達人向けの教材ではありません。毎週 1〜3 レッスンのペースで更新していきます。

Expand Down Expand Up @@ -63,21 +63,21 @@ EVMはSolidityのイベントを保管する為に`Log`を使用します。各

### `Topics`

`Topics`はイベントを記述する為に使用されます。各イベントは最大4つの`topics`を含んでいます。典型的に、最初の`topic`はイベントハッシュです: イベントシグネチャのハッシュです。`Transfer`イベントのイベントハッシュは次のように計算されます:
`Topics`はイベントを記述する為に使用されます。各イベントは最大で4つのtopicsを含めることが可能です。典型的に、最初の`topic`はイベントハッシュです: イベントシグネチャのハッシュです。`Transfer`イベントのイベントハッシュは次のように計算されます:

```solidity
keccak256("Transfer(addrses,address,uint256)")
//0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
```

イベントハッシュに加えて、`topics`は3つの`indexed`パラメーターを含んでいます。例えば、`Transfer`イベントにおける`from``to`パラメーターのようなものです。匿名イベント(イベントの記述に"anonymous"を付与)は特別です: イベント名を持ちませんし、最大で4つの`indexed`パラメーターを持つことが出来ます。
イベントハッシュに加えて、`topics`は最大で3つのindex`indexed`パラメーターを含めることが可能です。例えば、`Transfer`イベントにおける`from``to`パラメーターのようなものです。匿名イベント(イベントの記述に"anonymous"を付与)は特別です: イベント名を持ちませんし、最大で4つの`indexed`パラメーターを持つことが出来ます。

`indexed`パラメーターはイベントの索引付けされた"key"として理解することが出来ます。そしてそれは容易にプログラムによって照会されることが出来ます。各`indexed`パラメーターのサイズは32バイトです。`array``string`のような32バイトよりも大きなパラメーターに関しては、基礎となるデータのハッシュが格納されます。(非基本型(例:配列や構造体)の場合、そのデータ自体ではなく、そのデータのKeccak-256ハッシュが格納される)

### `Data`

索引の無いパラメーターはログの`data`セクションに格納されます。それらはイベントの"value"として解釈され、直接取得することは出来ません。しかしそれらはより大きいサイズのデータを格納することが出来ます。それゆえに、`data`セクションは、`array``string`と言った複雑なデータ構造を格納する為に使用されます。その上、`data``topic`に較べてより少ないガスを消費します。
索引付けされていないパラメーターはログの`data`セクションに格納されます。それらはイベントの"value"として解釈され、直接取得することは出来ません。しかしそれらはより大きいサイズのデータを格納することが出来ます。それゆえに、`data`セクションは、`array``string`と言った複雑なデータ構造を格納する為に使用されます。これらのデータは256ビットを超えるため、イベントのtopics部分に格納される場合でも、ハッシュ化された形で保存されます。その上、`data``topic`に較べてより少ないガスを消費します。

## Remix Demo
`Event.sol`コントラクトを例として見てみましょう。
Expand All @@ -100,7 +100,7 @@ keccak256("Transfer(addrses,address,uint256)")

![details of event](./img/12-3_ja.png)

`Topics`には3つの要素があります: `[0]`はイベントのハッシュであり、`[1]``[2]``Transfer`イベントで定義されている`indexed`パラメーターです(即ち、`from``to`です)。`Data`にある要素は索引の無いパラメーター`amount`です。
`Topics`には3つの要素があります: `[0]`はイベントのハッシュであり、`[1]``[2]``Transfer`イベントで定義されている`indexed`パラメーターです(即ち、`from``to`です)。`Data`にある要素は索引付けされていないパラメーター`amount`です。

## まとめ
このレクチャーでは、`Solidity`におけるイベントを使用し、照会する方法について紹介しました。`Dune Analytics`のような、多くのオンチェーンの分析ツールは、solidityのイベントに基いています。
2 changes: 1 addition & 1 deletion Languages/ja/13_Inheritance_ja/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tags:
- inheritance
---

# WTF Solidity Tutorial: 13. Inheritance(インターフェース)
# WTF Solidity 超シンプル入門: 13. Inheritance(インターフェース)

最近、Solidity の学習を再開し、詳細を確認しながら「Solidity 超シンプル入門」を作っています。これは初心者向けのガイドで、プログラミングの達人向けの教材ではありません。毎週 1〜3 レッスンのペースで更新していきます。

Expand Down

0 comments on commit 37995e8

Please sign in to comment.