def do_test_solve(self, tx, tx_in_idx, **kwargs): solver = Solver(tx) constraints = solver.determine_constraints(tx_in_idx, p2sh_lookup=kwargs.get("p2sh_lookup")) solution_list, witness_list = solver.solve_for_constraints(constraints, **kwargs) solution_script = BitcoinScriptTools.compile_push_data_list(solution_list) tx.txs_in[tx_in_idx].script = solution_script tx.txs_in[tx_in_idx].witness = witness_list if not kwargs.get("nocheck"): tx.check_solution(tx_in_idx) return solution_script, witness_list
def do_test_solve(self, tx, tx_in_idx, **kwargs): solver = Solver(tx) constraints = solver.determine_constraints( tx_in_idx, p2sh_lookup=kwargs.get("p2sh_lookup")) solution_list, witness_list = solver.solve_for_constraints( constraints, **kwargs) solution_script = BitcoinScriptTools.compile_push_data_list( solution_list) tx.txs_in[tx_in_idx].script = solution_script tx.txs_in[tx_in_idx].witness = witness_list if not kwargs.get("nocheck"): tx.check_solution(tx_in_idx) return solution_script, witness_list
def test_nulldata_push(self): OP_RETURN = BitcoinScriptTools.compile("OP_RETURN") for sample in [b'test', b'me', b'a', b'39qEwuwyb2cAX38MFtrNzvq3KV9hSNov3q', b'', b'0'*80]: sample_push = BitcoinScriptTools.compile_push_data_list([sample]) sample_script = OP_RETURN + sample_push sc = script_for_nulldata_push(sample) info = script_info_for_script(sc) self.assertEqual(info.get("data"), sample_push) self.assertEqual(sc, sample_script) out = Tx.TxOut(1, sc) # ensure we can create a tx Tx(0, [], [out]) # convert between asm and back to ensure no bugs with compilation self.assertEqual(sc, BitcoinScriptTools.compile(BitcoinScriptTools.disassemble(sc)))
def test_nulldata_push(self): OP_RETURN = BitcoinScriptTools.compile("OP_RETURN") for sample in [b'test', b'me', b'a', b'39qEwuwyb2cAX38MFtrNzvq3KV9hSNov3q', b'', b'0'*80]: sample_push = BitcoinScriptTools.compile_push_data_list([sample]) sample_script = OP_RETURN + sample_push sc = script_for_nulldata_push(sample) info = script_info_for_script(sc) self.assertEqual(info.get("data"), sample_push) self.assertEqual(sc, sample_script) out = Tx.TxOut(1, sc) # ensure we can create a tx Tx(0, [], [out]) # convert between asm and back to ensure no bugs with compilation self.assertEqual(sc, BitcoinScriptTools.compile(BitcoinScriptTools.disassemble(sc)))