From 40ff09b8fb6a9f669b9d7da3ef4cd447ec2e1c39 Mon Sep 17 00:00:00 2001
From: yjh <yjh465402634@gmail.com>
Date: Tue, 31 Oct 2023 00:05:27 +0800
Subject: [PATCH] pub `keystore_accounts/accounts_from_keys` for offchain
 Signer (#2051)

---
 substrate/frame/system/src/offchain.rs | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/substrate/frame/system/src/offchain.rs b/substrate/frame/system/src/offchain.rs
index dd4ac6782a5..a019cfd666e 100644
--- a/substrate/frame/system/src/offchain.rs
+++ b/substrate/frame/system/src/offchain.rs
@@ -154,8 +154,8 @@ impl<T: SigningTypes, C: AppCrypto<T::Public, T::Signature>, X> Signer<T, C, X>
 	/// all available accounts and the provided accounts
 	/// in `with_filter`. If no accounts are provided,
 	/// use all accounts by default.
-	fn accounts_from_keys<'a>(&'a self) -> Box<dyn Iterator<Item = Account<T>> + 'a> {
-		let keystore_accounts = self.keystore_accounts();
+	pub fn accounts_from_keys<'a>(&'a self) -> Box<dyn Iterator<Item = Account<T>> + 'a> {
+		let keystore_accounts = Self::keystore_accounts();
 		match self.accounts {
 			None => Box::new(keystore_accounts),
 			Some(ref keys) => {
@@ -175,7 +175,8 @@ impl<T: SigningTypes, C: AppCrypto<T::Public, T::Signature>, X> Signer<T, C, X>
 		}
 	}
 
-	fn keystore_accounts(&self) -> impl Iterator<Item = Account<T>> {
+	/// Return all available accounts in keystore.
+	pub fn keystore_accounts() -> impl Iterator<Item = Account<T>> {
 		C::RuntimeAppPublic::all().into_iter().enumerate().map(|(index, key)| {
 			let generic_public = C::GenericPublic::from(key);
 			let public: T::Public = generic_public.into();
-- 
GitLab