diff --git a/duniterpy/api/ws2p/network.py b/duniterpy/api/ws2p/network.py index b7fa58aff2f4d19730b8527633f9d21e1b61d494..ec9b3a149309083f077926aca1cb5cf79982103a 100644 --- a/duniterpy/api/ws2p/network.py +++ b/duniterpy/api/ws2p/network.py @@ -54,4 +54,12 @@ WS2P_HEADS_SCHEMA = { "required": ["heads"] } -# todo: support ws2p v1 api + +def heads(client: Client): + """ + GET Certification data over a member + + :param client: Client to connect to the api + :rtype: dict + """ + return client.get(MODULE + '/ws2p/heads', schema=WS2P_HEADS_SCHEMA) diff --git a/duniterpy/documents/ws2p/heads.py b/duniterpy/documents/ws2p/heads.py index 1f63d90b0e408c71cbb39606d16b3deb064a670d..7d020e825d93a6a14fbec73e0152f9dbbb8eb847 100644 --- a/duniterpy/documents/ws2p/heads.py +++ b/duniterpy/documents/ws2p/heads.py @@ -22,8 +22,8 @@ class API: data = API.re_inline.match(inline) if data is None: raise MalformedDocumentError("WS2P API Document") - private = data.group(1) - public = data.group(2) + private = "" if data.group(1) is None else data.group(1) + public = "" if data.group(2) is None else data.group(2) return cls(private, public) def __str__(self) -> str: diff --git a/duniterpy/key/verifying_key.py b/duniterpy/key/verifying_key.py index ba4652a65f001b70a7d2086e807134238f3e8441..aa419abeefad79507bd9c18c3032c5a1e1f617a4 100644 --- a/duniterpy/key/verifying_key.py +++ b/duniterpy/key/verifying_key.py @@ -5,11 +5,12 @@ duniter public and private keys """ import base64 +from typing import Any + import libnacl.sign import libnacl.encode from duniterpy.documents import Document -from duniterpy.documents.ws2p.heads import HeadV2 from .base58 import Base58Encoder @@ -41,10 +42,10 @@ class VerifyingKey(libnacl.sign.Verifier): except ValueError: return False - def verify_ws2p_head(self, head: HeadV2) -> bool: + def verify_ws2p_head(self, head: Any) -> bool: """ Check specified document - :param HeadV2 head: + :param Any head: :return: """ signature = base64.b64decode(head.signature)