bitshares.aio.price module

class bitshares.aio.price.FilledOrder(order, **kwargs)[source]

Bases: bitshares.aio.price.Price

This class inherits bitshares.aio.price.Price but has the base and quote Amounts not only be used to represent the price (as a ratio of base and quote) but instead has those amounts represent the amounts of an actually filled order!

Parameters:blockchain_instance (bitshares.aio.bitshares.BitShares) – BitShares instance

Note

Instances of this class come with an additional time key that shows when the order has been filled!

as_base(base)

Returns the price instance so that the base asset is base.

Note: This makes a copy of the object!

as_quote(quote)

Returns the price instance so that the quote asset is quote.

Note: This makes a copy of the object!

bitshares

Alias for the specific blockchain.

blockchain
blockchain_instance_class

alias of bitshares.aio.instance.BlockchainInstance

chain

Short form for blockchain (for the lazy)

clear() → None. Remove all items from D.
copy() → a shallow copy of D[source]
define_classes()

Needs to define instance variables that provide classes

fromkeys()

Create a new dictionary with keys from iterable and values set to value.

get()

Return the value for key if key is in the dictionary, else default.

get_instance_class()

Should return the Chain instance class, e.g. bitshares.BitShares

classmethod inject(cls)
invert()

Invert the price (e.g. go from USD/BTS into BTS/USD)

items() → a set-like object providing a view on D's items
json()
return {
“base”: self[“base”].json(), “quote”: self[“quote”].json()

}

keys() → a set-like object providing a view on D's keys
market

Open the corresponding market.

Returns:Instance of bitshares.aio.market.Market for the corresponding pair of assets.
pop(k[, d]) → v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised

popitem() → (k, v), remove and return some (key, value) pair as a

2-tuple; but raise KeyError if D is empty.

classmethod set_shared_blockchain_instance(instance)

This method allows us to override default instance for all users of SharedInstance.instance.

Parameters:instance (chaininstance) – Chain instance
classmethod set_shared_config(config)

This allows to set a config that will be used when calling shared_blockchain_instance and allows to define the configuration without requiring to actually create an instance

set_shared_instance()

This method allows to set the current instance as default

setdefault()

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

shared_blockchain_instance()

This method will initialize SharedInstance.instance and return it. The purpose of this method is to have offer single default instance that can be reused by multiple classes.

symbols()
update([E, ]**F) → None. Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() → an object providing a view on D's values
class bitshares.aio.price.Order(*args, **kwargs)[source]

Bases: bitshares.aio.price.Price

This class inherits bitshares.aio.price.Price but has the base and quote Amounts not only be used to represent the price (as a ratio of base and quote) but instead has those amounts represent the amounts of an actual order!

Parameters:blockchain_instance (bitshares.aio.bitshares.BitShares) – BitShares instance

Note

If an order is marked as deleted, it will carry the ‘deleted’ key which is set to True and all other data be None.

as_base(base)

Returns the price instance so that the base asset is base.

Note: This makes a copy of the object!

as_quote(quote)

Returns the price instance so that the quote asset is quote.

Note: This makes a copy of the object!

bitshares

Alias for the specific blockchain.

blockchain
blockchain_instance_class

alias of bitshares.aio.instance.BlockchainInstance

chain

Short form for blockchain (for the lazy)

clear() → None. Remove all items from D.
copy() → a shallow copy of D
define_classes()

Needs to define instance variables that provide classes

fromkeys()

Create a new dictionary with keys from iterable and values set to value.

get()

Return the value for key if key is in the dictionary, else default.

get_instance_class()

Should return the Chain instance class, e.g. bitshares.BitShares

classmethod inject(cls)
invert()

Invert the price (e.g. go from USD/BTS into BTS/USD)

items() → a set-like object providing a view on D's items
json()
return {
“base”: self[“base”].json(), “quote”: self[“quote”].json()

}

keys() → a set-like object providing a view on D's keys
market

Open the corresponding market.

Returns:Instance of bitshares.aio.market.Market for the corresponding pair of assets.
pop(k[, d]) → v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised

popitem() → (k, v), remove and return some (key, value) pair as a

2-tuple; but raise KeyError if D is empty.

classmethod set_shared_blockchain_instance(instance)

This method allows us to override default instance for all users of SharedInstance.instance.

Parameters:instance (chaininstance) – Chain instance
classmethod set_shared_config(config)

This allows to set a config that will be used when calling shared_blockchain_instance and allows to define the configuration without requiring to actually create an instance

set_shared_instance()

