def serialize(self) -> bytes: invoke_script = ProgramBuilder.program_from_params(self.__sig_data) if len(self.public_keys) == 0: raise SDKException(ErrorCode.other_error('Public key in sig is empty.')) if len(self.public_keys) == 1: verification_script = ProgramBuilder.program_from_pubkey(self.public_keys[0]) else: verification_script = ProgramBuilder.program_from_multi_pubkey(self.m, self.public_keys) ms = StreamManager.get_stream() writer = BinaryWriter(ms) writer.write_var_bytes(invoke_script) writer.write_var_bytes(verification_script) ms.flush() res = ms.to_bytes() res = bytes_reader(res) StreamManager.release_stream(ms) return res
def serialize(self) -> bytes: invoke_script = ProgramBuilder.program_from_params(self.sig_data) if len(self.public_keys) == 0: raise ValueError("no public key in sig") if len(self.public_keys) == 1: verification_script = ProgramBuilder.program_from_pubkey( self.public_keys[0]) else: verification_script = ProgramBuilder.program_from_multi_pubkey( self.M, self.public_keys) ms = StreamManager.GetStream() writer = BinaryWriter(ms) writer.WriteVarBytes(invoke_script) writer.WriteVarBytes(verification_script) ms.flush() res = ms.ToArray() res = bytes_reader(res) StreamManager.ReleaseStream(ms) return res
def from_multi_pub_keys(cls, m: int, pub_keys: List[bytes]): return cls.__from_byte_script( ProgramBuilder.program_from_multi_pubkey(m, pub_keys))
def address_from_multi_pub_keys(m: int, pub_keys: []): return Address(Address.to_script_hash(ProgramBuilder.program_from_multi_pubkey(m, pub_keys)))
def b58_address_from_multi_pub_keys(m: int, pub_keys: List[bytes]): return Address( Address.to_script_hash( ProgramBuilder.program_from_multi_pubkey( m, pub_keys))).b58encode()