You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python实现TypeScript中Buffer.from(hex)+bs58.encode的等效逻辑?

解决TypeScript bs58转Python base58的结果匹配问题

要在Python中复现你给出的TypeScript代码结果,关键是正确将十六进制字符串解码为字节序列,这一步要和TypeScript的Buffer.from(hex_str, 'hex')行为完全对齐。

正确实现代码

首先确保安装了base58库:

pip install base58

然后执行以下代码:

import base58

# 将十六进制字符串解码为bytes,对应TS的Buffer.from(hex_str, 'hex')
decoded_tx_hash = bytes.fromhex('34cc2932f90774851410a536e3db2c2e61266a1587fbc15e7e9c79b41631ac74')
# 用base58编码并转为字符串
near_burn_tx_hash = base58.b58encode(decoded_tx_hash).decode('utf-8')

print(near_burn_tx_hash)  # 输出:4Z6m9qjt9BNxTF1SdDw3bzYGXYzMp2gTmwRy5AJxpNps

常见错误原因

你之前尝试的bytearray或直接转字符串为字节的方式是错误的:

  • 如果直接用bytearray('34cc29...', 'utf-8')或b'34cc29...',这是把十六进制字符串的每个字符转成字节,而不是将十六进制值解码为对应的字节序列,导致输入的字节数据和TS端完全不同,最终编码结果自然不匹配。
  • 必须使用bytes.fromhex()方法,它会把每两个十六进制字符解析为一个字节,和TypeScript的Buffer.from(..., 'hex')逻辑一致。

内容的提问来源于stack exchange,提问作者Ferran Marin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 07:40:31