This method allows to set the current instance as default

setdefault()

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

shared_blockchain_instance()

This method will initialize SharedInstance.instance and return it. The purpose of this method is to have offer single default instance that can be reused by multiple classes.

symbols()
update([E, ]**F) → None. Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() → an object providing a view on D's values
class bitshares.aio.price.Price(*args, **kwargs)[source]

Bases: bitshares.aio.instance.BlockchainInstance, bitshares.aio.price.Price

This class deals with all sorts of prices of any pair of assets to simplify dealing with the tuple:

    (quote, base)

each being an instance of :class:`bitshares.amount.Amount`. The
amount themselves define the price.

.. note::

    The price (floating) is derived as ``base/quote``

:param list args: Allows to deal with different representations of a price
:param bitshares.aio.asset.Asset base: Base asset
:param bitshares.aio.asset.Asset quote: Quote asset
:param bitshares.aio.bitshares.BitShares blockchain_instance: BitShares instance
:returns: All data required to represent a price
:rtype: dict

Way to obtain a proper instance:

    * ``args`` is a str with a price and two assets
    * ``args`` can be a floating number and ``base`` and ``quote`` being instances of :class:`bitshares.aio.asset.Asset`
    * ``args`` can be a floating number and ``base`` and ``quote`` being instances of ``str``
    * ``args`` can be dict with keys ``price``, ``base``, and ``quote`` (*graphene balances*)
    * ``args`` can be dict with keys ``base`` and ``quote``
    * ``args`` can be dict with key ``receives`` (filled orders)
    * ``args`` being a list of ``[quote, base]`` both being instances of :class:`bitshares.aio.amount.Amount`
    * ``args`` being a list of ``[quote, base]`` both being instances of ``str`` (``amount symbol``)
    * ``base`` and ``quote`` being instances of :class:`bitshares.aio.asset.Amount`

This allows instanciations like:

* ``Price("0.315 USD/BTS")``
* ``Price(0.315, base="USD", quote="BTS")``
* ``Price(0.315, base=Asset("USD"), quote=Asset("BTS"))``
* ``Price({"base": {"amount": 1, "asset_id": "1.3.0"}, "quote": {"amount": 10, "asset_id": "1.3.106"}})``
* ``Price({"receives": {"amount": 1, "asset_id": "1.3.0"}, "pays": {"amount": 10, "asset_id": "1.3.106"}}, base_asset=Asset("1.3.0"))``
* ``Price(quote="10 GOLD", base="1 USD")``
* ``Price("10 GOLD", "1 USD")``
* ``Price(Amount("10 GOLD"), Amount("1 USD"))``
* ``Price(1.0, "USD/GOLD")``

Instances of this class can be used in regular mathematical expressions
(``+-*/%``) such as:

.. code-block:: python

    >>> from bitshares.aio.price import Price
    >>> await Price("0.3314 USD/BTS") * 2
    0.662600000 USD/BTS
as_base(base)[source]

Returns the price instance so that the base asset is base.

Note: This makes a copy of the object!

as_quote(quote)[source]

Returns the price instance so that the quote asset is quote.

Note: This makes a copy of the object!

bitshares

Alias for the specific blockchain.

blockchain
blockchain_instance_class

alias of bitshares.aio.instance.BlockchainInstance

chain

Short form for blockchain (for the lazy)

clear() → None. Remove all items from D.
copy() → a shallow copy of D[source]
define_classes()[source]

Needs to define instance variables that provide classes

fromkeys()

Create a new dictionary with keys from iterable and values set to value.

get()

Return the value for key if key is in the dictionary, else default.

get_instance_class()

Should return the Chain instance class, e.g. bitshares.BitShares

classmethod inject(cls)
invert()[source]

Invert the price (e.g. go from USD/BTS into BTS/USD)

items() → a set-like object providing a view on D's items
json()[source]
return {
“base”: self[“base”].json(), “quote”: self[“quote”].json()

}

keys() → a set-like object providing a view on D's keys
market

Open the corresponding market.

Returns:Instance of bitshares.aio.market.Market for the corresponding pair of assets.
pop(k[, d]) → v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised

popitem() → (k, v), remove and return some (key, value) pair as a

2-tuple; but raise KeyError if D is empty.

classmethod set_shared_blockchain_instance(instance)

This method allows us to override default instance for all users of SharedInstance.instance.

Parameters:instance (chaininstance) – Chain instance
classmethod set_shared_config(config)

This allows to set a config that will be used when calling shared_blockchain_instance and allows to define the configuration without requiring to actually create an instance

