iT邦幫忙

2023 iThome 鐵人賽

DAY 27
0
影片教學

30天讓你從【零基礎】掌握智能合約 Solidity 入門走到飛系列 第 27

Solidity 入門走到飛🚀-【Day27】ABI編碼解碼 - encode、decode

  • 分享至 

  • xImage
  •  

影片教學

Yes

主要內容

ABI(Application Binary Interface,應用程式二進制介面)是一種用於與以太坊智能合約進行互動的標準。它定義了如何編碼和解碼數據,以便在不同合約之間傳遞參數和調用函數。在 Solidity 中,有一些與 ABI 相關的函數,包括 abi.encode、abi.encodePacked、abi.encodeWithSignature、abi.encodeWithSelector,以及 abi.decode 用於解碼數據。

ABI 編碼是將函數參數和數據按照一定規則編碼成位元組碼的過程,以便與智能合約進行交互。以下是四種常見的 ABI 編碼方法:

1.abi.encode

按照 ABI 規則編碼參數,並在每個參數前添加 32 位元組的佔位符,適用於與合約進行交互。

2.abi.encodePacked

根據參數的最低空間需求編碼,省略了填充的零,通常用於緊湊地編碼數據,例如計算雜湊值。

3.abi.encodeWithSignature

與 abi.encode 類似,但需要提供函數的簽名,用於調用其他合約的函數。

4.abi.encodeWithSelector

與 abi.encodeWithSignature 類似,但需要提供函數選擇器,它是函數簽名的 Keccak 哈希的前4 個位元組。

ABI 解碼是將 ABI 編碼的位元組碼還原為原始數據的過程,使用 abi.decode 函數進行解碼。

ABI 的使用場景包括與智能合約的互動、合約的底層調用、合約的導入和函數調用等。

相關連結

WTF Solidity ABIEncode
ABI Encoder & Decoder
string to hex
ABI


上一篇
Solidity 入門走到飛🚀-【Day26】刪除合約 - selfdestruct
下一篇
Solidity 入門走到飛🚀-【Day28】Hash - 哈希
系列文
30天讓你從【零基礎】掌握智能合約 Solidity 入門走到飛30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言