mirror of
https://github.com/creating2morrow/neveko.git
synced 2024-12-22 19:49:24 +00:00
start msig parsing debug
This commit is contained in:
parent
87847ad01d
commit
55d35d4206
5 changed files with 53 additions and 91 deletions
|
@ -108,13 +108,6 @@ most of the complex logic stays in neveko-core, exported from [lib.rs](./neveko-
|
||||||
|
|
||||||
[the manual](./docs/man.md)
|
[the manual](./docs/man.md)
|
||||||
|
|
||||||
## Library
|
|
||||||
|
|
||||||
* hosting various hacking, networking, IT etc. related resources
|
|
||||||
* http://c2m66oddrzozztxyzjegbdwtgbeiibq5vz2tpchmqamrzcahcfoq.b32.i2p/library/Books
|
|
||||||
* have a request for a new book? send a message to nevekonet I2P inspIRC #random
|
|
||||||
* see `light-reading` for curated (< 1mb) in-browser reading over i2p
|
|
||||||
|
|
||||||
## Donations
|
## Donations
|
||||||
|
|
||||||
This is just a hobby project but if anything here is useful donations are much appreciated!
|
This is just a hobby project but if anything here is useful donations are much appreciated!
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
-----BEGIN PGP SIGNED MESSAGE-----
|
|
||||||
Hash: SHA512
|
|
||||||
|
|
||||||
|
|
||||||
I am the admin of http://c2m66oddrzozztxyzjegbdwtgbeiibq5vz2tpchmqamrzcahcfoq.b32.i2p.
|
|
||||||
I am in control of my PGP key.
|
|
||||||
I will update this canary within 14 days.
|
|
||||||
Today is Mon Jul 10 05:16:42 PM UTC 2023.
|
|
||||||
|
|
||||||
Latest monero block hash (2926791):
|
|
||||||
20932190c77951183c0b085bdfc64e4bdc7150e7d625b0c6ec46c06c9ef226e8
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iJIEARYKADoWIQQEoRcoLQbE3ctKJgFaPK5QG49jTAUCZKw8+hwcY3JlYXRpbmdf
|
|
||||||
dG9tb3Jyb3dAcHJvdG9uLm1lAAoJEFo8rlAbj2NMeZkA/j8ifcKtkeHE7mFu3k54
|
|
||||||
ltxRec2FFhpT/M6X7ClXzsn6AP9Y2VBYK7ChQ34NCrskAxWP9uC/mwv481Oy0d4C
|
|
||||||
RyNWAw==
|
|
||||||
=g/0B
|
|
||||||
-----END PGP SIGNATURE-----
|
|
|
@ -1,41 +0,0 @@
|
||||||
-----BEGIN PGP SIGNED MESSAGE-----
|
|
||||||
Hash: SHA512
|
|
||||||
|
|
||||||
NEVEKO Links (Dark)
|
|
||||||
|
|
||||||
# Git Clone
|
|
||||||
torsocks git clone git://nvl5yxqvhufllbsvfevqsytxdbi7aqonp7qceu4ljomfyardzjd7l4yd.onion/neveko
|
|
||||||
|
|
||||||
# Git Web
|
|
||||||
http://c2m373qgif2qigrntgjaqevfcnqjkqb2zcy3bop6vqwbudqqr7oa.b32.i2p
|
|
||||||
|
|
||||||
# Nevekonet InspIRC
|
|
||||||
c2m5qj2ceahpbzusggcoybjm2kqakrd5v7zv2pvi2qxozqmgjpua.b32.i2p/6667
|
|
||||||
- #dev (patches, feature planning)
|
|
||||||
- #issues (bug report, testing results)
|
|
||||||
- #random
|
|
||||||
|
|
||||||
# Home, index, canary, pgp, etc.
|
|
||||||
http://c2m66oddrzozztxyzjegbdwtgbeiibq5vz2tpchmqamrzcahcfoq.b32.i2p
|
|
||||||
- /pgp.txt - public gpg signing key
|
|
||||||
- /index.txt - this page
|
|
||||||
- /canary.txt
|
|
||||||
- /download/neveko-x86_64-linux-gnu-v0.4.8-alpha.tar.bz2 - latest neveko download
|
|
||||||
- /download/neveko-x86_64-linux-gnu-v0.4.8-alpha.tar.bz2.sig - detached sig
|
|
||||||
- /library - knowledge is power
|
|
||||||
|
|
||||||
# Monero remote node (stagenet)
|
|
||||||
http://xmr3kaacphwkk4z2gp35bdl47lrrnzimmyqj4oliauqrjzqecofa.b32.i2p
|
|
||||||
|
|
||||||
NEVEKO Links (Clear)
|
|
||||||
|
|
||||||
# Github
|
|
||||||
git clone https://github.com/creating2morrow/neveko.git
|
|
||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iJIEARYKADoWIQQEoRcoLQbE3ctKJgFaPK5QG49jTAUCZK3bORwcY3JlYXRpbmdf
|
|
||||||
dG9tb3Jyb3dAcHJvdG9uLm1lAAoJEFo8rlAbj2NMc8EA/2VekgaXzCQ7nyTs1Ysl
|
|
||||||
7zDhyVUf2LcnDYub/l7Uj5DoAQDgk9pmuR/n4NXdFTMMBpvQFhaxGq5tpQFgL5ma
|
|
||||||
cw6KDw==
|
|
||||||
=VxhW
|
|
||||||
-----END PGP SIGNATURE-----
|
|
|
@ -125,6 +125,7 @@ pub async fn rx(m: Json<Message>) {
|
||||||
|
|
||||||
/// Parse the multisig message type and info
|
/// Parse the multisig message type and info
|
||||||
fn parse_multisig_message(mid: String) -> MultisigMessageData {
|
fn parse_multisig_message(mid: String) -> MultisigMessageData {
|
||||||
|
// TODO(c2m): manual parsing and db testing
|
||||||
let d: reqres::DecryptedMessageBody = decrypt_body(mid);
|
let d: reqres::DecryptedMessageBody = decrypt_body(mid);
|
||||||
let mut bytes = hex::decode(d.body.into_bytes()).unwrap_or(Vec::new());
|
let mut bytes = hex::decode(d.body.into_bytes()).unwrap_or(Vec::new());
|
||||||
let decoded = String::from_utf8(bytes).unwrap_or(utils::empty_string());
|
let decoded = String::from_utf8(bytes).unwrap_or(utils::empty_string());
|
||||||
|
|
|
@ -5,6 +5,7 @@ use std::sync::mpsc::{
|
||||||
};
|
};
|
||||||
|
|
||||||
pub struct MultisigManagement {
|
pub struct MultisigManagement {
|
||||||
|
pub completed_prepare: bool,
|
||||||
pub exchange_multisig_keys: String,
|
pub exchange_multisig_keys: String,
|
||||||
pub export_info: String,
|
pub export_info: String,
|
||||||
pub has_mediator: bool,
|
pub has_mediator: bool,
|
||||||
|
@ -19,6 +20,7 @@ pub struct MultisigManagement {
|
||||||
impl Default for MultisigManagement {
|
impl Default for MultisigManagement {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
MultisigManagement {
|
MultisigManagement {
|
||||||
|
completed_prepare: false,
|
||||||
exchange_multisig_keys: utils::empty_string(),
|
exchange_multisig_keys: utils::empty_string(),
|
||||||
export_info: utils::empty_string(),
|
export_info: utils::empty_string(),
|
||||||
has_mediator: false,
|
has_mediator: false,
|
||||||
|
@ -353,31 +355,40 @@ impl eframe::App for MarketApp {
|
||||||
vendor,
|
vendor,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
if ui.button("Check").clicked() {
|
||||||
|
let mediator_prefix = String::from(crate::GUI_MSIG_MEDIATOR_DB_KEY);
|
||||||
|
let vendor_prefix = String::from(crate::GUI_OVL_DB_KEY);
|
||||||
|
let mediator =
|
||||||
|
utils::search_gui_db(mediator_prefix, self.m_order.orid.clone());
|
||||||
|
let vendor = utils::search_gui_db(vendor_prefix, self.m_order.orid.clone());
|
||||||
|
let is_prepared = prepared_msg(&mediator, &self.m_order.orid, &vendor);
|
||||||
|
self.msig.completed_prepare = is_prepared;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
ui.horizontal(|ui| {
|
// ui.horizontal(|ui| {
|
||||||
ui.label("Make: \t\t\t\t\t\t");
|
// ui.label("Make: \t\t\t\t\t\t");
|
||||||
if ui.button("Make").clicked() {}
|
// if ui.button("Make").clicked() {}
|
||||||
});
|
// });
|
||||||
ui.horizontal(|ui| {
|
// ui.horizontal(|ui| {
|
||||||
ui.label("Exchange Keys: \t\t");
|
// ui.label("Exchange Keys: \t\t");
|
||||||
if ui.button("Exchange").clicked() {}
|
// if ui.button("Exchange").clicked() {}
|
||||||
});
|
// });
|
||||||
ui.horizontal(|ui| {
|
// ui.horizontal(|ui| {
|
||||||
ui.label("Fund:\t\t\t\t\t\t\t");
|
// ui.label("Fund:\t\t\t\t\t\t\t");
|
||||||
if ui.button("Fund").clicked() {}
|
// if ui.button("Fund").clicked() {}
|
||||||
});
|
// });
|
||||||
ui.horizontal(|ui| {
|
// ui.horizontal(|ui| {
|
||||||
ui.label("Export Info: \t\t\t\t");
|
// ui.label("Export Info: \t\t\t\t");
|
||||||
if ui.button("Export").clicked() {}
|
// if ui.button("Export").clicked() {}
|
||||||
});
|
// });
|
||||||
ui.horizontal(|ui| {
|
// ui.horizontal(|ui| {
|
||||||
ui.label("Release Payment: \t");
|
// ui.label("Release Payment: \t");
|
||||||
if ui.button("Sign Txset").clicked() {}
|
// if ui.button("Sign Txset").clicked() {}
|
||||||
});
|
// });
|
||||||
ui.horizontal(|ui| {
|
// ui.horizontal(|ui| {
|
||||||
ui.label("Create Dispute: \t\t");
|
// ui.label("Create Dispute: \t\t");
|
||||||
if ui.button("Dispute").clicked() {}
|
// if ui.button("Dispute").clicked() {}
|
||||||
});
|
// });
|
||||||
ui.label("\n");
|
ui.label("\n");
|
||||||
if ui.button("Exit").clicked() {
|
if ui.button("Exit").clicked() {
|
||||||
self.is_managing_multisig = false;
|
self.is_managing_multisig = false;
|
||||||
|
@ -1156,6 +1167,7 @@ impl eframe::App for MarketApp {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Async fn requests
|
||||||
fn _refresh_on_delete_product_req(_tx: Sender<bool>, _ctx: egui::Context) {
|
fn _refresh_on_delete_product_req(_tx: Sender<bool>, _ctx: egui::Context) {
|
||||||
tokio::spawn(async move {
|
tokio::spawn(async move {
|
||||||
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
|
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
|
||||||
|
@ -1298,6 +1310,8 @@ fn send_prepare_info_req(
|
||||||
);
|
);
|
||||||
// Request mediator and vendor while we're at it
|
// Request mediator and vendor while we're at it
|
||||||
// Will coordinating send this on make requests next
|
// Will coordinating send this on make requests next
|
||||||
|
|
||||||
|
// TODO(c2m): check for partial completion to avoid duplicate requests
|
||||||
log::debug!("constructing {} msig messages", message::PREPARE_MSIG);
|
log::debug!("constructing {} msig messages", message::PREPARE_MSIG);
|
||||||
let v_msig_request: reqres::MultisigInfoRequest = reqres::MultisigInfoRequest {
|
let v_msig_request: reqres::MultisigInfoRequest = reqres::MultisigInfoRequest {
|
||||||
contact: i2p::get_destination(None),
|
contact: i2p::get_destination(None),
|
||||||
|
@ -1319,3 +1333,17 @@ fn send_prepare_info_req(
|
||||||
});
|
});
|
||||||
ctx.request_repaint();
|
ctx.request_repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// End Async fn requests
|
||||||
|
|
||||||
|
fn prepared_msg(mediator: &String, orid: &String, vendor: &String,) -> bool {
|
||||||
|
let s = db::Interface::open();
|
||||||
|
let m_msig_key = format!("{}-{}-{}", message::PREPARE_MSIG, orid, mediator);
|
||||||
|
let v_msig_key = format!("{}-{}-{}", message::PREPARE_MSIG, orid, vendor);
|
||||||
|
let m_prepare = db::Interface::read(&s.env, &s.handle, &m_msig_key);
|
||||||
|
let v_prepare = db::Interface::read(&s.env, &s.handle, &v_msig_key);
|
||||||
|
log::debug!("mediator prepare info: {}", &m_prepare);
|
||||||
|
log::debug!("vendor prepare info: {}", &v_prepare);
|
||||||
|
m_prepare != utils::empty_string() && v_prepare != utils::empty_string()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue