hive-nectar 0.0.6__py3-none-any.whl → 0.0.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of hive-nectar might be problematic. Click here for more details.
- {hive_nectar-0.0.6.dist-info → hive_nectar-0.0.9.dist-info}/METADATA +5 -3
- hive_nectar-0.0.9.dist-info/RECORD +91 -0
- nectar/__init__.py +1 -0
- nectar/account.py +44 -48
- nectar/amount.py +6 -11
- nectar/block.py +8 -9
- nectar/blockchain.py +4 -5
- nectar/blockchaininstance.py +4 -4
- nectar/blockchainobject.py +5 -6
- nectar/blurt.py +3 -4
- nectar/cli.py +14 -14
- nectar/comment.py +10 -11
- nectar/community.py +527 -181
- nectar/conveyor.py +3 -4
- nectar/exceptions.py +30 -24
- nectar/hive.py +3 -4
- nectar/hivesigner.py +2 -2
- nectar/imageuploader.py +2 -3
- nectar/nodelist.py +83 -7
- nectar/price.py +6 -13
- nectar/rc.py +1 -2
- nectar/steem.py +3 -4
- nectar/storage.py +3 -4
- nectar/transactionbuilder.py +12 -3
- nectar/version.py +1 -1
- nectar/vote.py +8 -9
- nectar/wallet.py +1 -1
- nectarapi/__init__.py +1 -0
- nectarapi/exceptions.py +20 -14
- nectarapi/version.py +1 -1
- nectarbase/__init__.py +1 -0
- nectarbase/ledgertransactions.py +2 -3
- nectarbase/memo.py +9 -10
- nectarbase/objects.py +4 -5
- nectarbase/operations.py +3 -7
- nectarbase/version.py +1 -1
- nectargraphenebase/__init__.py +1 -1
- nectargraphenebase/account.py +16 -37
- nectargraphenebase/base58.py +5 -8
- nectargraphenebase/bip32.py +5 -11
- nectargraphenebase/bip38.py +6 -7
- nectargraphenebase/ecdsasig.py +32 -37
- nectargraphenebase/objects.py +6 -7
- nectargraphenebase/operations.py +2 -0
- nectargraphenebase/signedtransactions.py +10 -9
- nectargraphenebase/types.py +9 -19
- nectargraphenebase/unsignedtransactions.py +21 -28
- nectargraphenebase/version.py +1 -1
- nectarstorage/__init__.py +21 -1
- nectarstorage/masterpassword.py +2 -3
- nectarstorage/sqlite.py +1 -1
- hive_nectar-0.0.6.dist-info/RECORD +0 -92
- nectargraphenebase/py23.py +0 -38
- {hive_nectar-0.0.6.dist-info → hive_nectar-0.0.9.dist-info}/WHEEL +0 -0
- {hive_nectar-0.0.6.dist-info → hive_nectar-0.0.9.dist-info}/entry_points.txt +0 -0
- {hive_nectar-0.0.6.dist-info → hive_nectar-0.0.9.dist-info}/licenses/LICENSE.txt +0 -0
nectar/blockchain.py
CHANGED
|
@@ -5,13 +5,13 @@ import logging
|
|
|
5
5
|
import math
|
|
6
6
|
import time
|
|
7
7
|
from datetime import timedelta
|
|
8
|
+
from queue import Queue
|
|
8
9
|
from threading import Event, Thread
|
|
9
10
|
from time import sleep
|
|
10
11
|
|
|
11
12
|
import nectar as stm
|
|
12
13
|
from nectar.instance import shared_blockchain_instance
|
|
13
14
|
from nectarapi.exceptions import UnknownTransaction
|
|
14
|
-
from nectargraphenebase.py23 import py23_bytes
|
|
15
15
|
|
|
16
16
|
from .block import Block, BlockHeader
|
|
17
17
|
from .exceptions import (
|
|
@@ -23,12 +23,11 @@ from .exceptions import (
|
|
|
23
23
|
from .utils import addTzInfo
|
|
24
24
|
|
|
25
25
|
log = logging.getLogger(__name__)
|
|
26
|
-
from queue import Queue
|
|
27
26
|
|
|
28
27
|
FUTURES_MODULE = None
|
|
29
28
|
if not FUTURES_MODULE:
|
|
30
29
|
try:
|
|
31
|
-
from concurrent.futures import ThreadPoolExecutor, as_completed
|
|
30
|
+
from concurrent.futures import ThreadPoolExecutor, as_completed
|
|
32
31
|
|
|
33
32
|
FUTURES_MODULE = "futures"
|
|
34
33
|
# FUTURES_MODULE = None
|
|
@@ -339,7 +338,7 @@ class Blockchain(object):
|
|
|
339
338
|
>>> from datetime import datetime
|
|
340
339
|
>>> blockchain = Blockchain()
|
|
341
340
|
>>> block_num = blockchain.get_estimated_block_num(datetime(2019, 6, 18, 5 ,8, 27))
|
|
342
|
-
>>> block_num ==
|
|
341
|
+
>>> block_num == 33898182
|
|
343
342
|
True
|
|
344
343
|
|
|
345
344
|
"""
|
|
@@ -961,7 +960,7 @@ class Blockchain(object):
|
|
|
961
960
|
op = event["value"]
|
|
962
961
|
event = [op_type, op]
|
|
963
962
|
data = json.dumps(event, sort_keys=True)
|
|
964
|
-
return hashlib.sha1(
|
|
963
|
+
return hashlib.sha1(bytes(data, "utf-8")).hexdigest()
|
|
965
964
|
|
|
966
965
|
def get_all_accounts(self, start="", stop="", steps=1e3, limit=-1, **kwargs):
|
|
967
966
|
"""Yields account names between start and stop.
|
nectar/blockchaininstance.py
CHANGED
|
@@ -328,7 +328,7 @@ class BlockChainInstance(object):
|
|
|
328
328
|
self.data["last_node"] = self.rpc.url
|
|
329
329
|
try:
|
|
330
330
|
self.data["feed_history"] = self.get_feed_history(False)
|
|
331
|
-
except:
|
|
331
|
+
except Exception:
|
|
332
332
|
self.data["feed_history"] = None
|
|
333
333
|
self.data["get_feed_history"] = self.data["feed_history"]
|
|
334
334
|
elif chain_property == "hardfork_properties":
|
|
@@ -348,7 +348,7 @@ class BlockChainInstance(object):
|
|
|
348
348
|
self.data["last_node"] = self.rpc.url
|
|
349
349
|
try:
|
|
350
350
|
self.data["hardfork_properties"] = self.get_hardfork_properties(False)
|
|
351
|
-
except:
|
|
351
|
+
except Exception:
|
|
352
352
|
self.data["hardfork_properties"] = None
|
|
353
353
|
elif chain_property == "witness_schedule":
|
|
354
354
|
if not self.offline:
|
|
@@ -430,7 +430,7 @@ class BlockChainInstance(object):
|
|
|
430
430
|
"current_reserve_ratio": props["current_reserve_ratio"],
|
|
431
431
|
"max_virtual_bandwidth": props["max_virtual_bandwidth"],
|
|
432
432
|
}
|
|
433
|
-
except:
|
|
433
|
+
except Exception:
|
|
434
434
|
reserve_ratio = {
|
|
435
435
|
"id": 0,
|
|
436
436
|
"average_block_size": None,
|
|
@@ -541,7 +541,7 @@ class BlockChainInstance(object):
|
|
|
541
541
|
return None
|
|
542
542
|
try:
|
|
543
543
|
return self.rpc.get_network(props=config)
|
|
544
|
-
except:
|
|
544
|
+
except Exception:
|
|
545
545
|
return known_chains["HIVE"]
|
|
546
546
|
|
|
547
547
|
def get_median_price(self, use_stored_data=True):
|
nectar/blockchainobject.py
CHANGED
|
@@ -4,7 +4,6 @@ import threading
|
|
|
4
4
|
from datetime import datetime, timedelta, timezone
|
|
5
5
|
|
|
6
6
|
from nectar.instance import shared_blockchain_instance
|
|
7
|
-
from nectargraphenebase.py23 import integer_types, string_types
|
|
8
7
|
|
|
9
8
|
|
|
10
9
|
class ObjectCache(dict):
|
|
@@ -115,7 +114,7 @@ class BlockchainObject(dict):
|
|
|
115
114
|
if isinstance(data, (list, set, tuple)):
|
|
116
115
|
raise ValueError("Cannot interpret lists! Please load elements individually!")
|
|
117
116
|
|
|
118
|
-
if id_item and isinstance(id_item,
|
|
117
|
+
if id_item and isinstance(id_item, str):
|
|
119
118
|
self.id_item = id_item
|
|
120
119
|
else:
|
|
121
120
|
self.id_item = "id"
|
|
@@ -125,7 +124,7 @@ class BlockchainObject(dict):
|
|
|
125
124
|
elif isinstance(data, dict):
|
|
126
125
|
self.identifier = data.get(self.id_item)
|
|
127
126
|
super(BlockchainObject, self).__init__(data)
|
|
128
|
-
elif isinstance(data,
|
|
127
|
+
elif isinstance(data, int):
|
|
129
128
|
# This is only for block number basically
|
|
130
129
|
self.identifier = data
|
|
131
130
|
if not lazy and not self.cached:
|
|
@@ -134,7 +133,7 @@ class BlockchainObject(dict):
|
|
|
134
133
|
self[self.id_item] = data
|
|
135
134
|
# Set identifier again as it is overwritten in super() in refresh()
|
|
136
135
|
self.identifier = data
|
|
137
|
-
elif isinstance(data,
|
|
136
|
+
elif isinstance(data, str):
|
|
138
137
|
self.identifier = data
|
|
139
138
|
if not lazy and not self.cached:
|
|
140
139
|
self.refresh()
|
|
@@ -159,9 +158,9 @@ class BlockchainObject(dict):
|
|
|
159
158
|
BlockchainObject._cache = ObjectCache()
|
|
160
159
|
|
|
161
160
|
def test_valid_objectid(self, i):
|
|
162
|
-
if isinstance(i,
|
|
161
|
+
if isinstance(i, str):
|
|
163
162
|
return True
|
|
164
|
-
elif isinstance(i,
|
|
163
|
+
elif isinstance(i, int):
|
|
165
164
|
return True
|
|
166
165
|
else:
|
|
167
166
|
return False
|
nectar/blurt.py
CHANGED
|
@@ -6,7 +6,6 @@ from datetime import date, datetime, timezone
|
|
|
6
6
|
from nectar.blockchaininstance import BlockChainInstance
|
|
7
7
|
from nectar.constants import STEEM_100_PERCENT, STEEM_VOTE_REGENERATION_SECONDS
|
|
8
8
|
from nectargraphenebase.chains import known_chains
|
|
9
|
-
from nectargraphenebase.py23 import string_types
|
|
10
9
|
|
|
11
10
|
from .amount import Amount
|
|
12
11
|
from .utils import formatToTimeStamp
|
|
@@ -124,7 +123,7 @@ class Blurt(BlockChainInstance):
|
|
|
124
123
|
return known_chains["BLURT"]
|
|
125
124
|
try:
|
|
126
125
|
return self.rpc.get_network(props=config)
|
|
127
|
-
except:
|
|
126
|
+
except Exception:
|
|
128
127
|
return known_chains["BLURT"]
|
|
129
128
|
|
|
130
129
|
def rshares_to_token_backed_dollar(
|
|
@@ -378,7 +377,7 @@ class Blurt(BlockChainInstance):
|
|
|
378
377
|
"""
|
|
379
378
|
if isinstance(sbd, Amount):
|
|
380
379
|
sbd = Amount(sbd, blockchain_instance=self)
|
|
381
|
-
elif isinstance(sbd,
|
|
380
|
+
elif isinstance(sbd, str):
|
|
382
381
|
sbd = Amount(sbd, blockchain_instance=self)
|
|
383
382
|
else:
|
|
384
383
|
sbd = Amount(sbd, self.token_symbol, blockchain_instance=self)
|
|
@@ -502,7 +501,7 @@ class Blurt(BlockChainInstance):
|
|
|
502
501
|
"""
|
|
503
502
|
if isinstance(sbd, Amount):
|
|
504
503
|
sbd = Amount(sbd, blockchain_instance=self)
|
|
505
|
-
elif isinstance(sbd,
|
|
504
|
+
elif isinstance(sbd, str):
|
|
506
505
|
sbd = Amount(sbd, blockchain_instance=self)
|
|
507
506
|
else:
|
|
508
507
|
sbd = Amount(sbd, self.token_symbol, blockchain_instance=self)
|
nectar/cli.py
CHANGED
|
@@ -151,7 +151,7 @@ def unlock_wallet(stm, password=None, allow_wif=True):
|
|
|
151
151
|
if stm.wallet.is_encrypted():
|
|
152
152
|
try:
|
|
153
153
|
stm.wallet.unlock(password)
|
|
154
|
-
except:
|
|
154
|
+
except Exception:
|
|
155
155
|
try:
|
|
156
156
|
from nectarstorage import InRamPlainKeyStore
|
|
157
157
|
|
|
@@ -159,7 +159,7 @@ def unlock_wallet(stm, password=None, allow_wif=True):
|
|
|
159
159
|
stm.wallet.setKeys([password])
|
|
160
160
|
print("Wif accepted!")
|
|
161
161
|
return True
|
|
162
|
-
except:
|
|
162
|
+
except Exception:
|
|
163
163
|
if allow_wif:
|
|
164
164
|
raise exceptions.WrongMasterPasswordException(
|
|
165
165
|
"entered password is not a valid password/wif"
|
|
@@ -173,13 +173,13 @@ def unlock_wallet(stm, password=None, allow_wif=True):
|
|
|
173
173
|
stm.wallet.setKeys([password])
|
|
174
174
|
print("Wif accepted!")
|
|
175
175
|
return True
|
|
176
|
-
except:
|
|
176
|
+
except Exception:
|
|
177
177
|
try:
|
|
178
178
|
from nectarstorage import SqliteEncryptedKeyStore
|
|
179
179
|
|
|
180
180
|
stm.wallet.store = SqliteEncryptedKeyStore(config=stm.config)
|
|
181
181
|
stm.wallet.unlock(password)
|
|
182
|
-
except:
|
|
182
|
+
except Exception:
|
|
183
183
|
if allow_wif:
|
|
184
184
|
raise exceptions.WrongMasterPasswordException(
|
|
185
185
|
"entered password is not a valid password/wif"
|
|
@@ -231,7 +231,7 @@ def unlock_token_wallet(stm, sc2, password=None):
|
|
|
231
231
|
)
|
|
232
232
|
try:
|
|
233
233
|
sc2.unlock(password)
|
|
234
|
-
except:
|
|
234
|
+
except Exception:
|
|
235
235
|
raise exceptions.WrongMasterPasswordException(
|
|
236
236
|
"entered password is not a valid password"
|
|
237
237
|
)
|
|
@@ -1539,7 +1539,7 @@ def powerup(amount, account, to, export):
|
|
|
1539
1539
|
acc = Account(account, blockchain_instance=stm)
|
|
1540
1540
|
try:
|
|
1541
1541
|
amount = float(amount)
|
|
1542
|
-
except:
|
|
1542
|
+
except Exception:
|
|
1543
1543
|
amount = str(amount)
|
|
1544
1544
|
tx = acc.transfer_to_vesting(amount, to=to)
|
|
1545
1545
|
if stm.unsigned and stm.nobroadcast and stm.steemconnect is not None:
|
|
@@ -1570,7 +1570,7 @@ def powerdown(amount, account, export):
|
|
|
1570
1570
|
acc = Account(account, blockchain_instance=stm)
|
|
1571
1571
|
try:
|
|
1572
1572
|
amount = float(amount)
|
|
1573
|
-
except:
|
|
1573
|
+
except Exception:
|
|
1574
1574
|
amount = str(amount)
|
|
1575
1575
|
tx = acc.withdraw_vesting(amount)
|
|
1576
1576
|
if stm.unsigned and stm.nobroadcast and stm.steemconnect is not None:
|
|
@@ -1602,7 +1602,7 @@ def delegate(amount, to_account, account, export):
|
|
|
1602
1602
|
acc = Account(account, blockchain_instance=stm)
|
|
1603
1603
|
try:
|
|
1604
1604
|
amount = float(amount)
|
|
1605
|
-
except:
|
|
1605
|
+
except Exception:
|
|
1606
1606
|
amount = Amount(str(amount), blockchain_instance=stm)
|
|
1607
1607
|
if amount.symbol == stm.token_symbol and isinstance(stm, Steem):
|
|
1608
1608
|
amount = stm.sp_to_vests(float(amount))
|
|
@@ -1747,7 +1747,7 @@ def convert(amount, account, export):
|
|
|
1747
1747
|
acc = Account(account, blockchain_instance=stm)
|
|
1748
1748
|
try:
|
|
1749
1749
|
amount = float(amount)
|
|
1750
|
-
except:
|
|
1750
|
+
except Exception:
|
|
1751
1751
|
amount = str(amount)
|
|
1752
1752
|
tx = acc.convert(amount)
|
|
1753
1753
|
if stm.unsigned and stm.nobroadcast and stm.steemconnect is not None:
|
|
@@ -2760,7 +2760,7 @@ def decrypt(memo, account, output, info, text, binary):
|
|
|
2760
2760
|
else:
|
|
2761
2761
|
print("to: %s" % str(to_key))
|
|
2762
2762
|
print("nonce: %s" % nonce)
|
|
2763
|
-
except:
|
|
2763
|
+
except Exception:
|
|
2764
2764
|
print("from: %s" % str(from_key))
|
|
2765
2765
|
print("to: %s" % str(to_key))
|
|
2766
2766
|
print("nonce: %s" % nonce)
|
|
@@ -3031,7 +3031,7 @@ def createpost(
|
|
|
3031
3031
|
community = input("community account (name or title): ")
|
|
3032
3032
|
try:
|
|
3033
3033
|
community = Community(community)
|
|
3034
|
-
except:
|
|
3034
|
+
except Exception:
|
|
3035
3035
|
c = Communities(limit=1000)
|
|
3036
3036
|
comm_cand = c.search_title(community)
|
|
3037
3037
|
if len(comm_cand) == 0:
|
|
@@ -3264,7 +3264,7 @@ def post(
|
|
|
3264
3264
|
if permlink is not None:
|
|
3265
3265
|
try:
|
|
3266
3266
|
comment = Comment(construct_authorperm(author, permlink), blockchain_instance=stm)
|
|
3267
|
-
except:
|
|
3267
|
+
except Exception:
|
|
3268
3268
|
comment = None
|
|
3269
3269
|
else:
|
|
3270
3270
|
comment = None
|
|
@@ -3291,7 +3291,7 @@ def post(
|
|
|
3291
3291
|
permlink = derive_permlink(title, with_suffix=False)
|
|
3292
3292
|
try:
|
|
3293
3293
|
comment = Comment(construct_authorperm(author, permlink), blockchain_instance=stm)
|
|
3294
|
-
except:
|
|
3294
|
+
except Exception:
|
|
3295
3295
|
comment = None
|
|
3296
3296
|
if comment is None:
|
|
3297
3297
|
json_metadata = {}
|
|
@@ -5768,7 +5768,7 @@ def info(objects):
|
|
|
5768
5768
|
Amount(median_price["base"], blockchain_instance=stm).amount
|
|
5769
5769
|
/ Amount(median_price["quote"], blockchain_instance=stm).amount
|
|
5770
5770
|
)
|
|
5771
|
-
except:
|
|
5771
|
+
except Exception:
|
|
5772
5772
|
price = None
|
|
5773
5773
|
for key in info:
|
|
5774
5774
|
if isinstance(info[key], dict) and "amount" in info[key]:
|
nectar/comment.py
CHANGED
|
@@ -10,7 +10,6 @@ from nectar.constants import (
|
|
|
10
10
|
STEEM_REVERSE_AUCTION_WINDOW_SECONDS_HF21,
|
|
11
11
|
)
|
|
12
12
|
from nectarbase import operations
|
|
13
|
-
from nectargraphenebase.py23 import bytes_types, integer_types, string_types
|
|
14
13
|
|
|
15
14
|
from .account import Account
|
|
16
15
|
from .amount import Amount
|
|
@@ -74,7 +73,7 @@ class Comment(BlockchainObject):
|
|
|
74
73
|
elif kwargs.get("hive_instance"):
|
|
75
74
|
blockchain_instance = kwargs["hive_instance"]
|
|
76
75
|
self.blockchain = blockchain_instance or shared_blockchain_instance()
|
|
77
|
-
if isinstance(authorperm,
|
|
76
|
+
if isinstance(authorperm, str) and authorperm != "":
|
|
78
77
|
[author, permlink] = resolve_authorperm(authorperm)
|
|
79
78
|
self["id"] = 0
|
|
80
79
|
self["author"] = author
|
|
@@ -104,7 +103,7 @@ class Comment(BlockchainObject):
|
|
|
104
103
|
"max_cashout_time",
|
|
105
104
|
]
|
|
106
105
|
for p in parse_times:
|
|
107
|
-
if p in comment and isinstance(comment.get(p),
|
|
106
|
+
if p in comment and isinstance(comment.get(p), str):
|
|
108
107
|
comment[p] = formatTimeString(comment.get(p, "1970-01-01T00:00:00"))
|
|
109
108
|
# Parse Amounts
|
|
110
109
|
sbd_amounts = [
|
|
@@ -116,7 +115,7 @@ class Comment(BlockchainObject):
|
|
|
116
115
|
"promoted",
|
|
117
116
|
]
|
|
118
117
|
for p in sbd_amounts:
|
|
119
|
-
if p in comment and isinstance(comment.get(p), (
|
|
118
|
+
if p in comment and isinstance(comment.get(p), (str, list, dict)):
|
|
120
119
|
value = comment.get(p, "0.000 %s" % (self.blockchain.backed_token_symbol))
|
|
121
120
|
if (
|
|
122
121
|
isinstance(value, str)
|
|
@@ -129,7 +128,7 @@ class Comment(BlockchainObject):
|
|
|
129
128
|
meta_str = comment.get("json_metadata", "{}")
|
|
130
129
|
if meta_str == "{}":
|
|
131
130
|
comment["json_metadata"] = meta_str
|
|
132
|
-
if isinstance(meta_str, (
|
|
131
|
+
if isinstance(meta_str, (str, bytes, bytearray)):
|
|
133
132
|
try:
|
|
134
133
|
comment["json_metadata"] = json.loads(meta_str)
|
|
135
134
|
except Exception:
|
|
@@ -147,20 +146,20 @@ class Comment(BlockchainObject):
|
|
|
147
146
|
"net_rshares",
|
|
148
147
|
]
|
|
149
148
|
for p in parse_int:
|
|
150
|
-
if p in comment and isinstance(comment.get(p),
|
|
149
|
+
if p in comment and isinstance(comment.get(p), str):
|
|
151
150
|
comment[p] = int(comment.get(p, "0"))
|
|
152
151
|
|
|
153
152
|
if "active_votes" in comment:
|
|
154
153
|
new_active_votes = []
|
|
155
154
|
for vote in comment["active_votes"]:
|
|
156
|
-
if "time" in vote and isinstance(vote.get("time"),
|
|
155
|
+
if "time" in vote and isinstance(vote.get("time"), str):
|
|
157
156
|
vote["time"] = formatTimeString(vote.get("time", "1970-01-01T00:00:00"))
|
|
158
157
|
parse_int = [
|
|
159
158
|
"rshares",
|
|
160
159
|
"reputation",
|
|
161
160
|
]
|
|
162
161
|
for p in parse_int:
|
|
163
|
-
if p in vote and isinstance(vote.get(p),
|
|
162
|
+
if p in vote and isinstance(vote.get(p), str):
|
|
164
163
|
try:
|
|
165
164
|
vote[p] = int(vote.get(p, "0"))
|
|
166
165
|
except ValueError:
|
|
@@ -263,7 +262,7 @@ class Comment(BlockchainObject):
|
|
|
263
262
|
"net_rshares",
|
|
264
263
|
]
|
|
265
264
|
for p in parse_int:
|
|
266
|
-
if p in output and isinstance(output[p],
|
|
265
|
+
if p in output and isinstance(output[p], int):
|
|
267
266
|
output[p] = str(output[p])
|
|
268
267
|
if "active_votes" in output:
|
|
269
268
|
new_active_votes = []
|
|
@@ -279,7 +278,7 @@ class Comment(BlockchainObject):
|
|
|
279
278
|
"reputation",
|
|
280
279
|
]
|
|
281
280
|
for p in parse_int:
|
|
282
|
-
if p in vote and isinstance(vote[p],
|
|
281
|
+
if p in vote and isinstance(vote[p], int):
|
|
283
282
|
vote[p] = str(vote[p])
|
|
284
283
|
new_active_votes.append(vote)
|
|
285
284
|
output["active_votes"] = new_active_votes
|
|
@@ -685,7 +684,7 @@ class Comment(BlockchainObject):
|
|
|
685
684
|
)
|
|
686
685
|
elif pending_payout_value is None:
|
|
687
686
|
pending_payout_value = 0
|
|
688
|
-
elif isinstance(pending_payout_value, (float,
|
|
687
|
+
elif isinstance(pending_payout_value, (float, int)):
|
|
689
688
|
pending_payout_value = Amount(
|
|
690
689
|
pending_payout_value,
|
|
691
690
|
self.blockchain.backed_token_symbol,
|