mirror of
https://github.com/uqbar-dao/nectar.git
synced 2025-01-03 14:17:20 +03:00
fix: use personal rpc for register, if set with flag
This commit is contained in:
parent
aa46605596
commit
9ecc630d63
@ -47,6 +47,7 @@ async fn serve_register_fe(
|
||||
ws_networking: (tokio::net::TcpListener, bool),
|
||||
http_server_port: u16,
|
||||
testnet: bool,
|
||||
maybe_rpc: Option<String>,
|
||||
) -> (Identity, Vec<u8>, Keyfile) {
|
||||
// check if we have keys saved on disk, encrypted
|
||||
// if so, prompt user for "password" to decrypt with
|
||||
@ -67,7 +68,15 @@ async fn serve_register_fe(
|
||||
|
||||
let (tx, mut rx) = mpsc::channel::<(Identity, Keyfile, Vec<u8>)>(1);
|
||||
let (our, decoded_keyfile, encoded_keyfile) = tokio::select! {
|
||||
_ = register::register(tx, kill_rx, our_ip, ws_networking, http_server_port, disk_keyfile, testnet) => {
|
||||
_ = register::register(
|
||||
tx,
|
||||
kill_rx,
|
||||
our_ip,
|
||||
ws_networking,
|
||||
http_server_port,
|
||||
disk_keyfile,
|
||||
testnet,
|
||||
maybe_rpc) => {
|
||||
panic!("registration failed")
|
||||
}
|
||||
Some((our, decoded_keyfile, encoded_keyfile)) = rx.recv() => {
|
||||
@ -323,6 +332,7 @@ async fn main() {
|
||||
(ws_tcp_handle, flag_used),
|
||||
http_server_port,
|
||||
on_testnet, // true if testnet mode
|
||||
matches.get_one::<String>("rpc").cloned(),
|
||||
)
|
||||
.await;
|
||||
|
||||
@ -331,14 +341,7 @@ async fn main() {
|
||||
None => {
|
||||
match password {
|
||||
None => {
|
||||
serve_register_fe(
|
||||
&home_directory_path,
|
||||
our_ip.to_string(),
|
||||
(ws_tcp_handle, flag_used),
|
||||
http_server_port,
|
||||
on_testnet, // true if testnet mode
|
||||
)
|
||||
.await
|
||||
panic!("Fake node must be booted with either a --fake-node-name, --password, or both.");
|
||||
}
|
||||
Some(password) => {
|
||||
match fs::read(format!("{}/.keys", home_directory_path)).await {
|
||||
|
@ -121,6 +121,7 @@ pub async fn register(
|
||||
http_port: u16,
|
||||
keyfile: Option<Vec<u8>>,
|
||||
testnet: bool,
|
||||
maybe_rpc: Option<String>,
|
||||
) {
|
||||
// Networking info is generated and passed to the UI, but not used until confirmed
|
||||
let (public_key, serialized_networking_keypair) = keygen::generate_networking_key();
|
||||
@ -153,13 +154,22 @@ pub async fn register(
|
||||
};
|
||||
|
||||
// This ETH provider uses public rpc endpoints to verify registration signatures.
|
||||
let url = if testnet {
|
||||
let url = if let Some(rpc_url) = maybe_rpc {
|
||||
rpc_url
|
||||
} else if testnet {
|
||||
"wss://ethereum-sepolia-rpc.publicnode.com".to_string()
|
||||
} else {
|
||||
"wss://optimism-rpc.publicnode.com".to_string()
|
||||
};
|
||||
let connector = WsConnect { url, auth: None };
|
||||
let client = ClientBuilder::default().ws(connector).await.unwrap();
|
||||
let Ok(client) = ClientBuilder::default().ws(connector).await else {
|
||||
panic!(
|
||||
"Error: runtime could not connect to ETH RPC.\n\
|
||||
This is necessary in order to verify node identity onchain.\n\
|
||||
Please make sure you are using a valid WebSockets URL if using \
|
||||
the --rpc flag, and you are connected to the internet."
|
||||
);
|
||||
};
|
||||
|
||||
let provider = Arc::new(Provider::new_with_client(client));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user