@@ -12,6 +12,7 @@ use crate::models::blockchain::ContractSpec;
1212/// to the matched transactions before triggering the notifications
1313/// - Triggers to execute when conditions are met
1414#[ derive( Debug , Clone , Deserialize , Serialize , PartialEq , Default ) ]
15+ #[ serde( deny_unknown_fields) ]
1516pub struct Monitor {
1617 /// Unique name identifying this monitor
1718 pub name : String ,
@@ -37,6 +38,7 @@ pub struct Monitor {
3738
3839/// Contract address with optional ABI for decoding transactions and events
3940#[ derive( Debug , Clone , Deserialize , Serialize , PartialEq ) ]
41+ #[ serde( deny_unknown_fields) ]
4042pub struct AddressWithSpec {
4143 /// Contract address in the network's native format
4244 pub address : String ,
@@ -47,6 +49,7 @@ pub struct AddressWithSpec {
4749
4850/// Collection of conditions that can trigger a monitor
4951#[ derive( Debug , Clone , Deserialize , Serialize , PartialEq , Default ) ]
52+ #[ serde( deny_unknown_fields) ]
5053pub struct MatchConditions {
5154 /// Function calls to match
5255 pub functions : Vec < FunctionCondition > ,
@@ -60,6 +63,7 @@ pub struct MatchConditions {
6063
6164/// Condition for matching contract function calls
6265#[ derive( Debug , Clone , Deserialize , Serialize , PartialEq ) ]
66+ #[ serde( deny_unknown_fields) ]
6367pub struct FunctionCondition {
6468 /// Function signature (e.g., "transfer(address,uint256)")
6569 pub signature : String ,
@@ -70,6 +74,7 @@ pub struct FunctionCondition {
7074
7175/// Condition for matching contract events
7276#[ derive( Debug , Clone , Deserialize , Serialize , PartialEq ) ]
77+ #[ serde( deny_unknown_fields) ]
7378pub struct EventCondition {
7479 /// Event signature (e.g., "Transfer(address,address,uint256)")
7580 pub signature : String ,
@@ -80,6 +85,7 @@ pub struct EventCondition {
8085
8186/// Condition for matching transaction states
8287#[ derive( Debug , Clone , Deserialize , Serialize , PartialEq ) ]
88+ #[ serde( deny_unknown_fields) ]
8389pub struct TransactionCondition {
8490 /// Required transaction status
8591 pub status : TransactionStatus ,
@@ -90,6 +96,7 @@ pub struct TransactionCondition {
9096
9197/// Possible transaction execution states
9298#[ derive( Debug , Copy , Clone , Deserialize , Serialize , PartialEq ) ]
99+ #[ serde( deny_unknown_fields) ]
93100pub enum TransactionStatus {
94101 /// Match any transaction status
95102 Any ,
@@ -101,6 +108,7 @@ pub enum TransactionStatus {
101108
102109/// Conditions that should be met prior to triggering notifications
103110#[ derive( Debug , Clone , Deserialize , Serialize , PartialEq ) ]
111+ #[ serde( deny_unknown_fields) ]
104112pub struct TriggerConditions {
105113 /// The path to the script
106114 pub script_path : String ,
0 commit comments