Solidity

如何從字節呼叫數據 var 載入前 4 個字節?

  • October 11, 2021

bytes calldata在 Solidity 中開發合約時,通常會對 calldata 進行編碼。

我需要從這樣的字節變數中提取函式選擇器。載入前 4 個字節的最佳方式是什麼?

最省氣的方法是使用內聯彙編

function foo(bytes calldata data) external payable {
   bytes4 selector;
   assembly {
       selector := calldataload(data.offset)
   }
   // ...
}

偏移後綴是我們需要在內聯彙編中使用的特殊屬性,以便能夠讀取高級儲存變數。

引用自:https://ethereum.stackexchange.com/questions/111384