Я пытаюсь декодировать этот адрес Bech32 в шестнадцатеричный формат. Когда дан cosmos1qpjrq625nglf3xx9chdkq953nhrd3nygte44rt. Он разбивает его на заголовок, который является «космосом», а остаток представлен в виде списка 8-битных целых чисел без знака (Uint8List).
Когда это закодировано в шестнадцатеричном формате (HEX.Encode), я получаю значение 00011203001a0a1413081f091106060518170d16000514111317030d11130408.
Однако оно предназначено для получения 00643069549a3e9898c5c5db6016919dc6d8cc88 * 1006, если вместо этого
и расшифровать 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]