本文整理汇总了C++中cryptonote::WalletGreen::getAddressSpendKey方法的典型用法代码示例。如果您正苦于以下问题:C++ WalletGreen::getAddressSpendKey方法的具体用法?C++ WalletGreen::getAddressSpendKey怎么用?C++ WalletGreen::getAddressSpendKey使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cryptonote::WalletGreen
的用法示例。
在下文中一共展示了WalletGreen::getAddressSpendKey方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: printPrivateKeys
void printPrivateKeys(CryptoNote::WalletGreen &wallet, bool viewWallet)
{
auto privateViewKey = wallet.getViewKey().secretKey;
if (viewWallet)
{
std::cout << SuccessMsg("Private view key:")
<< std::endl
<< SuccessMsg(Common::podToHex(privateViewKey))
<< std::endl;
return;
}
auto privateSpendKey = wallet.getAddressSpendKey(0).secretKey;
Crypto::SecretKey derivedPrivateViewKey;
CryptoNote::AccountBase::generateViewFromSpend(privateSpendKey,
derivedPrivateViewKey);
const bool deterministicPrivateKeys
= derivedPrivateViewKey == privateViewKey;
std::cout << SuccessMsg("Private spend key:")
<< std::endl
<< SuccessMsg(Common::podToHex(privateSpendKey))
<< std::endl
<< std::endl
<< SuccessMsg("Private view key:")
<< std::endl
<< SuccessMsg(Common::podToHex(privateViewKey))
<< std::endl;
if (deterministicPrivateKeys)
{
std::string mnemonicSeed;
Crypto::ElectrumWords::bytes_to_words(privateSpendKey,
mnemonicSeed,
"English");
std::cout << std::endl
<< SuccessMsg("Mnemonic seed:")
<< std::endl
<< SuccessMsg(mnemonicSeed)
<< std::endl;
}
std::cout << std::endl
<< SuccessMsg("GUI Importable Private Key:")
<< std::endl
<< SuccessMsg(getGUIPrivateKey(wallet))
<< std::endl;
}
示例2: getGUIPrivateKey
std::string getGUIPrivateKey(CryptoNote::WalletGreen &wallet)
{
auto viewKey = wallet.getViewKey();
auto spendKey = wallet.getAddressSpendKey(0);
CryptoNote::AccountPublicAddress addr
{
spendKey.publicKey,
viewKey.publicKey,
};
CryptoNote::AccountKeys keys
{
addr,
spendKey.secretKey,
viewKey.secretKey,
};
return Tools::Base58::encode_addr
(
CryptoNote::parameters::CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX,
std::string(reinterpret_cast<char*>(&keys), sizeof(keys))
);
}
示例3: openWallet
std::shared_ptr<WalletInfo> openWallet(CryptoNote::WalletGreen &wallet,
Config &config)
{
const std::string walletFileName = getExistingWalletFileName(config);
bool initial = true;
while (true)
{
std::string walletPass;
/* Only use the command line pass once, otherwise we will infinite
loop if it is incorrect */
if (initial && config.passGiven)
{
walletPass = config.walletPass;
}
else
{
walletPass = getWalletPassword(false, "Enter password: ");
}
initial = false;
connectingMsg();
try
{
wallet.load(walletFileName, walletPass);
const std::string walletAddress = wallet.getAddress(0);
const Crypto::SecretKey privateSpendKey
= wallet.getAddressSpendKey(0).secretKey;
bool viewWallet = false;
if (privateSpendKey == CryptoNote::NULL_SECRET_KEY)
{
std::cout << std::endl
<< InformationMsg("Your view only wallet ")
<< InformationMsg(walletAddress)
<< InformationMsg(" has been successfully opened!")
<< std::endl << std::endl;
viewWalletMsg();
viewWallet = true;
}
else
{
std::cout << std::endl
<< InformationMsg("Your wallet ")
<< InformationMsg(walletAddress)
<< InformationMsg(" has been successfully opened!")
<< std::endl << std::endl;
}
return std::make_shared<WalletInfo>(
walletFileName, walletPass, walletAddress, viewWallet, wallet
);
}
catch (const std::system_error& e)
{
bool handled = false;
switch (e.code().value())
{
case CryptoNote::error::WRONG_PASSWORD:
{
std::cout << std::endl
<< WarningMsg("Incorrect password! Try again.")
<< std::endl << std::endl;
handled = true;
break;
}
case CryptoNote::error::WRONG_VERSION:
{
std::stringstream msg;
msg << "Could not open wallet file! It doesn't appear "
<< "to be a valid wallet!" << std::endl
<< "Ensure you are opening a wallet file, and the "
<< "file has not gotten corrupted." << std::endl
<< "Try reimporting via keys, and always close "
<< WalletConfig::walletName << " with the exit "
<< "command to prevent corruption." << std::endl;
std::cout << WarningMsg(msg.str()) << std::endl;
return nullptr;
}
}
if (handled)
{
//.........这里部分代码省略.........