diff --git a/duniterpy/documents/block.py b/duniterpy/documents/block.py index 802b95b383a2cc225941725745a9fccb9b371a7d..d93fa412b0fb4446964a8e80a912288df146febf 100644 --- a/duniterpy/documents/block.py +++ b/duniterpy/documents/block.py @@ -313,17 +313,23 @@ class Block(Document): ] # joiners: List[Membership] arguments["joiners"] = [ - Membership.from_inline("IN", i + "\n", version=version, currency=currency) + Membership.from_inline( + i + "\n", version=version, currency=currency, membership_type="IN" + ) for i in arguments["joiners"] ] # actives: List[Membership] arguments["actives"] = [ - Membership.from_inline("IN", i + "\n", version=version, currency=currency) + Membership.from_inline( + i + "\n", version=version, currency=currency, membership_type="IN" + ) for i in arguments["actives"] ] # leavers: List[Membership] arguments["leavers"] = [ - Membership.from_inline("OUT", i + "\n", version=version, currency=currency) + Membership.from_inline( + i + "\n", version=version, currency=currency, membership_type="OUT" + ) for i in arguments["leavers"] ] # revokations: List[Revocation] @@ -448,7 +454,7 @@ class Block(Document): n += 1 while Block.re_actives.match(lines[n]) is None: membership = Membership.from_inline( - "IN", lines[n], version=version, currency=currency + lines[n], version=version, currency=currency, membership_type="IN" ) joiners.append(membership) n += 1 @@ -457,7 +463,7 @@ class Block(Document): n += 1 while Block.re_leavers.match(lines[n]) is None: membership = Membership.from_inline( - "IN", lines[n], version=version, currency=currency + lines[n], version=version, currency=currency, membership_type="IN" ) actives.append(membership) n += 1 @@ -466,7 +472,7 @@ class Block(Document): n += 1 while Block.re_revoked.match(lines[n]) is None: membership = Membership.from_inline( - "OUT", lines[n], version=version, currency=currency + lines[n], version=version, currency=currency, membership_type="OUT" ) leavers.append(membership) n += 1 diff --git a/duniterpy/documents/membership.py b/duniterpy/documents/membership.py index 3c57df49bf4e9bb21174b8fd788090dcc7aa73e8..3c9663578d385e9064aeb3dce48682f071dd9778 100644 --- a/duniterpy/documents/membership.py +++ b/duniterpy/documents/membership.py @@ -86,24 +86,24 @@ class Membership(Document): self, issuer: str, membership_ts: BlockUID, - membership_type: str, uid: str, identity_ts: BlockUID, signing_key: SigningKey = None, version: int = VERSION, currency: str = G1_CURRENCY_CODENAME, + membership_type: str = "IN", ) -> None: """ Create a membership document :param issuer: Public key of the issuer :param membership_ts: BlockUID of this membership - :param membership_type: "IN" or "OUT" to enter or quit the community :param uid: Unique identifier of the identity :param identity_ts: BlockUID of the identity :param signing_key: SigningKey instance to sign the document (default=None) :param version: Document version (default=membership.VERSION) :param currency: Currency codename (default=constants.CURRENCY_CODENAME_G1) + :param membership_type: "IN" or "OUT" to enter or quit the community. Default "IN" """ super().__init__(version, currency) @@ -119,18 +119,18 @@ class Membership(Document): @classmethod def from_inline( cls: Type[MembershipType], - membership_type: str, inline: str, version: int = VERSION, currency: str = G1_CURRENCY_CODENAME, + membership_type: str = "IN", ) -> MembershipType: """ Return Membership instance from inline format - :param membership_type: "IN" or "OUT" to enter or exit membership :param inline: Inline string format :param version: Document version (default=membership.VERSION) :param currency: Currency codename (default=constants.CURRENCY_CODENAME_G1) + :param membership_type: "IN" or "OUT" to enter or exit membership. Default "IN" :return: """ data = Membership.re_inline.match(inline) @@ -144,11 +144,11 @@ class Membership(Document): membership = cls( issuer, membership_blockstamp, - membership_type, uid, identity_blockstamp, version=version, currency=currency, + membership_type=membership_type, ) # return membership with signature @@ -200,11 +200,11 @@ class Membership(Document): membership = cls( issuer, membership_blockstamp, - membership_type, uid, identity_blockstamp, version=version, currency=currency, + membership_type=membership_type, ) # return membership with signature diff --git a/examples/send_membership.py b/examples/send_membership.py index 68a45edad59a3b41ace19a4437c7f44425afdaab..dfb69f833e9e830ec77ed798e5371aa6f5945238 100644 --- a/examples/send_membership.py +++ b/examples/send_membership.py @@ -33,18 +33,18 @@ BMAS_ENDPOINT = "BMAS g1-test.duniter.org 443" def get_membership_document( - membership_type: str, current_block: dict, identity: dict, key: SigningKey, + membership_type: str = "IN", ) -> Membership: """ Get a Membership document - :param membership_type: "IN" to ask for membership or "OUT" to cancel membership :param current_block: Current block data :param identity: identity card from /wot/lookup :param key: cryptographic key to sign documents + :param membership_type: "IN" to ask for membership or "OUT" to cancel membership. Default "IN" :rtype: Membership """ @@ -60,11 +60,11 @@ def get_membership_document( membership = Membership( issuer=key.pubkey, membership_ts=timestamp, - membership_type=membership_type, uid=uid, identity_ts=identity_timestamp, signing_key=key, currency=current_block["currency"], + membership_type=membership_type, ) return membership @@ -99,7 +99,7 @@ def send_membership(): identity = identities["results"][0] # create a membership demand document - membership = get_membership_document("IN", current_block, identity, key) + membership = get_membership_document(current_block, identity, key) # send the membership signed raw document to the node try: diff --git a/tests/documents/test_membership.py b/tests/documents/test_membership.py index 37830d0fc51d8646455dbcc40fe47197786cc983..12b50e14484e7215fc3fe66bf8c8ba4e97a2cc27 100644 --- a/tests/documents/test_membership.py +++ b/tests/documents/test_membership.py @@ -36,7 +36,7 @@ dkaXIiCYUJtCg8Feh/BKvPYf4uFH9CJ/zY6J4MlA9BsjmcMe4YAblvNt/gJy31b1aGq3ue3h14mLMCu8 class TestMembership(unittest.TestCase): def test_frominline(self): membership = Membership.from_inline( - "IN", membership_inline, version=2, currency="zeta_brousouf" + membership_inline, version=2, currency="zeta_brousouf" ) self.assertEqual( membership.issuer, "HnFcSms8jzwngtVomTTnzudZx7SHUQY8sVE1y8yBmULk"