Compare commits

...

304 Commits

Author SHA1 Message Date
3c7751ae80 Move plugins to separate repos 2022-12-05 11:26:47 +01:00
6d9bbb50d6 Merge branch 'master' into plugins 2022-12-05 09:26:26 +01:00
508002503e Merge branch 'master' into plugins 2022-12-04 12:50:38 +01:00
031bb7b224 Merge branch 'master' into plugins 2022-11-27 15:31:39 +01:00
2d6827dd19 Merge branch 'master' into plugins 2022-11-14 19:05:13 +01:00
5e00bc43d5 Merge branch 'master' into plugins 2022-11-05 12:22:46 +01:00
db8a2930a4 Merge branch 'master' into plugins 2022-11-02 13:44:33 +01:00
7325610ac5 Merge branch 'master' into plugins 2022-10-27 09:17:17 +02:00
36b064b50f Merge branch 'master' into plugins 2022-10-24 17:40:38 +02:00
7ecf6504d0 LNbank: IMprove exception handling 2022-10-08 19:51:39 +02:00
7c971df109 PodServer v0.1.4 2022-10-08 18:14:54 +02:00
c7f6784364 Update changelogs 2022-10-08 18:12:21 +02:00
b816c4462e Merge branch 'master' into plugins 2022-10-08 18:07:35 +02:00
ca750f4152 LNbank: Date display improvements 2022-10-05 11:34:37 +02:00
6be968f7bf PodServer: Fix publish date in feed
Fixes .
2022-10-05 11:34:37 +02:00
89cd1079fe Merge branch 'master' into plugins 2022-10-04 18:48:07 +02:00
fa5470c587 LNbank v1.3.4 2022-09-30 22:47:40 +02:00
820421fcbc PodServer v0.1.3 2022-09-30 22:44:40 +02:00
a4ab2dcd84 Merge branch 'lnurl-flow' into plugins 2022-09-30 22:43:06 +02:00
d14f4f8173 PodServer: Fix podcast lookup on public pages
Fixes .
2022-09-30 22:42:14 +02:00
386c18b897 Minor Send and Receive view improvements 2022-09-30 18:09:07 +02:00
5d98fe7b34 LNbank: Improve LNURL payment flow 2022-09-30 18:04:23 +02:00
2008d15dda LNbank: Improve invoice canceling and invalidating 2022-09-29 22:10:45 +02:00
d206a88e3a PodServer v0.1.2 2022-09-29 18:55:40 +02:00
bbce88f269 PodServer: Fix permissions
Fixes .
2022-09-29 18:54:40 +02:00
edbfafcaf2 PodServer v0.1.1 2022-09-29 18:07:49 +02:00
b64ddab08b LNbank: Invalidate unresolved payments 2022-09-29 16:11:29 +02:00
c34b4d64e5 Use LND as default LN node; bind to 0.0.0.0 2022-09-29 14:44:03 +02:00
90308ce6b9 LNbank v1.3.3 2022-09-29 14:37:22 +02:00
a3b702c360 Merge branch 'master' into plugins 2022-09-29 14:32:26 +02:00
4f9820ae1b Update bug report template 2022-09-29 14:29:43 +02:00
6884db431f LNbank: Fix setting LNbank wallet in WebKit-based browsers
Fixes .
2022-09-29 14:29:22 +02:00
349dbdc85d LNbank: Refactor Lightning invoice watcher 2022-09-29 13:53:38 +02:00
dc795311fa PodServer: Fix public podcast page without episodes
Fixes .
2022-09-29 13:29:11 +02:00
7ff2f58f34 LNbank: Break long words in description text 2022-09-29 13:28:37 +02:00
c736babd40 LNbank: Fix send error in LNDhub API 2022-09-29 13:28:13 +02:00
b5174dcbcd PodServer: Fix public podcast page without episodes
Fixes .
2022-09-28 14:25:29 +02:00
ffe40daaa6 Merge branch 'master' into plugins 2022-09-28 14:08:36 +02:00
43649026c1 LNbank v1.3.2 2022-09-27 17:38:01 +02:00
84212de830 Update docs 2022-09-27 17:35:54 +02:00
d958ef2ec7 LNbank: Update changelog 2022-09-27 15:53:55 +02:00
b60dcb6927 LNbank: Add invoices API for Lightning client 2022-09-27 15:53:29 +02:00
9af32e7089 LNbank: Upgrade LNDhub integration
Fixes .
2022-09-27 15:53:29 +02:00
7b10067ce5 Remove unused icon sprites 2022-09-27 14:17:14 +02:00
7746e5beef LNbank v1.3.1 2022-09-26 20:00:59 +02:00
38fd1d338b LNbank: Update changelog 2022-09-26 19:58:42 +02:00
b0e4186733 LNbank: Fix LNURL metadata
Fixes .
2022-09-26 19:56:39 +02:00
c6c0a7b6ac LNbank: Potential migration fix
Might fix .
2022-09-26 19:50:40 +02:00
f2e35529e9 PodServer v0.1.0 2022-09-26 17:46:38 +02:00
1deddbcf14 PodServer: Update changelog and release script 2022-09-26 17:42:47 +02:00
c14f26340e LNbank v1.3.0 2022-09-26 17:37:04 +02:00
ab5497eb3d LNbank: Update changelog 2022-09-26 17:29:32 +02:00
1b1fdd4360 LNbank: Add custom invoice expiry 2022-09-26 17:29:21 +02:00
fbc4dde974 LNbank: Expire invoices explicitely 2022-09-26 16:50:47 +02:00
4d1f8c1d16 LNbank: Update LightningInvoiceWatcher logging and error handling 2022-09-26 16:28:06 +02:00
524ad8393d Bump BTCPay version requirements 2022-09-26 16:00:40 +02:00
0def52416d Merge branch 'master' into plugins 2022-09-26 15:57:19 +02:00
375405ba51 Merge branch 'master' into plugins 2022-09-26 10:38:22 +02:00
9ce1ba0019 Merge branch 'master' into plugins 2022-09-20 13:36:20 +02:00
ff6043cf67 PodServer: Refactoring: Services and repos 2022-09-20 13:35:58 +02:00
e6e3efb709 Merge branch 'master' into plugins 2022-09-20 13:03:56 +02:00
ec029fa5cd PodServer: Add editors and policies 2022-09-19 15:59:58 +02:00
5f9926896a Merge branch 'master' into plugins 2022-09-16 11:57:28 +02:00
e68cb1805f Merge branch 'master' into plugins 2022-09-13 20:37:16 +02:00
f554478254 PodServer: Feed updates 2022-09-13 20:35:29 +02:00
45a8852799 PodServer: View updates 2022-09-13 20:35:14 +02:00
92dae8dff6 PodServer: Import updates 2022-09-13 20:34:52 +02:00
beb58cb90b PodServer: Minor view updates 2022-09-13 16:04:47 +02:00
f379593a2f PodServer: Various contribution-related updates 2022-09-12 18:05:00 +02:00
15ddf9d619 Merge branch 'master' into plugins 2022-09-12 14:57:17 +02:00
82b479cc7c Merge branch 'lnbank-lndhub' into plugins 2022-09-09 12:57:47 +02:00
ba2db52859 Updates for Zeus compatibility
See https://github.com/ZeusLN/zeus/tree/master/stores
2022-09-09 12:36:46 +02:00
8f5af29f23 Updates for Alby compatibility
See https://github.com/getAlby/lightning-browser-extension/blob/master/src/extension/background-script/connectors/lndhub.ts
2022-09-09 12:36:46 +02:00
7b5049099c Use models from LNDhub library 2022-09-09 12:36:46 +02:00
5d37f31d72 LNbank: Add LNDhub compatibility
Closes .
2022-09-09 12:36:46 +02:00
05aac2801c Merge branch 'master' into plugins 2022-09-09 12:36:24 +02:00
160a19f6c7 PodServer: Update public pages 2022-09-08 17:32:04 +02:00
afedb48eeb Merge branch 'master' into plugins 2022-08-31 19:15:57 +02:00
25716c8ab7 Merge branch 'master' into plugins 2022-08-29 18:05:45 +02:00
61c9466374 PodServer: Various updates 2022-08-26 19:48:09 +02:00
4b3d7fd004 PodServer: Contribution basics 2022-08-26 17:01:09 +02:00
e8657da952 PodServer: Update image upload UI 2022-08-25 20:02:38 +02:00
b4e3c8f0b5 Merge branch 'master' into plugins 2022-08-25 19:28:21 +02:00
405def199f PodServer: Feed updates 2022-08-23 18:19:40 +02:00
ea9fe8386d PodServer: Public pages updates 2022-08-22 17:38:18 +02:00
5dd8b3701f Merge branch 'master' into plugins 2022-08-22 12:09:19 +02:00
e6b4b83bc0 Merge branch 'master' into plugins 2022-08-19 19:17:21 +02:00
253cfda4b4 PodServer: Add value recipient form 2022-08-19 19:17:05 +02:00
f03063e390 PodServer: Add slug to podcast and episode 2022-08-19 17:41:43 +02:00
5e295bab89 PodServer: Various updates 2022-08-18 17:25:32 +02:00
92cf26dc3b LNbank: Minor style updates 2022-08-18 12:03:25 +02:00
a3ed557244 PodServer: Add README 2022-08-17 10:18:19 +02:00
475f16b280 LNbank: Fix typos in README 2022-08-17 10:18:09 +02:00
b3b54ccaf7 Merge branch 'master' into plugins 2022-08-17 09:41:58 +02:00
07cba914bb LNbank: Add README with some documentation 2022-08-16 22:10:20 +02:00
7e569c044f LNbank: Update access keys; add test 2022-08-16 13:21:43 +02:00
7bb32e3fdf LNbank: Update LNURL controller 2022-08-15 19:25:45 +02:00
8aea701f6c Merge branch 'lnbank-lnurl' into plugins 2022-08-15 13:31:28 +02:00
177628d05b LNbank: Handle payment API errors 2022-08-15 13:31:17 +02:00
fe644bb979 LNbank: Send to LNURL 2022-08-15 10:10:28 +02:00
70168f73ce Merge branch 'master' into plugins 2022-08-15 10:10:18 +02:00
5a27155984 Merge branch 'master' into plugins 2022-08-10 17:26:12 +02:00
b38c05f33f Merge branch 'master' into plugins 2022-08-09 22:59:07 +02:00
2ff1c80661 Merge branch 'master' into plugins 2022-08-08 17:07:04 +02:00
6f7bce216c LNbank: Custom policies refactoring 2022-08-02 17:57:57 +02:00
f7981b2b12 Merge branch 'master' into plugins 2022-08-02 12:29:22 +02:00
2b81ea5040 LNbank: Add custom authorization policies 2022-08-02 09:32:34 +02:00
733dc7561a Merge branch 'master' into plugins 2022-08-02 09:08:37 +02:00
c323ef51fa LNbank: Owner stays admin, even without access key 2022-07-22 12:30:50 +02:00
4d97de8208 Merge branch 'master' into plugins 2022-07-22 12:19:04 +02:00
dd99fec838 LNbank: AccessKeys refactoring 2022-07-17 22:36:58 +02:00
539352f598 Merge branch 'master' into plugins 2022-07-15 09:40:43 +02:00
a63288fce8 LNbank: Split WalletService and WalletRepository 2022-07-14 18:23:04 +02:00
0f57c09aff LNbank: Manage access keys for wallet access 2022-07-13 20:35:52 +02:00
15068c1398 Move ConfirmModel to Abstractions
To make it available to plugins.
2022-07-12 14:44:07 +02:00
6ef4822ad2 LNbank: Update on model creating calls 2022-07-11 12:34:55 +02:00
f2f3e472b0 LNbank: Extend access keys; add migration runner 2022-07-11 12:34:26 +02:00
57e42df769 LNbank v1.2.3 2022-07-08 16:12:13 +02:00
0918c79305 Update release scripts 2022-07-08 16:10:49 +02:00
ef0f61dafa LNbank: Update BTCPay version requirement 2022-07-08 16:02:49 +02:00
4e1c841615 LNbank: Watcher should not invalidate on null 2022-07-08 16:02:09 +02:00
713e0bf5e5 Merge branch 'master' into plugins 2022-07-08 16:00:25 +02:00
aa6f41bace Improve send error handling 2022-07-07 15:55:31 +02:00
d44c06320e Merge branch 'master' into plugins 2022-07-06 16:39:02 +02:00
0d2603dd5a Merge branch 'master' into plugins 2022-07-06 13:12:48 +02:00
c87a4511cd LNbank: Send improvements 2022-07-04 19:00:59 +02:00
3b61be1b82 Merge branch 'master' into plugins 2022-07-04 16:37:34 +02:00
28d05edd96 Merge branch 'master' into plugins 2022-06-28 10:45:01 +02:00
21d159d5f9 Merge branch 'master' into plugins 2022-06-21 12:05:14 +02:00
d2d02e18e7 LNbank: Add API endpoint for balance check 2022-06-20 18:06:29 +02:00
47208db8db Merge branch 'master' into plugins 2022-06-20 07:06:26 +02:00
ea6ad0995f LNbank: Update BTCPay version requirement 2022-06-16 15:06:24 +02:00
0c1b474c35 Merge branch 'master' into plugins 2022-06-16 15:05:16 +02:00
0e90f1219c Merge branch 'master' into plugins 2022-06-07 12:58:17 +02:00
abb21c68cb Merge branch 'master' into plugins 2022-06-02 17:27:33 +02:00
9c1404c261 LNbank: Update logging 2022-05-31 15:18:09 +02:00
ceb722c71f LNbank: Validate invoice expiry 2022-05-31 13:39:51 +02:00
d863dfa0c8 Greenfield: Fix GetDepositAddress return type
The local clients GetFromActionResult cannot handle the JValue return type, because it gets invoked with GetFromActionResult<string>.
2022-05-31 10:58:29 +02:00
0cc849be91 LNbank: Map explicit LightningInvoiceStatuses 2022-05-31 10:27:48 +02:00
110524391b LNbank: Allow creation of zero amount invoices 2022-05-31 10:27:38 +02:00
d452c1e578 LNbank: Improve API responses 2022-05-31 10:27:25 +02:00
86fead2809 Update release scripts 2022-05-30 13:31:56 +02:00
6c80ca1d18 Merge branch 'master' into plugins 2022-05-30 12:55:03 +02:00
aa742b3079 LNbank v1.2.2 2022-05-30 11:28:12 +02:00
01eb93bc43 Merge branch 'master' into plugins 2022-05-30 09:01:17 +02:00
e6d29afed6 LNbank: Update changelog and version requirement 2022-05-30 09:00:21 +02:00
3f88ea1e15 LNbank: Improve API response 2022-05-26 22:04:44 +02:00
409b6df8a2 Merge branch 'master' into plugins 2022-05-25 14:03:48 +02:00
8304afd36c LNbank: Fix routing fee accessor 2022-05-25 13:50:10 +02:00
56400dcc27 Merge branch 'master' into plugins 2022-05-25 13:46:18 +02:00
d59ab2ef01 Merge branch 'master' into plugins 2022-05-24 15:45:39 +02:00
458f8979fb Merge branch 'master' into plugins 2022-05-19 17:04:42 +02:00
ca7b306dea LNbank: Update changelog 2022-05-19 16:33:57 +02:00
f509b937fd LNbank: Improve test 2022-05-19 16:33:41 +02:00
19c75f51bd LNbank: Distinguish original invoice amount and actual amount settled 2022-05-19 16:04:18 +02:00
ca821a643e LNbank: Update hold invoice handling 2022-05-19 15:59:00 +02:00
d8d3172b17 LNbank: Zero amount invoice handling fixes 2022-05-19 14:48:37 +02:00
14ce5dd41f LNbank: Use info log instead of debug in invoice watcher 2022-05-19 11:59:27 +02:00
505b1d8310 Update project settings 2022-05-19 11:49:18 +02:00
c60a95a6fe Merge branch 'master' into plugins 2022-05-18 15:49:52 +02:00
63119c63f1 LNbank: Require BTCPay Server v1.5.3 2022-05-18 08:38:26 +02:00
c5f4db4df6 Merge branch 'plugins-expl-amt' into plugins 2022-05-18 08:21:09 +02:00
77932f6e20 LNbank: Allow explicit amount for zero amount invoices
Fixes 
2022-05-18 08:20:49 +02:00
2d67e0e75c Merge branch 'master' into plugins 2022-05-18 08:12:00 +02:00
db8b7a4621 PodServer: Public pages 2022-05-12 09:18:01 +02:00
a6ac322246 LNbank: Public wallet LNURL page for sharing 2022-05-11 16:47:39 +02:00
8b5ea9fd56 Merge branch 'master' into plugins 2022-05-11 14:15:13 +02:00
d9aa8f7dbc Merge branch 'master' into plugins 2022-05-04 14:57:23 +02:00
5341b4eb08 LNbank v1.2.1 2022-04-30 20:52:51 +02:00
935577de71 LNbank: Update changelog 2022-04-30 20:51:13 +02:00
3d15ff31f5 LNbank: Fix test 2022-04-30 20:48:33 +02:00
e68942056d LNbank: More hold invoice updates 2022-04-30 20:27:54 +02:00
eff872148c LNbank: Nullify properties when cancelling transactions 2022-04-30 20:27:38 +02:00
3692602b15 LNbank: Trim payment requests 2022-04-30 20:26:44 +02:00
3de38298b6 LNbank: Autofocus input fields 2022-04-30 20:06:26 +02:00
eb7d8694f5 Merge branch 'master' into plugins 2022-04-30 19:00:50 +02:00
8e53b3c9f0 Merge branch 'master' into plugins 2022-04-29 16:05:49 +02:00
6a714e6d9c LNbank: Hold invoice handling improvements 2022-04-28 22:13:17 +02:00
f227b9aec5 Merge branch 'master' into plugins 2022-04-28 22:13:03 +02:00
a741ad446c LNbank: Refresh transactions list on update 2022-04-27 12:57:14 +02:00
e4d45798f1 PodServer: View Refactoring 2022-04-27 12:56:55 +02:00
e5b4f2a399 Merge branch 'master' into plugins 2022-04-26 21:00:03 +02:00
55fb4ec233 LNbank: Handle hold invoices 2022-04-26 20:58:56 +02:00
c5b4b1b9e6 Merge branch 'plugins-hodlinvoice' into plugins 2022-04-26 14:25:13 +02:00
ad6effa3bb PodServer: Introduce Editor 2022-04-26 14:24:05 +02:00
c5e48eb975 Add and pass cancellation tokens 2022-04-26 11:04:59 +02:00
675bb63d14 Set PodServer version 2022-04-26 11:04:35 +02:00
5c64a4ac40 Use Safe.Json to output values 2022-04-26 11:03:37 +02:00
0adb2cf233 Merge branch 'master' into plugins 2022-04-26 06:59:22 +02:00
316ed2a9bb PodServer: Add medium 2022-04-25 17:38:12 +02:00
cea2a3f513 PodServer: Add player basics 2022-04-25 17:13:31 +02:00
5d01e07e2d Separate plugin views strictly 2022-04-25 16:53:54 +02:00
ee0547448e Merge branch 'master' into plugins 2022-04-25 10:44:11 +02:00
08580eb244 Update changelog 2022-04-22 17:08:05 +02:00
e127478c2e Handle cancelled invoices in watcher 2022-04-22 17:04:29 +02:00
9b7bd57cb1 Merge branch 'master' into plugins 2022-04-22 14:08:33 +02:00
f771b6dd70 LNbank: Add methods to get payment info 2022-04-21 10:24:45 +02:00
f4ed031f99 Allow for empty description when creating invoices 2022-04-20 22:12:06 +02:00
b7d8077467 LNbank: Log send and receive exceptions 2022-04-20 22:04:58 +02:00
8197375845 Merge branch 'master' into plugins 2022-04-20 08:38:29 +02:00
74a3c6739c PodServer: UI updates 2022-04-19 17:34:04 +02:00
392023219b Merge branch 'master' into plugins 2022-04-19 15:21:21 +02:00
97420dfd3e Add Buchhalter plugin basics 2022-04-16 21:53:10 +02:00
30d1bcfa4d Merge branch 'master' into plugins 2022-04-15 20:20:34 +02:00
36b5a13d1c Merge branch 'master' into plugins 2022-04-08 14:39:47 +02:00
0dadac914e LNbank v1.2.0 2022-03-31 20:46:47 +02:00
3a76bebcbc Prepare v1.2.0 2022-03-31 20:45:04 +02:00
53f46d4b8d Simplify Swagger provider 2022-03-31 20:44:38 +02:00
5911b998b5 Export for accounting
Closes .
2022-03-31 20:41:06 +02:00
45885c5137 Display LNURL on Receive page 2022-03-31 17:34:30 +02:00
1b5a7ed1e1 Use existing AddFile method 2022-03-31 14:19:47 +02:00
9be0810fb7 Merge branch 'master' into plugins 2022-03-31 14:17:17 +02:00
a3efae4cc5 Add LNbank Greenfield API docs 2022-03-31 09:36:50 +02:00
2141eafa37 Importer 2022-03-30 18:28:37 +02:00
b403f6f1e8 Merge branch 'master' into plugins 2022-03-30 11:27:45 +02:00
0055746be6 Import service 2022-03-24 17:44:29 +01:00
2885335780 Form updates 2022-03-21 21:16:54 +01:00
d1524a5e5d Add import jobs 2022-03-21 21:02:23 +01:00
775101a31f Merge branch 'master' into plugins 2022-03-21 14:02:00 +01:00
48a0ed7b98 Update wallets list 2022-03-19 07:46:20 +01:00
7843b6173c Update plugin navigations 2022-03-19 07:45:59 +01:00
4446d506e9 Update LNbank nav icon 2022-03-18 20:16:15 +01:00
7b824d5ec0 LNbank: Support LNURL Pay for wallets
Closes .
2022-03-18 17:00:36 +01:00
967c91f711 Merge branch 'master' into plugins 2022-03-18 15:41:52 +01:00
f7271f6ffb Merge branch 'podserver' into plugins 2022-03-18 15:41:28 +01:00
0b83d2b859 Add feed importer 2022-03-18 15:41:06 +01:00
fc4a7a26fe Add people and seasons management 2022-03-18 12:56:18 +01:00
f6e3ca32fb Improve syntax in wallet model 2022-03-17 14:48:13 +01:00
0a3b4f5d61 Add enclosures 2022-03-14 22:57:39 +01:00
60d8dd81a4 Add richtext editor tofor episode description 2022-03-14 15:05:08 +01:00
0e2a7b5efd LNbank: API for accessing, updating and deleting wallets 2022-03-14 13:46:26 +01:00
a664937526 Merge branch 'master' into plugins 2022-03-14 10:22:10 +01:00
00354de289 Merge branch 'master' into plugins 2022-03-11 10:23:16 +01:00
c70f58fd70 LNbank v1.1.1 2022-03-09 15:52:49 +01:00
21c08acfd5 Update changelog and release script 2022-03-09 15:51:57 +01:00
f38432e15e Handle paid but unsettled payments 2022-03-09 15:44:53 +01:00
58309dd7aa Fix redirects
Fixes 
2022-03-09 15:44:53 +01:00
59017e77eb Update Lightning test settings 2022-03-09 13:15:53 +01:00
be323ba147 Merge branch 'master' into plugins 2022-03-08 13:30:06 +01:00
f3350bcdbf Merge branch 'master' into plugins 2022-03-08 09:28:02 +01:00
79df9a027a Remove old wallet deletion code 2022-03-07 18:13:46 +01:00
3fe981d6f5 Handle errors when checking pending transactions 2022-03-07 18:13:12 +01:00
80265b56b8 API updates 2022-03-07 10:58:56 +01:00
90ce5acf99 Fix transaction hub IDs 2022-03-04 08:43:12 +01:00
eef2780e70 Fix redirect path after creating an invoice 2022-03-03 17:40:15 +01:00
cedb04cc42 Use store invoice expiry time 2022-03-03 17:39:23 +01:00
1fd8f48bda PodServer: File upload 2022-03-03 15:17:36 +01:00
4f63ca4af4 Refactoring: Extract extensions
Refactoring: Extract HttpRequest extensions

