miden_usdcx/note/
costs.rs1use miden_protocol::note::NoteScriptRoot;
5use miden_standards::note::P2idNote;
6use miden_standards::note::costs::{NoteConsumptionCost, NoteCost};
7
8use super::xreserve_admin::XReserveSetAttesterNote;
9use super::xreserve_burn::XReserveBurnNote;
10use super::xreserve_mint::XUsdcMintNote;
11
12pub const XUSDC_MINT_CONSUMPTION_CYCLES: u32 = 65787;
14
15pub const XUSDC_BURN_CONSUMPTION_CYCLES: u32 = 35540;
17
18pub const XRESERVE_SET_ATTESTER_CONSUMPTION_CYCLES: u32 = 30314;
20
21impl NoteConsumptionCost for XUsdcMintNote {
22 fn consumption_cycles() -> u32 {
23 XUSDC_MINT_CONSUMPTION_CYCLES
24 }
25
26 fn created_notes() -> Vec<NoteScriptRoot> {
27 vec![P2idNote::script_root()]
28 }
29}
30
31impl NoteConsumptionCost for XReserveBurnNote {
32 fn consumption_cycles() -> u32 {
33 XUSDC_BURN_CONSUMPTION_CYCLES
34 }
35}
36
37impl NoteConsumptionCost for XReserveSetAttesterNote {
38 fn consumption_cycles() -> u32 {
39 XRESERVE_SET_ATTESTER_CONSUMPTION_CYCLES
40 }
41}
42
43pub(crate) fn note_costs() -> [(NoteScriptRoot, NoteCost); 3] {
45 [
46 (XUsdcMintNote::script_root(), NoteCost::of::<XUsdcMintNote>()),
47 (XReserveBurnNote::script_root(), NoteCost::of::<XReserveBurnNote>()),
48 (
49 XReserveSetAttesterNote::script_root(),
50 NoteCost::of::<XReserveSetAttesterNote>(),
51 ),
52 ]
53}