diff --git a/.github/workflows/regtest.yml b/.github/workflows/regtest.yml
index f26e6c38..fb114ff8 100644
--- a/.github/workflows/regtest.yml
+++ b/.github/workflows/regtest.yml
@@ -16,9 +16,9 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Setup Regtest
run: |
- docker build -t lnbits-legend .
git clone https://github.com/lnbits/legend-regtest-enviroment.git docker
cd docker
+ git checkout removelnbits
chmod +x ./tests
./tests
sudo chmod -R a+rwx .
@@ -39,8 +39,8 @@ jobs:
LNBITS_DATA_FOLDER: ./data
LNBITS_BACKEND_WALLET_CLASS: LndRestWallet
LND_REST_ENDPOINT: https://localhost:8081/
- LND_REST_CERT: docker/data/lnd-1/tls.cert
- LND_REST_MACAROON: docker/data/lnd-1/data/chain/bitcoin/regtest/admin.macaroon
+ LND_REST_CERT: ./docker/data/lnd-1/tls.cert
+ LND_REST_MACAROON: ./docker/data/lnd-1/data/chain/bitcoin/regtest/admin.macaroon
run: |
sudo chmod -R a+rwx . && rm -rf ./data && mkdir -p ./data
make test-real-wallet
@@ -57,9 +57,9 @@ jobs:
python-version: ${{ matrix.python-version }}
- name: Setup Regtest
run: |
- docker build -t lnbits-legend .
git clone https://github.com/lnbits/legend-regtest-enviroment.git docker
cd docker
+ git checkout removelnbits
chmod +x ./tests
./tests
sudo chmod -R a+rwx .
@@ -79,7 +79,7 @@ jobs:
PORT: 5123
LNBITS_DATA_FOLDER: ./data
LNBITS_BACKEND_WALLET_CLASS: CLightningWallet
- CLIGHTNING_RPC: docker/data/clightning-1/regtest/lightning-rpc
+ CLIGHTNING_RPC: ./docker/data/clightning-1/regtest/lightning-rpc
run: |
sudo chmod -R a+rwx . && rm -rf ./data && mkdir -p ./data
make test-real-wallet
diff --git a/README.md b/README.md
index f0f9df62..5c6b702a 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ LNbits