Refactoring: Extract ITempDataDictionary extensions


Fixes


Try test fix
2022-03-03 15:17:36 +01:00
6d72d7f6de Update issue template 2022-03-02 15:44:19 +01:00
78e4cb868d Merge branch 'master' into plugins 2022-03-02 12:44:08 +01:00
560117fe59 Merge branch 'master' into plugins 2022-03-01 18:32:27 +01:00
ee0e199add LNbank wording and message updates 2022-02-28 18:32:07 +01:00
fb48b9fa52 PodServer UI basics 2022-02-28 18:31:50 +01:00
c888a845ab Clean up project files 2022-02-25 11:56:15 +01:00
c3e43cb5b3 Move PodServer and add data model 2022-02-25 11:44:53 +01:00
9a855deca4 Add LNbank API for creating wallets
Closes 
2022-02-24 09:02:00 +01:00
41bdbd784d Refactoring: Allow GreenfieldExtensions to be used by plugins 2022-02-24 09:00:44 +01:00
e2e87652e1 Soft delete wallets 2022-02-23 18:35:51 +01:00
c29b1be070 Add PodServer basics 2022-02-21 23:03:57 +01:00
82fc59cc76 LNbank refactorings 2022-02-21 23:03:38 +01:00
1f1f2ca819 Improve release script 2022-02-21 18:49:59 +01:00
d43119e4ac Prepare release 2022-02-21 18:41:03 +01:00
2b4c3e68b1 Prevent deletion of wallet with balance; refactor messages.
Closes 
2022-02-21 18:15:34 +01:00
a35e8fa69a Merge branch 'master' into plugins 2022-02-21 16:41:11 +01:00
e855441455 Common wallet header 2022-02-21 16:32:15 +01:00
62f426fea8 Cleanups 2022-02-21 14:20:34 +01:00
094db3dab9 Remove transaction details page 2022-02-21 14:20:19 +01:00
14770d7a6b Separate wallets list and wallet detail views 2022-02-21 13:12:33 +01:00
ac0722246b Merge branch 'master' into plugins 2022-02-21 10:32:44 +01:00
14785278ec Improve E2E test 2022-02-18 21:59:24 +01:00
359247542e Proper redirects on homepage 2022-02-18 21:04:06 +01:00
e028f5d0c1 Toggle for attaching description to pay request when receiving 2022-02-18 20:44:13 +01:00
66c90ae5f7 Customize description when sending 2022-02-18 20:07:24 +01:00
72c876b62b Lightning payment info and fee handling 2022-02-18 19:46:53 +01:00
89204f2256 Merge branch 'master' into plugins 2022-02-18 12:23:43 +01:00
0580e5bf9b Add helper for sats values 2022-02-15 13:21:44 +01:00
6bfcb02a8c Merge branch 'master' into plugins 2022-02-14 18:22:50 +01:00
b9d73415a4 Prevent paying requests multiple times 2022-02-11 15:36:00 +01:00
beaac40222 Improve wallet headings and title 2022-02-11 10:13:19 +01:00
17bd4a3d9c Allow for empty description
Closes 
2022-02-11 10:11:59 +01:00
ce61a07111 Update CHANGELOG and release script 2022-02-10 16:19:51 +01:00
cadd197dd9 LNbank v1.0.4 2022-02-10 15:54:50 +01:00
f97275ae16 Add CHANGELOG and update release script 2022-02-10 15:51:05 +01:00
6845c511c6 Merge branch 'master' into lnbank 2022-02-10 12:26:41 +01:00
34c482a991 Lowercase page paths 2022-02-09 16:27:20 +01:00
250762c758 UI updates
Remove button icons, improve wallet view
2022-02-09 16:20:26 +01:00
06df50c5d0 Add support for private route hints
Will be enabled if the connected store has the required setting or if the toggle on the receive page is activated.

