dposlib.ark.crypto
getKeys
def getKeys(secret)
Generate keyring containing secp256k1 keys-pair and wallet import format (WIF).
Arguments:
secret
str, bytes or int - anything that could issue a private key on secp256k1 curve.
Returns:
dict
- public, private and WIF keys.
getMultiSignaturePublicKey
def getMultiSignaturePublicKey(minimum, *publicKeys)
Compute ARK multi signature public key according to ARK AIP 18
.
Arguments:
minimum
int - minimum signature required.publicKeys
list of str - public key list.
Returns:
hex
- the multisignature public key.
getAddressFromSecret
def getAddressFromSecret(secret, marker=None)
Compute ARK address from secret.
Arguments:
secret
str - secret string.marker
int - network marker (optional).
Returns:
base58
- the address.
getAddress
def getAddress(publicKey, marker=None)
Compute ARK address from publicKey.
Arguments:
publicKey
str - public key.marker
int - network marker (optional).
Returns:
base58
- the address.
getWIF
def getWIF(seed)
Compute WIF address from seed.
Arguments:
seed
bytes - a sha256 sequence bytes.
Returns:
base58
- the WIF address.
wifSignature
def wifSignature(tx, wif)
Generate transaction signature using private key.
Arguments:
tx
dict or Transaction - transaction description.wif
str - wif key.
Returns:
hex
- signature.
wifSignatureFromBytes
def wifSignatureFromBytes(data, wif)
Generate signature from data using WIF key.
Arguments:
data
bytes - bytes sequence.wif
str - wif key.
Returns:
hex
- signature.
getSignature
def getSignature(tx, privateKey, **options)
Generate transaction signature using private key.
Arguments:
tx
dict or Transaction - transaction description.privateKey
str - private key as hex string.
Options:
exclude_sig
bool - exclude signature during tx serialization. Defalut to True.exclude_multi_sig
bool - exclude signatures during tx serialization. Defalut to True.exclude_second_sig
bool - exclude second signatures during tx serialization. Defalut to True.
Returns:
hex
- signature.
getSignatureFromBytes
def getSignatureFromBytes(data, privateKey)
Generate signature from data using private key.
Arguments:
data
bytes - bytes sequence.privateKey
str - private key as hex string.
Returns:
hex
- signature.
verifySignature
def verifySignature(value, publicKey, signature)
Verify signature.
Arguments:
value
str - value as hex string.publicKey
str - public key as hex string.signature
str - signature as hex string.
Returns:
bool
- True if signature matches the public key.
verifySignatureFromBytes
def verifySignatureFromBytes(data, publicKey, signature)
Verify signature.
Arguments:
data
bytes - data.publicKey
str - public key as hex string.signature
str - signature as hex string.
Returns:
bool
- True if signature matches the public key.
getId
def getId(tx)
Generate transaction id.
Arguments:
tx
dict or Transaction - transaction object.
Returns:
hex
- id.
getIdFromBytes
def getIdFromBytes(data)
Generate data id.
Arguments:
data
bytes - data as bytes sequence.
Returns:
hex
- id.
getBytes
def getBytes(tx, **options)
Hash transaction.
Arguments:
tx
dict or Transaction - transaction object.
Options:
exclude_sig
bool - exclude signature during tx serialization. Defalut to False.exclude_multi_sig
bool - exclude signatures during tx serialization. Defalut to False.exclude_second_sig
bool - exclude second signatures during tx serialization. Defalut to False.
Returns:
bytes
- transaction serial.
checkTransaction
def checkTransaction(tx, secondPublicKey=None, multiPublicKeys=[])
Verify transaction validity.
Arguments:
tx
dict or Transaction - transaction object.secondPublicKey
str - second public key to use if needed.multiPublicKeys
list - owners public keys (sorted according to associated type-4-tx asset).
Returns:
bool
- True if transaction is valid.