From c9303b8afd66926b630bba4db3fd1be6f99a6d1d Mon Sep 17 00:00:00 2001 From: KaffinPX Date: Wed, 29 Jul 2026 23:49:28 +0300 Subject: [PATCH 1/6] feat(consensus): Concise consensus crate after seperations --- Cargo.toml | 2 +- composer/Cargo.toml | 2 +- composer/src/composer/builder.rs | 2 +- composer/src/composer/prover/block.rs | 26 ++++---- composer/src/composer/prover/transaction.rs | 30 ++++----- composer/src/core/args.rs | 10 +-- {protocol => consensus}/Cargo.toml | 4 +- .../src}/block/block_appendix.rs | 8 +-- .../src}/block/block_body.rs | 12 ++-- .../src}/block/block_header.rs | 8 +-- .../src}/block/block_height.rs | 0 .../src}/block/block_kernel.rs | 12 ++-- .../src}/block/block_transaction.rs | 10 +-- .../src}/block/block_validation_error.rs | 4 +- .../src}/block/difficulty_control.rs | 0 .../src}/block/guesser_receiver_data.rs | 0 .../consensus => consensus/src}/block/mod.rs | 24 +++---- .../src}/block/mutator_set_update.rs | 8 +-- .../consensus => consensus/src}/block/pow.rs | 8 +-- .../src}/block/validity.rs | 0 .../block/validity/block_primitive_witness.rs | 16 ++--- .../src}/block/validity/block_program.rs | 16 ++--- .../block/validity/block_proof_witness.rs | 16 ++--- .../src}/block/validity/coinbase_is_valid.rs | 2 +- .../correct_control_parameter_update.rs | 2 +- .../src}/block/validity/correct_mmr_update.rs | 0 .../validity/correct_mutator_set_update.rs | 4 +- .../src}/block/validity/mmr_membership.rs | 0 .../block/validity/predecessor_is_valid.rs | 2 +- .../src}/consensus_rule_set.rs | 6 +- .../src/consensus.rs => consensus/src/lib.rs | 11 ++++ .../src}/mutator_set/active_window.rs | 0 .../src}/mutator_set/addition_record.rs | 0 .../src}/mutator_set/authenticated_item.rs | 0 .../mutator_set/mmra_and_membership_proofs.rs | 0 .../src}/mutator_set/mod.rs | 2 +- .../src}/mutator_set/ms_membership_proof.rs | 0 .../src}/mutator_set/msa_and_records.rs | 0 .../mutator_set/mutator_set_accumulator.rs | 2 +- .../src}/mutator_set/removal_record.rs | 0 .../removal_record/absolute_index_set.rs | 8 +-- .../src}/mutator_set/removal_record/chunk.rs | 0 .../removal_record/chunk_dictionary.rs | 0 .../removal_record/removal_record_list.rs | 8 +-- .../src}/mutator_set/root_and_paths.rs | 0 .../src}/mutator_set/shared.rs | 0 .../consensus => consensus/src}/network.rs | 2 +- {protocol => consensus}/src/prelude.rs | 6 +- .../src/proof_abstractions/mast_hash.rs | 0 .../src/proof_abstractions/mod.rs | 0 .../src/proof_abstractions/tasm/builtins.rs | 0 .../proof_abstractions/tasm/environment.rs | 0 .../src/proof_abstractions/tasm/mod.rs | 0 .../src/proof_abstractions/tasm/program.rs | 2 +- .../src/proof_abstractions/timestamp.rs | 0 .../src/proof_abstractions/verifier.rs | 4 +- .../src}/transaction/announcement.rs | 0 .../src}/transaction/lock_script.rs | 2 +- .../src}/transaction/mod.rs | 8 +-- .../src}/transaction/salted_utxos.rs | 0 .../src}/transaction/transaction_kernel.rs | 10 +-- .../src}/transaction/transaction_kernel_id.rs | 4 +- .../src}/transaction/transaction_proof.rs | 12 ++-- .../src}/transaction/utxo.rs | 8 +-- .../src}/transaction/utxo_triple.rs | 6 +- .../validity/collect_lock_scripts.rs | 4 +- .../validity/collect_type_scripts.rs | 8 +-- .../transaction/validity/kernel_to_outputs.rs | 6 +- .../src}/transaction/validity/mod.rs | 0 .../transaction/validity/neptune_proof.rs | 2 +- .../transaction/validity/proof_collection.rs | 12 ++-- .../validity/removal_records_integrity.rs | 16 ++--- .../src}/transaction/validity/single_proof.rs | 28 ++++---- .../src}/transaction/validity/tasm.rs | 0 .../validity/tasm/authenticate_txk_field.rs | 4 +- .../src}/transaction/validity/tasm/claims.rs | 0 .../generate_collect_lock_scripts_claim.rs | 6 +- .../generate_collect_type_scripts_claim.rs | 6 +- .../tasm/claims/generate_k2o_claim.rs | 6 +- .../generate_lock_script_claim_template.rs | 2 +- .../tasm/claims/generate_rri_claim.rs | 6 +- .../claims/generate_single_proof_claim.rs | 2 +- .../generate_type_script_claim_template.rs | 2 +- .../validity/tasm/claims/new_claim.rs | 0 .../validity/tasm/coinbase_amount.rs | 2 +- .../validity/tasm/compute_absolute_indices.rs | 4 +- .../tasm/hash_removal_record_index_sets.rs | 2 +- .../validity/tasm/leaf_authentication.rs | 0 .../authenticate_inputs_against_txk.rs | 4 +- .../authenticate_msa_against_txk.rs | 4 +- .../transaction/validity/tasm/single_proof.rs | 0 .../tasm/single_proof/merge_branch.rs | 42 ++++++------ .../authenticate_coinbase_fields.rs | 8 +-- .../tasm/single_proof/update_branch.rs | 22 +++---- .../add_all_amounts_and_check_time_lock.rs | 10 +-- .../amount/add_time_locked_amount.rs | 0 .../get_total_and_timelocked_amounts.rs | 4 +- .../src}/type_scripts/amount/mod.rs | 0 .../amount/read_and_add_amount.rs | 8 +-- .../amount/test_time_lock_and_maybe_mark.rs | 4 +- .../amount/total_amount_main_loop.rs | 8 +-- .../src}/type_scripts/known_type_scripts.rs | 6 +- .../src}/type_scripts/mod.rs | 4 +- .../src}/type_scripts/native_currency.rs | 14 ++-- .../type_scripts/native_currency_amount.rs | 2 +- .../src}/type_scripts/time_lock.rs | 12 ++-- miner/Cargo.toml | 2 +- miner/src/core/args.rs | 2 +- miner/src/miner/flow.rs | 4 +- miner/src/miner/guesser.rs | 12 ++-- node/Cargo.toml | 2 +- node/src/application/config/cli_args.rs | 6 +- node/src/application/config/data_directory.rs | 2 +- node/src/application/loops/channel.rs | 4 +- node/src/application/loops/main_loop.rs | 2 +- .../loops/mine_loop/composer_parameters.rs | 6 +- node/src/application/loops/peer_loop.rs | 20 +++--- .../application/loops/peer_loop/channel.rs | 8 +-- node/src/application/loops/sync_loop.rs | 4 +- .../loops/sync_loop/block_validator.rs | 6 +- .../application/loops/sync_loop/channel.rs | 4 +- .../src/application/loops/sync_loop/handle.rs | 6 +- .../loops/sync_loop/rapid_block_download.rs | 4 +- node/src/application/network/actor.rs | 2 +- node/src/application/network/address_book.rs | 2 +- node/src/application/network/config.rs | 2 +- node/src/application/rpc/service.rs | 12 ++-- node/src/lib.rs | 2 +- node/src/state/archival_state.rs | 26 ++++---- .../import_blocks_from_files.rs | 2 +- .../state/archival_state/rusty_utxo_index.rs | 10 +-- node/src/state/blockchain_state.rs | 4 +- node/src/state/database.rs | 8 +-- node/src/state/light_state.rs | 16 ++--- node/src/state/mempool.rs | 20 +++--- node/src/state/mempool/mempool_event.rs | 4 +- node/src/state/mempool/merge_input_cache.rs | 4 +- node/src/state/mining/block_proposal.rs | 6 +- node/src/state/mod.rs | 22 +++---- node/src/state/networking_state.rs | 4 +- node/src/util_types/archival_mutator_set.rs | 24 +++---- .../util_types/rusty_archival_mutator_set.rs | 4 +- p2p/Cargo.toml | 2 +- p2p/src/peer.rs | 20 +++--- p2p/src/peer/handshake_data.rs | 4 +- p2p/src/peer/peer_block_notifications.rs | 10 +-- p2p/src/peer/transaction_notification.rs | 10 +-- p2p/src/peer/transfer_block.rs | 14 ++-- p2p/src/peer/transfer_transaction.rs | 12 ++-- protocol/src/lib.rs | 12 ---- prover/Cargo.toml | 2 +- prover/src/lib.rs | 10 +-- prover/src/main.rs | 22 +++---- rpc/core/Cargo.toml | 2 +- rpc/core/src/model/block/appendix.rs | 2 +- rpc/core/src/model/block/body.rs | 6 +- rpc/core/src/model/block/header.rs | 18 +++--- rpc/core/src/model/block/mod.rs | 14 ++-- .../src/model/block/transaction_kernel.rs | 20 +++--- rpc/core/src/model/common.rs | 4 +- rpc/core/src/model/mining/template.rs | 4 +- rpc/core/src/model/wallet/block.rs | 2 +- rpc/core/src/model/wallet/mutator_set.rs | 2 +- rpc/core/src/model/wallet/transaction.rs | 12 ++-- standards/Cargo.toml | 2 +- standards/src/lib.rs | 4 +- standards/src/mutator_set.rs | 10 +-- standards/src/wallet/allocations.rs | 20 +++--- standards/src/wallet/keys/address.rs | 10 +-- standards/src/wallet/keys/key.rs | 8 +-- standards/src/wallet/keys/mod.rs | 6 +- .../src/wallet/keys/schemes/generation.rs | 24 +++---- .../src/wallet/keys/schemes/symmetric.rs | 16 ++--- standards/src/wallet/keys/viewing_key.rs | 6 +- .../src/wallet/notes/announcement_flag.rs | 4 +- .../notes/encrypted_utxo_notification.rs | 8 +-- .../src/wallet/notes/utxo_notification.rs | 4 +- upgrader/Cargo.toml | 2 +- upgrader/src/core/args.rs | 4 +- upgrader/src/core/prover.rs | 10 +-- upgrader/src/upgrader/flow.rs | 2 +- upgrader/src/upgrader/gobbler.rs | 16 ++--- upgrader/src/upgrader/pipeline/updater.rs | 14 ++-- upgrader/src/upgrader/pipeline/upgrader.rs | 4 +- wallet/cli/Cargo.toml | 2 +- wallet/cli/src/core/console.rs | 4 +- wallet/cli/src/core/storage.rs | 2 +- wallet/cli/src/main.rs | 2 +- wallet/core/Cargo.toml | 2 +- .../core/src/entropy/secret_key_material.rs | 8 +-- wallet/core/src/entropy/wallet_entropy.rs | 16 ++--- wallet/core/src/lib.rs | 2 +- wallet/core/src/transaction/builder/input.rs | 10 +-- wallet/core/src/transaction/builder/mod.rs | 8 +-- wallet/core/src/transaction/builder/output.rs | 16 ++--- wallet/core/src/transaction/mod.rs | 10 +-- .../core/src/transaction/primitive_witness.rs | 64 +++++++++---------- wallet/core/src/transaction/utxo/spendable.rs | 14 ++-- wallet/sdk/Cargo.toml | 2 +- wallet/sdk/src/scanners/chain.rs | 22 +++---- wallet/sdk/src/state/utxos/pool.rs | 8 +-- wallet/sdk/src/state/utxos/utxo.rs | 16 ++--- wallet/sdk/src/wallet.rs | 12 ++-- wasm/Cargo.toml | 2 +- wasm/src/lib.rs | 14 ++-- wasm/src/wallet_entropy.rs | 2 +- 206 files changed, 741 insertions(+), 742 deletions(-) rename {protocol => consensus}/Cargo.toml (95%) rename {protocol/src/consensus => consensus/src}/block/block_appendix.rs (92%) rename {protocol/src/consensus => consensus/src}/block/block_body.rs (94%) rename {protocol/src/consensus => consensus/src}/block/block_header.rs (97%) rename {protocol/src/consensus => consensus/src}/block/block_height.rs (100%) rename {protocol/src/consensus => consensus/src}/block/block_kernel.rs (91%) rename {protocol/src/consensus => consensus/src}/block/block_transaction.rs (94%) rename {protocol/src/consensus => consensus/src}/block/block_validation_error.rs (96%) rename {protocol/src/consensus => consensus/src}/block/difficulty_control.rs (100%) rename {protocol/src/consensus => consensus/src}/block/guesser_receiver_data.rs (100%) rename {protocol/src/consensus => consensus/src}/block/mod.rs (97%) rename {protocol/src/consensus => consensus/src}/block/mutator_set_update.rs (94%) rename {protocol/src/consensus => consensus/src}/block/pow.rs (98%) rename {protocol/src/consensus => consensus/src}/block/validity.rs (100%) rename {protocol/src/consensus => consensus/src}/block/validity/block_primitive_witness.rs (91%) rename {protocol/src/consensus => consensus/src}/block/validity/block_program.rs (95%) rename {protocol/src/consensus => consensus/src}/block/validity/block_proof_witness.rs (91%) rename {protocol/src/consensus => consensus/src}/block/validity/coinbase_is_valid.rs (97%) rename {protocol/src/consensus => consensus/src}/block/validity/correct_control_parameter_update.rs (97%) rename {protocol/src/consensus => consensus/src}/block/validity/correct_mmr_update.rs (100%) rename {protocol/src/consensus => consensus/src}/block/validity/correct_mutator_set_update.rs (90%) rename {protocol/src/consensus => consensus/src}/block/validity/mmr_membership.rs (100%) rename {protocol/src/consensus => consensus/src}/block/validity/predecessor_is_valid.rs (97%) rename {protocol/src/consensus => consensus/src}/consensus_rule_set.rs (92%) rename protocol/src/consensus.rs => consensus/src/lib.rs (90%) rename {protocol/src/consensus => consensus/src}/mutator_set/active_window.rs (100%) rename {protocol/src/consensus => consensus/src}/mutator_set/addition_record.rs (100%) rename {protocol/src/consensus => consensus/src}/mutator_set/authenticated_item.rs (100%) rename {protocol/src/consensus => consensus/src}/mutator_set/mmra_and_membership_proofs.rs (100%) rename {protocol/src/consensus => consensus/src}/mutator_set/mod.rs (97%) rename {protocol/src/consensus => consensus/src}/mutator_set/ms_membership_proof.rs (100%) rename {protocol/src/consensus => consensus/src}/mutator_set/msa_and_records.rs (100%) rename {protocol/src/consensus => consensus/src}/mutator_set/mutator_set_accumulator.rs (99%) rename {protocol/src/consensus => consensus/src}/mutator_set/removal_record.rs (100%) rename {protocol/src/consensus => consensus/src}/mutator_set/removal_record/absolute_index_set.rs (97%) rename {protocol/src/consensus => consensus/src}/mutator_set/removal_record/chunk.rs (100%) rename {protocol/src/consensus => consensus/src}/mutator_set/removal_record/chunk_dictionary.rs (100%) rename {protocol/src/consensus => consensus/src}/mutator_set/removal_record/removal_record_list.rs (99%) rename {protocol/src/consensus => consensus/src}/mutator_set/root_and_paths.rs (100%) rename {protocol/src/consensus => consensus/src}/mutator_set/shared.rs (100%) rename {protocol/src/consensus => consensus/src}/network.rs (99%) rename {protocol => consensus}/src/prelude.rs (64%) rename {protocol => consensus}/src/proof_abstractions/mast_hash.rs (100%) rename {protocol => consensus}/src/proof_abstractions/mod.rs (100%) rename {protocol => consensus}/src/proof_abstractions/tasm/builtins.rs (100%) rename {protocol => consensus}/src/proof_abstractions/tasm/environment.rs (100%) rename {protocol => consensus}/src/proof_abstractions/tasm/mod.rs (100%) rename {protocol => consensus}/src/proof_abstractions/tasm/program.rs (96%) rename {protocol => consensus}/src/proof_abstractions/timestamp.rs (100%) rename {protocol => consensus}/src/proof_abstractions/verifier.rs (97%) rename {protocol/src/consensus => consensus/src}/transaction/announcement.rs (100%) rename {protocol/src/consensus => consensus/src}/transaction/lock_script.rs (99%) rename {protocol/src/consensus => consensus/src}/transaction/mod.rs (94%) rename {protocol/src/consensus => consensus/src}/transaction/salted_utxos.rs (100%) rename {protocol/src/consensus => consensus/src}/transaction/transaction_kernel.rs (97%) rename {protocol/src/consensus => consensus/src}/transaction/transaction_kernel_id.rs (97%) rename {protocol/src/consensus => consensus/src}/transaction/transaction_proof.rs (93%) rename {protocol/src/consensus => consensus/src}/transaction/utxo.rs (96%) rename {protocol/src/consensus => consensus/src}/transaction/utxo_triple.rs (83%) rename {protocol/src/consensus => consensus/src}/transaction/validity/collect_lock_scripts.rs (98%) rename {protocol/src/consensus => consensus/src}/transaction/validity/collect_type_scripts.rs (98%) rename {protocol/src/consensus => consensus/src}/transaction/validity/kernel_to_outputs.rs (98%) rename {protocol/src/consensus => consensus/src}/transaction/validity/mod.rs (100%) rename {protocol/src/consensus => consensus/src}/transaction/validity/neptune_proof.rs (99%) rename {protocol/src/consensus => consensus/src}/transaction/validity/proof_collection.rs (95%) rename {protocol/src/consensus => consensus/src}/transaction/validity/removal_records_integrity.rs (98%) rename {protocol/src/consensus => consensus/src}/transaction/validity/single_proof.rs (95%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm.rs (100%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/authenticate_txk_field.rs (92%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/claims.rs (100%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/claims/generate_collect_lock_scripts_claim.rs (95%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/claims/generate_collect_type_scripts_claim.rs (95%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/claims/generate_k2o_claim.rs (93%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/claims/generate_lock_script_claim_template.rs (96%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/claims/generate_rri_claim.rs (94%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/claims/generate_single_proof_claim.rs (98%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/claims/generate_type_script_claim_template.rs (97%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/claims/new_claim.rs (100%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/coinbase_amount.rs (97%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/compute_absolute_indices.rs (98%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/hash_removal_record_index_sets.rs (97%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/leaf_authentication.rs (100%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/leaf_authentication/authenticate_inputs_against_txk.rs (93%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/leaf_authentication/authenticate_msa_against_txk.rs (97%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/single_proof.rs (100%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/single_proof/merge_branch.rs (96%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/single_proof/merge_branch/authenticate_coinbase_fields.rs (96%) rename {protocol/src/consensus => consensus/src}/transaction/validity/tasm/single_proof/update_branch.rs (96%) rename {protocol/src/consensus => consensus/src}/type_scripts/amount/add_all_amounts_and_check_time_lock.rs (95%) rename {protocol/src/consensus => consensus/src}/type_scripts/amount/add_time_locked_amount.rs (100%) rename {protocol/src/consensus => consensus/src}/type_scripts/amount/get_total_and_timelocked_amounts.rs (93%) rename {protocol/src/consensus => consensus/src}/type_scripts/amount/mod.rs (100%) rename {protocol/src/consensus => consensus/src}/type_scripts/amount/read_and_add_amount.rs (94%) rename {protocol/src/consensus => consensus/src}/type_scripts/amount/test_time_lock_and_maybe_mark.rs (96%) rename {protocol/src/consensus => consensus/src}/type_scripts/amount/total_amount_main_loop.rs (94%) rename {protocol/src/consensus => consensus/src}/type_scripts/known_type_scripts.rs (88%) rename {protocol/src/consensus => consensus/src}/type_scripts/mod.rs (96%) rename {protocol/src/consensus => consensus/src}/type_scripts/native_currency.rs (98%) rename {protocol/src/consensus => consensus/src}/type_scripts/native_currency_amount.rs (99%) rename {protocol/src/consensus => consensus/src}/type_scripts/time_lock.rs (97%) delete mode 100644 protocol/src/lib.rs diff --git a/Cargo.toml b/Cargo.toml index c3a9ddd..fc67b2f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ resolver="2" members = [ - "protocol", + "consensus", "p2p", "locks", "database", diff --git a/composer/Cargo.toml b/composer/Cargo.toml index c9c0ac0..594930b 100644 --- a/composer/Cargo.toml +++ b/composer/Cargo.toml @@ -10,7 +10,7 @@ license = "Apache-2.0" repository = "https://github.com/Nyksnet/nyksnode/" [dependencies] -nyks-protocol = { version = "0.8.0", path = "../protocol" } +nyks-consensus = { version = "0.8.0", path = "../consensus" } nyks-standards = { version = "0.8.0", path = "../standards" } nyks-rpc-client = { version = "0.8.0", path = "../rpc/client" } nyks-wallet-core = { version = "0.8.0", path = "../wallet/core" } diff --git a/composer/src/composer/builder.rs b/composer/src/composer/builder.rs index f70ee4c..137d88a 100644 --- a/composer/src/composer/builder.rs +++ b/composer/src/composer/builder.rs @@ -1,4 +1,4 @@ -use nyks_protocol::consensus::block::Block; +use nyks_consensus::block::Block; use nyks_prover::{JobCancelReceiver, JobCancelSender, ProverJobSettings}; use thiserror::Error; use tokio::sync::watch; diff --git a/composer/src/composer/prover/block.rs b/composer/src/composer/prover/block.rs index d879be4..f80753c 100644 --- a/composer/src/composer/prover/block.rs +++ b/composer/src/composer/prover/block.rs @@ -1,16 +1,16 @@ -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::block::BlockProof; -use nyks_protocol::consensus::block::block_appendix::BlockAppendix; -use nyks_protocol::consensus::block::block_transaction::BlockTransaction; -use nyks_protocol::consensus::block::validity::block_primitive_witness::BlockPrimitiveWitness; -use nyks_protocol::consensus::block::validity::block_program::BlockProgram; -use nyks_protocol::consensus::block::validity::block_proof_witness::BlockProofWitness; -use nyks_protocol::consensus::consensus_rule_set::ConsensusRuleSet; -use nyks_protocol::proof_abstractions::SecretWitness; -use nyks_protocol::proof_abstractions::mast_hash::MastHash; -use nyks_protocol::proof_abstractions::tasm::program::TritonProgram; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; -use nyks_protocol::proof_abstractions::verifier::verify; +use nyks_consensus::block::Block; +use nyks_consensus::block::BlockProof; +use nyks_consensus::block::block_appendix::BlockAppendix; +use nyks_consensus::block::block_transaction::BlockTransaction; +use nyks_consensus::block::validity::block_primitive_witness::BlockPrimitiveWitness; +use nyks_consensus::block::validity::block_program::BlockProgram; +use nyks_consensus::block::validity::block_proof_witness::BlockProofWitness; +use nyks_consensus::consensus_rule_set::ConsensusRuleSet; +use nyks_consensus::proof_abstractions::SecretWitness; +use nyks_consensus::proof_abstractions::mast_hash::MastHash; +use nyks_consensus::proof_abstractions::tasm::program::TritonProgram; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::proof_abstractions::verifier::verify; use nyks_prover::JobCancelReceiver; use nyks_prover::ProverJob; use nyks_prover::ProverJobSettings; diff --git a/composer/src/composer/prover/transaction.rs b/composer/src/composer/prover/transaction.rs index aece534..3fda60f 100644 --- a/composer/src/composer/prover/transaction.rs +++ b/composer/src/composer/prover/transaction.rs @@ -1,18 +1,18 @@ use num_traits::CheckedSub; use num_traits::Zero; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::block::block_transaction::BlockOrRegularTransaction; -use nyks_protocol::consensus::block::block_transaction::BlockTransaction; -use nyks_protocol::consensus::consensus_rule_set::ConsensusRuleSet; -use nyks_protocol::consensus::transaction::Transaction; -use nyks_protocol::consensus::transaction::TransactionProof; -use nyks_protocol::consensus::transaction::validity::neptune_proof::Proof; -use nyks_protocol::consensus::transaction::validity::single_proof::SingleProof; -use nyks_protocol::consensus::transaction::validity::single_proof::SingleProofWitness; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::proof_abstractions::SecretWitness; -use nyks_protocol::proof_abstractions::tasm::program::TritonProgram; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::block::Block; +use nyks_consensus::block::block_transaction::BlockOrRegularTransaction; +use nyks_consensus::block::block_transaction::BlockTransaction; +use nyks_consensus::consensus_rule_set::ConsensusRuleSet; +use nyks_consensus::proof_abstractions::SecretWitness; +use nyks_consensus::proof_abstractions::tasm::program::TritonProgram; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::Transaction; +use nyks_consensus::transaction::TransactionProof; +use nyks_consensus::transaction::validity::neptune_proof::Proof; +use nyks_consensus::transaction::validity::single_proof::SingleProof; +use nyks_consensus::transaction::validity::single_proof::SingleProofWitness; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use nyks_prover::JobCancelReceiver; use nyks_prover::ProverJob; use nyks_prover::ProverJobSettings; @@ -239,8 +239,8 @@ impl TransactionProver { /// kills the worker process rather than just stopping our wait on it. async fn prove_single( &self, - claim: nyks_protocol::triton_vm::proof::Claim, - nondeterminism: nyks_protocol::triton_vm::vm::NonDeterminism, + claim: nyks_consensus::triton_vm::proof::Claim, + nondeterminism: nyks_consensus::triton_vm::vm::NonDeterminism, rx: JobCancelReceiver, ) -> Result { let job = ProverJob::new( diff --git a/composer/src/core/args.rs b/composer/src/core/args.rs index 2c21194..a2cc6a6 100644 --- a/composer/src/core/args.rs +++ b/composer/src/core/args.rs @@ -1,11 +1,11 @@ use clap::Parser; use num_traits::CheckedSub; use num_traits::Zero; -use nyks_protocol::consensus::block::MINING_REWARD_TIME_LOCK_PERIOD; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; -use nyks_protocol::tasm_lib::prelude::Digest; +use nyks_consensus::block::MINING_REWARD_TIME_LOCK_PERIOD; +use nyks_consensus::network::Network; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::tasm_lib::prelude::Digest; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use nyks_standards::wallet::keys::address::Address; use nyks_standards::wallet::keys::address::Recipient; use nyks_wallet_core::transaction::builder::output::TxOutput; diff --git a/protocol/Cargo.toml b/consensus/Cargo.toml similarity index 95% rename from protocol/Cargo.toml rename to consensus/Cargo.toml index cdb26c3..ec9b247 100644 --- a/protocol/Cargo.toml +++ b/consensus/Cargo.toml @@ -1,6 +1,6 @@ [package] -name = "nyks-protocol" -description = "protocol types of nyks" +name = "nyks-consensus" +description = "consensus types of nyks" authors = ["Triton Software"] version = "0.8.0" edition = "2024" diff --git a/protocol/src/consensus/block/block_appendix.rs b/consensus/src/block/block_appendix.rs similarity index 92% rename from protocol/src/consensus/block/block_appendix.rs rename to consensus/src/block/block_appendix.rs index a613c6c..6f4df0b 100644 --- a/protocol/src/consensus/block/block_appendix.rs +++ b/consensus/src/block/block_appendix.rs @@ -9,11 +9,11 @@ use tasm_lib::triton_vm::prelude::BFieldElement; use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; use super::block_body::BlockBody; -use crate::consensus::block::Claim; -use crate::consensus::block::Tip5; -use crate::consensus::consensus_rule_set::ConsensusRuleSet; -use crate::consensus::transaction::validity::single_proof::single_proof_claim; +use crate::block::Claim; +use crate::block::Tip5; +use crate::consensus_rule_set::ConsensusRuleSet; use crate::proof_abstractions::mast_hash::MastHash; +use crate::transaction::validity::single_proof::single_proof_claim; pub const MAX_NUM_CLAIMS: usize = 500; diff --git a/protocol/src/consensus/block/block_body.rs b/consensus/src/block/block_body.rs similarity index 94% rename from protocol/src/consensus/block/block_body.rs rename to consensus/src/block/block_body.rs index dd9b39e..31dfa81 100644 --- a/protocol/src/consensus/block/block_body.rs +++ b/consensus/src/block/block_body.rs @@ -13,15 +13,15 @@ use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; use tasm_lib::twenty_first::prelude::MerkleTree; use tasm_lib::twenty_first::util_types::mmr::mmr_accumulator::MmrAccumulator; -use crate::consensus::block::block_validation_error::BlockValidationError; -use crate::consensus::block::mutator_set_update::MutatorSetUpdate; -use crate::consensus::mutator_set::addition_record::AdditionRecord; -use crate::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; -use crate::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use crate::block::block_validation_error::BlockValidationError; +use crate::block::mutator_set_update::MutatorSetUpdate; +use crate::mutator_set::addition_record::AdditionRecord; +use crate::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; use crate::prelude::twenty_first; use crate::proof_abstractions::mast_hash::HasDiscriminant; use crate::proof_abstractions::mast_hash::MastHash; +use crate::transaction::transaction_kernel::TransactionKernel; +use crate::type_scripts::native_currency_amount::NativeCurrencyAmount; #[derive(Debug, Copy, Clone, EnumCount)] pub enum BlockBodyField { diff --git a/protocol/src/consensus/block/block_header.rs b/consensus/src/block/block_header.rs similarity index 97% rename from protocol/src/consensus/block/block_header.rs rename to consensus/src/block/block_header.rs index d1a2fb9..9720657 100644 --- a/protocol/src/consensus/block/block_header.rs +++ b/consensus/src/block/block_header.rs @@ -18,16 +18,16 @@ use super::block_height::BlockHeight; use super::difficulty_control::Difficulty; use super::difficulty_control::ProofOfWork; use super::difficulty_control::difficulty_control; -use crate::consensus::block::guesser_receiver_data::GuesserReceiverData; -use crate::consensus::block::pow::Pow; -use crate::consensus::network::Network; +use crate::block::guesser_receiver_data::GuesserReceiverData; +use crate::block::pow::Pow; +use crate::network::Network; use crate::proof_abstractions::mast_hash::HasDiscriminant; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::timestamp::Timestamp; pub const BLOCK_HEADER_VERSION: BFieldElement = BFieldElement::new(0); -pub type BlockPow = Pow<{ crate::consensus::block::pow::POW_MEMORY_TREE_HEIGHT }>; +pub type BlockPow = Pow<{ crate::block::pow::POW_MEMORY_TREE_HEIGHT }>; #[derive( Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq, BFieldCodec, TasmObject, GetSize, diff --git a/protocol/src/consensus/block/block_height.rs b/consensus/src/block/block_height.rs similarity index 100% rename from protocol/src/consensus/block/block_height.rs rename to consensus/src/block/block_height.rs diff --git a/protocol/src/consensus/block/block_kernel.rs b/consensus/src/block/block_kernel.rs similarity index 91% rename from protocol/src/consensus/block/block_kernel.rs rename to consensus/src/block/block_kernel.rs index 09ef313..c3347e9 100644 --- a/protocol/src/consensus/block/block_kernel.rs +++ b/consensus/src/block/block_kernel.rs @@ -11,14 +11,14 @@ use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; use super::block_appendix::BlockAppendix; use super::block_body::BlockBody; use super::block_header::BlockHeader; -use crate::consensus::block::block_validation_error::BlockValidationError; -use crate::consensus::block::mutator_set_update::MutatorSetUpdate; -use crate::consensus::mutator_set::addition_record::AdditionRecord; -use crate::consensus::mutator_set::commit; -use crate::consensus::mutator_set::removal_record::removal_record_list::RemovalRecordList; -use crate::consensus::transaction::utxo::Utxo; +use crate::block::block_validation_error::BlockValidationError; +use crate::block::mutator_set_update::MutatorSetUpdate; +use crate::mutator_set::addition_record::AdditionRecord; +use crate::mutator_set::commit; +use crate::mutator_set::removal_record::removal_record_list::RemovalRecordList; use crate::proof_abstractions::mast_hash::HasDiscriminant; use crate::proof_abstractions::mast_hash::MastHash; +use crate::transaction::utxo::Utxo; /// The kernel of a block contains all data that is not proof data #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, BFieldCodec, GetSize)] diff --git a/protocol/src/consensus/block/block_transaction.rs b/consensus/src/block/block_transaction.rs similarity index 94% rename from protocol/src/consensus/block/block_transaction.rs rename to consensus/src/block/block_transaction.rs index 07ca9ee..dadbb9a 100644 --- a/protocol/src/consensus/block/block_transaction.rs +++ b/consensus/src/block/block_transaction.rs @@ -1,10 +1,10 @@ use std::ops::Deref; -use crate::consensus::consensus_rule_set::ConsensusRuleSet; -use crate::consensus::transaction::Transaction; -use crate::consensus::transaction::TransactionProof; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; -use crate::consensus::transaction::validity::tasm::single_proof::merge_branch::MergeWitness; +use crate::consensus_rule_set::ConsensusRuleSet; +use crate::transaction::Transaction; +use crate::transaction::TransactionProof; +use crate::transaction::transaction_kernel::TransactionKernel; +use crate::transaction::validity::tasm::single_proof::merge_branch::MergeWitness; /// Newtype for [`TransactionKernel`] where removal records are packed. For use /// in the context of [`BlockTransaction`]s. See [`BlockTransaction`] for more diff --git a/protocol/src/consensus/block/block_validation_error.rs b/consensus/src/block/block_validation_error.rs similarity index 96% rename from protocol/src/consensus/block/block_validation_error.rs rename to consensus/src/block/block_validation_error.rs index 5c7a6eb..95efe4f 100644 --- a/protocol/src/consensus/block/block_validation_error.rs +++ b/consensus/src/block/block_validation_error.rs @@ -1,6 +1,6 @@ -use crate::consensus::mutator_set::removal_record::removal_record_list::RemovalRecordListUnpackError; +use crate::mutator_set::removal_record::removal_record_list::RemovalRecordListUnpackError; -/// The reasons why a [`Block`](crate::consensus::block::Block) can be +/// The reasons why a [`Block`](crate::block::Block) can be /// invalid. /// /// Conversely, defines what it means for a block to be "valid". diff --git a/protocol/src/consensus/block/difficulty_control.rs b/consensus/src/block/difficulty_control.rs similarity index 100% rename from protocol/src/consensus/block/difficulty_control.rs rename to consensus/src/block/difficulty_control.rs diff --git a/protocol/src/consensus/block/guesser_receiver_data.rs b/consensus/src/block/guesser_receiver_data.rs similarity index 100% rename from protocol/src/consensus/block/guesser_receiver_data.rs rename to consensus/src/block/guesser_receiver_data.rs diff --git a/protocol/src/consensus/block/mod.rs b/consensus/src/block/mod.rs similarity index 97% rename from protocol/src/consensus/block/mod.rs rename to consensus/src/block/mod.rs index c384a5e..478022d 100644 --- a/protocol/src/consensus/block/mod.rs +++ b/consensus/src/block/mod.rs @@ -42,20 +42,20 @@ use validity::block_program::BlockProgram; use super::transaction::transaction_kernel::TransactionKernelProxy; use super::type_scripts::native_currency_amount::NativeCurrencyAmount; -use crate::consensus::block::block_header::BlockHeaderField; -use crate::consensus::block::block_header::BlockPow; -use crate::consensus::block::block_kernel::BlockKernelField; -use crate::consensus::block::difficulty_control::difficulty_control; -use crate::consensus::block::pow::PowMastPaths; -use crate::consensus::consensus_rule_set::ConsensusRuleSet; -use crate::consensus::mutator_set::addition_record::AdditionRecord; -use crate::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use crate::consensus::mutator_set::removal_record::removal_record_list::RemovalRecordList; -use crate::consensus::network::Network; -use crate::consensus::transaction::validity::neptune_proof::Proof; +use crate::block::block_header::BlockHeaderField; +use crate::block::block_header::BlockPow; +use crate::block::block_kernel::BlockKernelField; +use crate::block::difficulty_control::difficulty_control; +use crate::block::pow::PowMastPaths; +use crate::consensus_rule_set::ConsensusRuleSet; +use crate::mutator_set::addition_record::AdditionRecord; +use crate::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use crate::mutator_set::removal_record::removal_record_list::RemovalRecordList; +use crate::network::Network; use crate::proof_abstractions::mast_hash::HasDiscriminant; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::timestamp::Timestamp; +use crate::transaction::validity::neptune_proof::Proof; /// With removal records only represented by their absolute index set, the block /// size limit of 1.000.000 `BFieldElement`s allows for a "balanced" block @@ -199,7 +199,7 @@ pub enum BlockProof { /// internals directly (bypassing encapsulation) /// /// ```compile_fail,E0594 -/// use nyks_node::protocol::consensus::block::Block; +/// use nyks_node::protocol::block::Block; /// use nyks_node::application::config::network::Network; /// use nyks_node::prelude::twenty_first::math::b_field_element::BFieldElement; /// use tasm_lib::prelude::Digest; diff --git a/protocol/src/consensus/block/mutator_set_update.rs b/consensus/src/block/mutator_set_update.rs similarity index 94% rename from protocol/src/consensus/block/mutator_set_update.rs rename to consensus/src/block/mutator_set_update.rs index 1dc5af5..6d106ca 100644 --- a/protocol/src/consensus/block/mutator_set_update.rs +++ b/consensus/src/block/mutator_set_update.rs @@ -2,10 +2,10 @@ use anyhow::Result; use serde::Deserialize; use serde::Serialize; -use crate::consensus::mutator_set::addition_record::AdditionRecord; -use crate::consensus::mutator_set::authenticated_item::AuthenticatedItem; -use crate::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use crate::consensus::mutator_set::removal_record::RemovalRecord; +use crate::mutator_set::addition_record::AdditionRecord; +use crate::mutator_set::authenticated_item::AuthenticatedItem; +use crate::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use crate::mutator_set::removal_record::RemovalRecord; #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, Default)] pub struct MutatorSetUpdate { diff --git a/protocol/src/consensus/block/pow.rs b/consensus/src/block/pow.rs similarity index 98% rename from protocol/src/consensus/block/pow.rs rename to consensus/src/block/pow.rs index 466b8b1..b68cb24 100644 --- a/protocol/src/consensus/block/pow.rs +++ b/consensus/src/block/pow.rs @@ -20,10 +20,10 @@ use tasm_lib::triton_vm::prelude::BFieldCodec; use tasm_lib::twenty_first::bfe_array; use crate::BFieldElement; -use crate::consensus::block::Block; -use crate::consensus::block::block_header::BlockHeader; -use crate::consensus::block::block_kernel::BlockKernel; -use crate::consensus::consensus_rule_set::ConsensusRuleSet; +use crate::block::Block; +use crate::block::block_header::BlockHeader; +use crate::block::block_kernel::BlockKernel; +use crate::consensus_rule_set::ConsensusRuleSet; use crate::proof_abstractions::mast_hash::MastHash; /// Determines the number of leafs in the Merkle tree in the guesser buffer. diff --git a/protocol/src/consensus/block/validity.rs b/consensus/src/block/validity.rs similarity index 100% rename from protocol/src/consensus/block/validity.rs rename to consensus/src/block/validity.rs diff --git a/protocol/src/consensus/block/validity/block_primitive_witness.rs b/consensus/src/block/validity/block_primitive_witness.rs similarity index 91% rename from protocol/src/consensus/block/validity/block_primitive_witness.rs rename to consensus/src/block/validity/block_primitive_witness.rs index be2bfa7..7dbaee6 100644 --- a/protocol/src/consensus/block/validity/block_primitive_witness.rs +++ b/consensus/src/block/validity/block_primitive_witness.rs @@ -2,15 +2,15 @@ use std::sync::OnceLock; use tasm_lib::twenty_first::prelude::Mmr; -use crate::consensus::block::Block; -use crate::consensus::block::block_body::BlockBody; -use crate::consensus::block::block_header::BlockHeader; -use crate::consensus::block::block_transaction::BlockTransaction; -use crate::consensus::block::mutator_set_update::MutatorSetUpdate; -use crate::consensus::mutator_set::removal_record::removal_record_list::RemovalRecordList; -use crate::consensus::network::Network; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; +use crate::block::Block; +use crate::block::block_body::BlockBody; +use crate::block::block_header::BlockHeader; +use crate::block::block_transaction::BlockTransaction; +use crate::block::mutator_set_update::MutatorSetUpdate; +use crate::mutator_set::removal_record::removal_record_list::RemovalRecordList; +use crate::network::Network; use crate::proof_abstractions::timestamp::Timestamp; +use crate::transaction::transaction_kernel::TransactionKernel; /// Wraps all information necessary to produce a block. /// diff --git a/protocol/src/consensus/block/validity/block_program.rs b/consensus/src/block/validity/block_program.rs similarity index 95% rename from protocol/src/consensus/block/validity/block_program.rs rename to consensus/src/block/validity/block_program.rs index d7e5e37..f2c300f 100644 --- a/protocol/src/consensus/block/validity/block_program.rs +++ b/consensus/src/block/validity/block_program.rs @@ -20,18 +20,18 @@ use tasm_lib::verifier::stark_verify::StarkVerify; use tracing::debug; use super::block_proof_witness::BlockProofWitness; -use crate::consensus::block::BlockAppendix; -use crate::consensus::block::block_body::BlockBody; -use crate::consensus::block::block_body::BlockBodyField; -use crate::consensus::network::Network; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; -use crate::consensus::transaction::validity::neptune_proof::Proof; -use crate::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use crate::block::BlockAppendix; +use crate::block::block_body::BlockBody; +use crate::block::block_body::BlockBodyField; +use crate::network::Network; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; #[cfg(not(target_arch = "wasm32"))] use crate::proof_abstractions::verifier::verify; +use crate::transaction::transaction_kernel::TransactionKernel; +use crate::transaction::transaction_kernel::TransactionKernelField; +use crate::transaction::validity::neptune_proof::Proof; +use crate::type_scripts::native_currency_amount::NativeCurrencyAmount; /// Verifies that all claims listed in the appendix are true. /// diff --git a/protocol/src/consensus/block/validity/block_proof_witness.rs b/consensus/src/block/validity/block_proof_witness.rs similarity index 91% rename from protocol/src/consensus/block/validity/block_proof_witness.rs rename to consensus/src/block/validity/block_proof_witness.rs index e1bb11e..361fce1 100644 --- a/protocol/src/consensus/block/validity/block_proof_witness.rs +++ b/consensus/src/block/validity/block_proof_witness.rs @@ -16,17 +16,17 @@ use tasm_lib::verifier::stark_verify::StarkVerify; use super::block_primitive_witness::BlockPrimitiveWitness; use super::block_program::BlockProgram; -use crate::consensus::block::BlockAppendix; -use crate::consensus::block::block_body::BlockBody; -use crate::consensus::block::block_body::BlockBodyField; -use crate::consensus::consensus_rule_set::ConsensusRuleSet; -use crate::consensus::transaction::TransactionProof; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; -use crate::consensus::transaction::validity::neptune_proof::Proof; -use crate::consensus::transaction::validity::single_proof::single_proof_claim; +use crate::block::BlockAppendix; +use crate::block::block_body::BlockBody; +use crate::block::block_body::BlockBodyField; +use crate::consensus_rule_set::ConsensusRuleSet; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::TransactionProof; +use crate::transaction::transaction_kernel::TransactionKernelField; +use crate::transaction::validity::neptune_proof::Proof; +use crate::transaction::validity::single_proof::single_proof_claim; /// All information necessary to efficiently produce a proof for a block. /// diff --git a/protocol/src/consensus/block/validity/coinbase_is_valid.rs b/consensus/src/block/validity/coinbase_is_valid.rs similarity index 97% rename from protocol/src/consensus/block/validity/coinbase_is_valid.rs rename to consensus/src/block/validity/coinbase_is_valid.rs index f159690..e80ead1 100644 --- a/protocol/src/consensus/block/validity/coinbase_is_valid.rs +++ b/consensus/src/block/validity/coinbase_is_valid.rs @@ -7,7 +7,7 @@ use tasm_lib::library::Library; use tasm_lib::triton_vm::prelude::*; use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; -use crate::consensus::block::Block; +use crate::block::Block; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::tasm::program::TritonProgram; diff --git a/protocol/src/consensus/block/validity/correct_control_parameter_update.rs b/consensus/src/block/validity/correct_control_parameter_update.rs similarity index 97% rename from protocol/src/consensus/block/validity/correct_control_parameter_update.rs rename to consensus/src/block/validity/correct_control_parameter_update.rs index ad34af2..c8ec289 100644 --- a/protocol/src/consensus/block/validity/correct_control_parameter_update.rs +++ b/consensus/src/block/validity/correct_control_parameter_update.rs @@ -7,7 +7,7 @@ use tasm_lib::library::Library; use tasm_lib::triton_vm::prelude::*; use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; -use crate::consensus::block::Block; +use crate::block::Block; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::tasm::program::TritonProgram; diff --git a/protocol/src/consensus/block/validity/correct_mmr_update.rs b/consensus/src/block/validity/correct_mmr_update.rs similarity index 100% rename from protocol/src/consensus/block/validity/correct_mmr_update.rs rename to consensus/src/block/validity/correct_mmr_update.rs diff --git a/protocol/src/consensus/block/validity/correct_mutator_set_update.rs b/consensus/src/block/validity/correct_mutator_set_update.rs similarity index 90% rename from protocol/src/consensus/block/validity/correct_mutator_set_update.rs rename to consensus/src/block/validity/correct_mutator_set_update.rs index a3c27b5..ac1f677 100644 --- a/protocol/src/consensus/block/validity/correct_mutator_set_update.rs +++ b/consensus/src/block/validity/correct_mutator_set_update.rs @@ -6,8 +6,8 @@ use serde::Serialize; use tasm_lib::library::Library; use tasm_lib::triton_vm::prelude::*; -use crate::consensus::block::BFieldCodec; -use crate::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use crate::block::BFieldCodec; +use crate::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::tasm::program::TritonProgram; diff --git a/protocol/src/consensus/block/validity/mmr_membership.rs b/consensus/src/block/validity/mmr_membership.rs similarity index 100% rename from protocol/src/consensus/block/validity/mmr_membership.rs rename to consensus/src/block/validity/mmr_membership.rs diff --git a/protocol/src/consensus/block/validity/predecessor_is_valid.rs b/consensus/src/block/validity/predecessor_is_valid.rs similarity index 97% rename from protocol/src/consensus/block/validity/predecessor_is_valid.rs rename to consensus/src/block/validity/predecessor_is_valid.rs index 0938aea..4125139 100644 --- a/protocol/src/consensus/block/validity/predecessor_is_valid.rs +++ b/consensus/src/block/validity/predecessor_is_valid.rs @@ -7,7 +7,7 @@ use tasm_lib::library::Library; use tasm_lib::triton_vm::prelude::*; use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; -use crate::consensus::block::Block; +use crate::block::Block; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::tasm::program::TritonProgram; diff --git a/protocol/src/consensus/consensus_rule_set.rs b/consensus/src/consensus_rule_set.rs similarity index 92% rename from protocol/src/consensus/consensus_rule_set.rs rename to consensus/src/consensus_rule_set.rs index 101a59f..b796848 100644 --- a/protocol/src/consensus/consensus_rule_set.rs +++ b/consensus/src/consensus_rule_set.rs @@ -1,6 +1,6 @@ -use crate::consensus::block::MAX_NUM_INPUTS_OUTPUTS_ANNOUNCEMENTS; -use crate::consensus::block::block_height::BlockHeight; -use crate::consensus::network::Network; +use crate::block::MAX_NUM_INPUTS_OUTPUTS_ANNOUNCEMENTS; +use crate::block::block_height::BlockHeight; +use crate::network::Network; /// Enumerates all possible sets of consensus rules. /// diff --git a/protocol/src/consensus.rs b/consensus/src/lib.rs similarity index 90% rename from protocol/src/consensus.rs rename to consensus/src/lib.rs index 709a94b..2c25d81 100644 --- a/protocol/src/consensus.rs +++ b/consensus/src/lib.rs @@ -1,10 +1,21 @@ +// recursion limit for macros (e.g. triton_asm!) +#![recursion_limit = "2048"] +#![deny(clippy::shadow_unrelated)] + pub mod block; pub mod consensus_rule_set; pub mod mutator_set; pub mod network; +pub mod prelude; +pub mod proof_abstractions; pub mod transaction; pub mod type_scripts; +pub use prelude::tasm_lib; +pub use prelude::triton_vm; +pub use prelude::twenty_first; +pub use triton_vm::prelude::BFieldElement; + #[cfg(test)] #[cfg_attr(coverage_nightly, coverage(off))] mod tests { diff --git a/protocol/src/consensus/mutator_set/active_window.rs b/consensus/src/mutator_set/active_window.rs similarity index 100% rename from protocol/src/consensus/mutator_set/active_window.rs rename to consensus/src/mutator_set/active_window.rs diff --git a/protocol/src/consensus/mutator_set/addition_record.rs b/consensus/src/mutator_set/addition_record.rs similarity index 100% rename from protocol/src/consensus/mutator_set/addition_record.rs rename to consensus/src/mutator_set/addition_record.rs diff --git a/protocol/src/consensus/mutator_set/authenticated_item.rs b/consensus/src/mutator_set/authenticated_item.rs similarity index 100% rename from protocol/src/consensus/mutator_set/authenticated_item.rs rename to consensus/src/mutator_set/authenticated_item.rs diff --git a/protocol/src/consensus/mutator_set/mmra_and_membership_proofs.rs b/consensus/src/mutator_set/mmra_and_membership_proofs.rs similarity index 100% rename from protocol/src/consensus/mutator_set/mmra_and_membership_proofs.rs rename to consensus/src/mutator_set/mmra_and_membership_proofs.rs diff --git a/protocol/src/consensus/mutator_set/mod.rs b/consensus/src/mutator_set/mod.rs similarity index 97% rename from protocol/src/consensus/mutator_set/mod.rs rename to consensus/src/mutator_set/mod.rs index c13109a..2ac433e 100644 --- a/protocol/src/consensus/mutator_set/mod.rs +++ b/consensus/src/mutator_set/mod.rs @@ -5,7 +5,7 @@ use tasm_lib::prelude::Digest; use tasm_lib::prelude::Tip5; use self::addition_record::AdditionRecord; -use crate::consensus::mutator_set::shared::BATCH_SIZE; +use crate::mutator_set::shared::BATCH_SIZE; pub mod active_window; pub mod addition_record; diff --git a/protocol/src/consensus/mutator_set/ms_membership_proof.rs b/consensus/src/mutator_set/ms_membership_proof.rs similarity index 100% rename from protocol/src/consensus/mutator_set/ms_membership_proof.rs rename to consensus/src/mutator_set/ms_membership_proof.rs diff --git a/protocol/src/consensus/mutator_set/msa_and_records.rs b/consensus/src/mutator_set/msa_and_records.rs similarity index 100% rename from protocol/src/consensus/mutator_set/msa_and_records.rs rename to consensus/src/mutator_set/msa_and_records.rs diff --git a/protocol/src/consensus/mutator_set/mutator_set_accumulator.rs b/consensus/src/mutator_set/mutator_set_accumulator.rs similarity index 99% rename from protocol/src/consensus/mutator_set/mutator_set_accumulator.rs rename to consensus/src/mutator_set/mutator_set_accumulator.rs index 163d677..e0f0859 100644 --- a/protocol/src/consensus/mutator_set/mutator_set_accumulator.rs +++ b/consensus/src/mutator_set/mutator_set_accumulator.rs @@ -25,7 +25,7 @@ use super::removal_record::chunk_dictionary::ChunkDictionary; use super::shared::BATCH_SIZE; use super::shared::CHUNK_SIZE; use super::shared::WINDOW_SIZE; -use crate::consensus::mutator_set::aocl_to_swbfi_leaf_counts; +use crate::mutator_set::aocl_to_swbfi_leaf_counts; #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, GetSize, BFieldCodec, TasmObject)] pub struct MutatorSetAccumulator { diff --git a/protocol/src/consensus/mutator_set/removal_record.rs b/consensus/src/mutator_set/removal_record.rs similarity index 100% rename from protocol/src/consensus/mutator_set/removal_record.rs rename to consensus/src/mutator_set/removal_record.rs diff --git a/protocol/src/consensus/mutator_set/removal_record/absolute_index_set.rs b/consensus/src/mutator_set/removal_record/absolute_index_set.rs similarity index 97% rename from protocol/src/consensus/mutator_set/removal_record/absolute_index_set.rs rename to consensus/src/mutator_set/removal_record/absolute_index_set.rs index 56842b7..073360c 100644 --- a/protocol/src/consensus/mutator_set/removal_record/absolute_index_set.rs +++ b/consensus/src/mutator_set/removal_record/absolute_index_set.rs @@ -13,10 +13,10 @@ use tasm_lib::twenty_first::prelude::Sponge; use super::super::mutator_set_accumulator::MutatorSetAccumulator; use super::super::shared::NUM_TRIALS; use super::MutatorSetError; -use crate::consensus::mutator_set::shared::BATCH_SIZE; -use crate::consensus::mutator_set::shared::CHUNK_SIZE; -use crate::consensus::mutator_set::shared::WINDOW_SIZE; -use crate::consensus::mutator_set::shared::indices_to_hash_map; +use crate::mutator_set::shared::BATCH_SIZE; +use crate::mutator_set::shared::CHUNK_SIZE; +use crate::mutator_set::shared::WINDOW_SIZE; +use crate::mutator_set::shared::indices_to_hash_map; /// A set of 45 (=[`NUM_TRIALS`]) sliding window Bloom filter bit indices. /// The indices live in a window that is at most 2^20 (=[`WINDOW_SIZE`]) wide. diff --git a/protocol/src/consensus/mutator_set/removal_record/chunk.rs b/consensus/src/mutator_set/removal_record/chunk.rs similarity index 100% rename from protocol/src/consensus/mutator_set/removal_record/chunk.rs rename to consensus/src/mutator_set/removal_record/chunk.rs diff --git a/protocol/src/consensus/mutator_set/removal_record/chunk_dictionary.rs b/consensus/src/mutator_set/removal_record/chunk_dictionary.rs similarity index 100% rename from protocol/src/consensus/mutator_set/removal_record/chunk_dictionary.rs rename to consensus/src/mutator_set/removal_record/chunk_dictionary.rs diff --git a/protocol/src/consensus/mutator_set/removal_record/removal_record_list.rs b/consensus/src/mutator_set/removal_record/removal_record_list.rs similarity index 99% rename from protocol/src/consensus/mutator_set/removal_record/removal_record_list.rs rename to consensus/src/mutator_set/removal_record/removal_record_list.rs index 93a526a..97b161f 100644 --- a/protocol/src/consensus/mutator_set/removal_record/removal_record_list.rs +++ b/consensus/src/mutator_set/removal_record/removal_record_list.rs @@ -18,11 +18,11 @@ use super::RemovalRecord; use super::chunk::Chunk; use super::chunk::ChunkUnpackError; use super::chunk_dictionary::ChunkDictionary; -use crate::consensus::mutator_set::aocl_to_swbfi_leaf_counts; -use crate::consensus::mutator_set::shared::BATCH_SIZE; -use crate::consensus::mutator_set::shared::CHUNK_SIZE; +use crate::mutator_set::aocl_to_swbfi_leaf_counts; +use crate::mutator_set::shared::BATCH_SIZE; +use crate::mutator_set::shared::CHUNK_SIZE; -/// A list of [`RemovalRecords`](crate::consensus::mutator_set::removal_record::RemovalRecord)s +/// A list of [`RemovalRecords`](crate::mutator_set::removal_record::RemovalRecord)s /// without redundant Merkle authentication data. /// /// This is considered a trusted data structure as it's never transmitted over diff --git a/protocol/src/consensus/mutator_set/root_and_paths.rs b/consensus/src/mutator_set/root_and_paths.rs similarity index 100% rename from protocol/src/consensus/mutator_set/root_and_paths.rs rename to consensus/src/mutator_set/root_and_paths.rs diff --git a/protocol/src/consensus/mutator_set/shared.rs b/consensus/src/mutator_set/shared.rs similarity index 100% rename from protocol/src/consensus/mutator_set/shared.rs rename to consensus/src/mutator_set/shared.rs diff --git a/protocol/src/consensus/network.rs b/consensus/src/network.rs similarity index 99% rename from protocol/src/consensus/network.rs rename to consensus/src/network.rs index 8e5bb3b..d997063 100644 --- a/protocol/src/consensus/network.rs +++ b/consensus/src/network.rs @@ -6,7 +6,7 @@ use serde::Deserialize; use serde::Serialize; use tasm_lib::twenty_first::math::b_field_element::BFieldElement; -use crate::consensus::block::difficulty_control::Difficulty; +use crate::block::difficulty_control::Difficulty; use crate::proof_abstractions::timestamp::Timestamp; #[derive( diff --git a/protocol/src/prelude.rs b/consensus/src/prelude.rs similarity index 64% rename from protocol/src/prelude.rs rename to consensus/src/prelude.rs index fb4d73e..78e029f 100644 --- a/protocol/src/prelude.rs +++ b/consensus/src/prelude.rs @@ -1,9 +1,9 @@ //! Re-exports the most commonly-needed APIs of nyksnode. //! -//! This module is intended to be wildcard-imported, _i.e._, `use nyks_protocol::prelude::twenty_first;`. +//! This module is intended to be wildcard-imported, _i.e._, `use nyks_consensus::prelude::twenty_first;`. //! You might also want to consider wildcard-importing these prelude, -//! `use nyks_protocol::prelude::tasm_lib::prelude::*;`. -//! `use nyks_protocol::prelude::triton_vm::prelude::*;`. +//! `use nyks_consensus::prelude::tasm_lib::prelude::*;`. +//! `use nyks_consensus::prelude::triton_vm::prelude::*;`. pub use tasm_lib; pub use tasm_lib::prelude::triton_vm; diff --git a/protocol/src/proof_abstractions/mast_hash.rs b/consensus/src/proof_abstractions/mast_hash.rs similarity index 100% rename from protocol/src/proof_abstractions/mast_hash.rs rename to consensus/src/proof_abstractions/mast_hash.rs diff --git a/protocol/src/proof_abstractions/mod.rs b/consensus/src/proof_abstractions/mod.rs similarity index 100% rename from protocol/src/proof_abstractions/mod.rs rename to consensus/src/proof_abstractions/mod.rs diff --git a/protocol/src/proof_abstractions/tasm/builtins.rs b/consensus/src/proof_abstractions/tasm/builtins.rs similarity index 100% rename from protocol/src/proof_abstractions/tasm/builtins.rs rename to consensus/src/proof_abstractions/tasm/builtins.rs diff --git a/protocol/src/proof_abstractions/tasm/environment.rs b/consensus/src/proof_abstractions/tasm/environment.rs similarity index 100% rename from protocol/src/proof_abstractions/tasm/environment.rs rename to consensus/src/proof_abstractions/tasm/environment.rs diff --git a/protocol/src/proof_abstractions/tasm/mod.rs b/consensus/src/proof_abstractions/tasm/mod.rs similarity index 100% rename from protocol/src/proof_abstractions/tasm/mod.rs rename to consensus/src/proof_abstractions/tasm/mod.rs diff --git a/protocol/src/proof_abstractions/tasm/program.rs b/consensus/src/proof_abstractions/tasm/program.rs similarity index 96% rename from protocol/src/proof_abstractions/tasm/program.rs rename to consensus/src/proof_abstractions/tasm/program.rs index b895253..3a7ba95 100644 --- a/protocol/src/proof_abstractions/tasm/program.rs +++ b/consensus/src/proof_abstractions/tasm/program.rs @@ -7,7 +7,7 @@ use tasm_lib::triton_vm::error::InstructionError; use tasm_lib::triton_vm::error::ProvingError; use tasm_lib::triton_vm::prelude::*; -use crate::consensus::transaction::validity::neptune_proof::Proof; +use crate::transaction::validity::neptune_proof::Proof; #[derive(Debug, Clone)] pub enum TritonError { diff --git a/protocol/src/proof_abstractions/timestamp.rs b/consensus/src/proof_abstractions/timestamp.rs similarity index 100% rename from protocol/src/proof_abstractions/timestamp.rs rename to consensus/src/proof_abstractions/timestamp.rs diff --git a/protocol/src/proof_abstractions/verifier.rs b/consensus/src/proof_abstractions/verifier.rs similarity index 97% rename from protocol/src/proof_abstractions/verifier.rs rename to consensus/src/proof_abstractions/verifier.rs index 99f225f..baa5bdf 100644 --- a/protocol/src/proof_abstractions/verifier.rs +++ b/consensus/src/proof_abstractions/verifier.rs @@ -3,8 +3,8 @@ use tasm_lib::triton_vm::proof::Claim; use tasm_lib::triton_vm::stark::Stark; use tokio::task; -use crate::consensus::network::Network; -use crate::consensus::transaction::validity::neptune_proof::Proof; +use crate::network::Network; +use crate::transaction::validity::neptune_proof::Proof; /// This claims-cache contains claims that are simply defined to be true. /// diff --git a/protocol/src/consensus/transaction/announcement.rs b/consensus/src/transaction/announcement.rs similarity index 100% rename from protocol/src/consensus/transaction/announcement.rs rename to consensus/src/transaction/announcement.rs diff --git a/protocol/src/consensus/transaction/lock_script.rs b/consensus/src/transaction/lock_script.rs similarity index 99% rename from protocol/src/consensus/transaction/lock_script.rs rename to consensus/src/transaction/lock_script.rs index c1d590f..544c692 100644 --- a/protocol/src/consensus/transaction/lock_script.rs +++ b/consensus/src/transaction/lock_script.rs @@ -13,7 +13,7 @@ use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; use tasm_lib::twenty_first::tip5::digest::Digest; use super::utxo::Utxo; -use crate::consensus::transaction::Proof; +use crate::transaction::Proof; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, GetSize, BFieldCodec)] pub struct LockScript { diff --git a/protocol/src/consensus/transaction/mod.rs b/consensus/src/transaction/mod.rs similarity index 94% rename from protocol/src/consensus/transaction/mod.rs rename to consensus/src/transaction/mod.rs index 70f551e..f2b60f4 100644 --- a/protocol/src/consensus/transaction/mod.rs +++ b/consensus/src/transaction/mod.rs @@ -1,9 +1,9 @@ #[cfg(test)] use std::sync::Arc; -use crate::consensus::network::Network; -use crate::consensus::transaction::transaction_kernel_id::TransactionKernelId; +use crate::network::Network; use crate::proof_abstractions::mast_hash::MastHash; +use crate::transaction::transaction_kernel_id::TransactionKernelId; pub mod announcement; pub mod lock_script; @@ -29,8 +29,8 @@ use validity::tasm::single_proof::merge_branch::MergeWitness; use self::transaction_kernel::TransactionKernel; use self::transaction_kernel::TransactionKernelProxy; use super::consensus_rule_set::ConsensusRuleSet; -use crate::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use crate::consensus::transaction::validity::neptune_proof::Proof; +use crate::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use crate::transaction::validity::neptune_proof::Proof; use crate::triton_vm::proof::Claim; #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, GetSize)] diff --git a/protocol/src/consensus/transaction/salted_utxos.rs b/consensus/src/transaction/salted_utxos.rs similarity index 100% rename from protocol/src/consensus/transaction/salted_utxos.rs rename to consensus/src/transaction/salted_utxos.rs diff --git a/protocol/src/consensus/transaction/transaction_kernel.rs b/consensus/src/transaction/transaction_kernel.rs similarity index 97% rename from protocol/src/consensus/transaction/transaction_kernel.rs rename to consensus/src/transaction/transaction_kernel.rs index 5673536..8e06503 100644 --- a/protocol/src/consensus/transaction/transaction_kernel.rs +++ b/consensus/src/transaction/transaction_kernel.rs @@ -13,14 +13,14 @@ use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; use tasm_lib::twenty_first::tip5::digest::Digest; use super::announcement::Announcement; -use crate::consensus::mutator_set::addition_record::AdditionRecord; -use crate::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use crate::consensus::mutator_set::removal_record::RemovalRecord; -use crate::consensus::mutator_set::removal_record::removal_record_list::RemovalRecordListUnpackError; -use crate::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use crate::mutator_set::addition_record::AdditionRecord; +use crate::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use crate::mutator_set::removal_record::RemovalRecord; +use crate::mutator_set::removal_record::removal_record_list::RemovalRecordListUnpackError; use crate::proof_abstractions::mast_hash::HasDiscriminant; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::timestamp::Timestamp; +use crate::type_scripts::native_currency_amount::NativeCurrencyAmount; /// TransactionKernel is immutable and its hash never changes. /// diff --git a/protocol/src/consensus/transaction/transaction_kernel_id.rs b/consensus/src/transaction/transaction_kernel_id.rs similarity index 97% rename from protocol/src/consensus/transaction/transaction_kernel_id.rs rename to consensus/src/transaction/transaction_kernel_id.rs index 7c4e35d..2b50eb3 100644 --- a/protocol/src/consensus/transaction/transaction_kernel_id.rs +++ b/consensus/src/transaction/transaction_kernel_id.rs @@ -9,7 +9,7 @@ use tasm_lib::triton_vm::prelude::Digest; use tasm_lib::triton_vm::prelude::Tip5; use tasm_lib::twenty_first::prelude::MerkleTree; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; +use crate::transaction::transaction_kernel::TransactionKernel; /// A unique identifier of a transaction whose value is unaffected by a /// transaction update. @@ -62,7 +62,7 @@ impl TransactionKernel { /// transaction from [new_with_updated_mutator_set_records]. /// /// - /// [new_with_updated_mutator_set_records]: crate::protocol::consensus::transaction::Transaction + /// [new_with_updated_mutator_set_records]: crate::protocol::transaction::Transaction pub fn txid(&self) -> TransactionKernelId { // Since the `Update` program allows permutation of inputs, we must sort // the digests of the absolute indices to arrive at a digest that is diff --git a/protocol/src/consensus/transaction/transaction_proof.rs b/consensus/src/transaction/transaction_proof.rs similarity index 93% rename from protocol/src/consensus/transaction/transaction_proof.rs rename to consensus/src/transaction/transaction_proof.rs index 96932cc..ee1684d 100644 --- a/protocol/src/consensus/transaction/transaction_proof.rs +++ b/consensus/src/transaction/transaction_proof.rs @@ -4,14 +4,14 @@ use serde::Serialize; use strum::EnumIter; use tasm_lib::prelude::Digest; -use crate::consensus::consensus_rule_set::ConsensusRuleSet; -use crate::consensus::network::Network; -use crate::consensus::transaction::BFieldCodec; -use crate::consensus::transaction::ProofCollection; -use crate::consensus::transaction::validity::neptune_proof::NeptuneProof; -use crate::consensus::transaction::validity::single_proof::single_proof_claim; +use crate::consensus_rule_set::ConsensusRuleSet; +use crate::network::Network; #[cfg(not(target_arch = "wasm32"))] use crate::proof_abstractions::verifier::verify; +use crate::transaction::BFieldCodec; +use crate::transaction::ProofCollection; +use crate::transaction::validity::neptune_proof::NeptuneProof; +use crate::transaction::validity::single_proof::single_proof_claim; /// Enumerates the kind of transaction proof that can be shared without the risk /// of loss of funds. diff --git a/protocol/src/consensus/transaction/utxo.rs b/consensus/src/transaction/utxo.rs similarity index 96% rename from protocol/src/consensus/transaction/utxo.rs rename to consensus/src/transaction/utxo.rs index 95e0e50..5e53627 100644 --- a/protocol/src/consensus/transaction/utxo.rs +++ b/consensus/src/transaction/utxo.rs @@ -12,12 +12,12 @@ use tasm_lib::twenty_first::math::b_field_element::BFieldElement; use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; use tasm_lib::twenty_first::tip5::digest::Digest; -use crate::consensus::type_scripts::known_type_scripts::is_known_type_script_with_valid_state; -use crate::consensus::type_scripts::native_currency::NativeCurrency; -use crate::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use crate::consensus::type_scripts::time_lock::TimeLock; use crate::proof_abstractions::tasm::program::TritonProgram; use crate::proof_abstractions::timestamp::Timestamp; +use crate::type_scripts::known_type_scripts::is_known_type_script_with_valid_state; +use crate::type_scripts::native_currency::NativeCurrency; +use crate::type_scripts::native_currency_amount::NativeCurrencyAmount; +use crate::type_scripts::time_lock::TimeLock; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, BFieldCodec, TasmObject)] pub struct Coin { diff --git a/protocol/src/consensus/transaction/utxo_triple.rs b/consensus/src/transaction/utxo_triple.rs similarity index 83% rename from protocol/src/consensus/transaction/utxo_triple.rs rename to consensus/src/transaction/utxo_triple.rs index 2c3414d..e4f33b5 100644 --- a/protocol/src/consensus/transaction/utxo_triple.rs +++ b/consensus/src/transaction/utxo_triple.rs @@ -2,9 +2,9 @@ use tasm_lib::prelude::Digest; use tasm_lib::prelude::Tip5; use tasm_lib::triton_vm::prelude::BFieldCodec; -use crate::consensus::mutator_set::addition_record::AdditionRecord; -use crate::consensus::mutator_set::commit; -use crate::consensus::transaction::utxo::Utxo; +use crate::mutator_set::addition_record::AdditionRecord; +use crate::mutator_set::commit; +use crate::transaction::utxo::Utxo; /// Represents the preimage of a transaction output, so not just the UTXO but /// also the randomnesses. diff --git a/protocol/src/consensus/transaction/validity/collect_lock_scripts.rs b/consensus/src/transaction/validity/collect_lock_scripts.rs similarity index 98% rename from protocol/src/consensus/transaction/validity/collect_lock_scripts.rs rename to consensus/src/transaction/validity/collect_lock_scripts.rs index 6a7ce28..b03777a 100644 --- a/protocol/src/consensus/transaction/validity/collect_lock_scripts.rs +++ b/consensus/src/transaction/validity/collect_lock_scripts.rs @@ -20,11 +20,11 @@ use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; use triton_vm::prelude::NonDeterminism; use triton_vm::prelude::PublicInput; -use crate::consensus::transaction::salted_utxos::SaltedUtxos; -use crate::consensus::transaction::utxo::Utxo; use crate::prelude::triton_vm; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::salted_utxos::SaltedUtxos; +use crate::transaction::utxo::Utxo; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, GetSize, BFieldCodec, TasmObject)] pub struct CollectLockScriptsWitness { diff --git a/protocol/src/consensus/transaction/validity/collect_type_scripts.rs b/consensus/src/transaction/validity/collect_type_scripts.rs similarity index 98% rename from protocol/src/consensus/transaction/validity/collect_type_scripts.rs rename to consensus/src/transaction/validity/collect_type_scripts.rs index 00afaba..35b8cf7 100644 --- a/protocol/src/consensus/transaction/validity/collect_type_scripts.rs +++ b/consensus/src/transaction/validity/collect_type_scripts.rs @@ -23,13 +23,13 @@ use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; use triton_vm::prelude::NonDeterminism; use triton_vm::prelude::PublicInput; -use crate::consensus::transaction::salted_utxos::SaltedUtxos; -use crate::consensus::transaction::utxo::Coin; -use crate::consensus::transaction::utxo::Utxo; -use crate::consensus::type_scripts::native_currency::NativeCurrency; use crate::prelude::triton_vm; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::salted_utxos::SaltedUtxos; +use crate::transaction::utxo::Coin; +use crate::transaction::utxo::Utxo; +use crate::type_scripts::native_currency::NativeCurrency; /// Maximum number of inputs/outputs allowed. Number of UTXOs must be strictly /// less than this number. diff --git a/protocol/src/consensus/transaction/validity/kernel_to_outputs.rs b/consensus/src/transaction/validity/kernel_to_outputs.rs similarity index 98% rename from protocol/src/consensus/transaction/validity/kernel_to_outputs.rs rename to consensus/src/transaction/validity/kernel_to_outputs.rs index 15ede52..b4458d0 100644 --- a/protocol/src/consensus/transaction/validity/kernel_to_outputs.rs +++ b/consensus/src/transaction/validity/kernel_to_outputs.rs @@ -16,12 +16,12 @@ use tasm_lib::structure::verify_nd_si_integrity::VerifyNdSiIntegrity; use tasm_lib::triton_vm::prelude::*; use tasm_lib::twenty_first::bfieldcodec_derive::BFieldCodec; -use crate::consensus::transaction::salted_utxos::SaltedUtxos; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::salted_utxos::SaltedUtxos; +use crate::transaction::transaction_kernel::TransactionKernel; +use crate::transaction::transaction_kernel::TransactionKernelField; #[derive( Clone, diff --git a/protocol/src/consensus/transaction/validity/mod.rs b/consensus/src/transaction/validity/mod.rs similarity index 100% rename from protocol/src/consensus/transaction/validity/mod.rs rename to consensus/src/transaction/validity/mod.rs diff --git a/protocol/src/consensus/transaction/validity/neptune_proof.rs b/consensus/src/transaction/validity/neptune_proof.rs similarity index 99% rename from protocol/src/consensus/transaction/validity/neptune_proof.rs rename to consensus/src/transaction/validity/neptune_proof.rs index 0e23a3e..fb31b87 100644 --- a/protocol/src/consensus/transaction/validity/neptune_proof.rs +++ b/consensus/src/transaction/validity/neptune_proof.rs @@ -10,7 +10,7 @@ use tasm_lib::triton_vm::proof::Claim; use tasm_lib::triton_vm::proof::Proof as VmProof; use crate::BFieldElement; -use crate::consensus::transaction::BFieldCodec; +use crate::transaction::BFieldCodec; use crate::triton_vm::prelude::LabelledInstruction; /// defines Mock proof behaviors. (private) diff --git a/protocol/src/consensus/transaction/validity/proof_collection.rs b/consensus/src/transaction/validity/proof_collection.rs similarity index 95% rename from protocol/src/consensus/transaction/validity/proof_collection.rs rename to consensus/src/transaction/validity/proof_collection.rs index e37fe5d..020201c 100644 --- a/protocol/src/consensus/transaction/validity/proof_collection.rs +++ b/consensus/src/transaction/validity/proof_collection.rs @@ -9,15 +9,15 @@ use tracing::debug; use tracing::trace; use super::removal_records_integrity::RemovalRecordsIntegrity; -use crate::consensus::network::Network; -use crate::consensus::transaction::BFieldCodec; -use crate::consensus::transaction::validity::collect_lock_scripts::CollectLockScripts; -use crate::consensus::transaction::validity::collect_type_scripts::CollectTypeScripts; -use crate::consensus::transaction::validity::kernel_to_outputs::KernelToOutputs; -use crate::consensus::transaction::validity::neptune_proof::Proof; +use crate::network::Network; use crate::proof_abstractions::tasm::program::TritonProgram; #[cfg(not(target_arch = "wasm32"))] use crate::proof_abstractions::verifier::verify; +use crate::transaction::BFieldCodec; +use crate::transaction::validity::collect_lock_scripts::CollectLockScripts; +use crate::transaction::validity::collect_type_scripts::CollectTypeScripts; +use crate::transaction::validity::kernel_to_outputs::KernelToOutputs; +use crate::transaction::validity::neptune_proof::Proof; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, GetSize, BFieldCodec, TasmObject)] pub struct ProofCollection { diff --git a/protocol/src/consensus/transaction/validity/removal_records_integrity.rs b/consensus/src/transaction/validity/removal_records_integrity.rs similarity index 98% rename from protocol/src/consensus/transaction/validity/removal_records_integrity.rs rename to consensus/src/transaction/validity/removal_records_integrity.rs index 3d4d82a..a63b653 100644 --- a/protocol/src/consensus/transaction/validity/removal_records_integrity.rs +++ b/consensus/src/transaction/validity/removal_records_integrity.rs @@ -31,17 +31,17 @@ use tasm_lib::twenty_first::util_types::mmr::mmr_membership_proof::MmrMembership use tasm_lib::twenty_first::util_types::mmr::mmr_trait::Mmr; use tasm_lib::twenty_first::util_types::mmr::shared_basic::leaf_index_to_mt_index_and_peak_index; -use crate::consensus::mutator_set::ms_membership_proof::MsMembershipProof; -use crate::consensus::mutator_set::removal_record::RemovalRecord; -use crate::consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; -use crate::consensus::transaction::salted_utxos::SaltedUtxos; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; -use crate::consensus::transaction::validity::tasm::compute_absolute_indices::ComputeAbsoluteIndices; -use crate::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use crate::mutator_set::ms_membership_proof::MsMembershipProof; +use crate::mutator_set::removal_record::RemovalRecord; +use crate::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::salted_utxos::SaltedUtxos; +use crate::transaction::transaction_kernel::TransactionKernel; +use crate::transaction::transaction_kernel::TransactionKernelField; +use crate::transaction::validity::tasm::compute_absolute_indices::ComputeAbsoluteIndices; +use crate::type_scripts::native_currency_amount::NativeCurrencyAmount; const COINBASE_HAS_INPUTS_ERROR: i128 = 1_000_000; const COMPUTED_AND_CLAIMED_INDICES_DISAGREE_ERROR: i128 = 1_000_001; diff --git a/protocol/src/consensus/transaction/validity/single_proof.rs b/consensus/src/transaction/validity/single_proof.rs similarity index 95% rename from protocol/src/consensus/transaction/validity/single_proof.rs rename to consensus/src/transaction/validity/single_proof.rs index f311aee..70f0bef 100644 --- a/protocol/src/consensus/transaction/validity/single_proof.rs +++ b/consensus/src/transaction/validity/single_proof.rs @@ -1,8 +1,8 @@ use std::collections::HashMap; use std::sync::OnceLock; -use crate::consensus::consensus_rule_set::ConsensusRuleSet; -use crate::consensus::transaction::validity::neptune_proof::Proof; +use crate::consensus_rule_set::ConsensusRuleSet; +use crate::transaction::validity::neptune_proof::Proof; use crate::triton_vm::prelude::*; use itertools::Itertools; use tasm_lib::field; @@ -16,21 +16,21 @@ use tasm_lib::twenty_first::error::BFieldCodecError; use tasm_lib::verifier::stark_verify::StarkVerify; use crate::BFieldElement; -use crate::consensus::transaction::Claim; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; -use crate::consensus::transaction::validity::proof_collection::ProofCollection; -use crate::consensus::transaction::validity::tasm::claims::generate_collect_lock_scripts_claim::GenerateCollectLockScriptsClaim; -use crate::consensus::transaction::validity::tasm::claims::generate_collect_type_scripts_claim::GenerateCollectTypeScriptsClaim; -use crate::consensus::transaction::validity::tasm::claims::generate_k2o_claim::GenerateK2oClaim; -use crate::consensus::transaction::validity::tasm::claims::generate_lock_script_claim_template::GenerateLockScriptClaimTemplate; -use crate::consensus::transaction::validity::tasm::claims::generate_rri_claim::GenerateRriClaim; -use crate::consensus::transaction::validity::tasm::claims::generate_type_script_claim_template::GenerateTypeScriptClaimTemplate; -use crate::consensus::transaction::validity::tasm::single_proof::merge_branch::MergeBranch; -use crate::consensus::transaction::validity::tasm::single_proof::update_branch::UpdateBranch; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::Claim; +use crate::transaction::transaction_kernel::TransactionKernel; +use crate::transaction::transaction_kernel::TransactionKernelField; +use crate::transaction::validity::proof_collection::ProofCollection; +use crate::transaction::validity::tasm::claims::generate_collect_lock_scripts_claim::GenerateCollectLockScriptsClaim; +use crate::transaction::validity::tasm::claims::generate_collect_type_scripts_claim::GenerateCollectTypeScriptsClaim; +use crate::transaction::validity::tasm::claims::generate_k2o_claim::GenerateK2oClaim; +use crate::transaction::validity::tasm::claims::generate_lock_script_claim_template::GenerateLockScriptClaimTemplate; +use crate::transaction::validity::tasm::claims::generate_rri_claim::GenerateRriClaim; +use crate::transaction::validity::tasm::claims::generate_type_script_claim_template::GenerateTypeScriptClaimTemplate; +use crate::transaction::validity::tasm::single_proof::merge_branch::MergeBranch; +use crate::transaction::validity::tasm::single_proof::update_branch::UpdateBranch; use super::tasm::single_proof::merge_branch::MergeWitness; use super::tasm::single_proof::update_branch::UpdateWitness; diff --git a/protocol/src/consensus/transaction/validity/tasm.rs b/consensus/src/transaction/validity/tasm.rs similarity index 100% rename from protocol/src/consensus/transaction/validity/tasm.rs rename to consensus/src/transaction/validity/tasm.rs diff --git a/protocol/src/consensus/transaction/validity/tasm/authenticate_txk_field.rs b/consensus/src/transaction/validity/tasm/authenticate_txk_field.rs similarity index 92% rename from protocol/src/consensus/transaction/validity/tasm/authenticate_txk_field.rs rename to consensus/src/transaction/validity/tasm/authenticate_txk_field.rs index 9abb93b..7fd9ba0 100644 --- a/protocol/src/consensus/transaction/validity/tasm/authenticate_txk_field.rs +++ b/consensus/src/transaction/validity/tasm/authenticate_txk_field.rs @@ -5,9 +5,9 @@ use tasm_lib::prelude::BasicSnippet; use tasm_lib::prelude::Library; use tasm_lib::triton_vm::prelude::*; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; use crate::proof_abstractions::mast_hash::MastHash; +use crate::transaction::transaction_kernel::TransactionKernel; +use crate::transaction::transaction_kernel::TransactionKernelField; #[derive(Debug, Clone, Copy)] pub struct AuthenticateTxkField(pub TransactionKernelField); diff --git a/protocol/src/consensus/transaction/validity/tasm/claims.rs b/consensus/src/transaction/validity/tasm/claims.rs similarity index 100% rename from protocol/src/consensus/transaction/validity/tasm/claims.rs rename to consensus/src/transaction/validity/tasm/claims.rs diff --git a/protocol/src/consensus/transaction/validity/tasm/claims/generate_collect_lock_scripts_claim.rs b/consensus/src/transaction/validity/tasm/claims/generate_collect_lock_scripts_claim.rs similarity index 95% rename from protocol/src/consensus/transaction/validity/tasm/claims/generate_collect_lock_scripts_claim.rs rename to consensus/src/transaction/validity/tasm/claims/generate_collect_lock_scripts_claim.rs index f22d3ab..9363a3f 100644 --- a/protocol/src/consensus/transaction/validity/tasm/claims/generate_collect_lock_scripts_claim.rs +++ b/consensus/src/transaction/validity/tasm/claims/generate_collect_lock_scripts_claim.rs @@ -6,10 +6,10 @@ use tasm_lib::prelude::*; use tasm_lib::traits::basic_snippet::BasicSnippet; use tasm_lib::triton_vm::prelude::*; -use crate::consensus::transaction::validity::collect_lock_scripts::CollectLockScripts; -use crate::consensus::transaction::validity::proof_collection::ProofCollection; -use crate::consensus::transaction::validity::tasm::claims::new_claim::NewClaim; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::validity::collect_lock_scripts::CollectLockScripts; +use crate::transaction::validity::proof_collection::ProofCollection; +use crate::transaction::validity::tasm::claims::new_claim::NewClaim; pub struct GenerateCollectLockScriptsClaim; diff --git a/protocol/src/consensus/transaction/validity/tasm/claims/generate_collect_type_scripts_claim.rs b/consensus/src/transaction/validity/tasm/claims/generate_collect_type_scripts_claim.rs similarity index 95% rename from protocol/src/consensus/transaction/validity/tasm/claims/generate_collect_type_scripts_claim.rs rename to consensus/src/transaction/validity/tasm/claims/generate_collect_type_scripts_claim.rs index 83d47ac..dbe3751 100644 --- a/protocol/src/consensus/transaction/validity/tasm/claims/generate_collect_type_scripts_claim.rs +++ b/consensus/src/transaction/validity/tasm/claims/generate_collect_type_scripts_claim.rs @@ -6,10 +6,10 @@ use tasm_lib::prelude::*; use tasm_lib::traits::basic_snippet::BasicSnippet; use tasm_lib::triton_vm::prelude::*; -use crate::consensus::transaction::validity::collect_type_scripts::CollectTypeScripts; -use crate::consensus::transaction::validity::proof_collection::ProofCollection; -use crate::consensus::transaction::validity::tasm::claims::new_claim::NewClaim; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::validity::collect_type_scripts::CollectTypeScripts; +use crate::transaction::validity::proof_collection::ProofCollection; +use crate::transaction::validity::tasm::claims::new_claim::NewClaim; pub struct GenerateCollectTypeScriptsClaim; diff --git a/protocol/src/consensus/transaction/validity/tasm/claims/generate_k2o_claim.rs b/consensus/src/transaction/validity/tasm/claims/generate_k2o_claim.rs similarity index 93% rename from protocol/src/consensus/transaction/validity/tasm/claims/generate_k2o_claim.rs rename to consensus/src/transaction/validity/tasm/claims/generate_k2o_claim.rs index 83f0015..5acbd0e 100644 --- a/protocol/src/consensus/transaction/validity/tasm/claims/generate_k2o_claim.rs +++ b/consensus/src/transaction/validity/tasm/claims/generate_k2o_claim.rs @@ -5,10 +5,10 @@ use tasm_lib::prelude::*; use tasm_lib::traits::basic_snippet::BasicSnippet; use tasm_lib::triton_vm::prelude::*; -use crate::consensus::transaction::validity::kernel_to_outputs::KernelToOutputs; -use crate::consensus::transaction::validity::proof_collection::ProofCollection; -use crate::consensus::transaction::validity::tasm::claims::new_claim::NewClaim; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::validity::kernel_to_outputs::KernelToOutputs; +use crate::transaction::validity::proof_collection::ProofCollection; +use crate::transaction::validity::tasm::claims::new_claim::NewClaim; pub struct GenerateK2oClaim; diff --git a/protocol/src/consensus/transaction/validity/tasm/claims/generate_lock_script_claim_template.rs b/consensus/src/transaction/validity/tasm/claims/generate_lock_script_claim_template.rs similarity index 96% rename from protocol/src/consensus/transaction/validity/tasm/claims/generate_lock_script_claim_template.rs rename to consensus/src/transaction/validity/tasm/claims/generate_lock_script_claim_template.rs index 2dd9ca6..881a8d9 100644 --- a/protocol/src/consensus/transaction/validity/tasm/claims/generate_lock_script_claim_template.rs +++ b/consensus/src/transaction/validity/tasm/claims/generate_lock_script_claim_template.rs @@ -5,7 +5,7 @@ use tasm_lib::prelude::Library; use tasm_lib::triton_vm::prelude::*; use super::new_claim::NewClaim; -use crate::consensus::transaction::validity::proof_collection::ProofCollection; +use crate::transaction::validity::proof_collection::ProofCollection; pub struct GenerateLockScriptClaimTemplate; diff --git a/protocol/src/consensus/transaction/validity/tasm/claims/generate_rri_claim.rs b/consensus/src/transaction/validity/tasm/claims/generate_rri_claim.rs similarity index 94% rename from protocol/src/consensus/transaction/validity/tasm/claims/generate_rri_claim.rs rename to consensus/src/transaction/validity/tasm/claims/generate_rri_claim.rs index f44205b..dc49336 100644 --- a/protocol/src/consensus/transaction/validity/tasm/claims/generate_rri_claim.rs +++ b/consensus/src/transaction/validity/tasm/claims/generate_rri_claim.rs @@ -5,10 +5,10 @@ use tasm_lib::prelude::*; use tasm_lib::traits::basic_snippet::BasicSnippet; use tasm_lib::triton_vm::prelude::*; -use crate::consensus::transaction::validity::proof_collection::ProofCollection; -use crate::consensus::transaction::validity::removal_records_integrity::RemovalRecordsIntegrity; -use crate::consensus::transaction::validity::tasm::claims::new_claim::NewClaim; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::validity::proof_collection::ProofCollection; +use crate::transaction::validity::removal_records_integrity::RemovalRecordsIntegrity; +use crate::transaction::validity::tasm::claims::new_claim::NewClaim; /// Generates a `RemovalRecordsIntegrity` `Claim` from a `ProofCollection` object. /// diff --git a/protocol/src/consensus/transaction/validity/tasm/claims/generate_single_proof_claim.rs b/consensus/src/transaction/validity/tasm/claims/generate_single_proof_claim.rs similarity index 98% rename from protocol/src/consensus/transaction/validity/tasm/claims/generate_single_proof_claim.rs rename to consensus/src/transaction/validity/tasm/claims/generate_single_proof_claim.rs index fa98e8c..204b712 100644 --- a/protocol/src/consensus/transaction/validity/tasm/claims/generate_single_proof_claim.rs +++ b/consensus/src/transaction/validity/tasm/claims/generate_single_proof_claim.rs @@ -2,7 +2,7 @@ use tasm_lib::data_type::DataType; use tasm_lib::prelude::BasicSnippet; use tasm_lib::prelude::Library; -use crate::consensus::transaction::validity::tasm::claims::new_claim::NewClaim; +use crate::transaction::validity::tasm::claims::new_claim::NewClaim; use crate::triton_vm::prelude::*; #[derive(Debug, Copy, Clone)] diff --git a/protocol/src/consensus/transaction/validity/tasm/claims/generate_type_script_claim_template.rs b/consensus/src/transaction/validity/tasm/claims/generate_type_script_claim_template.rs similarity index 97% rename from protocol/src/consensus/transaction/validity/tasm/claims/generate_type_script_claim_template.rs rename to consensus/src/transaction/validity/tasm/claims/generate_type_script_claim_template.rs index 542c122..adcea10 100644 --- a/protocol/src/consensus/transaction/validity/tasm/claims/generate_type_script_claim_template.rs +++ b/consensus/src/transaction/validity/tasm/claims/generate_type_script_claim_template.rs @@ -5,7 +5,7 @@ use tasm_lib::prelude::Library; use tasm_lib::triton_vm::prelude::*; use super::new_claim::NewClaim; -use crate::consensus::transaction::validity::proof_collection::ProofCollection; +use crate::transaction::validity::proof_collection::ProofCollection; pub struct GenerateTypeScriptClaimTemplate; diff --git a/protocol/src/consensus/transaction/validity/tasm/claims/new_claim.rs b/consensus/src/transaction/validity/tasm/claims/new_claim.rs similarity index 100% rename from protocol/src/consensus/transaction/validity/tasm/claims/new_claim.rs rename to consensus/src/transaction/validity/tasm/claims/new_claim.rs diff --git a/protocol/src/consensus/transaction/validity/tasm/coinbase_amount.rs b/consensus/src/transaction/validity/tasm/coinbase_amount.rs similarity index 97% rename from protocol/src/consensus/transaction/validity/tasm/coinbase_amount.rs rename to consensus/src/transaction/validity/tasm/coinbase_amount.rs index 6763202..eac26a7 100644 --- a/protocol/src/consensus/transaction/validity/tasm/coinbase_amount.rs +++ b/consensus/src/transaction/validity/tasm/coinbase_amount.rs @@ -3,7 +3,7 @@ use tasm_lib::library::Library; use tasm_lib::traits::basic_snippet::BasicSnippet; use tasm_lib::triton_vm::prelude::*; -use crate::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use crate::type_scripts::native_currency_amount::NativeCurrencyAmount; pub struct CoinbaseAmount; diff --git a/protocol/src/consensus/transaction/validity/tasm/compute_absolute_indices.rs b/consensus/src/transaction/validity/tasm/compute_absolute_indices.rs similarity index 98% rename from protocol/src/consensus/transaction/validity/tasm/compute_absolute_indices.rs rename to consensus/src/transaction/validity/tasm/compute_absolute_indices.rs index 03dddff..670218b 100644 --- a/protocol/src/consensus/transaction/validity/tasm/compute_absolute_indices.rs +++ b/consensus/src/transaction/validity/tasm/compute_absolute_indices.rs @@ -6,8 +6,8 @@ use tasm_lib::prelude::BasicSnippet; use tasm_lib::prelude::DataType; use tasm_lib::triton_vm::isa::triton_asm; -use crate::consensus::mutator_set::shared::NUM_TRIALS; -use crate::consensus::mutator_set::shared::WINDOW_SIZE; +use crate::mutator_set::shared::NUM_TRIALS; +use crate::mutator_set::shared::WINDOW_SIZE; const LOG2_BATCH_SIZE: u8 = 3; const LOG2_CHUNK_SIZE: u8 = 12; diff --git a/protocol/src/consensus/transaction/validity/tasm/hash_removal_record_index_sets.rs b/consensus/src/transaction/validity/tasm/hash_removal_record_index_sets.rs similarity index 97% rename from protocol/src/consensus/transaction/validity/tasm/hash_removal_record_index_sets.rs rename to consensus/src/transaction/validity/tasm/hash_removal_record_index_sets.rs index 3e43fbf..936cce2 100644 --- a/protocol/src/consensus/transaction/validity/tasm/hash_removal_record_index_sets.rs +++ b/consensus/src/transaction/validity/tasm/hash_removal_record_index_sets.rs @@ -8,7 +8,7 @@ use tasm_lib::prelude::BasicSnippet; use tasm_lib::prelude::Library; use tasm_lib::triton_vm::prelude::*; -use crate::consensus::mutator_set::removal_record::RemovalRecord; +use crate::mutator_set::removal_record::RemovalRecord; /// Hash the absolute index sets of `NUM_INPUT_LISTS` lists of [`RemovalRecord`]s, /// putting all resulting digests in one list, which is returned. diff --git a/protocol/src/consensus/transaction/validity/tasm/leaf_authentication.rs b/consensus/src/transaction/validity/tasm/leaf_authentication.rs similarity index 100% rename from protocol/src/consensus/transaction/validity/tasm/leaf_authentication.rs rename to consensus/src/transaction/validity/tasm/leaf_authentication.rs diff --git a/protocol/src/consensus/transaction/validity/tasm/leaf_authentication/authenticate_inputs_against_txk.rs b/consensus/src/transaction/validity/tasm/leaf_authentication/authenticate_inputs_against_txk.rs similarity index 93% rename from protocol/src/consensus/transaction/validity/tasm/leaf_authentication/authenticate_inputs_against_txk.rs rename to consensus/src/transaction/validity/tasm/leaf_authentication/authenticate_inputs_against_txk.rs index 5fdc0e3..41f56f0 100644 --- a/protocol/src/consensus/transaction/validity/tasm/leaf_authentication/authenticate_inputs_against_txk.rs +++ b/consensus/src/transaction/validity/tasm/leaf_authentication/authenticate_inputs_against_txk.rs @@ -4,9 +4,9 @@ use tasm_lib::hashing::merkle_verify::MerkleVerify; use tasm_lib::prelude::BasicSnippet; use tasm_lib::prelude::Library; -use crate::consensus::transaction::TransactionKernel; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; use crate::proof_abstractions::mast_hash::MastHash; +use crate::transaction::TransactionKernel; +use crate::transaction::transaction_kernel::TransactionKernelField; use crate::triton_vm::prelude::*; /// Authenticate transaction inputs against the transaction kernel mast hash. diff --git a/protocol/src/consensus/transaction/validity/tasm/leaf_authentication/authenticate_msa_against_txk.rs b/consensus/src/transaction/validity/tasm/leaf_authentication/authenticate_msa_against_txk.rs similarity index 97% rename from protocol/src/consensus/transaction/validity/tasm/leaf_authentication/authenticate_msa_against_txk.rs rename to consensus/src/transaction/validity/tasm/leaf_authentication/authenticate_msa_against_txk.rs index 81342e0..3eade21 100644 --- a/protocol/src/consensus/transaction/validity/tasm/leaf_authentication/authenticate_msa_against_txk.rs +++ b/consensus/src/transaction/validity/tasm/leaf_authentication/authenticate_msa_against_txk.rs @@ -4,9 +4,9 @@ use tasm_lib::mmr::bag_peaks::BagPeaks; use tasm_lib::prelude::*; use tasm_lib::twenty_first::prelude::Digest; -use crate::consensus::transaction::TransactionKernel; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; use crate::proof_abstractions::mast_hash::MastHash; +use crate::transaction::TransactionKernel; +use crate::transaction::transaction_kernel::TransactionKernelField; use crate::triton_vm::prelude::*; /// Authenticate a mutator set accumulator against a transaction-kernel mast hash diff --git a/protocol/src/consensus/transaction/validity/tasm/single_proof.rs b/consensus/src/transaction/validity/tasm/single_proof.rs similarity index 100% rename from protocol/src/consensus/transaction/validity/tasm/single_proof.rs rename to consensus/src/transaction/validity/tasm/single_proof.rs diff --git a/protocol/src/consensus/transaction/validity/tasm/single_proof/merge_branch.rs b/consensus/src/transaction/validity/tasm/single_proof/merge_branch.rs similarity index 96% rename from protocol/src/consensus/transaction/validity/tasm/single_proof/merge_branch.rs rename to consensus/src/transaction/validity/tasm/single_proof/merge_branch.rs index 2344b27..80c9d21 100644 --- a/protocol/src/consensus/transaction/validity/tasm/single_proof/merge_branch.rs +++ b/consensus/src/transaction/validity/tasm/single_proof/merge_branch.rs @@ -27,32 +27,32 @@ use tasm_lib::triton_vm::prelude::*; use tasm_lib::verifier::stark_verify::StarkVerify; use tracing::info; -use crate::consensus::block::block_transaction::BlockOrRegularTransaction; -use crate::consensus::block::block_transaction::BlockOrRegularTransactionKernel; -use crate::consensus::block::block_transaction::BlockTransactionKernel; -use crate::consensus::mutator_set::addition_record::AdditionRecord; -use crate::consensus::mutator_set::removal_record::removal_record_list::RemovalRecordList; -use crate::consensus::transaction::BFieldCodec; -use crate::consensus::transaction::Proof; -use crate::consensus::transaction::Transaction; -use crate::consensus::transaction::TransactionKernel; -use crate::consensus::transaction::TransactionKernelProxy; -use crate::consensus::transaction::TransactionProof; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; -use crate::consensus::transaction::transaction_kernel::TransactionKernelModifier; -use crate::consensus::transaction::validity::single_proof::DISCRIMINANT_FOR_MERGE; -use crate::consensus::transaction::validity::single_proof::SingleProof; -use crate::consensus::transaction::validity::single_proof::SingleProofWitness; -use crate::consensus::transaction::validity::tasm::authenticate_txk_field::AuthenticateTxkField; -use crate::consensus::transaction::validity::tasm::claims::generate_single_proof_claim::GenerateSingleProofClaim; -use crate::consensus::transaction::validity::tasm::hash_removal_record_index_sets::HashRemovalRecordIndexSets; -use crate::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use crate::block::block_transaction::BlockOrRegularTransaction; +use crate::block::block_transaction::BlockOrRegularTransactionKernel; +use crate::block::block_transaction::BlockTransactionKernel; +use crate::mutator_set::addition_record::AdditionRecord; +use crate::mutator_set::removal_record::removal_record_list::RemovalRecordList; use crate::prelude::triton_vm::prelude::triton_asm; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; use crate::proof_abstractions::timestamp::Timestamp; +use crate::transaction::BFieldCodec; +use crate::transaction::Proof; +use crate::transaction::Transaction; +use crate::transaction::TransactionKernel; +use crate::transaction::TransactionKernelProxy; +use crate::transaction::TransactionProof; +use crate::transaction::transaction_kernel::TransactionKernelField; +use crate::transaction::transaction_kernel::TransactionKernelModifier; +use crate::transaction::validity::single_proof::DISCRIMINANT_FOR_MERGE; +use crate::transaction::validity::single_proof::SingleProof; +use crate::transaction::validity::single_proof::SingleProofWitness; +use crate::transaction::validity::tasm::authenticate_txk_field::AuthenticateTxkField; +use crate::transaction::validity::tasm::claims::generate_single_proof_claim::GenerateSingleProofClaim; +use crate::transaction::validity::tasm::hash_removal_record_index_sets::HashRemovalRecordIndexSets; use crate::triton_vm::prelude::NonDeterminism; +use crate::type_scripts::native_currency_amount::NativeCurrencyAmount; // Dictated by the witness type of SingleProof const MERGE_WITNESS_ADDRESS: BFieldElement = BFieldElement::new(2); @@ -188,7 +188,7 @@ impl MergeWitness { /// Generate a new transaction kernel from two transactions. /// - /// Assumes the [`RemovalRecord`](crate::consensus::mutator_set::removal_record::RemovalRecord)s + /// Assumes the [`RemovalRecord`](crate::mutator_set::removal_record::RemovalRecord)s /// in both arguments are not packed. pub(super) fn new_kernel( left_kernel: &TransactionKernel, diff --git a/protocol/src/consensus/transaction/validity/tasm/single_proof/merge_branch/authenticate_coinbase_fields.rs b/consensus/src/transaction/validity/tasm/single_proof/merge_branch/authenticate_coinbase_fields.rs similarity index 96% rename from protocol/src/consensus/transaction/validity/tasm/single_proof/merge_branch/authenticate_coinbase_fields.rs rename to consensus/src/transaction/validity/tasm/single_proof/merge_branch/authenticate_coinbase_fields.rs index eac5aee..897cc25 100644 --- a/protocol/src/consensus/transaction/validity/tasm/single_proof/merge_branch/authenticate_coinbase_fields.rs +++ b/consensus/src/transaction/validity/tasm/single_proof/merge_branch/authenticate_coinbase_fields.rs @@ -8,10 +8,10 @@ use tasm_lib::triton_vm::prelude::BFieldCodec; use tasm_lib::triton_vm::prelude::Digest; use tasm_lib::triton_vm::prelude::LabelledInstruction; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; -use crate::consensus::transaction::validity::tasm::authenticate_txk_field::AuthenticateTxkField; -use crate::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use crate::transaction::transaction_kernel::TransactionKernel; +use crate::transaction::transaction_kernel::TransactionKernelField; +use crate::transaction::validity::tasm::authenticate_txk_field::AuthenticateTxkField; +use crate::type_scripts::native_currency_amount::NativeCurrencyAmount; const UNEQUAL_DISCRIMINANT_ERROR: i128 = 1_000_020; const UNEQUAL_VALUE_ERROR: i128 = 1_000_021; diff --git a/protocol/src/consensus/transaction/validity/tasm/single_proof/update_branch.rs b/consensus/src/transaction/validity/tasm/single_proof/update_branch.rs similarity index 96% rename from protocol/src/consensus/transaction/validity/tasm/single_proof/update_branch.rs rename to consensus/src/transaction/validity/tasm/single_proof/update_branch.rs index e23c2ed..560d0ae 100644 --- a/protocol/src/consensus/transaction/validity/tasm/single_proof/update_branch.rs +++ b/consensus/src/transaction/validity/tasm/single_proof/update_branch.rs @@ -16,19 +16,19 @@ use tasm_lib::twenty_first::prelude::*; use tasm_lib::twenty_first::util_types::mmr::mmr_successor_proof::MmrSuccessorProof; use tasm_lib::verifier::stark_verify::StarkVerify; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; -use crate::consensus::transaction::validity::single_proof::DISCRIMINANT_FOR_UPDATE; -use crate::consensus::transaction::validity::tasm::hash_removal_record_index_sets::HashRemovalRecordIndexSets; -use crate::consensus::transaction::validity::tasm::leaf_authentication::authenticate_msa_against_txk::AuthenticateMsaAgainstTxk; -use crate::consensus::transaction::validity::tasm::authenticate_txk_field::AuthenticateTxkField; -use crate::consensus::transaction::BFieldCodec; -use crate::consensus::transaction::Proof; -use crate::consensus::transaction::TransactionKernel; -use crate::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use crate::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; use crate::proof_abstractions::mast_hash::MastHash; +use crate::transaction::BFieldCodec; +use crate::transaction::Proof; +use crate::transaction::TransactionKernel; +use crate::transaction::transaction_kernel::TransactionKernelField; +use crate::transaction::validity::single_proof::DISCRIMINANT_FOR_UPDATE; +use crate::transaction::validity::tasm::authenticate_txk_field::AuthenticateTxkField; +use crate::transaction::validity::tasm::claims::generate_single_proof_claim::GenerateSingleProofClaim; +use crate::transaction::validity::tasm::hash_removal_record_index_sets::HashRemovalRecordIndexSets; +use crate::transaction::validity::tasm::leaf_authentication::authenticate_msa_against_txk::AuthenticateMsaAgainstTxk; use crate::twenty_first::util_types::mmr::mmr_accumulator::MmrAccumulator; -use crate::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use crate::consensus::transaction::validity::tasm::claims::generate_single_proof_claim::GenerateSingleProofClaim; +use crate::type_scripts::native_currency_amount::NativeCurrencyAmount; // Dictated by the witness type of SingleProof const UPDATE_WITNESS_ADDRESS: BFieldElement = BFieldElement::new(2); diff --git a/protocol/src/consensus/type_scripts/amount/add_all_amounts_and_check_time_lock.rs b/consensus/src/type_scripts/amount/add_all_amounts_and_check_time_lock.rs similarity index 95% rename from protocol/src/consensus/type_scripts/amount/add_all_amounts_and_check_time_lock.rs rename to consensus/src/type_scripts/amount/add_all_amounts_and_check_time_lock.rs index 9b4e578..5d92c24 100644 --- a/protocol/src/consensus/type_scripts/amount/add_all_amounts_and_check_time_lock.rs +++ b/consensus/src/type_scripts/amount/add_all_amounts_and_check_time_lock.rs @@ -13,9 +13,9 @@ use tasm_lib::triton_vm::prelude::LabelledInstruction; use super::test_time_lock_and_maybe_mark::TestTimeLockAndMaybeMark; use super::total_amount_main_loop::DigestSource; use crate::BFieldElement; -use crate::consensus::transaction::utxo::Coin; -use crate::consensus::type_scripts::amount::TOO_BIG_COIN_FIELD_SIZE_ERROR; -use crate::consensus::type_scripts::amount::read_and_add_amount::ReadAndAddAmount; +use crate::transaction::utxo::Coin; +use crate::type_scripts::amount::TOO_BIG_COIN_FIELD_SIZE_ERROR; +use crate::type_scripts::amount::read_and_add_amount::ReadAndAddAmount; /// Body for inner loop, running over all coins within one UTXO. #[derive(Debug, Clone, Copy)] @@ -189,9 +189,9 @@ impl BasicSnippet for AddAllAmountsAndCheckTimeLock { #[cfg(test)] mod test { - use crate::consensus::type_scripts::amount::add_all_amounts_and_check_time_lock::AddAllAmountsAndCheckTimeLock; - use crate::consensus::type_scripts::time_lock::TimeLock; use crate::proof_abstractions::tasm::program::TritonProgram; + use crate::type_scripts::amount::add_all_amounts_and_check_time_lock::AddAllAmountsAndCheckTimeLock; + use crate::type_scripts::time_lock::TimeLock; #[test] fn hardcoded_time_lock_hash_matches_hash_of_time_lock_program() { diff --git a/protocol/src/consensus/type_scripts/amount/add_time_locked_amount.rs b/consensus/src/type_scripts/amount/add_time_locked_amount.rs similarity index 100% rename from protocol/src/consensus/type_scripts/amount/add_time_locked_amount.rs rename to consensus/src/type_scripts/amount/add_time_locked_amount.rs diff --git a/protocol/src/consensus/type_scripts/amount/get_total_and_timelocked_amounts.rs b/consensus/src/type_scripts/amount/get_total_and_timelocked_amounts.rs similarity index 93% rename from protocol/src/consensus/type_scripts/amount/get_total_and_timelocked_amounts.rs rename to consensus/src/type_scripts/amount/get_total_and_timelocked_amounts.rs index 36b7f0c..58d7ed6 100644 --- a/protocol/src/consensus/type_scripts/amount/get_total_and_timelocked_amounts.rs +++ b/consensus/src/type_scripts/amount/get_total_and_timelocked_amounts.rs @@ -5,8 +5,8 @@ use tasm_lib::prelude::Library; use tasm_lib::triton_vm::isa::triton_asm; use tasm_lib::triton_vm::prelude::LabelledInstruction; -use crate::consensus::type_scripts::amount::total_amount_main_loop::DigestSource; -use crate::consensus::type_scripts::amount::total_amount_main_loop::TotalAmountMainLoop; +use crate::type_scripts::amount::total_amount_main_loop::DigestSource; +use crate::type_scripts::amount::total_amount_main_loop::TotalAmountMainLoop; #[derive(Debug, Clone, Copy)] pub struct GetTotalAndTimeLockedAmounts { diff --git a/protocol/src/consensus/type_scripts/amount/mod.rs b/consensus/src/type_scripts/amount/mod.rs similarity index 100% rename from protocol/src/consensus/type_scripts/amount/mod.rs rename to consensus/src/type_scripts/amount/mod.rs diff --git a/protocol/src/consensus/type_scripts/amount/read_and_add_amount.rs b/consensus/src/type_scripts/amount/read_and_add_amount.rs similarity index 94% rename from protocol/src/consensus/type_scripts/amount/read_and_add_amount.rs rename to consensus/src/type_scripts/amount/read_and_add_amount.rs index e5c33e7..b7c0e10 100644 --- a/protocol/src/consensus/type_scripts/amount/read_and_add_amount.rs +++ b/consensus/src/type_scripts/amount/read_and_add_amount.rs @@ -6,10 +6,10 @@ use tasm_lib::triton_vm::isa::triton_asm; use tasm_lib::triton_vm::prelude::BFieldCodec; use tasm_lib::triton_vm::prelude::LabelledInstruction; -use crate::consensus::transaction::utxo::Coin; -use crate::consensus::type_scripts::amount::BAD_STATE_SIZE_ERROR; -use crate::consensus::type_scripts::native_currency::NativeCurrency; -use crate::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use crate::transaction::utxo::Coin; +use crate::type_scripts::amount::BAD_STATE_SIZE_ERROR; +use crate::type_scripts::native_currency::NativeCurrency; +use crate::type_scripts::native_currency_amount::NativeCurrencyAmount; /// Add the amount of a native currency coin to a running sum. #[derive(Debug, Clone, Copy)] diff --git a/protocol/src/consensus/type_scripts/amount/test_time_lock_and_maybe_mark.rs b/consensus/src/type_scripts/amount/test_time_lock_and_maybe_mark.rs similarity index 96% rename from protocol/src/consensus/type_scripts/amount/test_time_lock_and_maybe_mark.rs rename to consensus/src/type_scripts/amount/test_time_lock_and_maybe_mark.rs index 43666da..0192d12 100644 --- a/protocol/src/consensus/type_scripts/amount/test_time_lock_and_maybe_mark.rs +++ b/consensus/src/type_scripts/amount/test_time_lock_and_maybe_mark.rs @@ -6,8 +6,8 @@ use tasm_lib::prelude::TasmStruct; use tasm_lib::triton_vm::isa::triton_asm; use tasm_lib::triton_vm::prelude::LabelledInstruction; -use crate::consensus::transaction::utxo::Coin; -use crate::consensus::type_scripts::amount::STATE_LENGTH_FOR_TIME_LOCK_NOT_ONE_ERROR; +use crate::transaction::utxo::Coin; +use crate::type_scripts::amount::STATE_LENGTH_FOR_TIME_LOCK_NOT_ONE_ERROR; #[derive(Debug, Clone, Copy)] pub struct TestTimeLockAndMaybeMark { diff --git a/protocol/src/consensus/type_scripts/amount/total_amount_main_loop.rs b/consensus/src/type_scripts/amount/total_amount_main_loop.rs similarity index 94% rename from protocol/src/consensus/type_scripts/amount/total_amount_main_loop.rs rename to consensus/src/type_scripts/amount/total_amount_main_loop.rs index 602c397..9be1c95 100644 --- a/protocol/src/consensus/type_scripts/amount/total_amount_main_loop.rs +++ b/consensus/src/type_scripts/amount/total_amount_main_loop.rs @@ -8,10 +8,10 @@ use tasm_lib::structure::tasm_object::DEFAULT_MAX_DYN_FIELD_SIZE; use tasm_lib::triton_vm::isa::triton_asm; use tasm_lib::triton_vm::prelude::LabelledInstruction; -use crate::consensus::transaction::utxo::Utxo; -use crate::consensus::type_scripts::amount::UTXO_SIZE_TOO_LARGE_ERROR; -use crate::consensus::type_scripts::amount::add_all_amounts_and_check_time_lock::AddAllAmountsAndCheckTimeLock; -use crate::consensus::type_scripts::amount::add_time_locked_amount::AddTimelockedAmount; +use crate::transaction::utxo::Utxo; +use crate::type_scripts::amount::UTXO_SIZE_TOO_LARGE_ERROR; +use crate::type_scripts::amount::add_all_amounts_and_check_time_lock::AddAllAmountsAndCheckTimeLock; +use crate::type_scripts::amount::add_time_locked_amount::AddTimelockedAmount; #[derive(Debug, Clone, Copy)] pub enum DigestSource { diff --git a/protocol/src/consensus/type_scripts/known_type_scripts.rs b/consensus/src/type_scripts/known_type_scripts.rs similarity index 88% rename from protocol/src/consensus/type_scripts/known_type_scripts.rs rename to consensus/src/type_scripts/known_type_scripts.rs index 4724cf0..63bf4e0 100644 --- a/protocol/src/consensus/type_scripts/known_type_scripts.rs +++ b/consensus/src/type_scripts/known_type_scripts.rs @@ -7,10 +7,10 @@ use super::native_currency::NativeCurrency; use super::native_currency::NativeCurrencyWitness; use super::time_lock::TimeLock; use super::time_lock::TimeLockWitness; -use crate::consensus::transaction::salted_utxos::SaltedUtxos; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; -use crate::consensus::transaction::utxo::Coin; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::salted_utxos::SaltedUtxos; +use crate::transaction::transaction_kernel::TransactionKernel; +use crate::transaction::utxo::Coin; pub fn match_type_script_and_generate_witness( type_script_hash: Digest, diff --git a/protocol/src/consensus/type_scripts/mod.rs b/consensus/src/type_scripts/mod.rs similarity index 96% rename from protocol/src/consensus/type_scripts/mod.rs rename to consensus/src/type_scripts/mod.rs index 82cce82..4db6717 100644 --- a/protocol/src/consensus/type_scripts/mod.rs +++ b/consensus/src/type_scripts/mod.rs @@ -18,10 +18,10 @@ use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; use super::transaction::transaction_kernel::TransactionKernel; use super::transaction::utxo::Coin; -use crate::consensus::transaction::salted_utxos::SaltedUtxos; -use crate::consensus::transaction::validity::neptune_proof::Proof; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::salted_utxos::SaltedUtxos; +use crate::transaction::validity::neptune_proof::Proof; pub trait TypeScript: TritonProgram { type State: BFieldCodec; diff --git a/protocol/src/consensus/type_scripts/native_currency.rs b/consensus/src/type_scripts/native_currency.rs similarity index 98% rename from protocol/src/consensus/type_scripts/native_currency.rs rename to consensus/src/type_scripts/native_currency.rs index 18399c9..ef56647 100644 --- a/protocol/src/consensus/type_scripts/native_currency.rs +++ b/consensus/src/type_scripts/native_currency.rs @@ -22,17 +22,17 @@ use super::TypeScriptWitness; use super::amount::total_amount_main_loop::DigestSource; use super::amount::total_amount_main_loop::TotalAmountMainLoop; use super::native_currency_amount::NativeCurrencyAmount; -use crate::consensus::block::MINING_REWARD_TIME_LOCK_PERIOD; -use crate::consensus::transaction::salted_utxos::SaltedUtxos; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; -use crate::consensus::transaction::validity::tasm::coinbase_amount::CoinbaseAmount; -use crate::consensus::type_scripts::BFieldCodec; -use crate::consensus::type_scripts::TypeScriptAndWitness; +use crate::block::MINING_REWARD_TIME_LOCK_PERIOD; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; use crate::proof_abstractions::timestamp::Timestamp; +use crate::transaction::salted_utxos::SaltedUtxos; +use crate::transaction::transaction_kernel::TransactionKernel; +use crate::transaction::transaction_kernel::TransactionKernelField; +use crate::transaction::validity::tasm::coinbase_amount::CoinbaseAmount; +use crate::type_scripts::BFieldCodec; +use crate::type_scripts::TypeScriptAndWitness; impl NativeCurrency { pub const BAD_COINBASE_SIZE_ERROR: i128 = 1_000_030; diff --git a/protocol/src/consensus/type_scripts/native_currency_amount.rs b/consensus/src/type_scripts/native_currency_amount.rs similarity index 99% rename from protocol/src/consensus/type_scripts/native_currency_amount.rs rename to consensus/src/type_scripts/native_currency_amount.rs index edd50f2..dc4e54e 100644 --- a/protocol/src/consensus/type_scripts/native_currency_amount.rs +++ b/consensus/src/type_scripts/native_currency_amount.rs @@ -26,8 +26,8 @@ use tasm_lib::triton_vm::prelude::LabelledInstruction; use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; use super::native_currency::NativeCurrency; -use crate::consensus::transaction::utxo::Coin; use crate::proof_abstractions::tasm::program::TritonProgram; +use crate::transaction::utxo::Coin; use crate::triton_vm::prelude::triton_instr; /// Records an amount of Nyks coins. Amounts are internally represented by an diff --git a/protocol/src/consensus/type_scripts/time_lock.rs b/consensus/src/type_scripts/time_lock.rs similarity index 97% rename from protocol/src/consensus/type_scripts/time_lock.rs rename to consensus/src/type_scripts/time_lock.rs index 331837a..cab371e 100644 --- a/protocol/src/consensus/type_scripts/time_lock.rs +++ b/consensus/src/type_scripts/time_lock.rs @@ -17,16 +17,16 @@ use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; use super::TypeScript; use super::TypeScriptWitness; -use crate::consensus::transaction::salted_utxos::SaltedUtxos; -use crate::consensus::transaction::transaction_kernel::TransactionKernel; -use crate::consensus::transaction::transaction_kernel::TransactionKernelField; -use crate::consensus::transaction::utxo::Coin; -use crate::consensus::transaction::utxo::Utxo; -use crate::consensus::type_scripts::TypeScriptAndWitness; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; use crate::proof_abstractions::timestamp::Timestamp; +use crate::transaction::salted_utxos::SaltedUtxos; +use crate::transaction::transaction_kernel::TransactionKernel; +use crate::transaction::transaction_kernel::TransactionKernelField; +use crate::transaction::utxo::Coin; +use crate::transaction::utxo::Utxo; +use crate::type_scripts::TypeScriptAndWitness; #[derive(Debug, Copy, Clone, Deserialize, Serialize, BFieldCodec, GetSize, PartialEq, Eq)] pub struct TimeLock; diff --git a/miner/Cargo.toml b/miner/Cargo.toml index e28987c..622482d 100644 --- a/miner/Cargo.toml +++ b/miner/Cargo.toml @@ -10,7 +10,7 @@ license = "Apache-2.0" repository = "https://github.com/Nyksnet/nyksnode/" [dependencies] -nyks-protocol = { version = "0.8.0", path = "../protocol" } +nyks-consensus = { version = "0.8.0", path = "../consensus" } nyks-standards = { version = "0.8.0", path = "../standards" } nyks-rpc-client = { version = "0.8.0", path = "../rpc/client" } anyhow = "1.0.98" diff --git a/miner/src/core/args.rs b/miner/src/core/args.rs index 33303d3..8f7ee7a 100644 --- a/miner/src/core/args.rs +++ b/miner/src/core/args.rs @@ -1,5 +1,5 @@ use clap::Parser; -use nyks_protocol::consensus::network::Network; +use nyks_consensus::network::Network; use nyks_rpc_client::RpcApi; use nyks_rpc_client::http::HttpClient; use nyks_standards::wallet::keys::address::Address; diff --git a/miner/src/miner/flow.rs b/miner/src/miner/flow.rs index 619e858..2f3f768 100644 --- a/miner/src/miner/flow.rs +++ b/miner/src/miner/flow.rs @@ -2,8 +2,8 @@ use std::sync::Arc; use std::time::{Duration, Instant}; use num_traits::Zero; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use nyks_consensus::block::Block; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use nyks_rpc_client::RpcApi; use nyks_rpc_client::http::HttpClient; use tokio::sync::RwLock; diff --git a/miner/src/miner/guesser.rs b/miner/src/miner/guesser.rs index 645d6d4..28be83e 100644 --- a/miner/src/miner/guesser.rs +++ b/miner/src/miner/guesser.rs @@ -5,12 +5,12 @@ use std::sync::atomic::Ordering; use std::time::Duration; use std::time::Instant; -use nyks_protocol::BFieldElement; -use nyks_protocol::consensus::block::block_header::BlockPow; -use nyks_protocol::consensus::block::pow::GuesserBuffer; -use nyks_protocol::consensus::block::pow::POW_MEMORY_TREE_HEIGHT; -use nyks_protocol::tasm_lib::prelude::Digest; -use nyks_protocol::tasm_lib::twenty_first::bfe_array; +use nyks_consensus::BFieldElement; +use nyks_consensus::block::block_header::BlockPow; +use nyks_consensus::block::pow::GuesserBuffer; +use nyks_consensus::block::pow::POW_MEMORY_TREE_HEIGHT; +use nyks_consensus::tasm_lib::prelude::Digest; +use nyks_consensus::tasm_lib::twenty_first::bfe_array; use nyks_rpc_client::RpcApi; use nyks_rpc_client::http::HttpClient; use nyks_rpc_client::mining::template::RpcBlockTemplate; diff --git a/node/Cargo.toml b/node/Cargo.toml index 7a1ae5d..cfb52de 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -130,7 +130,7 @@ libp2p = { version = "0.56.0", features = [ "yamux", ] } whoami = "2.0.0" -nyks-protocol = { version = "0.8.0", path = "../protocol" } +nyks-consensus = { version = "0.8.0", path = "../consensus" } nyks-p2p = { version = "0.8.0", path = "../p2p" } nyks-standards = { version = "0.8.0", path = "../standards" } nyks-rpc-core = { version = "0.8.0", path = "../rpc/core" } diff --git a/node/src/application/config/cli_args.rs b/node/src/application/config/cli_args.rs index 8fb12e7..2327e09 100644 --- a/node/src/application/config/cli_args.rs +++ b/node/src/application/config/cli_args.rs @@ -12,13 +12,13 @@ use clap::Parser; use libp2p::multiaddr::Protocol; use libp2p::Multiaddr; use num_traits::Zero; -use nyks_protocol::consensus::transaction::transaction_proof::TransactionProofQuality; +use nyks_consensus::transaction::transaction_proof::TransactionProofQuality; use tracing::error; use crate::application::config::parser::multiaddr::parse_to_multiaddr; use crate::state::mining::block_proposal::BlockProposalRejectError; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use nyks_consensus::network::Network; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use nyks_rpc_core::api::ops::Namespace; const MAX_NUM_INPUTS_FOR_PC_BACKED_TXS: u64 = 200; diff --git a/node/src/application/config/data_directory.rs b/node/src/application/config/data_directory.rs index 641572a..2cbd4fd 100644 --- a/node/src/application/config/data_directory.rs +++ b/node/src/application/config/data_directory.rs @@ -4,7 +4,7 @@ use std::path::PathBuf; use anyhow::Context; use anyhow::Result; use directories::ProjectDirs; -use nyks_protocol::consensus::network::Network; +use nyks_consensus::network::Network; use serde::Deserialize; use serde::Serialize; diff --git a/node/src/application/loops/channel.rs b/node/src/application/loops/channel.rs index e777e32..8ed8fa6 100644 --- a/node/src/application/loops/channel.rs +++ b/node/src/application/loops/channel.rs @@ -1,7 +1,7 @@ use futures::channel::oneshot; use libp2p::Multiaddr; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::transaction::Transaction; +use nyks_consensus::block::Block; +use nyks_consensus::transaction::Transaction; use tasm_lib::triton_vm::prelude::Digest; use crate::application::network::overview::NetworkOverview; diff --git a/node/src/application/loops/main_loop.rs b/node/src/application/loops/main_loop.rs index 9bda316..3ae4ad0 100644 --- a/node/src/application/loops/main_loop.rs +++ b/node/src/application/loops/main_loop.rs @@ -13,10 +13,10 @@ use anyhow::Result; use itertools::Either; use itertools::Itertools; use libp2p::PeerId; +use nyks_consensus::block::Block; use nyks_p2p::peer::handshake_data::HandshakeData; use nyks_p2p::peer::peer_info::PeerInfo; use nyks_p2p::peer::transaction_notification::TransactionNotification; -use nyks_protocol::consensus::block::Block; use rand::prelude::IteratorRandom; use tokio::net::TcpListener; use tokio::select; diff --git a/node/src/application/loops/mine_loop/composer_parameters.rs b/node/src/application/loops/mine_loop/composer_parameters.rs index 160908d..c71464e 100644 --- a/node/src/application/loops/mine_loop/composer_parameters.rs +++ b/node/src/application/loops/mine_loop/composer_parameters.rs @@ -2,11 +2,11 @@ use num_traits::CheckedSub; use num_traits::Zero; use tasm_lib::prelude::Digest; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; use crate::application::config::fee_notification_policy::FeeNotificationPolicy; use crate::application::loops::mine_loop::coinbase_distribution::CoinbaseDistribution; -use nyks_protocol::consensus::block::MINING_REWARD_TIME_LOCK_PERIOD; +use nyks_consensus::block::MINING_REWARD_TIME_LOCK_PERIOD; use nyks_standards::wallet::expected_utxo::ExpectedUtxo; use nyks_standards::wallet::expected_utxo::UtxoNotifier; use nyks_standards::wallet::transaction_output::TxOutput; diff --git a/node/src/application/loops/peer_loop.rs b/node/src/application/loops/peer_loop.rs index 647012f..9022f5f 100644 --- a/node/src/application/loops/peer_loop.rs +++ b/node/src/application/loops/peer_loop.rs @@ -17,6 +17,16 @@ use futures::FutureExt; use libp2p::multiaddr::Protocol; use libp2p::Multiaddr; use libp2p::PeerId; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::mutator_set_update::MutatorSetUpdate; +use nyks_consensus::block::Block; +use nyks_consensus::block::FUTUREDATING_LIMIT; +use nyks_consensus::consensus_rule_set::ConsensusRuleSet; +use nyks_consensus::mutator_set::removal_record::RemovalRecordValidityError; +use nyks_consensus::proof_abstractions::mast_hash::MastHash; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::transaction_kernel::TransactionConfirmabilityError; +use nyks_consensus::transaction::Transaction; use nyks_p2p::peer::handshake_data::HandshakeData; use nyks_p2p::peer::peer_info::PeerConnectionInfo; use nyks_p2p::peer::peer_info::PeerInfo; @@ -31,16 +41,6 @@ use nyks_p2p::peer::PeerSanction; use nyks_p2p::peer::PeerStanding; use nyks_p2p::peer::PositivePeerSanction; use nyks_p2p::peer::SyncChallenge; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::mutator_set_update::MutatorSetUpdate; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::block::FUTUREDATING_LIMIT; -use nyks_protocol::consensus::consensus_rule_set::ConsensusRuleSet; -use nyks_protocol::consensus::mutator_set::removal_record::RemovalRecordValidityError; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionConfirmabilityError; -use nyks_protocol::consensus::transaction::Transaction; -use nyks_protocol::proof_abstractions::mast_hash::MastHash; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; use rand::rngs::StdRng; use rand::Rng; use rand::SeedableRng; diff --git a/node/src/application/loops/peer_loop/channel.rs b/node/src/application/loops/peer_loop/channel.rs index 6041018..7efad7c 100644 --- a/node/src/application/loops/peer_loop/channel.rs +++ b/node/src/application/loops/peer_loop/channel.rs @@ -7,11 +7,11 @@ use nyks_p2p::peer::synchronization_bit_mask::SynchronizationBitMask; use tasm_lib::triton_vm::prelude::Digest; use tasm_lib::twenty_first::util_types::mmr::mmr_accumulator::MmrAccumulator; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::difficulty_control::ProofOfWork; +use nyks_consensus::block::Block; +use nyks_consensus::transaction::Transaction; use nyks_p2p::peer::transaction_notification::TransactionNotification; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::difficulty_control::ProofOfWork; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::transaction::Transaction; #[derive(Clone, Debug, strum::Display)] pub(crate) enum MainToPeerTask { diff --git a/node/src/application/loops/sync_loop.rs b/node/src/application/loops/sync_loop.rs index 5400061..b28374d 100644 --- a/node/src/application/loops/sync_loop.rs +++ b/node/src/application/loops/sync_loop.rs @@ -5,9 +5,9 @@ use std::time::Duration; use std::time::SystemTime; use itertools::Itertools; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::Block; use nyks_p2p::peer::synchronization_bit_mask::SynchronizationBitMask; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::Block; use rand::rng; use rand::Rng; use tokio::sync::mpsc; diff --git a/node/src/application/loops/sync_loop/block_validator.rs b/node/src/application/loops/sync_loop/block_validator.rs index 8fc2502..a0fb592 100644 --- a/node/src/application/loops/sync_loop/block_validator.rs +++ b/node/src/application/loops/sync_loop/block_validator.rs @@ -1,6 +1,6 @@ -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::block::Block; +use nyks_consensus::network::Network; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; /// An abstract function to decide if one block is valid given its predecessor. /// diff --git a/node/src/application/loops/sync_loop/channel.rs b/node/src/application/loops/sync_loop/channel.rs index d4f9c0b..a3e2d6f 100644 --- a/node/src/application/loops/sync_loop/channel.rs +++ b/node/src/application/loops/sync_loop/channel.rs @@ -1,6 +1,6 @@ +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::Block; use nyks_p2p::peer::synchronization_bit_mask::SynchronizationBitMask; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::Block; use super::PeerHandle; use crate::application::loops::sync_loop::sync_progress::SyncProgress; diff --git a/node/src/application/loops/sync_loop/handle.rs b/node/src/application/loops/sync_loop/handle.rs index 13fb58a..8e1c008 100644 --- a/node/src/application/loops/sync_loop/handle.rs +++ b/node/src/application/loops/sync_loop/handle.rs @@ -1,7 +1,7 @@ +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::Block; +use nyks_consensus::network::Network; use nyks_p2p::peer::synchronization_bit_mask::SynchronizationBitMask; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::network::Network; use tokio::sync::mpsc::Receiver; use tokio::sync::mpsc::Sender; use tokio::task::JoinHandle; diff --git a/node/src/application/loops/sync_loop/rapid_block_download.rs b/node/src/application/loops/sync_loop/rapid_block_download.rs index 73ac9d8..02d850a 100644 --- a/node/src/application/loops/sync_loop/rapid_block_download.rs +++ b/node/src/application/loops/sync_loop/rapid_block_download.rs @@ -6,8 +6,8 @@ use rand::RngCore; use tokio::fs; use crate::application::loops::sync_loop::SynchronizationBitMask; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::Block; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::Block; /// The state of a rapid block download process. /// diff --git a/node/src/application/network/actor.rs b/node/src/application/network/actor.rs index 89cae45..3de010f 100644 --- a/node/src/application/network/actor.rs +++ b/node/src/application/network/actor.rs @@ -14,8 +14,8 @@ use itertools::Itertools; use libp2p::swarm::SwarmEvent; use libp2p::Multiaddr; use libp2p::PeerId; +use nyks_consensus::network::Network; use nyks_p2p::peer::handshake_data::HandshakeData; -use nyks_protocol::consensus::network::Network; use rand::seq::SliceRandom; use rand::Rng; use tokio::sync::mpsc; diff --git a/node/src/application/network/address_book.rs b/node/src/application/network/address_book.rs index 3298de1..9d075a4 100644 --- a/node/src/application/network/address_book.rs +++ b/node/src/application/network/address_book.rs @@ -17,7 +17,7 @@ use itertools::Itertools; use libp2p::Multiaddr; use libp2p::PeerId; use libp2p::StreamProtocol; -use nyks_protocol::consensus::network::Network; +use nyks_consensus::network::Network; use serde::Deserialize; use serde::Serialize; diff --git a/node/src/application/network/config.rs b/node/src/application/network/config.rs index c8c415e..a0d3acb 100644 --- a/node/src/application/network/config.rs +++ b/node/src/application/network/config.rs @@ -2,7 +2,7 @@ use std::net::IpAddr; use std::path::PathBuf; use libp2p::Multiaddr; -use nyks_protocol::consensus::network::Network; +use nyks_consensus::network::Network; pub(crate) const DEFAULT_SUBDIRECTORY: &str = "network/"; pub(crate) const DEFAULT_IDENTITY_FILENAME: &str = "identity.key"; diff --git a/node/src/application/rpc/service.rs b/node/src/application/rpc/service.rs index fcb29a9..899654e 100644 --- a/node/src/application/rpc/service.rs +++ b/node/src/application/rpc/service.rs @@ -2,12 +2,12 @@ use std::collections::HashSet; use async_trait::async_trait; use itertools::Itertools; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::block::FUTUREDATING_LIMIT; -use nyks_protocol::consensus::mutator_set::addition_record::AdditionRecord; -use nyks_protocol::consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; -use nyks_protocol::consensus::transaction::Transaction; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::block::Block; +use nyks_consensus::block::FUTUREDATING_LIMIT; +use nyks_consensus::mutator_set::addition_record::AdditionRecord; +use nyks_consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::Transaction; use nyks_rpc_core::api::rpc::*; use nyks_rpc_core::model::block::header::TransactionKernelWithPriority; use nyks_rpc_core::model::block::RpcBlock; diff --git a/node/src/lib.rs b/node/src/lib.rs index 31d2cb6..fdaf9ff 100644 --- a/node/src/lib.rs +++ b/node/src/lib.rs @@ -37,9 +37,9 @@ use chrono::DateTime; use chrono::Local; use chrono::Utc; use itertools::Itertools; +use nyks_consensus::block::Block; use nyks_locks::tokio as sync_tokio; use nyks_p2p::peer::handshake_data::HandshakeData; -use nyks_protocol::consensus::block::Block; use state::GlobalState; use tokio::net::TcpListener; use tokio::sync::broadcast; diff --git a/node/src/state/archival_state.rs b/node/src/state/archival_state.rs index e5eb81d..adceb3b 100644 --- a/node/src/state/archival_state.rs +++ b/node/src/state/archival_state.rs @@ -35,23 +35,23 @@ use crate::state::database::FileRecord; use crate::state::database::LastFileRecord; use crate::util_types::rusty_archival_block_mmr::RustyArchivalBlockMmr; use crate::util_types::rusty_archival_mutator_set::RustyArchivalMutatorSet; +use nyks_consensus::block::block_header::BlockHeader; +use nyks_consensus::block::block_header::BlockHeaderWithBlockHashWitness; +use nyks_consensus::block::block_header::HeaderToBlockHashWitness; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::block_kernel::BlockKernel; +use nyks_consensus::block::mutator_set_update::MutatorSetUpdate; +use nyks_consensus::block::Block; +use nyks_consensus::mutator_set::addition_record::AdditionRecord; +use nyks_consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use nyks_consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; +use nyks_consensus::mutator_set::removal_record::RemovalRecord; +use nyks_consensus::network::Network; +use nyks_consensus::transaction::transaction_kernel::TransactionKernelProxy; use nyks_database::create_db_if_missing; use nyks_database::storage::storage_schema::traits::*; use nyks_database::NeptuneLevelDb; use nyks_database::WriteBatchAsync; -use nyks_protocol::consensus::block::block_header::BlockHeader; -use nyks_protocol::consensus::block::block_header::BlockHeaderWithBlockHashWitness; -use nyks_protocol::consensus::block::block_header::HeaderToBlockHashWitness; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::block_kernel::BlockKernel; -use nyks_protocol::consensus::block::mutator_set_update::MutatorSetUpdate; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::mutator_set::addition_record::AdditionRecord; -use nyks_protocol::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use nyks_protocol::consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; -use nyks_protocol::consensus::mutator_set::removal_record::RemovalRecord; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernelProxy; pub(crate) const BLOCK_INDEX_DB_NAME: &str = "block_index"; pub(crate) const MUTATOR_SET_DIRECTORY_NAME: &str = "mutator_set"; diff --git a/node/src/state/archival_state/import_blocks_from_files.rs b/node/src/state/archival_state/import_blocks_from_files.rs index 58804fc..ee2116a 100644 --- a/node/src/state/archival_state/import_blocks_from_files.rs +++ b/node/src/state/archival_state/import_blocks_from_files.rs @@ -10,7 +10,7 @@ use regex::Regex; use super::ArchivalState; use crate::state::shared::BLOCK_FILENAME_EXTENSION; use crate::state::shared::BLOCK_FILENAME_PREFIX; -use nyks_protocol::consensus::block::Block; +use nyks_consensus::block::Block; impl ArchivalState { /// Return a list of file names found in a directory, unsorted. diff --git a/node/src/state/archival_state/rusty_utxo_index.rs b/node/src/state/archival_state/rusty_utxo_index.rs index 6d5c464..3d4154f 100644 --- a/node/src/state/archival_state/rusty_utxo_index.rs +++ b/node/src/state/archival_state/rusty_utxo_index.rs @@ -9,14 +9,14 @@ use tasm_lib::prelude::Tip5; use tracing::warn; use crate::application::config::data_directory::DataDirectory; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::Block; +use nyks_consensus::mutator_set::addition_record::AdditionRecord; +use nyks_consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; use nyks_database::create_db_if_missing; use nyks_database::storage::storage_schema::traits::*; use nyks_database::NeptuneLevelDb; use nyks_database::WriteBatchAsync; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::mutator_set::addition_record::AdditionRecord; -use nyks_protocol::consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; use nyks_standards::wallet::notes::announcement_flag::AnnouncementFlag; /// The maximum number of blocks stored for each [`AnnouncementFlag`]. Wallets @@ -42,7 +42,7 @@ pub const MAX_NUM_BLOCKS_IN_LOOKUP_LIST: usize = 10_000; /// Block heights are often preferred over block digests due to their smaller /// serialized size (8 bytes vs. 40). /// -/// [`ArchivalMutatorSet`]: nyks_protocol::consensus::mutator_set::archival_mutator_set::ArchivalMutatorSet +/// [`ArchivalMutatorSet`]: nyks_consensus::mutator_set::archival_mutator_set::ArchivalMutatorSet /// [`ArchivalState`]: crate::state::archival_state::ArchivalState #[derive(Debug)] pub(crate) struct RustyUtxoIndex { diff --git a/node/src/state/blockchain_state.rs b/node/src/state/blockchain_state.rs index b93ec23..2ea8a61 100644 --- a/node/src/state/blockchain_state.rs +++ b/node/src/state/blockchain_state.rs @@ -3,8 +3,8 @@ use tasm_lib::prelude::Digest; use super::archival_state::ArchivalState; use super::light_state::LightState; use crate::Block; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; /// `BlockChainState` provides an `Archival` variant /// for full nodes and a `Light` variant for light nodes. diff --git a/node/src/state/database.rs b/node/src/state/database.rs index 06ea943..6c00075 100644 --- a/node/src/state/database.rs +++ b/node/src/state/database.rs @@ -5,12 +5,12 @@ use serde::Deserialize; use serde::Serialize; use tasm_lib::twenty_first::tip5::digest::Digest; +use nyks_consensus::block::block_header::BlockHeader; +use nyks_consensus::block::block_header::HeaderToBlockHashWitness; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; use nyks_database::NeptuneLevelDb; use nyks_p2p::peer::PeerStanding; -use nyks_protocol::consensus::block::block_header::BlockHeader; -use nyks_protocol::consensus::block::block_header::HeaderToBlockHashWitness; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; pub const DATABASE_DIRECTORY_ROOT_NAME: &str = "databases"; diff --git a/node/src/state/light_state.rs b/node/src/state/light_state.rs index e9b939e..ddeb6d2 100644 --- a/node/src/state/light_state.rs +++ b/node/src/state/light_state.rs @@ -1,6 +1,6 @@ -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::block::Block; +use nyks_consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; /// LightState represents the latest accepted block, /// along with bookkeeping information about it @@ -81,11 +81,11 @@ impl LightState { #[cfg_attr(coverage_nightly, coverage(off))] pub(crate) mod tests { use super::*; - use nyks_protocol::consensus::block::block_appendix::BlockAppendix; - use nyks_protocol::consensus::block::block_header::BlockHeader; - use nyks_protocol::consensus::block::Block; - use nyks_protocol::consensus::block::BlockProof; - use nyks_protocol::consensus::network::Network; + use nyks_consensus::block::block_appendix::BlockAppendix; + use nyks_consensus::block::block_header::BlockHeader; + use nyks_consensus::block::Block; + use nyks_consensus::block::BlockProof; + use nyks_consensus::network::Network; #[test] fn update_works() { diff --git a/node/src/state/mempool.rs b/node/src/state/mempool.rs index fed676f..4bacb09 100644 --- a/node/src/state/mempool.rs +++ b/node/src/state/mempool.rs @@ -37,15 +37,15 @@ use itertools::Itertools; /// the set { TransactionA } while the optimal solution is { TransactionB, /// TransactionC }. use num_rational::BigRational as FeeDensity; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::mutator_set::addition_record::AdditionRecord; -use nyks_protocol::consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernel; -use nyks_protocol::consensus::transaction::transaction_kernel_id::TransactionKernelId; -use nyks_protocol::consensus::transaction::transaction_proof::TransactionProofQuality; -use nyks_protocol::consensus::transaction::Transaction; -use nyks_protocol::consensus::transaction::TransactionProof; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::block::Block; +use nyks_consensus::mutator_set::addition_record::AdditionRecord; +use nyks_consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::transaction_kernel::TransactionKernel; +use nyks_consensus::transaction::transaction_kernel_id::TransactionKernelId; +use nyks_consensus::transaction::transaction_proof::TransactionProofQuality; +use nyks_consensus::transaction::Transaction; +use nyks_consensus::transaction::TransactionProof; use priority_queue::DoublePriorityQueue; use tasm_lib::prelude::Digest; use tracing::debug; @@ -836,7 +836,7 @@ impl Mempool { /// ``` /// use bytesize::ByteSize; /// use nyks_node::application::config::network::Network; - /// use nyks_node::protocol::consensus::block::Block; + /// use nyks_node::protocol::block::Block; /// use nyks_node::state::mempool::Mempool; /// use nyks_node::state::transaction::tx_proving_capability::TxProvingCapability; /// diff --git a/node/src/state/mempool/mempool_event.rs b/node/src/state/mempool/mempool_event.rs index a9520a0..ef32739 100644 --- a/node/src/state/mempool/mempool_event.rs +++ b/node/src/state/mempool/mempool_event.rs @@ -2,8 +2,8 @@ use std::collections::HashMap; use tasm_lib::prelude::Digest; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernel; -use nyks_protocol::proof_abstractions::mast_hash::MastHash; +use nyks_consensus::proof_abstractions::mast_hash::MastHash; +use nyks_consensus::transaction::transaction_kernel::TransactionKernel; /// Represents a mempool state change. /// diff --git a/node/src/state/mempool/merge_input_cache.rs b/node/src/state/mempool/merge_input_cache.rs index 8f4b28a..dee133a 100644 --- a/node/src/state/mempool/merge_input_cache.rs +++ b/node/src/state/mempool/merge_input_cache.rs @@ -5,8 +5,8 @@ use std::collections::VecDeque; use get_size2::GetSize; use crate::state::TransactionKernel; -use nyks_protocol::consensus::transaction::transaction_kernel_id::TransactionKernelId; -use nyks_protocol::consensus::transaction::validity::neptune_proof::NeptuneProof; +use nyks_consensus::transaction::transaction_kernel_id::TransactionKernelId; +use nyks_consensus::transaction::validity::neptune_proof::NeptuneProof; /// A transaction that was input to a merge of two transactions. In other words: /// either a or b in the operation merge(a, b) -> c, where a, b, and c are all diff --git a/node/src/state/mining/block_proposal.rs b/node/src/state/mining/block_proposal.rs index b272834..7b91a94 100644 --- a/node/src/state/mining/block_proposal.rs +++ b/node/src/state/mining/block_proposal.rs @@ -2,9 +2,9 @@ use std::fmt; use tasm_lib::prelude::Digest; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::Block; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; /// A proposed block to extend the block chain with. /// diff --git a/node/src/state/mod.rs b/node/src/state/mod.rs index 1961744..54bc1e7 100644 --- a/node/src/state/mod.rs +++ b/node/src/state/mod.rs @@ -27,6 +27,17 @@ use mining::block_proposal::BlockProposal; use mining::mining_state::MiningState; use networking_state::NetworkingState; use num_traits::Zero; +use nyks_consensus::block::block_header::BlockHeader; +use nyks_consensus::block::block_header::BlockHeaderWithBlockHashWitness; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::difficulty_control::ProofOfWork; +use nyks_consensus::block::Block; +use nyks_consensus::consensus_rule_set::ConsensusRuleSet; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::transaction_kernel::TransactionKernel; +use nyks_consensus::transaction::transaction_kernel_id::TransactionKernelId; +use nyks_consensus::transaction::Transaction; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use nyks_database::storage::storage_schema::traits::StorageWriter as SW; use nyks_database::storage::storage_vec::traits::*; use nyks_locks::tokio as sync_tokio; @@ -39,17 +50,6 @@ use nyks_p2p::peer::transfer_block::TransferBlock; use nyks_p2p::peer::SyncChallenge; use nyks_p2p::peer::SyncChallengeResponse; use nyks_p2p::peer::SYNC_CHALLENGE_POW_WITNESS_LENGTH; -use nyks_protocol::consensus::block::block_header::BlockHeader; -use nyks_protocol::consensus::block::block_header::BlockHeaderWithBlockHashWitness; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::difficulty_control::ProofOfWork; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::consensus_rule_set::ConsensusRuleSet; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernel; -use nyks_protocol::consensus::transaction::transaction_kernel_id::TransactionKernelId; -use nyks_protocol::consensus::transaction::Transaction; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; use tasm_lib::twenty_first::tip5::digest::Digest; use tracing::debug; use tracing::info; diff --git a/node/src/state/networking_state.rs b/node/src/state/networking_state.rs index df06eed..e651195 100644 --- a/node/src/state/networking_state.rs +++ b/node/src/state/networking_state.rs @@ -14,14 +14,14 @@ use crate::application::config::data_directory::DataDirectory; use crate::application::loops::sync_loop::sync_progress::SyncProgress; use crate::state::database::PeerDatabases; use crate::state::sync_status::SyncStatus; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::difficulty_control::ProofOfWork; use nyks_database::create_db_if_missing; use nyks_database::NeptuneLevelDb; use nyks_database::WriteBatchAsync; use nyks_p2p::peer::peer_info::PeerInfo; use nyks_p2p::peer::InstanceId; use nyks_p2p::peer::PeerStanding; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::difficulty_control::ProofOfWork; pub const BANNED_IPS_DB_NAME: &str = "banned_ips"; diff --git a/node/src/util_types/archival_mutator_set.rs b/node/src/util_types/archival_mutator_set.rs index c8331b2..da198d8 100644 --- a/node/src/util_types/archival_mutator_set.rs +++ b/node/src/util_types/archival_mutator_set.rs @@ -10,19 +10,19 @@ use tasm_lib::twenty_first::util_types::mmr; use tasm_lib::twenty_first::util_types::mmr::mmr_accumulator::MmrAccumulator; use crate::util_types::archival_mmr::ArchivalMmr; +use nyks_consensus::mutator_set::active_window::ActiveWindow; +use nyks_consensus::mutator_set::addition_record::AdditionRecord; +use nyks_consensus::mutator_set::ms_membership_proof::MsMembershipProof; +use nyks_consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use nyks_consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; +use nyks_consensus::mutator_set::removal_record::chunk::Chunk; +use nyks_consensus::mutator_set::removal_record::chunk_dictionary::ChunkDictionary; +use nyks_consensus::mutator_set::removal_record::RemovalRecord; +use nyks_consensus::mutator_set::shared::BATCH_SIZE; +use nyks_consensus::mutator_set::shared::CHUNK_SIZE; +use nyks_consensus::mutator_set::shared::WINDOW_SIZE; +use nyks_consensus::mutator_set::MutatorSetError; use nyks_database::storage::storage_vec::traits::*; -use nyks_protocol::consensus::mutator_set::active_window::ActiveWindow; -use nyks_protocol::consensus::mutator_set::addition_record::AdditionRecord; -use nyks_protocol::consensus::mutator_set::ms_membership_proof::MsMembershipProof; -use nyks_protocol::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use nyks_protocol::consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; -use nyks_protocol::consensus::mutator_set::removal_record::chunk::Chunk; -use nyks_protocol::consensus::mutator_set::removal_record::chunk_dictionary::ChunkDictionary; -use nyks_protocol::consensus::mutator_set::removal_record::RemovalRecord; -use nyks_protocol::consensus::mutator_set::shared::BATCH_SIZE; -use nyks_protocol::consensus::mutator_set::shared::CHUNK_SIZE; -use nyks_protocol::consensus::mutator_set::shared::WINDOW_SIZE; -use nyks_protocol::consensus::mutator_set::MutatorSetError; #[derive(Debug, Clone)] pub struct ArchivalMutatorSet diff --git a/node/src/util_types/rusty_archival_mutator_set.rs b/node/src/util_types/rusty_archival_mutator_set.rs index 99b7eb4..049fb81 100644 --- a/node/src/util_types/rusty_archival_mutator_set.rs +++ b/node/src/util_types/rusty_archival_mutator_set.rs @@ -2,6 +2,8 @@ use tasm_lib::twenty_first::tip5::digest::Digest; use super::archival_mutator_set::ArchivalMutatorSet; use crate::util_types::archival_mmr::ArchivalMmr; +use nyks_consensus::mutator_set::active_window::ActiveWindow; +use nyks_consensus::mutator_set::removal_record::chunk::Chunk; use nyks_database::storage::storage_schema::traits::*; use nyks_database::storage::storage_schema::DbtSingleton; use nyks_database::storage::storage_schema::DbtVec; @@ -9,8 +11,6 @@ use nyks_database::storage::storage_schema::RustyKey; use nyks_database::storage::storage_schema::RustyValue; use nyks_database::storage::storage_schema::SimpleRustyStorage; use nyks_database::NeptuneLevelDb; -use nyks_protocol::consensus::mutator_set::active_window::ActiveWindow; -use nyks_protocol::consensus::mutator_set::removal_record::chunk::Chunk; type AmsMmrStorage = DbtVec; type AmsChunkStorage = DbtVec; diff --git a/p2p/Cargo.toml b/p2p/Cargo.toml index 688ac50..aaede4b 100644 --- a/p2p/Cargo.toml +++ b/p2p/Cargo.toml @@ -22,7 +22,7 @@ libp2p = { version = "0.56.0", features = [] } arraystring = { version = "0.3.0", features = ["serde-traits"] } sha2 = "0.10.9" semver = "^1.0.23" -nyks-protocol = { version = "0.8.0", path = "../protocol" } +nyks-consensus = { version = "0.8.0", path = "../consensus" } [dev-dependencies] diff --git a/p2p/src/peer.rs b/p2p/src/peer.rs index a8f32b1..fd1b905 100644 --- a/p2p/src/peer.rs +++ b/p2p/src/peer.rs @@ -15,16 +15,16 @@ use itertools::Itertools; use num_bigint::BigUint; use num_traits::ToPrimitive; use num_traits::Zero; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::block::block_header::BlockHeader; -use nyks_protocol::consensus::block::block_header::BlockHeaderWithBlockHashWitness; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::difficulty_control::Difficulty; -use nyks_protocol::consensus::block::difficulty_control::ProofOfWork; -use nyks_protocol::consensus::block::difficulty_control::max_cumulative_pow_after; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::transaction::transaction_kernel_id::TransactionKernelId; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::block::Block; +use nyks_consensus::block::block_header::BlockHeader; +use nyks_consensus::block::block_header::BlockHeaderWithBlockHashWitness; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::difficulty_control::Difficulty; +use nyks_consensus::block::difficulty_control::ProofOfWork; +use nyks_consensus::block::difficulty_control::max_cumulative_pow_after; +use nyks_consensus::network::Network; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::transaction_kernel_id::TransactionKernelId; use peer_block_notifications::PeerBlockNotification; use rand::Rng; use rand::RngCore; diff --git a/p2p/src/peer/handshake_data.rs b/p2p/src/peer/handshake_data.rs index 97f319e..d252d92 100644 --- a/p2p/src/peer/handshake_data.rs +++ b/p2p/src/peer/handshake_data.rs @@ -6,8 +6,8 @@ use std::time::SystemTime; use arraystring::ArrayString; use arraystring::typenum::U30; use arraystring::typenum::U255; -use nyks_protocol::consensus::block::block_header::BlockHeader; -use nyks_protocol::consensus::network::Network; +use nyks_consensus::block::block_header::BlockHeader; +use nyks_consensus::network::Network; use serde::Deserialize; use serde::Serialize; diff --git a/p2p/src/peer/peer_block_notifications.rs b/p2p/src/peer/peer_block_notifications.rs index 6d5ab57..1ad079e 100644 --- a/p2p/src/peer/peer_block_notifications.rs +++ b/p2p/src/peer/peer_block_notifications.rs @@ -1,8 +1,8 @@ -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::difficulty_control::ProofOfWork; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::proof_abstractions::mast_hash::MastHash; +use nyks_consensus::block::Block; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::difficulty_control::ProofOfWork; +use nyks_consensus::proof_abstractions::mast_hash::MastHash; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use serde::Deserialize; use serde::Serialize; use tasm_lib::prelude::Digest; diff --git a/p2p/src/peer/transaction_notification.rs b/p2p/src/peer/transaction_notification.rs index 4dc62eb..51784da 100644 --- a/p2p/src/peer/transaction_notification.rs +++ b/p2p/src/peer/transaction_notification.rs @@ -1,8 +1,8 @@ -use nyks_protocol::consensus::transaction::Transaction; -use nyks_protocol::consensus::transaction::TransactionProof; -use nyks_protocol::consensus::transaction::transaction_kernel_id::TransactionKernelId; -use nyks_protocol::consensus::transaction::transaction_proof::TransactionProofQuality; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use nyks_consensus::transaction::Transaction; +use nyks_consensus::transaction::TransactionProof; +use nyks_consensus::transaction::transaction_kernel_id::TransactionKernelId; +use nyks_consensus::transaction::transaction_proof::TransactionProofQuality; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use serde::Deserialize; use serde::Serialize; use tasm_lib::prelude::Digest; diff --git a/p2p/src/peer/transfer_block.rs b/p2p/src/peer/transfer_block.rs index cc3f8a8..3469630 100644 --- a/p2p/src/peer/transfer_block.rs +++ b/p2p/src/peer/transfer_block.rs @@ -1,13 +1,13 @@ use anyhow::Result; use anyhow::bail; use anyhow::ensure; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::block::BlockProof; -use nyks_protocol::consensus::block::block_appendix::BlockAppendix; -use nyks_protocol::consensus::block::block_body::BlockBody; -use nyks_protocol::consensus::block::block_header::BlockHeader; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::transaction::validity::neptune_proof::Proof; +use nyks_consensus::block::Block; +use nyks_consensus::block::BlockProof; +use nyks_consensus::block::block_appendix::BlockAppendix; +use nyks_consensus::block::block_body::BlockBody; +use nyks_consensus::block::block_header::BlockHeader; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::transaction::validity::neptune_proof::Proof; use serde::Deserialize; use serde::Serialize; diff --git a/p2p/src/peer/transfer_transaction.rs b/p2p/src/peer/transfer_transaction.rs index f9b7736..c9799f6 100644 --- a/p2p/src/peer/transfer_transaction.rs +++ b/p2p/src/peer/transfer_transaction.rs @@ -1,9 +1,9 @@ -use nyks_protocol::consensus::transaction::Transaction; -use nyks_protocol::consensus::transaction::TransactionProof; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernel; -use nyks_protocol::consensus::transaction::transaction_proof::TransactionProofQuality; -use nyks_protocol::consensus::transaction::validity::neptune_proof::Proof; -use nyks_protocol::consensus::transaction::validity::proof_collection::ProofCollection; +use nyks_consensus::transaction::Transaction; +use nyks_consensus::transaction::TransactionProof; +use nyks_consensus::transaction::transaction_kernel::TransactionKernel; +use nyks_consensus::transaction::transaction_proof::TransactionProofQuality; +use nyks_consensus::transaction::validity::neptune_proof::Proof; +use nyks_consensus::transaction::validity::proof_collection::ProofCollection; use serde::Deserialize; use serde::Serialize; diff --git a/protocol/src/lib.rs b/protocol/src/lib.rs deleted file mode 100644 index caa6ef0..0000000 --- a/protocol/src/lib.rs +++ /dev/null @@ -1,12 +0,0 @@ -// recursion limit for macros (e.g. triton_asm!) -#![recursion_limit = "2048"] -#![deny(clippy::shadow_unrelated)] - -pub mod consensus; -pub mod prelude; -pub mod proof_abstractions; - -pub use prelude::tasm_lib; -pub use prelude::triton_vm; -pub use prelude::twenty_first; -pub use triton_vm::prelude::BFieldElement; diff --git a/prover/Cargo.toml b/prover/Cargo.toml index bf80d65..cb8cfac 100644 --- a/prover/Cargo.toml +++ b/prover/Cargo.toml @@ -10,7 +10,7 @@ license = "Apache-2.0" repository = "https://github.com/Nyksnet/nyksnode/" [dependencies] -nyks-protocol = { version = "0.8.0", path = "../protocol" } +nyks-consensus = { version = "0.8.0", path = "../consensus" } tokio = { version = "1.45.1", features = ["full", "tracing"] } tracing = "0.1.41" serde_json = "1.0.148" diff --git a/prover/src/lib.rs b/prover/src/lib.rs index 90046f2..63ae94c 100644 --- a/prover/src/lib.rs +++ b/prover/src/lib.rs @@ -8,11 +8,11 @@ use std::path::PathBuf; use std::process::Stdio; -use nyks_protocol::consensus::transaction::validity::neptune_proof::Proof; -use nyks_protocol::triton_vm::error::InstructionError; -use nyks_protocol::triton_vm::prelude::Program; -use nyks_protocol::triton_vm::proof::Claim; -use nyks_protocol::triton_vm::vm::NonDeterminism; +use nyks_consensus::transaction::validity::neptune_proof::Proof; +use nyks_consensus::triton_vm::error::InstructionError; +use nyks_consensus::triton_vm::prelude::Program; +use nyks_consensus::triton_vm::proof::Claim; +use nyks_consensus::triton_vm::vm::NonDeterminism; use tokio::io::AsyncWriteExt; use tokio::sync::watch; diff --git a/prover/src/main.rs b/prover/src/main.rs index f02bd28..11bdfba 100644 --- a/prover/src/main.rs +++ b/prover/src/main.rs @@ -5,17 +5,17 @@ use std::io::BufRead; use std::io::Write; use fd_lock::RwLock; -use nyks_protocol::triton_vm::config::CacheDecision; -use nyks_protocol::triton_vm::config::ENV_VAR_LDE_CACHE; -use nyks_protocol::triton_vm::config::ENV_VAR_LDE_CACHE_NO_CACHE; -use nyks_protocol::triton_vm::config::ENV_VAR_LDE_CACHE_WITH_CACHE; -use nyks_protocol::triton_vm::config::overwrite_lde_trace_caching_to; -use nyks_protocol::triton_vm::prelude::Program; -use nyks_protocol::triton_vm::proof::Claim; -use nyks_protocol::triton_vm::proof::Proof; -use nyks_protocol::triton_vm::stark::Stark; -use nyks_protocol::triton_vm::vm::NonDeterminism; -use nyks_protocol::triton_vm::vm::VM; +use nyks_consensus::triton_vm::config::CacheDecision; +use nyks_consensus::triton_vm::config::ENV_VAR_LDE_CACHE; +use nyks_consensus::triton_vm::config::ENV_VAR_LDE_CACHE_NO_CACHE; +use nyks_consensus::triton_vm::config::ENV_VAR_LDE_CACHE_WITH_CACHE; +use nyks_consensus::triton_vm::config::overwrite_lde_trace_caching_to; +use nyks_consensus::triton_vm::prelude::Program; +use nyks_consensus::triton_vm::proof::Claim; +use nyks_consensus::triton_vm::proof::Proof; +use nyks_consensus::triton_vm::stark::Stark; +use nyks_consensus::triton_vm::vm::NonDeterminism; +use nyks_consensus::triton_vm::vm::VM; use nyks_prover::PROOF_PADDED_HEIGHT_TOO_BIG_PROCESS_OFFSET_ERROR_CODE; use nyks_prover::env::TritonVmEnvVars; use thread_priority::ThreadPriority; diff --git a/rpc/core/Cargo.toml b/rpc/core/Cargo.toml index 7518cb2..beb1300 100644 --- a/rpc/core/Cargo.toml +++ b/rpc/core/Cargo.toml @@ -12,7 +12,7 @@ repository = "https://github.com/Nyksnet/nyksnode/" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" thiserror = "1.0.65" -nyks-protocol = { version = "0.8.0", path = "../../protocol" } +nyks-consensus = { version = "0.8.0", path = "../../consensus" } nyks-standards = { version = "0.8.0", path = "../../standards" } tasm-lib = "7.0.0" hex = "0.4.3" diff --git a/rpc/core/src/model/block/appendix.rs b/rpc/core/src/model/block/appendix.rs index b98f90f..f37db86 100644 --- a/rpc/core/src/model/block/appendix.rs +++ b/rpc/core/src/model/block/appendix.rs @@ -4,7 +4,7 @@ use tasm_lib::prelude::Digest; use tasm_lib::triton_vm::proof::Claim; use crate::model::common::RpcBFieldElements; -use nyks_protocol::consensus::block::block_appendix::BlockAppendix; +use nyks_consensus::block::block_appendix::BlockAppendix; #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] diff --git a/rpc/core/src/model/block/body.rs b/rpc/core/src/model/block/body.rs index dcc2ab4..76698cf 100644 --- a/rpc/core/src/model/block/body.rs +++ b/rpc/core/src/model/block/body.rs @@ -5,9 +5,9 @@ use tasm_lib::twenty_first::prelude::Mmr; use tasm_lib::twenty_first::util_types::mmr::mmr_accumulator::MmrAccumulator; use crate::model::block::transaction_kernel::RpcTransactionKernel; -use nyks_protocol::consensus::block::block_body::BlockBody; -use nyks_protocol::consensus::mutator_set::active_window::ActiveWindow; -use nyks_protocol::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use nyks_consensus::block::block_body::BlockBody; +use nyks_consensus::mutator_set::active_window::ActiveWindow; +use nyks_consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] diff --git a/rpc/core/src/model/block/header.rs b/rpc/core/src/model/block/header.rs index 4261680..de9958b 100644 --- a/rpc/core/src/model/block/header.rs +++ b/rpc/core/src/model/block/header.rs @@ -7,15 +7,15 @@ use tasm_lib::prelude::Digest; use tasm_lib::triton_vm::prelude::BFieldElement; use crate::model::block::transaction_kernel::RpcTransactionKernel; -use nyks_protocol::consensus::block::block_header::BlockHeader; -use nyks_protocol::consensus::block::block_header::BlockPow; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::difficulty_control::Difficulty; -use nyks_protocol::consensus::block::difficulty_control::ProofOfWork; -use nyks_protocol::consensus::block::guesser_receiver_data::GuesserReceiverData; -use nyks_protocol::consensus::block::pow::POW_MEMORY_TREE_HEIGHT; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernel; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::block::block_header::BlockHeader; +use nyks_consensus::block::block_header::BlockPow; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::difficulty_control::Difficulty; +use nyks_consensus::block::difficulty_control::ProofOfWork; +use nyks_consensus::block::guesser_receiver_data::GuesserReceiverData; +use nyks_consensus::block::pow::POW_MEMORY_TREE_HEIGHT; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::transaction_kernel::TransactionKernel; // TODO: Mirror consensus impl (RpcBlockPow = RpcPow) #[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq)] diff --git a/rpc/core/src/model/block/mod.rs b/rpc/core/src/model/block/mod.rs index c409179..29e928c 100644 --- a/rpc/core/src/model/block/mod.rs +++ b/rpc/core/src/model/block/mod.rs @@ -6,13 +6,13 @@ use crate::model::block::appendix::RpcBlockAppendix; use crate::model::block::body::RpcBlockBody; use crate::model::block::header::RpcBlockHeader; use crate::model::common::RpcBFieldElements; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::block::BlockProof; -use nyks_protocol::consensus::block::block_appendix::BlockAppendix; -use nyks_protocol::consensus::block::block_body::BlockBody; -use nyks_protocol::consensus::block::block_header::BlockHeader; -use nyks_protocol::consensus::block::block_kernel::BlockKernel; -use nyks_protocol::proof_abstractions::mast_hash::MastHash; +use nyks_consensus::block::Block; +use nyks_consensus::block::BlockProof; +use nyks_consensus::block::block_appendix::BlockAppendix; +use nyks_consensus::block::block_body::BlockBody; +use nyks_consensus::block::block_header::BlockHeader; +use nyks_consensus::block::block_kernel::BlockKernel; +use nyks_consensus::proof_abstractions::mast_hash::MastHash; pub mod appendix; pub mod body; diff --git a/rpc/core/src/model/block/transaction_kernel.rs b/rpc/core/src/model/block/transaction_kernel.rs index a2a7df8..fa85277 100644 --- a/rpc/core/src/model/block/transaction_kernel.rs +++ b/rpc/core/src/model/block/transaction_kernel.rs @@ -5,16 +5,16 @@ use tasm_lib::prelude::Digest; use crate::model::common::RpcBFieldElements; use crate::model::common::RpcNativeCurrencyAmount; use crate::model::wallet::mutator_set::RpcMmrMembershipProof; -use nyks_protocol::consensus::mutator_set::addition_record::AdditionRecord; -use nyks_protocol::consensus::mutator_set::removal_record::RemovalRecord; -use nyks_protocol::consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; -use nyks_protocol::consensus::mutator_set::removal_record::chunk::Chunk; -use nyks_protocol::consensus::mutator_set::removal_record::chunk_dictionary::ChunkDictionary; -use nyks_protocol::consensus::transaction::announcement::Announcement; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernel; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernelProxy; -use nyks_protocol::consensus::transaction::transaction_kernel_id::TransactionKernelId; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::mutator_set::addition_record::AdditionRecord; +use nyks_consensus::mutator_set::removal_record::RemovalRecord; +use nyks_consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; +use nyks_consensus::mutator_set::removal_record::chunk::Chunk; +use nyks_consensus::mutator_set::removal_record::chunk_dictionary::ChunkDictionary; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::announcement::Announcement; +use nyks_consensus::transaction::transaction_kernel::TransactionKernel; +use nyks_consensus::transaction::transaction_kernel::TransactionKernelProxy; +use nyks_consensus::transaction::transaction_kernel_id::TransactionKernelId; pub type RpcAbsoluteIndexSet = AbsoluteIndexSet; diff --git a/rpc/core/src/model/common.rs b/rpc/core/src/model/common.rs index aa328c7..b55e3fc 100644 --- a/rpc/core/src/model/common.rs +++ b/rpc/core/src/model/common.rs @@ -2,7 +2,7 @@ use std::fmt::Display; use std::fmt::LowerHex; use std::str::FromStr; -use nyks_protocol::consensus::block::block_height::BlockHeight; +use nyks_consensus::block::block_height::BlockHeight; use serde::Deserialize; use serde::Deserializer; use serde::Serialize; @@ -11,7 +11,7 @@ use tasm_lib::prelude::Digest; use tasm_lib::triton_vm::prelude::BFieldElement; use thiserror::Error; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; #[derive(Clone, Copy, Debug, PartialEq, Eq)] pub struct RpcNativeCurrencyAmount(pub NativeCurrencyAmount); diff --git a/rpc/core/src/model/mining/template.rs b/rpc/core/src/model/mining/template.rs index be78d1f..7a769ef 100644 --- a/rpc/core/src/model/mining/template.rs +++ b/rpc/core/src/model/mining/template.rs @@ -4,8 +4,8 @@ use tasm_lib::prelude::Digest; use crate::model::block::RpcBlock; use crate::model::common::RpcNativeCurrencyAmount; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::block::pow::PowMastPaths; +use nyks_consensus::block::Block; +use nyks_consensus::block::pow::PowMastPaths; /// Data required to attempt to solve the proof-of-work puzzle that allows the /// minting of the next block. diff --git a/rpc/core/src/model/wallet/block.rs b/rpc/core/src/model/wallet/block.rs index 22e7dcb..5ae93c1 100644 --- a/rpc/core/src/model/wallet/block.rs +++ b/rpc/core/src/model/wallet/block.rs @@ -5,7 +5,7 @@ use tasm_lib::prelude::Tip5; use tasm_lib::triton_vm::prelude::BFieldCodec; use crate::model::block::RpcBlockKernel; -use nyks_protocol::consensus::block::Block; +use nyks_consensus::block::Block; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] diff --git a/rpc/core/src/model/wallet/mutator_set.rs b/rpc/core/src/model/wallet/mutator_set.rs index fb5a26e..d93e4f5 100644 --- a/rpc/core/src/model/wallet/mutator_set.rs +++ b/rpc/core/src/model/wallet/mutator_set.rs @@ -8,7 +8,7 @@ use tasm_lib::twenty_first::prelude::MmrMembershipProof; use crate::model::block::body::RpcMutatorSetAccumulator; use crate::model::block::transaction_kernel::RpcChunkDictionary; -use nyks_protocol::consensus::mutator_set::ms_membership_proof::MsMembershipProof; +use nyks_consensus::mutator_set::ms_membership_proof::MsMembershipProof; use nyks_standards::mutator_set::IndexedAoclAuthPath; use nyks_standards::mutator_set::MsMembershipProofPrivacyPreserving; diff --git a/rpc/core/src/model/wallet/transaction.rs b/rpc/core/src/model/wallet/transaction.rs index 7b34ec3..3f0c8c0 100644 --- a/rpc/core/src/model/wallet/transaction.rs +++ b/rpc/core/src/model/wallet/transaction.rs @@ -4,12 +4,12 @@ use tasm_lib::prelude::Digest; use crate::model::block::transaction_kernel::RpcTransactionKernel; use crate::model::common::RpcBFieldElements; -use nyks_protocol::consensus::transaction::Transaction; -use nyks_protocol::consensus::transaction::TransactionProof; -use nyks_protocol::consensus::transaction::utxo::Coin; -use nyks_protocol::consensus::transaction::utxo::Utxo; -use nyks_protocol::consensus::transaction::validity::neptune_proof::NeptuneProof; -use nyks_protocol::consensus::transaction::validity::proof_collection::ProofCollection; +use nyks_consensus::transaction::Transaction; +use nyks_consensus::transaction::TransactionProof; +use nyks_consensus::transaction::utxo::Coin; +use nyks_consensus::transaction::utxo::Utxo; +use nyks_consensus::transaction::validity::neptune_proof::NeptuneProof; +use nyks_consensus::transaction::validity::proof_collection::ProofCollection; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] pub struct RpcNeptuneProof(RpcBFieldElements); diff --git a/standards/Cargo.toml b/standards/Cargo.toml index 1f6895a..91aee08 100644 --- a/standards/Cargo.toml +++ b/standards/Cargo.toml @@ -12,7 +12,7 @@ repository = "https://github.com/Nyksnet/nyksnode/" aead = { version = "0.5", features = ["std"] } serde = { version = "1.0", features = ["derive"] } -nyks-protocol = { version = "0.8.0", path = "../protocol" } +nyks-consensus = { version = "0.8.0", path = "../consensus" } aes-gcm = "0.10" anyhow = { version = "1.0", features = ["backtrace"] } bech32 = ">=0.9, <0.10" diff --git a/standards/src/lib.rs b/standards/src/lib.rs index cc1caeb..b4171fc 100644 --- a/standards/src/lib.rs +++ b/standards/src/lib.rs @@ -1,5 +1,5 @@ pub mod mutator_set; pub mod wallet; -use nyks_protocol::triton_vm::prelude::BFieldElement; -use nyks_protocol::twenty_first; +use nyks_consensus::triton_vm::prelude::BFieldElement; +use nyks_consensus::twenty_first; diff --git a/standards/src/mutator_set.rs b/standards/src/mutator_set.rs index 847dbbd..b682fd1 100644 --- a/standards/src/mutator_set.rs +++ b/standards/src/mutator_set.rs @@ -1,8 +1,8 @@ -use nyks_protocol::consensus::mutator_set::MutatorSetError; -use nyks_protocol::consensus::mutator_set::ms_membership_proof::MsMembershipProof; -use nyks_protocol::consensus::mutator_set::removal_record::chunk_dictionary::ChunkDictionary; -use nyks_protocol::tasm_lib::prelude::Digest; -use nyks_protocol::tasm_lib::twenty_first::prelude::MmrMembershipProof; +use nyks_consensus::mutator_set::MutatorSetError; +use nyks_consensus::mutator_set::ms_membership_proof::MsMembershipProof; +use nyks_consensus::mutator_set::removal_record::chunk_dictionary::ChunkDictionary; +use nyks_consensus::tasm_lib::prelude::Digest; +use nyks_consensus::tasm_lib::twenty_first::prelude::MmrMembershipProof; use serde::Deserialize; use serde::Serialize; diff --git a/standards/src/wallet/allocations.rs b/standards/src/wallet/allocations.rs index f9a5af9..a7f185b 100644 --- a/standards/src/wallet/allocations.rs +++ b/standards/src/wallet/allocations.rs @@ -1,13 +1,13 @@ use num_traits::Zero; -use nyks_protocol::consensus::mutator_set::addition_record::AdditionRecord; -use nyks_protocol::consensus::mutator_set::commit; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::transaction::utxo::Coin; -use nyks_protocol::consensus::transaction::utxo::Utxo; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::tasm_lib::prelude::Digest; -use nyks_protocol::tasm_lib::prelude::Tip5; -use nyks_protocol::tasm_lib::twenty_first::bfe_array; +use nyks_consensus::mutator_set::addition_record::AdditionRecord; +use nyks_consensus::mutator_set::commit; +use nyks_consensus::network::Network; +use nyks_consensus::tasm_lib::prelude::Digest; +use nyks_consensus::tasm_lib::prelude::Tip5; +use nyks_consensus::tasm_lib::twenty_first::bfe_array; +use nyks_consensus::transaction::utxo::Coin; +use nyks_consensus::transaction::utxo::Utxo; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use crate::BFieldElement; use crate::wallet::keys::address::Address; @@ -65,7 +65,7 @@ impl Allocations { #[cfg(test)] mod tests { - use nyks_protocol::consensus::block::Block; + use nyks_consensus::block::Block; use super::*; diff --git a/standards/src/wallet/keys/address.rs b/standards/src/wallet/keys/address.rs index 687cb45..2dd0c23 100644 --- a/standards/src/wallet/keys/address.rs +++ b/standards/src/wallet/keys/address.rs @@ -1,8 +1,8 @@ -use nyks_protocol::BFieldElement; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::transaction::announcement::Announcement; -use nyks_protocol::consensus::transaction::lock_script::LockScript; -use nyks_protocol::tasm_lib::prelude::Digest; +use nyks_consensus::BFieldElement; +use nyks_consensus::network::Network; +use nyks_consensus::tasm_lib::prelude::Digest; +use nyks_consensus::transaction::announcement::Announcement; +use nyks_consensus::transaction::lock_script::LockScript; use serde::Deserialize; use serde::Serialize; use thiserror::Error; diff --git a/standards/src/wallet/keys/key.rs b/standards/src/wallet/keys/key.rs index aaff41c..6894f23 100644 --- a/standards/src/wallet/keys/key.rs +++ b/standards/src/wallet/keys/key.rs @@ -1,7 +1,7 @@ -use nyks_protocol::BFieldElement; -use nyks_protocol::consensus::transaction::announcement::Announcement; -use nyks_protocol::consensus::transaction::lock_script::LockScriptAndWitness; -use nyks_protocol::tasm_lib::prelude::Digest; +use nyks_consensus::BFieldElement; +use nyks_consensus::tasm_lib::prelude::Digest; +use nyks_consensus::transaction::announcement::Announcement; +use nyks_consensus::transaction::lock_script::LockScriptAndWitness; use zeroize::Zeroize; use zeroize::ZeroizeOnDrop; diff --git a/standards/src/wallet/keys/mod.rs b/standards/src/wallet/keys/mod.rs index 5e753d6..8776149 100644 --- a/standards/src/wallet/keys/mod.rs +++ b/standards/src/wallet/keys/mod.rs @@ -1,8 +1,8 @@ use anyhow::Result; use anyhow::ensure; -use nyks_protocol::BFieldElement; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::twenty_first::tip5::Tip5; +use nyks_consensus::BFieldElement; +use nyks_consensus::network::Network; +use nyks_consensus::twenty_first::tip5::Tip5; use sha3::Shake256; use sha3::digest::ExtendableOutput; use sha3::digest::Update; diff --git a/standards/src/wallet/keys/schemes/generation.rs b/standards/src/wallet/keys/schemes/generation.rs index 11bbf68..f89c207 100644 --- a/standards/src/wallet/keys/schemes/generation.rs +++ b/standards/src/wallet/keys/schemes/generation.rs @@ -5,18 +5,18 @@ use aes_gcm::Nonce; use bech32::FromBase32; use bech32::ToBase32; use bech32::Variant; -use nyks_protocol::BFieldElement; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::transaction::announcement::Announcement; -use nyks_protocol::consensus::transaction::lock_script::LockScript; -use nyks_protocol::consensus::transaction::lock_script::LockScriptAndWitness; -use nyks_protocol::consensus::transaction::utxo::Utxo; -use nyks_protocol::tasm_lib::prelude::Digest; -use nyks_protocol::tasm_lib::prelude::Tip5; -use nyks_protocol::twenty_first::math::lattice; -use nyks_protocol::twenty_first::math::lattice::kem::CIPHERTEXT_SIZE_IN_BFES; -use nyks_protocol::twenty_first::math::lattice::kem::PublicKey; -use nyks_protocol::twenty_first::math::lattice::kem::SecretKey; +use nyks_consensus::BFieldElement; +use nyks_consensus::network::Network; +use nyks_consensus::tasm_lib::prelude::Digest; +use nyks_consensus::tasm_lib::prelude::Tip5; +use nyks_consensus::transaction::announcement::Announcement; +use nyks_consensus::transaction::lock_script::LockScript; +use nyks_consensus::transaction::lock_script::LockScriptAndWitness; +use nyks_consensus::transaction::utxo::Utxo; +use nyks_consensus::twenty_first::math::lattice; +use nyks_consensus::twenty_first::math::lattice::kem::CIPHERTEXT_SIZE_IN_BFES; +use nyks_consensus::twenty_first::math::lattice::kem::PublicKey; +use nyks_consensus::twenty_first::math::lattice::kem::SecretKey; use serde::Deserialize; use serde::Serialize; use thiserror::Error; diff --git a/standards/src/wallet/keys/schemes/symmetric.rs b/standards/src/wallet/keys/schemes/symmetric.rs index f273bd7..e2ecdd5 100644 --- a/standards/src/wallet/keys/schemes/symmetric.rs +++ b/standards/src/wallet/keys/schemes/symmetric.rs @@ -6,14 +6,14 @@ use aes_gcm::Nonce; use bech32::FromBase32; use bech32::ToBase32; use bech32::Variant; -use nyks_protocol::BFieldElement; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::transaction::announcement::Announcement; -use nyks_protocol::consensus::transaction::lock_script::LockScript; -use nyks_protocol::consensus::transaction::lock_script::LockScriptAndWitness; -use nyks_protocol::consensus::transaction::utxo::Utxo; -use nyks_protocol::tasm_lib::prelude::Digest; -use nyks_protocol::tasm_lib::prelude::Tip5; +use nyks_consensus::BFieldElement; +use nyks_consensus::network::Network; +use nyks_consensus::tasm_lib::prelude::Digest; +use nyks_consensus::tasm_lib::prelude::Tip5; +use nyks_consensus::transaction::announcement::Announcement; +use nyks_consensus::transaction::lock_script::LockScript; +use nyks_consensus::transaction::lock_script::LockScriptAndWitness; +use nyks_consensus::transaction::utxo::Utxo; use serde::Deserialize; use serde::Serialize; use thiserror::Error; diff --git a/standards/src/wallet/keys/viewing_key.rs b/standards/src/wallet/keys/viewing_key.rs index 1d95c83..052ed8e 100644 --- a/standards/src/wallet/keys/viewing_key.rs +++ b/standards/src/wallet/keys/viewing_key.rs @@ -1,6 +1,6 @@ -use nyks_protocol::BFieldElement; -use nyks_protocol::consensus::transaction::utxo::Utxo; -use nyks_protocol::twenty_first::tip5::Digest; +use nyks_consensus::BFieldElement; +use nyks_consensus::transaction::utxo::Utxo; +use nyks_consensus::twenty_first::tip5::Digest; use zeroize::Zeroize; use zeroize::ZeroizeOnDrop; diff --git a/standards/src/wallet/notes/announcement_flag.rs b/standards/src/wallet/notes/announcement_flag.rs index b48d9e2..881bb10 100644 --- a/standards/src/wallet/notes/announcement_flag.rs +++ b/standards/src/wallet/notes/announcement_flag.rs @@ -1,7 +1,7 @@ use std::cmp::Ordering; -use nyks_protocol::BFieldElement; -use nyks_protocol::consensus::transaction::announcement::Announcement; +use nyks_consensus::BFieldElement; +use nyks_consensus::transaction::announcement::Announcement; use serde::Deserialize; use serde::Serialize; diff --git a/standards/src/wallet/notes/encrypted_utxo_notification.rs b/standards/src/wallet/notes/encrypted_utxo_notification.rs index 30fd7d4..7e766e9 100644 --- a/standards/src/wallet/notes/encrypted_utxo_notification.rs +++ b/standards/src/wallet/notes/encrypted_utxo_notification.rs @@ -3,10 +3,10 @@ use anyhow::anyhow; use anyhow::ensure; use bech32::FromBase32; use bech32::ToBase32; -use nyks_protocol::BFieldElement; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::transaction::announcement::Announcement; -use nyks_protocol::triton_vm::prelude::BFieldCodec; +use nyks_consensus::BFieldElement; +use nyks_consensus::network::Network; +use nyks_consensus::transaction::announcement::Announcement; +use nyks_consensus::triton_vm::prelude::BFieldCodec; use serde::Deserialize; use serde::Serialize; use thiserror::Error; diff --git a/standards/src/wallet/notes/utxo_notification.rs b/standards/src/wallet/notes/utxo_notification.rs index b1f58e5..e598ea2 100644 --- a/standards/src/wallet/notes/utxo_notification.rs +++ b/standards/src/wallet/notes/utxo_notification.rs @@ -1,5 +1,5 @@ -use nyks_protocol::consensus::transaction::utxo::Utxo; -use nyks_protocol::twenty_first::tip5::Digest; +use nyks_consensus::transaction::utxo::Utxo; +use nyks_consensus::twenty_first::tip5::Digest; use serde::Deserialize; use serde::Serialize; diff --git a/upgrader/Cargo.toml b/upgrader/Cargo.toml index 9e64d1d..a269741 100644 --- a/upgrader/Cargo.toml +++ b/upgrader/Cargo.toml @@ -9,7 +9,7 @@ license = "Apache-2.0" repository = "https://github.com/Nyksnet/nyksnode/" [dependencies] -nyks-protocol = { version = "0.8.0", path = "../protocol" } +nyks-consensus = { version = "0.8.0", path = "../consensus" } nyks-prover = { version = "0.8.0", path = "../prover" } nyks-rpc-client = { version = "0.8.0", path = "../rpc/client" } nyks-standards = { version = "0.8.0", path = "../standards" } diff --git a/upgrader/src/core/args.rs b/upgrader/src/core/args.rs index c7b283e..a7797c2 100644 --- a/upgrader/src/core/args.rs +++ b/upgrader/src/core/args.rs @@ -1,6 +1,6 @@ use clap::Parser; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use nyks_consensus::network::Network; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; #[derive(Parser)] #[command(name = "nyks-upgrader")] diff --git a/upgrader/src/core/prover.rs b/upgrader/src/core/prover.rs index a32f7e7..98b79ac 100644 --- a/upgrader/src/core/prover.rs +++ b/upgrader/src/core/prover.rs @@ -1,8 +1,8 @@ -use nyks_protocol::consensus::transaction::validity::neptune_proof::Proof; -use nyks_protocol::consensus::transaction::validity::single_proof::SingleProof; -use nyks_protocol::consensus::transaction::validity::single_proof::SingleProofWitness; -use nyks_protocol::proof_abstractions::SecretWitness; -use nyks_protocol::proof_abstractions::tasm::program::TritonProgram; +use nyks_consensus::proof_abstractions::SecretWitness; +use nyks_consensus::proof_abstractions::tasm::program::TritonProgram; +use nyks_consensus::transaction::validity::neptune_proof::Proof; +use nyks_consensus::transaction::validity::single_proof::SingleProof; +use nyks_consensus::transaction::validity::single_proof::SingleProofWitness; use nyks_prover::JobCancelReceiver; use nyks_prover::ProverJob; use nyks_prover::ProverJobSettings; diff --git a/upgrader/src/upgrader/flow.rs b/upgrader/src/upgrader/flow.rs index 087dc3d..22970a7 100644 --- a/upgrader/src/upgrader/flow.rs +++ b/upgrader/src/upgrader/flow.rs @@ -1,7 +1,7 @@ use std::collections::HashSet; use std::time::Duration; -use nyks_protocol::consensus::block::Block; +use nyks_consensus::block::Block; use nyks_rpc_client::RpcApi; use nyks_rpc_client::block::transaction_kernel::RpcTransactionKernelId; use nyks_rpc_client::http::HttpClient; diff --git a/upgrader/src/upgrader/gobbler.rs b/upgrader/src/upgrader/gobbler.rs index 939a7ae..c7cd3f7 100644 --- a/upgrader/src/upgrader/gobbler.rs +++ b/upgrader/src/upgrader/gobbler.rs @@ -1,14 +1,14 @@ use std::collections::VecDeque; use std::sync::Arc; -use nyks_protocol::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use nyks_protocol::consensus::transaction::Transaction; -use nyks_protocol::consensus::transaction::TransactionProof; -use nyks_protocol::consensus::transaction::validity::single_proof::SingleProofWitness; -use nyks_protocol::consensus::transaction::validity::tasm::single_proof::merge_branch::MergeWitness; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; -use nyks_protocol::twenty_first::tip5::Digest; +use nyks_consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::Transaction; +use nyks_consensus::transaction::TransactionProof; +use nyks_consensus::transaction::validity::single_proof::SingleProofWitness; +use nyks_consensus::transaction::validity::tasm::single_proof::merge_branch::MergeWitness; +use nyks_consensus::twenty_first::tip5::Digest; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use nyks_rpc_client::block::transaction_kernel::RpcTransactionKernel; use nyks_rpc_client::wallet::transaction::RpcTransaction; use nyks_rpc_client::wallet::transaction::RpcTransactionProof; diff --git a/upgrader/src/upgrader/pipeline/updater.rs b/upgrader/src/upgrader/pipeline/updater.rs index 12fbd25..d534cb4 100644 --- a/upgrader/src/upgrader/pipeline/updater.rs +++ b/upgrader/src/upgrader/pipeline/updater.rs @@ -2,13 +2,13 @@ use std::collections::HashMap; use std::sync::Arc; use itertools::Itertools; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernel; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernelModifier; -use nyks_protocol::consensus::transaction::validity::neptune_proof::Proof; -use nyks_protocol::consensus::transaction::validity::single_proof::SingleProofWitness; -use nyks_protocol::consensus::transaction::validity::tasm::single_proof::update_branch::UpdateWitness; -use nyks_protocol::twenty_first::util_types::mmr::mmr_successor_proof::MmrSuccessorProof; +use nyks_consensus::block::Block; +use nyks_consensus::transaction::transaction_kernel::TransactionKernel; +use nyks_consensus::transaction::transaction_kernel::TransactionKernelModifier; +use nyks_consensus::transaction::validity::neptune_proof::Proof; +use nyks_consensus::transaction::validity::single_proof::SingleProofWitness; +use nyks_consensus::transaction::validity::tasm::single_proof::update_branch::UpdateWitness; +use nyks_consensus::twenty_first::util_types::mmr::mmr_successor_proof::MmrSuccessorProof; use nyks_prover::JobCancelSender; use nyks_rpc_client::RpcApi; use nyks_rpc_client::block::transaction_kernel::RpcTransactionKernelId; diff --git a/upgrader/src/upgrader/pipeline/upgrader.rs b/upgrader/src/upgrader/pipeline/upgrader.rs index 1584ddd..a86904a 100644 --- a/upgrader/src/upgrader/pipeline/upgrader.rs +++ b/upgrader/src/upgrader/pipeline/upgrader.rs @@ -4,8 +4,8 @@ use std::sync::Arc; use tokio::sync::RwLock; use tokio::sync::watch; -use nyks_protocol::consensus::transaction::validity::proof_collection::ProofCollection; -use nyks_protocol::consensus::transaction::validity::single_proof::SingleProofWitness; +use nyks_consensus::transaction::validity::proof_collection::ProofCollection; +use nyks_consensus::transaction::validity::single_proof::SingleProofWitness; use nyks_prover::JobCancelSender; use nyks_rpc_client::block::transaction_kernel::RpcTransactionKernelId; use nyks_rpc_client::wallet::transaction::RpcTransaction; diff --git a/wallet/cli/Cargo.toml b/wallet/cli/Cargo.toml index 7a58d0f..ffee2f9 100644 --- a/wallet/cli/Cargo.toml +++ b/wallet/cli/Cargo.toml @@ -9,7 +9,7 @@ license = "Apache-2.0" repository = "https://github.com/Nyksnet/nyksnode/" [dependencies] -nyks-protocol = { version = "0.8.0", path = "../../protocol" } +nyks-consensus = { version = "0.8.0", path = "../../consensus" } nyks-standards = { version = "0.8.0", path = "../../standards" } nyks-wallet-core = { version = "0.8.0", path = "../core" } nyks-wallet-sdk = { version = "0.8.0", path = "../sdk" } diff --git a/wallet/cli/src/core/console.rs b/wallet/cli/src/core/console.rs index e59f48b..942be88 100644 --- a/wallet/cli/src/core/console.rs +++ b/wallet/cli/src/core/console.rs @@ -1,6 +1,6 @@ use num_traits::CheckedSub; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use nyks_consensus::network::Network; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use nyks_standards::wallet::keys::address::Address; use nyks_standards::wallet::keys::address::Recipient; use nyks_standards::wallet::keys::key::KeyType; diff --git a/wallet/cli/src/core/storage.rs b/wallet/cli/src/core/storage.rs index ed84bfa..0f5b3bf 100644 --- a/wallet/cli/src/core/storage.rs +++ b/wallet/cli/src/core/storage.rs @@ -3,7 +3,7 @@ use std::io::Write; use std::path::Path; use std::path::PathBuf; -use nyks_protocol::consensus::block::block_height::BlockHeight; +use nyks_consensus::block::block_height::BlockHeight; use nyks_standards::wallet::keys::key::KeyType; use nyks_wallet_sdk::state::utxos::utxo::MonitoredUtxo; use nyks_wallet_sdk::state::utxos::utxo::UtxoKey; diff --git a/wallet/cli/src/main.rs b/wallet/cli/src/main.rs index beb2fe9..e88260d 100644 --- a/wallet/cli/src/main.rs +++ b/wallet/cli/src/main.rs @@ -4,7 +4,7 @@ use std::time::Duration; use anyhow::Result; use anyhow::bail; use clap::Parser; -use nyks_protocol::consensus::network::Network; +use nyks_consensus::network::Network; use nyks_rpc_client::http::HttpClient; use nyks_wallet_core::entropy::wallet_entropy::WalletEntropy; use nyks_wallet_sdk::wallet::Wallet; diff --git a/wallet/core/Cargo.toml b/wallet/core/Cargo.toml index fd315f2..a89cc15 100644 --- a/wallet/core/Cargo.toml +++ b/wallet/core/Cargo.toml @@ -9,7 +9,7 @@ license = "Apache-2.0" repository = "https://github.com/Nyksnet/nyksnode/" [dependencies] -nyks-protocol = { version = "0.8.0", path = "../../protocol" } +nyks-consensus = { version = "0.8.0", path = "../../consensus" } nyks-standards = { version = "0.8.0", path = "../../standards" } tracing = "0.1.41" num-traits = "0.2.19" diff --git a/wallet/core/src/entropy/secret_key_material.rs b/wallet/core/src/entropy/secret_key_material.rs index 81dc12a..e9b55f7 100644 --- a/wallet/core/src/entropy/secret_key_material.rs +++ b/wallet/core/src/entropy/secret_key_material.rs @@ -2,10 +2,10 @@ use bip39::Mnemonic; use itertools::Itertools; use num_traits::ConstZero; use num_traits::Zero; -use nyks_protocol::BFieldElement; -use nyks_protocol::triton_vm::prelude::XFieldElement; -use nyks_protocol::twenty_first::prelude::Polynomial; -use nyks_protocol::twenty_first::xfe; +use nyks_consensus::BFieldElement; +use nyks_consensus::triton_vm::prelude::XFieldElement; +use nyks_consensus::twenty_first::prelude::Polynomial; +use nyks_consensus::twenty_first::xfe; use rand::Rng; use rand::SeedableRng; use rand::rngs::StdRng; diff --git a/wallet/core/src/entropy/wallet_entropy.rs b/wallet/core/src/entropy/wallet_entropy.rs index 75707c2..3126b3f 100644 --- a/wallet/core/src/entropy/wallet_entropy.rs +++ b/wallet/core/src/entropy/wallet_entropy.rs @@ -1,11 +1,11 @@ -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::tasm_lib::prelude::Tip5; -use nyks_protocol::twenty_first::bfe_vec; -use nyks_protocol::twenty_first::math::b_field_element::BFieldElement; -use nyks_protocol::twenty_first::math::bfield_codec::BFieldCodec; -use nyks_protocol::twenty_first::math::x_field_element::XFieldElement; -use nyks_protocol::twenty_first::tip5::digest::Digest; -use nyks_protocol::twenty_first::xfe; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::tasm_lib::prelude::Tip5; +use nyks_consensus::twenty_first::bfe_vec; +use nyks_consensus::twenty_first::math::b_field_element::BFieldElement; +use nyks_consensus::twenty_first::math::bfield_codec::BFieldCodec; +use nyks_consensus::twenty_first::math::x_field_element::XFieldElement; +use nyks_consensus::twenty_first::tip5::digest::Digest; +use nyks_consensus::twenty_first::xfe; use nyks_standards::wallet::keys::key::Spender; use nyks_standards::wallet::keys::schemes::generation::GENERATION_FLAG; use nyks_standards::wallet::keys::schemes::generation::GenerationAddress; diff --git a/wallet/core/src/lib.rs b/wallet/core/src/lib.rs index e66ce2e..1b51f13 100644 --- a/wallet/core/src/lib.rs +++ b/wallet/core/src/lib.rs @@ -1,4 +1,4 @@ pub mod entropy; pub mod transaction; -use nyks_protocol::prelude::twenty_first; +use nyks_consensus::prelude::twenty_first; diff --git a/wallet/core/src/transaction/builder/input.rs b/wallet/core/src/transaction/builder/input.rs index c48722d..1c1f6b1 100644 --- a/wallet/core/src/transaction/builder/input.rs +++ b/wallet/core/src/transaction/builder/input.rs @@ -3,11 +3,11 @@ use std::ops::Deref; use std::ops::DerefMut; -use nyks_protocol::consensus::mutator_set::ms_membership_proof::MsMembershipProof; -use nyks_protocol::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use nyks_protocol::consensus::mutator_set::removal_record::RemovalRecord; -use nyks_protocol::consensus::transaction::utxo::Utxo; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; +use nyks_consensus::mutator_set::ms_membership_proof::MsMembershipProof; +use nyks_consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use nyks_consensus::mutator_set::removal_record::RemovalRecord; +use nyks_consensus::transaction::utxo::Utxo; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use serde::Deserialize; use serde::Serialize; diff --git a/wallet/core/src/transaction/builder/mod.rs b/wallet/core/src/transaction/builder/mod.rs index f9f5e22..c1577d7 100644 --- a/wallet/core/src/transaction/builder/mod.rs +++ b/wallet/core/src/transaction/builder/mod.rs @@ -4,10 +4,10 @@ pub mod output; use num_traits::Zero; -use nyks_protocol::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernelProxy; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::transaction_kernel::TransactionKernelProxy; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use thiserror::Error; use crate::transaction::BuilderTransaction; diff --git a/wallet/core/src/transaction/builder/output.rs b/wallet/core/src/transaction/builder/output.rs index 08a21aa..ae72ab1 100644 --- a/wallet/core/src/transaction/builder/output.rs +++ b/wallet/core/src/transaction/builder/output.rs @@ -3,7 +3,7 @@ use std::ops::Deref; use std::ops::DerefMut; -use nyks_protocol::tasm_lib::prelude::Digest; +use nyks_consensus::tasm_lib::prelude::Digest; use nyks_standards::wallet::keys::address::Address; use nyks_standards::wallet::keys::address::Recipient; use nyks_standards::wallet::notes::utxo_notification::PrivateNotificationData; @@ -11,13 +11,13 @@ use nyks_standards::wallet::notes::utxo_notification::UtxoNotificationPayload; use serde::Deserialize; use serde::Serialize; -use nyks_protocol::consensus::mutator_set::addition_record::AdditionRecord; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::transaction::announcement::Announcement; -use nyks_protocol::consensus::transaction::utxo::Utxo; -use nyks_protocol::consensus::transaction::utxo_triple::UtxoTriple; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::mutator_set::addition_record::AdditionRecord; +use nyks_consensus::network::Network; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::announcement::Announcement; +use nyks_consensus::transaction::utxo::Utxo; +use nyks_consensus::transaction::utxo_triple::UtxoTriple; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use crate::transaction::utxo::notifications::UtxoNotificationMedium; use crate::transaction::utxo::notifications::UtxoNotificationMethod; diff --git a/wallet/core/src/transaction/mod.rs b/wallet/core/src/transaction/mod.rs index 666c133..342f9f3 100644 --- a/wallet/core/src/transaction/mod.rs +++ b/wallet/core/src/transaction/mod.rs @@ -1,8 +1,8 @@ -use nyks_protocol::consensus::transaction::Transaction; -use nyks_protocol::consensus::transaction::TransactionProof; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernel; -use nyks_protocol::consensus::transaction::validity::neptune_proof::NeptuneProof; -use nyks_protocol::consensus::transaction::validity::proof_collection::ProofCollection; +use nyks_consensus::transaction::Transaction; +use nyks_consensus::transaction::TransactionProof; +use nyks_consensus::transaction::transaction_kernel::TransactionKernel; +use nyks_consensus::transaction::validity::neptune_proof::NeptuneProof; +use nyks_consensus::transaction::validity::proof_collection::ProofCollection; use thiserror::Error; use crate::transaction::primitive_witness::PrimitiveWitness; diff --git a/wallet/core/src/transaction/primitive_witness.rs b/wallet/core/src/transaction/primitive_witness.rs index dc892c5..83ebe07 100644 --- a/wallet/core/src/transaction/primitive_witness.rs +++ b/wallet/core/src/transaction/primitive_witness.rs @@ -2,28 +2,28 @@ use std::collections::HashMap; use std::fmt::Display; use itertools::Itertools; -use nyks_protocol::consensus::transaction::lock_script::LockScriptAndWitness; -use nyks_protocol::consensus::transaction::salted_utxos::SaltedUtxos; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernelField; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernelModifier; -use nyks_protocol::consensus::transaction::utxo::Utxo; -use nyks_protocol::consensus::transaction::validity::collect_lock_scripts::CollectLockScripts; -use nyks_protocol::consensus::transaction::validity::collect_lock_scripts::CollectLockScriptsWitness; -use nyks_protocol::consensus::transaction::validity::collect_type_scripts::CollectTypeScripts; -use nyks_protocol::consensus::transaction::validity::collect_type_scripts::CollectTypeScriptsWitness; -use nyks_protocol::consensus::transaction::validity::kernel_to_outputs::KernelToOutputs; -use nyks_protocol::consensus::transaction::validity::kernel_to_outputs::KernelToOutputsWitness; -use nyks_protocol::consensus::transaction::validity::proof_collection::ProofCollection; -use nyks_protocol::consensus::transaction::validity::removal_records_integrity::RemovalRecordsIntegrity; -use nyks_protocol::consensus::transaction::validity::removal_records_integrity::RemovalRecordsIntegrityWitness; -use nyks_protocol::prelude::tasm_lib::prelude::Tip5; -use nyks_protocol::proof_abstractions::SecretWitness; -use nyks_protocol::proof_abstractions::tasm::program::TritonProgram; -use nyks_protocol::tasm_lib::prelude::Digest; -use nyks_protocol::triton_vm::error::ProvingError; -use nyks_protocol::triton_vm::prelude::BFieldCodec; -use nyks_protocol::triton_vm::vm::PublicInput; -use nyks_protocol::triton_vm::vm::VM; +use nyks_consensus::prelude::tasm_lib::prelude::Tip5; +use nyks_consensus::proof_abstractions::SecretWitness; +use nyks_consensus::proof_abstractions::tasm::program::TritonProgram; +use nyks_consensus::tasm_lib::prelude::Digest; +use nyks_consensus::transaction::lock_script::LockScriptAndWitness; +use nyks_consensus::transaction::salted_utxos::SaltedUtxos; +use nyks_consensus::transaction::transaction_kernel::TransactionKernelField; +use nyks_consensus::transaction::transaction_kernel::TransactionKernelModifier; +use nyks_consensus::transaction::utxo::Utxo; +use nyks_consensus::transaction::validity::collect_lock_scripts::CollectLockScripts; +use nyks_consensus::transaction::validity::collect_lock_scripts::CollectLockScriptsWitness; +use nyks_consensus::transaction::validity::collect_type_scripts::CollectTypeScripts; +use nyks_consensus::transaction::validity::collect_type_scripts::CollectTypeScriptsWitness; +use nyks_consensus::transaction::validity::kernel_to_outputs::KernelToOutputs; +use nyks_consensus::transaction::validity::kernel_to_outputs::KernelToOutputsWitness; +use nyks_consensus::transaction::validity::proof_collection::ProofCollection; +use nyks_consensus::transaction::validity::removal_records_integrity::RemovalRecordsIntegrity; +use nyks_consensus::transaction::validity::removal_records_integrity::RemovalRecordsIntegrityWitness; +use nyks_consensus::triton_vm::error::ProvingError; +use nyks_consensus::triton_vm::prelude::BFieldCodec; +use nyks_consensus::triton_vm::vm::PublicInput; +use nyks_consensus::triton_vm::vm::VM; use rand::SeedableRng; use rand::rngs::StdRng; use serde::Deserialize; @@ -34,16 +34,16 @@ use tracing::info; use crate::transaction::BuilderTransaction; use crate::transaction::BuilderTransactionProof; use crate::transaction::builder::input::TxInputList; -use nyks_protocol::consensus::block::mutator_set_update::MutatorSetUpdate; -use nyks_protocol::consensus::mutator_set::authenticated_item::AuthenticatedItem; -use nyks_protocol::consensus::mutator_set::ms_membership_proof::MsMembershipProof; -use nyks_protocol::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use nyks_protocol::consensus::mutator_set::removal_record::RemovalRecord; -use nyks_protocol::consensus::transaction::transaction_kernel::TransactionKernel; -use nyks_protocol::consensus::type_scripts::TypeScriptAndWitness; -use nyks_protocol::consensus::type_scripts::known_type_scripts; -use nyks_protocol::consensus::type_scripts::known_type_scripts::match_type_script_and_generate_witness; -use nyks_protocol::proof_abstractions::mast_hash::MastHash; +use nyks_consensus::block::mutator_set_update::MutatorSetUpdate; +use nyks_consensus::mutator_set::authenticated_item::AuthenticatedItem; +use nyks_consensus::mutator_set::ms_membership_proof::MsMembershipProof; +use nyks_consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use nyks_consensus::mutator_set::removal_record::RemovalRecord; +use nyks_consensus::proof_abstractions::mast_hash::MastHash; +use nyks_consensus::transaction::transaction_kernel::TransactionKernel; +use nyks_consensus::type_scripts::TypeScriptAndWitness; +use nyks_consensus::type_scripts::known_type_scripts; +use nyks_consensus::type_scripts::known_type_scripts::match_type_script_and_generate_witness; use tracing::warn; /// enumerates possible witness validation errors diff --git a/wallet/core/src/transaction/utxo/spendable.rs b/wallet/core/src/transaction/utxo/spendable.rs index 062a41d..9ca4442 100644 --- a/wallet/core/src/transaction/utxo/spendable.rs +++ b/wallet/core/src/transaction/utxo/spendable.rs @@ -1,15 +1,15 @@ use std::ops::Deref; -use nyks_protocol::tasm_lib::prelude::Digest; -use nyks_protocol::tasm_lib::prelude::Tip5; +use nyks_consensus::tasm_lib::prelude::Digest; +use nyks_consensus::tasm_lib::prelude::Tip5; use serde::Deserialize; use serde::Serialize; -use nyks_protocol::consensus::mutator_set::ms_membership_proof::MsMembershipProof; -use nyks_protocol::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use nyks_protocol::consensus::mutator_set::removal_record::RemovalRecord; -use nyks_protocol::consensus::transaction::lock_script::LockScriptAndWitness; -use nyks_protocol::consensus::transaction::utxo::Utxo; +use nyks_consensus::mutator_set::ms_membership_proof::MsMembershipProof; +use nyks_consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use nyks_consensus::mutator_set::removal_record::RemovalRecord; +use nyks_consensus::transaction::lock_script::LockScriptAndWitness; +use nyks_consensus::transaction::utxo::Utxo; #[derive(Debug, Clone, Serialize, Deserialize)] pub struct SpendableUtxo { diff --git a/wallet/sdk/Cargo.toml b/wallet/sdk/Cargo.toml index 37589ac..e17d3c6 100644 --- a/wallet/sdk/Cargo.toml +++ b/wallet/sdk/Cargo.toml @@ -9,7 +9,7 @@ license = "Apache-2.0" repository = "https://github.com/Nyksnet/nyksnode/" [dependencies] -nyks-protocol = { version = "0.8.0", path = "../../protocol" } +nyks-consensus = { version = "0.8.0", path = "../../consensus" } nyks-standards = { version = "0.8.0", path = "../../standards" } nyks-wallet-core = { version = "0.8.0", path = "../core" } nyks-rpc-client = { version = "0.8.0", path = "../../rpc/client" } diff --git a/wallet/sdk/src/scanners/chain.rs b/wallet/sdk/src/scanners/chain.rs index 16c06c9..60cd7a0 100644 --- a/wallet/sdk/src/scanners/chain.rs +++ b/wallet/sdk/src/scanners/chain.rs @@ -1,16 +1,16 @@ use std::collections::VecDeque; -use nyks_protocol::BFieldElement; -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::block::block_kernel::BlockKernel; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::transaction::announcement::Announcement; -use nyks_protocol::consensus::transaction::utxo::Utxo; -use nyks_protocol::consensus::transaction::utxo_triple::UtxoTriple; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::twenty_first::tip5::Digest; -use nyks_protocol::twenty_first::util_types::mmr::mmr_trait::Mmr; +use nyks_consensus::BFieldElement; +use nyks_consensus::block::Block; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::block::block_kernel::BlockKernel; +use nyks_consensus::network::Network; +use nyks_consensus::transaction::announcement::Announcement; +use nyks_consensus::transaction::utxo::Utxo; +use nyks_consensus::transaction::utxo_triple::UtxoTriple; +use nyks_consensus::twenty_first::tip5::Digest; +use nyks_consensus::twenty_first::util_types::mmr::mmr_trait::Mmr; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use nyks_rpc_client::wallet::block::RpcWalletBlock; use nyks_standards::wallet::allocations::Allocations; use nyks_standards::wallet::keys::address::Recipient; diff --git a/wallet/sdk/src/state/utxos/pool.rs b/wallet/sdk/src/state/utxos/pool.rs index adf9177..495a754 100644 --- a/wallet/sdk/src/state/utxos/pool.rs +++ b/wallet/sdk/src/state/utxos/pool.rs @@ -2,10 +2,10 @@ use std::collections::HashMap; use num_traits::CheckedSub; use num_traits::Zero; -use nyks_protocol::consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use nyks_protocol::consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; +use nyks_consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use nyks_rpc_client::RpcApi; use nyks_rpc_client::http::HttpClient; use nyks_rpc_client::wallet::mutator_set::RpcMsMembershipProofPrivacyPreserving; diff --git a/wallet/sdk/src/state/utxos/utxo.rs b/wallet/sdk/src/state/utxos/utxo.rs index 8cd2806..12af714 100644 --- a/wallet/sdk/src/state/utxos/utxo.rs +++ b/wallet/sdk/src/state/utxos/utxo.rs @@ -1,13 +1,13 @@ use std::ops::Deref; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::mutator_set::addition_record::AdditionRecord; -use nyks_protocol::consensus::mutator_set::commit; -use nyks_protocol::consensus::mutator_set::ms_membership_proof::MsMembershipProof; -use nyks_protocol::consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; -use nyks_protocol::consensus::transaction::utxo::Utxo; -use nyks_protocol::twenty_first::tip5::Digest; -use nyks_protocol::twenty_first::tip5::Tip5; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::mutator_set::addition_record::AdditionRecord; +use nyks_consensus::mutator_set::commit; +use nyks_consensus::mutator_set::ms_membership_proof::MsMembershipProof; +use nyks_consensus::mutator_set::removal_record::absolute_index_set::AbsoluteIndexSet; +use nyks_consensus::transaction::utxo::Utxo; +use nyks_consensus::twenty_first::tip5::Digest; +use nyks_consensus::twenty_first::tip5::Tip5; use serde::Deserialize; use serde::Serialize; diff --git a/wallet/sdk/src/wallet.rs b/wallet/sdk/src/wallet.rs index 1043c6a..8e5c05b 100644 --- a/wallet/sdk/src/wallet.rs +++ b/wallet/sdk/src/wallet.rs @@ -1,11 +1,11 @@ use std::sync::Arc; -use nyks_protocol::consensus::block::block_height::BlockHeight; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::transaction::Transaction; -use nyks_protocol::consensus::transaction::transaction_kernel_id::TransactionKernelId; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::block::block_height::BlockHeight; +use nyks_consensus::network::Network; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::Transaction; +use nyks_consensus::transaction::transaction_kernel_id::TransactionKernelId; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use nyks_rpc_client::RpcApi; use nyks_rpc_client::RpcError; use nyks_rpc_client::http::HttpClient; diff --git a/wasm/Cargo.toml b/wasm/Cargo.toml index 8577fe1..1122093 100644 --- a/wasm/Cargo.toml +++ b/wasm/Cargo.toml @@ -8,7 +8,7 @@ crate-type = ["cdylib"] [dependencies] wasm-bindgen = "0.2.122" -nyks-protocol = { version = "0.8.0", path = "../protocol" } +nyks-consensus = { version = "0.8.0", path = "../consensus" } nyks-standards = { version = "0.8.0", path = "../standards" } nyks-wallet-core = { version = "0.8.0", path = "../wallet/core" } getrandom = { version = "0.2.17", features = ["js"] } diff --git a/wasm/src/lib.rs b/wasm/src/lib.rs index 5d2dde1..3e9b8cd 100644 --- a/wasm/src/lib.rs +++ b/wasm/src/lib.rs @@ -1,10 +1,10 @@ -use nyks_protocol::consensus::block::Block; -use nyks_protocol::consensus::network::Network; -use nyks_protocol::consensus::transaction::lock_script::LockScriptAndWitness; -use nyks_protocol::consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; -use nyks_protocol::proof_abstractions::timestamp::Timestamp; -use nyks_protocol::triton_vm::vm::PublicInput; -use nyks_protocol::twenty_first::tip5::Digest; +use nyks_consensus::block::Block; +use nyks_consensus::network::Network; +use nyks_consensus::proof_abstractions::timestamp::Timestamp; +use nyks_consensus::transaction::lock_script::LockScriptAndWitness; +use nyks_consensus::triton_vm::vm::PublicInput; +use nyks_consensus::twenty_first::tip5::Digest; +use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; use nyks_wallet_core::transaction::builder::TransactionBuilder; use nyks_wallet_core::transaction::builder::input::TxInputList; use nyks_wallet_core::transaction::builder::output::TxOutput; diff --git a/wasm/src/wallet_entropy.rs b/wasm/src/wallet_entropy.rs index 3e6f615..2a47399 100644 --- a/wasm/src/wallet_entropy.rs +++ b/wasm/src/wallet_entropy.rs @@ -1,4 +1,4 @@ -use nyks_protocol::consensus::network::Network; +use nyks_consensus::network::Network; use nyks_standards::wallet::keys::address::Recipient; use nyks_wallet_core::entropy::wallet_entropy::WalletEntropy as Inner; use wasm_bindgen::prelude::*; From 508c340b73741a8f654cd45ac4cab7d1394cf75a Mon Sep 17 00:00:00 2001 From: KaffinPX Date: Thu, 30 Jul 2026 04:37:07 +0300 Subject: [PATCH 2/6] feat(consensus): Cleanup old non-mockable proof references --- composer/src/composer/prover/transaction.rs | 4 +-- consensus/src/block/mod.rs | 4 +-- consensus/src/block/validity/block_program.rs | 4 +-- .../src/block/validity/block_proof_witness.rs | 8 +++--- consensus/src/lib.rs | 10 +++---- .../src/proof_abstractions/tasm/program.rs | 8 ++++-- consensus/src/proof_abstractions/verifier.rs | 4 +-- consensus/src/transaction/lock_script.rs | 5 ++-- consensus/src/transaction/mod.rs | 1 - .../src/transaction/transaction_proof.rs | 8 +++--- consensus/src/transaction/validity/mod.rs | 2 +- .../{neptune_proof.rs => nyks_proof.rs} | 25 +++++++----------- .../transaction/validity/proof_collection.rs | 14 +++++----- .../src/transaction/validity/single_proof.rs | 12 ++++----- .../tasm/single_proof/merge_branch.rs | 6 ++--- .../tasm/single_proof/update_branch.rs | 6 ++--- consensus/src/type_scripts/mod.rs | 4 +-- node/src/state/mempool/merge_input_cache.rs | 6 ++--- p2p/src/peer/transfer_block.rs | 4 +-- p2p/src/peer/transfer_transaction.rs | 4 +-- prover/src/lib.rs | 6 ++--- rpc/core/src/model/wallet/transaction.rs | 26 +++++++++---------- upgrader/src/core/prover.rs | 4 +-- upgrader/src/upgrader/pipeline/updater.rs | 10 +++---- wallet/core/src/transaction/mod.rs | 4 +-- 25 files changed, 94 insertions(+), 95 deletions(-) rename consensus/src/transaction/validity/{neptune_proof.rs => nyks_proof.rs} (90%) diff --git a/composer/src/composer/prover/transaction.rs b/composer/src/composer/prover/transaction.rs index 3fda60f..20af963 100644 --- a/composer/src/composer/prover/transaction.rs +++ b/composer/src/composer/prover/transaction.rs @@ -9,7 +9,7 @@ use nyks_consensus::proof_abstractions::tasm::program::TritonProgram; use nyks_consensus::proof_abstractions::timestamp::Timestamp; use nyks_consensus::transaction::Transaction; use nyks_consensus::transaction::TransactionProof; -use nyks_consensus::transaction::validity::neptune_proof::Proof; +use nyks_consensus::transaction::validity::nyks_proof::NyksProof; use nyks_consensus::transaction::validity::single_proof::SingleProof; use nyks_consensus::transaction::validity::single_proof::SingleProofWitness; use nyks_consensus::type_scripts::native_currency_amount::NativeCurrencyAmount; @@ -242,7 +242,7 @@ impl TransactionProver { claim: nyks_consensus::triton_vm::proof::Claim, nondeterminism: nyks_consensus::triton_vm::vm::NonDeterminism, rx: JobCancelReceiver, - ) -> Result { + ) -> Result { let job = ProverJob::new( SingleProof.program(), claim, diff --git a/consensus/src/block/mod.rs b/consensus/src/block/mod.rs index 478022d..e6fd151 100644 --- a/consensus/src/block/mod.rs +++ b/consensus/src/block/mod.rs @@ -55,7 +55,7 @@ use crate::network::Network; use crate::proof_abstractions::mast_hash::HasDiscriminant; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::timestamp::Timestamp; -use crate::transaction::validity::neptune_proof::Proof; +use crate::transaction::validity::nyks_proof::NyksProof; /// With removal records only represented by their absolute index set, the block /// size limit of 1.000.000 `BFieldElement`s allows for a "balanced" block @@ -187,7 +187,7 @@ pub enum BlockProof { Genesis, #[default] Invalid, - SingleProof(Proof), + SingleProof(NyksProof), } /// Public fields of `Block` are read-only, enforced by #[readonly::make]. diff --git a/consensus/src/block/validity/block_program.rs b/consensus/src/block/validity/block_program.rs index f2c300f..4dafc90 100644 --- a/consensus/src/block/validity/block_program.rs +++ b/consensus/src/block/validity/block_program.rs @@ -30,7 +30,7 @@ use crate::proof_abstractions::tasm::program::TritonProgram; use crate::proof_abstractions::verifier::verify; use crate::transaction::transaction_kernel::TransactionKernel; use crate::transaction::transaction_kernel::TransactionKernelField; -use crate::transaction::validity::neptune_proof::Proof; +use crate::transaction::validity::nyks_proof::NyksProof; use crate::type_scripts::native_currency_amount::NativeCurrencyAmount; /// Verifies that all claims listed in the appendix are true. @@ -53,7 +53,7 @@ impl BlockProgram { pub async fn verify( block_body: &BlockBody, appendix: &BlockAppendix, - proof: &Proof, + proof: &NyksProof, network: Network, ) -> bool { let claim = Self::claim(block_body, appendix); diff --git a/consensus/src/block/validity/block_proof_witness.rs b/consensus/src/block/validity/block_proof_witness.rs index 361fce1..33df895 100644 --- a/consensus/src/block/validity/block_proof_witness.rs +++ b/consensus/src/block/validity/block_proof_witness.rs @@ -25,7 +25,7 @@ use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; use crate::transaction::TransactionProof; use crate::transaction::transaction_kernel::TransactionKernelField; -use crate::transaction::validity::neptune_proof::Proof; +use crate::transaction::validity::nyks_proof::NyksProof; use crate::transaction::validity::single_proof::single_proof_claim; /// All information necessary to efficiently produce a proof for a block. @@ -35,7 +35,7 @@ use crate::transaction::validity::single_proof::single_proof_claim; pub struct BlockProofWitness { pub(super) block_body: BlockBody, pub claims: Vec, - pub proofs: Vec, + pub proofs: Vec, } impl BlockProofWitness { @@ -48,7 +48,7 @@ impl BlockProofWitness { } /// Add a claim to the appendix, along with a proof. - fn with_claim(mut self, claim: Claim, proof: Proof) -> Self { + fn with_claim(mut self, claim: Claim, proof: NyksProof) -> Self { self.claims.push(claim); self.proofs.push(proof); @@ -56,7 +56,7 @@ impl BlockProofWitness { } #[cfg(test)] - pub fn with_claim_test(self, claim: Claim, proof: Proof) -> Self { + pub fn with_claim_test(self, claim: Claim, proof: NyksProof) -> Self { self.with_claim(claim, proof) } diff --git a/consensus/src/lib.rs b/consensus/src/lib.rs index 2c25d81..f5f0001 100644 --- a/consensus/src/lib.rs +++ b/consensus/src/lib.rs @@ -2,6 +2,11 @@ #![recursion_limit = "2048"] #![deny(clippy::shadow_unrelated)] +pub use prelude::tasm_lib; +pub use prelude::triton_vm; +pub use prelude::twenty_first; +pub use triton_vm::prelude::BFieldElement; + pub mod block; pub mod consensus_rule_set; pub mod mutator_set; @@ -11,11 +16,6 @@ pub mod proof_abstractions; pub mod transaction; pub mod type_scripts; -pub use prelude::tasm_lib; -pub use prelude::triton_vm; -pub use prelude::twenty_first; -pub use triton_vm::prelude::BFieldElement; - #[cfg(test)] #[cfg_attr(coverage_nightly, coverage(off))] mod tests { diff --git a/consensus/src/proof_abstractions/tasm/program.rs b/consensus/src/proof_abstractions/tasm/program.rs index 3a7ba95..d47efc2 100644 --- a/consensus/src/proof_abstractions/tasm/program.rs +++ b/consensus/src/proof_abstractions/tasm/program.rs @@ -7,7 +7,7 @@ use tasm_lib::triton_vm::error::InstructionError; use tasm_lib::triton_vm::error::ProvingError; use tasm_lib::triton_vm::prelude::*; -use crate::transaction::validity::neptune_proof::Proof; +use crate::transaction::validity::nyks_proof::NyksProof; #[derive(Debug, Clone)] pub enum TritonError { @@ -51,7 +51,11 @@ where // The entire trait is only `pub` to facilitate benchmarks; it is not part of // the public API. The suppressed lints below are not nice, but I don't know // how else to make it work. - fn prove(&self, claim: Claim, nondeterminism: NonDeterminism) -> Result { + fn prove( + &self, + claim: Claim, + nondeterminism: NonDeterminism, + ) -> Result { triton_vm::prove(Stark::default(), &claim, self.program(), nondeterminism) .map(|proof| proof.into()) } diff --git a/consensus/src/proof_abstractions/verifier.rs b/consensus/src/proof_abstractions/verifier.rs index baa5bdf..eafe331 100644 --- a/consensus/src/proof_abstractions/verifier.rs +++ b/consensus/src/proof_abstractions/verifier.rs @@ -4,7 +4,7 @@ use tasm_lib::triton_vm::stark::Stark; use tokio::task; use crate::network::Network; -use crate::transaction::validity::neptune_proof::Proof; +use crate::transaction::validity::nyks_proof::NyksProof; /// This claims-cache contains claims that are simply defined to be true. /// @@ -47,7 +47,7 @@ static CLAIMS_CACHE_ENABLED: std::sync::LazyLock> = /// the verifier). When the test flag is set and the cache does not contain the /// claim and verification succeeds, the claim is added to the cache. The only /// other way to populate the cache is through method `cache_true_claim`. -pub async fn verify(claim: Claim, proof: Proof, network: Network) -> bool { +pub async fn verify(claim: Claim, proof: NyksProof, network: Network) -> bool { // security: we do not accept mock proofs unless we ourselves // are running a network that accepts mock-proofs, eg regtest. if network.use_mock_proof() { diff --git a/consensus/src/transaction/lock_script.rs b/consensus/src/transaction/lock_script.rs index 544c692..fb31b19 100644 --- a/consensus/src/transaction/lock_script.rs +++ b/consensus/src/transaction/lock_script.rs @@ -12,8 +12,9 @@ use tasm_lib::twenty_first::math::b_field_element::BFieldElement; use tasm_lib::twenty_first::math::bfield_codec::BFieldCodec; use tasm_lib::twenty_first::tip5::digest::Digest; +use crate::transaction::validity::nyks_proof::NyksProof; + use super::utxo::Utxo; -use crate::transaction::Proof; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, GetSize, BFieldCodec)] pub struct LockScript { @@ -165,7 +166,7 @@ impl LockScriptAndWitness { } /// Assuming the lock script halts gracefully, prove it. - pub fn prove(&self, public_input: PublicInput) -> Result { + pub fn prove(&self, public_input: PublicInput) -> Result { let claim = Claim::new(self.program.hash()).with_input(public_input.individual_tokens); triton_vm::prove( Stark::default(), diff --git a/consensus/src/transaction/mod.rs b/consensus/src/transaction/mod.rs index f2b60f4..fa0b0f0 100644 --- a/consensus/src/transaction/mod.rs +++ b/consensus/src/transaction/mod.rs @@ -30,7 +30,6 @@ use self::transaction_kernel::TransactionKernel; use self::transaction_kernel::TransactionKernelProxy; use super::consensus_rule_set::ConsensusRuleSet; use crate::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; -use crate::transaction::validity::neptune_proof::Proof; use crate::triton_vm::proof::Claim; #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, GetSize)] diff --git a/consensus/src/transaction/transaction_proof.rs b/consensus/src/transaction/transaction_proof.rs index ee1684d..1ab5025 100644 --- a/consensus/src/transaction/transaction_proof.rs +++ b/consensus/src/transaction/transaction_proof.rs @@ -10,7 +10,7 @@ use crate::network::Network; use crate::proof_abstractions::verifier::verify; use crate::transaction::BFieldCodec; use crate::transaction::ProofCollection; -use crate::transaction::validity::neptune_proof::NeptuneProof; +use crate::transaction::validity::nyks_proof::NyksProof; use crate::transaction::validity::single_proof::single_proof_claim; /// Enumerates the kind of transaction proof that can be shared without the risk @@ -70,7 +70,7 @@ impl TransactionProofType { #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, GetSize, BFieldCodec)] pub enum TransactionProof { /// a strong proof. required for confirming a transaction into a block. - SingleProof(NeptuneProof), + SingleProof(NyksProof), /// a weak proof that does not expose secrets. can be shared with peers, but cannot be confirmed into a block. ProofCollection(ProofCollection), } @@ -89,7 +89,7 @@ impl TransactionProof { /// # Panics /// /// - If the proof type is any other than [TransactionProof::SingleProof]. - pub fn into_single_proof(self) -> NeptuneProof { + pub fn into_single_proof(self) -> NyksProof { match self { TransactionProof::SingleProof(proof) => proof, TransactionProof::ProofCollection(_) => { @@ -100,7 +100,7 @@ impl TransactionProof { /// Convert a transaction proof into a Triton VM proof, if the transaction /// is single proof backed. Otherwise returns `None`. - pub fn as_single_proof(&self) -> Option { + pub fn as_single_proof(&self) -> Option { match self { TransactionProof::ProofCollection(_) => None, TransactionProof::SingleProof(neptune_proof) => Some(neptune_proof.to_owned()), diff --git a/consensus/src/transaction/validity/mod.rs b/consensus/src/transaction/validity/mod.rs index b20e68c..613ff64 100644 --- a/consensus/src/transaction/validity/mod.rs +++ b/consensus/src/transaction/validity/mod.rs @@ -1,7 +1,7 @@ pub mod collect_lock_scripts; pub mod collect_type_scripts; pub mod kernel_to_outputs; -pub mod neptune_proof; +pub mod nyks_proof; pub mod proof_collection; pub mod removal_records_integrity; pub mod single_proof; diff --git a/consensus/src/transaction/validity/neptune_proof.rs b/consensus/src/transaction/validity/nyks_proof.rs similarity index 90% rename from consensus/src/transaction/validity/neptune_proof.rs rename to consensus/src/transaction/validity/nyks_proof.rs index fb31b87..f23afac 100644 --- a/consensus/src/transaction/validity/neptune_proof.rs +++ b/consensus/src/transaction/validity/nyks_proof.rs @@ -38,11 +38,11 @@ enum MockProofBehavior { /// 2. valid-mock. a mock proof that passes validation (if mock proofs are allowed) /// 3. invalid-mock. a mock proof that fails validation (if mock proofs are allowed, or not) #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, GetSize)] -pub struct NeptuneProof { +pub struct NyksProof { proof: VmProof, } -impl BFieldCodec for NeptuneProof { +impl BFieldCodec for NyksProof { type Error = ::Error; fn decode(sequence: &[BFieldElement]) -> Result, Self::Error> { @@ -60,7 +60,7 @@ impl BFieldCodec for NeptuneProof { } } -impl TasmObject for NeptuneProof { +impl TasmObject for NyksProof { fn label_friendly_name() -> String { VmProof::label_friendly_name() } @@ -80,7 +80,7 @@ impl TasmObject for NeptuneProof { } } -impl Deref for NeptuneProof { +impl Deref for NyksProof { type Target = VmProof; fn deref(&self) -> &Self::Target { @@ -88,31 +88,31 @@ impl Deref for NeptuneProof { } } -impl DerefMut for NeptuneProof { +impl DerefMut for NyksProof { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.proof } } -impl From for VmProof { - fn from(mp: NeptuneProof) -> VmProof { +impl From for VmProof { + fn from(mp: NyksProof) -> VmProof { mp.proof } } -impl From> for NeptuneProof { +impl From> for NyksProof { fn from(v: Vec) -> Self { Self { proof: VmProof(v) } } } -impl From for NeptuneProof { +impl From for NyksProof { fn from(proof: VmProof) -> Self { Self { proof } } } -impl NeptuneProof { +impl NyksProof { /// creates an invalid standard proof (not a mock proof) pub fn invalid() -> Self { Self { @@ -185,8 +185,3 @@ impl NeptuneProof { } } } - -// Proof is aliased to NeptuneProof this is done to avoid lots of diffs -// wherever Proof is used. we can remove this alias if/when code is updated to -// use NeptuneProof directly -pub type Proof = NeptuneProof; diff --git a/consensus/src/transaction/validity/proof_collection.rs b/consensus/src/transaction/validity/proof_collection.rs index 020201c..a33780b 100644 --- a/consensus/src/transaction/validity/proof_collection.rs +++ b/consensus/src/transaction/validity/proof_collection.rs @@ -17,16 +17,16 @@ use crate::transaction::BFieldCodec; use crate::transaction::validity::collect_lock_scripts::CollectLockScripts; use crate::transaction::validity::collect_type_scripts::CollectTypeScripts; use crate::transaction::validity::kernel_to_outputs::KernelToOutputs; -use crate::transaction::validity::neptune_proof::Proof; +use crate::transaction::validity::nyks_proof::NyksProof; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, GetSize, BFieldCodec, TasmObject)] pub struct ProofCollection { - pub removal_records_integrity: Proof, - pub collect_lock_scripts: Proof, - pub lock_scripts_halt: Vec, - pub kernel_to_outputs: Proof, - pub collect_type_scripts: Proof, - pub type_scripts_halt: Vec, + pub removal_records_integrity: NyksProof, + pub collect_lock_scripts: NyksProof, + pub lock_scripts_halt: Vec, + pub kernel_to_outputs: NyksProof, + pub collect_type_scripts: NyksProof, + pub type_scripts_halt: Vec, pub lock_script_hashes: Vec, pub type_script_hashes: Vec, pub kernel_mast_hash: Digest, diff --git a/consensus/src/transaction/validity/single_proof.rs b/consensus/src/transaction/validity/single_proof.rs index 70f0bef..9c916e8 100644 --- a/consensus/src/transaction/validity/single_proof.rs +++ b/consensus/src/transaction/validity/single_proof.rs @@ -1,9 +1,6 @@ use std::collections::HashMap; use std::sync::OnceLock; -use crate::consensus_rule_set::ConsensusRuleSet; -use crate::transaction::validity::neptune_proof::Proof; -use crate::triton_vm::prelude::*; use itertools::Itertools; use tasm_lib::field; use tasm_lib::memory::FIRST_NON_DETERMINISTICALLY_INITIALIZED_MEMORY_ADDRESS; @@ -16,12 +13,14 @@ use tasm_lib::twenty_first::error::BFieldCodecError; use tasm_lib::verifier::stark_verify::StarkVerify; use crate::BFieldElement; +use crate::consensus_rule_set::ConsensusRuleSet; use crate::proof_abstractions::SecretWitness; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; use crate::transaction::Claim; use crate::transaction::transaction_kernel::TransactionKernel; use crate::transaction::transaction_kernel::TransactionKernelField; +use crate::transaction::validity::nyks_proof::NyksProof; use crate::transaction::validity::proof_collection::ProofCollection; use crate::transaction::validity::tasm::claims::generate_collect_lock_scripts_claim::GenerateCollectLockScriptsClaim; use crate::transaction::validity::tasm::claims::generate_collect_type_scripts_claim::GenerateCollectTypeScriptsClaim; @@ -31,6 +30,7 @@ use crate::transaction::validity::tasm::claims::generate_rri_claim::GenerateRriC use crate::transaction::validity::tasm::claims::generate_type_script_claim_template::GenerateTypeScriptClaimTemplate; use crate::transaction::validity::tasm::single_proof::merge_branch::MergeBranch; use crate::transaction::validity::tasm::single_proof::update_branch::UpdateBranch; +use crate::triton_vm::prelude::*; use super::tasm::single_proof::merge_branch::MergeWitness; use super::tasm::single_proof::update_branch::UpdateWitness; @@ -230,12 +230,12 @@ pub fn single_proof_claim(tx_kernel_mast_hash: Digest, _: ConsensusRuleSet) -> C SingleProof::claim(tx_kernel_mast_hash) } -pub fn produce_single_proof_mock(valid_mock: bool) -> Proof { +pub fn produce_single_proof_mock(valid_mock: bool) -> NyksProof { let claim = Claim::new(Digest::default()); if valid_mock { - Proof::valid_mock(claim) + NyksProof::valid_mock(claim) } else { - Proof::invalid_mock(claim) + NyksProof::invalid_mock(claim) } } diff --git a/consensus/src/transaction/validity/tasm/single_proof/merge_branch.rs b/consensus/src/transaction/validity/tasm/single_proof/merge_branch.rs index 80c9d21..1b1625c 100644 --- a/consensus/src/transaction/validity/tasm/single_proof/merge_branch.rs +++ b/consensus/src/transaction/validity/tasm/single_proof/merge_branch.rs @@ -38,13 +38,13 @@ use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; use crate::proof_abstractions::timestamp::Timestamp; use crate::transaction::BFieldCodec; -use crate::transaction::Proof; use crate::transaction::Transaction; use crate::transaction::TransactionKernel; use crate::transaction::TransactionKernelProxy; use crate::transaction::TransactionProof; use crate::transaction::transaction_kernel::TransactionKernelField; use crate::transaction::transaction_kernel::TransactionKernelModifier; +use crate::transaction::validity::nyks_proof::NyksProof; use crate::transaction::validity::single_proof::DISCRIMINANT_FOR_MERGE; use crate::transaction::validity::single_proof::SingleProof; use crate::transaction::validity::single_proof::SingleProofWitness; @@ -65,8 +65,8 @@ pub struct MergeWitness { // This field, exceptionally, *CAN* contain packed `RemovalRecord`s. pub new_kernel: TransactionKernel, - pub left_proof: Proof, - pub right_proof: Proof, + pub left_proof: NyksProof, + pub right_proof: NyksProof, } impl MergeWitness { diff --git a/consensus/src/transaction/validity/tasm/single_proof/update_branch.rs b/consensus/src/transaction/validity/tasm/single_proof/update_branch.rs index 560d0ae..06a03dd 100644 --- a/consensus/src/transaction/validity/tasm/single_proof/update_branch.rs +++ b/consensus/src/transaction/validity/tasm/single_proof/update_branch.rs @@ -19,9 +19,9 @@ use tasm_lib::verifier::stark_verify::StarkVerify; use crate::mutator_set::mutator_set_accumulator::MutatorSetAccumulator; use crate::proof_abstractions::mast_hash::MastHash; use crate::transaction::BFieldCodec; -use crate::transaction::Proof; use crate::transaction::TransactionKernel; use crate::transaction::transaction_kernel::TransactionKernelField; +use crate::transaction::validity::nyks_proof::NyksProof; use crate::transaction::validity::single_proof::DISCRIMINANT_FOR_UPDATE; use crate::transaction::validity::tasm::authenticate_txk_field::AuthenticateTxkField; use crate::transaction::validity::tasm::claims::generate_single_proof_claim::GenerateSingleProofClaim; @@ -39,7 +39,7 @@ pub struct UpdateWitness { pub new_kernel: TransactionKernel, pub old_kernel_mast_hash: Digest, pub new_kernel_mast_hash: Digest, - pub old_proof: Proof, + pub old_proof: NyksProof, pub new_swbfi_bagged: Digest, pub new_aocl: MmrAccumulator, pub new_swbfa_hash: Digest, @@ -54,7 +54,7 @@ pub struct UpdateWitness { impl UpdateWitness { pub fn from_old_transaction( old_kernel: TransactionKernel, - old_proof: Proof, + old_proof: NyksProof, old_msa: MutatorSetAccumulator, new_kernel: TransactionKernel, new_msa: MutatorSetAccumulator, diff --git a/consensus/src/type_scripts/mod.rs b/consensus/src/type_scripts/mod.rs index 4db6717..add3d52 100644 --- a/consensus/src/type_scripts/mod.rs +++ b/consensus/src/type_scripts/mod.rs @@ -21,7 +21,7 @@ use super::transaction::utxo::Coin; use crate::proof_abstractions::mast_hash::MastHash; use crate::proof_abstractions::tasm::program::TritonProgram; use crate::transaction::salted_utxos::SaltedUtxos; -use crate::transaction::validity::neptune_proof::Proof; +use crate::transaction::validity::nyks_proof::NyksProof; pub trait TypeScript: TritonProgram { type State: BFieldCodec; @@ -101,7 +101,7 @@ impl TypeScriptAndWitness { txk_mast_hash: Digest, salted_inputs_hash: Digest, salted_outputs_hash: Digest, - ) -> Result { + ) -> Result { let input: Vec<_> = [txk_mast_hash, salted_inputs_hash, salted_outputs_hash] .into_iter() .flat_map(|d| d.reversed().values()) diff --git a/node/src/state/mempool/merge_input_cache.rs b/node/src/state/mempool/merge_input_cache.rs index dee133a..f513f47 100644 --- a/node/src/state/mempool/merge_input_cache.rs +++ b/node/src/state/mempool/merge_input_cache.rs @@ -6,7 +6,7 @@ use get_size2::GetSize; use crate::state::TransactionKernel; use nyks_consensus::transaction::transaction_kernel_id::TransactionKernelId; -use nyks_consensus::transaction::validity::neptune_proof::NeptuneProof; +use nyks_consensus::transaction::validity::nyks_proof::NyksProof; /// A transaction that was input to a merge of two transactions. In other words: /// either a or b in the operation merge(a, b) -> c, where a, b, and c are all @@ -14,7 +14,7 @@ use nyks_consensus::transaction::validity::neptune_proof::NeptuneProof; #[derive(Debug, Clone, GetSize)] pub(super) struct MergeInputCacheElement { pub(super) tx_kernel: TransactionKernel, - pub(super) single_proof: NeptuneProof, + pub(super) single_proof: NyksProof, } /// The mempools cache of transactions that conflict with transactions in the @@ -72,7 +72,7 @@ impl MergeInputCache { }) } - pub(super) fn insert(&mut self, tx_kernel: TransactionKernel, single_proof: NeptuneProof) { + pub(super) fn insert(&mut self, tx_kernel: TransactionKernel, single_proof: NyksProof) { let txid = tx_kernel.txid(); let cache_element = MergeInputCacheElement { tx_kernel, diff --git a/p2p/src/peer/transfer_block.rs b/p2p/src/peer/transfer_block.rs index 3469630..2e9ec57 100644 --- a/p2p/src/peer/transfer_block.rs +++ b/p2p/src/peer/transfer_block.rs @@ -7,7 +7,7 @@ use nyks_consensus::block::block_appendix::BlockAppendix; use nyks_consensus::block::block_body::BlockBody; use nyks_consensus::block::block_header::BlockHeader; use nyks_consensus::block::block_height::BlockHeight; -use nyks_consensus::transaction::validity::neptune_proof::Proof; +use nyks_consensus::transaction::validity::nyks_proof::NyksProof; use serde::Deserialize; use serde::Serialize; @@ -18,7 +18,7 @@ pub struct TransferBlock { pub header: BlockHeader, pub body: BlockBody, pub appendix: BlockAppendix, - pub proof: Proof, + pub proof: NyksProof, } impl TryFrom for Block { diff --git a/p2p/src/peer/transfer_transaction.rs b/p2p/src/peer/transfer_transaction.rs index c9799f6..7567b46 100644 --- a/p2p/src/peer/transfer_transaction.rs +++ b/p2p/src/peer/transfer_transaction.rs @@ -2,7 +2,7 @@ use nyks_consensus::transaction::Transaction; use nyks_consensus::transaction::TransactionProof; use nyks_consensus::transaction::transaction_kernel::TransactionKernel; use nyks_consensus::transaction::transaction_proof::TransactionProofQuality; -use nyks_consensus::transaction::validity::neptune_proof::Proof; +use nyks_consensus::transaction::validity::nyks_proof::NyksProof; use nyks_consensus::transaction::validity::proof_collection::ProofCollection; use serde::Deserialize; use serde::Serialize; @@ -16,7 +16,7 @@ use serde::Serialize; pub enum TransferTransactionProof { //OnlyLockScripts(OnlyLockScriptWitness) TODO: Add when Transaction supports ProofCollection(Box), - SingleProof(Proof), + SingleProof(NyksProof), } /// For transferring proved transactions between peers. diff --git a/prover/src/lib.rs b/prover/src/lib.rs index 63ae94c..c35c9ec 100644 --- a/prover/src/lib.rs +++ b/prover/src/lib.rs @@ -8,7 +8,7 @@ use std::path::PathBuf; use std::process::Stdio; -use nyks_consensus::transaction::validity::neptune_proof::Proof; +use nyks_consensus::transaction::validity::nyks_proof::NyksProof; use nyks_consensus::triton_vm::error::InstructionError; use nyks_consensus::triton_vm::prelude::Program; use nyks_consensus::triton_vm::proof::Claim; @@ -84,7 +84,7 @@ pub enum VmProcessError { #[derive(Debug)] pub enum ProverProcessCompletion { - Finished(Proof), + Finished(NyksProof), Cancelled, } @@ -222,7 +222,7 @@ impl ProverJob { let output = result?; match output.status.code() { Some(0) => { - let proof: Proof = bincode::deserialize(&output.stdout)?; + let proof: NyksProof = bincode::deserialize(&output.stdout)?; tracing::debug!( "Generated proof, with padded height: {}", proof.padded_height() diff --git a/rpc/core/src/model/wallet/transaction.rs b/rpc/core/src/model/wallet/transaction.rs index 3f0c8c0..c334a11 100644 --- a/rpc/core/src/model/wallet/transaction.rs +++ b/rpc/core/src/model/wallet/transaction.rs @@ -8,20 +8,20 @@ use nyks_consensus::transaction::Transaction; use nyks_consensus::transaction::TransactionProof; use nyks_consensus::transaction::utxo::Coin; use nyks_consensus::transaction::utxo::Utxo; -use nyks_consensus::transaction::validity::neptune_proof::NeptuneProof; +use nyks_consensus::transaction::validity::nyks_proof::NyksProof; use nyks_consensus::transaction::validity::proof_collection::ProofCollection; #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] -pub struct RpcNeptuneProof(RpcBFieldElements); +pub struct RpcNyksProof(RpcBFieldElements); -impl From for RpcNeptuneProof { - fn from(proof: NeptuneProof) -> Self { +impl From for RpcNyksProof { + fn from(proof: NyksProof) -> Self { Self(proof.0.clone().into()) } } -impl From for NeptuneProof { - fn from(proof: RpcNeptuneProof) -> NeptuneProof { +impl From for NyksProof { + fn from(proof: RpcNyksProof) -> NyksProof { proof.0.0.into() } } @@ -29,12 +29,12 @@ impl From for NeptuneProof { #[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)] #[serde(rename_all = "camelCase")] pub struct RpcProofCollection { - pub removal_records_integrity: RpcNeptuneProof, - pub collect_lock_scripts: RpcNeptuneProof, - pub lock_scripts_halt: Vec, - pub kernel_to_outputs: RpcNeptuneProof, - pub collect_type_scripts: RpcNeptuneProof, - pub type_scripts_halt: Vec, + pub removal_records_integrity: RpcNyksProof, + pub collect_lock_scripts: RpcNyksProof, + pub lock_scripts_halt: Vec, + pub kernel_to_outputs: RpcNyksProof, + pub collect_type_scripts: RpcNyksProof, + pub type_scripts_halt: Vec, pub lock_script_hashes: Vec, pub type_script_hashes: Vec, pub kernel_mast_hash: Digest, @@ -85,7 +85,7 @@ impl From for RpcProofCollection { #[serde(untagged)] pub enum RpcTransactionProof { ProofCollection(Box), - SingleProof(RpcNeptuneProof), + SingleProof(RpcNyksProof), } impl From for TransactionProof { diff --git a/upgrader/src/core/prover.rs b/upgrader/src/core/prover.rs index 98b79ac..a54cdd2 100644 --- a/upgrader/src/core/prover.rs +++ b/upgrader/src/core/prover.rs @@ -1,6 +1,6 @@ use nyks_consensus::proof_abstractions::SecretWitness; use nyks_consensus::proof_abstractions::tasm::program::TritonProgram; -use nyks_consensus::transaction::validity::neptune_proof::Proof; +use nyks_consensus::transaction::validity::nyks_proof::NyksProof; use nyks_consensus::transaction::validity::single_proof::SingleProof; use nyks_consensus::transaction::validity::single_proof::SingleProofWitness; use nyks_prover::JobCancelReceiver; @@ -22,7 +22,7 @@ pub fn init_prover_settings(settings: ProverJobSettings) { pub async fn prove_sp_program( witness: SingleProofWitness, cancel_rx: JobCancelReceiver, -) -> Option { +) -> Option { let settings = PROVER_SETTINGS .get() .expect("prover settings not initialised - call init_prover_settings() first"); diff --git a/upgrader/src/upgrader/pipeline/updater.rs b/upgrader/src/upgrader/pipeline/updater.rs index d534cb4..9a226fc 100644 --- a/upgrader/src/upgrader/pipeline/updater.rs +++ b/upgrader/src/upgrader/pipeline/updater.rs @@ -5,7 +5,7 @@ use itertools::Itertools; use nyks_consensus::block::Block; use nyks_consensus::transaction::transaction_kernel::TransactionKernel; use nyks_consensus::transaction::transaction_kernel::TransactionKernelModifier; -use nyks_consensus::transaction::validity::neptune_proof::Proof; +use nyks_consensus::transaction::validity::nyks_proof::NyksProof; use nyks_consensus::transaction::validity::single_proof::SingleProofWitness; use nyks_consensus::transaction::validity::tasm::single_proof::update_branch::UpdateWitness; use nyks_consensus::twenty_first::util_types::mmr::mmr_successor_proof::MmrSuccessorProof; @@ -99,7 +99,7 @@ impl Updater { }; let old_kernel: TransactionKernel = transaction.kernel.into(); - let old_proof: Proof = proof.into(); + let old_proof: NyksProof = proof.into(); // Not tracked in active_task/the queue, so there's no way to cancel // this externally; keep the sender alive for the duration of the call. @@ -119,7 +119,7 @@ impl Updater { info!("Starting updating mutator set of {}...", id); // 1. Snapshot the old transaction - let (old_kernel, old_proof): (TransactionKernel, Proof) = { + let (old_kernel, old_proof): (TransactionKernel, NyksProof) = { let mut transactions = self.transactions.write().await; let transaction = transactions.remove(&id)?; @@ -151,9 +151,9 @@ impl Updater { async fn update_kernel_and_proof( &self, old_kernel: TransactionKernel, - old_proof: Proof, + old_proof: NyksProof, cancel_rx: watch::Receiver<()>, - ) -> Option<(TransactionKernel, Proof)> { + ) -> Option<(TransactionKernel, NyksProof)> { // Walk from tip backwards to find the block whose MSA matches the old kernel let tip_block: Block = self.client.tip().await.unwrap().block.into(); diff --git a/wallet/core/src/transaction/mod.rs b/wallet/core/src/transaction/mod.rs index 342f9f3..b265c80 100644 --- a/wallet/core/src/transaction/mod.rs +++ b/wallet/core/src/transaction/mod.rs @@ -1,7 +1,7 @@ use nyks_consensus::transaction::Transaction; use nyks_consensus::transaction::TransactionProof; use nyks_consensus::transaction::transaction_kernel::TransactionKernel; -use nyks_consensus::transaction::validity::neptune_proof::NeptuneProof; +use nyks_consensus::transaction::validity::nyks_proof::NyksProof; use nyks_consensus::transaction::validity::proof_collection::ProofCollection; use thiserror::Error; @@ -17,7 +17,7 @@ pub mod utxo; #[derive(Clone, Debug, PartialEq, Eq)] pub enum BuilderTransactionProof { /// A strong proof. required for confirming a transaction into a block. - SingleProof(NeptuneProof), + SingleProof(NyksProof), /// A weak proof that does not expose secrets. can be shared with peers, but cannot be confirmed into a block. ProofCollection(ProofCollection), /// A primitive-witness. exposes secrets (keys). this is not an actual proof and cannot be shared. From 2cf33006db3fc9f11d7c56e42ebdb5ac6ffb58fc Mon Sep 17 00:00:00 2001 From: KaffinPX Date: Thu, 30 Jul 2026 05:04:02 +0300 Subject: [PATCH 3/6] test(consensus): Test program snapshots of consensus type scripts --- .../src/proof_abstractions/tasm/program.rs | 53 +++++++++++++++++++ consensus/src/type_scripts/native_currency.rs | 11 ++++ consensus/src/type_scripts/time_lock.rs | 11 ++++ 3 files changed, 75 insertions(+) diff --git a/consensus/src/proof_abstractions/tasm/program.rs b/consensus/src/proof_abstractions/tasm/program.rs index d47efc2..0905300 100644 --- a/consensus/src/proof_abstractions/tasm/program.rs +++ b/consensus/src/proof_abstractions/tasm/program.rs @@ -60,3 +60,56 @@ where .map(|proof| proof.into()) } } + +#[cfg(test)] +pub mod tests { + /// Test for regressions in a Triton program. + /// + /// As Triton programs are refactored to improve readability, it is + /// important to ensure that the program does not actually change. If such a + /// change affects a *consensus program* then BOOM! hard fork. + /// + /// This test checks the program's hash against a hardcoded value. If the + /// program changes and that hardcoded value is not updated in lockstep, the + /// test will fail. + /// + /// Example usage: + /// + /// ``` + /// use crate::models::proof_abstractions::tasm::program::test_program_snapshot; + /// + /// struct MyProgram; + /// + /// impl TritonProgram for MyProgram { + /// fn library_and_code() -> (Library, Vec) { + /// /// ... + /// (Library::new(), vec![]) + /// } + /// } + /// + /// #[cfg(test)] + /// mod test { + /// use super::*; + /// + /// test_program_snapshot!( + /// MyProgram, + /// // snapshot taken from master on 2025-02-11 at 12:00 [commit id] + /// "c0f8cbc73a844ab6c3586d8891e29b677a3aa08f25f9aec0f854a72bf2e2f84c2a48c9dd1bbe0a66" + /// ); + /// } + /// ``` + macro_rules! test_program_snapshot { + ($consensus_program:expr, $hash_hex:literal $(,)?) => { + #[test] + fn program_hash_has_not_changed() { + let old_hash = $hash_hex.to_string(); + let new_hash = $consensus_program.program().hash().to_hex(); + println!("old hash: {old_hash}"); + println!("new hash: {new_hash}"); + assert_eq!(old_hash, new_hash); + } + }; + } + + pub(crate) use test_program_snapshot; +} \ No newline at end of file diff --git a/consensus/src/type_scripts/native_currency.rs b/consensus/src/type_scripts/native_currency.rs index ef56647..583440a 100644 --- a/consensus/src/type_scripts/native_currency.rs +++ b/consensus/src/type_scripts/native_currency.rs @@ -728,3 +728,14 @@ impl SecretWitness for NativeCurrencyWitness { .with_ram(memory) } } + +#[cfg(test)] +pub mod tests { + use super::*; + use crate::proof_abstractions::tasm::program::tests::test_program_snapshot; + + test_program_snapshot!( + NativeCurrency, + "76e11a0def69ae7761379955f776dc096a0858edd67b98049115da7e882951e2c11127bd85b10c20" + ); +} \ No newline at end of file diff --git a/consensus/src/type_scripts/time_lock.rs b/consensus/src/type_scripts/time_lock.rs index cab371e..e99ed20 100644 --- a/consensus/src/type_scripts/time_lock.rs +++ b/consensus/src/type_scripts/time_lock.rs @@ -662,3 +662,14 @@ impl TypeScriptWitness for TimeLockWitness { } } } + +#[cfg(test)] +pub mod tests { + use super::*; + use crate::proof_abstractions::tasm::program::tests::test_program_snapshot; + + test_program_snapshot!( + TimeLock, + "4b4d251947a07f9f2c016c1c271c04ce41013ff50031bd42854919be6e0e4849ebf931e856b542ad" + ); +} \ No newline at end of file From a9c3c7ca89d28d2a682f5f19efdb3faf99e31c2a Mon Sep 17 00:00:00 2001 From: KaffinPX Date: Thu, 30 Jul 2026 20:26:18 +0300 Subject: [PATCH 4/6] feat(consensus): Simplify pow verify --- consensus/src/block/mod.rs | 23 +++++++++---------- consensus/src/block/pow.rs | 8 ++----- .../src/proof_abstractions/tasm/program.rs | 2 +- consensus/src/type_scripts/native_currency.rs | 2 +- consensus/src/type_scripts/time_lock.rs | 2 +- 5 files changed, 16 insertions(+), 21 deletions(-) diff --git a/consensus/src/block/mod.rs b/consensus/src/block/mod.rs index e6fd151..6c86b89 100644 --- a/consensus/src/block/mod.rs +++ b/consensus/src/block/mod.rs @@ -731,14 +731,18 @@ impl Block { return true; } - let threshold = self.header().difficulty.target(); - if network.allows_mock_pow() && self.is_valid_mock_pow(threshold) { + // Reject values that the difficulty control mechanism can never + // produce, rather than dividing by zero. + if self.header().difficulty < Difficulty::MINIMUM { + return false; + } + + let target = self.header().difficulty.target(); + if network.allows_mock_pow() && self.is_valid_mock_pow(target) { return true; } - let consensus_rule_set = - ConsensusRuleSet::infer_from(network, previous_block_header.height.next()); - self.pow_verify(threshold, consensus_rule_set) + self.pow_verify(target) } /// Produce the MAST authentication paths for the `pow` field on @@ -783,16 +787,11 @@ impl Block { } /// Verify that block digest is less than threshold and integral. - pub fn pow_verify(&self, target: Digest, consensus_rule_set: ConsensusRuleSet) -> bool { + pub fn pow_verify(&self, target: Digest) -> bool { let auth_paths = self.pow_mast_paths(); self.header() .pow - .validate( - auth_paths, - target, - consensus_rule_set, - self.header().prev_block_digest, - ) + .validate(auth_paths, target, self.header().prev_block_digest) .is_ok() } diff --git a/consensus/src/block/pow.rs b/consensus/src/block/pow.rs index b68cb24..f17331d 100644 --- a/consensus/src/block/pow.rs +++ b/consensus/src/block/pow.rs @@ -444,12 +444,8 @@ impl Pow { self, auth_paths: PowMastPaths, target: Digest, - consensus_rule_set: ConsensusRuleSet, parent_digest: Digest, ) -> Result<(), PowValidationError> { - let leaf_prefix = match consensus_rule_set { - ConsensusRuleSet::Launch => parent_digest, - }; let index_picker_preimage = Tip5::hash_pair(self.root, auth_paths.commit()); let (index_a, index_b) = Self::indices(index_picker_preimage, self.nonce); @@ -463,8 +459,8 @@ impl Pow { Self::MERKLE_TREE_HEIGHT as u32, )); ( - Self::leaf(leaf_prefix, index_a), - Self::leaf(leaf_prefix, index_b), + Self::leaf(parent_digest, index_a), + Self::leaf(parent_digest, index_b), ) }; diff --git a/consensus/src/proof_abstractions/tasm/program.rs b/consensus/src/proof_abstractions/tasm/program.rs index 0905300..e672abc 100644 --- a/consensus/src/proof_abstractions/tasm/program.rs +++ b/consensus/src/proof_abstractions/tasm/program.rs @@ -112,4 +112,4 @@ pub mod tests { } pub(crate) use test_program_snapshot; -} \ No newline at end of file +} diff --git a/consensus/src/type_scripts/native_currency.rs b/consensus/src/type_scripts/native_currency.rs index 583440a..350bc74 100644 --- a/consensus/src/type_scripts/native_currency.rs +++ b/consensus/src/type_scripts/native_currency.rs @@ -738,4 +738,4 @@ pub mod tests { NativeCurrency, "76e11a0def69ae7761379955f776dc096a0858edd67b98049115da7e882951e2c11127bd85b10c20" ); -} \ No newline at end of file +} diff --git a/consensus/src/type_scripts/time_lock.rs b/consensus/src/type_scripts/time_lock.rs index e99ed20..ea8b4f1 100644 --- a/consensus/src/type_scripts/time_lock.rs +++ b/consensus/src/type_scripts/time_lock.rs @@ -672,4 +672,4 @@ pub mod tests { TimeLock, "4b4d251947a07f9f2c016c1c271c04ce41013ff50031bd42854919be6e0e4849ebf931e856b542ad" ); -} \ No newline at end of file +} From e29ec0ed2543bc5529e43a8dead34fecd4d296aa Mon Sep 17 00:00:00 2001 From: KaffinPX Date: Thu, 30 Jul 2026 21:38:07 +0300 Subject: [PATCH 5/6] feat(consensus): Stricter proof item length check --- consensus/src/proof_abstractions/verifier.rs | 56 ++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/consensus/src/proof_abstractions/verifier.rs b/consensus/src/proof_abstractions/verifier.rs index eafe331..958f41c 100644 --- a/consensus/src/proof_abstractions/verifier.rs +++ b/consensus/src/proof_abstractions/verifier.rs @@ -1,7 +1,10 @@ use tasm_lib::triton_vm; use tasm_lib::triton_vm::proof::Claim; +use tasm_lib::triton_vm::proof::Proof as VmProof; +use tasm_lib::triton_vm::proof_stream::ProofStream; use tasm_lib::triton_vm::stark::Stark; use tokio::task; +use tracing::debug; use crate::network::Network; use crate::transaction::validity::nyks_proof::NyksProof; @@ -40,6 +43,54 @@ static CLAIMS_CACHE: std::sync::LazyLock> = std::sync::LazyLock::new(|| tokio::sync::Mutex::new(true)); +/// The number of proof items that Triton VM's verifier reads from a proof of +/// the padded height indicated by the proof. +/// +/// Returns `None` if the proof does not encode a padded height, or if no FRI +/// parameters exist for that padded height. +fn expected_num_proof_items(stark: Stark, proof: &VmProof) -> Option { + /// Items read outside of FRI: the padded height, three Merkle roots, four + /// out-of-domain rows, the out-of-domain quotient segments, and, for each of + /// the three tables, the revealed rows plus their authentication structure. + const NUM_ITEMS_OUTSIDE_FRI: usize = 15; + + /// Items read by FRI independently of the number of rounds: the Merkle root + /// of the first round, the last round's codeword and polynomial, and the + /// first round's revealed leafs. + const NUM_ROUND_INDEPENDENT_FRI_ITEMS: usize = 4; + + /// Items read by FRI for every round: a Merkle root, and the revealed leafs + /// of the round's partial codeword. + const NUM_FRI_ITEMS_PER_ROUND: usize = 2; + + let padded_height = proof.padded_height().ok()?; + let num_fri_rounds = stark.fri(padded_height).ok()?.num_rounds(); + + Some( + NUM_ITEMS_OUTSIDE_FRI + + NUM_ROUND_INDEPENDENT_FRI_ITEMS + + NUM_FRI_ITEMS_PER_ROUND * num_fri_rounds, + ) +} + +/// Determine whether the proof holds exactly those proof items that Triton VM's +/// verifier reads, and no others. +/// +/// Triton VM's native verifier ignores any items beyond the ones it reads, +/// whereas the verifier running *inside* the VM rejects them. A transaction +/// carrying such a proof would therefore be relayed by every node but could +/// never be merged into a block transaction. +fn has_expected_num_proof_items(proof: &VmProof) -> bool { + let Some(expected_num_items) = expected_num_proof_items(Stark::default(), proof) else { + return false; + }; + let Ok(proof_stream) = ProofStream::try_from(proof) else { + return false; + }; + + proof_stream.items.len() == expected_num_items +} + /// Verify a Triton VM (claim, proof) pair for default STARK parameters. /// /// When the test flag is set, this function checks whether the claim is present @@ -61,6 +112,11 @@ pub async fn verify(claim: Claim, proof: NyksProof, network: Network) -> bool { } } + if !has_expected_num_proof_items(&proof) { + debug!("Rejecting proof that holds an unexpected number of proof items!"); + return false; + } + #[cfg(test)] let claim_clone = claim.clone(); From ee384dea48fcd6a2ff88b50e7f2780e320a71577 Mon Sep 17 00:00:00 2001 From: KaffinPX Date: Thu, 30 Jul 2026 21:45:37 +0300 Subject: [PATCH 6/6] test(consensus): Test BlockProgram hash --- consensus/src/block/validity/block_program.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/consensus/src/block/validity/block_program.rs b/consensus/src/block/validity/block_program.rs index 4dafc90..40998d9 100644 --- a/consensus/src/block/validity/block_program.rs +++ b/consensus/src/block/validity/block_program.rs @@ -326,3 +326,14 @@ impl TritonProgram for BlockProgram { *HASH.get_or_init(|| self.program().hash()) } } + +#[cfg(test)] +pub mod tests { + use super::*; + use crate::proof_abstractions::tasm::program::tests::test_program_snapshot; + + test_program_snapshot!( + BlockProgram, + "2d3fe8ddca93ac8be7f92a53c541f6dbb971ab2817cbc1743c8b5a3b3c99b6caf0102385258a828d" + ); +}