Skip to content

Commit 6c3d65d

Browse files
bitphagexeroc
authored andcommitted
Fix lost instance in PriceFeed
1 parent 4743af0 commit 6c3d65d

3 files changed

Lines changed: 49 additions & 9 deletions

File tree

bitshares/aio/price.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,14 @@ async def __init__(self, feed, **kwargs):
325325
"maximum_short_squeeze_ratio": feed[1][1][
326326
"maximum_short_squeeze_ratio"
327327
],
328-
"settlement_price": await Price(feed[1][1]["settlement_price"]),
329-
"core_exchange_rate": await Price(feed[1][1]["core_exchange_rate"]),
328+
"settlement_price": await Price(
329+
feed[1][1]["settlement_price"],
330+
blockchain_instance=self.blockchain,
331+
),
332+
"core_exchange_rate": await Price(
333+
feed[1][1]["core_exchange_rate"],
334+
blockchain_instance=self.blockchain,
335+
),
330336
},
331337
)
332338
else:
@@ -337,7 +343,11 @@ async def __init__(self, feed, **kwargs):
337343
"maintenance_collateral_ratio"
338344
],
339345
"maximum_short_squeeze_ratio": feed["maximum_short_squeeze_ratio"],
340-
"settlement_price": await Price(feed["settlement_price"]),
341-
"core_exchange_rate": await Price(feed["core_exchange_rate"]),
346+
"settlement_price": await Price(
347+
feed["settlement_price"], blockchain_instance=self.blockchain
348+
),
349+
"core_exchange_rate": await Price(
350+
feed["core_exchange_rate"], blockchain_instance=self.blockchain
351+
),
342352
},
343353
)

bitshares/price.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -373,8 +373,14 @@ def __init__(self, feed, **kwargs):
373373
"maximum_short_squeeze_ratio": feed[1][1][
374374
"maximum_short_squeeze_ratio"
375375
],
376-
"settlement_price": Price(feed[1][1]["settlement_price"]),
377-
"core_exchange_rate": Price(feed[1][1]["core_exchange_rate"]),
376+
"settlement_price": Price(
377+
feed[1][1]["settlement_price"],
378+
blockchain_instance=self.blockchain,
379+
),
380+
"core_exchange_rate": Price(
381+
feed[1][1]["core_exchange_rate"],
382+
blockchain_instance=self.blockchain,
383+
),
378384
},
379385
)
380386
else:
@@ -385,7 +391,11 @@ def __init__(self, feed, **kwargs):
385391
"maintenance_collateral_ratio"
386392
],
387393
"maximum_short_squeeze_ratio": feed["maximum_short_squeeze_ratio"],
388-
"settlement_price": Price(feed["settlement_price"]),
389-
"core_exchange_rate": Price(feed["core_exchange_rate"]),
394+
"settlement_price": Price(
395+
feed["settlement_price"], blockchain_instance=self.blockchain
396+
),
397+
"core_exchange_rate": Price(
398+
feed["core_exchange_rate"], blockchain_instance=self.blockchain
399+
),
390400
},
391401
)

tests/testnet/aio/test_price.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from bitshares.aio.asset import Asset
77
from bitshares.aio.amount import Amount
88
from bitshares.aio.account import Account
9-
from bitshares.aio.price import Price, Order, FilledOrder
9+
from bitshares.aio.price import Price, PriceFeed, Order, FilledOrder
1010
from bitshares.aio.market import Market
1111

1212
log = logging.getLogger("grapheneapi")
@@ -111,3 +111,23 @@ async def test_filled_order(default_account, do_trade):
111111
log.info("Order from history: {}".format(order))
112112
# Test copy()
113113
await order.copy()
114+
115+
116+
@pytest.mark.asyncio
117+
async def test_pricefeed_init_no_shared_instance(not_shared_instance, bitasset):
118+
bitshares = not_shared_instance
119+
asset = await Asset(bitasset, blockchain_instance=bitshares)
120+
await asset.ensure_full()
121+
122+
# Prevent using instantiated objects loaded to cache
123+
Asset.clear_cache()
124+
feed = await PriceFeed(
125+
asset["bitasset_data"]["feeds"][0], blockchain_instance=bitshares
126+
)
127+
assert feed["settlement_price"] > 0
128+
129+
Asset.clear_cache()
130+
feed = await PriceFeed(
131+
asset["bitasset_data"]["current_feed"], blockchain_instance=bitshares
132+
)
133+
assert feed["settlement_price"] > 0

0 commit comments

Comments
 (0)