github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/encoding/base58/base58_test.go (about)

     1  package base58
     2  
     3  import (
     4  	"encoding/hex"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestCheckEncodeDecode(t *testing.T) {
    12  	var b58CsumEncoded = "KxhEDBQyyEFymvfJD96q8stMbJMbZUb6D1PmXqBWZDU2WvbvVs9o"
    13  	var b58CsumDecodedHex = "802bfe58ab6d9fd575bdc3a624e4825dd2b375d64ac033fbc46ea79dbab4f69a3e01"
    14  
    15  	b58CsumDecoded, _ := hex.DecodeString(b58CsumDecodedHex)
    16  	encoded := CheckEncode(b58CsumDecoded)
    17  	decoded, err := CheckDecode(b58CsumEncoded)
    18  	assert.Nil(t, err)
    19  	assert.Equal(t, encoded, b58CsumEncoded)
    20  	assert.Equal(t, decoded, b58CsumDecoded)
    21  }
    22  
    23  func TestCheckDecodeFailures(t *testing.T) {
    24  	badbase58 := "BASE%*"
    25  	_, err := CheckDecode(badbase58)
    26  	assert.NotNil(t, err)
    27  	shortbase58 := "THqY"
    28  	_, err = CheckDecode(shortbase58)
    29  	assert.NotNil(t, err)
    30  	badcsum := "KxhEDBQyyEFymvfJD96q8stMbJMbZUb6D1PmXqBWZDU2WvbvVs9A"
    31  	_, err = CheckDecode(badcsum)
    32  	assert.NotNil(t, err)
    33  }
    34  
    35  func TestBase58LeadingZeroes(t *testing.T) {
    36  	buf := []byte{0, 0, 0, 1}
    37  	b58 := CheckEncode(buf)
    38  	dec, err := CheckDecode(b58)
    39  	require.NoError(t, err)
    40  	require.Equal(t, buf, dec)
    41  }