예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
 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)))
예제 #5
0
 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()