Files
dejo-node/internal/transactions/validation_test.go
2025-05-23 10:44:32 -03:00

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")
}
}