def solve(self, digest): from .transaction import Witness pubkey = self.privk.pub() sig = self.privk.sign(digest) return (ScriptSig.from_stack_data([ StackData.from_bytes(sig + self.sighash.as_byte()), StackData.from_bytes(pubkey.compressed) ]), Witness([]))
def solve(self, *digests): from .transaction import Witness if len(digests) != len(self.privkeys): raise ValueError('{} privkeys provided and {} digests'.format( len(self.privkeys), len(digests))) script_sig_data = [StackData.zero()] for priv, digest, sighash in zip(self.privkeys, digests, self.sighashes): sig = priv.sign(digest) script_sig_data.append( StackData.from_bytes(sig + sighash.as_byte())) return ScriptSig.from_stack_data(script_sig_data), Witness([])
def nulldata_script(data: bytes) -> NulldataScript: '''create nulldata (OP_return) script''' stack = StackData.from_bytes(data) return NulldataScript(stack)
def SegWit_Witness(sig, pubkey): #TODO Successfully witness_sig = StackData.from_bytes(unhexlify(sig)) witness_pubkey = StackData.from_bytes(unhexlify(pubkey)) witness = Witness([witness_sig, witness_pubkey]) return witness
def solve(self, *digests): script_sig, witness = self.inner_solver.solve(*digests) script_sig_data = script_sig.get_data() script_sig_data.append(StackData.from_bytes(self.preimage)) return ScriptSig.from_stack_data(script_sig_data), witness