pub struct NetworkCommissionRates {
pub inference_commission_bps: u32,
pub tee_commission_bps: u32,
pub custody_commission_bps: u32,
pub model_hosting_commission_bps: u32,
}Expand description
Network commission rates for provider payments (in basis points, 100 = 1%)
These commissions are taken as a percentage of payments to AI inference providers, TEE enclave providers, key management services, and model hosting providers. The commission flows to the network treasury for protocol development and governance.
§Examples
use tenzro_types::NetworkCommissionRates;
let rates = NetworkCommissionRates::default();
assert_eq!(rates.inference_commission_bps, 500); // 5%
// Calculate commission on a 100 TNZO payment
let payment = 100_000_000_000_000_000_000u128; // 100 TNZO
let commission = rates.calculate_inference_commission(payment).unwrap();
assert_eq!(commission, 5_000_000_000_000_000_000u128); // 5 TNZOFields§
§inference_commission_bps: u32Commission on AI inference payments (basis points)
Default: 500 bps (5%)
tee_commission_bps: u32Commission on TEE enclave usage payments (basis points)
Default: 500 bps (5%)
custody_commission_bps: u32Commission on key management/custody payments (basis points)
Default: 500 bps (5%)
model_hosting_commission_bps: u32Commission on model hosting payments (basis points)
Default: 500 bps (5%)
Implementations§
Source§impl NetworkCommissionRates
impl NetworkCommissionRates
Sourcepub fn new(
inference_commission_bps: u32,
tee_commission_bps: u32,
custody_commission_bps: u32,
model_hosting_commission_bps: u32,
) -> Self
pub fn new( inference_commission_bps: u32, tee_commission_bps: u32, custody_commission_bps: u32, model_hosting_commission_bps: u32, ) -> Self
Creates a new commission rate structure with custom values
Sourcepub fn calculate_inference_commission(
&self,
payment_amount: u128,
) -> Option<u128>
pub fn calculate_inference_commission( &self, payment_amount: u128, ) -> Option<u128>
Calculates the commission amount for an inference payment
Returns None if the calculation would overflow.
Sourcepub fn calculate_tee_commission(&self, payment_amount: u128) -> Option<u128>
pub fn calculate_tee_commission(&self, payment_amount: u128) -> Option<u128>
Calculates the commission amount for a TEE enclave payment
Returns None if the calculation would overflow.
Sourcepub fn calculate_custody_commission(&self, payment_amount: u128) -> Option<u128>
pub fn calculate_custody_commission(&self, payment_amount: u128) -> Option<u128>
Calculates the commission amount for a key custody payment
Returns None if the calculation would overflow.
Sourcepub fn calculate_model_hosting_commission(
&self,
payment_amount: u128,
) -> Option<u128>
pub fn calculate_model_hosting_commission( &self, payment_amount: u128, ) -> Option<u128>
Calculates the commission amount for a model hosting payment
Returns None if the calculation would overflow.
Trait Implementations§
Source§impl Clone for NetworkCommissionRates
impl Clone for NetworkCommissionRates
Source§fn clone(&self) -> NetworkCommissionRates
fn clone(&self) -> NetworkCommissionRates
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NetworkCommissionRates
impl Debug for NetworkCommissionRates
Source§impl Default for NetworkCommissionRates
impl Default for NetworkCommissionRates
Source§impl<'de> Deserialize<'de> for NetworkCommissionRates
impl<'de> Deserialize<'de> for NetworkCommissionRates
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for NetworkCommissionRates
Source§impl PartialEq for NetworkCommissionRates
impl PartialEq for NetworkCommissionRates
Source§fn eq(&self, other: &NetworkCommissionRates) -> bool
fn eq(&self, other: &NetworkCommissionRates) -> bool
self and other values to be equal, and is used by ==.