From 9c32ec788e60ce6198eda921601d43b23abcaf34 Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Wed, 29 Jan 2025 13:59:39 +1100 Subject: [PATCH 1/4] fix: Update login page to verify password instead of opening as readonly --- FireWalletBrowser.bsdesign | Bin 330754 -> 330790 bytes README.md | 22 +++++++++++++++++++--- account.py | 12 +++++++++--- main.py | 10 +++++++--- plugin.py | 1 - plugins/customPlugins.py | 2 +- templates/login.html | 1 + 7 files changed, 37 insertions(+), 11 deletions(-) diff --git a/FireWalletBrowser.bsdesign b/FireWalletBrowser.bsdesign index 7589626ac48c1b9f41b6417f34029b11a53c3ebf..45aff50f39ece4073c991e72eabf004cda30f8ee 100644 GIT binary patch delta 25842 zcmb5VWmp_;pR9>A?jGFTLU4C?cXtU8G-%`Q)@X2dcL@Y{cMTTYU6%acnRn*Q?w&pS zsrlM{UHq!*u6hDeF^f_$mE~$WkEBir0h_#yiIQGyA?zv2Evx-&> z#7vNGJ&$PXs%NDk+Z3<}D#|xyU>w~AO_-1j@;wVT-eny@3>b z{5>0+r0D_ux&z*hBPyoL9fr;(oOi!q9(nA()BZ%yM&aO?9#SAbo#N5J#;l?AR&87k z{)x|XvyJh@Bm-Q=@4|ewq84-kvn}N?Z5u0Jdpr}VA0rD7C0eIzk6moe7%K*Dx^#_T z%B03DSIb-?rfIMYPLKNwY~|T9(n5Sck|n@@)DIC$Y5DzPwh`I3r2dq%!v~`^2qFq# z7+5s)T)JMO*)arqO7ZR9f_^Xu3TpSy+fi-GyVv@Uka*ZC6S&ZH*n72LBMf~1CHR|- zu)grJjgb>9VbIeoppT2hId+C}NF5?DX$j2BYzV^o7L!TkvA&kbV+mB`^dZ)!vYjAfj#`}ii4IVH#M=*k#UbQnNY z2sTHitRlEX^OKT%wzIzlz`(_X?q~m6FM-Mw1pf(Tg(6E-=BCm=F)P!)GM*bGLa+_4 z9YcAeJf;m!HP`2(MI$WD^rt?kL?x+81W{Wq1M)WlFx=|hW~kY+`zd<2Ev!FunlsO|noglWQauTNj%{H|l?)zxR{k-px&6yb#@C=+={&=7ft`aLlJ^ zbGkk0L~ZWKvLcR$YMGEjw5eQ2q(D$gpGGK{?iiY(;(>6SmC~4M+WlT##+%VMCCvw} zpPn2RkSyXOaH4--h4?if$=z`1E5TPeSLSo;W#CV+718Zq`>48RSEk}rn@fSp7ZhWA zf+w7d^>1cRH}McE?p*BZKz==eLuqMpJzb2b-8I6o@v+oaP`k;#1Wj=x7se7jQ~lgq z2?vFZ8w0B4u^9MT^VZ-?5bFtuD#4NG zZ=e&5u_7R2{V6rgP6c-r&fnBwNTgSKXUi|cmt?`*)R_@E!UxqX-B zx=njR%5OX_xD@+i)<6vt?Qqw1-rpGX^&AP>_Cj)ka7Yn!51#b7ZQ`2}vL&GaNm}f0 zS#$8T^aVD-m_)P?wRtv-%1|Aie#Fv7PoOO&00F#A-hhxjkF)n8I*6teKniqKBqLt; zX=_#)m8sMzO-7CF8Pxr04z+j}Fxn@4p&p-*Y^0y>lTW$C93iX?ZULp01r`}N?Wfb6 zgJskX_qnH{$*EkI!l7a9sp3IJ+@^6Gq~h9_BC3Pj8tEXD7{8a0Mdp>?Y6fki6gd9< z<$)95q>9OUiRSZ8$l;a&R0gg>htiqSY2&O zhgx*6x*%_sP{HML^4X9}7N)x#X`utqy4`P&=pFz5$mEDPE>M;R4Lp5QmPsw@OhbVm zeBm5lhJkriI~O-ypzj%QG@{6R1mdW?R>c=6+v$*gnurTA)$R;OxsP*^Jq0smH2qsf zHZf`I7d~AbPNaJZlKCq;%y^^6(%0_MQ}$7kX)|YM<(?B+=V|MF1P#8O1SQQYFL>wN zubr9Rh?blOJ*TGXzsTQ&s5)8`(}cetFVOAz`rq%siX6!7vexbawSV^j@2+A}>(ltk z4Y{Rzi;DxyFpf2*V8A0Q%McgnVno{6)Roud>YZU^H0{^eS9LafzaQ~U+6RZ;p4pXZ zn+M#`JX{Ajuqw2daqZj@awt1m%0AdRugyYh-l6NINo=sEkIz`|^7H#F+Ggn`ZQ#WT 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 DcKP$^ delta 26540 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

