Crate templar_curator_primitives

Source
Expand description

Chain-agnostic curator primitives for Templar Protocol vaults.

This crate provides shared curator policy and recovery logic that can be used by both NEAR and Soroban vault executors. It depends only on templar-vault-kernel types and contains no chain-specific SDK dependencies.

§Modules

  • auth: Pluggable authentication and authorization primitives
  • rbac: Role-based access control adapter
  • policy: Cap groups, supply queues, withdraw routes, refresh plans, and market locks
  • recovery: Recovery action determination and state machine recovery logic

Re-exports§

pub use auth::boundary_policy_class;
pub use auth::canonical_policy_class;
pub use auth::ActionKind;
pub use auth::AuthAdapter;
pub use auth::AuthError;
pub use auth::AuthPolicyClass;
pub use auth::AuthResult;
pub use rbac::RbacAuth;
pub use rbac::RbacConfig;
pub use rbac::Role;
pub use rbac::RoleAssignment;
pub use policy::cap_group::CapGroup;
pub use policy::cap_group::CapGroupError;
pub use policy::cap_group::CapGroupId;
pub use policy::cap_group::CapGroupRecord;
pub use policy::cap_group::CapGroupUpdate;
pub use policy::cap_group::CapGroupUpdateKey;
pub use policy::cap_group_adapter::cap_group_record_absolute_cap;
pub use policy::cap_group_adapter::cap_group_record_relative_cap;
pub use policy::cap_group_adapter::set_cap_group_record_absolute_cap;
pub use policy::cap_group_adapter::set_cap_group_record_relative_cap;
pub use policy::cooldown::Cooldown;
pub use policy::cooldown::CooldownError;
pub use policy::market_lock::validate_lock_expiry;
pub use policy::market_lock::MarketLock;
pub use policy::market_lock::MarketLockSet;
pub use policy::refresh_plan::RefreshPlan;
pub use policy::refresh_plan::RefreshPlanError;
pub use policy::state::MarketConfig;
pub use policy::state::PolicyState;
pub use policy::supply_queue::SupplyQueue;
pub use policy::supply_queue::SupplyQueueEntry;
pub use policy::supply_queue::SupplyQueueError;
pub use policy::target_set::build_refresh_plan_from_targets;
pub use policy::target_set::build_withdraw_plan_from_target_principals;
pub use policy::target_set::find_duplicate_target_id;
pub use policy::target_set::find_first_duplicate;
pub use policy::target_set::find_locked_targets;
pub use policy::target_set::get_locked_targets;
pub use policy::target_set::has_unique_items;
pub use policy::target_set::is_target_locked;
pub use policy::target_set::validate_no_duplicate_targets;
pub use policy::withdraw_route::WithdrawRoute;
pub use policy::withdraw_route::WithdrawRouteEntry;
pub use policy::withdraw_route::WithdrawRouteError;
pub use recovery::determine_recovery_action;
pub use recovery::handle_allocation_failure;
pub use recovery::handle_payout_failure;
pub use recovery::handle_payout_failure_default;
pub use recovery::handle_refresh_failure;
pub use recovery::handle_withdrawal_failure;
pub use recovery::RecoveryContext;
pub use recovery::RecoveryOutcome;
pub use recovery::RecoveryProgress;
pub use governance::timelock_config_decision;
pub use governance::FeeChangeDecision;
pub use governance::FeeChangeError;
pub use governance::FeeConfig;
pub use governance::MembershipChangeError;
pub use governance::PendingQueue;
pub use governance::PendingQueueError;
pub use governance::PendingValue;
pub use governance::Restrictions;
pub use governance::TimelockConfigError;
pub use governance::TimelockDecision;
pub use utils::nonnegative_i128_to_u128;
pub use utils::seconds_to_nanoseconds;
pub use utils::u128_to_i128_checked;

Modules§

auth
Chain-agnostic authentication and authorization primitives.
governance
Chain-agnostic governance helpers for vault executors.
policy
Curator policy types and functions.
rbac
RBAC (Role-Based Access Control) auth adapter for curator vaults.
recovery
Recovery logic for handling failed or stuck operations.
utils