diff --git a/CHANGELOG.md b/CHANGELOG.md index aed390894..a6d80618a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,7 +27,7 @@ at anytime. ### Added * - * + * Added `channel_import` and `channel_export` commands ### Removed * diff --git a/lbrynet/core/Wallet.py b/lbrynet/core/Wallet.py index a535a8af6..8d1f0943c 100644 --- a/lbrynet/core/Wallet.py +++ b/lbrynet/core/Wallet.py @@ -1135,6 +1135,15 @@ class Wallet(object): def send_claim_to_address(self, claim_id, destination, amount): return defer.fail(NotImplementedError()) + def import_certificate_info(self, serialized_certificate_info): + return defer.fail(NotImplementedError()) + + def export_certificate_info(self, certificate_claim_id): + return defer.fail(NotImplementedError()) + + def get_certificates_for_signing(self): + return defer.fail(NotImplementedError()) + def _start(self): pass @@ -1494,6 +1503,15 @@ class LBRYumWallet(Wallet): def send_claim_to_address(self, claim_id, destination, amount): return self._run_cmd_as_defer_succeed('sendclaimtoaddress', claim_id, destination, amount) + def import_certificate_info(self, serialized_certificate_info): + return self._run_cmd_as_defer_succeed('importcertificateinfo', serialized_certificate_info) + + def export_certificate_info(self, certificate_claim_id): + return self._run_cmd_as_defer_succeed('exportcertificateinfo', certificate_claim_id) + + def get_certificates_for_signing(self): + return self._run_cmd_as_defer_succeed('getcertificatesforsigning') + # TODO: get rid of this function. lbryum should take care of it def _save_wallet(self, val=None): self.wallet.storage.write() diff --git a/lbrynet/daemon/Daemon.py b/lbrynet/daemon/Daemon.py index dbf3460c8..ae4fbf7f4 100644 --- a/lbrynet/daemon/Daemon.py +++ b/lbrynet/daemon/Daemon.py @@ -1757,6 +1757,39 @@ class Daemon(AuthJSONRPCServer): response = yield self._render_response(result) defer.returnValue(response) + @AuthJSONRPCServer.auth_required + @defer.inlineCallbacks + def jsonrpc_channel_export(self, claim_id): + """ + Export serialized channel signing information for a given certificate claim id + + Usage: + channel_export ( | --claim_id=) + + Returns: + (str) Serialized certificate information + """ + + result = yield self.session.wallet.export_certificate_info(claim_id) + defer.returnValue(result) + + @AuthJSONRPCServer.auth_required + @defer.inlineCallbacks + def jsonrpc_channel_import(self, serialized_certificate_info): + """ + Import serialized channel signing information (to allow signing new claims to the channel) + + Usage: + channel_import ( | + --serialized_certificate_info=) + + Returns: + (dict) Result dictionary + """ + + result = yield self.session.wallet.import_certificate_info(serialized_certificate_info) + defer.returnValue(result) + @AuthJSONRPCServer.auth_required @defer.inlineCallbacks def jsonrpc_publish(self, name, bid, metadata=None, file_path=None, fee=None, title=None,