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.