A whole host of changes to start supporting more unified approach to uniqueness

Lots of refactoring still to be done in the codebase, and currently TRANSFER
method does not work - the daemon does not send the real output for some reason.
Lots still to do - please be patient.
This code is NOT ready for use. Or testing. Or anything else.
This commit is contained in:
Some Random Crypto Guy
2023-12-20 01:06:23 +00:00
parent 8bf55dbfef
commit 6d08d5aabf
27 changed files with 575 additions and 936 deletions
+3 -3
View File
@@ -60,7 +60,7 @@ namespace cryptonote
uint64_t amount_slippage_limit;
std::string source_asset;
std::string destination_asset;
cryptonote::transaction_type type;
uint8_t type;
crypto::public_key P_change;
crypto::key_image input_k_image;
};
@@ -68,7 +68,7 @@ namespace cryptonote
//---------------------------------------------------------------
bool construct_miner_tx(size_t height, size_t median_weight, uint64_t already_generated_coins, size_t current_block_weight, uint64_t fee, const account_public_address &miner_address, transaction& tx, const blobdata& extra_nonce = blobdata(), size_t max_outs = 999, uint8_t hard_fork_version = 1);
bool construct_protocol_tx(size_t height, transaction& tx, size_t max_outs = 999, uint8_t hard_fork_version = 1);
bool calculate_uniqueness(const cryptonote::transaction_type& type, const crypto::key_image& k_image, const size_t height, const size_t idx, crypto::ec_scalar& uniqueness);
struct tx_source_entry
{
typedef std::pair<uint64_t, rct::ctkey> output_entry;
@@ -84,7 +84,7 @@ namespace cryptonote
rct::multisig_kLRki multisig_kLRki; //multisig info
oracle::pricing_record pr;
std::string asset_type;
crypto::hash uniqueness; //the uniqueness needed to prove ownership of the consumed output
crypto::ec_scalar uniqueness; //the uniqueness needed to prove ownership of the consumed output
void push_output(uint64_t idx, const crypto::public_key &k, uint64_t amount) { outputs.push_back(std::make_pair(idx, rct::ctkey({rct::pk2rct(k), rct::zeroCommit(amount)}))); }