class GarlicoinWrapper: def __init__(self, rpcUrl, rpcUser, rpcPass): self.srv = Server(rpcUrl, auth=(rpcUser, rpcPass)) def get_user_address(self, userId): addresses = self.srv.getaddressesbyaccount(str(userId)) if not addresses: return self.generate_address(str(userId)) else: return addresses[0] def generate_address(self, userId): return self.srv.getnewaddress(str(userId)) def get_balance(self, userId): return self.srv.getbalance(str(userId)) def transfer(self, userIdSrc, grlcDest, amount): return self.srv.sendfrom(str(userIdSrc), grlcDest, amount) def move_between_accounts(self, userIdSrc, userIdDest, amount): try: return self.srv.move(str(userIdSrc), str(userIdDest), round(amount, 8)) except jsonrpc.TransportError as e: err = json.loads(e.server_response.content)['error']['message'] msg = f"{ctx.author.mention} ERROR: {err}: {e.request.body['params']}" return msg
res = bi.get(args.item).get(args.subitem, 0) else: parser.error( 'Item "{}" does not have any sub-items: you cannot select "{}"!' .format(args.item, args.subitem)) print(res) # Handle submit elif args.subcmd == 'submit': resp = server.submit(args.block, args.task_sol_path, args.puzzle_sol_path) print(resp) # Handle getbalance elif args.subcmd == 'getbalance': print(server.getbalance()) # Handle all other commands elif args.subcmd in ['getblockchaininfo', 'getmininginfo', 'getbalances']: bi = getattr(server, args.subcmd)() if args.item is None: print(bi) else: # if balance, print 0 rather than None if args.subcmd == 'getbalances': print(bi.get(args.item, 0)) else: print(bi.get(args.item)) else: parser.print_help()