format
This commit is contained in:
parent
66d44f95fb
commit
2cac36be17
12 changed files with 272 additions and 311 deletions
71
lnurl.py
71
lnurl.py
|
|
@ -19,8 +19,9 @@ import shortuuid
|
|||
#################################################
|
||||
#################################################
|
||||
|
||||
|
||||
@myextension_ext.get(
|
||||
"/api/v1/lnurl/pay/{myextension_id}",
|
||||
"/api/v1/lnurl/pay/{myextension_id}",
|
||||
status_code=HTTPStatus.OK,
|
||||
name="myextension.api_lnurl_pay",
|
||||
)
|
||||
|
|
@ -32,15 +33,20 @@ async def api_lnurl_pay(
|
|||
if not myextension:
|
||||
return {"status": "ERROR", "reason": "No myextension found"}
|
||||
return {
|
||||
"callback": str(request.url_for("myextension.api_lnurl_pay_callback", myextension_id=myextension_id)),
|
||||
"maxSendable": myextension.lnurlpayamount * 1000,
|
||||
"minSendable": myextension.lnurlpayamount * 1000,
|
||||
"metadata":"[[\"text/plain\", \"" + myextension.name + "\"]]",
|
||||
"tag": "payRequest"
|
||||
}
|
||||
"callback": str(
|
||||
request.url_for(
|
||||
"myextension.api_lnurl_pay_callback", myextension_id=myextension_id
|
||||
)
|
||||
),
|
||||
"maxSendable": myextension.lnurlpayamount * 1000,
|
||||
"minSendable": myextension.lnurlpayamount * 1000,
|
||||
"metadata": '[["text/plain", "' + myextension.name + '"]]',
|
||||
"tag": "payRequest",
|
||||
}
|
||||
|
||||
|
||||
@myextension_ext.get(
|
||||
"/api/v1/lnurl/pay/cb/{myextension_id}",
|
||||
"/api/v1/lnurl/pay/cb/{myextension_id}",
|
||||
status_code=HTTPStatus.OK,
|
||||
name="myextension.api_lnurl_pay_callback",
|
||||
)
|
||||
|
|
@ -53,27 +59,25 @@ async def api_lnurl_pay_cb(
|
|||
logger.debug(myextension)
|
||||
if not myextension:
|
||||
return {"status": "ERROR", "reason": "No myextension found"}
|
||||
|
||||
|
||||
payment_hash, payment_request = await create_invoice(
|
||||
wallet_id=myextension.wallet,
|
||||
amount=int(amount / 1000),
|
||||
memo=myextension.name,
|
||||
unhashed_description=f"[[\"text/plain\", \"{myextension.name}\"]]".encode(),
|
||||
extra= {
|
||||
unhashed_description=f'[["text/plain", "{myextension.name}"]]'.encode(),
|
||||
extra={
|
||||
"tag": "MyExtension",
|
||||
"myextensionId": myextension_id,
|
||||
"extra": request.query_params.get("amount"),
|
||||
},
|
||||
)
|
||||
return {
|
||||
"pr": payment_request,
|
||||
"pr": payment_request,
|
||||
"routes": [],
|
||||
"successAction": {
|
||||
"tag": "message",
|
||||
"message": f"Paid {myextension.name}"
|
||||
}
|
||||
"successAction": {"tag": "message", "message": f"Paid {myextension.name}"},
|
||||
}
|
||||
|
||||
|
||||
#################################################
|
||||
######## A very simple LNURLwithdraw ############
|
||||
# https://github.com/lnurl/luds/blob/luds/03.md #
|
||||
|
|
@ -99,16 +103,21 @@ async def api_lnurl_withdraw(
|
|||
return {"status": "ERROR", "reason": "LNURLw already used"}
|
||||
|
||||
return {
|
||||
"tag": "withdrawRequest",
|
||||
"callback": str(request.url_for("myextension.api_lnurl_withdraw_callback", myextension_id=myextension_id)),
|
||||
"k1": k1,
|
||||
"defaultDescription": myextension.name,
|
||||
"maxWithdrawable": myextension.lnurlwithdrawamount * 1000,
|
||||
"minWithdrawable": myextension.lnurlwithdrawamount * 1000
|
||||
}
|
||||
"tag": "withdrawRequest",
|
||||
"callback": str(
|
||||
request.url_for(
|
||||
"myextension.api_lnurl_withdraw_callback", myextension_id=myextension_id
|
||||
)
|
||||
),
|
||||
"k1": k1,
|
||||
"defaultDescription": myextension.name,
|
||||
"maxWithdrawable": myextension.lnurlwithdrawamount * 1000,
|
||||
"minWithdrawable": myextension.lnurlwithdrawamount * 1000,
|
||||
}
|
||||
|
||||
|
||||
@myextension_ext.get(
|
||||
"/api/v1/lnurl/withdraw/cb/{myextension_id}",
|
||||
"/api/v1/lnurl/withdraw/cb/{myextension_id}",
|
||||
status_code=HTTPStatus.OK,
|
||||
name="myextension.api_lnurl_withdraw_callback",
|
||||
)
|
||||
|
|
@ -125,12 +134,14 @@ async def api_lnurl_withdraw_cb(
|
|||
myextension = await get_myextension(myextension_id)
|
||||
if not myextension:
|
||||
return {"status": "ERROR", "reason": "No myextension found"}
|
||||
|
||||
|
||||
k1Check = shortuuid.uuid(name=myextension.id + str(myextension.ticker))
|
||||
if k1Check != k1:
|
||||
return {"status": "ERROR", "reason": "Wrong k1 check provided"}
|
||||
|
||||
await update_myextension(myextension_id=myextension_id, ticker=myextension.ticker + 1)
|
||||
await update_myextension(
|
||||
myextension_id=myextension_id, ticker=myextension.ticker + 1
|
||||
)
|
||||
logger.debug(myextension.wallet)
|
||||
logger.debug(pr)
|
||||
logger.debug(int(myextension.lnurlwithdrawamount * 1000))
|
||||
|
|
@ -138,6 +149,10 @@ async def api_lnurl_withdraw_cb(
|
|||
wallet_id=myextension.wallet,
|
||||
payment_request=pr,
|
||||
max_sat=int(myextension.lnurlwithdrawamount * 1000),
|
||||
extra={"tag": "MyExtension", "myextensionId": myextension_id, "lnurlwithdraw": True}
|
||||
extra={
|
||||
"tag": "MyExtension",
|
||||
"myextensionId": myextension_id,
|
||||
"lnurlwithdraw": True,
|
||||
},
|
||||
)
|
||||
return {"status": "OK"}
|
||||
return {"status": "OK"}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue