Struct AppProtocolVersion
A claim of a version.
Every peer in network shows others their AppProtocolVersion information. As every peer can change its software by itself, this AppProtocolVersion is theoretically arbitrary, hence a “claim.” (i.e., no authority).
In order to verify who claimed a version, every AppProtocolVersion has its Signature which is made by its Signer. Verify(PublicKey) method purposes to determine whether an information is claimed by its corresponding Signer in fact.
Implements
Inherited Members
Namespace: Libplanet.Net
Assembly: Libplanet.dll
Syntax
public readonly struct AppProtocolVersion : IEquatable<AppProtocolVersion>
Constructors
| Improve this Doc View SourceAppProtocolVersion(Int32, IValue, ImmutableArray<Byte>, Address)
Initializes an AppProtocolVersion value with field values.
Declaration
public AppProtocolVersion(int version, IValue extra, ImmutableArray<byte> signature, Address signer)
Parameters
| Type | Name | Description |
|---|---|---|
| Int32 | version | Sets the Version. |
| IValue | extra | Sets the Extra. |
| ImmutableArray<Byte> | signature | Sets the Signature. |
| Address | signer | Gets the Signer. |
Fields
| Improve this Doc View SourceExtra
Optional extra data about the version. This can be used for any purpose by apps, such as a URL to download the software.
Declaration
public readonly IValue Extra
Field Value
| Type | Description |
|---|---|
| IValue |
Signer
A signer who claims presence of a version.
Declaration
public readonly Address Signer
Field Value
| Type | Description |
|---|---|
| Address |
Version
The version number. This does not have to be increased by only 1, but can be more than that.
Declaration
public readonly int Version
Field Value
| Type | Description |
|---|---|
| Int32 |
Properties
| Improve this Doc View SourceSignature
A signature which verifies Signer's claim of a version.
Declaration
public readonly ImmutableArray<byte> Signature { get; }
Property Value
| Type | Description |
|---|---|
| ImmutableArray<Byte> |
Token
A token string which serializes an AppProtocolVersion.
As this is designed to be easy to copy and paste, the format consists of only printable characters in the ASCII character set.
A token can be deserialized into an AppProtocolVersion through FromToken(String) method.
Declaration
[Pure]
public readonly string Token { get; }
Property Value
| Type | Description |
|---|---|
| String |
See Also
Methods
| Improve this Doc View SourceEquals(AppProtocolVersion)
Declaration
[Pure]
public readonly bool Equals(AppProtocolVersion other)
Parameters
| Type | Name | Description |
|---|---|---|
| AppProtocolVersion | other |
Returns
| Type | Description |
|---|---|
| Boolean |
Equals(Object)
Declaration
[Pure]
public override readonly bool Equals(object obj)
Parameters
| Type | Name | Description |
|---|---|---|
| Object | obj |
Returns
| Type | Description |
|---|---|
| Boolean |
Overrides
| Improve this Doc View SourceFromToken(String)
Deserializes a Token into an AppProtocolVersion object.
Declaration
public static AppProtocolVersion FromToken(string token)
Parameters
| Type | Name | Description |
|---|---|---|
| String | token | A Token string. |
Returns
| Type | Description |
|---|---|
| AppProtocolVersion | A deserialized AppProtocolVersion object. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown when |
| FormatException | Thrown when the given |
See Also
| Improve this Doc View SourceGetHashCode()
Declaration
[Pure]
public override readonly int GetHashCode()
Returns
| Type | Description |
|---|---|
| Int32 |
Overrides
| Improve this Doc View SourceSign(PrivateKey, Int32, IValue)
Claim a version with extra data and sign it
using the given private key.
Declaration
public static AppProtocolVersion Sign(PrivateKey signer, int version, IValue extra = null)
Parameters
| Type | Name | Description |
|---|---|---|
| PrivateKey | signer | A private key to sign the claim. |
| Int32 | version | A version to claim. |
| IValue | extra | Extra data to claim. |
Returns
| Type | Description |
|---|---|
| AppProtocolVersion | A signed version claim. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentNullException | Thrown when |
ToString()
Declaration
[Pure]
public override readonly string ToString()
Returns
| Type | Description |
|---|---|
| String |
Overrides
| Improve this Doc View SourceVerify(PublicKey)
Verifies whether the claim is certainly signed by the Signer.
Declaration
[Pure]
public readonly bool Verify(PublicKey publicKey)
Parameters
| Type | Name | Description |
|---|---|---|
| PublicKey | publicKey | A public key of the Signer. |
Returns
| Type | Description |
|---|---|
| Boolean |
|
Operators
| Improve this Doc View SourceEquality(AppProtocolVersion, AppProtocolVersion)
Declaration
[Pure]
public static bool operator ==(AppProtocolVersion left, AppProtocolVersion right)
Parameters
| Type | Name | Description |
|---|---|---|
| AppProtocolVersion | left | |
| AppProtocolVersion | right |
Returns
| Type | Description |
|---|---|
| Boolean |
Inequality(AppProtocolVersion, AppProtocolVersion)
Declaration
[Pure]
public static bool operator !=(AppProtocolVersion left, AppProtocolVersion right)
Parameters
| Type | Name | Description |
|---|---|---|
| AppProtocolVersion | left | |
| AppProtocolVersion | right |
Returns
| Type | Description |
|---|---|
| Boolean |