AddressInterface
type AddressInterface
Unique identifier for an Account on the IOTA blockchain.
An `Address` is a 32-byte pseudonymous identifier used to uniquely identify an account and asset-ownership on the IOTA blockchain. Often, human-readable addresses are encoded in hexadecimal with a `0x` prefix. For example, this is a valid IOTA address: `0x02a212de6a9dfa3a69e22387acfbafbb1a9e591bd9d636e7895dcfc8de05f331`.
Deriving an Address
Addresses are cryptographically derived from a number of user account authenticators, the simplest of which is an `Ed25519PublicKey`.
Deriving an address consists of the Blake2b256 hash of the sequence of bytes of its corresponding authenticator, prefixed with a domain-separator (except ed25519, for compatibility reasons). For each other authenticator, this domain-separator is the single byte-value of its `SignatureScheme` flag. E.g. `hash(signature schema flag || authenticator bytes)`.
Each authenticator has a method for deriving its `Address` as well as documentation for the specifics of how the derivation is done. See `Ed25519PublicKey::derive_address` for an example.
## Relationship to ObjectIds
`ObjectId`s and `Address`es share the same 32-byte addressable space but are derived leveraging different domain-separator values to ensure that, cryptographically, there won't be any overlap, e.g. there can't be a valid `Object` who's `ObjectId` is equal to that of the `Address` of a user account.
BCS
An `Address`'s BCS serialized form is defined by the following:
```text address = 32OCTET ```
type AddressInterface interface {
// Returns the next digest in byte-increasing order.
NextLexicographical() *Address
// Returns the next digest in byte-increasing order, or `None` if the
// result would overflow.
NextLexicographicalOpt() **Address
ToBytes() []byte
// Returns the string representation of this address using the
// canonical display, with or without a `0x` prefix.
ToCanonicalString(withPrefix bool) string
// Returns the string representation of this address in hex format with
// `0x` prefix.
ToHex() string
// Returns the string representation of this address in hex format without
// `0x` prefix.
ToRawHex() string
// Returns the shortest possible string representation of the address (i.e.
// with leading zeroes trimmed), without `0x` prefix.
ToRawShortHex() string
// Returns the shortest possible string representation of the address (i.e.
// with leading zeroes trimmed).
ToShortHex() string
}