我在将Tron地址十六进制转换为base58时遇到了麻烦,我使用nodejs中默认的base58解码器与crypto库,但它没有转换为正确的地址。
下面的代码可以解决这个问题。
const HEX_PREFIX = '41';
exports.hexAddressToBase58 = (hexAddress) => {
let retval = hexAddress;
try {
let tronWeb = getTronWeb();
if (hexAddress.startsWith("0x")) {
hexAddress = HEX_PREFIX + hexAddress.substring(2);
}
let bArr = tronWeb.utils['code'].hexStr2byteArray(hexAddress);
retval = tronWeb.utils['crypto'].getBase58CheckAddress(bArr);
} catch (e) {
//Handle
}
return retval;
}