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 |