bitshares.aio.account module

class bitshares.aio.account.Account(*args, **kwargs)[source]

Bases: bitshares.aio.instance.BlockchainInstance, bitshares.aio.account.Account

This class allows to easily access Account data.

Parameters:
  • account_name (str) – Name of the account
  • blockchain_instance (bitshares.aio.bitshares.BitShares) – BitShares instance
  • full (bool) – Obtain all account data including orders, positions, etc.
  • lazy (bool) – Use lazy loading
  • full – Obtain all account data including orders, positions, etc.
Returns:

Account data

Return type:

dictionary

Raises:

bitshares.exceptions.AccountDoesNotExistsException – if account does not exist

Instances of this class are dictionaries that come with additional methods (see below) that allow dealing with an account and it’s corresponding functions.

from bitshares.aio.account import Account
account = await Account("init0")
print(account)

Note

This class comes with its own caching function to reduce the load on the API server. Instances of this class can be refreshed with await Account.refresh().

balance(symbol)[source]

Obtain the balance of a specific Asset. This call returns instances of amount.Amount.

balances

List balances of an account. This call returns instances of amount.Amount.

bitshares

Alias for the specific blockchain.

blacklist(account)[source]

Add an other account to the blacklist of this account

blockchain
blockchain_instance_class

alias of bitshares.aio.instance.BlockchainInstance

classmethod cache_object(data, key=None)

This classmethod allows to feed an object into the cache is is mostly used for testing

call_positions

Alias for :func:bitshares.account.Account.callpositions.

callpositions

List call positions (collateralized positions Market Pegged Assets)

chain

Short form for blockchain (for the lazy)

clear() → None. Remove all items from D.
classmethod clear_cache()

Clear/Reset the entire Cache

copy() → a shallow copy of D
define_classes()[source]

Needs to define instance variables that provide classes

ensure_full()[source]
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

getfromcache(id)

Get an element from the cache explicitly

history(first=0, last=0, limit=-1, only_ops=[], exclude_ops=[])[source]

Returns a generator for individual account transactions. The latest operation will be first. This call can be used in a for loop.

Parameters:
  • first (int) – sequence number of the first transaction to return (optional)
  • last (int) – sequence number of the last transaction to return (optional)
  • limit (int) – limit number of transactions to return (optional)
  • only_ops (array) – Limit generator by these operations (optional)
  • exclude_ops (array) – Exclude these operations from generator (optional).
… note::
only_ops and exclude_ops takes an array of strings: The full list of operation ID’s can be found in operationids.py. Example: [‘transfer’, ‘fill_order’]
identifier = None
incached(id)

Is an element cached?

classmethod inject(cls)
is_fully_loaded

Is this instance fully loaded / e.g. all data available?

is_ltm

Is the account a lifetime member (LTM)?

items()

This overrides items() so that refresh() is called if the object is not already fetched

keys() → a set-like object providing a view on D's keys
name
nolist(account)[source]

Remove an other account from any list of this account

static objectid_valid(i)

Test if a string looks like a regular object id of the form::

xxxx.yyyyy.zzzz

with those being numbers.

openorders

Returns open Orders.

perform_id_tests = True
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.

refresh()[source]

Refresh/Obtain an account’s data from the API server

static set_cache_store(klass, *args, **kwargs)
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.

space_id = 1
store(data, key='id')

Cache the list

Parameters:data (list) – List of objects to cache
test_valid_objectid(i)

Alias for objectid_valid

testid(id)

In contrast to validity, this method tests if the objectid matches the type_id provided in self.type_id or self.type_ids

type_id = None
type_ids = []
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]

upgrade()[source]

Upgrade account to life time member

values() → an object providing a view on D's values
whitelist(account)[source]

Add an other account to the whitelist of this account

class bitshares.aio.account.AccountUpdate(*args, **kwargs)[source]

Bases: bitshares.aio.instance.BlockchainInstance, bitshares.aio.account.AccountUpdate

This purpose of this class is to keep track of account updates as they are pushed through by bitshares.notify.Notify.

Instances of this class are dictionaries and take the following form:

account

In oder to obtain the actual account.Account from this class, you can use the account attribute.

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()[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)
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