Show / Hide Table of Contents

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:

  1. 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.
  2. Takes only the last 20 bytes of the calculated Keccak-256 hash.
  3. 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.

Implements
ISerializable
Inherited Members
ValueType.Equals(Object)
ValueType.GetHashCode()
Object.Equals(Object, Object)
Object.GetType()
Object.ReferenceEquals(Object, Object)
Namespace: Libplanet
Assembly: Libplanet.dll
Syntax
[Serializable]
[GeneratedEquality]
public struct Address : ISerializable
Remarks

Every Address value is immutable.

Constructors

| Improve this Doc View Source

Address(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

A PublicKey to derive the corresponding Address from.

See Also
ToAddress(PublicKey)
| Improve this Doc View Source

Address(Byte[])

Creates an Address instance from the given Byte array (i.e., address).

Declaration
public Address(byte[] address)
Parameters
Type Name Description
Byte[] address

An array of 20 Bytes which represents an Address. This must not be null.

Remarks

A valid Byte array which represents an Address can be gotten using ToByteArray() method.

Exceptions
Type Condition
NullReferenceException

Thrown when null was passed to address.

ArgumentException

Thrown when the given address array did not lengthen 20 bytes.

See Also
ToByteArray()
| Improve this Doc View Source

Address(SerializationInfo, StreamingContext)

Declaration
public Address(SerializationInfo info, StreamingContext context)
Parameters
Type Name Description
SerializationInfo info
StreamingContext context
| Improve this Doc View Source

Address(String)

Derives the corresponding Address from a hexadecimal address string.

Declaration
public Address(string hex)
Parameters
Type Name Description
String hex

A 40 characters hexadecimal address string to derive the corresponding Address from. The string should be all lower-case or mixed-case which follows EIP 55.

Exceptions
Type Condition
ArgumentNullException

Thrown when null was passed to hex.

ArgumentException

Thrown when the given hex did not lengthen 40 characters.

ArgumentException

Thrown when the given hex is mixed-case and the checksum is invalid.

ArgumentException

Thrown when the given hex does not consist of ASCII characters.

Fields

| Improve this Doc View Source

Size

The Bytes size that each Address takes.

It is 20 Bytes.

Declaration
public const int Size = 20
Field Value
Type Description
Int32

Properties

| Improve this Doc View Source

ByteArray

An immutable array of 20 Bytes that represent this Address.

Declaration
[EqualityKey(KeyEqualityMode.Auto)]
public ImmutableArray<byte> ByteArray { get; }
Property Value
Type Description
ImmutableArray<Byte>
Remarks

This is immutable. For a mutable array, call ToByteArray() method.

See Also
ToByteArray()

Methods

| Improve this Doc View Source

GetObjectData(SerializationInfo, StreamingContext)

Declaration
public void GetObjectData(SerializationInfo info, StreamingContext context)
Parameters
Type Name Description
SerializationInfo info
StreamingContext context
| Improve this Doc View Source

ToByteArray()

Gets a mutable array of 20 Bytes that represent this Address.

Declaration
[Pure]
public 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
ByteArray
Address(Byte[])
| Improve this Doc View Source

ToHex()

Gets a mixed-case hexadecimal string of 40 letters that represent this Address. The returned hexadecimal string follows EIP 55.

Declaration
[Pure]
public 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
ToString()
| Improve this Doc View Source

ToString()

Gets a 0x-prefixed mixed-case hexadecimal string of 42 letters that represent this Address. The returned hexadecimal string follows EIP 55.

Declaration
[Pure]
public override string ToString()
Returns
Type Description
String

A 0x-hexadecimal string of 42 letters that represent this Address.

Overrides
ValueType.ToString()
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
ToHex()

Implements

System.Runtime.Serialization.ISerializable

See Also

PublicKey
  • Improve this Doc
  • View Source
Back to top Copyright © 2019 Planetarium
Generated by DocFX