Closes 
2022-02-09 16:08:44 +01:00
240cb72d24 Improve Lightning test scripts 2022-02-09 15:24:17 +01:00
22678d2b50 Share page fixes 2022-02-09 15:23:52 +01:00
1f593d0710 Merge branch 'master' into lnbank 2022-02-07 11:21:38 +01:00
ec41e806dd Add release script 2022-02-01 15:15:33 +01:00
bac5ad4bbc LNbank v1.0.3 2022-02-01 12:47:05 +01:00
28ae60faf3 Add Selenium test 2022-02-01 12:42:36 +01:00
c9544b22d1 Improve form validation 2022-02-01 12:02:25 +01:00
01d7ff2525 Omit userId when using the local API client
Otherwise non-admins cannot send and receive when using the internal node. Thanks @kukks.

Fixes .
Fixes .
Fixes .
2022-02-01 10:15:53 +01:00
4f67a443c5 Improve create wallet for LN node connection case 2022-01-31 13:51:57 +01:00
1f333058c9 Merge branch 'master' into lnbank 2022-01-31 12:10:15 +01:00
6ef90503df Merge branch 'master' into lnbank 2022-01-27 15:57:12 +01:00
cece43a921 LNbank v1.0.2 2022-01-27 11:01:46 +01:00
8aae72f63e Improve layout 2022-01-27 10:47:14 +01:00
d3df78e71b Update headlines 2022-01-27 09:58:50 +01:00
4f6bd1a523 Remove connection string display 2022-01-27 09:34:00 +01:00
4b2d70e3fa Add policy (and store context); use file-scoped namespaces 2022-01-27 09:31:14 +01:00
ab729b0f7c LNbank v1.0.1
Integrate existing LNbank app


