94672cb9cc
* added publish TX for backwards compat. * lowered the prototick for faster block syncing * print useragent on startup * added createMultiRedeemScript for genesis block generation. * building genesis block from scratch. * implemented merkle tree. * starting blockhain with generated genesis hash * Fixed bug in unspent coin state. * fixed broken tests after genesis block. * removed log line. * bumped version -> 0.34.0
41 lines
939 B
Go
41 lines
939 B
Go
package crypto
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/hex"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestEncodeDecodeInfinity(t *testing.T) {
|
|
key := &PublicKey{ECPoint{}}
|
|
buf := new(bytes.Buffer)
|
|
assert.Nil(t, key.EncodeBinary(buf))
|
|
assert.Equal(t, 1, buf.Len())
|
|
|
|
keyDecode := &PublicKey{}
|
|
assert.Nil(t, keyDecode.DecodeBinary(buf))
|
|
assert.Equal(t, []byte{0x00}, keyDecode.Bytes())
|
|
}
|
|
|
|
func TestEncodeDecodePublicKey(t *testing.T) {
|
|
for i := 0; i < 4; i++ {
|
|
p := &PublicKey{RandomECPoint()}
|
|
buf := new(bytes.Buffer)
|
|
assert.Nil(t, p.EncodeBinary(buf))
|
|
|
|
pDecode := &PublicKey{}
|
|
assert.Nil(t, pDecode.DecodeBinary(buf))
|
|
assert.Equal(t, p.X, pDecode.X)
|
|
}
|
|
}
|
|
|
|
func TestDecodeFromString(t *testing.T) {
|
|
str := "03b209fd4f53a7170ea4444e0cb0a6bb6a53c2bd016926989cf85f9b0fba17a70c"
|
|
pubKey, err := NewPublicKeyFromString(str)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
assert.Equal(t, str, hex.EncodeToString(pubKey.Bytes()))
|
|
}
|