{"shas":[["af3aa485d65fcee97b323a0184fea17c0ccc28b4","c1fe694431f9243042d0eb4561d822ec1200493d@gmail.com","detection of conflicts between wallet tx's and the blockchain\n\nChanges:\n* added mapWalletInputs to track wallet tx's that use a certain outpoint\n* added AddWalletTx to update mapWallet and keep mapWalletInputs up-to-date\n* CWalletTx's can be in a rejected state\n* rejected tx's are stored separately in wallet.dat (as 'rejtx' key, and with an additional 'rejected' field that lists rejection level)\n* new function MarkRejected() will update tx's rejectness, its parent's spentness, and recursively mark its children rejected\n* a new function SyncWithWallet will do both adding to the block chain and check for conflicts, and is called when connecting blocks, for incoming transactions, and when rescanning\n* GUI is updated to show rejected transactions as \"rejected\" instead of \"0/unconfirmed\", with credit and debet 0 (like unmatured generations)\n* store rejected transactions separately in wallet.dat, to prevent old clients from using them\n\nTODO:\n* no unrejection yet\n* no mentioning in rpc output of rejections","Pieter Wuille"]],"repo":"sipa/bitcoin","actor":"sipa","ref":"refs/heads/rejectedtx","size":1,"head":"af3aa485d65fcee97b323a0184fea17c0ccc28b4","actor_gravatar":"369687cc5d256fe269c9fac0216be2a7","push_id":29234926}