Web3js

web3js 返回非校驗地址!

  • January 8, 2021

為什麼 web3js 0.20.6 在創建合約時返回全小寫地址而不是校驗和地址?!

如何處理這個麻煩?

您可以使用

web3.utils.toChecksumAddress

編輯:對不起,剛剛看到你的意思是 0.20.6,所以它:

web3.toChecksumAddress()

我認為 web3 0.x 不支持該功能,請嘗試自己實現該功能

在eip-55 上找到此程式碼

const createKeccakHash = require('keccak')

function toChecksumAddress (address) {
 address = address.toLowerCase().replace('0x', '')
 var hash = createKeccakHash('keccak256').update(address).digest('hex')
 var ret = '0x'

 for (var i = 0; i < address.length; i++) {
   if (parseInt(hash[i], 16) >= 8) {
     ret += address[i].toUpperCase()
   } else {
     ret += address[i]
   }
 }

 return ret
}

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