logos-blockchain-specs/da/test_verifier.py

52 lines
1.6 KiB
Python
Raw Permalink Normal View History

from unittest import TestCase
from da.common import Column
from da.encoder import DAEncoder
from da.kzg_rs import kzg
from da.kzg_rs.common import GLOBAL_PARAMETERS, ROOTS_OF_UNITY
from da.test_encoder import TestEncoder
2025-05-21 13:17:05 +03:00
from da.verifier import DAVerifier, DAShare
class TestVerifier(TestCase):
def setUp(self):
self.verifier = DAVerifier()
def test_verify(self):
_ = TestEncoder()
_.setUp()
encoded_data = _.encoder.encode(_.data)
for i, column in enumerate(encoded_data.extended_matrix.columns):
verifier = DAVerifier()
2025-05-21 13:17:05 +03:00
da_blob = DAShare(
Column(column),
i,
2025-05-21 13:17:05 +03:00
encoded_data.combined_column_proofs[i],
encoded_data.row_commitments,
)
self.assertIsNotNone(verifier.verify(da_blob))
def test_verify_duplicated_blob(self):
_ = TestEncoder()
_.setUp()
encoded_data = _.encoder.encode(_.data)
columns = enumerate(encoded_data.extended_matrix.columns)
i, column = next(columns)
2025-05-21 13:17:05 +03:00
da_blob = DAShare(
Column(column),
i,
2025-05-21 13:17:05 +03:00
encoded_data.combined_column_proofs[i],
encoded_data.row_commitments,
)
self.assertIsNotNone(self.verifier.verify(da_blob))
for i, column in columns:
2025-05-21 13:17:05 +03:00
da_blob = DAShare(
Column(column),
i,
2025-05-21 13:17:05 +03:00
encoded_data.combined_column_proofs[i],
encoded_data.row_commitments,
)
self.assertIsNotNone(self.verifier.verify(da_blob))