From d07243711c8db8d09c05c9d69da6fc8c348d0f2f Mon Sep 17 00:00:00 2001 From: Mike <45243121+tankf33der@users.noreply.github.com> Date: Mon, 20 Oct 2025 14:23:22 +0300 Subject: [PATCH] encoding.base58: fix encoding, add test (#25538) --- vlib/encoding/base58/base58.v | 3 ++- vlib/encoding/base58/base58_test.v | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/vlib/encoding/base58/base58.v b/vlib/encoding/base58/base58.v index 7d7855119..6a0ec9960 100644 --- a/vlib/encoding/base58/base58.v +++ b/vlib/encoding/base58/base58.v @@ -50,6 +50,7 @@ pub fn encode_walpha(input string, alphabet Alphabet) string { } // encode_walpha encodes the input array to base58 with a custom aplhabet +@[direct_array_access] pub fn encode_walpha_bytes(input []u8, alphabet Alphabet) []u8 { if input.len == 0 { return [] @@ -80,7 +81,7 @@ pub fn encode_walpha_bytes(input []u8, alphabet Alphabet) []u8 { out[i] = u8(carry % 58) carry /= 58 } - high = 1 + high = i } // determine additional "zero-gap" in the buffer, aside from zcount diff --git a/vlib/encoding/base58/base58_test.v b/vlib/encoding/base58/base58_test.v index a70851cd8..839bb495e 100644 --- a/vlib/encoding/base58/base58_test.v +++ b/vlib/encoding/base58/base58_test.v @@ -36,6 +36,9 @@ fn test_encode_string() { a := 'lorem ipsum' assert encode(a) == 'TtaR6twpTGu8VpY' + aa := '0JHRktAz1yEtdGl6RnO' + assert encode(aa) == '9qkYDxBXPdc6nW825HkNx7oFMY' + abc := new_alphabet('abcdefghij\$lmnopqrstuvwxyz0123456789_ABCDEFGHIJLMNOPQRSTUV') or { panic(@MOD + '.' + @FN + ': this should never happen') } -- 2.39.5