in resdb_driver/offchain.py [0:0]
def fulfill_transaction(transaction, *, private_keys) -> dict:
"""! Fulfills the given transaction.
@param transaction The transaction to be fulfilled.
@param private_keys One or more private keys to be
used for fulfilling the transaction.
@return The fulfilled transaction payload, ready to be sent to a
ResDB federation.
@exception :exc:`~.exceptions.MissingPrivateKeyError`: If a private
key is missing.
"""
if not isinstance(private_keys, (list, tuple)):
private_keys = [private_keys]
# NOTE: Needed for the time being. See
# https://github.com/bigchaindb/bigchaindb/issues/797
if isinstance(private_keys, tuple):
private_keys = list(private_keys)
transaction_obj = Transaction.from_dict(transaction)
try:
signed_transaction = transaction_obj.sign(private_keys)
except KeypairMismatchException as exc:
raise MissingPrivateKeyError("A private key is missing!") from exc
return signed_transaction.to_dict()