見出し画像

【完全保存版】ABI(Application Binary Interface)についてしっかり学ぼう!


0 はじめに

今回は、「ABI」について学んでみましょう。

こちらの記事は、2023年8月10日(木)HR3ハッカソン勉強会用の資料として使用いたします。

1 デプロイまでの流れを学ぼう

1 はじめに

イーサリアムでは、主に、「Solidity」という言語でコントラクトが作られます。(今回は、コードの中身については触れません。)

では、このコードが直接ブロックチェーン上デプロイされるのでしょうか?

「デプロイ」とはスマートコントラクトブロックチェーン上に公開・実行可能な状態にするプロセスです。)

2 コンパイルについて

実は、直接デプロイされるのではなく、「コンパイル」という処理が行われます。

これにより、「バイトコード」「ABI」の2つができます。

「バイトコード」は下の紫の画像のようなものです。

機械が読みやすいものであり、私たち人間は読むのが難しいです。

そして、この「バイトコード」デプロイされます。

なお、「ABI」特にデプロイされません。

3 コントラクトへのアクセスについて

では、デプロイ後のことを考えましょう。

私たちが、コントラクトにアクセスしようと思っても、どんな関数があるのかも、それに何が必要なのか理解するのは困難です。

4 ABIについて

そこで登場するのが「ABI」(Application Binary Interface)です。

一見すると、ちょっと難しそうかもしれません。

中身はこんなふうになっています。

どんな関数などがあるかや、その情報が書いてあります。

これにより、私たちは、ブロックチェーンとのやりとりが容易になります。

これがABIです。

2 実際にABIを確認してみよう

1 Remixの立ち上げについて

では、こちらで「Remix」を立ち上げます。

「Create」を選択して、ワークスペースを作成します。

特に内容を変えずに、「OK」

こちらの「1_Storage.sol」を選択して、右側に表示させます。

2 コンパイルの実施について

下のように、「コンパイル」を行います。

これによって、「バイトコード」「ABI」ができます。

3 ABIとバイトコードの確認について

「コンパイル」ができると、下のようなファイルができます。

「Storage_metadata.json」のこちらの「abi」の部分が「ABI」になります。

他にも、下のようにしても確認ができます。

注意点として、右のように、「1_Storage.sol」を選択した状態にします。

任意のファイルに貼り付けると、このように、「ABI」がペーストできました。

せっかくなので、「バイトコード」もコピーしてみましょう。

このように任意のファイルに貼り付けると、バイトコードが確認できました。


今回は以上です。



サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