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
Example #2
0
                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()