merge unrelated tx blocks in MoneroWallet.cpp:mergeTx()

cleanup;
remove -g for debugger
This commit is contained in:
woodser
2019-07-08 11:41:46 -04:00
parent 52861006f7
commit 6c0e2cacfe
3 changed files with 23 additions and 144 deletions
+1 -42
View File
@@ -129,57 +129,20 @@ namespace monero {
void MoneroTxWallet::merge(const shared_ptr<MoneroTx>& self, const shared_ptr<MoneroTx>& other) {
cout << "MoneroTxWallet::merge(MoneroTxs)" << endl;
cout << self << ", " << other << endl;
//cout << "MoneroTxWallet::merge(MoneroTx&, MoneroTx&)" << endl;
cout << self->id << endl;
cout << "bump" << endl;
cout << other->id << endl;
cout << "And onward..." << endl;
shared_ptr<MoneroTxWallet> temp = dynamic_pointer_cast<MoneroTxWallet>(self);
if (temp == nullptr) cout << "you're gonna be in for a bad time" << endl;
shared_ptr<MoneroTxWallet> temp2 = dynamic_pointer_cast<MoneroTxWallet>(other);
if (temp2 == nullptr) cout << "you're gonna be in for a bad time 2" << endl;
merge(static_pointer_cast<MoneroTxWallet>(self), static_pointer_cast<MoneroTxWallet>(other));
}
void MoneroTxWallet::merge(const shared_ptr<MoneroTxWallet>& self, const shared_ptr<MoneroTxWallet>& other) {
cout << "MoneroTxWallet::merge()" << endl;
cout << self << ", " << other << endl;
cout << "Lets iterate over self block tx pointers" << endl;
if (self->block != boost::none) {
for (const shared_ptr<MoneroTx>& tx : self->block.get()->txs) {
cout << tx << endl;
}
}
cout << "Lets iterate over other block tx pointers" << endl;
if (other->block != boost::none) {
for (const shared_ptr<MoneroTx>& tx : other->block.get()->txs) {
cout << tx << endl;
}
}
if (this != self.get()) throw runtime_error("this != self");
if (self == other) {
cout << "These are the same reference so we're returning" << endl;
return;
}
if (self == other) return;
// merge base classes
cout << "Merging base classes" << endl;
MoneroTx::merge(self, other);
cout << "Returned from MoneroTx::merge()" << endl;
// merge wallet extensions
note = MoneroUtils::reconcile(note, other->note);
cout << "2" << endl;
// merge incoming transfers
if (!other->incomingTransfers.empty()) {
for (const shared_ptr<MoneroIncomingTransfer> transfer : other->incomingTransfers) { // NOTE: not using reference so shared_ptr is not deleted when tx is dereferenced
@@ -188,16 +151,12 @@ namespace monero {
}
}
cout << "3" << endl;
// merge outgoing transfer
if (other->outgoingTransfer != boost::none) {
other->outgoingTransfer.get()->tx = self;
if (self->outgoingTransfer == boost::none) self->outgoingTransfer = other->outgoingTransfer;
else self->outgoingTransfer.get()->merge(self->outgoingTransfer.get(), other->outgoingTransfer.get());
}
cout << "4" << endl;
}
//boost::property_tree::ptree MoneroUtils::txWalletToPropertyTree(const MoneroTxWallet& tx) {