github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/encoding/address/address_test.go (about) 1 package address 2 3 import ( 4 "testing" 5 6 "github.com/nspcc-dev/neo-go/pkg/util" 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestUint160DecodeEncodeAddress(t *testing.T) { 12 addrs := []string{ 13 "NRHkiY2hLy5ypD32CKZtL6pNwhbFMqDEhR", 14 "NPCD6gAxNuuJqssZY1eCJabuaz4BjBUHab", 15 "NUJUhgvvQyp6AmDBg3QRQ1cmRkMRhaXqZP", 16 } 17 for _, addr := range addrs { 18 val, err := StringToUint160(addr) 19 require.NoError(t, err) 20 assert.Equal(t, addr, Uint160ToString(val)) 21 } 22 } 23 24 func TestUint160DecodeKnownAddress(t *testing.T) { 25 address := "NNnFn8iHWWnJe9QYoN1r4PeXMuVpfLVRS7" 26 27 val, err := StringToUint160(address) 28 require.NoError(t, err) 29 30 assert.Equal(t, "b28427088a3729b2536d10122960394e8be6721f", val.StringLE()) 31 assert.Equal(t, "1f72e68b4e39602912106d53b229378a082784b2", val.String()) 32 } 33 34 func TestUint160DecodeBadBase58(t *testing.T) { 35 address := "AJeAEsmeD6t279Dx4n2HWdUvUmmXQ4iJv@" 36 37 _, err := StringToUint160(address) 38 require.Error(t, err) 39 } 40 41 func TestUint160DecodeBadPrefix(t *testing.T) { 42 // The same AJeAEsmeD6t279Dx4n2HWdUvUmmXQ4iJvP key encoded with 0x18 prefix. 43 address := "AhymDz4vvHLtvaN36CMbzkki7H2U8ENb8F" 44 45 _, err := StringToUint160(address) 46 require.Error(t, err) 47 } 48 49 func TestPrefixFirstLetter(t *testing.T) { 50 u := util.Uint160{} 51 require.EqualValues(t, 'N', Uint160ToString(u)[0]) 52 53 for i := range u { 54 u[i] = 0xFF 55 } 56 require.EqualValues(t, 'N', Uint160ToString(u)[0]) 57 }