Interface IInvoice
Represents a transaction signing request.
This structure is passed to each configured
Signatory and signatory callback
method to be given the opportunity to sign the
request before submitting it to the network.
Typically, the signatory will use its private
key to sign the TransactionBytes serialized
representation of the transaction request.
This is the same series of bytes that are sent
to the network along with the signatures
collected from the signatories.
Namespace: Hiero
Assembly: Hiero.dll
Syntax
public interface IInvoice
Properties
| Edit this page View SourceCancellationToken
The cancellation token associated with the underlying request, may be the default cancellation token, may be consumed as deemed important by signatory callbacks.
Declaration
CancellationToken CancellationToken { get; }
Property Value
| Type | Description |
|---|---|
| CancellationToken |
Memo
The memo associated with this transaction, provided for convenience.
Declaration
string Memo { get; }
Property Value
| Type | Description |
|---|---|
| string |
MinimumDesiredPrefixSize
The smallest desired signature map prefix value length.
Some network API calls (typically smart contract calls
that interact with other Hedera Services) require the
full public key value to be entered for the prefix. In
this case, this value may request the full length of the
public keys associated with the signature. It may also
be (in most cases) zero indicating no particular size
is required.
Declaration
int MinimumDesiredPrefixSize { get; }
Property Value
| Type | Description |
|---|---|
| int |
Remarks
Providing a prefix that is longer or shorter than the desired length will not immediately raise an error unless it results in a prefix mapping conflict (two or more identical public prefixes producing different signature values). However, if too small of a prefix is sent to the network, the network may reject the transaction under certain circumstances. It is recommended to return at least the first 6 bytes of the raw public key value when the prefix size is zero, so that the sdk can orchestrate multiple signatures with reasonable probability of not producing a conflict as described above.
TransactionBytes
The bytes created by serializing the request, including necessary cryptocurrency transfers, into the underlying network's protobuf format. This is the exact sequence of bytes that will be submitted to the network alongside the signatures created authorizing the request.
Declaration
ReadOnlyMemory<byte> TransactionBytes { get; }
Property Value
| Type | Description |
|---|---|
| ReadOnlyMemory<byte> |
TransactionId
The transaction ID assigned to this request. It, by its nature, contains a timestamp and expiration. Any callback methods must return from signing this transaction with enough time for the transaction to be submitted to the network with sufficient time to process before becoming invalid.
Declaration
TransactionId TransactionId { get; }
Property Value
| Type | Description |
|---|---|
| TransactionId |
Methods
| Edit this page View SourceAddSignature(KeyType, ReadOnlySpan<byte>, ReadOnlySpan<byte>)
Adds a signature to the internal list of signatures authorizing this request.
Declaration
void AddSignature(KeyType type, ReadOnlySpan<byte> publicPrefix, ReadOnlySpan<byte> signature)
Parameters
| Type | Name | Description |
|---|---|---|
| KeyType | type | The type of signing key used for this signature. |
| ReadOnlySpan<byte> | publicPrefix | The first few bytes of the public key associated with this signature. This helps the system match signing requirements held internally in the form of public keys with the signatures provided. |
| ReadOnlySpan<byte> | signature | The bytes representing the signature corresponding to the associated private/public key. |