pub trait StakingReservesProviderTrait<AccountId, Balance, CurrencyId> {
// Required methods
fn can_bond(
token_id: CurrencyId,
account_id: &AccountId,
amount: Balance,
use_balance_from: Option<BondKind>
) -> bool;
fn bond(
token_id: CurrencyId,
account_id: &AccountId,
amount: Balance,
use_balance_from: Option<BondKind>
) -> DispatchResult;
fn unbond(
token_id: CurrencyId,
account_id: &AccountId,
amount: Balance
) -> Balance;
}