Skip to content

Commit

Permalink
Fixed tests, fixed method GetAddressFromPrivateKey
Browse files Browse the repository at this point in the history
  • Loading branch information
mrz1836 committed Nov 11, 2020
1 parent 4c7ce6b commit 158f8d6
Show file tree
Hide file tree
Showing 10 changed files with 190 additions and 192 deletions.
7 changes: 1 addition & 6 deletions address.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,15 +91,10 @@ func ValidA58(a58 []byte) (bool, error) {

// GetAddressFromPrivateKey takes a bsvec private key and returns a Bitcoin address
func GetAddressFromPrivateKey(privateKey *bsvec.PrivateKey, compressed bool) (string, error) {

rawKey, err := PrivateKeyFromString(fmt.Sprintf("%x", privateKey.Serialize()))
address, err := GetAddressFromPubKey(privateKey.PubKey(), compressed)
if err != nil {
return "", err
}
var address *bsvutil.LegacyAddressPubKeyHash
if address, err = GetAddressFromPubKey(rawKey.PubKey(), compressed); err != nil {
return "", err
}
return address.EncodeAddress(), nil
}

Expand Down
55 changes: 29 additions & 26 deletions address_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ func TestValidA58(t *testing.T) {
// Run tests
for _, test := range tests {
if valid, err := ValidA58([]byte(test.input)); err != nil && !test.expectedError {
t.Errorf("%s Failed: [%s] inputted and error not expected but got: %s", t.Name(), test.input, err.Error())
t.Fatalf("%s Failed: [%s] inputted and error not expected but got: %s", t.Name(), test.input, err.Error())
} else if err == nil && test.expectedError {
t.Errorf("%s Failed: [%s] inputted and error was expected", t.Name(), test.input)
t.Fatalf("%s Failed: [%s] inputted and error was expected", t.Name(), test.input)
} else if valid && !test.expectedValid {
t.Errorf("%s Failed: [%s] inputted and was valid but should NOT be valid", t.Name(), test.input)
t.Fatalf("%s Failed: [%s] inputted and was valid but should NOT be valid", t.Name(), test.input)
} else if !valid && test.expectedValid {
t.Errorf("%s Failed: [%s] inputted and was invalid but should be valid", t.Name(), test.input)
t.Fatalf("%s Failed: [%s] inputted and was invalid but should be valid", t.Name(), test.input)
}
}
}
Expand Down Expand Up @@ -88,34 +88,37 @@ func TestGetAddressFromPrivateKey(t *testing.T) {
// Run tests
for _, test := range tests {
if address, err := GetAddressFromPrivateKeyString(test.input, test.compressed); err != nil && !test.expectedError {
t.Errorf("%s Failed: [%s] inputted and error not expected but got: %s", t.Name(), test.input, err.Error())
t.Fatalf("%s Failed: [%s] inputted and error not expected but got: %s", t.Name(), test.input, err.Error())
} else if err == nil && test.expectedError {
t.Errorf("%s Failed: [%s] inputted and error was expected", t.Name(), test.input)
t.Fatalf("%s Failed: [%s] inputted and error was expected", t.Name(), test.input)
} else if address != test.expectedAddress {
t.Errorf("%s Failed: [%s] inputted and [%s] expected, but got: %s", t.Name(), test.input, test.expectedAddress, address)
t.Fatalf("%s Failed: [%s] inputted and [%s] expected, but got: %s", t.Name(), test.input, test.expectedAddress, address)
}
}
}

// TestGetAddressFromPrivateKeyCompression will test the method GetAddressFromPrivateKey()
func TestGetAddressFromPrivateKeyCompression(t *testing.T) {

privateKey, err := bsvec.NewPrivateKey(bsvec.S256())
if err != nil {
t.Error(err)
t.Fatal(err)
}

addressUncompressed, err := GetAddressFromPrivateKey(privateKey, false)
var addressUncompressed string
addressUncompressed, err = GetAddressFromPrivateKey(privateKey, false)
if err != nil {
t.Error(err)
t.Fatal(err)
}

addressCompressed, err := GetAddressFromPrivateKey(privateKey, true)
var addressCompressed string
addressCompressed, err = GetAddressFromPrivateKey(privateKey, true)
if err != nil {
t.Error(err)
t.Fatal(err)
}

if addressCompressed == addressUncompressed {
t.Errorf("Compressed and uncompressed addresses cannot match")
t.Fatalf("compressed and uncompressed addresses cannot match")
}
}

Expand Down Expand Up @@ -169,15 +172,15 @@ func TestGetAddressFromPubKey(t *testing.T) {
// Run tests
for _, test := range tests {
if rawKey, err := GetAddressFromPubKey(test.input, true); err != nil && !test.expectedError {
t.Errorf("%s Failed: [%v] inputted and error not expected but got: %s", t.Name(), test.input, err.Error())
t.Fatalf("%s Failed: [%v] inputted and error not expected but got: %s", t.Name(), test.input, err.Error())
} else if err == nil && test.expectedError {
t.Errorf("%s Failed: [%v] inputted and error was expected", t.Name(), test.input)
t.Fatalf("%s Failed: [%v] inputted and error was expected", t.Name(), test.input)
} else if rawKey == nil && !test.expectedNil {
t.Errorf("%s Failed: [%v] inputted and was nil but not expected", t.Name(), test.input)
t.Fatalf("%s Failed: [%v] inputted and was nil but not expected", t.Name(), test.input)
} else if rawKey != nil && test.expectedNil {
t.Errorf("%s Failed: [%v] inputted and was NOT nil but expected to be nil", t.Name(), test.input)
t.Fatalf("%s Failed: [%v] inputted and was NOT nil but expected to be nil", t.Name(), test.input)
} else if rawKey != nil && rawKey.EncodeAddress() != test.expectedAddress {
t.Errorf("%s Failed: [%v] inputted [%s] expected but failed comparison of addresses, got: %s", t.Name(), test.input, test.expectedAddress, rawKey.EncodeAddress())
t.Fatalf("%s Failed: [%v] inputted [%s] expected but failed comparison of addresses, got: %s", t.Name(), test.input, test.expectedAddress, rawKey.EncodeAddress())
}
}
}
Expand Down Expand Up @@ -227,11 +230,11 @@ func TestGetAddressFromScript(t *testing.T) {
// Run tests
for _, test := range tests {
if address, err := GetAddressFromScript(test.inputScript); err != nil && !test.expectedError {
t.Errorf("%s Failed: [%v] inputted and error not expected but got: %s", t.Name(), test.inputScript, err.Error())
t.Fatalf("%s Failed: [%v] inputted and error not expected but got: %s", t.Name(), test.inputScript, err.Error())
} else if err == nil && test.expectedError {
t.Errorf("%s Failed: [%v] inputted and error was expected", t.Name(), test.inputScript)
t.Fatalf("%s Failed: [%v] inputted and error was expected", t.Name(), test.inputScript)
} else if address != test.expectedAddress {
t.Errorf("%s Failed: [%v] inputted [%s] expected but failed comparison of addresses, got: %s", t.Name(), test.inputScript, test.expectedAddress, address)
t.Fatalf("%s Failed: [%v] inputted [%s] expected but failed comparison of addresses, got: %s", t.Name(), test.inputScript, test.expectedAddress, address)
}
}
}
Expand Down Expand Up @@ -274,15 +277,15 @@ func TestGetAddressFromPubKeyString(t *testing.T) {
// Run tests
for _, test := range tests {
if rawKey, err := GetAddressFromPubKeyString(test.input, true); err != nil && !test.expectedError {
t.Errorf("%s Failed: [%v] inputted and error not expected but got: %s", t.Name(), test.input, err.Error())
t.Fatalf("%s Failed: [%v] inputted and error not expected but got: %s", t.Name(), test.input, err.Error())
} else if err == nil && test.expectedError {
t.Errorf("%s Failed: [%v] inputted and error was expected", t.Name(), test.input)
t.Fatalf("%s Failed: [%v] inputted and error was expected", t.Name(), test.input)
} else if rawKey == nil && !test.expectedNil {
t.Errorf("%s Failed: [%v] inputted and was nil but not expected", t.Name(), test.input)
t.Fatalf("%s Failed: [%v] inputted and was nil but not expected", t.Name(), test.input)
} else if rawKey != nil && test.expectedNil {
t.Errorf("%s Failed: [%v] inputted and was NOT nil but expected to be nil", t.Name(), test.input)
t.Fatalf("%s Failed: [%v] inputted and was NOT nil but expected to be nil", t.Name(), test.input)
} else if rawKey != nil && rawKey.EncodeAddress() != test.expectedAddress {
t.Errorf("%s Failed: [%v] inputted [%s] expected but failed comparison of addresses, got: %s", t.Name(), test.input, test.expectedAddress, rawKey.EncodeAddress())
t.Fatalf("%s Failed: [%v] inputted [%s] expected but failed comparison of addresses, got: %s", t.Name(), test.input, test.expectedAddress, rawKey.EncodeAddress())
}
}
}
Expand Down
30 changes: 15 additions & 15 deletions encryption_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ func TestEncryptWithPrivateKey(t *testing.T) {
var encrypted string
for _, test := range tests {
if encrypted, err = EncryptWithPrivateKey(test.inputKey, test.inputData); err != nil && !test.expectedError {
t.Errorf("%s Failed: [%s] [%s] inputted and error not expected but got: %s", t.Name(), test.inputKey, test.inputData, err.Error())
t.Fatalf("%s Failed: [%s] [%s] inputted and error not expected but got: %s", t.Name(), test.inputKey, test.inputData, err.Error())
} else if err == nil && test.expectedError {
t.Errorf("%s Failed: [%s] [%s] inputted and error was expected", t.Name(), test.inputKey, test.inputData)
t.Fatalf("%s Failed: [%s] [%s] inputted and error was expected", t.Name(), test.inputKey, test.inputData)
} else if len(encrypted) == 0 {
t.Errorf("%s Failed: [%s] [%s] inputted and expected length > 0, but got: 0", t.Name(), test.inputKey, test.inputData)
t.Fatalf("%s Failed: [%s] [%s] inputted and expected length > 0, but got: 0", t.Name(), test.inputKey, test.inputData)
}
}
}
Expand All @@ -55,7 +55,7 @@ func TestEncryptWithPrivateKeyPanic(t *testing.T) {

defer func() {
if r := recover(); r == nil {
t.Errorf("the code did not panic")
t.Fatalf("the code did not panic")
}
}()

Expand Down Expand Up @@ -129,11 +129,11 @@ func TestEncryptWithPrivateKeyString(t *testing.T) {
var encrypted string
for _, test := range tests {
if encrypted, err = EncryptWithPrivateKeyString(test.inputKey, test.inputData); err != nil && !test.expectedError {
t.Errorf("%s Failed: [%s] [%s] inputted and error not expected but got: %s", t.Name(), test.inputKey, test.inputData, err.Error())
t.Fatalf("%s Failed: [%s] [%s] inputted and error not expected but got: %s", t.Name(), test.inputKey, test.inputData, err.Error())
} else if err == nil && test.expectedError {
t.Errorf("%s Failed: [%s] [%s] inputted and error was expected", t.Name(), test.inputKey, test.inputData)
t.Fatalf("%s Failed: [%s] [%s] inputted and error was expected", t.Name(), test.inputKey, test.inputData)
} else if err == nil && len(encrypted) == 0 {
t.Errorf("%s Failed: [%s] [%s] inputted and expected length > 0, but got: 0", t.Name(), test.inputKey, test.inputData)
t.Fatalf("%s Failed: [%s] [%s] inputted and expected length > 0, but got: 0", t.Name(), test.inputKey, test.inputData)
}
}
}
Expand Down Expand Up @@ -249,11 +249,11 @@ func TestDecryptWithPrivateKey(t *testing.T) {
var decrypted string
for _, test := range tests {
if decrypted, err = DecryptWithPrivateKey(test.inputKey, test.inputEncrypted); err != nil && !test.expectedError {
t.Errorf("%s Failed: [%s] [%s] inputted and error not expected but got: %s", t.Name(), test.inputKey, test.inputEncrypted, err.Error())
t.Fatalf("%s Failed: [%s] [%s] inputted and error not expected but got: %s", t.Name(), test.inputKey, test.inputEncrypted, err.Error())
} else if err == nil && test.expectedError {
t.Errorf("%s Failed: [%s] [%s] inputted and error was expected", t.Name(), test.inputKey, test.inputEncrypted)
t.Fatalf("%s Failed: [%s] [%s] inputted and error was expected", t.Name(), test.inputKey, test.inputEncrypted)
} else if decrypted != test.expectedData {
t.Errorf("%s Failed: [%s] [%s] inputted and [%s] expected, but got: %s", t.Name(), test.inputKey, test.inputEncrypted, test.expectedData, decrypted)
t.Fatalf("%s Failed: [%s] [%s] inputted and [%s] expected, but got: %s", t.Name(), test.inputKey, test.inputEncrypted, test.expectedData, decrypted)
}
}
}
Expand Down Expand Up @@ -375,11 +375,11 @@ func TestDecryptWithPrivateKeyString(t *testing.T) {
// Run tests
for _, test := range tests {
if decrypted, err := DecryptWithPrivateKeyString(test.inputKey, test.inputEncrypted); err != nil && !test.expectedError {
t.Errorf("%s Failed: [%s] [%s] inputted and error not expected but got: %s", t.Name(), test.inputKey, test.inputEncrypted, err.Error())
t.Fatalf("%s Failed: [%s] [%s] inputted and error not expected but got: %s", t.Name(), test.inputKey, test.inputEncrypted, err.Error())
} else if err == nil && test.expectedError {
t.Errorf("%s Failed: [%s] [%s] inputted and error was expected", t.Name(), test.inputKey, test.inputEncrypted)
t.Fatalf("%s Failed: [%s] [%s] inputted and error was expected", t.Name(), test.inputKey, test.inputEncrypted)
} else if decrypted != test.expectedData {
t.Errorf("%s Failed: [%s] [%s] inputted and [%s] expected, but got: %s", t.Name(), test.inputKey, test.inputEncrypted, test.expectedData, decrypted)
t.Fatalf("%s Failed: [%s] [%s] inputted and [%s] expected, but got: %s", t.Name(), test.inputKey, test.inputEncrypted, test.expectedData, decrypted)
}
}
}
Expand Down Expand Up @@ -454,7 +454,7 @@ func TestEncryptSharedPanic(t *testing.T) {

defer func() {
if r := recover(); r == nil {
t.Errorf("the code did not panic")
t.Fatalf("the code did not panic")
}
}()

Expand Down Expand Up @@ -512,7 +512,7 @@ func TestEncryptSharedStringPanic(t *testing.T) {

defer func() {
if r := recover(); r == nil {
t.Errorf("the code did not panic")
t.Fatalf("the code did not panic")
}
}()

Expand Down
Loading

0 comments on commit 158f8d6

Please sign in to comment.