17 lines
634 B
Python
17 lines
634 B
Python
class Transaction:
|
|
def __init__(self, sender, receiver, amount, signature=None):
|
|
self.sender = sender # 公钥
|
|
self.receiver = receiver # 地址
|
|
self.amount = amount # 金额
|
|
self.signature = signature
|
|
|
|
def serialize(self) -> bytes:
|
|
# 序列化交易数据用于签名
|
|
return f"{self.sender}{self.receiver}{self.amount}".encode()
|
|
|
|
def sign(self, wallet):
|
|
self.signature = wallet.sign_transaction(self.serialize())
|
|
|
|
def is_valid(self) -> bool:
|
|
from bls import verify
|
|
return verify(self.sender, self.serialize(), self.signature) |