Fix db column types

Refactor copy to clipboard

General updates


Set plugin category active

More updates


Remove custom QR controller, reuse BTCPay one


Make transaction hub work


Cleanup WalletService


Configure network properly


Hide connection string info for now


Show first wallet by default


Add LNbank icon sprite


Fix payment request code styles


Remove BOLT11 string and fix QR code display


Upgrade SignalR client


Allow unauthenticated connection to hub (for share page)


Re-add initial API version


Remove custom authorization

Leftover from standalone app

add packer script

Support descriptionhash for lnurl

Refactor Auth

fix conn string display

add cancel invoice endpoint

deep integration

Improve date/time display


UI improvements


Improve LN setup integration


Add bash version of pack script


Add plugin description


Declare BTCPayServer version dependency


Updates for new layout


Update project info


Update active page function


Fix log warning


Upgrade LNbank to net6.0
2022-01-27 08:48:57 +01:00
11 changed files with 403 additions and 72 deletions

58
.github/ISSUE_TEMPLATE/bug-report.md vendored Normal file

@ -0,0 +1,58 @@
---
name: "\U0001F41B Bug report"
about: Report a bug or a technical issue
---
<!--
Thank you for reporting a technical issue with one of my BTCPay Server plugins, like LNbank or PodServer.
For general issues with BTCPay Server please visit https://github.com/btcpayserver/btcpayserver/issues
General support is available on our community chat chat.btcpayserver.org
Please fill in as much of the template below as you're able.
-->
**Plugin**
Name and version of the plugin. <!--[available on the Server Settings > Plugins page] -->
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce the bug**
Steps to reproduce the reported bug:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
<!--
A clear and concise description of what you expected to happen.
-->
**Screenshots**
<!--
If applicable, add screenshots to help explain your problem.
-->
**Your BTCPay Environment (please complete the following information):**
- BTCPay Server Version: <!--[available in the right bottom corner of footer] -->
- Lightning implementation <!--[e.g. LND, Core Lightning] -->
- Deployment Method: <!--[e.g. Docker, Manual, Third-Party-host]-->
- Browser: <!--[e.g. Chrome, Safari]-->
**Logs (if applicable)**
<!--
If you are using the Docker setup, please post the output of the following command:
docker logs generated_btcpayserver_1
Otherwise, basic logs can be found in Server Settings > Logs.
More logs https://docs.btcpayserver.org/Troubleshooting/#2-looking-through-the-logs
-->