#sG&r0BjKwoKj=z3oVBQIj`NqOOW zU-m5Lq*}-2#~d4Ae%Rm(Wo(mj~#7arYm}T8?7$dCjddWhS<`C0W6Q0Ypzn@vKqf_pncv*a{^mzCs}~+ zXH&4Tx5LNON0>N=eV+|6K{T+QliG=~n`PI-KQaDPvp#@wk#>{y-7`)y9@WJSrX-Rp zSbL|;0wNjQNa5jp`C&+s`e%CwuM+xK7GdJ}EsF#z>mp>&R4F%v5OhkY*|4!s&eR1r7eEBK4Pfd9d8!;$!Mv z!)kDlj&j%Sljm)L=XX=!K@MZ77QLksb`?${18>J(=atEkCD;uv*33CBzM<~Ud=aLj z5N!suV(NzIxL=Z(Zw~$fkOs5FN@#B_v0j%AcI;`8NK>F)s|#q`=NilPf2 z^J8dO#FBk_xJxRx%3bF6&#kE?z&BeaZ9!C%d5+)KUb4m=A#Yn9c1Iyb=~34M@%+*0 zhmwk1XKKP=VIe;?hZ{{|=uerf40JQ~h7&4LI8VYfiMF{LO@j2NMrQ6Xr|zTwyGGWf z=6<{KUYXvkyjlSF*~fpwk#M;TR%Of*)BPsaQb$zMt4nuJiukS1 zy+b+r2`W6ud_ZGWvAISWagE>sT4N(JC#K;HA|yOyv5NR!v<8~Off?7TfCF45L%wU})S=XR2tQBDu+ zeIdj;h9u|0WRIk(dd~y!&&F>LgKO^r*RaFjO4CJmwmmHe2O{`*q%dWH=?ak}iA`Z$ zP=%hREgE|T`6@iB zYqvs!9r(5l$+>SfLxyvbDPD$B$R|8-H05s55Pha0w2SFzL5ce$aw+wVaMaWt5CQBE z+#h$~APQfR?f?v?{Stv6H69QMF`y9PI7NZ0!LFX_{MovRK=-j*KJ(;DEHiG>gze3q))txMp*j^k7*-6O;O@TVmXiH2ne_5V{T987->nOsA%)cIf8 zAOBGPIQ`Y|(ZPR%49_Al0VJ3IV$nzO|ElP_&n)sl({{(}BWVf5I)%FV z>F=q;#m5*dkAr`T>P2NIdn(JU9Vw#4tCwUGOjtr!QI-| zqt%De4uMTBTLi~gLyyy%*|FD?)b8S)0Ox#P-+nkZKYY?9U+l6TC7S;*#|m*DT4gr;0ufL2r&%7wlJ_8<+#fKj^p3 z0;9v=A9Svw~!?E~D+vjn_tz-_|39DfqfGu6_LzEGs^$gh}N(Y3?HA_5ftpqs z6{p*A<-EC;a%5pD{Yq?4IRg}UPUfZo0n}-HAA^0d5FD4es=%vhw%xG zv({mN_!LsA5T_)cmvBgZ(h}l0xOR=gH1#0F@%7-+wfd(VdbN%+g5|f}x_K`2E<9LZ kty9yu%fl>h!BK0Q)hq@n@r}i;t!va62_ujcBN5zx0OqP3bpQYW diff --git a/README.md b/README.md index 05b6b8f..e969d57 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,4 @@ # FireWalletBrowser - - ## Installation ```bash @@ -112,4 +110,22 @@ DNS Editor page ![DNS Editor page](assets/dnseditor.png) Auction page -![Auction page](assets/auction.png) \ No newline at end of file +![Auction page](assets/auction.png) + +## Environment variables + +```yaml +hsd_api: HSD API key +hsd_ip: HSD IP address +theme: Theme to use (dark-purple, black) +show_expired: Show expired domains (true/false) +exclude: Comma separated list of wallets to exclude from the wallet list +``` + + +## Warnings + +- This is a work in progress and is not guaranteed to work +- This is not a wallet by itself but rather a frontend for HSD +- I am not responsible for any loss of funds from using this wallet (including loss of funds from auctions) +- I am not responsible if you expose this frontend to the internet (please don't do this unless you know what you are doing) \ No newline at end of file diff --git a/account.py b/account.py index 9ecb02e..3d252ef 100644 --- a/account.py +++ b/account.py @@ -26,7 +26,9 @@ hsw = api.hsw(APIKEY,ip) # Verify the connection response = hsd.getInfo() - +exclude = ["primary"] +if os.getenv("exclude") is not None: + exclude = os.getenv("exclude").split(",") def check_account(cookie: str): if cookie is None: @@ -52,9 +54,10 @@ def check_password(cookie: str, password: str): info = hsw.rpc_selectWallet(account) if info['error'] is not None: return False - info = hsw.rpc_walletPassphrase(password,10) + info = hsw.rpc_walletPassphrase(password,1) if info['error'] is not None: - return False + if info['error']['message'] != "Wallet is not encrypted.": + return False return True def createWallet(account: str, password: str): @@ -118,6 +121,9 @@ def listWallets(): # Check if response is json or an array if isinstance(response, list): + # Remove excluded wallets + response = [wallet for wallet in response if wallet not in exclude] + return response return ['Wallet not connected'] diff --git a/main.py b/main.py index c5d9cdc..e1e593b 100644 --- a/main.py +++ b/main.py @@ -1154,16 +1154,20 @@ def login_post(): # Check if the account is valid if account.count(":") > 0: + wallets = account_module.listWallets() + wallets = render.wallets(wallets) return render_template("login.html", sync=account_module.getNodeSync(), wallet_status=account_module.getWalletStatus(), - error="Invalid account") + error="Invalid account",wallets=wallets) account = account + ":" + password # Check if the account is valid - if not account_module.check_account(account): + if not account_module.check_password(account,password): + wallets = account_module.listWallets() + wallets = render.wallets(wallets) return render_template("login.html", sync=account_module.getNodeSync(), - error="Invalid account") + error="Invalid account or password",wallets=wallets) # Set the cookie diff --git a/plugin.py b/plugin.py index 0caa06b..ced95b7 100644 --- a/plugin.py +++ b/plugin.py @@ -126,7 +126,6 @@ def getPluginData(pluginStr: str): # Check if the plugin is in customPlugins if pluginStr.startswith("customPlugins"): # Get git url for dir - print(f"cd customPlugins/{pluginStr.split('/')[-2]} && git remote get-url origin") url = subprocess.check_output(f"cd customPlugins/{pluginStr.split('/')[-2]} && git remote get-url origin", shell=True).decode("utf-8").strip() info["source"] = url diff --git a/plugins/customPlugins.py b/plugins/customPlugins.py index 1b9058d..6d2e43d 100644 --- a/plugins/customPlugins.py +++ b/plugins/customPlugins.py @@ -42,7 +42,7 @@ functions = { } }, "returns": { - "status": + "status": { "name": "Status of the function", "type": "text" diff --git a/templates/login.html b/templates/login.html index 5c53471..e5f0e34 100644 --- a/templates/login.html +++ b/templates/login.html @@ -19,6 +19,7 @@

