dart - Dart Bech32 和 Hex 编码和解码
问题描述
我正在尝试将此 Bech32 地址解码为十六进制。当给定 cosmos1qpjrq625nglf3xx9chdkq953nhrd3nygte44rt。它将其分解为“cosmos”的头部,其余部分表示为 8 位无符号整数列表 (Uint8List)。
当它被编码为十六进制(HEX.Encode)时,我得到的值为 00011203001a0a1413081f091106060518170d16000514111317030d11130408。
但是,这意味着要让我 00643069549a3e9898c5c5db6016919dc6d8cc88 代替。
如果你去https://slowli.github.io/bech32-buffer/ -> 并解码 cosmos1qpjrq625nglf3xx9chdkq953nhrd3nygte44rt 得到 00643069549a3e9898c5c5db6016919dc6d8cc88,你可以检查这个。
我无法弄清楚这个问题,是否可能 - 格式错误,不同的基础?还是我这样做完全错了。
谢谢,我很感激任何回复这是一段代码;
import 'package:bech32/bech32.dart';
import 'package:hex/hex.dart';
Bech32Codec bech32codec = Bech32Codec();
// target address : 00643069549a3e9898c5c5db6016919dc6d8cc88 -> to get to this address
String address = 'cosmos1qpjrq625nglf3xx9chdkq953nhrd3nygte44rt';
Bech32 bech32 = bech32codec.decode(address);
print(bech32.data);
// this returns [0, 1, 18, 3, 0, 26, 10, 20, 19, 8, 31, 9, 17, 6, 6, 5, 24, 23, 13, 22, 0, 5, 20, 17, 19, 23, 3, 13, 17, 19, 4, 8]
print(bech32.hrp);
print(bech32codec.encode(Bech32("cosmos", bech32.data)));
var answer2 = HEX.encode(bech32.data);
print(answer2);
var decode = HEX.decode('00643069549a3e9898c5c5db6016919dc6d8cc88');
print(decode);
// this returns [0, 100, 48, 105, 84, 154, 62, 152, 152, 197, 197, 219, 96, 22, 145, 157, 198, 216, 204, 136]
解决方案
推荐阅读
- ios - defaultNavigationOptions 中的默认背景颜色
- javascript - 使用 nodemailer 发送 html gmail 后,css 缺少一些规则
- spring-boot - Docker-compose with consul and dynamic addressing of ports beetwen services
- excel - 如何简化;数十个具有相同底层 VBA 代码的 Excel 选项卡
- ruby-on-rails - 如何通过 ActiveRecord 中的关系显示 has_many 中的非唯一记录?
- python - keras中的张量点积
- entity-framework - Web api获取方法没有响应
- spring - 对于带有 access_token 的请求,我应该使用哪种 contentType?
- jquery - jQuery .attr() 未在 HTML 中设置后设置值并在之前删除此属性
- r - 使用 R 找到包含数组中 90% 值的最小区间的最简单方法是什么?