Solidity

單位用正確的校驗和解決

  • July 22, 2019

假設我們有這樣的東西:

bytes20 b = bytes20(someAddress);
uint8[] memory array = new uint8[](b.length);
for (uint256 n = 0; n < b.length; n++) {
 array[n] = uint8(uint160(b) / (2 ** (8 * (19 - n))));
}

在對array(將更改大小寫)執行操作後,我想將其帶回具有正確校驗和的地址,而不是將其轉換為具有正確大小寫的字元串,然後將字元串轉換為地址。換句話說,我正在尋找一個乾淨的解決方案。Solidity 版本是 5.0

EVM中的類型變數address儲存為原始字節,因此它們沒有大小寫。

對於具有大小寫的地址,僅當地址儲存為十六進製字元串時才有意義。

通常這是您使用的庫/框架的責任。

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