beem.wallet¶
-
class
beem.wallet.
Wallet
(blockchain_instance=None, *args, **kwargs)¶ Bases:
object
The wallet is meant to maintain access to private keys for your accounts. It either uses manually provided private keys or uses a SQLite database managed by storage.py.
Parameters: - rpc (SteemNodeRPC) – RPC connection to a Steem node
- keys (array, dict, str) – Predefine the wif keys to shortcut the wallet database
Three wallet operation modes are possible:
- Wallet Database: Here, beem loads the keys from the
locally stored wallet SQLite database (see
storage.py
). To use this mode, simply callbeem.steem.Steem
without thekeys
parameter - Providing Keys: Here, you can provide the keys for
your accounts manually. All you need to do is add the wif
keys for the accounts you want to use as a simple array
using the
keys
parameter tobeem.steem.Steem
. - Force keys: This more is for advanced users and
requires that you know what you are doing. Here, the
keys
parameter is a dictionary that overwrite theactive
,owner
,posting
ormemo
keys for any account. This mode is only used for foreign signatures!
A new wallet can be created by using:
from beem import Steem steem = Steem() steem.wallet.wipe(True) steem.wallet.create("supersecret-passphrase")
This will raise
beem.exceptions.WalletExists
if you already have a wallet installed.The wallet can be unlocked for signing using
from beem import Steem steem = Steem() steem.wallet.unlock("supersecret-passphrase")
A private key can be added by using the
addPrivateKey()
method that is available after unlocking the wallet with the correct passphrase:from beem import Steem steem = Steem() steem.wallet.unlock("supersecret-passphrase") steem.wallet.addPrivateKey("5xxxxxxxxxxxxxxxxxxxx")
Note
The private key has to be either in hexadecimal or in wallet import format (wif) (starting with a
5
).-
addPrivateKey
(wif)¶ Add a private key to the wallet database
Parameters: wif (str) – Private key
-
changePassphrase
(new_pwd)¶ Change the passphrase for the wallet database
-
create
(pwd)¶ Alias for
newWallet()
Parameters: pwd (str) – Passphrase for the created wallet
-
created
()¶ Do we have a wallet database already?
-
getAccount
(pub)¶ Get the account data for a public key (first account found for this public key)
Parameters: pub (str) – Public key
-
getAccountFromPrivateKey
(wif)¶ Obtain account name from private key
-
getAccountFromPublicKey
(pub)¶ Obtain the first account name from public key
Parameters: pub (str) – Public key Note: this returns only the first account with the given key. To get all accounts associated with a given public key, use
getAccountsFromPublicKey()
.
-
getAccounts
()¶ Return all accounts installed in the wallet database
-
getAccountsFromPublicKey
(pub)¶ Obtain all account names associated with a public key
Parameters: pub (str) – Public key
-
getActiveKeyForAccount
(name)¶ Obtain owner Active Key for an account from the wallet database
-
getActiveKeysForAccount
(name)¶ Obtain list of all owner Active Keys for an account from the wallet database
-
getAllAccounts
(pub)¶ Get the account data for a public key (all accounts found for this public key)
Parameters: pub (str) – Public key
-
getKeyForAccount
(name, key_type)¶ Obtain key_type Private Key for an account from the wallet database
Parameters: - name (str) – Account name
- key_type (str) – key type, has to be one of “owner”, “active”, “posting” or “memo”
-
getKeyType
(account, pub)¶ Get key type
Parameters: - account (Account, dict) – Account data
- pub (str) – Public key
-
getKeysForAccount
(name, key_type)¶ Obtain a List of key_type Private Keys for an account from the wallet database
Parameters: - name (str) – Account name
- key_type (str) – key type, has to be one of “owner”, “active”, “posting” or “memo”
-
getMemoKeyForAccount
(name)¶ Obtain owner Memo Key for an account from the wallet database
-
getOwnerKeyForAccount
(name)¶ Obtain owner Private Key for an account from the wallet database
-
getOwnerKeysForAccount
(name)¶ Obtain list of all owner Private Keys for an account from the wallet database
-
getPostingKeyForAccount
(name)¶ Obtain owner Posting Key for an account from the wallet database
-
getPostingKeysForAccount
(name)¶ Obtain list of all owner Posting Keys for an account from the wallet database
-
getPrivateKeyForPublicKey
(pub)¶ Obtain the private key for a given public key
Parameters: pub (str) – Public Key
-
getPublicKeys
(current=False)¶ Return all installed public keys :param bool current: If true, returns only keys for currently
connected blockchain
-
is_encrypted
()¶ Is the key store encrypted?
-
lock
()¶ Lock the wallet database
-
locked
()¶ Is the wallet database locked?
-
newWallet
(pwd)¶ Create a new wallet database
Parameters: pwd (str) – Passphrase for the created wallet
-
prefix
¶
-
privatekey
(key)¶
-
publickey_from_wif
(wif)¶
-
removeAccount
(account)¶ Remove all keys associated with a given account
Parameters: account (str) – name of account to be removed
-
removePrivateKeyFromPublicKey
(pub)¶ Remove a key from the wallet database
Parameters: pub (str) – Public key
-
rpc
¶
-
setKeys
(loadkeys)¶ This method is strictly only for in memory keys that are passed to Wallet with the
keys
argument
-
unlock
(pwd)¶ Unlock the wallet database
-
unlocked
()¶ Is the wallet database unlocked?
-
wipe
(sure=False)¶