Bump CIYAM AT requirement to v1.3
Remove multi-blockchain AT aspect for now (BlockchainAPI).
For PUT_PREVIOUS_BLOCK_HASH_INTO_A we no longer use SHA256 to condense 64-byte block signature into 32 bytes.
Now we put block height into A1 and SHA192 of signature into A2 through A4.
This allows possible future lookup of block data using "block hash", with verification that it is the same block.
Some AT functions use "address in B" but sometimes we populate B with account's public key instead.
So the method "getAccountFromB" is smart and checks for an actual, textual address in B starting with 'Q', otherwise assumes B contains public key.
The Settings field "useBitcoinTestNet" (boolean) now replaced with "bitcoinNet" (String) with possible values MAIN (default), TEST3, REGTEST.
This allows for more varied development/testing scenarios.
Use correct Bitcoin nSequence value 0xFFFFFFFE for P2SH, i.e. enable locktime, disable RBF.
Roll REGTEST checkpoints file generator into main BTC class.
Yet another rewrite of Bitcoin P2SH scripts for BTC-QORT cross-chain trading.
Added associated test classes BuildP2SH, CheckP2SH, DeployAT (unfinished).
Bump bitcoinj to 0.15.5 for fixes.
lockTime is int (seconds since epoch), not long (ms since epoch).
Improve output of Initiate1.
Added (most of) Respond2.
Now using ATv2 dated 20181101172102
ATData now uses byte[] creatorPublicKey instead of String creator.
TransactionData now has hashCode() and equals() methods,
which is needed for new Transaction Comparator,
used to sort transactions within a block,
AT-first, then timestamp, then signature.
AT-Transactions generate their own signatures using SHA2-256 of serialized data.
Arbitrary Transactions try to clean up their files when orphaned.
Deploy AT Transactions now check creation bytes (even for old v1 ATs).
Deprecated Transaction.getBlock() as it doesn't seem used
and would be better to simply have getHeight() rather than
a method that 'knows too much' about Blocks/BlockData.
Corresponding TransactionRepository.getBlockDataFromSignature()
also deprecated.
Loads more comments.
Tidied up some SQL: mainly correcting case,
moving PRIMARY KEY clauses to end of CREATE TABLE,
removing unnecessary columns from indexes.
Added "type" column to TransactionCreatorIndex so users can find
their transactions and optionally filter by type.
In BlockTransactions table, transaction_signature is now UNIQUE
as a transaction cannot be included in more than one block.
Various AT-related HSQLDB table and index changes.
ArbitraryTransactions transformer fixed to always return a list of payments,
even if empty. (Previously could return null which broke things).
Added simplistic block generator.
NOTE: unit tests broken due to pending upgrade to JUnit 5
ATs can create AT-Transactions which contain payments (of any asset) and/or messages.
Legacy Qora1 DeployATTransactions create AT records in the repository but set to "finished"
so that they never execute.
More repository support for ATs.
In HSQLDB, create a new TYPE called ATStateHash which is used to verify the same AT outcome
on a per-block basis.
Added Accounts.account as a foreign key to AccountBalances with ON DELETE CASCADE.
ATStates now include state_hash and fees on a per-block basis.
ATTransactions now include asset_id.
When transforming DeployATTransactions, don't include any signature when collating bytes for signing!