def finalizeOp(self, ops, account, permission, **kwargs):
    ' This method obtains the required private keys if present in\n            the wallet, finalizes the transaction, signs it and\n            broadacasts it\n\n            :param ops: The operation (or list of operations) to\n                broadcast\n            :type ops: list, GrapheneObject\n            :param Account account: The account that authorizes the\n                operation\n            :param string permission: The required permission for\n                signing (active, owner, posting)\n            :param TransactionBuilder append_to: This allows to provide an instance of\n                TransactionBuilder (see :func:`Crea.new_tx()`) to specify\n                where to put a specific operation.\n\n            .. note:: ``append_to`` is exposed to every method used in the\n                Crea class\n\n            .. note::   If ``ops`` is a list of operation, they all need to be\n                        signable by the same key! Thus, you cannot combine ops\n                        that require active permission with ops that require\n                        posting permission. Neither can you use different\n                        accounts for different operations!\n\n            .. note:: This uses :func:`Crea.txbuffer` as instance of\n                :class:`crea.transactionbuilder.TransactionBuilder`.\n                You may want to use your own txbuffer\n        '
    if self.offline:
        return {}
    if (('append_to' in kwargs) and kwargs['append_to']):
        append_to = kwargs['append_to']
        parent = append_to.get_parent()
        if (not isinstance(append_to, TransactionBuilder)):
            raise AssertionError()
        append_to.appendOps(ops)
        parent.appendSigner(account, permission)
        return append_to.get_parent()
    else:
        self.txbuffer.appendOps(ops)
    if self.unsigned:
        self.txbuffer.addSigningInformation(account, permission)
        return self.txbuffer
    elif self.bundle:
        self.txbuffer.appendSigner(account, permission)
        return self.txbuffer.json()
    else:
        self.txbuffer.appendSigner(account, permission)
        self.txbuffer.sign()
        return self.txbuffer.broadcast()
This method obtains the required private keys if present in
the wallet, finalizes the transaction, signs it and
broadacasts it

:param ops: The operation (or list of operations) to
    broadcast
:type ops: list, GrapheneObject
:param Account account: The account that authorizes the
    operation
:param string permission: The required permission for
    signing (active, owner, posting)
:param TransactionBuilder append_to: This allows to provide an instance of
    TransactionBuilder (see :func:`Crea.new_tx()`) to specify
    where to put a specific operation.

.. note:: ``append_to`` is exposed to every method used in the
    Crea class

.. note::   If ``ops`` is a list of operation, they all need to be
            signable by the same key! Thus, you cannot combine ops
            that require active permission with ops that require
            posting permission. Neither can you use different
            accounts for different operations!

.. note:: This uses :func:`Crea.txbuffer` as instance of
    :class:`crea.transactionbuilder.TransactionBuilder`.
    You may want to use your own txbuffer
def finalizeOp(self, ops, account, permission, **kwargs):
    ' This method obtains the required private keys if present in\n            the wallet, finalizes the transaction, signs it and\n            broadacasts it\n\n            :param ops: The operation (or list of operations) to\n                broadcast\n            :type ops: list, GrapheneObject\n            :param Account account: The account that authorizes the\n                operation\n            :param string permission: The required permission for\n                signing (active, owner, posting)\n            :param TransactionBuilder append_to: This allows to provide an instance of\n                TransactionBuilder (see :func:`Crea.new_tx()`) to specify\n                where to put a specific operation.\n\n            .. note:: ``append_to`` is exposed to every method used in the\n                Crea class\n\n            .. note::   If ``ops`` is a list of operation, they all need to be\n                        signable by the same key! Thus, you cannot combine ops\n                        that require active permission with ops that require\n                        posting permission. Neither can you use different\n                        accounts for different operations!\n\n            .. note:: This uses :func:`Crea.txbuffer` as instance of\n                :class:`crea.transactionbuilder.TransactionBuilder`.\n                You may want to use your own txbuffer\n        '
    if self.offline:
        return {}
    if (('append_to' in kwargs) and kwargs['append_to']):
        append_to = kwargs['append_to']
        parent = append_to.get_parent()
        if (not isinstance(append_to, TransactionBuilder)):
            raise AssertionError()
        append_to.appendOps(ops)
        parent.appendSigner(account, permission)
        return append_to.get_parent()
    else:
        self.txbuffer.appendOps(ops)
    if self.unsigned:
        self.txbuffer.addSigningInformation(account, permission)
        return self.txbuffer
    elif self.bundle:
        self.txbuffer.appendSigner(account, permission)
        return self.txbuffer.json()
    else:
        self.txbuffer.appendSigner(account, permission)
        self.txbuffer.sign()
        return self.txbuffer.broadcast()