Skip to main content

DefaultPolicyEngine

Struct DefaultPolicyEngine 

Source
pub struct DefaultPolicyEngine { /* private fields */ }
Expand description

Default policy engine implementation.

Evaluates transactions against configured whitelist, blacklist, and limit rules.

§Rule Evaluation Order

  1. Blacklist check (highest priority)
  2. Whitelist check (if enabled)
  3. Transaction limit check
  4. Allow (if all checks pass)

§Thread Safety

This struct is Send + Sync and can be safely shared across threads.

Implementations§

Source§

impl DefaultPolicyEngine

Source

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

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PolicyEngine for DefaultPolicyEngine

Source§

fn check(&self, tx: &ParsedTx) -> Result<PolicyResult, PolicyError>

Check if a transaction is allowed by policy rules. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.