1
2
3
4
5
6
7
8
9
10
11
// Create an account specification
pub trait AccountSpecs {
    type Address;
    type Chain;
    type Context;
    type Data;

    fn authenticate(&self) -> Self;
    fn create(&self, chain: Self::Chain, context: Self::Context, data: Self::Data) -> Self;
    fn describe(&self, context: Self::Context) -> Self::Data;
}