File tree Expand file tree Collapse file tree 2 files changed +53
-2
lines changed Expand file tree Collapse file tree 2 files changed +53
-2
lines changed Original file line number Diff line number Diff line change @@ -138,16 +138,66 @@ impl ChainState {
138
138
Ok ( success) => {
139
139
if success {
140
140
info ! ( "signer registered" ) ;
141
- return Ok ( ( ) ) ;
141
+ sleep ( Duration :: from_secs ( 10 ) ) . await ;
142
+ } else {
143
+ bail ! ( anyhow!( "register signer failed" ) ) ;
142
144
}
143
- bail ! ( anyhow!( "register signer failed" ) ) ;
144
145
}
145
146
Err ( e) => {
146
147
bail ! ( anyhow!( e) ) ;
147
148
}
148
149
}
149
150
}
150
151
}
152
+ match self
153
+ . da_signers
154
+ . get_signer ( vec ! [ self . signer_address] )
155
+ . call ( )
156
+ . await ?
157
+ . get ( 0 )
158
+ {
159
+ Some ( signer_detail) => {
160
+ if signer_detail. socket != socket {
161
+ info ! (
162
+ "change socket of signer from {:?} to {:?}" ,
163
+ signer_detail. socket, socket
164
+ ) ;
165
+ let input_data = self
166
+ . da_signers
167
+ . update_socket ( socket. clone ( ) )
168
+ . calldata ( )
169
+ . unwrap ( ) ;
170
+ let tx_request = TransactionRequest :: new ( )
171
+ . to ( self . da_signers . address ( ) )
172
+ . data ( input_data) ;
173
+
174
+ match self
175
+ . transactor
176
+ . lock ( )
177
+ . await
178
+ . send (
179
+ tx_request,
180
+ TransactionInfo :: UpdateSocket ( self . signer_address , socket. clone ( ) ) ,
181
+ )
182
+ . await
183
+ {
184
+ Ok ( success) => {
185
+ if success {
186
+ info ! ( "socket updated to {:?}" , socket. clone( ) ) ;
187
+ return Ok ( ( ) ) ;
188
+ }
189
+ bail ! ( anyhow!( "update socket failed" ) ) ;
190
+ }
191
+ Err ( e) => {
192
+ bail ! ( anyhow!( e) ) ;
193
+ }
194
+ }
195
+ }
196
+ }
197
+ None => {
198
+ bail ! ( "cannot get signer from precompile!" )
199
+ }
200
+ }
151
201
Ok ( ( ) )
152
202
}
153
203
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ use ethers::{
12
12
pub enum TransactionInfo {
13
13
RegisterSigner ( H160 ) ,
14
14
RegisterEpoch ( H160 , u64 ) ,
15
+ UpdateSocket ( H160 , String ) ,
15
16
}
16
17
17
18
pub struct Transactor {
You can’t perform that action at this time.
0 commit comments