Base58Check

https://en.bitcoin.it/wiki/Base58Check_encoding Base58Check is a format based on Base58 and used a lot in bitcoin, for encoding addresses and private keys for example. It includes a prefix (usually a single byte) and a checksum so you know what has been encoded, and that it has been transmitted correctly. For example, to create an address for a public key you could write:

 val pub: BinaryData = "0202a406624211f2abbdc68da3df929f938c3399dd79fac1b51b0e4ad1d26a47aa"
 val address = Base58Check.encode(Base58.Prefix.PubkeyAddress, Crypto.hash160(pub))

And to decode a private key you could write:

 // check that is it a mainnet private key
 val (Base58.Prefix.SecretKey, priv) = Base58Check.decode("5J3mBbAH58CpQ3Y5RNJpUKPE62SQ5tfcvU2JpbnkeyhfsYB1Jcn")
Source:
Base58.scala
class Object
trait Matchable
class Any

Value members

Concrete methods

def decode(encoded: String): (Byte, ByteVector)

Decodes Base58 data that has been encoded with a single byte prefix

Decodes Base58 data that has been encoded with a single byte prefix

NB: requirement check will throw an IllegalArgumentException if the checksum that is part of the encoded data cannot be verified

Value parameters:
encoded

encoded data

Returns:

a (prefix, data) tuple

Source:
Base58.scala

Decodes Base58 data that has been encoded with an integer prefix

Decodes Base58 data that has been encoded with an integer prefix

NB: requirement check will throw an IllegalArgumentException if the checksum that is part of the encoded data cannot be verified

Value parameters:
encoded

encoded data

Returns:

a (prefix, data) tuple

Source:
Base58.scala
def decodeWithPrefixLen(encoded: String, prefixLen: Int): (ByteVector, ByteVector)

Decodes Base58 data that has been encoded with several bytes prefix

Decodes Base58 data that has been encoded with several bytes prefix

NB: requirement check will throw an IllegalArgumentException if the checksum that is part of the encoded data cannot be verified

Value parameters:
encoded

encoded data

Returns:

a (prefix, data) tuple

Source:
Base58.scala
def encode(prefix: Byte, data: ByteVector): String

Encode data in Base58Check format. For example, to create an address from a public key you could use:

Encode data in Base58Check format. For example, to create an address from a public key you could use:

Value parameters:
data

date to be encoded

prefix

version prefix (one byte)

Returns:

a Base58 string

Source:
Base58.scala
def encode(prefix: Int, data: ByteVector): String
Value parameters:
data

data to be encoded

prefix

version prefix (integer, as used with BIP32 ExtendedKeys for example)

Returns:

a Base58 String

Source:
Base58.scala
def encode(prefix: ByteVector, data: ByteVector): String
Value parameters:
data

data to be encoded

prefix

version prefix (several bytes, as used with BIP32 ExtendedKeys for example)

Returns:

a Base58 String

Source:
Base58.scala