【完全保存版】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」がペーストできました。
せっかくなので、「バイトコード」もコピーしてみましょう。
このように任意のファイルに貼り付けると、バイトコードが確認できました。
今回は以上です。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