a method to create an instance of given wallet class
type ReturnType = (Wallet: WalletConfig<I>) => I;