Class Transaction
Implements
Inherited Members
Namespace: Libplanet.Tx
Assembly: Libplanet.dll
Syntax
public sealed class Transaction : IEquatable<Transaction>, ITransaction, IUnsignedTx, ITxInvoice, IEquatable<ITxInvoice>, ITxSigningMetadata, IEquatable<ITxSigningMetadata>, IEquatable<IUnsignedTx>
Constructors
| Improve this Doc View SourceTransaction(IUnsignedTx, PrivateKey)
Creates a new Transaction instance by signing an
unsignedTx
with a privateKey
.
Declaration
public Transaction(IUnsignedTx unsignedTx, PrivateKey privateKey)
Parameters
Type | Name | Description |
---|---|---|
IUnsignedTx | unsignedTx | The IUnsignedTx instance to sign. |
PrivateKey | privateKey | The private key to sign |
Exceptions
Type | Condition |
---|---|
ArgumentException | Thrown when the given |
See Also
| Improve this Doc View SourceTransaction(IUnsignedTx, ImmutableArray<Byte>)
Creates a new Transaction instance by verifying a
signature
of an unsignedTx
.
Declaration
public Transaction(IUnsignedTx unsignedTx, ImmutableArray<byte> signature)
Parameters
Type | Name | Description |
---|---|---|
IUnsignedTx | unsignedTx | The IUnsignedTx instance to combine with
|
ImmutableArray<Byte> | signature | The signature to combine with |
Exceptions
Type | Condition |
---|---|
InvalidTxSignatureException | Thrown when the given
|
See Also
Properties
| Improve this Doc View SourceActions
A list of IActions. These are executed in the order. This can be empty, but cannot be null.
Declaration
[JsonConverter(typeof(TxActionListJsonConverter))]
public TxActionList Actions { get; }
Property Value
Type | Description |
---|---|
TxActionList |
See Also
| Improve this Doc View SourceGenesisHash
A HashDigest<T> value of the genesis which this transaction is made from. This can be null iff the transaction is contained in the genesis block.
Declaration
public BlockHash? GenesisHash { get; }
Property Value
Type | Description |
---|---|
Nullable<BlockHash> |
See Also
| Improve this Doc View SourceId
A unique identifier derived from this Transaction's content.
For more characteristics, see TxId type.
Declaration
public TxId Id { get; }
Property Value
Type | Description |
---|---|
TxId |
See Also
| Improve this Doc View SourceNonce
The number of previous Transactions committed by the Signer of this transaction. This nonce is used for preventing replay attack.
Declaration
public long Nonce { get; }
Property Value
Type | Description |
---|---|
Int64 |
See Also
| Improve this Doc View SourcePublicKey
A PublicKey of the account who signs this transaction. The Signer address is always corresponding to this for each transaction. This cannot be null.
Declaration
public PublicKey PublicKey { get; }
Property Value
Type | Description |
---|---|
PublicKey |
See Also
| Improve this Doc View SourceSignature
A digital signature of the content of this Transaction. This is signed by the account who corresponds to PublicKey. This cannot be null.
Declaration
public byte[] Signature { get; }
Property Value
Type | Description |
---|---|
Byte[] | A new Byte array of this transaction's signature. Changing a returned array does not affect the internal state of this Transaction object. |
Remarks
Although this cannot be null, it can be an empty array if the transaction is not signed yet.
See Also
| Improve this Doc View SourceSigner
Declaration
public Address Signer { get; }
Property Value
Type | Description |
---|---|
Address |
See Also
| Improve this Doc View SourceTimestamp
The time this transaction is created and signed.
Declaration
public DateTimeOffset Timestamp { get; }
Property Value
Type | Description |
---|---|
DateTimeOffset |
See Also
| Improve this Doc View SourceUpdatedAddresses
An approximated list of addresses whose states would be affected by actions in this transaction. However, it could be wrong.
Declaration
public IImmutableSet<Address> UpdatedAddresses { get; }
Property Value
Type | Description |
---|---|
IImmutableSet<Address> |
See Also
Methods
| Improve this Doc View SourceCreate(Int64, PrivateKey, Nullable<BlockHash>, IEnumerable<IValue>, IImmutableSet<Address>, Nullable<DateTimeOffset>)
A façade factory to create a new Transaction. It automatically fills the following values from:
Property | Parameter the filled value derived from |
---|---|
Signer | privateKey |
PublicKey | privateKey |
UpdatedAddresses | actions and
updatedAddresses |
Note that the privateKey
in itself is not
included in the created Transaction.
Declaration
public static Transaction Create(long nonce, PrivateKey privateKey, BlockHash? genesisHash, IEnumerable<IValue> actions, IImmutableSet<Address> updatedAddresses = null, DateTimeOffset? timestamp = null)
Parameters
Type | Name | Description |
---|---|---|
Int64 | nonce | The number of previous Transactions committed by the Signer of this transaction. This goes to the Nonce property. |
PrivateKey | privateKey | A PrivateKey of the account who creates and signs a new transaction. This key is used to fill the Signer, PublicKey, and Signature properties, but this in itself is not included in the transaction. |
Nullable<BlockHash> | genesisHash | A HashDigest<T> value of the genesis which this Transaction is made from. This can be null iff the transaction is contained in the genesis block. |
IEnumerable<Bencodex.Types.IValue> | actions | A list of user-defined custom actions to include. This can be empty, but cannot be null. This goes to the Actions property. |
IImmutableSet<Address> | updatedAddresses | Addresses whose
states affected by |
Nullable<DateTimeOffset> | timestamp | The time this Transaction is created and signed. This goes to the Timestamp property. If null (which is default) is passed this will be the current time. |
Returns
Type | Description |
---|---|
Transaction | A created new Transaction signed by
the given |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown when null
is passed to |
See Also
| Improve this Doc View SourceCreate(Int64, PrivateKey, Nullable<BlockHash>, IEnumerable<IAction>, IImmutableSet<Address>, Nullable<DateTimeOffset>)
A façade factory to create a new Transaction. It automatically fills the following values from:
Property | Parameter the filled value derived from |
---|---|
Signer | privateKey |
PublicKey | privateKey |
UpdatedAddresses | actions and
updatedAddresses |
Note that the privateKey
in itself is not
included in the created Transaction.
Declaration
public static Transaction Create(long nonce, PrivateKey privateKey, BlockHash? genesisHash, IEnumerable<IAction> actions, IImmutableSet<Address> updatedAddresses = null, DateTimeOffset? timestamp = null)
Parameters
Type | Name | Description |
---|---|---|
Int64 | nonce | The number of previous Transactions committed by the Signer of this transaction. This goes to the Nonce property. |
PrivateKey | privateKey | A PrivateKey of the account who creates and signs a new transaction. This key is used to fill the Signer, PublicKey, and Signature properties, but this in itself is not included in the transaction. |
Nullable<BlockHash> | genesisHash | A HashDigest<T> value of the genesis which this Transaction is made from. This can be null iff the transaction is contained in the genesis block. |
IEnumerable<IAction> | actions | A list of user-defined custom actions to include. This can be empty, but cannot be null. This goes to the Actions property. |
IImmutableSet<Address> | updatedAddresses | Addresses whose
states affected by |
Nullable<DateTimeOffset> | timestamp | The time this Transaction is created and signed. This goes to the Timestamp property. If null (which is default) is passed this will be the current time. |
Returns
Type | Description |
---|---|
Transaction | A created new Transaction signed by
the given |
Exceptions
Type | Condition |
---|---|
ArgumentNullException | Thrown when null
is passed to |
See Also
| Improve this Doc View SourceDeserialize(Byte[])
Decodes a Transaction's Bencodex representation.
Declaration
public static Transaction Deserialize(byte[] bytes)
Parameters
Type | Name | Description |
---|---|---|
Byte[] | bytes | A Bencodex representation of a Transaction. |
Returns
Type | Description |
---|---|
Transaction | A decoded Transaction object. |
Exceptions
Type | Condition |
---|---|
InvalidTxSignatureException | Thrown when its Signature is invalid or not signed by the account who corresponds to PublicKey. |
See Also
| Improve this Doc View SourceEquals(Transaction)
Declaration
public bool Equals(Transaction other)
Parameters
Type | Name | Description |
---|---|---|
Transaction | other |
Returns
Type | Description |
---|---|
Boolean |
See Also
| Improve this Doc View SourceEquals(Object)
Declaration
public override bool Equals(object obj)
Parameters
Type | Name | Description |
---|---|---|
Object | obj |
Returns
Type | Description |
---|---|
Boolean |
Overrides
See Also
| Improve this Doc View SourceGetHashCode()
Declaration
public override int GetHashCode()
Returns
Type | Description |
---|---|
Int32 |
Overrides
See Also
| Improve this Doc View SourceSerialize()
Encodes this Transaction into a Byte array.
Declaration
public byte[] Serialize()
Returns
Type | Description |
---|---|
Byte[] | A Bencodex representation of this Transaction. |
See Also
Explicit Interface Implementations
| Improve this Doc View SourceIEquatable<ITxInvoice>.Equals(ITxInvoice)
Declaration
[Pure]
bool IEquatable<ITxInvoice>.Equals(ITxInvoice other)
Parameters
Type | Name | Description |
---|---|---|
ITxInvoice | other |
Returns
Type | Description |
---|---|
Boolean |
See Also
| Improve this Doc View SourceIEquatable<ITxSigningMetadata>.Equals(ITxSigningMetadata)
Declaration
[Pure]
bool IEquatable<ITxSigningMetadata>.Equals(ITxSigningMetadata other)
Parameters
Type | Name | Description |
---|---|---|
ITxSigningMetadata | other |
Returns
Type | Description |
---|---|
Boolean |
See Also
| Improve this Doc View SourceIEquatable<IUnsignedTx>.Equals(IUnsignedTx)
Declaration
[Pure]
bool IEquatable<IUnsignedTx>.Equals(IUnsignedTx other)
Parameters
Type | Name | Description |
---|---|---|
IUnsignedTx | other |
Returns
Type | Description |
---|---|
Boolean |