use frame_support::sp_runtime::{MultiSignature, CryptoTypeId};
use frame_support::sp_runtime::app_crypto::{Public, Pair, sr25519, ed25519, Ss58Codec, CryptoTypePublicPair};
use frame_support::sp_runtime::traits::{Verify, IdentifyAccount};
use frame_support::pallet_prelude::Encode;
use sp_core::hexdisplay::HexDisplay;
use sp_runtime::AccountId32;
获取 ed25519 也就是GRANDPA的公钥信息
获取公钥
// 首先拿到 account_id 的Vec<u8>数组
let account_id = ed25519::Pair::from_string("助记词...", None)
.expect("Seed error of ed25519.").public().to_vec();
// 实际上公钥就是通过这个数组的数据转成16进制而成的。
let account_id = sp_core::hexdisplay::HexDisplay::from(&account_id);
println!("用户公钥 = {:?}", &account_id);