pub struct DefaultPolicyEngine { /* private fields */ }Expand description
Default policy engine implementation.
Evaluates transactions against configured whitelist, blacklist, and limit rules.
§Rule Evaluation Order
- Blacklist check (highest priority)
- Whitelist check (if enabled)
- Transaction limit check
- Allow (if all checks pass)
§Thread Safety
This struct is Send + Sync and can be safely shared across threads.
Implementations§
Source§impl DefaultPolicyEngine
impl DefaultPolicyEngine
Sourcepub fn new(config: PolicyConfig) -> Result<Self, PolicyError>
pub fn new(config: PolicyConfig) -> Result<Self, PolicyError>
Creates a new policy engine with the given configuration.
§Arguments
config- Policy configuration with whitelist, blacklist, and limits
§Returns
A new DefaultPolicyEngine instance.
§Errors
Returns PolicyError::InvalidConfiguration if the configuration is invalid
(e.g., an address appears in both whitelist and blacklist).
§Example
use txgate_policy::engine::DefaultPolicyEngine;
use txgate_policy::config::PolicyConfig;
use alloy_primitives::U256;
let config = PolicyConfig::new()
.with_whitelist(vec!["0xAAA".to_string()])
.with_transaction_limit("ETH", U256::from(5_000_000_000_000_000_000u64));
let engine = DefaultPolicyEngine::new(config).unwrap();Trait Implementations§
Source§impl Debug for DefaultPolicyEngine
impl Debug for DefaultPolicyEngine
Source§impl PolicyEngine for DefaultPolicyEngine
impl PolicyEngine for DefaultPolicyEngine
Source§fn check(&self, tx: &ParsedTx) -> Result<PolicyResult, PolicyError>
fn check(&self, tx: &ParsedTx) -> Result<PolicyResult, PolicyError>
Check if a transaction is allowed by policy rules. Read more
Auto Trait Implementations§
impl Freeze for DefaultPolicyEngine
impl RefUnwindSafe for DefaultPolicyEngine
impl Send for DefaultPolicyEngine
impl Sync for DefaultPolicyEngine
impl Unpin for DefaultPolicyEngine
impl UnwindSafe for DefaultPolicyEngine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more