Web3js

將填充的主題地址轉換為有效的地址字元串

  • August 23, 2021

我正在解析主題數組中的一些資訊。

我在某些索引中收到 32 位填充地址。是否有 web3 實用功能或有用的輔助方法可以將這些恢復到正常大小的地址?

我不確定我是否會刪除正確數量的 0 以獲得我正在尋找的相同有效地址。

請指教

簡單一點:

function paddedToChecksumAddress(address) {
 if (address.slice(0, 2) === '0x') address = address.slice(2)
 while (address.slice(0, 2) === '00') address = address.slice(2)
 return web3.utils.toChecksumAddress('0x' + address)
}

編輯:

web3.eth.abi.decodeParameter('address', address)

是正確的方法

嘗試任何長度的填充:

   getAddress(address) {
       const web3Utils = require('web3-utils');

       let i = -1;
       let exit = false;
       let result = address;
       while(!exit && i < address.length){
           i++;
           result = "0x" + address.substring(i);
           exit = web3Utils.isAddress(result);
       }

       return web3Utils.toChecksumAddress(result);
   }

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