-# LNbits v0.3 BETA, free and open-source lightning-network wallet/accounts system
+# LNbits v0.9 BETA, free and open-source lightning-network wallet/accounts system
(Join us on [https://t.me/lnbits](https://t.me/lnbits))
diff --git a/docs/guide/wallets.md b/docs/guide/wallets.md
index 7a3b6a27..dfea66aa 100644
--- a/docs/guide/wallets.md
+++ b/docs/guide/wallets.md
@@ -17,7 +17,6 @@ A backend wallet can be configured using the following LNbits environment variab
### CLightning
Using this wallet requires the installation of the `pylightning` Python package.
-If you want to use LNURLp you should use SparkWallet because of an issue with description_hash and CLightning.
- `LNBITS_BACKEND_WALLET_CLASS`: **CLightningWallet**
- `CLIGHTNING_RPC`: /file/path/lightning-rpc
diff --git a/lnbits/app.py b/lnbits/app.py
index 8e32e38b..19482b06 100644
--- a/lnbits/app.py
+++ b/lnbits/app.py
@@ -45,7 +45,14 @@ def create_app(config_object="lnbits.settings") -> FastAPI:
"""
configure_logger()
- app = FastAPI()
+ app = FastAPI(
+ title="LNbits API",
+ description="API for LNbits, the free and open source bitcoin wallet and accounts system with plugins.",
+ license_info={
+ "name": "MIT License",
+ "url": "https://raw.githubusercontent.com/lnbits/lnbits-legend/main/LICENSE",
+ },
+ )
app.mount("/static", StaticFiles(packages=[("lnbits", "static")]), name="static")
app.mount(
"/core/static",
diff --git a/lnbits/extensions/bleskomat/templates/bleskomat/_api_docs.html b/lnbits/extensions/bleskomat/templates/bleskomat/_api_docs.html
index 210d534c..2a7160bd 100644
--- a/lnbits/extensions/bleskomat/templates/bleskomat/_api_docs.html
+++ b/lnbits/extensions/bleskomat/templates/bleskomat/_api_docs.html
@@ -62,4 +62,5 @@
+
diff --git a/lnbits/extensions/copilot/templates/copilot/_api_docs.html b/lnbits/extensions/copilot/templates/copilot/_api_docs.html
index eed25169..6105d169 100644
--- a/lnbits/extensions/copilot/templates/copilot/_api_docs.html
+++ b/lnbits/extensions/copilot/templates/copilot/_api_docs.html
@@ -14,6 +14,7 @@
label="API info"
:content-inset-level="0.5"
>
+
diff --git a/lnbits/extensions/discordbot/templates/discordbot/_api_docs.html b/lnbits/extensions/discordbot/templates/discordbot/_api_docs.html
index fcda086a..b57e4ab1 100644
--- a/lnbits/extensions/discordbot/templates/discordbot/_api_docs.html
+++ b/lnbits/extensions/discordbot/templates/discordbot/_api_docs.html
@@ -34,6 +34,7 @@
label="API info"
:content-inset-level="0.5"
>
+
diff --git a/lnbits/extensions/events/crud.py b/lnbits/extensions/events/crud.py
index 9e04476d..4cc86ac4 100644
--- a/lnbits/extensions/events/crud.py
+++ b/lnbits/extensions/events/crud.py
@@ -16,7 +16,7 @@ async def create_ticket(
INSERT INTO events.ticket (id, wallet, event, name, email, registered, paid)
VALUES (?, ?, ?, ?, ?, ?, ?)
""",
- (payment_hash, wallet, event, name, email, False, False),
+ (payment_hash, wallet, event, name, email, False, True),
)
ticket = await get_ticket(payment_hash)
diff --git a/lnbits/extensions/events/templates/events/_api_docs.html b/lnbits/extensions/events/templates/events/_api_docs.html
index a5c82174..d2fa890e 100644
--- a/lnbits/extensions/events/templates/events/_api_docs.html
+++ b/lnbits/extensions/events/templates/events/_api_docs.html
@@ -20,4 +20,5 @@
+
diff --git a/lnbits/extensions/events/templates/events/display.html b/lnbits/extensions/events/templates/events/display.html
index 4c1f557f..4589c578 100644
--- a/lnbits/extensions/events/templates/events/display.html
+++ b/lnbits/extensions/events/templates/events/display.html
@@ -135,15 +135,7 @@
var self = this
axios
- .post(
- '/events/api/v1/tickets/' + '{{ event_id }}/{{ event_price }}',
- {
- event: '{{ event_id }}',
- event_name: '{{ event_name }}',
- name: self.formDialog.data.name,
- email: self.formDialog.data.email
- }
- )
+ .get('/events/api/v1/tickets/' + '{{ event_id }}')
.then(function (response) {
self.paymentReq = response.data.payment_request
self.paymentCheck = response.data.payment_hash
@@ -161,7 +153,17 @@
paymentChecker = setInterval(function () {
axios
- .get('/events/api/v1/tickets/' + self.paymentCheck)
+ .post(
+ '/events/api/v1/tickets/' +
+ '{{ event_id }}/' +
+ self.paymentCheck,
+ {
+ event: '{{ event_id }}',
+ event_name: '{{ event_name }}',
+ name: self.formDialog.data.name,
+ email: self.formDialog.data.email
+ }
+ )
.then(function (res) {
if (res.data.paid) {
clearInterval(paymentChecker)
diff --git a/lnbits/extensions/events/templates/events/register.html b/lnbits/extensions/events/templates/events/register.html
index 4dff9afb..43d43070 100644
--- a/lnbits/extensions/events/templates/events/register.html
+++ b/lnbits/extensions/events/templates/events/register.html
@@ -133,7 +133,10 @@
var self = this
LNbits.api
- .request('GET', '/events/api/v1/register/ticket/' + res)
+ .request(
+ 'GET',
+ '/events/api/v1/register/ticket/' + res.split('//')[1]
+ )
.then(function (response) {
self.$q.notify({
type: 'positive',
diff --git a/lnbits/extensions/events/templates/events/ticket.html b/lnbits/extensions/events/templates/events/ticket.html
index a53f834f..21b7cfa8 100644
--- a/lnbits/extensions/events/templates/events/ticket.html
+++ b/lnbits/extensions/events/templates/events/ticket.html
@@ -13,9 +13,8 @@
diff --git a/lnbits/extensions/events/views_api.py b/lnbits/extensions/events/views_api.py
index 87edb07d..56e6b06c 100644
--- a/lnbits/extensions/events/views_api.py
+++ b/lnbits/extensions/events/views_api.py
@@ -97,8 +97,8 @@ async def api_tickets(
return [ticket.dict() for ticket in await get_tickets(wallet_ids)]
-@events_ext.post("/api/v1/tickets/{event_id}/{sats}")
-async def api_ticket_make_ticket(event_id, sats, data: CreateTicket):
+@events_ext.get("/api/v1/tickets/{event_id}")
+async def api_ticket_make_ticket(event_id):
event = await get_event(event_id)
if not event:
raise HTTPException(
@@ -107,37 +107,36 @@ async def api_ticket_make_ticket(event_id, sats, data: CreateTicket):
try:
payment_hash, payment_request = await create_invoice(
wallet_id=event.wallet,
- amount=int(sats),
+ amount=event.price_per_ticket,
memo=f"{event_id}",
extra={"tag": "events"},
)
except Exception as e:
raise HTTPException(status_code=HTTPStatus.INTERNAL_SERVER_ERROR, detail=str(e))
- ticket = await create_ticket(
- payment_hash=payment_hash,
- wallet=event.wallet,
- event=event_id,
- name=data.name,
- email=data.email,
- )
-
- if not ticket:
- raise HTTPException(
- status_code=HTTPStatus.NOT_FOUND, detail=f"Event could not be fetched."
- )
-
return {"payment_hash": payment_hash, "payment_request": payment_request}
-@events_ext.get("/api/v1/tickets/{payment_hash}")
-async def api_ticket_send_ticket(payment_hash):
- ticket = await get_ticket(payment_hash)
-
+@events_ext.post("/api/v1/tickets/{event_id}/{payment_hash}")
+async def api_ticket_send_ticket(event_id, payment_hash, data: CreateTicket):
+ event = await get_event(event_id)
try:
status = await api_payment(payment_hash)
if status["paid"]:
- await set_ticket_paid(payment_hash=payment_hash)
+ ticket = await create_ticket(
+ payment_hash=payment_hash,
+ wallet=event.wallet,
+ event=event_id,
+ name=data.name,
+ email=data.email,
+ )
+
+ if not ticket:
+ raise HTTPException(
+ status_code=HTTPStatus.NOT_FOUND,
+ detail=f"Event could not be fetched.",
+ )
+
return {"paid": True, "ticket_id": ticket.id}
except Exception:
raise HTTPException(status_code=HTTPStatus.NOT_FOUND, detail="Not paid")
diff --git a/lnbits/extensions/jukebox/templates/jukebox/_api_docs.html b/lnbits/extensions/jukebox/templates/jukebox/_api_docs.html
index f4daaf39..4bae4965 100644
--- a/lnbits/extensions/jukebox/templates/jukebox/_api_docs.html
+++ b/lnbits/extensions/jukebox/templates/jukebox/_api_docs.html
@@ -24,6 +24,8 @@
label="API info"
:content-inset-level="0.5"
>
+
+
diff --git a/lnbits/extensions/livestream/templates/livestream/_api_docs.html b/lnbits/extensions/livestream/templates/livestream/_api_docs.html
index fb4853ce..34b6518d 100644
--- a/lnbits/extensions/livestream/templates/livestream/_api_docs.html
+++ b/lnbits/extensions/livestream/templates/livestream/_api_docs.html
@@ -17,6 +17,8 @@
label="API info"
:content-inset-level="0.5"
>
+
+
+
diff --git a/lnbits/extensions/lndhub/templates/lndhub/_instructions.html b/lnbits/extensions/lndhub/templates/lndhub/_instructions.html
index 4db79aba..005bced5 100644
--- a/lnbits/extensions/lndhub/templates/lndhub/_instructions.html
+++ b/lnbits/extensions/lndhub/templates/lndhub/_instructions.html
@@ -31,5 +31,6 @@
+
diff --git a/lnbits/extensions/lnticket/templates/lnticket/_api_docs.html b/lnbits/extensions/lnticket/templates/lnticket/_api_docs.html
index 69328f38..e9340924 100644
--- a/lnbits/extensions/lnticket/templates/lnticket/_api_docs.html
+++ b/lnbits/extensions/lnticket/templates/lnticket/_api_docs.html
@@ -19,4 +19,5 @@
+
diff --git a/lnbits/extensions/lnurldevice/templates/lnurldevice/_api_docs.html b/lnbits/extensions/lnurldevice/templates/lnurldevice/_api_docs.html
index 940d4691..7f9afa27 100644
--- a/lnbits/extensions/lnurldevice/templates/lnurldevice/_api_docs.html
+++ b/lnbits/extensions/lnurldevice/templates/lnurldevice/_api_docs.html
@@ -17,6 +17,12 @@
label="API info"
:content-inset-level="0.5"
>
+
+
@@ -51,6 +52,7 @@
expand-separator
label="Create a pay link"
>
+
POST /lnurlp/api/v1/links
diff --git a/lnbits/extensions/lnurlpayout/config.json.example b/lnbits/extensions/lnurlpayout/config.json.example
index 1e72c0c1..b4160d7b 100644
--- a/lnbits/extensions/lnurlpayout/config.json.example
+++ b/lnbits/extensions/lnurlpayout/config.json.example
@@ -2,5 +2,5 @@
"name": "LNURLPayout",
"short_description": "Autodump wallet funds to LNURLpay",
"icon": "exit_to_app",
- "contributors": ["arcbtc"]
+ "contributors": ["arcbtc","talvasconcelos"]
}
diff --git a/lnbits/extensions/lnurlpayout/templates/lnurlpayout/_api_docs.html b/lnbits/extensions/lnurlpayout/templates/lnurlpayout/_api_docs.html
index 7febea44..afe24c42 100644
--- a/lnbits/extensions/lnurlpayout/templates/lnurlpayout/_api_docs.html
+++ b/lnbits/extensions/lnurlpayout/templates/lnurlpayout/_api_docs.html
@@ -4,6 +4,7 @@
label="API info"
:content-inset-level="0.5"
>
+
diff --git a/lnbits/extensions/offlineshop/templates/offlineshop/_api_docs.html b/lnbits/extensions/offlineshop/templates/offlineshop/_api_docs.html
index a472d549..0a4b9df8 100644
--- a/lnbits/extensions/offlineshop/templates/offlineshop/_api_docs.html
+++ b/lnbits/extensions/offlineshop/templates/offlineshop/_api_docs.html
@@ -47,6 +47,7 @@
label="API info"
:content-inset-level="0.5"
>
+
+
diff --git a/lnbits/extensions/satsdice/templates/satsdice/_api_docs.html b/lnbits/extensions/satsdice/templates/satsdice/_api_docs.html
index a80fd37a..e85e9586 100644
--- a/lnbits/extensions/satsdice/templates/satsdice/_api_docs.html
+++ b/lnbits/extensions/satsdice/templates/satsdice/_api_docs.html
@@ -4,6 +4,7 @@
label="API info"
:content-inset-level="0.5"
>
+
diff --git a/lnbits/extensions/satspay/templates/satspay/_api_docs.html b/lnbits/extensions/satspay/templates/satspay/_api_docs.html
index 77451ae5..336ab899 100644
--- a/lnbits/extensions/satspay/templates/satspay/_api_docs.html
+++ b/lnbits/extensions/satspay/templates/satspay/_api_docs.html
@@ -15,6 +15,7 @@
label="API info"
:content-inset-level="0.5"
>
+
diff --git a/lnbits/extensions/splitpayments/templates/splitpayments/_api_docs.html b/lnbits/extensions/splitpayments/templates/splitpayments/_api_docs.html
index 4cf7190c..4b5ed979 100644
--- a/lnbits/extensions/splitpayments/templates/splitpayments/_api_docs.html
+++ b/lnbits/extensions/splitpayments/templates/splitpayments/_api_docs.html
@@ -28,6 +28,12 @@
label="API info"
:content-inset-level="0.5"
>
+
+
diff --git a/lnbits/extensions/subdomains/templates/subdomains/_api_docs.html b/lnbits/extensions/subdomains/templates/subdomains/_api_docs.html
index b839c641..db3b2477 100644
--- a/lnbits/extensions/subdomains/templates/subdomains/_api_docs.html
+++ b/lnbits/extensions/subdomains/templates/subdomains/_api_docs.html
@@ -22,5 +22,6 @@
>
+
diff --git a/lnbits/extensions/tipjar/templates/tipjar/_api_docs.html b/lnbits/extensions/tipjar/templates/tipjar/_api_docs.html
index 95ba6e06..cfb8136b 100644
--- a/lnbits/extensions/tipjar/templates/tipjar/_api_docs.html
+++ b/lnbits/extensions/tipjar/templates/tipjar/_api_docs.html
@@ -12,4 +12,5 @@
>
+
diff --git a/lnbits/extensions/tpos/templates/tpos/_api_docs.html b/lnbits/extensions/tpos/templates/tpos/_api_docs.html
index 8930d990..cbb21be1 100644
--- a/lnbits/extensions/tpos/templates/tpos/_api_docs.html
+++ b/lnbits/extensions/tpos/templates/tpos/_api_docs.html
@@ -4,6 +4,7 @@
label="API info"
:content-inset-level="0.5"
>
+
diff --git a/lnbits/extensions/usermanager/templates/usermanager/_api_docs.html b/lnbits/extensions/usermanager/templates/usermanager/_api_docs.html
index 34b3c39b..886589e6 100644
--- a/lnbits/extensions/usermanager/templates/usermanager/_api_docs.html
+++ b/lnbits/extensions/usermanager/templates/usermanager/_api_docs.html
@@ -28,6 +28,7 @@
label="API info"
:content-inset-level="0.5"
>
+
diff --git a/lnbits/extensions/watchonly/templates/watchonly/_api_docs.html b/lnbits/extensions/watchonly/templates/watchonly/_api_docs.html
index b421186a..94b44a44 100644
--- a/lnbits/extensions/watchonly/templates/watchonly/_api_docs.html
+++ b/lnbits/extensions/watchonly/templates/watchonly/_api_docs.html
@@ -20,6 +20,7 @@
label="API info"
:content-inset-level="0.5"
>
+
diff --git a/lnbits/extensions/withdraw/templates/withdraw/_api_docs.html b/lnbits/extensions/withdraw/templates/withdraw/_api_docs.html
index 095aad3a..ff88189d 100644
--- a/lnbits/extensions/withdraw/templates/withdraw/_api_docs.html
+++ b/lnbits/extensions/withdraw/templates/withdraw/_api_docs.html
@@ -4,6 +4,7 @@
label="API info"
:content-inset-level="0.5"
>
+