diff options
author | Pieter Wuille <pieter.wuille@gmail.com> | 2016-07-18 20:57:20 +0200 |
---|---|---|
committer | dexX7 <dexx@bitwatch.co> | 2016-07-31 21:47:21 +0200 |
commit | 3f65ba2b3bd6c4e269f8f89b16d386b443431693 (patch) | |
tree | 01e5877a9482e9fc2b04378190b2bdfb3e5d89ce /src/policy/policy.cpp | |
parent | ced6c940da35fcf33160d1c7f2f54a99dc7eedb1 (diff) | |
download | bitcoin-3f65ba2b3bd6c4e269f8f89b16d386b443431693.tar.xz |
Treat high-sigop transactions as larger rather than rejecting them
Diffstat (limited to 'src/policy/policy.cpp')
-rw-r--r-- | src/policy/policy.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/policy/policy.cpp b/src/policy/policy.cpp index 57df1f0b19..48080abc77 100644 --- a/src/policy/policy.cpp +++ b/src/policy/policy.cpp @@ -154,12 +154,14 @@ bool AreInputsStandard(const CTransaction& tx, const CCoinsViewCache& mapInputs) return true; } -int64_t GetVirtualTransactionSize(int64_t nWeight) +unsigned int nBytesPerSigOp = DEFAULT_BYTES_PER_SIGOP; + +int64_t GetVirtualTransactionSize(int64_t nWeight, int64_t nSigOpCost) { - return (nWeight + WITNESS_SCALE_FACTOR - 1) / WITNESS_SCALE_FACTOR; + return (std::max(nWeight, nSigOpCost * nBytesPerSigOp) + WITNESS_SCALE_FACTOR - 1) / WITNESS_SCALE_FACTOR; } -int64_t GetVirtualTransactionSize(const CTransaction& tx) +int64_t GetVirtualTransactionSize(const CTransaction& tx, int64_t nSigOpCost) { - return GetVirtualTransactionSize(GetTransactionWeight(tx)); + return GetVirtualTransactionSize(GetTransactionWeight(tx), nSigOpCost); } |