Dash Core Source Documentation (0.16.0.1)

Find detailed information regarding the Dash Core source code.

base58.cpp File Reference
#include <base58.h>
#include <hash.h>
#include <uint256.h>
#include <assert.h>
#include <stdint.h>
#include <string.h>
#include <vector>
#include <string>
#include <boost/variant/apply_visitor.hpp>
#include <boost/variant/static_visitor.hpp>
+ Include dependency graph for base58.cpp:

Go to the source code of this file.

Functions

bool DecodeBase58 (const char *psz, std::vector< unsigned char > &vch)
 Decode a base58-encoded string (psz) into a byte vector (vchRet). More...
 
std::string EncodeBase58 (const unsigned char *pbegin, const unsigned char *pend)
 Why base-58 instead of standard base-64 encoding? More...
 
std::string EncodeBase58 (const std::vector< unsigned char > &vch)
 Encode a byte vector as a base58-encoded string. More...
 
bool DecodeBase58 (const std::string &str, std::vector< unsigned char > &vchRet)
 Decode a base58-encoded string (str) into a byte vector (vchRet). More...
 
std::string EncodeBase58Check (const std::vector< unsigned char > &vchIn)
 Encode a byte vector into a base58-encoded string, including checksum. More...
 
bool DecodeBase58Check (const char *psz, std::vector< unsigned char > &vchRet)
 Decode a base58-encoded string (psz) that includes a checksum into a byte vector (vchRet), return true if decoding is successful. More...
 
bool DecodeBase58Check (const std::string &str, std::vector< unsigned char > &vchRet)
 Decode a base58-encoded string (str) that includes a checksum into a byte vector (vchRet), return true if decoding is successful. More...
 
std::string EncodeDestination (const CTxDestination &dest)
 
CTxDestination DecodeDestination (const std::string &str)
 
bool IsValidDestinationString (const std::string &str, const CChainParams &params)
 
bool IsValidDestinationString (const std::string &str)
 

Variables

static const char * pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
 All alphanumeric characters except for "0", "I", "O", and "l". More...
 

Function Documentation

◆ DecodeBase58() [1/2]

bool DecodeBase58 ( const char *  psz,
std::vector< unsigned char > &  vchRet 
)

Decode a base58-encoded string (psz) into a byte vector (vchRet).

return true if decoding is successful. psz cannot be nullptr.

Definition at line 21 of file base58.cpp.

References pszBase58.

Referenced by Base58Decode(), DecodeBase58(), and DecodeBase58Check().

◆ DecodeBase58() [2/2]

bool DecodeBase58 ( const std::string &  str,
std::vector< unsigned char > &  vchRet 
)

Decode a base58-encoded string (str) into a byte vector (vchRet).

return true if decoding is successful.

Definition at line 116 of file base58.cpp.

References DecodeBase58().

◆ DecodeBase58Check() [1/2]

bool DecodeBase58Check ( const char *  psz,
std::vector< unsigned char > &  vchRet 
)
inline

Decode a base58-encoded string (psz) that includes a checksum into a byte vector (vchRet), return true if decoding is successful.

Definition at line 130 of file base58.cpp.

References DecodeBase58(), and Hash().

Referenced by DecodeBase58Check(), and CBase58Data::SetString().

◆ DecodeBase58Check() [2/2]

bool DecodeBase58Check ( const std::string &  str,
std::vector< unsigned char > &  vchRet 
)
inline

Decode a base58-encoded string (str) that includes a checksum into a byte vector (vchRet), return true if decoding is successful.

Definition at line 147 of file base58.cpp.

References DecodeBase58Check().

◆ DecodeDestination()

◆ EncodeBase58() [1/2]

std::string EncodeBase58 ( const unsigned char *  pbegin,
const unsigned char *  pend 
)

Why base-58 instead of standard base-64 encoding?

  • Don't want 0OIl characters that look the same in some fonts and could be used to create visually identical looking data.
  • A string with non-alphanumeric characters is not as easily accepted as input.
  • E-mail usually won't line-break if there's no punctuation to break at.
  • Double-clicking selects the whole string as one word if it's all alphanumeric. Encode a byte sequence as a base58-encoded string. pbegin and pend cannot be nullptr, unless both are.

Definition at line 71 of file base58.cpp.

References pszBase58.

Referenced by Base58Encode(), GUIUtil::DummyAddress(), EncodeBase58(), and EncodeBase58Check().

◆ EncodeBase58() [2/2]

std::string EncodeBase58 ( const std::vector< unsigned char > &  vch)

Encode a byte vector as a base58-encoded string.

Definition at line 111 of file base58.cpp.

References EncodeBase58().

◆ EncodeBase58Check()

std::string EncodeBase58Check ( const std::vector< unsigned char > &  vchIn)

Encode a byte vector into a base58-encoded string, including checksum.

Definition at line 121 of file base58.cpp.

References EncodeBase58(), and Hash().

Referenced by Base58CheckEncode(), and CBase58Data::ToString().

◆ EncodeDestination()

std::string EncodeDestination ( const CTxDestination dest)

Definition at line 329 of file base58.cpp.

Referenced by CWallet::AddDestData(), CDeterministicMNList::AddMN(), addmultisigaddress(), AddressTableModel::addRow(), CGovernancePayment::CGovernancePayment(), createmultisig(), decodescript(), TransactionRecord::decomposeTransaction(), CWallet::DelAddressBook(), dumpwallet(), CWallet::EraseDestData(), getaccountaddress(), getaddressesbyaccount(), getAddressFromIndex(), getblocktemplate(), CMasternodePayments::GetMasternodeTxOuts(), getnewaddress(), GetNextMasternodeForPayment(), getrawchangeaddress(), CSuperblockManager::GetRequiredPaymentsString(), GetRequiredPaymentsString(), CSuperblockManager::GetSuperblockPayments(), importelectrumwallet(), importwallet(), CMasternodePayments::IsTransactionValid(), CSuperblock::IsValid(), listaddressbalances(), listaddressgroupings(), WalletModel::listCoins(), ListReceived(), listunspent(), CWallet::LoadCScript(), CProRegTx::MakeSignString(), masternodelist(), MaybePushAddress(), NotifyAddressBookChanged(), CSuperblock::ParsePaymentSchedule(), PaymentServer::processPaymentRequest(), AddressTablePriv::refreshAddressTable(), ScriptPubKeyToUniv(), CWallet::SelectCoinsGroupedByAddresses(), CWallet::SetAddressBook(), TransactionDesc::toHTML(), CProRegTx::ToJson(), CSimplifiedMNListEntry::ToJson(), CDeterministicMNState::ToJson(), CProUpServTx::ToJson(), CProUpRegTx::ToJson(), CDeterministicMN::ToJson(), CProRegTx::ToString(), CSimplifiedMNListEntry::ToString(), CDeterministicMNState::ToString(), CProUpServTx::ToString(), CProUpRegTx::ToString(), TxToUniv(), MasternodeList::updateDIP3List(), CoinControlDialog::updateView(), and validateaddress().

◆ IsValidDestinationString() [1/2]

bool IsValidDestinationString ( const std::string &  str,
const CChainParams params 
)

◆ IsValidDestinationString() [2/2]

bool IsValidDestinationString ( const std::string &  str)

Definition at line 346 of file base58.cpp.

Variable Documentation

◆ pszBase58

const char* pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"
static

All alphanumeric characters except for "0", "I", "O", and "l".

Definition at line 19 of file base58.cpp.

Referenced by DecodeBase58(), and EncodeBase58().

Released under the MIT license