Class Transaction
Consists of
Implements
Inherited Members
Namespace: Libplanet.Types.Tx
Assembly: Libplanet.Types.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
|
System.Collections.Immutable.ImmutableArray<System.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
Declaration
[JsonConverter(typeof(TxActionListJsonConverter))]
public TxActionList Actions { get; }
Property Value
Type | Description |
---|---|
TxActionList |
See Also
| Improve this Doc View SourceGasLimit
The limit on the total amount of gas that the Transaction can use.
If null, gas processing is entirely bypassed. The parity of null-ness is always the same as that of MaxGasPrice.
If not null, this value cannot be negative.
Declaration
public long? GasLimit { get; }
Property Value
Type | Description |
---|---|
Nullable<System.Int64> |
See Also
| Improve this Doc View SourceGenesisHash
A BlockHash 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 SourceMaxGasPrice
The maximum amount of FungibleAssetValue that the Transaction's author is willing to pay per gas for the Transaction.
If null, gas processing is entirely bypassed. The parity of null-ness is always the same as that of GasLimit.
If not null, this value cannot be negative.
Declaration
public FungibleAssetValue? MaxGasPrice { get; }
Property Value
Type | Description |
---|---|
Nullable<FungibleAssetValue> |
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 |
---|---|
System.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 |
---|---|
System.Byte[] | A new System.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
A deprecated property which was used as an approximated list of addresses whose states would be affected by actions in this transaction.
This is no longer officially supported in the sense that a Transaction cannot be created with a non-empty set of Addresses through normal means (i.e. using intended APIs).
It is still possible to create a Transaction through other means, such as creating a payload directly by assigning appropriate values and signing an "unsigned transaction". This is not recommended.
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>, Nullable<FungibleAssetValue>, Nullable<Int64>, 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, FungibleAssetValue? maxGasPrice = null, long? gasLimit = null, DateTimeOffset? timestamp = null)
Parameters
Type | Name | Description |
---|---|---|
System.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 |
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. |
Nullable<FungibleAssetValue> | maxGasPrice | The maximum gas price this transaction can pay fee. |
Nullable<System.Int64> | gasLimit | The maximum amount of gas this transaction can consume. |
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 |
---|---|
System.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 |
---|---|---|
System.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)
Consists of
Declaration
public bool Equals(Transaction other)
Parameters
Type | Name | Description |
---|---|---|
Transaction | other |
Returns
Type | Description |
---|---|
System.Boolean |
See Also
| Improve this Doc View SourceEquals(Object)
Consists of
Declaration
public override bool Equals(object obj)
Parameters
Type | Name | Description |
---|---|---|
Object | obj |
Returns
Type | Description |
---|---|
System.Boolean |
Overrides
See Also
| Improve this Doc View SourceGetHashCode()
Consists of
Declaration
public override int GetHashCode()
Returns
Type | Description |
---|---|
Int32 |
Overrides
See Also
| Improve this Doc View SourceSerialize()
Encodes this Transaction into a System.Byte array.
Declaration
public byte[] Serialize()
Returns
Type | Description |
---|---|
System.Byte[] | A Bencodex representation of this Transaction. |
See Also
Explicit Interface Implementations
| Improve this Doc View SourceIEquatable<ITxInvoice>.Equals(ITxInvoice)
Consists of
Declaration
[Pure]
bool IEquatable<ITxInvoice>.Equals(ITxInvoice other)
Parameters
Type | Name | Description |
---|---|---|
ITxInvoice | other |
Returns
Type | Description |
---|---|
System.Boolean |
See Also
| Improve this Doc View SourceIEquatable<ITxSigningMetadata>.Equals(ITxSigningMetadata)
Consists of
Declaration
[Pure]
bool IEquatable<ITxSigningMetadata>.Equals(ITxSigningMetadata other)
Parameters
Type | Name | Description |
---|---|---|
ITxSigningMetadata | other |
Returns
Type | Description |
---|---|
System.Boolean |
See Also
| Improve this Doc View SourceIEquatable<IUnsignedTx>.Equals(IUnsignedTx)
Consists of
Declaration
[Pure]
bool IEquatable<IUnsignedTx>.Equals(IUnsignedTx other)
Parameters
Type | Name | Description |
---|---|---|
IUnsignedTx | other |
Returns
Type | Description |
---|---|
System.Boolean |