@ -1,68 +0,0 @@
name: 🐛 Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report! Please provide as much information as you can. It helps us better understand the problem and fix it faster.
- type: textarea
id: version
attributes:
label: What is your BTCPay version?
description: You can see the version in the footer's bottom right corner
placeholder: I'm running BTCPay v1.X.X.X
validations:
required: true
- type: textarea
id: deployment
attributes:
label: How did you deploy BTCPay Server?
description: Docker, manual, third-party host? Read more on deployment methods [here](https://docs.btcpayserver.org/Deployment/)
placeholder: I'm running BTCPay Server on a...
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: What happened?
description: A clear and concise description of what the bug is.
placeholder: Tell us what you see!
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: How did you encounter this bug?
description: Step by step describe how did you encounter the bug?
placeholder: 1. I clicked X 2. Then I clicked Y 3. See error
validations:
required: true
- type: textarea
id: logoutput
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. Logs can be found in Server Settings > Logs. Here's how you can [troubleshoot an issue](https://docs.btcpayserver.org/Troubleshooting/)
render: shell
- type: textarea
id: browser
attributes:
label: What browser do you use?
description: Provide your browser and it's version. If you replicated issues on multiple browsers, let us know which ones.
placeholder: For example Safari 15.00, Chrome 10.0, Tor, Edge, etc
validations:
required: false
- type: textarea
id: additonal
attributes:
label: Additional information
description: Feel free to provide additional information. Screenshots are always helpful.
- type: checkboxes
id: terms
attributes:
label: Are you sure this is a bug report?
description: By submitting this report, you agree that this is not a support or a feature request. For general questions please read our [documentation](https://docs.btcpayserver.org). You can ask questions in [discussions](https://github.com/btcpayserver/btcpayserver/discussions) and [on our community chat](https://chat.btcpayserver.org)
options:
- label: I confirm this is a bug report
required: true

6
.gitmodules vendored Normal file

@ -0,0 +1,6 @@
[submodule "LNbank"]
path = Plugins/BTCPayServer.Plugins.LNbank
url = git@github.com:dennisreimann/btcpayserver-plugin-lnbank.git
[submodule "PodServer"]
path = Plugins/BTCPayServer.Plugins.PodServer
url = git@github.com:dennisreimann/btcpayserver-plugin-podserver.git

@ -0,0 +1,250 @@
using System;
using System.Threading.Tasks;
using BTCPayServer.Abstractions.Models;
using BTCPayServer.Lightning;
using BTCPayServer.Plugins.LNbank.Data.Models;
using NBitcoin;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using Xunit;
using Xunit.Abstractions;
namespace BTCPayServer.Tests
{
[Trait("Selenium", "Selenium")]
[Collection(nameof(NonParallelizableCollectionDefinition))]
public class LNbankTests : UnitTestBase
{
private const int TestTimeout = TestUtils.TestTimeout;
public LNbankTests(ITestOutputHelper helper) : base(helper)
{
}
[Fact(Timeout = TestTimeout)]
[Trait("Lightning", "Lightning")]
public async Task CanUseLNbank()
{
var implementations = new []
{
LightningConnectionType.CLightning,
LightningConnectionType.LndREST
};
foreach (var nodeType in implementations)
{
using var s = CreateSeleniumTester();
s.Server.ActivateLightning(nodeType);
await s.StartAsync();
s.RegisterNewUser(true);
// Setup store LN node with LNbank
s.CreateNewStore();
s.Driver.FindElement(By.Id("StoreNav-LightningBTC")).Click();
s.Driver.FindElement(By.CssSelector("label[for=\"LightningNodeType-LNbank\"]")).Click();
s.Driver.WaitForElement(By.Id("LNbank-CreateWallet"));
Assert.Equal("", s.Driver.FindElement(By.Id("LNbankWallet")).GetAttribute("value"));
// Create new wallet, which is pre-selected afterwards
s.Driver.FindElement(By.Id("LNbank-CreateWallet")).Click();
var walletName = "Wallet" + RandomUtils.GetUInt64();
s.Driver.FindElement(By.Id("Wallet_Name")).SendKeys(walletName);
s.Driver.FindElement(By.Id("LNbank-Create")).Click();
s.Driver.WaitForElement(By.Id("LNbankWallet"));
var walletSelect = new SelectElement(s.Driver.FindElement(By.Id("LNbankWallet")));
Assert.Equal(walletName, walletSelect.SelectedOption.Text);
// Finish and validate setup
s.Driver.FindElement(By.Id("save")).Click();
Assert.Contains("LNbank", s.Driver.FindElement(By.Id("CustomNodeInfo")).Text);
// LNbank wallets
s.Driver.FindElement(By.Id("Nav-LNbank")).Click();
Assert.Contains(walletName, s.Driver.FindElement(By.Id("LNbank-Wallets")).Text);
Assert.Single(s.Driver.FindElements(By.CssSelector("#LNbank-Wallets a")));
s.Driver.FindElement(By.CssSelector("#LNbank-Wallets a")).Click();
// Wallet
Assert.Contains("0 sats", s.Driver.FindElement(By.Id("LNbank-WalletBalance")).Text);
Assert.Contains("There are no transactions yet.", s.Driver.FindElement(By.Id("LNbank-WalletTransactions")).Text);
s.Driver.FindElement(By.Id("LNbank-WalletSettings")).Click();
Assert.Contains(walletName, s.Driver.FindElement(By.Id("LNbank-WalletName")).Text);
// Receive
var description = "First invoice";
s.Driver.FindElement(By.Id("LNbank-WalletReceive")).Click();
s.Driver.FindElement(By.Id("Description")).SendKeys(description);
s.Driver.FindElement(By.Id("Amount")).Clear();
s.Driver.FindElement(By.Id("Amount")).SendKeys("21");
s.Driver.FindElement(By.Id("LNbank-CreateInvoice")).Click();
// Details
Assert.Contains(description, s.Driver.FindElement(By.Id("LNbank-TransactionDescription")).Text);
Assert.Contains("21 sats unpaid", s.Driver.FindElement(By.Id("LNbank-TransactionAmount")).Text);
var bolt11 = s.Driver.FindElement(By.Id("LNbank-CopyPaymentRequest")).GetAttribute("data-clipboard");
var shareUrl = s.Driver.FindElement(By.Id("LNbank-CopyShareUrl")).GetAttribute("data-clipboard");
Assert.StartsWith("ln", bolt11);
// List
s.Driver.FindElement(By.Id("LNbank-WalletOverview")).Click();
var listUrl = s.Driver.Url;
Assert.Single(s.Driver.FindElements(By.CssSelector("#LNbank-WalletTransactions tr")));
Assert.Contains("21 sats", s.Driver.FindElement(By.CssSelector("#LNbank-WalletTransactions tr .transaction-amount")).Text);
Assert.Contains(description, s.Driver.FindElement(By.CssSelector("#LNbank-WalletTransactions tr .transaction-description")).Text);
Assert.Contains("unpaid", s.Driver.FindElement(By.CssSelector("#LNbank-WalletTransactions tr .transaction-status")).Text);
Assert.Contains("0 sats", s.Driver.FindElement(By.Id("LNbank-WalletBalance")).Text);
// Share
s.GoToUrl(shareUrl);
Assert.Contains(description, s.Driver.FindElement(By.Id("LNbank-TransactionDescription")).Text);
Assert.Contains("21 sats unpaid", s.Driver.FindElement(By.Id("LNbank-TransactionAmount")).Text);
// Pay invoice
var resp = await s.Server.CustomerLightningD.Pay(bolt11);
Assert.Equal(PayResult.Ok, resp.Result);
TestUtils.Eventually(() =>
{
s.Driver.Navigate().Refresh();
Assert.Contains("21 sats settled", s.Driver.FindElement(By.Id("LNbank-TransactionSettled")).Text);
});
// List
s.GoToUrl(listUrl);
Assert.Single(s.Driver.FindElements(By.CssSelector("#LNbank-WalletTransactions tr")));
Assert.Contains("21 sats", s.Driver.FindElement(By.CssSelector("#LNbank-WalletTransactions tr .transaction-settled")).Text);
Assert.Contains("21 sats", s.Driver.FindElement(By.Id("LNbank-WalletBalance")).Text);
// Send
var memo = "Donation";
var amount = LightMoney.Satoshis(5);
var invoice = await s.Server.CustomerLightningD.CreateInvoice(amount, memo, TimeSpan.FromHours(1));
s.Driver.FindElement(By.Id("LNbank-WalletSend")).Click();
s.Driver.FindElement(By.Id("Destination")).SendKeys(invoice.BOLT11);
s.Driver.FindElement(By.Id("LNbank-Decode")).Click();
// Confirm
Assert.Contains(memo, s.Driver.FindElement(By.Id("Description")).GetAttribute("value"));
Assert.Contains("5 sats", s.Driver.FindElement(By.Id("LNbank-Amount")).Text);
s.Driver.FindElement(By.Id("Description")).Clear();
s.Driver.FindElement(By.Id("Description")).SendKeys("For Uncle Jim");
s.Driver.FindElement(By.Id("LNbank-Send")).Click();
Assert.Contains("Payment successfully sent and settled.", s.FindAlertMessage().Text);
// List
s.Driver.FindElement(By.Id("LNbank-WalletOverview")).Click();
var amountEl = s.Driver.FindElement(By.CssSelector("#LNbank-WalletTransactions tr .transaction-amount"));
var settledEl = s.Driver.FindElement(By.CssSelector("#LNbank-WalletTransactions tr .transaction-settled"));
var amountMoney = LightMoney.MilliSatoshis(long.Parse(amountEl.GetAttribute("data-amount")));
var amountSettledMoney = LightMoney.MilliSatoshis(long.Parse(settledEl.GetAttribute("data-amount-settled")));
var feeMoney = LightMoney.MilliSatoshis(long.Parse(settledEl.GetAttribute("data-transaction-fee")));
var amountSettled = (amountMoney + feeMoney) * -1;
var balance = LightMoney.Satoshis(21) + amountSettled;
Assert.Equal(2, s.Driver.FindElements(By.CssSelector("#LNbank-WalletTransactions tr")).Count);
Assert.Equal(amount, amountMoney);
Assert.Equal(amountSettled, amountSettledMoney);
Assert.Contains("For Uncle Jim", s.Driver.FindElement(By.CssSelector("#LNbank-WalletTransactions tr .transaction-description")).Text);
Assert.Contains($"{amount.ToUnit(LightMoneyUnit.Satoshi)} sats", amountEl.Text);
Assert.Contains($"{amountSettled.ToUnit(LightMoneyUnit.Satoshi)} sats", settledEl.Text);
Assert.Contains($"{balance.ToUnit(LightMoneyUnit.Satoshi)} sats", s.Driver.FindElement(By.Id("LNbank-WalletBalance")).Text);
}
}
[Fact(Timeout = TestTimeout)]
[Trait("Lightning", "Lightning")]
public async Task CanUseLNbankAccessKeys()
{
using var s = CreateSeleniumTester();
s.Server.ActivateLightning(LightningConnectionType.CLightning);
await s.StartAsync();
s.GoToRegister();
var user = s.RegisterNewUser();
s.GoToRegister();
var admin = s.RegisterNewUser(true);
// Create new wallet
s.Driver.FindElement(By.Id("Nav-LNbank")).Click();
var walletName = "AccessKeys" + RandomUtils.GetUInt64();
s.Driver.FindElement(By.Id("Wallet_Name")).SendKeys(walletName);
s.Driver.FindElement(By.Id("LNbank-Create")).Click();
Assert.Contains("Wallet successfully created.", s.FindAlertMessage().Text);
s.Driver.FindElement(By.Id("LNbank-WalletSettings")).Click();
var walletId = s.Driver.FindElement(By.Id("LNbank-WalletId")).Text;
var walletNavId = $"Nav-LNbank-Wallet-{walletId}";
// Check if the user sees it
s.Logout();
s.LogIn(user);
s.Driver.AssertElementNotFound(By.Id(walletNavId));
void SetAccessLevel(AccessLevel level)
{
s.Logout();
s.LogIn(admin);
s.Driver.FindElement(By.Id(walletNavId)).Click();
s.Driver.FindElement(By.Id("LNbank-WalletSettings")).Click();
s.Driver.FindElement(By.Id("SectionNav-WalletAccessKeys")).Click();
s.Driver.FindElement(By.Id("AccessKey_Email")).SendKeys(user);
var levelSelect = new SelectElement(s.Driver.FindElement(By.Id("AccessKey_Level")));
levelSelect.SelectByValue(level.ToString());
s.Driver.FindElement(By.Id("LNbank-CreateAccessKey")).Click();
Assert.Contains("Access key added successfully.", s.FindAlertMessage().Text);
// Switch user
s.Logout();
s.LogIn(user);
s.Driver.FindElement(By.Id(walletNavId)).Click();
}
// Add read-only access key for user
SetAccessLevel(AccessLevel.ReadOnly);
s.Driver.AssertElementNotFound(By.Id("LNbank-WalletSend"));
s.Driver.AssertElementNotFound(By.Id("LNbank-WalletReceive"));
s.Driver.AssertElementNotFound(By.Id("LNbank-WalletSettings"));
// Update access key for user: Invoice
SetAccessLevel(AccessLevel.Invoice);
s.Driver.AssertElementNotFound(By.Id("LNbank-WalletSend"));
s.Driver.AssertElementNotFound(By.Id("LNbank-WalletSettings"));
// Receive is allowed now
var description = "My invoice";
s.Driver.FindElement(By.Id("LNbank-WalletReceive")).Click();
s.Driver.FindElement(By.Id("Description")).SendKeys(description);
s.Driver.SetCheckbox(By.Id("AttachDescription"), true);
s.Driver.FindElement(By.Id("Amount")).Clear();
s.Driver.FindElement(By.Id("Amount")).SendKeys("21");
s.Driver.FindElement(By.Id("LNbank-CreateInvoice")).Click();
Assert.Contains(description, s.Driver.FindElement(By.Id("LNbank-TransactionDescription")).Text);
Assert.Contains("21 sats unpaid", s.Driver.FindElement(By.Id("LNbank-TransactionAmount")).Text);
var bolt11 = s.Driver.FindElement(By.Id("LNbank-CopyPaymentRequest")).GetAttribute("data-clipboard");
Assert.StartsWith("ln", bolt11);
// Update access key for user: Send
SetAccessLevel(AccessLevel.Send);
s.Driver.AssertElementNotFound(By.Id("LNbank-WalletSettings"));
// Send is allowed now
s.Driver.FindElement(By.Id("LNbank-WalletSend")).Click();
s.Driver.FindElement(By.Id("Destination")).SendKeys(bolt11);
s.Driver.FindElement(By.Id("LNbank-Decode")).Click();
Assert.Contains(description, s.Driver.FindElement(By.Id("Description")).GetAttribute("value"));
Assert.Contains("21 sats", s.Driver.FindElement(By.Id("LNbank-Amount")).Text);
s.Driver.FindElement(By.Id("LNbank-Send")).Click();
Assert.Contains("Insufficient balance: 0 sats — tried to send 21 sats.", s.FindAlertMessage(StatusMessageModel.StatusSeverity.Error).Text);
// Update access key for user: Send
SetAccessLevel(AccessLevel.Admin);
s.Driver.FindElement(By.Id("LNbank-WalletSettings")).Click();
}
}
}

@ -0,0 +1,16 @@
#!/bin/bash
PREIMAGE=$(cat /dev/urandom | tr -dc 'a-f0-9' | fold -w 64 | head -n 1)
HASH=`node -e "console.log(require('crypto').createHash('sha256').update(Buffer.from('$PREIMAGE', 'hex')).digest('hex'))"`
PAYREQ=$(./docker-customer-lncli.sh addholdinvoice --memo "hodl invoice $@" $HASH "$@" | jq -r ".payment_request")
echo "HASH: $HASH"
echo "PREIMAGE: $PREIMAGE"
echo "PAY REQ: $PAYREQ"
echo ""
echo "SETTLE: ./docker-customer-lncli.sh settleinvoice $PREIMAGE"
echo "CANCEL: ./docker-customer-lncli.sh cancelinvoice $HASH"
echo "LOOKUP: ./docker-customer-lncli.sh lookupinvoice $HASH"
echo ""
echo "TRACK: ./docker-merchant-lncli.sh trackpayment $HASH"
echo "PAY: ./docker-merchant-lncli.sh payinvoice $PAYREQ"

@ -97,8 +97,17 @@ connect $C_LN $m_ln_uri "Customer (LND) to Merchant (LND)"
# Channels
printf "\n\rEstablishing channels\n\r----------------------\n\r"
create_channel $M_LN $c_ln_id "Merchant (LND) to Customer (LND)"
create_channel $C_LN $c_cl_id "Customer (LND) to Customer (c-lightning)"
create_channel $C_CL $m_cl_id "Customer (c-lightning) to Merchant (c-lightning)"
create_channel $C_CL $m_cl_id "Customer (c-lightning) to Merchant (c-lightning)"
create_channel $C_CL $m_ln_id "Customer (c-lightning) to Merchant (LND)"
create_channel $C_LN $c_cl_id "Customer (LND) to Customer (c-lightning)"
create_channel $C_LN $m_cl_id "Customer (LND) to Merchant (c-lightning)"
create_channel $M_CL $m_ln_id "Merchant (c-lightning) to Merchant (LND)" "announce=false"
create_channel $M_CL $c_ln_id "Merchant (c-lightning) to Customer (LND)" "announce=false"
create_channel $M_CL $c_cl_id "Merchant (c-lightning) to Customer (c-lightning)" "announce=false"
create_channel $M_LN $c_ln_id "Merchant (LND) to Customer (LND)"
create_channel $M_LN $c_cl_id "Merchant (LND) to Customer (c-lightning)"
create_channel $C_LN $m_ln_id "Customer (LND) to Merchant (LND)" --private

@ -133,6 +133,8 @@
<ProjectReference Include="..\BTCPayServer.Data\BTCPayServer.Data.csproj" />
<ProjectReference Include="..\BTCPayServer.Rating\BTCPayServer.Rating.csproj" />
<ProjectReference Include="..\BTCPayServer.Common\BTCPayServer.Common.csproj" />
<ProjectReference Include="..\Plugins\BTCPayServer.Plugins.LNbank\BTCPayServer.Plugins.LNbank.csproj" />
<ProjectReference Include="..\Plugins\BTCPayServer.Plugins.PodServer\BTCPayServer.Plugins.PodServer.csproj" />
<ProjectReference Include="..\Plugins\BTCPayServer.Plugins.Custodians.FakeCustodian\BTCPayServer.Plugins.Custodians.FakeCustodian.csproj" />
</ItemGroup>

@ -7,6 +7,7 @@
"BTCPAY_NETWORK": "regtest",
"BTCPAY_LAUNCHSETTINGS": "true",
"BTCPAY_BTCLIGHTNING": "type=clightning;server=tcp://127.0.0.1:30993",
"BTCPAY_BTCEXTERNALCLIGHTNING": "type=clightning;server=tcp://127.0.0.1:30993",
"BTCPAY_BTCEXTERNALLNDREST": "type=lnd-rest;server=http://lnd:lnd@127.0.0.1:35531/;allowinsecure=true",
"BTCPAY_BTCEXTERNALLNDSEEDBACKUP": "../BTCPayServer.Tests/TestData/LndSeedBackup/walletunlock.json",
"BTCPAY_BTCEXTERNALSPARK": "server=/spark/btc/;cookiefile=fake",
@ -31,7 +32,7 @@
"BTCPAY_CHEATMODE": "true",
"BTCPAY_EXPLORERPOSTGRES": "User ID=postgres;Include Error Detail=true;Host=127.0.0.1;Port=39372;Database=nbxplorer"
},
"applicationUrl": "http://localhost:14142/"
"applicationUrl": "http://0.0.0.0:14142/"
},
"Bitcoin-HTTPS": {
"commandName": "Project",
@ -42,7 +43,8 @@
"BTCPAY_PORT": "14142",
"BTCPAY_HttpsUseDefaultCertificate": "true",
"BTCPAY_VERBOSE": "true",
"BTCPAY_BTCLIGHTNING": "type=clightning;server=tcp://127.0.0.1:30993",
"BTCPAY_BTCLIGHTNING": "type=lnd-rest;server=http://lnd:lnd@127.0.0.1:35531/;allowinsecure=true",
"BTCPAY_BTCEXTERNALCLIGHTNING": "type=clightning;server=tcp://127.0.0.1:30993",
"BTCPAY_BTCEXTERNALLNDREST": "type=lnd-rest;server=http://lnd:lnd@127.0.0.1:35531/;allowinsecure=true",
"BTCPAY_BTCEXTERNALLNDSEEDBACKUP": "../BTCPayServer.Tests/TestData/LndSeedBackup/walletunlock.json",
"BTCPAY_BTCEXTERNALSPARK": "server=/spark/btc/;cookiefile=fake",
@ -68,7 +70,7 @@
"BTCPAY_CHEATMODE": "true",
"BTCPAY_EXPLORERPOSTGRES": "User ID=postgres;Include Error Detail=true;Host=127.0.0.1;Port=39372;Database=nbxplorer"
},
"applicationUrl": "https://localhost:14142/"
"applicationUrl": "https://0.0.0.0:14142/"
},
"Altcoins-HTTPS": {
"commandName": "Project",
@ -107,7 +109,7 @@
"BTCPAY_CHEATMODE": "true",
"BTCPAY_EXPLORERPOSTGRES": "User ID=postgres;Include Error Detail=true;Host=127.0.0.1;Port=39372;Database=nbxplorer"
},
"applicationUrl": "https://localhost:14142/"
"applicationUrl": "https://0.0.0.0:14142/"
}
}
}

