org.bitcoinj.utils.VersionTally Java Examples
The following examples show how to use
org.bitcoinj.utils.VersionTally.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: NetworkParameters.java From bcm-android with GNU General Public License v3.0 | 6 votes |
/** * The flags indicating which script validation tests should be applied to * the given transaction. Enables support for alternative blockchains which enable * tests based on different criteria. * * @param block block the transaction belongs to. * @param transaction to determine flags for. * @param height height of the block, if known, null otherwise. Returned * tests should be a safe subset if block height is unknown. */ public EnumSet<Script.VerifyFlag> getTransactionVerificationFlags(final Block block, final Transaction transaction, final VersionTally tally, final Integer height) { final EnumSet<Script.VerifyFlag> verifyFlags = EnumSet.noneOf(Script.VerifyFlag.class); if (block.getTimeSeconds() >= NetworkParameters.BIP16_ENFORCE_TIME) verifyFlags.add(Script.VerifyFlag.P2SH); // Start enforcing CHECKLOCKTIMEVERIFY, (BIP65) for block.nVersion=4 // blocks, when 75% of the network has upgraded: if (block.getVersion() >= Block.BLOCK_VERSION_BIP65 && tally.getCountAtOrAbove(Block.BLOCK_VERSION_BIP65) > this.getMajorityEnforceBlockUpgrade()) { verifyFlags.add(Script.VerifyFlag.CHECKLOCKTIMEVERIFY); } return verifyFlags; }
Example #2
Source File: NetworkParameters.java From green_android with GNU General Public License v3.0 | 6 votes |
/** * The flags indicating which script validation tests should be applied to * the given transaction. Enables support for alternative blockchains which enable * tests based on different criteria. * * @param block block the transaction belongs to. * @param transaction to determine flags for. * @param height height of the block, if known, null otherwise. Returned * tests should be a safe subset if block height is unknown. */ public EnumSet<Script.VerifyFlag> getTransactionVerificationFlags(final Block block, final Transaction transaction, final VersionTally tally, final Integer height) { final EnumSet<Script.VerifyFlag> verifyFlags = EnumSet.noneOf(Script.VerifyFlag.class); if (block.getTimeSeconds() >= NetworkParameters.BIP16_ENFORCE_TIME) verifyFlags.add(Script.VerifyFlag.P2SH); // Start enforcing CHECKLOCKTIMEVERIFY, (BIP65) for block.nVersion=4 // blocks, when 75% of the network has upgraded: if (block.getVersion() >= Block.BLOCK_VERSION_BIP65 && tally.getCountAtOrAbove(Block.BLOCK_VERSION_BIP65) > this.getMajorityEnforceBlockUpgrade()) { verifyFlags.add(Script.VerifyFlag.CHECKLOCKTIMEVERIFY); } return verifyFlags; }
Example #3
Source File: NetworkParameters.java From GreenBits with GNU General Public License v3.0 | 6 votes |
/** * The flags indicating which script validation tests should be applied to * the given transaction. Enables support for alternative blockchains which enable * tests based on different criteria. * * @param block block the transaction belongs to. * @param transaction to determine flags for. * @param height height of the block, if known, null otherwise. Returned * tests should be a safe subset if block height is unknown. */ public EnumSet<Script.VerifyFlag> getTransactionVerificationFlags(final Block block, final Transaction transaction, final VersionTally tally, final Integer height) { final EnumSet<Script.VerifyFlag> verifyFlags = EnumSet.noneOf(Script.VerifyFlag.class); if (block.getTimeSeconds() >= NetworkParameters.BIP16_ENFORCE_TIME) verifyFlags.add(Script.VerifyFlag.P2SH); // Start enforcing CHECKLOCKTIMEVERIFY, (BIP65) for block.nVersion=4 // blocks, when 75% of the network has upgraded: if (block.getVersion() >= Block.BLOCK_VERSION_BIP65 && tally.getCountAtOrAbove(Block.BLOCK_VERSION_BIP65) > this.getMajorityEnforceBlockUpgrade()) { verifyFlags.add(Script.VerifyFlag.CHECKLOCKTIMEVERIFY); } return verifyFlags; }
Example #4
Source File: NetworkParameters.java From bcm-android with GNU General Public License v3.0 | 5 votes |
/** * The flags indicating which block validation tests should be applied to * the given block. Enables support for alternative blockchains which enable * tests based on different criteria. * * @param block block to determine flags for. * @param height height of the block, if known, null otherwise. Returned * tests should be a safe subset if block height is unknown. */ public EnumSet<Block.VerifyFlag> getBlockVerificationFlags(final Block block, final VersionTally tally, final Integer height) { final EnumSet<Block.VerifyFlag> flags = EnumSet.noneOf(Block.VerifyFlag.class); if (block.isBIP34()) { final Integer count = tally.getCountAtOrAbove(Block.BLOCK_VERSION_BIP34); if (null != count && count >= getMajorityEnforceBlockUpgrade()) { flags.add(Block.VerifyFlag.HEIGHT_IN_COINBASE); } } return flags; }
Example #5
Source File: TestNet3Params.java From green_android with GNU General Public License v3.0 | 5 votes |
@Override public EnumSet<Script.VerifyFlag> getTransactionVerificationFlags( final Block block, final Transaction transaction, final VersionTally tally, final Integer height) { final EnumSet<Script.VerifyFlag> flags = super.getTransactionVerificationFlags(block, transaction, tally, height); if (height >= SEGWIT_ENFORCE_HEIGHT) flags.add(Script.VerifyFlag.SEGWIT); return flags; }
Example #6
Source File: NetworkParameters.java From green_android with GNU General Public License v3.0 | 5 votes |
/** * The flags indicating which block validation tests should be applied to * the given block. Enables support for alternative blockchains which enable * tests based on different criteria. * * @param block block to determine flags for. * @param height height of the block, if known, null otherwise. Returned * tests should be a safe subset if block height is unknown. */ public EnumSet<Block.VerifyFlag> getBlockVerificationFlags(final Block block, final VersionTally tally, final Integer height) { final EnumSet<Block.VerifyFlag> flags = EnumSet.noneOf(Block.VerifyFlag.class); if (block.isBIP34()) { final Integer count = tally.getCountAtOrAbove(Block.BLOCK_VERSION_BIP34); if (null != count && count >= getMajorityEnforceBlockUpgrade()) { flags.add(Block.VerifyFlag.HEIGHT_IN_COINBASE); } } return flags; }
Example #7
Source File: TestNet3Params.java From GreenBits with GNU General Public License v3.0 | 5 votes |
@Override public EnumSet<Script.VerifyFlag> getTransactionVerificationFlags( final Block block, final Transaction transaction, final VersionTally tally, final Integer height) { final EnumSet<Script.VerifyFlag> flags = super.getTransactionVerificationFlags(block, transaction, tally, height); if (height >= SEGWIT_ENFORCE_HEIGHT) flags.add(Script.VerifyFlag.SEGWIT); return flags; }
Example #8
Source File: NetworkParameters.java From GreenBits with GNU General Public License v3.0 | 5 votes |
/** * The flags indicating which block validation tests should be applied to * the given block. Enables support for alternative blockchains which enable * tests based on different criteria. * * @param block block to determine flags for. * @param height height of the block, if known, null otherwise. Returned * tests should be a safe subset if block height is unknown. */ public EnumSet<Block.VerifyFlag> getBlockVerificationFlags(final Block block, final VersionTally tally, final Integer height) { final EnumSet<Block.VerifyFlag> flags = EnumSet.noneOf(Block.VerifyFlag.class); if (block.isBIP34()) { final Integer count = tally.getCountAtOrAbove(Block.BLOCK_VERSION_BIP34); if (null != count && count >= getMajorityEnforceBlockUpgrade()) { flags.add(Block.VerifyFlag.HEIGHT_IN_COINBASE); } } return flags; }