23 lines
769 B
Python
23 lines
769 B
Python
from typing import Generic, TypeVar
|
|
|
|
from rainbowadn.hashing.hashpoint import HashPoint
|
|
from rainbowadn.hashing.metaorigin import MetaOrigin
|
|
from rainbowadn.hashing.origin import Origin
|
|
from rainbowadn.hashing.rainbow_factory import RainbowFactory
|
|
|
|
__all__ = ('LocalMetaOrigin',)
|
|
|
|
Mentioned = TypeVar('Mentioned')
|
|
|
|
|
|
class LocalMetaOrigin(MetaOrigin[Mentioned], Generic[Mentioned]):
|
|
def __init__(self, origin: Origin[Mentioned]):
|
|
assert isinstance(origin, Origin)
|
|
self._origin = origin
|
|
|
|
def origin(self, factory: RainbowFactory[Mentioned], point: bytes) -> Origin[Mentioned]:
|
|
assert isinstance(factory, RainbowFactory)
|
|
assert isinstance(point, bytes)
|
|
assert len(point) == HashPoint.HASH_LENGTH
|
|
return self._origin
|