def sign(self): """ Sign a provided transaction witht he provided key(s) :param dict tx: The transaction to be signed and returned :param string wifs: One or many wif keys to use for signing a transaction. If not present, the keys will be loaded from the wallet as defined in "missing_signatures" key of the transactions. """ # We need to set the default prefix, otherwise pubkeys are # presented wrongly! if self.steemd: operations.default_prefix = self.steemd.chain_params["prefix"] elif "blockchain" in self: operations.default_prefix = self["blockchain"]["prefix"] try: signedtx = SignedTransaction(**self.json()) except Exception as e: raise e if not any(self.wifs): raise MissingKeyError signedtx.sign(self.wifs, chain=self.steemd.chain_params) self["signatures"].extend(signedtx.json().get("signatures"))