diff --git a/duniterpy/documents/transaction.py b/duniterpy/documents/transaction.py index fa950e808bda006e9307855e1d3f70014352d9d5..7917c25540e7e57de96cc35a77a39d93aacaa4a9 100644 --- a/duniterpy/documents/transaction.py +++ b/duniterpy/documents/transaction.py @@ -1,5 +1,5 @@ import re -from typing import TypeVar, List, Type, Optional, Dict, Union +from typing import TypeVar, List, Any, Type, Optional, Dict, Union import pypeg2 @@ -78,6 +78,24 @@ class InputSource: self.origin_id = origin_id self.index = index + + def __eq__(self, other: Any) -> bool: + """ + Check InputSource instances equality + """ + if not isinstance(other, InputSource): + return NotImplemented + return self.amount == other.amount and\ + self.base == other.base and\ + self.source == other.source and\ + self.origin_id == other.origin_id and\ + self.index == other.index + + + def __hash__(self) -> int: + return hash((self.amount, self.base, self.source, self.origin_id, self.index)) + + @classmethod def from_inline(cls: Type[InputSourceType], tx_version: int, inline: str) -> InputSourceType: """