17
17
} ,
18
18
} ,
19
19
anyhow:: Result ,
20
- ethers:: signers:: {
21
- LocalWallet ,
22
- Signer ,
20
+ ethers:: {
21
+ abi:: Bytes as AbiBytes ,
22
+ signers:: {
23
+ LocalWallet ,
24
+ Signer ,
25
+ } ,
26
+ types:: Bytes ,
23
27
} ,
24
28
std:: sync:: Arc ,
25
29
} ;
@@ -40,22 +44,25 @@ pub async fn setup_provider(opts: &SetupProviderOptions) -> Result<()> {
40
44
// Initialize a Provider to interface with the EVM contract.
41
45
let contract =
42
46
Arc :: new ( SignablePythContract :: from_config ( & chain_config, & private_key) . await ?) ;
47
+
48
+ tracing:: info!( "{}: fetching provider info" , chain_id) ;
43
49
let provider_info = contract. get_provider_info ( provider_address) . call ( ) . await ?;
44
- tracing:: info!( "Provider info: {:?}" , provider_info) ;
50
+ tracing:: info!( "{0}: provider info: {1 :?}" , chain_id , provider_info) ;
45
51
46
52
let mut register = false ;
47
53
48
54
let uri = get_register_uri ( & opts. base_uri , & chain_id) ?;
55
+ let uri_as_bytes: Bytes = AbiBytes :: from ( uri. as_str ( ) ) . into ( ) ;
49
56
50
57
// This condition satisfies for both when there is no registration and when there are no
51
58
// more random numbers left to request
52
59
if provider_info. end_sequence_number <= provider_info. sequence_number {
53
60
tracing:: info!(
54
- "endSequenceNumber <= sequenceNumber. endSequenceNumber={0}, sequenceNumber={1}" ,
61
+ "{0}: endSequenceNumber <= sequenceNumber. endSequenceNumber={1}, sequenceNumber={2}" ,
62
+ chain_id,
55
63
provider_info. end_sequence_number,
56
64
provider_info. sequence_number
57
65
) ;
58
- tracing:: info!( "Registering to {}" , & chain_id) ;
59
66
register = true ;
60
67
} else {
61
68
let metadata =
@@ -80,13 +87,16 @@ pub async fn setup_provider(opts: &SetupProviderOptions) -> Result<()> {
80
87
if chain_state. reveal ( provider_info. original_commitment_sequence_number ) ?
81
88
!= provider_info. original_commitment
82
89
{
83
- tracing:: info!( "The root of the generated hash chain for chain id {} does not match the commitment" , & chain_id) ;
84
- tracing:: info!( "Registering to {}" , & chain_id) ;
90
+ tracing:: info!(
91
+ "{}: the root of the generated hash chain does not match the commitment" ,
92
+ & chain_id
93
+ ) ;
85
94
register = true ;
86
95
}
87
96
}
88
97
89
98
if register {
99
+ tracing:: info!( "{}: registering" , & chain_id) ;
90
100
register_provider ( & RegisterProviderOptions {
91
101
config : opts. config . clone ( ) ,
92
102
chain_id : chain_id. clone ( ) ,
@@ -96,22 +106,25 @@ pub async fn setup_provider(opts: &SetupProviderOptions) -> Result<()> {
96
106
uri,
97
107
} )
98
108
. await ?;
109
+ tracing:: info!( "{}: registered" , & chain_id) ;
99
110
} else {
100
111
if provider_info. fee_in_wei != opts. fee {
112
+ tracing:: info!( "{}: updating provider fee" , chain_id) ;
101
113
if let Some ( r) = contract. set_provider_fee ( opts. fee ) . send ( ) . await ?. await ? {
102
- tracing:: info!( "Updated provider fee: {:?}" , r) ;
114
+ tracing:: info!( "{0}: updated provider fee: {1 :?}" , chain_id , r) ;
103
115
}
104
116
}
105
117
106
- if bincode:: deserialize :: < String > ( & provider_info. uri ) ? != uri {
118
+ if & provider_info. uri != & uri_as_bytes {
119
+ tracing:: info!( "{}: updating provider uri" , chain_id) ;
107
120
if let Some ( receipt) = contract
108
- . set_provider_uri ( bincode :: serialize ( & uri ) ? . into ( ) )
121
+ . set_provider_uri ( uri_as_bytes )
109
122
. send ( )
110
123
. await ?
111
124
. log_msg ( "Pending transfer hash" )
112
125
. await ?
113
126
{
114
- tracing:: info!( "Updated provider uri: {:?}" , receipt) ;
127
+ tracing:: info!( "{0}: updated provider uri: {1 :?}" , chain_id , receipt) ;
115
128
}
116
129
}
117
130
}
0 commit comments