* Create a strategy for block heights after Sapling Provides an arbitrary network (mainnet or testnet) and a block height between the Sapling activation height on that network and the maximum block height. * Create a helper function to select block heights Allows generating block heights inside a range using a scale factor between 0 and 1. * Allow specifying the outpoint index for mock UTXOs Avoid creating multiple transparent transfers in the same transaction with the same source UTXO, which would lead to a double spend. * Create helper function to mock multiple transfers Given relative block height scale factors, create a mock transparent transfer for each one of them. Also add a constant that serves as a guideline for the maximum number of transparent transfers to mock. * Create helper function to sanitize tx. version Make sure the arbitrary transaction version is valid for the network (testnet or mainnet) at the specified block height. * Create `mock_transparent_transaction` helper func. Creates a V4 or V5 mock transaction that only includes transparent inputs and outputs. * Create helper function for transaction validation Performs the actual tested action of verifying a transaction. It sets up the verifier and uses it to obtain the verification result. * Test if zero lock time means unlocked Generate arbitrary transactions with zero lock time, and check that they are accepted by the transaction verifier. * Allow changing the sequence number of an input Add a setter method for a `transparent::Input`'s sequence number. This setter is only available for testing. * Test if sequence numbers can disable lock time Create arbitrary transactions and set the sequence numbers of all of its inputs to `u32::MAX` to see if that disables the lock time and the transactions are accepted by the verifier. * Test block height lock times Make sure that the transaction verifier rejects transactions that are still locked at a certain block height. * Test block time lock times Test that the transaction verifier rejects a transaction that is validated at a block time that's before the transaction's lock time. * Test unlocking by block height Test that transactions unlocked at an earlier block height are accepted by the transaction verifier. * Test transactions unlocked by the block time Test that transactions that were unlocked at a previous block time are accepted by the transaction verifier. * Fix an incorrect method comment Co-authored-by: teor <teor@riseup.net> |
||
---|---|---|
.. | ||
benches | ||
proptest-regressions | ||
src | ||
Cargo.toml | ||
build.rs |