bhive.wallet module¶
-
class
bhive.wallet.Wallet(hive_instance=None, *args, **kwargs)¶ Bases:
objectThe 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 (HiveNodeRPC) – RPC connection to a Hive node
keys (array, dict, str) – Predefine the wif keys to shortcut the wallet database
Three wallet operation modes are possible:
Wallet Database: Here, bhive loads the keys from the locally stored wallet SQLite database (see
storage.py). To use this mode, simply callbhive.hive.Hivewithout thekeysparameterProviding 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
keysparameter tobhive.hive.Hive.Force keys: This more is for advanced users and requires that you know what you are doing. Here, the
keysparameter is a dictionary that overwrite theactive,owner,postingormemokeys for any account. This mode is only used for foreign signatures!
A new wallet can be created by using:
from bhive import Hive hive = Hive() hive.wallet.wipe(True) hive.wallet.create("supersecret-passphrase")
This will raise
bhive.exceptions.WalletExistsif you already have a wallet installed.The wallet can be unlocked for signing using
from bhive import Hive hive = Hive() hive.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 bhive import Hive hive = Hive() hive.wallet.unlock("supersecret-passphrase") hive.wallet.addPrivateKey("5xxxxxxxxxxxxxxxxxxxx")
Note
The private key has to be either in hexadecimal or in wallet import format (wif) (starting with a
5).-
MasterPassword= None¶
-
addPrivateKey(wif)¶ Add a private key to the wallet database
- Parameters
wif (str) – Private key
-
addToken(name, token)¶
-
changePassphrase(new_pwd)¶ Change the passphrase for the wallet database
-
clear_local_keys()¶ Clear all manually provided keys
-
clear_local_token()¶ Clear all manually provided token
-
configStorage= None¶
-
create(pwd)¶ Alias for
newWallet()- Parameters
pwd (str) – Passphrase for the created wallet
-
created()¶ Do we have a wallet database already?
-
decrypt_token(enctoken)¶ decrypt a wif key
-
decrypt_wif(encwif)¶ decrypt a wif key
-
deriveChecksum(s)¶ Derive the checksum
-
encrypt_token(token)¶ Encrypt a token key
-
encrypt_wif(wif)¶ Encrypt a wif key
-
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()¶ Return all installed public keys
-
getPublicNames()¶ Return all installed public token
-
getTokenForAccountName(name)¶ Obtain the private token for a given public name
- Parameters
name (str) – Public name
-
keyMap= {}¶
-
keyStorage= None¶
-
keys= {}¶
-
lock()¶ Lock the wallet database
-
locked()¶ Is the wallet database locked?
-
masterpassword= None¶
-
newWallet(pwd)¶ Create a new wallet database
- Parameters
pwd (str) – Passphrase for the created wallet
-
property
prefix¶
-
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
-
removeTokenFromPublicName(name)¶ Remove a token from the wallet database
- Parameters
name (str) – token to be removed
-
property
rpc¶
-
setKeys(loadkeys)¶ This method is strictly only for in memory keys that are passed to Wallet/Hive with the
keysargument
-
setToken(loadtoken)¶ This method is strictly only for in memory token that are passed to Wallet/Hive with the
tokenargument
-
token= {}¶
-
tokenStorage= None¶
-
tryUnlockFromEnv()¶ Try to fetch the unlock password from UNLOCK environment variable and keyring when no password is given.
-
unlock(pwd=None)¶ Unlock the wallet database
-
unlocked()¶ Is the wallet database unlocked?
-
wipe(sure=False)¶ Purge all data in wallet database