Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e012bc1fb | ||
|
|
f07d3942e1 | ||
|
|
b93cf3a2d0 |
@@ -1381,7 +1381,7 @@ void BlockchainLMDB::remove_transaction_data(const crypto::hash& tx_hash, const
|
||||
LOG_PRINT_L1("tx ID " << tip->data.tx_id << "\n\tTally before burn = " << source_tally.str() << "\n\tTally after burn = " << final_source_tally.str());
|
||||
}
|
||||
|
||||
if (tx.type == cryptonote::transaction_type::CONVERT || tx.type == cryptonote::transaction_type::BURN || tx.type == cryptonote::transaction_type::STAKE) {
|
||||
if (tx.type == cryptonote::transaction_type::BURN || tx.type == cryptonote::transaction_type::CONVERT || tx.type == cryptonote::transaction_type::STAKE) {
|
||||
|
||||
// Get the current tally value for the source currency type
|
||||
MDB_val_copy<uint64_t> source_idx(cryptonote::asset_id_from_type(tx.source_asset_type));
|
||||
@@ -3502,6 +3502,7 @@ std::map<std::string,uint64_t> BlockchainLMDB::get_circulating_supply() const
|
||||
if (circulating_supply.empty()) {
|
||||
circulating_supply["SAL"] = m_coinbase;
|
||||
}
|
||||
circulating_supply["BURN"] = m_coinbase - circulating_supply["SAL"];
|
||||
return circulating_supply;
|
||||
}
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
#define HF_VERSION_ENABLE_ORACLE 2
|
||||
#define HF_VERSION_SLIPPAGE_YIELD 2
|
||||
|
||||
#define TESTNET_VERSION 7
|
||||
#define TESTNET_VERSION 8
|
||||
#define STAGENET_VERSION 1
|
||||
|
||||
#define PER_KB_FEE_QUANTIZATION_DECIMALS 8
|
||||
@@ -337,7 +337,7 @@ namespace config
|
||||
boost::uuids::uuid const NETWORK_ID = { {
|
||||
0x12 ,0x30, 0xF1, 0x71 , 0x61, 0x04 , 0x41, 0x61, 0x17, 0x31, 0x82, 0x53, 0x41, 0x4C, 0x00, TESTNET_VERSION
|
||||
} };
|
||||
std::string const GENESIS_TX = "020001ff000180c0d0c7bbbff6030279e90d3da9f9568396c5795833e6aed334d10b6bc08219de189e3ac6fade73c50353414c3c00000000000000210118c0fd33040975cb28c52cca0005a909661afeec61944e42b8646e069fd04209010000";
|
||||
std::string const GENESIS_TX = "020001ff000180c0d0c7bbbff60302800b6eb882218e901c1c36bce474224456d82226260226d252459dfbadf186f70353414c3c00000000000000210171af115cca70fdcfdac362854ed9de472e242c8be5a3684e8a809d54f5dbdb18010000";
|
||||
uint32_t const GENESIS_NONCE = 10001;
|
||||
|
||||
const uint64_t STAKE_LOCK_PERIOD = 20;
|
||||
|
||||
@@ -8370,7 +8370,7 @@ bool simple_wallet::supply_info(const std::vector<std::string> &args) {
|
||||
//supply_128 /= COIN;
|
||||
uint64_t supply = supply_128.convert_to<uint64_t>();
|
||||
|
||||
message_writer(console_color_default, false) << boost::format(tr("\t%s\t:\t%d")) % supply_asset.first % print_money(supply);
|
||||
message_writer(console_color_default, false) << boost::format(tr("\t%6s : %21.8d")) % supply_asset.first % print_money(supply);
|
||||
|
||||
/*
|
||||
// get price
|
||||
@@ -8431,8 +8431,8 @@ bool simple_wallet::yield_info(const std::vector<std::string> &args) {
|
||||
}
|
||||
|
||||
// Output the necessary information about yield stats
|
||||
message_writer(console_color_default, false) << boost::format(tr("YIELD INFO:\n\tTotal SAL supply: %d\n\tTotal coins burnt: %d\n\tTotal coins locked: %d\n\tYield accrued over last %s: %d\n\tYield per SAL staked: %d"))
|
||||
% print_money(total_supply_128.convert_to<uint64_t>())
|
||||
message_writer(console_color_default, false) << boost::format(tr("YIELD INFO:\n\tSupply coins burnt over last %s: %d\n\tTotal coins locked: %d\n\tYield accrued over last %s: %d\n\tYield per SAL staked: %d"))
|
||||
% get_human_readable_timespan((ybi_data.size()-1) * DIFFICULTY_TARGET_V2)
|
||||
% print_money(total_burnt)
|
||||
% print_money(ybi_data.back().locked_coins_tally)
|
||||
% get_human_readable_timespan((ybi_data.size()-1) * DIFFICULTY_TARGET_V2)
|
||||
@@ -8442,7 +8442,9 @@ bool simple_wallet::yield_info(const std::vector<std::string> &args) {
|
||||
// Now summarise our own YIELD TXs that are yet to amture
|
||||
tools::wallet2::transfer_container transfers;
|
||||
m_wallet->get_transfers(transfers);
|
||||
|
||||
if (transfers.empty())
|
||||
return true;
|
||||
|
||||
std::map<size_t, size_t> payouts;
|
||||
message_writer(console_color_default, false) << boost::format(tr("\nSTAKED FUNDS:"));
|
||||
for (size_t idx = transfers.size()-1; idx>0; --idx) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#define DEF_SALVIUM_VERSION_TAG "7f6b8da"
|
||||
#define DEF_SALVIUM_VERSION "0.3.0"
|
||||
#define DEF_SALVIUM_VERSION "0.3.1"
|
||||
#define DEF_MONERO_VERSION_TAG "@VERSIONTAG@"
|
||||
#define DEF_MONERO_VERSION "0.18.3.3"
|
||||
#define DEF_MONERO_RELEASE_NAME "Zero"
|
||||
|
||||
@@ -2543,12 +2543,6 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote
|
||||
bool ok = m_account.get_device().derive_subaddress_public_key(output_public_key, derivation, i, pk_change);
|
||||
THROW_WALLET_EXCEPTION_IF(!ok, error::wallet_internal_error, "Failed to derive subaddress public key for TRANSFER TX");
|
||||
|
||||
// Find the TX public key for P_change
|
||||
//auto search = m_salvium_txs.find(pk_change);
|
||||
//if (search != m_salvium_txs.end()) {
|
||||
// Store the origin index for the TX - this is needed when we want to SPEND the returned funds
|
||||
|
||||
|
||||
check_acc_out_precomp_once(tx.vout[i], derivation, additional_derivations, i, is_out_data_ptr, tx_scan_info[i], output_found[i]);
|
||||
THROW_WALLET_EXCEPTION_IF(tx_scan_info[i].error, error::acc_outs_lookup_error, tx, tx_pub_key, m_account.get_keys());
|
||||
if (tx_scan_info[i].received)
|
||||
@@ -2564,6 +2558,19 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote
|
||||
|
||||
// Copy the origin TD
|
||||
td_origin_idx = tx_scan_info[i].origin_idx;
|
||||
|
||||
if (tx.type == cryptonote::transaction_type::PROTOCOL) {
|
||||
|
||||
THROW_WALLET_EXCEPTION_IF(td_origin_idx >= get_num_transfer_details(), error::wallet_internal_error, "cannot locate protocol TX origin in m_transfers");
|
||||
const transfer_details& td_origin = get_transfer_details(td_origin_idx);
|
||||
THROW_WALLET_EXCEPTION_IF(td_origin.m_tx.type != cryptonote::transaction_type::STAKE, error::wallet_internal_error, "incorrect TX type for protocol_tx origin in m_transfers");
|
||||
|
||||
// Get the output key for the change entry
|
||||
crypto::public_key pk_locked_coins = crypto::null_pkey;
|
||||
THROW_WALLET_EXCEPTION_IF(!get_output_public_key(td_origin.m_tx.vout[td_origin.m_internal_output_index], pk_locked_coins), error::wallet_internal_error, "Failed to get output public key for locked coins");
|
||||
// At this point, we need to clear the "locked coins" count, because otherwise we will be counting yield stakes twice in our balance
|
||||
THROW_WALLET_EXCEPTION_IF(!m_locked_coins.erase(pk_locked_coins), error::wallet_internal_error, "Failed to remove protocol_tx entry from m_locked_coins");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2691,7 +2698,7 @@ void wallet2::process_new_transaction(const crypto::hash &txid, const cryptonote
|
||||
if (tx.type == cryptonote::transaction_type::STAKE) {
|
||||
// Additionally, with YIELD TXs, we need to update our "balance staked" subtotal, because otherwise our balance is out by the staked coins until they mature!
|
||||
// SRCG: must remember to deduct the number of staked coins when they mature!!
|
||||
LOG_ERROR("***** STAKED COINS : " << tx.amount_burnt << " *****");
|
||||
LOG_PRINT_L1("***** STAKED COINS : " << tx.amount_burnt << " *****");
|
||||
m_locked_coins.insert({P_change, {0, tx.amount_burnt}});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user