v31.1-roots.1 · Commit 3: [PATCH 03/17] feat(policy): preserve cluster accounting and repair dynamic dust
test/functional/mempool_sigoplimit.py
Before: test/functional/mempool_sigoplimit.py · After: test/functional/mempool_sigoplimit.py
File metadata
index 810ba432c5383fb2535f3ece738578552a4f118c..7927316fa3bacd453171fe2fb924269dcf10cde0 100755
Download original patch · Release notes
Diff rows 1–23 of 23. Line numbers refer to the original before/after files.
+ Added− RemovedUnmarked lines are context.
Scroll the code area horizontally to read long lines. Before is on the left; after is on the right. Unified view fits narrow screens more easily.
test/functional/mempool_sigoplimit.py
CHANGED
|
@@ -52,7 +52,8 @@ MAX_PUBKEYS_PER_MULTISIG = 20
|
|
| 52 |
class BytesPerSigOpTest(BitcoinTestFramework):
|
| 53 |
def set_test_params(self):
|
| 54 |
self.num_nodes = 1
|
| 55 |
-
self.extra_args = [['-datacarriersize=100000', '-maxscriptsize=100000', '-acceptnonstddatacarrier=1', '-permitbaredatacarrier=1']]
|
|
|
|
| 56 |
|
| 57 |
def create_p2wsh_spending_tx(self, witness_script, output_script):
|
| 58 |
"""Create a 1-input-1-output P2WSH spending transaction with only the
|
|
@@ -237,6 +238,14 @@ class BytesPerSigOpTest(BitcoinTestFramework):
|
|
| 237 |
|
| 238 |
self.test_sigops_package()
|
| 239 |
self.test_legacy_sigops_stdness()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 240 |
|
| 241 |
|
| 242 |
if __name__ == '__main__':
|
|
|
|
| 52 |
class BytesPerSigOpTest(BitcoinTestFramework):
|
| 53 |
def set_test_params(self):
|
| 54 |
self.num_nodes = 1
|
| 55 |
+
# Isolate native sigop-adjusted vsize from Roots' carrier-data weight.
|
| 56 |
+
self.extra_args = [['-datacarriersize=100000', '-maxscriptsize=100000', '-acceptnonstddatacarrier=1', '-permitbaredatacarrier=1', '-datacarriercost=0']]
|
| 57 |
|
| 58 |
def create_p2wsh_spending_tx(self, witness_script, output_script):
|
| 59 |
"""Create a 1-input-1-output P2WSH spending transaction with only the
|
|
|
|
| 238 |
|
| 239 |
self.test_sigops_package()
|
| 240 |
self.test_legacy_sigops_stdness()
|
| 241 |
+
self.log.info("Extreme policy vsize rejects safely while a valid block remains acceptable")
|
| 242 |
+
self.restart_node(0, extra_args=self.extra_args[0] + ["-bytespersigop=2147483647"])
|
| 243 |
+
script = CScript([OP_FALSE, OP_IF] + [OP_CHECKSIG] * 5 + [OP_ENDIF, OP_TRUE])
|
| 244 |
+
tx = self.create_p2wsh_spending_tx(script, self.wallet.get_output_script())
|
| 245 |
+
self.generate(self.wallet, 1)
|
| 246 |
+
result = self.nodes[0].testmempoolaccept([tx.serialize().hex()])[0]
|
| 247 |
+
assert_equal(result["reject-reason"], "too-large-cluster")
|
| 248 |
+
self.generateblock(self.nodes[0], self.wallet.get_address(), [tx.serialize().hex()])
|
| 249 |
|
| 250 |
|
| 251 |
if __name__ == '__main__':
|