set_shared_instance()

This method allows to set the current instance as default

setdefault()

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

shared_blockchain_instance()

This method will initialize SharedInstance.instance and return it. The purpose of this method is to have offer single default instance that can be reused by multiple classes.

symbols()[source]
update([E, ]**F) → None. Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() → an object providing a view on D's values
class bitshares.aio.price.PriceFeed(*args, **kwargs)[source]

Bases: bitshares.aio.instance.BlockchainInstance, bitshares.aio.price.PriceFeed

This class is used to represent a price feed consisting of.

  • a witness,
  • a symbol,
  • a core exchange rate,
  • the maintenance collateral ratio,
  • the max short squeeze ratio,
  • a settlement price, and
  • a date
Parameters:blockchain_instance (bitshares.aio.bitshares.BitShares) – BitShares instance
bitshares

Alias for the specific blockchain.

blockchain
blockchain_instance_class

alias of bitshares.aio.instance.BlockchainInstance

chain

Short form for blockchain (for the lazy)

clear() → None. Remove all items from D.
copy() → a shallow copy of D
define_classes()

Needs to define instance variables that provide classes

fromkeys()

Create a new dictionary with keys from iterable and values set to value.

get()

Return the value for key if key is in the dictionary, else default.

get_instance_class()

Should return the Chain instance class, e.g. bitshares.BitShares

classmethod inject(cls)
items() → a set-like object providing a view on D's items
keys() → a set-like object providing a view on D's keys
pop(k[, d]) → v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised

popitem() → (k, v), remove and return some (key, value) pair as a

2-tuple; but raise KeyError if D is empty.

classmethod set_shared_blockchain_instance(instance)

This method allows us to override default instance for all users of SharedInstance.instance.

Parameters:instance (chaininstance) – Chain instance
classmethod set_shared_config(config)

This allows to set a config that will be used when calling shared_blockchain_instance and allows to define the configuration without requiring to actually create an instance

set_shared_instance()

This method allows to set the current instance as default

setdefault()

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

shared_blockchain_instance()

This method will initialize SharedInstance.instance and return it. The purpose of this method is to have offer single default instance that can be reused by multiple classes.

update([E, ]**F) → None. Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() → an object providing a view on D's values
class bitshares.aio.price.UpdateCallOrder(call, **kwargs)[source]

Bases: bitshares.aio.price.Price

This class inherits bitshares.price.Price but has the base and quote Amounts not only be used to represent the call price (as a ratio of base and quote).

Parameters:blockchain_instance (bitshares.aio.bitshares.BitShares) – BitShares instance
as_base(base)

Returns the price instance so that the base asset is base.

Note: This makes a copy of the object!

as_quote(quote)

Returns the price instance so that the quote asset is quote.

Note: This makes a copy of the object!

bitshares

Alias for the specific blockchain.

blockchain
blockchain_instance_class

alias of bitshares.aio.instance.BlockchainInstance

chain

Short form for blockchain (for the lazy)

clear() → None. Remove all items from D.
copy() → a shallow copy of D
define_classes()

Needs to define instance variables that provide classes

fromkeys()

Create a new dictionary with keys from iterable and values set to value.

get()

Return the value for key if key is in the dictionary, else default.

get_instance_class()

Should return the Chain instance class, e.g. bitshares.BitShares

classmethod inject(cls)
invert()

Invert the price (e.g. go from USD/BTS into BTS/USD)

items() → a set-like object providing a view on D's items
json()
return {
“base”: self[“base”].json(), “quote”: self[“quote”].json()

}

keys() → a set-like object providing a view on D's keys
market

Open the corresponding market.

Returns:Instance of bitshares.aio.market.Market for the corresponding pair of assets.
pop(k[, d]) → v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised

popitem() → (k, v), remove and return some (key, value) pair as a

2-tuple; but raise KeyError if D is empty.

classmethod set_shared_blockchain_instance(instance)

This method allows us to override default instance for all users of SharedInstance.instance.

Parameters:instance (chaininstance) – Chain instance
classmethod set_shared_config(config)

This allows to set a config that will be used when calling shared_blockchain_instance and allows to define the configuration without requiring to actually create an instance

set_shared_instance()

This method allows to set the current instance as default

setdefault()

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

shared_blockchain_instance()

This method will initialize SharedInstance.instance and return it. The purpose of this method is to have offer single default instance that can be reused by multiple classes.

symbols()
update([E, ]**F) → None. Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() → an object providing a view on D's values