From 30f45852238963dac9c493b161a7e07a367ba901 Mon Sep 17 00:00:00 2001 From: poka Date: Mon, 29 Mar 2021 12:32:38 +0200 Subject: [PATCH] Fix scalar types for balance and idty and history GVA --- .gitignore | 1 + .vscode/settings.json | 3 +++ dunikey.pubsec | 2 ++ lib/.gva.py.swp | Bin 0 -> 1024 bytes lib/gvaHistory.py | 9 +++++---- lib/gvaID.py | 41 +++++++++++++++++++++++++---------------- requirements.txt | 2 +- 7 files changed, 37 insertions(+), 21 deletions(-) create mode 100644 .vscode/settings.json create mode 100755 dunikey.pubsec create mode 100644 lib/.gva.py.swp diff --git a/.gitignore b/.gitignore index a2f8132..357236c 100755 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ __pycache__ *.dunikey +not4U diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3de6811 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "python.pythonPath": "/usr/bin/python3.9" +} \ No newline at end of file diff --git a/dunikey.pubsec b/dunikey.pubsec new file mode 100755 index 0000000..ffdf57d --- /dev/null +++ b/dunikey.pubsec @@ -0,0 +1,2 @@ +pub: HTkEecgbtBd3aZiJJYuUjGwLB7r3Ud232TG4BwLDdB3J +sec: 36fT3if1YGLwmhSS89F8vQ6QpmhWmhcLdQyHHmSgxJpbYSxq7C37sDmPKZykmGrE8zmeUxdyAiY256H852p3Lfor \ No newline at end of file diff --git a/lib/.gva.py.swp b/lib/.gva.py.swp new file mode 100644 index 0000000000000000000000000000000000000000..3bba273d63eccdc8feac22d4ef21cdc619a4400e GIT binary patch literal 1024 zcmYc?$V<%2S1{4DU_b#!+la>1QQo=VTV^=VT`7r 45: - sys.stderr.write("La clé publique n'est pas au bon format.\n") - sys.exit(1) + # if not re.match(PUBKEY_REGEX, self.pubkey) or len(self.pubkey) > 45: + # sys.stderr.write("La clé publique n'est pas au bon format.\n") + # sys.exit(1) # Define Duniter GVA node transport = AIOHTTPTransport(url=node) @@ -28,14 +28,14 @@ class Id: if (getBalance): queryBuild = gql( """ - query ($pubkey: String!){ + query ($pubkey: PubKeyGva!, $script: PkOrScriptGva!){ idty (pubkey: $pubkey) { isMember username } - balance(script: $pubkey) { + balance(script: $script) { amount - } + } } """ ) @@ -52,21 +52,30 @@ class Id: ) paramsBuild = { - "pubkey": self.pubkey + "pubkey": self.pubkey, + "script": f"SIG({self.pubkey})" } # Send balance document try: - IDResult = self.client.execute(queryBuild, variable_values=paramsBuild) + queryResult = self.client.execute(queryBuild, variable_values=paramsBuild) except Exception as e: - message = ast.literal_eval(str(e))["message"] - sys.stderr.write("Echec de récupération du solde:\n" + message + "\n") + sys.stderr.write("Echec de récupération du solde:\n" + str(e) + "\n") sys.exit(1) - jsonBrut = IDResult['idty'] - if (getBalance): - jsonBrut['balance'] = IDResult['balance']['amount']/100 - username = IDResult['idty']['username'] - isMember = IDResult['idty']['isMember'] + jsonBrut = queryResult + + if (getBalance): + if (queryResult['balance'] == None): + jsonBrut['balance'] = {"amount": 0.0} + else: + jsonBrut['balance'] = queryResult['balance']['amount']/100 + + if (queryResult['idty'] == None): + username = 'Matiou' + isMember = False + else: + username = queryResult['idty']['username'] + isMember = queryResult['idty']['isMember'] return json.dumps(jsonBrut, indent=2) diff --git a/requirements.txt b/requirements.txt index 195f374..d248144 100755 --- a/requirements.txt +++ b/requirements.txt @@ -4,5 +4,5 @@ pybase64 duniterpy==0.58.1 termcolor python-dotenv -gql==3.0.0a1 +gql==3.0.0a5 requests