Skip to content

Commit

Permalink
Merge #1328: Report offerlist in /session call if possible
Browse files Browse the repository at this point in the history
b2ab4db add nickname field to session response (Adam Gibson)
8ee6b39 Report offerlist in /session call if possible (Adam Gibson)
  • Loading branch information
AdamISZ committed Aug 9, 2022
2 parents 1dd454c + b2ab4db commit 6ec5c35
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 8 deletions.
19 changes: 19 additions & 0 deletions docs/api/wallet-rpc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
30 changes: 22 additions & 8 deletions jmclient/jmclient/wallet_rpc.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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/<string:walletname>/taker/direct-send', methods=['POST'])
def directsend(self, request, walletname):
Expand Down

0 comments on commit 6ec5c35

Please sign in to comment.