Skip to content

Commit 8514e32

Browse files
Merge pull request #20 from 0glabs/update-socket
feat: update socket
2 parents faeed84 + aec5302 commit 8514e32

File tree

2 files changed

+53
-2
lines changed

2 files changed

+53
-2
lines changed

chain-state/src/signers_handler.rs

Lines changed: 52 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,16 +138,66 @@ impl ChainState {
138138
Ok(success) => {
139139
if success {
140140
info!("signer registered");
141-
return Ok(());
141+
sleep(Duration::from_secs(10)).await;
142+
} else {
143+
bail!(anyhow!("register signer failed"));
142144
}
143-
bail!(anyhow!("register signer failed"));
144145
}
145146
Err(e) => {
146147
bail!(anyhow!(e));
147148
}
148149
}
149150
}
150151
}
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+
}
151201
Ok(())
152202
}
153203

chain-state/src/transactor.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ use ethers::{
1212
pub enum TransactionInfo {
1313
RegisterSigner(H160),
1414
RegisterEpoch(H160, u64),
15+
UpdateSocket(H160, String),
1516
}
1617

1718
pub struct Transactor {

0 commit comments

Comments
 (0)