Struct Address
An identifier of 20 bytes (or 40 letters in hexadecimal, commonly with
a prefix 0x
) that refers to a unique account.
It is derived from the corresponding PublicKey of an account, but as a derivation loses information, it is always unidirectional.
The address derivation from a public key is as follows:
- Calculates the Keccak-256, which is a previous form of SHA-3 before NIST standardized it and does not follow FIPS-202, of the corresponding PublicKey.
- Takes only the last 20 bytes of the calculated Keccak-256 hash.
- When the address needs to be shown to end users,
displays these 20 bytes in hexadecimal, with a prefix
0x
.
Since the scheme of the address derivation and the PrivateKey/PublicKey is the same to Ethereum, Ethereum addresses can be used by Libplanet-backed games/apps too.
Namespace: Libplanet
Assembly: Libplanet.dll
Syntax
public readonly struct Address : ISerializable, IComparable<Address>, IComparable
Remarks
Every Address value is immutable.
Constructors
| Improve this Doc View SourceAddress(Binary)
Creates an Address instance from the given Bencodex address
).
Declaration
public Address(Binary address)
Parameters
Type | Name | Description |
---|---|---|
Binary | address | A Bencodex |
Address(ImmutableArray<Byte>)
Creates an Address instance from the given immutable address
).
Declaration
public Address(ImmutableArray<byte> address)
Parameters
Type | Name | Description |
---|---|---|
ImmutableArray<Byte> | address | An immutable array of 20 |
Remarks
A valid
See Also
| Improve this Doc View SourceAddress(PublicKey)
Derives the corresponding Address from a PublicKey.
Note that there is an equivalent extension method
ToAddress(PublicKey), which enables
a code like publicKey.ToAddress()
instead of
new Address(publicKey)
, for convenience.
Declaration
public Address(PublicKey publicKey)
Parameters
Type | Name | Description |
---|---|---|
PublicKey | publicKey |
See Also
| Improve this Doc View SourceAddress(Byte[])
Creates an Address instance from the given address
).
Declaration
public Address(byte[] address)
Parameters
Type | Name | Description |
---|---|---|
Byte[] | address | An array of 20 |
Remarks
A valid
See Also
| Improve this Doc View SourceAddress(String)
Derives the corresponding Address from a hexadecimal address string.
Declaration
public Address(string hex)
Parameters
Type | Name | Description |
---|---|---|
String | hex | A 40 characters or included 0x prefix hexadecimal address string to derive the corresponding Address from. The string should be all lower-case or mixed-case which follows EIP 55. |
Fields
| Improve this Doc View SourceSize
The
It is 20
Declaration
public const int Size = null
Field Value
Type | Description |
---|---|
Int32 |
Properties
| Improve this Doc View SourceByteArray
An immutable array of 20
Declaration
public readonly ImmutableArray<byte> ByteArray { get; }
Property Value
Type | Description |
---|---|
ImmutableArray<Byte> |
Remarks
This is immutable. For a mutable array, call ToByteArray() method.
See Also
Methods
| Improve this Doc View SourceEquals(Address)
Declaration
public readonly bool Equals(Address other)
Parameters
Type | Name | Description |
---|---|---|
Address | other |
Returns
Type | Description |
---|---|
Boolean |
Equals(Nullable<Object>)
Declaration
public override readonly bool Equals(object? obj)
Parameters
Type | Name | Description |
---|---|---|
Nullable<Object> | obj |
Returns
Type | Description |
---|---|
Boolean |
GetHashCode()
Declaration
public override readonly int GetHashCode()
Returns
Type | Description |
---|---|
Int32 |
GetObjectData(SerializationInfo, StreamingContext)
Declaration
public readonly void GetObjectData(SerializationInfo info, StreamingContext context)
Parameters
Type | Name | Description |
---|---|---|
SerializationInfo | info | |
StreamingContext | context |
ToByteArray()
Gets a mutable array of 20
Declaration
public readonly byte[] ToByteArray()
Returns
Type | Description |
---|---|
Byte[] | A new mutable array which represents this Address. Since it is created every time the method is called, any mutation on that does not affect internal states of this Address. |
See Also
| Improve this Doc View SourceToHex()
Gets a mixed-case hexadecimal string of 40 letters that represent this Address. The returned hexadecimal string follows EIP 55.
Declaration
public readonly string ToHex()
Returns
Type | Description |
---|---|
String | A hexadecimal string of 40 letters that represent this Address. Note that it does not start with a prefix. |
Remarks
As the returned string has no prefix, for
0x
-prefixed hexadecimal, call ToString()
method instead.
Examples
A returned string looks like
87Ae4774E20963fd6caC967CF47aDCF880C3e89B
.
See Also
| Improve this Doc View SourceToString()
Gets a 0x
-prefixed mixed-case hexadecimal string of
42 letters that represent this Address. The returned
hexadecimal string follows
EIP 55.
Declaration
public override readonly string ToString()
Returns
Type | Description |
---|---|
String | A |
Remarks
As the returned string is 0x
-prefixed, for
hexadecimal without prefix, call ToHex() method
instead.
Examples
A returned string looks like
0x87Ae4774E20963fd6caC967CF47aDCF880C3e89B
.
See Also
Operators
| Improve this Doc View SourceEquality(Address, Address)
Declaration
public static bool operator ==(Address left, Address right)
Parameters
Type | Name | Description |
---|---|---|
Address | left | |
Address | right |
Returns
Type | Description |
---|---|
Boolean |
Inequality(Address, Address)
Declaration
public static bool operator !=(Address left, Address right)
Parameters
Type | Name | Description |
---|---|---|
Address | left | |
Address | right |
Returns
Type | Description |
---|---|
Boolean |