Package com.algorand.algosdk.crypto
Class LogicsigSignature
- java.lang.Object
-
- com.algorand.algosdk.crypto.LogicsigSignature
-
public class LogicsigSignature extends Object
Serializable logicsig class. LogicsigSignature is constructed from a program and optional arguments. Signature sig and MultisigSignature msig property are available for modification by its clients.LogicsigSignature cannot sign transactions in all cases. Instead, use LogicSigAccount as a safe, general purpose signing mechanism. Since LogicSig does not track the provided signature's public key, LogicSig cannot sign transactions when delegated to a non-multisig account _and_ the sender is not the delegating account.
-
-
Field Summary
Fields Modifier and Type Field Description List<byte[]>
args
MultisigSignature
lmsig
byte[]
logic
MultisigSignature
msig
Signature
sig
-
Constructor Summary
Constructors Constructor Description LogicsigSignature()
Uninitialized object used for serializer to ignore default values.LogicsigSignature(byte[] logicsig)
Unsigned logicsig object.LogicsigSignature(byte[] logicsig, List<byte[]> args)
Unsigned logicsig object, and its arguments.LogicsigSignature(byte[] logic, List<byte[]> args, byte[] sig, MultisigSignature msig, MultisigSignature lmsig)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
bytesToSign()
Return prefixed program as byte array that is ready to signbyte[]
bytesToSignMultisig(Address multisigAddress)
Return prefixed program with multisig address as byte array that is ready to use with multisig signatures on delegated logicsig programsboolean
equals(Object obj)
int
sigCount()
Returns the number of signatures (sig, msig, lmsig) on this LogicSig.Address
toAddress()
Calculate escrow address from logic sig program NOTE: THIS RETURNS AN ESCROW ACCOUNT OF A LOGIC-SIG (FROM LOGIC ITSELF), IT WILL NOT RETURN THE DELEGATED ADDRESS OF THE LOGIC-SIG.boolean
verify(Address singleSigner)
Perform signature verification against the sender address
-
-
-
Field Detail
-
logic
public final byte[] logic
-
args
public final List<byte[]> args
-
sig
public Signature sig
-
msig
public MultisigSignature msig
-
lmsig
public MultisigSignature lmsig
-
-
Constructor Detail
-
LogicsigSignature
public LogicsigSignature(byte[] logic, List<byte[]> args, byte[] sig, MultisigSignature msig, MultisigSignature lmsig)
-
LogicsigSignature
public LogicsigSignature(byte[] logicsig)
Unsigned logicsig object.- Parameters:
logicsig
-
-
LogicsigSignature
public LogicsigSignature(byte[] logicsig, List<byte[]> args)
Unsigned logicsig object, and its arguments.- Parameters:
logicsig
-args
-
-
LogicsigSignature
public LogicsigSignature()
Uninitialized object used for serializer to ignore default values.
-
-
Method Detail
-
sigCount
public int sigCount()
Returns the number of signatures (sig, msig, lmsig) on this LogicSig. At most one of these should be present.- Returns:
- the number of signature types present
-
toAddress
public Address toAddress() throws NoSuchAlgorithmException
Calculate escrow address from logic sig program NOTE: THIS RETURNS AN ESCROW ACCOUNT OF A LOGIC-SIG (FROM LOGIC ITSELF), IT WILL NOT RETURN THE DELEGATED ADDRESS OF THE LOGIC-SIG.- Returns:
- Address
- Throws:
NoSuchAlgorithmException
-
bytesToSign
public byte[] bytesToSign()
Return prefixed program as byte array that is ready to sign- Returns:
- byte[]
-
bytesToSignMultisig
public byte[] bytesToSignMultisig(Address multisigAddress)
Return prefixed program with multisig address as byte array that is ready to use with multisig signatures on delegated logicsig programs- Parameters:
multisigAddress
- the multisig address to include in signed data- Returns:
- byte[]
-
verify
public boolean verify(Address singleSigner) throws NoSuchAlgorithmException
Perform signature verification against the sender address- Parameters:
singleSigner
- only used in the case of a delegated LogicSig whose delegating account is backed by a single private key- Returns:
- boolean
- Throws:
NoSuchAlgorithmException
-
-