48 lines
1020 B
Go
48 lines
1020 B
Go
package transactions_test
|
|
|
|
import (
|
|
"crypto/ecdsa"
|
|
"crypto/elliptic"
|
|
"crypto/rand"
|
|
"dejo_node/internal/transactions"
|
|
"testing"
|
|
)
|
|
|
|
func TestTransaction_IsValid(t *testing.T) {
|
|
priv, _ := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
|
|
pub := &priv.PublicKey
|
|
|
|
tx := transactions.Transaction{
|
|
From: "0xabc",
|
|
To: "0xdef",
|
|
Value: 50,
|
|
Gas: 10,
|
|
Nonce: 1,
|
|
}
|
|
tx.Signature = tx.GenerateSignature(priv)
|
|
|
|
err := tx.IsValid(pub, 100, 1)
|
|
if err != nil {
|
|
t.Errorf("esperava transação válida, mas falhou: %v", err)
|
|
}
|
|
}
|
|
|
|
func TestTransaction_IsValid_InvalidSignature(t *testing.T) {
|
|
priv, _ := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
|
|
wrongPriv, _ := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
|
|
pub := &priv.PublicKey
|
|
|
|
tx := transactions.Transaction{
|
|
From: "0xabc",
|
|
To: "0xdef",
|
|
Value: 50,
|
|
Gas: 10,
|
|
Nonce: 1,
|
|
}
|
|
tx.Signature = tx.GenerateSignature(wrongPriv)
|
|
|
|
err := tx.IsValid(pub, 100, 1)
|
|
if err == nil {
|
|
t.Error("esperava falha na assinatura, mas foi aceita")
|
|
}
|
|
} |