1
1
use {
2
2
crate :: {
3
3
api:: { get_register_uri, ChainId } ,
4
- chain:: ethereum:: { EntropyStructsProviderInfo , SignablePythContract } ,
4
+ chain:: ethereum:: { EntropyStructsV2ProviderInfo , SignablePythContract } ,
5
5
command:: register_provider:: { register_provider_from_config, CommitmentMetadata } ,
6
6
config:: { Config , EthereumConfig , SetupProviderOptions } ,
7
7
state:: { HashChainState , PebbleHashChain } ,
@@ -76,7 +76,10 @@ async fn setup_chain_provider(
76
76
let contract = Arc :: new ( SignablePythContract :: from_config ( chain_config, & private_key) . await ?) ;
77
77
78
78
tracing:: info!( "Fetching provider info" ) ;
79
- let provider_info = contract. get_provider_info ( provider_address) . call ( ) . await ?;
79
+ let provider_info = contract
80
+ . get_provider_info_v2 ( provider_address)
81
+ . call ( )
82
+ . await ?;
80
83
tracing:: info!( "Provider info: {:?}" , provider_info) ;
81
84
82
85
let mut register = false ;
@@ -147,7 +150,10 @@ async fn setup_chain_provider(
147
150
tracing:: info!( "Registered" ) ;
148
151
}
149
152
150
- let provider_info = contract. get_provider_info ( provider_address) . call ( ) . await ?;
153
+ let provider_info = contract
154
+ . get_provider_info_v2 ( provider_address)
155
+ . call ( )
156
+ . await ?;
151
157
152
158
if register || !chain_config. sync_fee_only_on_register {
153
159
sync_fee ( & contract, & provider_info, chain_config. fee )
@@ -176,12 +182,16 @@ async fn setup_chain_provider(
176
182
. in_current_span ( )
177
183
. await ?;
178
184
185
+ sync_default_gas_limit ( & contract, & provider_info, chain_config. gas_limit )
186
+ . in_current_span ( )
187
+ . await ?;
188
+
179
189
Ok ( ( ) )
180
190
}
181
191
182
192
async fn sync_uri (
183
193
contract : & Arc < SignablePythContract > ,
184
- provider_info : & EntropyStructsProviderInfo ,
194
+ provider_info : & EntropyStructsV2ProviderInfo ,
185
195
uri : String ,
186
196
) -> Result < ( ) > {
187
197
let uri_as_bytes: Bytes = AbiBytes :: from ( uri. as_str ( ) ) . into ( ) ;
@@ -201,7 +211,7 @@ async fn sync_uri(
201
211
202
212
async fn sync_fee (
203
213
contract : & Arc < SignablePythContract > ,
204
- provider_info : & EntropyStructsProviderInfo ,
214
+ provider_info : & EntropyStructsV2ProviderInfo ,
205
215
provider_fee : u128 ,
206
216
) -> Result < ( ) > {
207
217
if provider_info. fee_in_wei != provider_fee {
@@ -220,7 +230,7 @@ async fn sync_fee(
220
230
221
231
async fn sync_fee_manager (
222
232
contract : & Arc < SignablePythContract > ,
223
- provider_info : & EntropyStructsProviderInfo ,
233
+ provider_info : & EntropyStructsV2ProviderInfo ,
224
234
fee_manager : Address ,
225
235
) -> Result < ( ) > {
226
236
if provider_info. fee_manager != fee_manager {
@@ -234,7 +244,7 @@ async fn sync_fee_manager(
234
244
235
245
async fn sync_max_num_hashes (
236
246
contract : & Arc < SignablePythContract > ,
237
- provider_info : & EntropyStructsProviderInfo ,
247
+ provider_info : & EntropyStructsV2ProviderInfo ,
238
248
max_num_hashes : u32 ,
239
249
) -> Result < ( ) > {
240
250
if provider_info. max_num_hashes != max_num_hashes {
@@ -250,3 +260,25 @@ async fn sync_max_num_hashes(
250
260
}
251
261
Ok ( ( ) )
252
262
}
263
+
264
+ async fn sync_default_gas_limit (
265
+ contract : & Arc < SignablePythContract > ,
266
+ provider_info : & EntropyStructsV2ProviderInfo ,
267
+ default_gas_limit : u32 ,
268
+ ) -> Result < ( ) > {
269
+ if provider_info. default_gas_limit != default_gas_limit {
270
+ tracing:: info!(
271
+ "Updating provider default gas limit to {:?}" ,
272
+ default_gas_limit
273
+ ) ;
274
+ if let Some ( receipt) = contract
275
+ . set_default_gas_limit ( default_gas_limit)
276
+ . send ( )
277
+ . await ?
278
+ . await ?
279
+ {
280
+ tracing:: info!( "Updated provider default gas limit to : {:?}" , receipt) ;
281
+ }
282
+ }
283
+ Ok ( ( ) )
284
+ }
0 commit comments