@@ -4,10 +4,7 @@ use crate::web3::{
4
4
contracts:: {
5
5
core:: error:: ContractError , // Using custom error ContractError
6
6
implementations:: {
7
- ai_token_contract:: AIToken , compute_pool_contract:: ComputePool ,
8
- compute_registry_contract:: ComputeRegistryContract ,
9
- prime_network_contract:: PrimeNetworkContract ,
10
- work_validators:: synthetic_data_validator:: SyntheticDataWorkValidator ,
7
+ ai_token_contract:: AIToken , compute_pool_contract:: ComputePool , compute_registry_contract:: ComputeRegistryContract , prime_network_contract:: PrimeNetworkContract , stake_manager:: StakeManagerContract , work_validators:: synthetic_data_validator:: SyntheticDataWorkValidator
11
8
} ,
12
9
} ,
13
10
wallet:: Wallet ,
@@ -20,6 +17,7 @@ pub struct Contracts {
20
17
pub ai_token : AIToken ,
21
18
pub prime_network : PrimeNetworkContract ,
22
19
pub compute_pool : ComputePool ,
20
+ pub stake_manager : Option < StakeManagerContract > ,
23
21
pub synthetic_data_validator : Option < SyntheticDataWorkValidator > ,
24
22
}
25
23
@@ -29,6 +27,7 @@ pub struct ContractBuilder<'a> {
29
27
ai_token : Option < AIToken > ,
30
28
prime_network : Option < PrimeNetworkContract > ,
31
29
compute_pool : Option < ComputePool > ,
30
+ stake_manager : Option < StakeManagerContract > ,
32
31
synthetic_data_validator : Option < SyntheticDataWorkValidator > ,
33
32
}
34
33
@@ -40,6 +39,7 @@ impl<'a> ContractBuilder<'a> {
40
39
ai_token : None ,
41
40
prime_network : None ,
42
41
compute_pool : None ,
42
+ stake_manager : None ,
43
43
synthetic_data_validator : None ,
44
44
}
45
45
}
@@ -76,6 +76,11 @@ impl<'a> ContractBuilder<'a> {
76
76
self
77
77
}
78
78
79
+ pub fn with_stake_manager ( mut self ) -> Self {
80
+ self . stake_manager = Some ( StakeManagerContract :: new ( self . wallet , "stake_manager.json" ) ) ;
81
+ self
82
+ }
83
+
79
84
// TODO: This is not ideal yet - now you have to init all contracts all the time
80
85
pub fn build ( self ) -> Result < Contracts , ContractError > {
81
86
// Using custom error ContractError
@@ -101,6 +106,7 @@ impl<'a> ContractBuilder<'a> {
101
106
None => return Err ( ContractError :: Other ( "PrimeNetwork not initialized" . into ( ) ) ) , // Custom error handling
102
107
} ,
103
108
synthetic_data_validator : self . synthetic_data_validator ,
109
+ stake_manager : self . stake_manager ,
104
110
} )
105
111
}
106
112
}
0 commit comments