# The MASM code of the Token Policy Manager Account Component.
#
# Owns one `active_*_policy` slot per mint / burn kind (send and receive policy roots live
# directly in the protocol-reserved callback slots
# `miden::protocol::faucet::callback::on_before_asset_added_to_*`), plus one
# `allowed_*_policies` map slot per kind for set-time validation. When any transfer policy is
# registered (including `AllowAll`), the protocol-level asset-callback storage slots are also
# installed and populated with the initial active send / receive policy roots, so every minted
# asset carries the callback flag and future `set_send_policy` / `set_receive_policy` switches
# apply uniformly to the whole circulating supply. Pair with policy components whose procedure
# roots are registered in the relevant allowed-policies map.
#
# `execute_*_policy` procedures are intentionally not exposed here: they are `exec`-invocation
# helpers used inline by other MASM (e.g. `faucets::fungible::mint_and_send`), which `use`
# the standards-side library directly. Only `call`-invocation procedures (`set_*_policy` and
# `get_*_policy`) are part of this component's public API. Send and receive policies are
# invoked directly by the kernel via the protocol callback slots — the manager no longer wraps
# them.

pub use ::miden::standards::faucets::policies::policy_manager::set_mint_policy
pub use ::miden::standards::faucets::policies::policy_manager::get_mint_policy
pub use ::miden::standards::faucets::policies::policy_manager::set_burn_policy
pub use ::miden::standards::faucets::policies::policy_manager::get_burn_policy
pub use ::miden::standards::faucets::policies::policy_manager::set_send_policy
pub use ::miden::standards::faucets::policies::policy_manager::get_send_policy
pub use ::miden::standards::faucets::policies::policy_manager::set_receive_policy
pub use ::miden::standards::faucets::policies::policy_manager::get_receive_policy
