beemgraphenebase.account module¶
-
class
beemgraphenebase.account.Address(address=None, pubkey=None, prefix='STM')¶ Bases:
objectAddress class
This class serves as an address representation for Public Keys.
Parameters: - address (str) – Base58 encoded address (defaults to
None) - pubkey (str) – Base58 encoded pubkey (defaults to
None) - prefix (str) – Network prefix (defaults to
STM)
Example:
Address("STMFN9r6VYzBK8EKtMewfNbfiGCr56pHDBFi")
-
derive256address_with_version(version=56)¶ Derive address using
RIPEMD160(SHA256(x))and adding version + checksum
-
derivesha256address()¶ Derive address using
RIPEMD160(SHA256(x))
-
derivesha512address()¶ Derive address using
RIPEMD160(SHA512(x))
- address (str) – Base58 encoded address (defaults to
-
class
beemgraphenebase.account.BrainKey(brainkey=None, sequence=0)¶ Bases:
objectBrainkey implementation similar to the graphene-ui web-wallet.
Parameters: - brainkey (str) – Brain Key
- sequence (int) – Sequence number for consecutive keys
Keys in Graphene are derived from a seed brain key which is a string of 16 words out of a predefined dictionary with 49744 words. It is a simple single-chain key derivation scheme that is not compatible with BIP44 but easy to use.
Given the brain key, a private key is derived as:
privkey = SHA256(SHA512(brainkey + " " + sequence))
Incrementing the sequence number yields a new key that can be regenerated given the brain key.
-
get_brainkey()¶ Return brain key of this instance
-
get_private()¶ Derive private key from the brain key and the current sequence number
-
get_private_key()¶
-
get_public()¶
-
get_public_key()¶
-
next_sequence()¶ Increment the sequence number by 1
-
normalize(brainkey)¶ Correct formating with single whitespace syntax and no trailing space
-
suggest()¶ Suggest a new random brain key. Randomness is provided by the operating system using
os.urandom().
-
class
beemgraphenebase.account.PasswordKey(account, password, role='active', prefix='STM')¶ Bases:
objectThis class derives a private key given the account name, the role and a password. It leverages the technology of Brainkeys and allows people to have a secure private key by providing a passphrase only.
-
get_private()¶ Derive private key from the brain key and the current sequence number
-
get_private_key()¶
-
get_public()¶
-
get_public_key()¶
-
-
class
beemgraphenebase.account.PrivateKey(wif=None, prefix='STM')¶ Bases:
beemgraphenebase.account.PublicKeyDerives the compressed and uncompressed public keys and constructs two instances of
PublicKey:Parameters: - wif (str) – Base58check-encoded wif key
- prefix (str) – Network prefix (defaults to
STM)
Example::
PrivateKey("5HqUkGuo62BfcJU5vNhTXKJRXuUi9QSE6jp8C3uBJ2BVHtB8WSd")
Compressed vs. Uncompressed:
PrivateKey("w-i-f").pubkey:- Instance of
PublicKeyusing compressed key.
PrivateKey("w-i-f").pubkey.address:- Instance of
Addressusing compressed key.
PrivateKey("w-i-f").uncompressed:- Instance of
PublicKeyusing uncompressed key.
PrivateKey("w-i-f").uncompressed.address:- Instance of
Addressusing uncompressed key.
-
compressedpubkey()¶ Derive uncompressed public key
-
class
beemgraphenebase.account.PublicKey(pk, prefix='STM')¶ Bases:
beemgraphenebase.account.AddressThis class deals with Public Keys and inherits
Address.Parameters: - pk (str) – Base58 encoded public key
- prefix (str) – Network prefix (defaults to
STM)
Example::
PublicKey("STM6UtYWWs3rkZGV8JA86qrgkG6tyFksgECefKE1MiH4HkLD8PFGL")
Note
By default, graphene-based networks deal with compressed public keys. If an uncompressed key is required, the method
unCompressedcan be used:PublicKey("xxxxx").unCompressed()
-
compressed()¶ Derive compressed public key
-
point()¶ Return the point for the public key
-
unCompressed()¶ Derive uncompressed key