mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-19 13:27:35 +02:00
Merge branch 'master' into elem-23.3.0rc4
This commit is contained in:
commit
69b18d4bef
36 changed files with 915 additions and 74 deletions
|
|
@ -154,7 +154,7 @@ class BlockSignTest(BitcoinTestFramework):
|
|||
result = miner.combineblocksigs(block, sigs, self.witnessScript)
|
||||
sigs = sigs + self.nodes[i].signblock(block, self.witnessScript)
|
||||
assert_equal(result["complete"], i >= self.required_signers)
|
||||
# submitting should have no effect pre-threshhold
|
||||
# submitting should have no effect pre-threshold
|
||||
if i < self.required_signers:
|
||||
miner.submitblock(result["hex"])
|
||||
self.check_height(blockcount)
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -290,7 +290,7 @@ class TapHashPeginTest(BitcoinTestFramework):
|
|||
|
||||
# Test introspection opcodes
|
||||
# 1a. No Pegins/issuances
|
||||
self.log.info("Instrospection tests: outpoint flag")
|
||||
self.log.info("Introspection tests: outpoint flag")
|
||||
self.tapscript_satisfy_test(CScript([OP_0, OP_INSPECTINPUTOUTPOINT, b'\x00', OP_EQUALVERIFY, OP_DROP, OP_DROP, OP_1]))
|
||||
# 1b. Add a pegin (Test pegin input must be 0x40)
|
||||
self.tapscript_satisfy_test(CScript([OP_0, OP_INSPECTINPUTOUTPOINT, b'\x40', OP_EQUALVERIFY, OP_DROP, OP_DROP, OP_1]), add_pegin=True)
|
||||
|
|
@ -304,7 +304,7 @@ class TapHashPeginTest(BitcoinTestFramework):
|
|||
self.tapscript_satisfy_test(CScript([OP_0, OP_INSPECTINPUTOUTPOINT, b'\x00', OP_EQUALVERIFY, OP_DROP, OP_DROP, OP_1]), add_pegin = True, add_issuance=True, fail="Script failed an OP_EQUALVERIFY operation")
|
||||
|
||||
# Test opcode for inspecting prev tx
|
||||
self.log.info("Instrospection tests: inputs")
|
||||
self.log.info("Introspection tests: inputs")
|
||||
self.tapscript_satisfy_test(CScript([OP_0, OP_INSPECTINPUTOUTPOINT, b'\x00', OP_EQUALVERIFY, OP_TOALTSTACK, OP_EQUALVERIFY, OP_FROMALTSTACK, OP_EQUAL]), add_prevout=True)
|
||||
|
||||
# Test taproot asset with blinding.
|
||||
|
|
@ -351,12 +351,12 @@ class TapHashPeginTest(BitcoinTestFramework):
|
|||
self.tapscript_satisfy_test(CScript([-1, OP_1, OP_INSPECTINPUTVALUE, OP_FALSE, OP_EQUAL]), fail="Introspection index out of bounds")
|
||||
|
||||
# Test current input
|
||||
self.log.info("Instrospection tests: current input index")
|
||||
self.log.info("Introspection tests: current input index")
|
||||
self.tapscript_satisfy_test(CScript([OP_PUSHCURRENTINPUTINDEX, OP_0, OP_EQUAL]))
|
||||
self.tapscript_satisfy_test(CScript([OP_PUSHCURRENTINPUTINDEX, OP_1, OP_EQUAL]), fail="Script evaluated without error but finished with a false/empty top stack element")
|
||||
|
||||
# Test Outputs
|
||||
self.log.info("Instrospection tests: outputs")
|
||||
self.log.info("Introspection tests: outputs")
|
||||
for blind in [True, False]:
|
||||
for out_pos in [0, 1]:
|
||||
self.tapscript_satisfy_test(CScript([out_pos, OP_INSPECTOUTPUTASSET, OP_TOALTSTACK, OP_EQUALVERIFY, OP_FROMALTSTACK, OP_EQUAL]), blind=blind, add_out_asset=out_pos)
|
||||
|
|
@ -368,8 +368,8 @@ class TapHashPeginTest(BitcoinTestFramework):
|
|||
self.tapscript_satisfy_test(CScript([120, OP_INSPECTOUTPUTASSET, OP_FALSE, OP_EQUAL]), fail="Introspection index out of bounds")
|
||||
self.tapscript_satisfy_test(CScript([-1, OP_INSPECTOUTPUTVALUE, OP_FALSE, OP_EQUAL]), fail="Introspection index out of bounds")
|
||||
|
||||
# Finally, check the tx instrospection
|
||||
self.log.info("Instrospection tests: tx")
|
||||
# Finally, check the tx introspection
|
||||
self.log.info("Introspection tests: tx")
|
||||
# Test version equality
|
||||
self.tapscript_satisfy_test(CScript([OP_INSPECTVERSION, int(2).to_bytes(4, 'little'), OP_EQUAL]), ver = 2)
|
||||
self.tapscript_satisfy_test(CScript([OP_INSPECTVERSION, int(5).to_bytes(4, 'little'), OP_EQUAL]), ver = 2, fail="Script evaluated without error but finished with a false/empty top stack element")
|
||||
|
|
|
|||
|
|
@ -261,6 +261,10 @@ class PSBTTest(BitcoinTestFramework):
|
|||
decoded = self.nodes[1].decodepsbt(walletsignpsbt_out['psbt'])
|
||||
assert 'non_witness_utxo' in decoded['inputs'][0]
|
||||
assert 'witness_utxo' in decoded['inputs'][0]
|
||||
if 'asset' in decoded['inputs'][0]['witness_utxo']:
|
||||
assert_equal(decoded['inputs'][0]['witness_utxo']['asset'], 'b2e15d0d7a0c94e4e2ce0fe6e8691b9e451377f6e46e8045a86f7c4b5d4f0f23')
|
||||
else:
|
||||
assert 'assetcommitment' in decoded['inputs'][0]['witness_utxo']
|
||||
# Check decodepsbt fee calculation (input values shall only be counted once per UTXO)
|
||||
#assert_equal(decoded['fee'], created_psbt['fee']) # ELEMENTS: we do not have this field. Should be fixed by #900
|
||||
assert_equal(walletsignpsbt_out['complete'], True)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue