呼び出しを受け入れるメソッド (sudo または回復パレットに似ています) があり、呼び出しをディスパッチする前に検証を実行したいと考えています。検証は主に、このメソッドを介して呼び出すことができるメソッドを制限することに関するものです。
ここに私が持っているコード例があります:
decl_module! {
pub struct Module<T: Trait> for enum Call where origin: T::Origin {
type Error = Error<T>;
fn deposit_event() = default;
pub fn foo(origin, call: Box<<T as Trait>::Call>) -> DispatchResult {
ensure_signed(origin)?;
let sender = match *call {
Call::test(x) => Ok(()),
_ => Err(())
};
Ok(())
}
pub fn test(origin, x: u32) -> DispatchResult {
Ok(())
}
}
}
call
この例では、関数が呼び出されている場合にのみ成功させたいと考えていtest()
ます。
残念ながら、タイプの不一致に関するエラーが表示されます。助けていただければ幸いです。ありがとうございます。
私が得るエラーは次のとおりです。
Call::test(x) => Ok(()),
| ^^^^^^^^^^^^^ expected associated type, found enum Call
|
= note: expected associated type <T as Trait>::Call
found enum Call<_>
= note: consider constraining the associated type <T as Trait>::Call to Call<_> or calling a method that returns <T as Trait>::Call