diff --git a/docs/api/wallet-rpc.yaml b/docs/api/wallet-rpc.yaml index bc3af32e8..bb16eda19 100644 --- a/docs/api/wallet-rpc.yaml +++ b/docs/api/wallet-rpc.yaml @@ -732,6 +732,25 @@ components: wallet_name: type: string example: wallet.jmdat + offer_list: + type: array + items: + type: object + properties: + oid: + type: integer + ordertype: + type: string + minsize: + type: integer + maxsize: + type: integer + txfee: + type: integer + cjfee: + type: string + nickname: + type: string ListUtxosResponse: type: object properties: diff --git a/jmclient/jmclient/wallet_rpc.py b/jmclient/jmclient/wallet_rpc.py index 3dd435f90..5ac735d7f 100644 --- a/jmclient/jmclient/wallet_rpc.py +++ b/jmclient/jmclient/wallet_rpc.py @@ -590,18 +590,30 @@ def session(self, request): session = not self.cookie==None maker_running = self.coinjoin_state == CJ_MAKER_RUNNING coinjoin_in_process = self.coinjoin_state == CJ_TAKER_RUNNING + + # fields which may or may not be available: schedule = None + offer_list = None + nickname = None if self.services["wallet"]: if self.services["wallet"].isRunning(): wallet_name = self.wallet_name - if self.coinjoin_state == CJ_TAKER_RUNNING and self.tumbler_options is not None: - auth_header = request.getHeader('Authorization') - if auth_header is not None: - # At this point if an `auth_header` is present, it has been checked - # by the call to `check_cookie_if_present` above. - if self.taker is not None and not self.taker.aborted: - schedule = self.taker.schedule + # At this point if an `auth_header` is present, it has been checked + # by the call to `check_cookie_if_present` above. + auth_header = request.getHeader('Authorization') + if auth_header is not None: + if self.coinjoin_state == CJ_TAKER_RUNNING and \ + self.tumbler_options is not None: + if self.taker is not None and not self.taker.aborted: + schedule = self.taker.schedule + elif maker_running: + offer_list = self.services["maker"].yieldgen.offerlist + # maker's nick is useful for tracking; so we only report + # it if authed and maker running: + if jm_single().nickname is not None: + nickname = jm_single().nickname + else: wallet_name = "not yet loaded" else: @@ -611,7 +623,9 @@ def session(self, request): maker_running=maker_running, coinjoin_in_process=coinjoin_in_process, schedule=schedule, - wallet_name=wallet_name) + wallet_name=wallet_name, + offer_list=offer_list, + nickname=nickname) @app.route('/wallet//taker/direct-send', methods=['POST']) def directsend(self, request, walletname):