Solidity
如何在 Solidity 中將地址轉換為字節?
在 Solidity中轉換為的推薦方法是什麼
address
?bytes
為了更高效:
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); }