+

{{error}}

From ca32bf7780cdc1e004b9374021f6d52c4f50dd68 Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Wed, 29 Jan 2025 14:38:13 +1100 Subject: [PATCH 2/4] fix: Hide empty dashboard outputs --- FireWalletBrowser.bsdesign | Bin 330790 -> 330796 bytes render.py | 2 ++ 2 files changed, 2 insertions(+) diff --git a/FireWalletBrowser.bsdesign b/FireWalletBrowser.bsdesign index 45aff50f39ece4073c991e72eabf004cda30f8ee..44990d569e2ebd90224b2c158ee37dd30fc5bc08 100644 GIT binary patch delta 26930 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 G^8WxTbCZk! delta 27203 zcmagF1zVl%nq`Z-LvVK|1b26WySuylBDgy&+}+(RxVvj`f(CaujZLo)Vn3BDoQwJb4lMEQOTd+Sp^O!uNKAQp5Ma?)}lxi^yR!PcWbFr&6r3r z0$ftVqWNkqT~Z+euI+{iz&2_Rt0p*tTV-sQGO{y zlV~oeLIkAf4*-j6yp11Z!dys*SN`-Pthf|Ek@dZNUtxsG=Q(kGe!qQ@at6yHIbab- zbw)!&pWsRMBu|Ck%>5m+|9mjft4Sz0rk8||R{msYYhGXKS6y5#-WkC6rNzo{YMLH4W3Q+{rMMN1 z-{hBKn5LD5pB=7|WcJw7W2wgZ##1+|Gy0mIn>K9|h$4w0^YtpHuyGm;z0=d-5^F_{ zw3HxkcCt8VcEbpfq=x?hla=s}ITd#9E-$pkFpw~SerQ?WYvpEzdRN~|l6U_On9UR@ zpgFi`LkZaa?q2s}jM&p!5#NQn)6TmU6Mo2JKwyuRprPohoq+=+Vc5$gpr4c2Id+a> zL=`MBX$8dFWCYCe4uetYsiBV0b1OrOUzmez3V0YvXS#5J>g1VJ>a^8%M<~$B~YF7Q}mfhk+=d?U- z3F_|6@X%PY#SJ3s0D@oJM>`-Cr>;g}BB&f6YeMMEN4wRcJ*p@Cl?sLqv1^Br?f%$p z_jnFPx({Cr?fwS48^VDgeEBELcgyDwU89!?}ngK zrKD7Jv!BD`~xudgUo?S(E&YwL*z5YF-9SJOZ$Q_ld z7v-E*PN5Th=z2ZWKW_si^ulb^I@E4c@jjiIldA?OF!+5<#8JtX88JG9D1v&Nzq7Ki z^he!$QAGQ2Z-a6WaI9$t>5D-8t2QIS!lm_ODVZ@Jqm;&kQ;xOca~-FdsaDC>0pn_L@^pfgDJUlvZ(_2boh^@ zq{wu%(WCY^2qq>cQrmzXMu+0mB~6^@D|Czv3-6`uY``pLp##K^w|LWNbdCrr9Xrtiu9+7~78s z_et&k^3U)iUNSXyWvQh|~^mu*bz%#05v|OS7x?8$(A_Dek8(`dH3>sKY>4{>x z)YVD#gZhl3dvA6CUJ?o?MP$9>ngB7$4?gdlqptx-eIH8eZt
  • 8A7LnH!hJuxsqO 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 Date: Wed, 29 Jan 2025 17:07:44 +1100 Subject: [PATCH 3/4] feat: Add verifyMessageWithName to account --- README.md | 2 +- account.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e969d57..23bd2ac 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ For Docker you can mount a volume to persist the user data (/app/user_data) - Rescan - Zap pending transactions - View xPub -- Custom plugin support +- Custom plugin support (find some [here](https://git.woodburn.au/nathanwoodburn?tab=repositories&q=plugin&sort=recentupdate)) ## Themes Set a theme in the .env file diff --git a/account.py b/account.py index 3d252ef..ce1e5be 100644 --- a/account.py +++ b/account.py @@ -836,6 +836,16 @@ def signMessage(account,domain,message): } } +def verifyMessageWithName(domain,signature,message): + try: + response = hsd.rpc_verifyMessageWithName(domain,signature,message) + if 'result' in response: + return response['result'] + return False + except Exception as e: + return False + + #endregion def generateReport(account,format="{name},{expiry},{value},{maxBid}"): From 76dd5a429b2efc7242072816384d516b6173d189 Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Wed, 29 Jan 2025 17:21:44 +1100 Subject: [PATCH 4/4] feat: Add verifyMessage to account module --- account.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/account.py b/account.py index ce1e5be..359c561 100644 --- a/account.py +++ b/account.py @@ -846,6 +846,15 @@ def verifyMessageWithName(domain,signature,message): return False +def verifyMessage(address,signature,message): + try: + response = hsd.rpc_verifyMessage(address,signature,message) + if 'result' in response: + return response['result'] + return False + except Exception as e: + return False + #endregion def generateReport(account,format="{name},{expiry},{value},{maxBid}"):