Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_ne(self):
p1 = Price(10.0, "STEEM/SBD")
p2 = Price(5.0, "STEEM/SBD")
self.assertTrue(p1 != p2)
self.assertTrue(p1 == p1)
self.assertTrue(p1 != 5)
self.assertTrue(p1 == 10)
p3 = p1 * p2
p4 = p3.as_base("SBD")
p4_2 = p3.as_quote("VESTS")
self.assertEqual(p4["quote"]["symbol"], "VESTS")
self.assertEqual(p4["base"]["symbol"], "SBD")
# 10 STEEM/SBD * 0.2 VESTS/STEEM = 50 VESTS/SBD = 0.02 SBD/VESTS
self.assertEqual(float(p4), 0.02)
self.assertEqual(p4_2["quote"]["symbol"], "VESTS")
self.assertEqual(p4_2["base"]["symbol"], "SBD")
self.assertEqual(float(p4_2), 0.02)
p3 = p1 * 5
self.assertEqual(float(p3), 50)
# Inline multiplication
p5 = Price(10.0, "STEEM/SBD")
p5 *= p2
p4 = p5.as_base("SBD")
self.assertEqual(p4["quote"]["symbol"], "VESTS")
self.assertEqual(p4["base"]["symbol"], "SBD")
# 10 STEEM/SBD * 0.2 VESTS/STEEM = 2 VESTS/SBD = 0.02 SBD/VESTS
self.assertEqual(float(p4), 0.02)
p6 = Price(10.0, "STEEM/SBD")
p6 *= 5
self.assertEqual(float(p6), 50)
def test_multiplication(self):
p1 = Price(10.0, "STEEM/SBD")
p2 = Price(5.0, "VESTS/STEEM")
p3 = p1 * p2
p4 = p3.as_base("SBD")
p4_2 = p3.as_quote("VESTS")
self.assertEqual(p4["quote"]["symbol"], "VESTS")
self.assertEqual(p4["base"]["symbol"], "SBD")
# 10 STEEM/SBD * 0.2 VESTS/STEEM = 50 VESTS/SBD = 0.02 SBD/VESTS
self.assertEqual(float(p4), 0.02)
self.assertEqual(p4_2["quote"]["symbol"], "VESTS")
self.assertEqual(p4_2["base"]["symbol"], "SBD")
self.assertEqual(float(p4_2), 0.02)
p3 = p1 * 5
self.assertEqual(float(p3), 50)
# Inline multiplication
def test_multiplication(self):
p1 = Price(10.0, "STEEM/SBD")
p2 = Price(5.0, "VESTS/STEEM")
p3 = p1 * p2
p4 = p3.as_base("SBD")
p4_2 = p3.as_quote("VESTS")
self.assertEqual(p4["quote"]["symbol"], "VESTS")
self.assertEqual(p4["base"]["symbol"], "SBD")
# 10 STEEM/SBD * 0.2 VESTS/STEEM = 50 VESTS/SBD = 0.02 SBD/VESTS
self.assertEqual(float(p4), 0.02)
self.assertEqual(p4_2["quote"]["symbol"], "VESTS")
self.assertEqual(p4_2["base"]["symbol"], "SBD")
self.assertEqual(float(p4_2), 0.02)
p3 = p1 * 5
self.assertEqual(float(p3), 50)
# Inline multiplication
p5 = Price(10.0, "STEEM/SBD")
def test_ne(self):
p1 = Price(10.0, "STEEM/SBD")
p2 = Price(5.0, "STEEM/SBD")
self.assertTrue(p1 != p2)
self.assertTrue(p1 == p1)
self.assertTrue(p1 != 5)
self.assertTrue(p1 == 10)
'pending_rewards': True, 'unclaimed_rewards': 0.245 STEEM,
'active_votes': {
'leprechaun': 0.006 STEEM, 'timcliff': 0.186 STEEM,
'st3llar': 0.000 STEEM, 'crokkon': 0.015 STEEM, 'feedyourminnows': 0.003 STEEM,
'isnochys': 0.003 STEEM, 'loshcat': 0.001 STEEM, 'greenorange': 0.000 STEEM,
'qustodian': 0.123 STEEM, 'jpphotography': 0.002 STEEM, 'thinkingmind': 0.001 STEEM,
'oups': 0.006 STEEM, 'mattockfs': 0.001 STEEM, 'holger80': 0.003 STEEM, 'michaelizer': 0.004 STEEM,
'flugschwein': 0.010 STEEM, 'ulisessabeque': 0.000 STEEM, 'hakancelik': 0.002 STEEM, 'sbi2': 0.008 STEEM,
'zcool': 0.000 STEEM, 'steemhq': 0.002 STEEM, 'rowdiya': 0.000 STEEM, 'qurator-tier-1-2': 0.012 STEEM
}
}
"""
median_hist = self.steem.get_current_median_history()
if median_hist is not None:
median_price = Price(median_hist, steem_instance=self.steem)
pending_rewards = False
if "active_votes" in self:
active_votes_list = self["active_votes"]
else:
active_votes_list = self.get_votes()
if "total_vote_weight" in self:
total_vote_weight = self["total_vote_weight"]
else:
total_vote_weight = 0
for vote in active_votes_list:
total_vote_weight += vote["weight"]
if not self["allow_curation_rewards"] or not self.is_pending():
max_rewards = Amount(0, self.steem.steem_symbol, steem_instance=self.steem)
unclaimed_rewards = max_rewards.copy()
else:
def __mul__(self, other):
from .price import Price
a = self.copy()
if isinstance(other, Amount):
check_asset(other["asset"], self["asset"], self.steem)
a["amount"] *= other["amount"]
elif isinstance(other, Price):
if not self["asset"] == other["quote"]["asset"]:
raise AssertionError()
a = self.copy() * other["price"]
a["asset"] = other["base"]["asset"].copy()
a["symbol"] = other["base"]["asset"]["symbol"]
else:
a["amount"] *= Decimal(other)
if self.fixed_point_arithmetic:
a["amount"] = quantize(a["amount"], self["asset"]["precision"])
return a
{
'pending_rewards': True, 'unclaimed_rewards': 0.245 STEEM,
'active_votes': {
'leprechaun': 0.006 STEEM, 'timcliff': 0.186 STEEM,
'st3llar': 0.000 STEEM, 'crokkon': 0.015 STEEM, 'feedyourminnows': 0.003 STEEM,
'isnochys': 0.003 STEEM, 'loshcat': 0.001 STEEM, 'greenorange': 0.000 STEEM,
'qustodian': 0.123 STEEM, 'jpphotography': 0.002 STEEM, 'thinkingmind': 0.001 STEEM,
'oups': 0.006 STEEM, 'mattockfs': 0.001 STEEM, 'holger80': 0.003 STEEM, 'michaelizer': 0.004 STEEM,
'flugschwein': 0.010 STEEM, 'ulisessabeque': 0.000 STEEM, 'hakancelik': 0.002 STEEM, 'sbi2': 0.008 STEEM,
'zcool': 0.000 STEEM, 'steemhq': 0.002 STEEM, 'rowdiya': 0.000 STEEM, 'qurator-tier-1-2': 0.012 STEEM
}
}
"""
median_price = Price(self.steem.get_current_median_history(), steem_instance=self.steem)
pending_rewards = False
total_vote_weight = self["total_vote_weight"]
if not self["allow_curation_rewards"]:
max_rewards = Amount(0, self.steem.steem_symbol, steem_instance=self.steem)
unclaimed_rewards = max_rewards.copy()
elif not self.is_pending():
max_rewards = Amount(self["curator_payout_value"], steem_instance=self.steem)
unclaimed_rewards = Amount(self["total_payout_value"], steem_instance=self.steem) * 0.25 - max_rewards
total_vote_weight = 0
for vote in self["active_votes"]:
total_vote_weight += int(vote["weight"])
else:
if pending_payout_value is None:
pending_payout_value = Amount(self["pending_payout_value"], steem_instance=self.steem)
elif isinstance(pending_payout_value, (float, integer_types)):
pending_payout_value = Amount(pending_payout_value, self.steem.sbd_symbol, steem_instance=self.steem)
'payout_SP': 0.912 STEEM,
'payout_SBD': 3.583 SBD,
'total_payout_SBD': 7.166 SBD
}
"""
if not self.is_pending():
total_payout = Amount(self["total_payout_value"], steem_instance=self.steem)
curator_payout = Amount(self["curator_payout_value"], steem_instance=self.steem)
author_payout = total_payout - curator_payout
return {'pending_rewards': False,
"payout_SP": Amount(0, self.steem.steem_symbol, steem_instance=self.steem),
"payout_SBD": Amount(0, self.steem.sbd_symbol, steem_instance=self.steem),
"total_payout_SBD": author_payout}
median_price = Price(self.steem.get_current_median_history(), steem_instance=self.steem)
beneficiaries_pct = self.get_beneficiaries_pct()
curation_tokens = self.reward * 0.25
author_tokens = self.reward - curation_tokens
curation_rewards = self.get_curation_rewards()
author_tokens += median_price * curation_rewards['unclaimed_rewards']
benefactor_tokens = author_tokens * beneficiaries_pct / 100.
author_tokens -= benefactor_tokens
sbd_steem = author_tokens * self["percent_steem_dollars"] / 20000.
vesting_steem = median_price.as_base(self.steem.steem_symbol) * (author_tokens - sbd_steem)
return {'pending_rewards': True, "payout_SP": vesting_steem, "payout_SBD": sbd_steem, "total_payout_SBD": author_tokens}
'pending_rewards': True,
'payout_SP': 0.912 STEEM,
'payout_SBD': 3.583 SBD,
'total_payout_SBD': 7.166 SBD
}
"""
if not self.is_pending():
return {'pending_rewards': False,
"payout_SP": Amount(0, self.steem.steem_symbol, steem_instance=self.steem),
"payout_SBD": Amount(0, self.steem.sbd_symbol, steem_instance=self.steem),
"total_payout_SBD": Amount(self["total_payout_value"], steem_instance=self.steem)}
median_hist = self.steem.get_current_median_history()
if median_hist is not None:
median_price = Price(median_hist, steem_instance=self.steem)
beneficiaries_pct = self.get_beneficiaries_pct()
curation_tokens = self.reward * 0.25
author_tokens = self.reward - curation_tokens
curation_rewards = self.get_curation_rewards()
if self.steem.hardfork >= 20 and median_hist is not None:
author_tokens += median_price * curation_rewards['unclaimed_rewards']
benefactor_tokens = author_tokens * beneficiaries_pct / 100.
author_tokens -= benefactor_tokens
if median_hist is not None:
sbd_steem = author_tokens * self["percent_steem_dollars"] / 20000.
vesting_steem = median_price.as_base(self.steem.steem_symbol) * (author_tokens - sbd_steem)
return {'pending_rewards': True, "payout_SP": vesting_steem, "payout_SBD": sbd_steem, "total_payout_SBD": author_tokens}
else:
return {'pending_rewards': True, "total_payout": author_tokens}