Add idBalance command

This commit is contained in:
poka 2021-02-26 04:11:02 +01:00
parent 0663d11287
commit fb4bed8dc2
3 changed files with 39 additions and 12 deletions

View File

@ -38,6 +38,7 @@ pay_cmd = subparsers.add_parser('pay', help="Payer en Ḡ1")
history_cmd = subparsers.add_parser('history', help="Voir l'historique des transactions d'un compte Ḡ1") history_cmd = subparsers.add_parser('history', help="Voir l'historique des transactions d'un compte Ḡ1")
balance_cmd = subparsers.add_parser('balance', help="Voir le solde d'un compte Ḡ1") balance_cmd = subparsers.add_parser('balance', help="Voir le solde d'un compte Ḡ1")
id_cmd = subparsers.add_parser('id', help="Voir l'identité d'une clé publique/username") id_cmd = subparsers.add_parser('id', help="Voir l'identité d'une clé publique/username")
id_balance_cmd = subparsers.add_parser('idBalance', help="Voir l'identité d'une clé publique/username et son solde")
# Messages management # Messages management
read_cmd.add_argument('-n', '--number',type=int, default=3, help="Affiche les NUMBER derniers messages") read_cmd.add_argument('-n', '--number',type=int, default=3, help="Affiche les NUMBER derniers messages")
@ -97,6 +98,7 @@ balance_cmd.add_argument('-p', '--pubkey', help="Clé publique du compte visé")
balance_cmd.add_argument('-m', '--mempool', action='store_true', help="Utilise les sources en Mempool") balance_cmd.add_argument('-m', '--mempool', action='store_true', help="Utilise les sources en Mempool")
id_cmd.add_argument('-p', '--pubkey', help="Clé publique du compte visé") id_cmd.add_argument('-p', '--pubkey', help="Clé publique du compte visé")
id_cmd.add_argument('-u', '--username', help="Username du compte visé") id_cmd.add_argument('-u', '--username', help="Username du compte visé")
id_balance_cmd.add_argument('-p', '--pubkey', help="Pubkey du compte visé")
args = parser.parse_args() args = parser.parse_args()
@ -133,7 +135,7 @@ try:
except: except:
profile = False profile = False
if cmd in ('history','balance','get','id') and (pubkey or profile): if cmd in ('history','balance','get','id','idBalance') and (pubkey or profile):
noNeedDunikey = True noNeedDunikey = True
keyPath = False keyPath = False
try: try:
@ -223,7 +225,7 @@ if cmd in ("read","send","delete","set","get","erase","stars","unstars","getoffe
cesium.deleteOffer(args.id) cesium.deleteOffer(args.id)
# Construct GVA object # Construct GVA object
elif cmd in ("pay","history","balance","id"): elif cmd in ("pay","history","balance","id","idBalance"):
from lib.gva import GvaApi from lib.gva import GvaApi
if args.node: if args.node:
@ -248,6 +250,8 @@ elif cmd in ("pay","history","balance","id"):
gva.balance(args.mempool) gva.balance(args.mempool)
elif cmd == "id": elif cmd == "id":
gva.id(args.pubkey, args.username) gva.id(args.pubkey, args.username)
elif cmd == "idBalance":
gva.idBalance(args.pubkey)
if keyPath: if keyPath:

View File

@ -63,3 +63,8 @@ class GvaApi():
gva = Id(self.dunikey, self.node, pubkey, username) gva = Id(self.dunikey, self.node, pubkey, username)
result = gva.sendDoc() result = gva.sendDoc()
print(result) print(result)
def idBalance(self, pubkey):
gva = Id(self.dunikey, self.node, pubkey)
result = gva.sendDoc(True)
print(result)

View File

@ -23,18 +23,34 @@ class Id:
transport = AIOHTTPTransport(url=node) transport = AIOHTTPTransport(url=node)
self.client = Client(transport=transport, fetch_schema_from_transport=True) self.client = Client(transport=transport, fetch_schema_from_transport=True)
def sendDoc(self): def sendDoc(self, getBalance=False):
# Build balance generation document # Build balance generation document
queryBuild = gql( if (getBalance):
""" queryBuild = gql(
query ($pubkey: String!){ """
idty (pubkey: $pubkey) { query ($pubkey: String!){
isMember idty (pubkey: $pubkey) {
username isMember
username
}
balance(script: $pubkey) {
amount
} }
} }
""" """
) )
else:
queryBuild = gql(
"""
query ($pubkey: String!){
idty (pubkey: $pubkey) {
isMember
username
}
}
"""
)
paramsBuild = { paramsBuild = {
"pubkey": self.pubkey "pubkey": self.pubkey
} }
@ -48,6 +64,8 @@ class Id:
sys.exit(1) sys.exit(1)
jsonBrut = IDResult['idty'] jsonBrut = IDResult['idty']
if (getBalance):
jsonBrut['balance'] = IDResult['balance']['amount']/100
username = IDResult['idty']['username'] username = IDResult['idty']['username']
isMember = IDResult['idty']['isMember'] isMember = IDResult['idty']['isMember']