info_infoman, если захотите, в плане поиска дороги, например, к шубохранилищу для жены, заняться ещё чем-нибудь полезным, скажите. Я могу при случае проблемку подкинуть, пока есть они у меня, до решения которых, я пока ещё не добрался...
шуба всегда нужна
посему кидай
если проблемка интересная от чего ж не подумать
далее развивая тему
в стандартном клиенте не заложено функции отображения баланса чужих адресов
а нам нужно получить баланс не только адреса на который отправляем отрицательную транзакцию
но и балансы адресов на которые ушли средства с этого адреса после того как нас обманули(мы ж мстим)
чтобы не лопатить всю базу данных начиная от первого блока в поисках баланса этого адреса
достаточно знать ту самую транзакцию начиная с которой вы считаете что вас обманули(чинуша увел ваши налоги)
и это и логично
начиная с этой транзакции вы можете проследить всю судьбу своих вложеных в чинушу денег
и соответственно получить баланс как самого адреса чинуши так и всех адресов куда он мог потратить деньги
далее можно взять функцию проверки непотраченных входов:
BOOST_FOREACH(const CTxIn& txin, vin)
{
if (view.HaveCoins(txin.prevout.hash))
{
const CCoins &coins = view.GetCoins(txin.prevout.hash);
int64 nValueIn = coins.vout[txin.prevout.n].nValue;
nTotalIn += nValueIn;
}
if (vInOutPoints.count(txin.prevout))
return state.DoS(100, error("CTransaction::CheckTransaction() : duplicate inputs"));
vInOutPoints.insert(txin.prevout);
}
if (nTotalIn < 0)
return state.DoS(100, error("CTransaction::CheckTransaction() : nTotalIn negative"));
и получить массив адресов на которые нужно раскидать отрицательную сумму
эта отрицательная сумма изначально может иметь значение равное сумме обмана
(насколько вас обманули на столько и заминусовать чинушу)
однако с условием 1 - у вас достаточно средств для минусов, 2 - на балансе адресов достаточно средств для гашения отрицательных транзакций
исходя из этих данных уже можно строить полноценную транзакцию причем достаточно справедливую
приоритет гашения отрицательных транзакций таков:
1)адрес чинуши
если есть остаток
2) самый свежий непотраченый выход
итд пока баланс минусуемых адресов не будет равен отрицательной сумме которую мы хотим вменить
в qt можно в список транзакций впихнуть кнопку на против каждой исходящей транзакции (отомстить\пожаловаться)
эта кнопка будет иметь таргет на вкладку "отправить" с уже вставленными отрицательной суммой адресом который минусуем
вот как то так