public(friend) funbase16_utf8_to_vec_u8(str: vector<u8>): vector<u8> {
let result = vector::empty<u8>();
let i = 0;
while (i < str.length()) {
let c1 = str.borrow(i);
let c2 = str.borrow(i + 1);
let byte = hex_char_to_u8(*c1) << 4 | hex_char_to_u8(*c2);
result.push_back(byte);
i += 2;
};
result
}