Skip to content

Commit 1a57ed0

Browse files
author
Kim Neunert
authored
Chore: upgrade flask and corresponding libs (#1666)
* upgrade flask and friends * bugfix: un/freezing not working as event triggered twice * adjusted comment and removed logging
1 parent 132e734 commit 1a57ed0

File tree

6 files changed

+170
-110
lines changed

6 files changed

+170
-110
lines changed

requirements.in

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
certifi==2021.10.08
22
chardet==3.0.4
3-
Click==7.1.2
4-
Flask==1.1.4
3+
Click==8.1.1
4+
Flask==2.1.1
5+
Werkzeug==2.0.0 # need to pin because Flask doesn't work with newer ones
56
Flask-Babel==2.0.0
67
Flask-Cors==3.0.10
78
Flask-Login==0.5.0
@@ -18,7 +19,7 @@ stem==1.8.0
1819
embit==0.4.12
1920
psutil==5.7.3
2021
pyopenssl==20.0.1
21-
flask_wtf==0.14.3
22+
flask_wtf==0.15.1
2223
pgpy==0.5.4
2324
cbor==1.0.0
2425
mnemonic==0.20

requirements.txt

Lines changed: 135 additions & 86 deletions
Large diffs are not rendered by default.

src/cryptoadvance/specter/managers/service_manager.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,6 @@ def inject_stuff():
133133
ext_prefix = app.config["EXT_URL_PREFIX"]
134134

135135
try:
136-
app.register_blueprint(
137-
clazz.blueprint, url_prefix=f"{ext_prefix}/{clazz.id}"
138-
)
139-
logger.info(f" Mounted {clazz.id} to {ext_prefix}/{clazz.id}")
140136
if (
141137
app.testing
142138
and len([vf for vf in app.view_functions if vf.startswith(clazz.id)])
@@ -152,6 +148,11 @@ def inject_stuff():
152148
app.register_blueprint(
153149
clazz.blueprint, url_prefix=f"{ext_prefix}/{clazz.id}"
154150
)
151+
else:
152+
app.register_blueprint(
153+
clazz.blueprint, url_prefix=f"{ext_prefix}/{clazz.id}"
154+
)
155+
logger.info(f" Mounted {clazz.id} to {ext_prefix}/{clazz.id}")
155156
except AssertionError as e:
156157
if str(e).startswith("A name collision"):
157158
raise SpecterError(

src/cryptoadvance/specter/server_endpoints/filters.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
from datetime import datetime
22
from flask import current_app as app
33
from flask import Blueprint
4-
from jinja2 import contextfilter
4+
from jinja2 import pass_context
55
from ..helpers import to_ascii20
66

77
filters_bp = Blueprint("filters", __name__)
88

99
############### filters ##################
1010

1111

12-
@contextfilter
12+
@pass_context
1313
@filters_bp.app_template_filter("ascii20")
1414
def ascii20(context, name):
1515
return to_ascii20(name)
1616

1717

18-
@contextfilter
18+
@pass_context
1919
@filters_bp.app_template_filter("unique_len")
2020
def unique_len(context, arr):
2121
return len(set(arr))
2222

2323

24-
@contextfilter
24+
@pass_context
2525
@filters_bp.app_template_filter("datetime")
2626
def timedatetime(context, s):
2727
return format(datetime.fromtimestamp(s), "%d.%m.%Y %H:%M")
2828

2929

30-
@contextfilter
30+
@pass_context
3131
@filters_bp.app_template_filter("btcamount")
3232
def btcamount(context, value):
3333
if value is None:
@@ -38,14 +38,14 @@ def btcamount(context, value):
3838
return "{:,.8f}".format(value).rstrip("0").rstrip(".")
3939

4040

41-
@contextfilter
41+
@pass_context
4242
@filters_bp.app_template_filter("btc2sat")
4343
def btc2sat(context, value):
4444
value = int(round(float(value) * 1e8))
4545
return f"{value}"
4646

4747

48-
@contextfilter
48+
@pass_context
4949
@filters_bp.app_template_filter("feerate")
5050
def feerate(context, value):
5151
value = float(value) * 1e8
@@ -56,7 +56,7 @@ def feerate(context, value):
5656
return "{:,.2f}".format(value).rstrip("0").rstrip(".")
5757

5858

59-
@contextfilter
59+
@pass_context
6060
@filters_bp.app_template_filter("btcunitamount")
6161
def btcunitamount(context, value):
6262
if app.specter.hide_sensitive_info:
@@ -71,7 +71,7 @@ def btcunitamount(context, value):
7171
return "{:,.0f}".format(round(value * 1e8))
7272

7373

74-
@contextfilter
74+
@pass_context
7575
@filters_bp.app_template_filter("altunit")
7676
def altunit(context, value):
7777
if app.specter.hide_sensitive_info:
@@ -93,14 +93,14 @@ def altunit(context, value):
9393
return ""
9494

9595

96-
@contextfilter
96+
@pass_context
9797
@filters_bp.app_template_filter("bytessize")
9898
def bytessize(context, value):
9999
value = float(value)
100100
return "{:,.0f}".format(value / float(1 << 30)) + " GB"
101101

102102

103-
@contextfilter
103+
@pass_context
104104
@filters_bp.app_template_filter("assetlabel")
105105
def assetlabel(context, asset):
106106
if app.specter.hide_sensitive_info:

src/cryptoadvance/specter/templates/includes/tx-table.html

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,12 +1003,15 @@ <h1>{{ _("Export transactions to CSV") }}</h1>
10031003
txRow.addEventListener('txRowSelected', (e) => {
10041004
let selectedRow = e.target;
10051005
if (e.detail.selected) {
1006-
this.selectedRows.push({
1007-
txid: e.detail.txid,
1008-
vout: e.detail.vout,
1009-
amount: e.detail.amount.toFixed(8),
1010-
locked: e.detail.locked,
1011-
});
1006+
// Good idea to Check whether it's already in before adding (had some issues with that)
1007+
if (this.selectedRows.filter(t => t.txid == e.detail.txid).length == 0) {
1008+
this.selectedRows.push({
1009+
txid: e.detail.txid,
1010+
vout: e.detail.vout,
1011+
amount: e.detail.amount.toFixed(8),
1012+
locked: e.detail.locked,
1013+
});
1014+
}
10121015
} else {
10131016
// Remove unselected rows from array
10141017
this.selectedRows = this.selectedRows.filter(row => !(row.txid === e.detail.txid && row.vout === e.detail.vout))

src/cryptoadvance/specter/wallet.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -970,7 +970,10 @@ def delete_pending_psbt(self, txid, save=True):
970970

971971
def toggle_freeze_utxo(self, utxo_list):
972972
# utxo = ["txid:vout", "txid:vout"]
973+
utxo_list_done = [] # Preventing Duplicates server-side
973974
for utxo in utxo_list:
975+
if utxo in utxo_list_done:
976+
continue
974977
if utxo in self.frozen_utxo:
975978
try:
976979
self.rpc.lockunspent(
@@ -981,6 +984,7 @@ def toggle_freeze_utxo(self, utxo_list):
981984
# UTXO was spent
982985
print(e)
983986
pass
987+
logger.info(f"Unfreeze {utxo}")
984988
self.frozen_utxo.remove(utxo)
985989
else:
986990
try:
@@ -992,7 +996,9 @@ def toggle_freeze_utxo(self, utxo_list):
992996
# UTXO was spent
993997
print(e)
994998
pass
999+
logger.info(f"Freeze {utxo}")
9951000
self.frozen_utxo.append(utxo)
1001+
utxo_list_done.append(utxo)
9961002

9971003
self.save_to_file()
9981004

0 commit comments

Comments
 (0)