@ -39,6 +39,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BTCPayServer.PluginPacker",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BTCPayServer.Plugins.Custodians.FakeCustodian", "Plugins\BTCPayServer.Plugins.Custodians.FakeCustodian\BTCPayServer.Plugins.Custodians.FakeCustodian.csproj", "{49E1FE45-FE71-49DF-8701-8394E974BE82}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BTCPayServer.Plugins.LNbank", "Plugins\BTCPayServer.Plugins.LNbank\BTCPayServer.Plugins.LNbank.csproj", "{8A4E2012-B044-44B2-BF79-8F745FFB7527}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BTCPayServer.Plugins.PodServer", "Plugins\BTCPayServer.Plugins.PodServer\BTCPayServer.Plugins.PodServer.csproj", "{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Altcoins-Debug|Any CPU = Altcoins-Debug|Any CPU
@ -295,6 +299,54 @@ Global
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Release|x64.Build.0 = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Release|x86.ActiveCfg = Release|Any CPU
{49E1FE45-FE71-49DF-8701-8394E974BE82}.Release|x86.Build.0 = Release|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Altcoins-Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Altcoins-Debug|Any CPU.Build.0 = Debug|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Altcoins-Debug|x64.ActiveCfg = Debug|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Altcoins-Debug|x64.Build.0 = Debug|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Altcoins-Debug|x86.ActiveCfg = Debug|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Altcoins-Debug|x86.Build.0 = Debug|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Altcoins-Release|Any CPU.ActiveCfg = Release|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Altcoins-Release|Any CPU.Build.0 = Release|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Altcoins-Release|x64.ActiveCfg = Release|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Altcoins-Release|x64.Build.0 = Release|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Altcoins-Release|x86.ActiveCfg = Release|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Altcoins-Release|x86.Build.0 = Release|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Debug|x64.ActiveCfg = Debug|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Debug|x64.Build.0 = Debug|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Debug|x86.ActiveCfg = Debug|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Debug|x86.Build.0 = Debug|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Release|Any CPU.Build.0 = Release|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Release|x64.ActiveCfg = Release|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Release|x64.Build.0 = Release|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Release|x86.ActiveCfg = Release|Any CPU
{8A4E2012-B044-44B2-BF79-8F745FFB7527}.Release|x86.Build.0 = Release|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Altcoins-Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Altcoins-Debug|Any CPU.Build.0 = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Altcoins-Debug|x64.ActiveCfg = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Altcoins-Debug|x64.Build.0 = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Altcoins-Debug|x86.ActiveCfg = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Altcoins-Debug|x86.Build.0 = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Altcoins-Release|Any CPU.ActiveCfg = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Altcoins-Release|Any CPU.Build.0 = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Altcoins-Release|x64.ActiveCfg = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Altcoins-Release|x64.Build.0 = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Altcoins-Release|x86.ActiveCfg = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Altcoins-Release|x86.Build.0 = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Debug|x64.ActiveCfg = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Debug|x64.Build.0 = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Debug|x86.ActiveCfg = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Debug|x86.Build.0 = Debug|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Release|Any CPU.Build.0 = Release|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Release|x64.ActiveCfg = Release|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Release|x64.Build.0 = Release|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Release|x86.ActiveCfg = Release|Any CPU
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -302,6 +354,8 @@ Global
GlobalSection(NestedProjects) = preSolution
{545AFC8E-7BC2-43D9-84CA-F9468F4FF295} = {1FC7F660-ADF1-4D55-B61A-85C6AB083C33}
{7DC94B25-1CFC-4170-AA41-7BA983E4C0B8} = {1FC7F660-ADF1-4D55-B61A-85C6AB083C33}
{8A4E2012-B044-44B2-BF79-8F745FFB7527} = {1FC7F660-ADF1-4D55-B61A-85C6AB083C33}
{5A50CF65-8364-4BB5-8EFF-26A8CC3C056D} = {1FC7F660-ADF1-4D55-B61A-85C6AB083C33}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {203A3162-BE45-4721-937D-6804E0E1AFF8}