Solidity

如何在 Solidity 中將地址轉換為字節?

  • July 21, 2021

在 Solidity中轉換為的推薦方法是什麼addressbytes

為了更高效:

function toBytes(address a) public pure returns (bytes memory b){
   assembly {
       let m := mload(0x40)
       a := and(a, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)
       mstore(add(m, 20), xor(0x140000000000000000000000000000000000000000, a))
       mstore(0x40, add(m, 52))
       b := m
  }
}

Gokulnath 的答案只需要 695 氣體,而 Eth 的答案是 2500 和 5000

編輯穩固性 ^0.5.0:

這幾乎同樣有效且更具可讀性:

function toBytes(address a) public pure returns (bytes memory) {
   return abi.encodePacked(a);
}

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