* add per-output unlock time field to transaction class
* get output unlock time (and relevant const fixes)
* move output unlocked check to separate function
* tx unlocked -> output unlocked in Blockchain
* per output unlock in tx creation; needs fork rules and testing
* per output unlock in tx prefix so it is signed...
also fix a couple typos/goofs
* wallet: check if using per output unlock time
* add rules.h and rules.cpp. git woopsie.
* update test for BlockchainDB changes
* Change tx v3 deregister to be a bool in tx header
* service_node_list: handle per output unlock times in contribution txs
* transaction: added verification of unlock_times.size()
* add gitlab config file for CD/CI
* formatting
* Update readme to display CI badge
* Replace designated initializers with aggregate initializers
* CD/CI for mac
* use git fetch for cli instead of clone
* CD/CI for windows
* Retrieve quorum list from height, reviewed
* Setup data structures for de/register TX
* Submit and validate partial/full deregisters
* Add P2P relaying of partial deregistration votes
* Code review adjustments for deregistration part 1
- Fix check_tx_semantic
- Remove signature_pod as votes are now stored as blobs. Serialization
overrides don't intefere with crypto::signature anymore.
* deregistration_vote_pool - changed sign/verify interface and removed repeated code
* Misc review, fix sign/verify api, vote threshold
* Deregister/tx edge case handling for combinatoric votes
* core, service_node_list: separated address from service node pubkey
* Retrieve quorum list from height, reviewed
* Setup data structures for de/register TX
* Submit and validate partial/full deregisters
* Add P2P relaying of partial deregistration votes
* Code review adjustments for deregistration part 1
- Fix check_tx_semantic
- Remove signature_pod as votes are now stored as blobs. Serialization
overrides don't intefere with crypto::signature anymore.
* deregistration_vote_pool - changed sign/verify interface and removed repeated code
* Misc review, fix sign/verify api, vote threshold
* Deregister/tx edge case handling for combinatoric votes
* Store service node lists for the duration of deregister lifetimes
* Quorum min/max bug, sort node list, fix node to test list
* Change quorum to store acc pub address, fix oob bug
* Code review for expiring votes, acc keys to pub_key, improve err msgs
* Add early out for is_deregistration_tx and protect against quorum changes
* Remove debug code, fix segfault
* Remove irrelevant check for tx v3 in blockchain, fix >= height for pruning quorum states
Incorrect assumption that a transaction can be kept in the chain if it could
eventually become invalid, because if it were the chain would be split and
eventually these transaction would be dropped. But also that we should not
override the pre-existing logic which handles this case anyway.
Transactions from the web wallet could have a duplicated public key,
which caused the Monero wallet to double-count ins and outs.
Fixed by applying upstream patch (Monero PR #3985).