From 541ec427bfccea1032450bd99e3e7220755ce531 Mon Sep 17 00:00:00 2001 From: Jacinta Ferrant Date: Fri, 3 Jan 2025 20:25:25 -0500 Subject: [PATCH 01/21] Fix clippy::needless_borrow throughout stackslib Signed-off-by: Jacinta Ferrant --- stackslib/src/burnchains/affirmation.rs | 4 +- stackslib/src/burnchains/bitcoin/address.rs | 2 +- stackslib/src/burnchains/bitcoin/bits.rs | 6 +- stackslib/src/burnchains/bitcoin/blocks.rs | 19 +- stackslib/src/burnchains/bitcoin/indexer.rs | 6 +- stackslib/src/burnchains/bitcoin/spv.rs | 4 +- stackslib/src/burnchains/burnchain.rs | 20 +- stackslib/src/burnchains/db.rs | 10 +- stackslib/src/burnchains/mod.rs | 2 +- stackslib/src/burnchains/tests/affirmation.rs | 4 +- stackslib/src/burnchains/tests/db.rs | 20 +- stackslib/src/burnchains/tests/mod.rs | 8 +- .../src/chainstate/burn/db/processing.rs | 6 +- stackslib/src/chainstate/burn/db/sortdb.rs | 160 ++++---- stackslib/src/chainstate/burn/distribution.rs | 2 +- .../burn/operations/leader_block_commit.rs | 2 +- stackslib/src/chainstate/coordinator/mod.rs | 151 +++---- stackslib/src/chainstate/coordinator/tests.rs | 12 +- .../chainstate/nakamoto/coordinator/mod.rs | 10 +- .../chainstate/nakamoto/coordinator/tests.rs | 10 +- stackslib/src/chainstate/nakamoto/miner.rs | 30 +- stackslib/src/chainstate/nakamoto/mod.rs | 30 +- stackslib/src/chainstate/nakamoto/shadow.rs | 8 +- .../src/chainstate/nakamoto/signer_set.rs | 10 +- .../src/chainstate/nakamoto/staging_blocks.rs | 12 +- stackslib/src/chainstate/nakamoto/tenure.rs | 2 +- .../src/chainstate/nakamoto/test_signers.rs | 2 +- .../src/chainstate/nakamoto/tests/mod.rs | 12 +- .../src/chainstate/nakamoto/tests/node.rs | 34 +- stackslib/src/chainstate/stacks/auth.rs | 2 +- stackslib/src/chainstate/stacks/block.rs | 21 +- .../chainstate/stacks/boot/contract_tests.rs | 6 +- stackslib/src/chainstate/stacks/boot/mod.rs | 144 +++---- .../src/chainstate/stacks/boot/pox_2_tests.rs | 50 +-- .../src/chainstate/stacks/boot/pox_3_tests.rs | 14 +- .../src/chainstate/stacks/boot/pox_4_tests.rs | 296 +++++++------- .../chainstate/stacks/boot/signers_tests.rs | 4 +- .../src/chainstate/stacks/db/accounts.rs | 4 +- stackslib/src/chainstate/stacks/db/blocks.rs | 387 +++++++++--------- stackslib/src/chainstate/stacks/db/headers.rs | 4 +- stackslib/src/chainstate/stacks/db/mod.rs | 16 +- .../src/chainstate/stacks/db/transactions.rs | 60 ++- .../src/chainstate/stacks/db/unconfirmed.rs | 24 +- stackslib/src/chainstate/stacks/index/marf.rs | 8 +- stackslib/src/chainstate/stacks/index/node.rs | 2 +- .../src/chainstate/stacks/index/proofs.rs | 11 +- .../src/chainstate/stacks/index/storage.rs | 44 +- .../src/chainstate/stacks/index/test/file.rs | 6 +- .../src/chainstate/stacks/index/test/marf.rs | 2 +- .../src/chainstate/stacks/index/test/mod.rs | 2 +- .../chainstate/stacks/index/test/storage.rs | 14 +- stackslib/src/chainstate/stacks/index/trie.rs | 4 +- stackslib/src/chainstate/stacks/miner.rs | 76 ++-- .../src/chainstate/stacks/tests/accounting.rs | 20 +- .../stacks/tests/block_construction.rs | 126 +++--- .../stacks/tests/chain_histories.rs | 64 +-- stackslib/src/chainstate/stacks/tests/mod.rs | 14 +- .../src/chainstate/stacks/transaction.rs | 10 +- stackslib/src/clarity_cli.rs | 47 +-- stackslib/src/clarity_vm/clarity.rs | 44 +- stackslib/src/clarity_vm/database/marf.rs | 2 +- stackslib/src/clarity_vm/tests/contracts.rs | 32 +- stackslib/src/clarity_vm/tests/forking.rs | 8 +- .../src/clarity_vm/tests/simple_tests.rs | 2 +- stackslib/src/cli.rs | 26 +- stackslib/src/core/mempool.rs | 40 +- stackslib/src/core/tests/mod.rs | 4 +- stackslib/src/cost_estimates/fee_medians.rs | 4 +- stackslib/src/cost_estimates/fee_scalar.rs | 4 +- stackslib/src/cost_estimates/pessimistic.rs | 4 +- .../cost_estimates/tests/cost_estimators.rs | 8 +- stackslib/src/main.rs | 29 +- .../src/net/api/getmicroblocks_indexed.rs | 2 +- .../src/net/api/getmicroblocks_unconfirmed.rs | 2 +- stackslib/src/net/api/getpoxinfo.rs | 4 +- stackslib/src/net/api/gettenure.rs | 2 +- .../src/net/api/gettransaction_unconfirmed.rs | 2 +- stackslib/src/net/api/mod.rs | 4 +- stackslib/src/net/api/postblock.rs | 2 +- stackslib/src/net/api/postblock_proposal.rs | 2 +- stackslib/src/net/api/postblock_v3.rs | 2 +- stackslib/src/net/api/postfeerate.rs | 2 +- stackslib/src/net/api/postmicroblock.rs | 2 +- stackslib/src/net/api/tests/getheaders.rs | 3 +- .../net/api/tests/getmicroblocks_confirmed.rs | 2 +- .../net/api/tests/getmicroblocks_indexed.rs | 2 +- .../api/tests/getmicroblocks_unconfirmed.rs | 2 +- stackslib/src/net/api/tests/mod.rs | 10 +- .../src/net/api/tests/postblock_proposal.rs | 2 +- .../src/net/api/tests/postmempoolquery.rs | 2 +- stackslib/src/net/atlas/db.rs | 4 +- stackslib/src/net/atlas/download.rs | 14 +- stackslib/src/net/atlas/tests.rs | 4 +- stackslib/src/net/chat.rs | 164 ++++---- stackslib/src/net/connection.rs | 2 +- stackslib/src/net/db.rs | 26 +- stackslib/src/net/dns.rs | 2 +- stackslib/src/net/download/epoch2x.rs | 24 +- .../nakamoto/download_state_machine.rs | 8 +- .../nakamoto/tenure_downloader_set.rs | 10 +- stackslib/src/net/http/mod.rs | 2 +- stackslib/src/net/http/request.rs | 2 +- stackslib/src/net/http/response.rs | 2 +- stackslib/src/net/httpcore.rs | 16 +- stackslib/src/net/inv/epoch2x.rs | 28 +- stackslib/src/net/inv/nakamoto.rs | 4 +- stackslib/src/net/mempool/mod.rs | 2 +- stackslib/src/net/mod.rs | 34 +- stackslib/src/net/neighbors/comms.rs | 4 +- stackslib/src/net/neighbors/db.rs | 20 +- stackslib/src/net/neighbors/neighbor.rs | 6 +- stackslib/src/net/neighbors/walk.rs | 22 +- stackslib/src/net/p2p.rs | 38 +- stackslib/src/net/prune.rs | 16 +- stackslib/src/net/relay.rs | 29 +- stackslib/src/net/server.rs | 6 +- stackslib/src/net/stackerdb/db.rs | 32 +- stackslib/src/net/stackerdb/mod.rs | 4 +- stackslib/src/net/stackerdb/sync.rs | 18 +- stackslib/src/net/stackerdb/tests/config.rs | 4 +- stackslib/src/net/stackerdb/tests/db.rs | 24 +- stackslib/src/net/tests/convergence.rs | 16 +- stackslib/src/net/tests/download/epoch2x.rs | 26 +- stackslib/src/net/tests/inv/epoch2x.rs | 18 +- stackslib/src/net/tests/mempool/mod.rs | 32 +- stackslib/src/net/tests/mod.rs | 6 +- stackslib/src/net/tests/relay/epoch2x.rs | 54 +-- stackslib/src/net/unsolicited.rs | 48 ++- stackslib/src/util_lib/bloom.rs | 8 +- stackslib/src/util_lib/db.rs | 4 +- .../src/util_lib/signed_structured_data.rs | 6 +- stackslib/src/util_lib/strings.rs | 10 +- 132 files changed, 1532 insertions(+), 1603 deletions(-) diff --git a/stackslib/src/burnchains/affirmation.rs b/stackslib/src/burnchains/affirmation.rs index 88ad745800..b798d69f6a 100644 --- a/stackslib/src/burnchains/affirmation.rs +++ b/stackslib/src/burnchains/affirmation.rs @@ -557,7 +557,7 @@ pub fn read_prepare_phase_commits( let mut ret = vec![]; for header in headers.into_iter() { - let blk = BurnchainDB::get_burnchain_block(&burnchain_tx.conn(), &header.block_hash) + let blk = BurnchainDB::get_burnchain_block(burnchain_tx.conn(), &header.block_hash) .unwrap_or_else(|_| { panic!( "BUG: failed to load prepare-phase block {} ({})", @@ -1126,7 +1126,7 @@ pub fn find_pox_anchor_block( let prepare_ops_valid = inner_find_valid_prepare_phase_commits(burnchain_tx, reward_cycle, indexer, burnchain)?; let anchor_block_and_descendancy_opt = find_heaviest_block_commit( - &burnchain_tx, + burnchain_tx, indexer, &prepare_ops_valid, burnchain.pox_constants.anchor_threshold, diff --git a/stackslib/src/burnchains/bitcoin/address.rs b/stackslib/src/burnchains/bitcoin/address.rs index 24e0ef8f9d..56456b8398 100644 --- a/stackslib/src/burnchains/bitcoin/address.rs +++ b/stackslib/src/burnchains/bitcoin/address.rs @@ -290,7 +290,7 @@ impl SegwitBitcoinAddress { let mut bytes_u5: Vec = vec![u5::try_from_u8(self.witness_version()) .expect("FATAL: bad witness version does not fit into a u5")]; bytes_u5.extend_from_slice(&bytes.to_base32()); - let addr = bech32::encode(&hrp, bytes_u5, self.bech32_variant()) + let addr = bech32::encode(hrp, bytes_u5, self.bech32_variant()) .expect("FATAL: could not encode segwit address"); addr } diff --git a/stackslib/src/burnchains/bitcoin/bits.rs b/stackslib/src/burnchains/bitcoin/bits.rs index 4198bf3278..f3f90a15a4 100644 --- a/stackslib/src/burnchains/bitcoin/bits.rs +++ b/stackslib/src/burnchains/bitcoin/bits.rs @@ -59,7 +59,7 @@ impl BitcoinTxInputStructured { let i2 = &instructions[1]; match (i1, i2) { - (Instruction::PushBytes(ref _data1), Instruction::PushBytes(ref data2)) => { + (Instruction::PushBytes(_data1), Instruction::PushBytes(data2)) => { // data2 is a pubkey? match BitcoinPublicKey::from_slice(data2) { Ok(pubkey) => { @@ -1277,7 +1277,7 @@ mod tests { let raw_in = BitcoinTxInputRaw::from_bitcoin_witness_script_sig( &txin.script_sig, txin.witness.clone(), - to_txid(&txin), + to_txid(txin), ); assert_eq!(raw_in, inputs[i]); } @@ -1290,7 +1290,7 @@ mod tests { } let segwit_out = - BitcoinTxOutput::from_bitcoin_txout(BitcoinNetworkType::Mainnet, &txout) + BitcoinTxOutput::from_bitcoin_txout(BitcoinNetworkType::Mainnet, txout) .unwrap(); assert_eq!(segwit_out, outputs[j]); j += 1; diff --git a/stackslib/src/burnchains/bitcoin/blocks.rs b/stackslib/src/burnchains/bitcoin/blocks.rs index b9623bd210..bdd4a0f12f 100644 --- a/stackslib/src/burnchains/bitcoin/blocks.rs +++ b/stackslib/src/burnchains/bitcoin/blocks.rs @@ -253,8 +253,7 @@ impl BitcoinBlockParser { } // block transactions must match header merkle root - let tx_merkle_root = - bitcoin_merkle_root(block.txdata.iter().map(|ref tx| tx.txid()).collect()); + let tx_merkle_root = bitcoin_merkle_root(block.txdata.iter().map(|tx| tx.txid()).collect()); if block.header.merkle_root != tx_merkle_root { return false; @@ -275,7 +274,7 @@ impl BitcoinBlockParser { return None; } - let script_pieces = bits::parse_script(&data_output); + let script_pieces = bits::parse_script(data_output); if script_pieces.len() != 2 { // not OP_RETURN test_debug!("Data output does not encode a valid OP_RETURN"); @@ -283,7 +282,7 @@ impl BitcoinBlockParser { } match (&script_pieces[0], &script_pieces[1]) { - (Instruction::Op(ref opcode), Instruction::PushBytes(ref data)) => { + (Instruction::Op(ref opcode), Instruction::PushBytes(data)) => { if *opcode != btc_opcodes::OP_RETURN { test_debug!("Data output does not use a standard OP_RETURN"); return None; @@ -351,7 +350,7 @@ impl BitcoinBlockParser { fn parse_inputs_structured(tx: &Transaction) -> Option> { let mut ret = vec![]; for inp in &tx.input { - match BitcoinTxInput::from_bitcoin_txin_structured(&inp) { + match BitcoinTxInput::from_bitcoin_txin_structured(inp) { None => { test_debug!("Failed to parse input"); return None; @@ -369,7 +368,7 @@ impl BitcoinBlockParser { fn parse_inputs_raw(tx: &Transaction) -> Vec { let mut ret = vec![]; for inp in &tx.input { - ret.push(BitcoinTxInput::from_bitcoin_txin_raw(&inp)); + ret.push(BitcoinTxInput::from_bitcoin_txin_raw(inp)); } ret } @@ -388,9 +387,9 @@ impl BitcoinBlockParser { let mut ret = vec![]; for outp in &tx.output[1..tx.output.len()] { let out_opt = if BitcoinBlockParser::allow_segwit_outputs(epoch_id) { - BitcoinTxOutput::from_bitcoin_txout(self.network_id, &outp) + BitcoinTxOutput::from_bitcoin_txout(self.network_id, outp) } else { - BitcoinTxOutput::from_bitcoin_txout_legacy(self.network_id, &outp) + BitcoinTxOutput::from_bitcoin_txout_legacy(self.network_id, outp) }; match out_opt { None => { @@ -509,7 +508,7 @@ impl BitcoinBlockParser { } // parse it - let burn_block = self.parse_block(&block, height, epoch_id); + let burn_block = self.parse_block(block, height, epoch_id); Some(burn_block) } } @@ -525,7 +524,7 @@ impl BurnchainBlockParser for BitcoinBlockParser { match ipc_block.block_message { btc_message::NetworkMessage::Block(ref block) => { match self.process_block( - &block, + block, &ipc_block.header_data.block_header, ipc_block.header_data.block_height, epoch_id, diff --git a/stackslib/src/burnchains/bitcoin/indexer.rs b/stackslib/src/burnchains/bitcoin/indexer.rs index af9bc24864..93675b0fcb 100644 --- a/stackslib/src/burnchains/bitcoin/indexer.rs +++ b/stackslib/src/burnchains/bitcoin/indexer.rs @@ -469,7 +469,7 @@ impl BitcoinIndexer { network_id: BitcoinNetworkType, ) -> Result { SpvClient::new_without_migration( - &reorg_headers_path, + reorg_headers_path, start_block, end_block, network_id, @@ -486,7 +486,7 @@ impl BitcoinIndexer { network_id: BitcoinNetworkType, ) -> Result { SpvClient::new( - &reorg_headers_path, + reorg_headers_path, start_block, end_block, network_id, @@ -3476,7 +3476,7 @@ mod test { // set up SPV client so we don't have chain work at first let mut spv_client = SpvClient::new_without_migration( - &db_path, + db_path, 0, None, BitcoinNetworkType::Regtest, diff --git a/stackslib/src/burnchains/bitcoin/spv.rs b/stackslib/src/burnchains/bitcoin/spv.rs index 861baed580..55ad629412 100644 --- a/stackslib/src/burnchains/bitcoin/spv.rs +++ b/stackslib/src/burnchains/bitcoin/spv.rs @@ -724,13 +724,13 @@ impl SpvClient { .next() .map_err(|e| btc_error::DBError(db_error::SqliteError(e)))? { - let height: u64 = u64::from_column(&row, "height")?; + let height: u64 = u64::from_column(row, "height")?; if height != next_height { break; } next_height += 1; - let next_header = BlockHeader::from_row(&row)?; + let next_header = BlockHeader::from_row(row)?; headers.push(LoneBlockHeader { header: next_header, tx_count: VarInt(0), diff --git a/stackslib/src/burnchains/burnchain.rs b/stackslib/src/burnchains/burnchain.rs index caeefe538c..ae344f706f 100644 --- a/stackslib/src/burnchains/burnchain.rs +++ b/stackslib/src/burnchains/burnchain.rs @@ -98,7 +98,7 @@ impl BurnchainStateTransition { /// Get the transaction IDs of all accepted burnchain operations in this block pub fn txids(&self) -> Vec { - self.accepted_ops.iter().map(|ref op| op.txid()).collect() + self.accepted_ops.iter().map(|op| op.txid()).collect() } /// Get the sum of all burnchain tokens spent in this burnchain block's accepted operations @@ -196,7 +196,7 @@ impl BurnchainStateTransition { // find all VRF leader keys that were consumed by the block commits of this block let consumed_leader_keys = - sort_tx.get_consumed_leader_keys(&parent_snapshot, &block_commits)?; + sort_tx.get_consumed_leader_keys(parent_snapshot, &block_commits)?; // assemble the commit windows let mut windowed_block_commits = vec![block_commits]; @@ -355,7 +355,7 @@ impl BurnchainStateTransition { ); } - accepted_ops.sort_by(|ref a, ref b| a.vtxindex().partial_cmp(&b.vtxindex()).unwrap()); + accepted_ops.sort_by(|a, b| a.vtxindex().partial_cmp(&b.vtxindex()).unwrap()); Ok(BurnchainStateTransition { burn_dist, @@ -425,7 +425,7 @@ impl BurnchainBlock { BurnchainBlock::Bitcoin(ref data) => data .txs .iter() - .map(|ref tx| BurnchainTransaction::Bitcoin((*tx).clone())) + .map(|tx| BurnchainTransaction::Bitcoin((*tx).clone())) .collect(), } } @@ -850,7 +850,7 @@ impl Burnchain { } x if x == Opcodes::TransferStx as u8 => { let pre_stx_txid = TransferStxOp::get_sender_txid(burn_tx).ok()?; - let pre_stx_tx = match pre_stx_op_map.get(&pre_stx_txid) { + let pre_stx_tx = match pre_stx_op_map.get(pre_stx_txid) { Some(tx_ref) => Some(BlockstackOperationType::PreStx(tx_ref.clone())), None => burnchain_db.find_burnchain_op(indexer, pre_stx_txid), }; @@ -879,7 +879,7 @@ impl Burnchain { } x if x == Opcodes::StackStx as u8 => { let pre_stx_txid = StackStxOp::get_sender_txid(burn_tx).ok()?; - let pre_stx_tx = match pre_stx_op_map.get(&pre_stx_txid) { + let pre_stx_tx = match pre_stx_op_map.get(pre_stx_txid) { Some(tx_ref) => Some(BlockstackOperationType::PreStx(tx_ref.clone())), None => burnchain_db.find_burnchain_op(indexer, pre_stx_txid), }; @@ -914,7 +914,7 @@ impl Burnchain { } x if x == Opcodes::DelegateStx as u8 => { let pre_stx_txid = DelegateStxOp::get_sender_txid(burn_tx).ok()?; - let pre_stx_tx = match pre_stx_op_map.get(&pre_stx_txid) { + let pre_stx_tx = match pre_stx_op_map.get(pre_stx_txid) { Some(tx_ref) => Some(BlockstackOperationType::PreStx(tx_ref.clone())), None => burnchain_db.find_burnchain_op(indexer, pre_stx_txid), }; @@ -943,7 +943,7 @@ impl Burnchain { } x if x == Opcodes::VoteForAggregateKey as u8 => { let pre_stx_txid = VoteForAggregateKeyOp::get_sender_txid(burn_tx).ok()?; - let pre_stx_tx = match pre_stx_op_map.get(&pre_stx_txid) { + let pre_stx_tx = match pre_stx_op_map.get(pre_stx_txid) { Some(tx_ref) => Some(BlockstackOperationType::PreStx(tx_ref.clone())), None => burnchain_db.find_burnchain_op(indexer, pre_stx_txid), }; @@ -1039,7 +1039,7 @@ impl Burnchain { ); let _blockstack_txs = - burnchain_db.store_new_burnchain_block(burnchain, indexer, &block, epoch_id)?; + burnchain_db.store_new_burnchain_block(burnchain, indexer, block, epoch_id)?; Burnchain::process_affirmation_maps( burnchain, burnchain_db, @@ -1111,7 +1111,7 @@ impl Burnchain { let blockstack_txs = burnchain_db.store_new_burnchain_block( burnchain, indexer, - &block, + block, cur_epoch.epoch_id, )?; diff --git a/stackslib/src/burnchains/db.rs b/stackslib/src/burnchains/db.rs index 1f42881ac2..d18e7d5d27 100644 --- a/stackslib/src/burnchains/db.rs +++ b/stackslib/src/burnchains/db.rs @@ -152,7 +152,7 @@ pub(crate) fn apply_blockstack_txs_safety_checks( ); // safety -- make sure these are in order - blockstack_txs.sort_by(|ref a, ref b| a.vtxindex().partial_cmp(&b.vtxindex()).unwrap()); + blockstack_txs.sort_by(|a, b| a.vtxindex().partial_cmp(&b.vtxindex()).unwrap()); // safety -- no duplicate vtxindex (shouldn't happen but crash if so) if blockstack_txs.len() > 1 { @@ -349,7 +349,7 @@ impl BurnchainDBTransaction<'_> { let args = params![affirmation_map.encode(), u64_to_sql(weight)?]; match self.sql_tx.execute(sql, args) { Ok(_) => { - let am_id = BurnchainDB::get_affirmation_map_id(&self.sql_tx, &affirmation_map)? + let am_id = BurnchainDB::get_affirmation_map_id(&self.sql_tx, affirmation_map)? .expect("BUG: no affirmation ID for affirmation map we just inserted"); Ok(am_id) } @@ -1231,7 +1231,7 @@ impl BurnchainDB { self, block_header, epoch_id, - &tx, + tx, &pre_stx_ops, ); if let Some(classified_tx) = result { @@ -1409,7 +1409,7 @@ impl BurnchainDB { blockstack_ops.len() ); db_tx.store_burnchain_db_entry(block_header)?; - db_tx.store_blockstack_ops(burnchain, indexer, &block_header, blockstack_ops)?; + db_tx.store_blockstack_ops(burnchain, indexer, block_header, blockstack_ops)?; db_tx.commit()?; Ok(()) @@ -1459,7 +1459,7 @@ impl BurnchainDB { ) -> Result, DBError> { let qry = "SELECT txid FROM block_commit_metadata WHERE block_height = ?1 AND vtxindex = ?2 AND burn_block_hash = ?3"; let args = params![block_ptr, vtxindex, header_hash]; - let txid = match query_row(&conn, qry, args) { + let txid = match query_row(conn, qry, args) { Ok(Some(txid)) => txid, Ok(None) => { test_debug!( diff --git a/stackslib/src/burnchains/mod.rs b/stackslib/src/burnchains/mod.rs index 3e153df53b..34cc0e3253 100644 --- a/stackslib/src/burnchains/mod.rs +++ b/stackslib/src/burnchains/mod.rs @@ -231,7 +231,7 @@ impl BurnchainTransaction { BurnchainTransaction::Bitcoin(ref btc) => btc .outputs .iter() - .map(|ref o| BurnchainRecipient::try_from_bitcoin_output(o)) + .map(BurnchainRecipient::try_from_bitcoin_output) .collect(), } } diff --git a/stackslib/src/burnchains/tests/affirmation.rs b/stackslib/src/burnchains/tests/affirmation.rs index eaa872876e..9d86e60fa5 100644 --- a/stackslib/src/burnchains/tests/affirmation.rs +++ b/stackslib/src/burnchains/tests/affirmation.rs @@ -331,7 +331,7 @@ pub fn make_reward_cycle_with_vote( let mut commits = vec![]; for i in 0..parent_commits.len() { let mut block_commit = make_simple_block_commit( - &burnchain, + burnchain, parent_commits[i].as_ref(), &block_header, next_block_hash(), @@ -388,7 +388,7 @@ pub fn make_reward_cycle_with_vote( block_commit.parent_vtxindex ); - if let Some(ref parent_commit) = parent_commits[i].as_ref() { + if let Some(parent_commit) = parent_commits[i].as_ref() { assert!(parent_commit.block_height != block_commit.block_height); assert!( parent_commit.block_height == u64::from(block_commit.parent_block_ptr) diff --git a/stackslib/src/burnchains/tests/db.rs b/stackslib/src/burnchains/tests/db.rs index c8f568b5bf..4576ca4863 100644 --- a/stackslib/src/burnchains/tests/db.rs +++ b/stackslib/src/burnchains/tests/db.rs @@ -554,7 +554,7 @@ pub fn make_simple_block_commit( new_op.commit_outs = vec![PoxAddress::standard_burn_address(false)]; } - if let Some(ref op) = parent { + if let Some(op) = parent { new_op.parent_block_ptr = op.block_height as u32; new_op.parent_vtxindex = op.vtxindex as u16; }; @@ -639,18 +639,14 @@ fn test_get_commit_at() { } for i in 0..5 { - let cmt = BurnchainDB::get_commit_at( - &burnchain_db.conn(), - &headers, - (first_height + i) as u32, - 0, - ) - .unwrap() - .unwrap(); + let cmt = + BurnchainDB::get_commit_at(burnchain_db.conn(), &headers, (first_height + i) as u32, 0) + .unwrap() + .unwrap(); assert_eq!(cmt, cmts[i as usize]); } - let cmt = BurnchainDB::get_commit_at(&burnchain_db.conn(), &headers, 5, 0) + let cmt = BurnchainDB::get_commit_at(burnchain_db.conn(), &headers, 5, 0) .unwrap() .unwrap(); assert_eq!(cmt, cmts[4]); @@ -681,12 +677,12 @@ fn test_get_commit_at() { ) .unwrap(); - let cmt = BurnchainDB::get_commit_at(&burnchain_db.conn(), &headers, 5, 0) + let cmt = BurnchainDB::get_commit_at(burnchain_db.conn(), &headers, 5, 0) .unwrap() .unwrap(); assert_eq!(cmt, cmts[4]); - let cmt = BurnchainDB::get_commit_at(&burnchain_db.conn(), &fork_headers, 5, 1) + let cmt = BurnchainDB::get_commit_at(burnchain_db.conn(), &fork_headers, 5, 1) .unwrap() .unwrap(); assert_eq!(cmt, fork_cmt); diff --git a/stackslib/src/burnchains/tests/mod.rs b/stackslib/src/burnchains/tests/mod.rs index ab3763dac0..dc02d0380d 100644 --- a/stackslib/src/burnchains/tests/mod.rs +++ b/stackslib/src/burnchains/tests/mod.rs @@ -240,7 +240,7 @@ impl TestMiner { last_sortition_hash ); match self.vrf_key_map.get(vrf_pubkey) { - Some(ref prover_key) => { + Some(prover_key) => { let proof = VRF::prove(prover_key, &last_sortition_hash.as_bytes().to_vec()); let valid = match VRF::verify(vrf_pubkey, &proof, &last_sortition_hash.as_bytes().to_vec()) @@ -422,7 +422,7 @@ impl TestBurnchainBlock { let pubks = miner .privks .iter() - .map(|ref pk| StacksPublicKey::from_private(pk)) + .map(StacksPublicKey::from_private) .collect(); let apparent_sender = BurnchainSigner::mock_parts(miner.hash_mode.clone(), miner.num_sigs as usize, pubks); @@ -623,7 +623,7 @@ impl TestBurnchainBlock { let blockstack_txs = self.txs.clone(); let burnchain_db = - BurnchainDB::connect(&burnchain.get_burnchaindb_path(), &burnchain, true).unwrap(); + BurnchainDB::connect(&burnchain.get_burnchaindb_path(), burnchain, true).unwrap(); let new_snapshot = sortition_db_handle .process_block_txs( @@ -719,7 +719,7 @@ impl TestBurnchainFork { start_height, mined: 0, tip_header_hash: start_header_hash.clone(), - tip_sortition_id: SortitionId::stubbed(&start_header_hash), + tip_sortition_id: SortitionId::stubbed(start_header_hash), tip_index_root: start_index_root.clone(), blocks: vec![], pending_blocks: vec![], diff --git a/stackslib/src/chainstate/burn/db/processing.rs b/stackslib/src/chainstate/burn/db/processing.rs index 17e2546389..d6c6dc4a6d 100644 --- a/stackslib/src/chainstate/burn/db/processing.rs +++ b/stackslib/src/chainstate/burn/db/processing.rs @@ -260,7 +260,7 @@ impl SortitionHandleTx<'_> { &block_header.block_hash ); - blockstack_txs.sort_by(|ref a, ref b| a.vtxindex().partial_cmp(&b.vtxindex()).unwrap()); + blockstack_txs.sort_by(|a, b| a.vtxindex().partial_cmp(&b.vtxindex()).unwrap()); // check each transaction, and filter out only the ones that are valid debug!( @@ -338,8 +338,8 @@ impl SortitionHandleTx<'_> { let new_snapshot = self.process_block_ops( mainnet, burnchain, - &parent_snapshot, - &this_block_header, + parent_snapshot, + this_block_header, blockstack_txs, next_pox_info, parent_pox, diff --git a/stackslib/src/chainstate/burn/db/sortdb.rs b/stackslib/src/chainstate/burn/db/sortdb.rs index 74317ba639..5d753e23c3 100644 --- a/stackslib/src/chainstate/burn/db/sortdb.rs +++ b/stackslib/src/chainstate/burn/db/sortdb.rs @@ -875,7 +875,7 @@ pub fn get_ancestor_sort_id( None => return Ok(None), }; - ic.get_ancestor_block_hash(adjusted_height, &tip_block_hash) + ic.get_ancestor_block_hash(adjusted_height, tip_block_hash) } pub fn get_ancestor_sort_id_tx( @@ -888,7 +888,7 @@ pub fn get_ancestor_sort_id_tx( None => return Ok(None), }; - ic.get_ancestor_block_hash(adjusted_height, &tip_block_hash) + ic.get_ancestor_block_hash(adjusted_height, tip_block_hash) } /// Returns the difference between `block_height` and `context.first_block_height()`, if this @@ -1138,7 +1138,7 @@ pub trait SortitionHandle { // step back to the parent test_debug!("No parent sortition memo for {}", &sn.winning_block_txid); let block_commit = get_block_commit_by_txid( - &self.sqlite(), + self.sqlite(), &sn.sortition_id, &sn.winning_block_txid, )? @@ -1186,7 +1186,7 @@ impl<'a> SortitionHandleTx<'a> { chain_tip: &SortitionId, ) -> Result, db_error> { let sortition_identifier_key = db_keys::sortition_id_for_bhh(burn_header_hash); - let sortition_id = match self.get_indexed(&chain_tip, &sortition_identifier_key)? { + let sortition_id = match self.get_indexed(chain_tip, &sortition_identifier_key)? { None => return Ok(None), Some(x) => SortitionId::from_hex(&x).expect("FATAL: bad Sortition ID stored in DB"), }; @@ -1318,7 +1318,7 @@ impl<'a> SortitionHandleTx<'a> { } }; - let ancestor_hash = match self.get_indexed(&get_from, &db_keys::last_sortition())? { + let ancestor_hash = match self.get_indexed(&get_from, db_keys::last_sortition())? { Some(hex_str) => BurnchainHeaderHash::from_hex(&hex_str).unwrap_or_else(|_| { panic!( "FATAL: corrupt database: failed to parse {} into a hex string", @@ -1696,7 +1696,7 @@ impl SortitionHandleTx<'_> { } pub fn get_reward_set_size_at(&mut self, sortition_id: &SortitionId) -> Result { - self.get_indexed(sortition_id, &db_keys::pox_reward_set_size()) + self.get_indexed(sortition_id, db_keys::pox_reward_set_size()) .map(|x| { db_keys::reward_set_size_from_string( &x.expect("CORRUPTION: no current reward set size written"), @@ -1731,7 +1731,7 @@ impl SortitionHandleTx<'_> { pub fn get_last_anchor_block_hash(&mut self) -> Result, db_error> { let chain_tip = self.context.chain_tip.clone(); let anchor_block_hash = SortitionDB::parse_last_anchor_block_hash( - self.get_indexed(&chain_tip, &db_keys::pox_last_anchor())?, + self.get_indexed(&chain_tip, db_keys::pox_last_anchor())?, ); Ok(anchor_block_hash) } @@ -1739,14 +1739,14 @@ impl SortitionHandleTx<'_> { pub fn get_last_anchor_block_txid(&mut self) -> Result, db_error> { let chain_tip = self.context.chain_tip.clone(); let anchor_block_txid = SortitionDB::parse_last_anchor_block_txid( - self.get_indexed(&chain_tip, &db_keys::pox_last_anchor_txid())?, + self.get_indexed(&chain_tip, db_keys::pox_last_anchor_txid())?, ); Ok(anchor_block_txid) } pub fn get_sortition_affirmation_map(&mut self) -> Result { let chain_tip = self.context.chain_tip.clone(); - let affirmation_map = match self.get_indexed(&chain_tip, &db_keys::pox_affirmation_map())? { + let affirmation_map = match self.get_indexed(&chain_tip, db_keys::pox_affirmation_map())? { Some(am_str) => { AffirmationMap::decode(&am_str).expect("FATAL: corrupt affirmation map") } @@ -1760,7 +1760,7 @@ impl SortitionHandleTx<'_> { ) -> Result, db_error> { let chain_tip = self.context.chain_tip.clone(); let anchor_block_hash = SortitionDB::parse_last_anchor_block_hash( - self.get_indexed(&chain_tip, &db_keys::pox_last_selected_anchor())?, + self.get_indexed(&chain_tip, db_keys::pox_last_selected_anchor())?, ); Ok(anchor_block_hash) } @@ -1768,7 +1768,7 @@ impl SortitionHandleTx<'_> { pub fn get_last_selected_anchor_block_txid(&mut self) -> Result, db_error> { let chain_tip = self.context.chain_tip.clone(); let anchor_block_txid = SortitionDB::parse_last_anchor_block_txid( - self.get_indexed(&chain_tip, &db_keys::pox_last_selected_anchor_txid())?, + self.get_indexed(&chain_tip, db_keys::pox_last_selected_anchor_txid())?, ); Ok(anchor_block_txid) } @@ -1860,7 +1860,7 @@ impl SortitionHandleTx<'_> { let sn_current = SortitionDB::get_block_snapshot_consensus(self, &cur_ch)? .ok_or(db_error::NotFoundError)?; let sn_accepted = - SortitionDB::get_block_snapshot_consensus(self, &consensus_hash)? + SortitionDB::get_block_snapshot_consensus(self, consensus_hash)? .ok_or(db_error::NotFoundError)?; sn_current.block_height < sn_accepted.block_height } @@ -1931,7 +1931,7 @@ impl<'a> SortitionHandleConn<'a> { connection: &'a SortitionDBConn<'a>, chain_tip: &ConsensusHash, ) -> Result, db_error> { - let sn = match SortitionDB::get_block_snapshot_consensus(&connection.conn(), chain_tip)? { + let sn = match SortitionDB::get_block_snapshot_consensus(connection.conn(), chain_tip)? { Some(sn) => { if !sn.pox_valid { warn!( @@ -1952,7 +1952,7 @@ impl<'a> SortitionHandleConn<'a> { } pub fn get_reward_set_size_at(&self, sortition_id: &SortitionId) -> Result { - self.get_indexed(sortition_id, &db_keys::pox_reward_set_size()) + self.get_indexed(sortition_id, db_keys::pox_reward_set_size()) .map(|x| { db_keys::reward_set_size_from_string( &x.expect("CORRUPTION: no current reward set size written"), @@ -1962,21 +1962,21 @@ impl<'a> SortitionHandleConn<'a> { pub fn get_last_anchor_block_hash(&self) -> Result, db_error> { let anchor_block_hash = SortitionDB::parse_last_anchor_block_hash( - self.get_indexed(&self.context.chain_tip, &db_keys::pox_last_anchor())?, + self.get_indexed(&self.context.chain_tip, db_keys::pox_last_anchor())?, ); Ok(anchor_block_hash) } pub fn get_last_anchor_block_txid(&self) -> Result, db_error> { let anchor_block_txid = SortitionDB::parse_last_anchor_block_txid( - self.get_indexed(&self.context.chain_tip, &db_keys::pox_last_anchor_txid())?, + self.get_indexed(&self.context.chain_tip, db_keys::pox_last_anchor_txid())?, ); Ok(anchor_block_txid) } pub fn get_sortition_affirmation_map(&self) -> Result { let chain_tip = self.context.chain_tip.clone(); - let affirmation_map = match self.get_indexed(&chain_tip, &db_keys::pox_affirmation_map())? { + let affirmation_map = match self.get_indexed(&chain_tip, db_keys::pox_affirmation_map())? { Some(am_str) => { AffirmationMap::decode(&am_str).expect("FATAL: corrupt affirmation map") } @@ -1986,17 +1986,16 @@ impl<'a> SortitionHandleConn<'a> { } pub fn get_last_selected_anchor_block_hash(&self) -> Result, db_error> { - let anchor_block_hash = SortitionDB::parse_last_anchor_block_hash(self.get_indexed( - &self.context.chain_tip, - &db_keys::pox_last_selected_anchor(), - )?); + let anchor_block_hash = SortitionDB::parse_last_anchor_block_hash( + self.get_indexed(&self.context.chain_tip, db_keys::pox_last_selected_anchor())?, + ); Ok(anchor_block_hash) } pub fn get_last_selected_anchor_block_txid(&self) -> Result, db_error> { let anchor_block_txid = SortitionDB::parse_last_anchor_block_txid(self.get_indexed( &self.context.chain_tip, - &db_keys::pox_last_selected_anchor_txid(), + db_keys::pox_last_selected_anchor_txid(), )?); Ok(anchor_block_txid) } @@ -2034,7 +2033,7 @@ impl<'a> SortitionHandleConn<'a> { pox_constants: connection.context.pox_constants.clone(), dryrun: connection.context.dryrun, }, - index: &connection.index, + index: connection.index, }) } @@ -2125,7 +2124,7 @@ impl<'a> SortitionHandleConn<'a> { let block_commit = match SortitionDB::get_block_commit_for_stacks_block( self.conn(), consensus_hash, - &block_hash, + block_hash, )? { Some(bc) => bc, None => { @@ -2197,7 +2196,7 @@ impl<'a> SortitionHandleConn<'a> { } }; - let ancestor_hash = match self.get_indexed(&get_from, &db_keys::last_sortition())? { + let ancestor_hash = match self.get_indexed(&get_from, db_keys::last_sortition())? { Some(hex_str) => BurnchainHeaderHash::from_hex(&hex_str).unwrap_or_else(|_| { panic!( "FATAL: corrupt database: failed to parse {} into a hex string", @@ -2219,7 +2218,7 @@ impl<'a> SortitionHandleConn<'a> { /// Get the latest block snapshot on this fork where a sortition occured. pub fn get_last_snapshot_with_sortition_from_tip(&self) -> Result { let ancestor_hash = - match self.get_indexed(&self.context.chain_tip, &db_keys::last_sortition())? { + match self.get_indexed(&self.context.chain_tip, db_keys::last_sortition())? { Some(hex_str) => BurnchainHeaderHash::from_hex(&hex_str).unwrap_or_else(|_| { panic!( "FATAL: corrupt database: failed to parse {} into a hex string", @@ -2716,7 +2715,7 @@ impl SortitionDB { })?, }; - let snapshot = SortitionDB::get_block_snapshot_consensus(&self.conn(), &burn_view)? + let snapshot = SortitionDB::get_block_snapshot_consensus(self.conn(), &burn_view)? .ok_or(db_error::NotFoundError)?; Ok(self.index_handle(&snapshot.sortition_id)) } @@ -2985,7 +2984,7 @@ impl SortitionDB { }); let new_epoch_idx = - StacksEpoch::find_epoch(&epochs, tip.block_height).unwrap_or_else(|| { + StacksEpoch::find_epoch(epochs, tip.block_height).unwrap_or_else(|| { panic!( "FATAL: Sortition tip {} has no epoch in the configured epochs list", tip.block_height @@ -3142,7 +3141,7 @@ impl SortitionDB { let index_path = db_mkdirs(path)?; let marf = SortitionDB::open_index(&index_path)?; let sql = "SELECT MAX(block_height) FROM snapshots"; - Ok(query_rows(&marf.sqlite_conn(), sql, NO_PARAMS)? + Ok(query_rows(marf.sqlite_conn(), sql, NO_PARAMS)? .pop() .expect("BUG: no snapshots in block_snapshots")) } @@ -3182,7 +3181,7 @@ impl SortitionDB { tx.execute_batch(sql_exec)?; } - SortitionDB::validate_and_insert_epochs(&tx, epochs)?; + SortitionDB::validate_and_insert_epochs(tx, epochs)?; tx.execute( "INSERT OR REPLACE INTO db_config (version) VALUES (?1)", @@ -3239,7 +3238,7 @@ impl SortitionDB { tx.execute_batch(sql_exec)?; } - SortitionDB::validate_and_insert_epochs(&tx, epochs)?; + SortitionDB::validate_and_insert_epochs(tx, epochs)?; tx.execute( "INSERT OR REPLACE INTO db_config (version) VALUES (?1)", @@ -3255,7 +3254,7 @@ impl SortitionDB { tx.execute_batch(sql_exec)?; } - SortitionDB::validate_and_insert_epochs(&tx, epochs)?; + SortitionDB::validate_and_insert_epochs(tx, epochs)?; tx.execute( "INSERT OR REPLACE INTO db_config (version) VALUES (?1)", @@ -3271,7 +3270,7 @@ impl SortitionDB { tx.execute_batch(sql_exec)?; } - SortitionDB::validate_and_insert_epochs(&tx, epochs)?; + SortitionDB::validate_and_insert_epochs(tx, epochs)?; tx.execute( "INSERT OR REPLACE INTO db_config (version) VALUES (?1)", @@ -3292,7 +3291,7 @@ impl SortitionDB { tx.execute_batch(sql_exec)?; } - SortitionDB::validate_and_insert_epochs(&tx, epochs)?; + SortitionDB::validate_and_insert_epochs(tx, epochs)?; Ok(()) } @@ -3407,7 +3406,7 @@ impl SortitionDB { tx.execute_batch(sql_exec)?; } - SortitionDB::validate_and_replace_epochs(&tx, epochs)?; + SortitionDB::validate_and_replace_epochs(tx, epochs)?; tx.execute( "INSERT OR REPLACE INTO db_config (version) VALUES (?1)", @@ -3448,38 +3447,38 @@ impl SortitionDB { Ok(Some(version)) => { if version == "1" { let tx = self.tx_begin()?; - SortitionDB::apply_schema_2(&tx.deref(), epochs)?; + SortitionDB::apply_schema_2(tx.deref(), epochs)?; tx.commit()?; } else if version == "2" { // add the tables of schema 3, but do not populate them. let tx = self.tx_begin()?; - SortitionDB::apply_schema_3(&tx.deref())?; + SortitionDB::apply_schema_3(tx.deref())?; tx.commit()?; } else if version == "3" { let tx = self.tx_begin()?; - SortitionDB::apply_schema_4(&tx.deref())?; + SortitionDB::apply_schema_4(tx.deref())?; tx.commit()?; } else if version == "4" { let tx = self.tx_begin()?; - SortitionDB::apply_schema_5(&tx.deref(), epochs)?; + SortitionDB::apply_schema_5(tx.deref(), epochs)?; tx.commit()?; } else if version == "5" { let tx = self.tx_begin()?; - SortitionDB::apply_schema_6(&tx.deref(), epochs)?; + SortitionDB::apply_schema_6(tx.deref(), epochs)?; tx.commit()?; } else if version == "6" { let tx = self.tx_begin()?; - SortitionDB::apply_schema_7(&tx.deref(), epochs)?; + SortitionDB::apply_schema_7(tx.deref(), epochs)?; tx.commit()?; } else if version == "7" { let tx = self.tx_begin()?; - SortitionDB::apply_schema_8_tables(&tx.deref(), epochs)?; + SortitionDB::apply_schema_8_tables(tx.deref(), epochs)?; tx.commit()?; self.apply_schema_8_migration(migrator.take())?; } else if version == "8" { let tx = self.tx_begin()?; - SortitionDB::apply_schema_9(&tx.deref(), epochs)?; + SortitionDB::apply_schema_9(tx.deref(), epochs)?; tx.commit()?; } else if version == expected_version { // this transaction is almost never needed @@ -3676,7 +3675,7 @@ impl SortitionDB { /// Get the number of entries in the reward set, given a sortition ID within the reward cycle /// for which this set is active. pub fn get_preprocessed_reward_set_size(&self, tip: &SortitionId) -> Option { - let Ok(reward_info) = &self.get_preprocessed_reward_set_of(&tip) else { + let Ok(reward_info) = &self.get_preprocessed_reward_set_of(tip) else { return None; }; let Some(reward_set) = reward_info.known_selected_anchor_block() else { @@ -3704,7 +3703,7 @@ impl SortitionDBTx<'_> { &mut self, chain_tip: &SortitionId, ) -> Result { - let affirmation_map = match self.get_indexed(chain_tip, &db_keys::pox_affirmation_map())? { + let affirmation_map = match self.get_indexed(chain_tip, db_keys::pox_affirmation_map())? { Some(am_str) => { AffirmationMap::decode(&am_str).expect("FATAL: corrupt affirmation map") } @@ -3836,41 +3835,40 @@ impl SortitionDBConn<'_> { block_hash: &BlockHeaderHash, ) -> Result, db_error> { let db_handle = SortitionHandleConn::open_reader_consensus(self, consensus_hash)?; - let parent_block_snapshot = match db_handle - .get_block_snapshot_of_parent_stacks_block(consensus_hash, &block_hash) - { - Ok(Some((_, sn))) => { - debug!( - "Parent of {}/{} is {}/{}", - consensus_hash, block_hash, sn.consensus_hash, sn.winning_stacks_block_hash - ); - sn - } - Ok(None) => { - debug!( - "Received block with unknown parent snapshot: {}/{}", - consensus_hash, block_hash, - ); - return Ok(None); - } - Err(db_error::InvalidPoxSortition) => { - warn!( - "Received block {}/{} on a non-canonical PoX sortition", - consensus_hash, block_hash, - ); - return Ok(None); - } - Err(e) => { - return Err(e); - } - }; + let parent_block_snapshot = + match db_handle.get_block_snapshot_of_parent_stacks_block(consensus_hash, block_hash) { + Ok(Some((_, sn))) => { + debug!( + "Parent of {}/{} is {}/{}", + consensus_hash, block_hash, sn.consensus_hash, sn.winning_stacks_block_hash + ); + sn + } + Ok(None) => { + debug!( + "Received block with unknown parent snapshot: {}/{}", + consensus_hash, block_hash, + ); + return Ok(None); + } + Err(db_error::InvalidPoxSortition) => { + warn!( + "Received block {}/{} on a non-canonical PoX sortition", + consensus_hash, block_hash, + ); + return Ok(None); + } + Err(e) => { + return Err(e); + } + }; Ok(Some(parent_block_snapshot)) } #[cfg_attr(test, mutants::skip)] pub fn get_reward_set_size_at(&mut self, sortition_id: &SortitionId) -> Result { - self.get_indexed(sortition_id, &db_keys::pox_reward_set_size()) + self.get_indexed(sortition_id, db_keys::pox_reward_set_size()) .map(|x| { db_keys::reward_set_size_from_string( &x.expect("CORRUPTION: no current reward set size written"), @@ -4246,7 +4244,7 @@ impl SortitionDB { /// Compute the next PoX ID pub fn make_next_pox_id(parent_pox: PoxId, next_pox_info: Option<&RewardCycleInfo>) -> PoxId { let mut next_pox = parent_pox; - if let Some(ref next_pox_info) = next_pox_info { + if let Some(next_pox_info) = next_pox_info { if next_pox_info.is_reward_info_known() { info!( "Begin reward-cycle sortition with present anchor block={:?}", @@ -5370,7 +5368,7 @@ impl SortitionDB { } }; - let ancestor_hash = match tx.get_indexed(&get_from, &db_keys::last_sortition())? { + let ancestor_hash = match tx.get_indexed(&get_from, db_keys::last_sortition())? { Some(hex_str) => BurnchainHeaderHash::from_hex(&hex_str).unwrap_or_else(|_| { panic!( "FATAL: corrupt database: failed to parse {} into a hex string", @@ -5513,7 +5511,7 @@ impl SortitionHandleTx<'_> { &mut self, chain_tip: &SortitionId, ) -> Result { - self.get_indexed(&chain_tip, db_keys::initial_mining_bonus_remaining())? + self.get_indexed(chain_tip, db_keys::initial_mining_bonus_remaining())? .map(|s| Ok(s.parse().expect("BUG: bad mining bonus stored in DB"))) .unwrap_or(Ok(0)) } @@ -5523,7 +5521,7 @@ impl SortitionHandleTx<'_> { chain_tip: &SortitionId, ) -> Result, db_error> { Ok(self - .get_indexed(&chain_tip, db_keys::initial_mining_bonus_per_block())? + .get_indexed(chain_tip, db_keys::initial_mining_bonus_per_block())? .map(|s| s.parse().expect("BUG: bad mining bonus stored in DB"))) } @@ -6348,7 +6346,7 @@ impl SortitionHandleTx<'_> { .expect("FATAL: zero-length list of tied block IDs"); let winner_index = *mapping - .get(&winner) + .get(winner) .expect("FATAL: winning block ID not mapped"); Some(winner_index) @@ -6873,7 +6871,7 @@ pub mod tests { let leader_key_sql = "SELECT * FROM leader_keys WHERE txid = ?1 LIMIT 1"; let args = [&txid]; - let leader_key_res = query_row_panic(conn, &leader_key_sql, &args, || { + let leader_key_res = query_row_panic(conn, leader_key_sql, &args, || { "Multiple leader keys with same txid".to_string() })?; if let Some(leader_key) = leader_key_res { @@ -6883,7 +6881,7 @@ pub mod tests { // block commit? let block_commit_sql = "SELECT * FROM block_commits WHERE txid = ?1 LIMIT 1"; - let block_commit_res = query_row_panic(conn, &block_commit_sql, &args, || { + let block_commit_res = query_row_panic(conn, block_commit_sql, &args, || { "Multiple block commits with same txid".to_string() })?; if let Some(block_commit) = block_commit_res { diff --git a/stackslib/src/chainstate/burn/distribution.rs b/stackslib/src/chainstate/burn/distribution.rs index 0d94c7e78d..8d0b9cc216 100644 --- a/stackslib/src/chainstate/burn/distribution.rs +++ b/stackslib/src/chainstate/burn/distribution.rs @@ -379,7 +379,7 @@ impl BurnSamplePoint { // total burns for valid blocks? // NOTE: this can't overflow -- there's no way we get that many (u64) burns - let total_burns_u128 = BurnSamplePoint::get_total_burns(&burn_sample).unwrap() as u128; + let total_burns_u128 = BurnSamplePoint::get_total_burns(burn_sample).unwrap() as u128; let total_burns = Uint512::from_u128(total_burns_u128); // determine range start/end for each sample. diff --git a/stackslib/src/chainstate/burn/operations/leader_block_commit.rs b/stackslib/src/chainstate/burn/operations/leader_block_commit.rs index 136e4d4a75..4e4f6d8cf1 100644 --- a/stackslib/src/chainstate/burn/operations/leader_block_commit.rs +++ b/stackslib/src/chainstate/burn/operations/leader_block_commit.rs @@ -547,7 +547,7 @@ impl RewardSetInfo { ) -> Result, op_error> { // did this block-commit pay to the correct PoX addresses? let intended_recipients = tx - .get_reward_set_payouts_at(&intended_sortition) + .get_reward_set_payouts_at(intended_sortition) .map_err(|_e| op_error::BlockCommitBadOutputs)? .0; let block_height = SortitionDB::get_block_snapshot(tx.tx(), intended_sortition) diff --git a/stackslib/src/chainstate/coordinator/mod.rs b/stackslib/src/chainstate/coordinator/mod.rs index 122aedbefb..0e0846db38 100644 --- a/stackslib/src/chainstate/coordinator/mod.rs +++ b/stackslib/src/chainstate/coordinator/mod.rs @@ -798,12 +798,12 @@ pub fn get_reward_cycle_info( None }; - ic.get_chosen_pox_anchor(burnchain_db_conn_opt, &parent_bhh, &burnchain.pox_constants) + ic.get_chosen_pox_anchor(burnchain_db_conn_opt, parent_bhh, &burnchain.pox_constants) }?; let reward_cycle_info = if let Some((consensus_hash, stacks_block_hash, txid)) = reward_cycle_info { let anchor_block_known = StacksChainState::is_stacks_block_processed( - &chain_state.db(), + chain_state.db(), &consensus_hash, &stacks_block_hash, )?; @@ -966,7 +966,7 @@ fn forget_orphan_stacks_blocks( burn_header: &BurnchainHeaderHash, invalidation_height: u64, ) -> Result<(), Error> { - if let Ok(sns) = SortitionDB::get_all_snapshots_for_burn_block(&sort_conn, &burn_header) { + if let Ok(sns) = SortitionDB::get_all_snapshots_for_burn_block(sort_conn, burn_header) { for sn in sns.into_iter() { // only retry blocks that are truly in descendant // sortitions. @@ -1140,12 +1140,12 @@ impl< let mut ret = Vec::with_capacity(sort_ids.len()); for sort_id in sort_ids.iter() { - let sn = SortitionDB::get_block_snapshot(self.sortition_db.conn(), &sort_id)? + let sn = SortitionDB::get_block_snapshot(self.sortition_db.conn(), sort_id)? .expect("FATAL: have sortition ID without snapshot"); let sort_am = self .sortition_db - .find_sortition_tip_affirmation_map(&sort_id)?; + .find_sortition_tip_affirmation_map(sort_id)?; ret.push((sn, sort_am)); } @@ -1475,16 +1475,14 @@ impl< let mut found = false; for (sn, sn_am) in snapshots_and_ams.into_iter() { debug!( - "Snapshot {} height {} has AM `{}` (is prefix of `{}`?: {})", + "Snapshot {} height {} has AM `{sn_am}` (is prefix of `{compare_am}`?: {})", &sn.sortition_id, sn.block_height, - &sn_am, - &compare_am, &compare_am.has_prefix(&sn_am), ); if compare_am.has_prefix(&sn_am) { // have already processed this sortitoin - debug!("Already processed sortition {} at height {} with AM `{}` on comparative affirmation map {}", &sn.sortition_id, sn.block_height, &sn_am, &compare_am); + debug!("Already processed sortition {} at height {} with AM `{sn_am}` on comparative affirmation map {compare_am}", &sn.sortition_id, sn.block_height); found = true; last_invalidate_start_block = height; debug!( @@ -1563,12 +1561,10 @@ impl< for sort_id in sort_ids.iter() { let sort_am = self .sortition_db - .find_sortition_tip_affirmation_map(&sort_id)?; + .find_sortition_tip_affirmation_map(sort_id)?; debug!( - "Compare {} as prefix of {}? {}", - &compare_am, - &sort_am, + "Compare {compare_am} as prefix of {sort_am}? {}", compare_am.has_prefix(&sort_am) ); if compare_am.has_prefix(&sort_am) { @@ -1590,14 +1586,14 @@ impl< if prior_compare_am.has_prefix(&prior_sort_am) { // this is the first reward cycle where history diverged. found_diverged = true; - debug!("{} diverges from {}", &sort_am, &compare_am); + debug!("{sort_am} diverges from {compare_am}"); // careful -- we might have already procesed sortitions in this // reward cycle with this PoX ID, but that were never confirmed // by a subsequent prepare phase. let (new_last_invalidate_start_block, mut next_valid_sortitions) = self .find_valid_sortitions( - &compare_am, + compare_am, last_invalidate_start_block, canonical_burnchain_tip.block_height, )?; @@ -1666,7 +1662,7 @@ impl< &burn_header.block_hash, burn_header.block_height ); forget_orphan_stacks_blocks( - &ic, + ic, chainstate_db_tx, &burn_header.block_hash, burn_height.saturating_sub(1), @@ -1728,8 +1724,8 @@ impl< let last_2_05_rc = self.sortition_db.get_last_epoch_2_05_reward_cycle()?; let sortition_height = - SortitionDB::get_block_snapshot(self.sortition_db.conn(), &sortition_tip)? - .unwrap_or_else(|| panic!("FATAL: no sortition {}", &sortition_tip)) + SortitionDB::get_block_snapshot(self.sortition_db.conn(), sortition_tip)? + .unwrap_or_else(|| panic!("FATAL: no sortition {sortition_tip}")) .block_height; let sortition_reward_cycle = self @@ -1737,19 +1733,18 @@ impl< .block_height_to_reward_cycle(sortition_height) .unwrap_or(0); - let heaviest_am = self.get_heaviest_affirmation_map(&sortition_tip)?; + let heaviest_am = self.get_heaviest_affirmation_map(sortition_tip)?; if let Some(changed_reward_cycle) = self.check_chainstate_against_burnchain_affirmations()? { debug!( - "Canonical sortition tip is {} height {} (rc {}); changed reward cycle is {}", - &sortition_tip, sortition_height, sortition_reward_cycle, changed_reward_cycle + "Canonical sortition tip is {sortition_tip} height {sortition_height} (rc {sortition_reward_cycle}); changed reward cycle is {changed_reward_cycle}" ); if changed_reward_cycle >= sortition_reward_cycle { // nothing we can do - debug!("Changed reward cycle is {} but canonical sortition is in {}, so no affirmation reorg is possible", &changed_reward_cycle, sortition_reward_cycle); + debug!("Changed reward cycle is {changed_reward_cycle} but canonical sortition is in {sortition_reward_cycle}, so no affirmation reorg is possible"); return Ok(()); } @@ -1776,10 +1771,10 @@ impl< // If the sortition AM is not consistent with the canonical AM, then it // means that we have new anchor blocks to consider let canonical_affirmation_map = - self.get_canonical_affirmation_map(&sortition_tip)?; + self.get_canonical_affirmation_map(sortition_tip)?; let sort_am = self .sortition_db - .find_sortition_tip_affirmation_map(&sortition_tip)?; + .find_sortition_tip_affirmation_map(sortition_tip)?; let revalidation_params = if canonical_affirmation_map.len() == sort_am.len() && canonical_affirmation_map != sort_am @@ -1788,8 +1783,7 @@ impl< canonical_affirmation_map.find_divergence(&sort_am) { debug!( - "Sortition AM `{}` diverges from canonical AM `{}` at cycle {}", - &sort_am, &canonical_affirmation_map, diverged_rc + "Sortition AM `{sort_am}` diverges from canonical AM `{canonical_affirmation_map}` at cycle {diverged_rc}" ); let (last_invalid_sortition_height, valid_sortitions) = self .find_valid_sortitions( @@ -1811,8 +1805,7 @@ impl< }; if let Some(x) = revalidation_params { debug!( - "Sortition AM `{}` is not consistent with canonical AM `{}`", - &sort_am, &canonical_affirmation_map + "Sortition AM `{sort_am}` is not consistent with canonical AM `{canonical_affirmation_map}`" ); x } else { @@ -1826,16 +1819,16 @@ impl< let (canonical_ch, canonical_bhh, canonical_height) = Self::find_highest_stacks_block_with_compatible_affirmation_map( &heaviest_am, - &sortition_tip, + sortition_tip, &self.burnchain_blocks_db, &mut sort_tx, - &self.chain_state_db.db(), + self.chain_state_db.db(), )?; let stacks_am = inner_static_get_stacks_tip_affirmation_map( &self.burnchain_blocks_db, last_2_05_rc, - &sort_tx.find_sortition_tip_affirmation_map(&sortition_tip)?, + &sort_tx.find_sortition_tip_affirmation_map(sortition_tip)?, &sort_tx, &canonical_ch, &canonical_bhh, @@ -1845,7 +1838,7 @@ impl< SortitionDB::revalidate_snapshot_with_block( &sort_tx, - &sortition_tip, + sortition_tip, &canonical_ch, &canonical_bhh, canonical_height, @@ -1859,7 +1852,7 @@ impl< // check valid_sortitions -- it may correspond to a range of sortitions beyond our // current highest-valid sortition (in which case, *do not* revalidate them) - let valid_sortitions = if let Some(ref first_sn) = valid_sortitions.first() { + let valid_sortitions = if let Some(first_sn) = valid_sortitions.first() { if first_sn.block_height > sortition_height { debug!("No sortitions to revalidate: highest is {},{}, first candidate is {},{}. Will not revalidate.", sortition_height, &sortition_tip, first_sn.block_height, &first_sn.sortition_id); vec![] @@ -1917,7 +1910,7 @@ impl< let invalidate_sn = SortitionDB::get_ancestor_snapshot( &ic, last_invalidate_start_block - 1, - &sortition_tip, + sortition_tip, )? .unwrap_or_else(|| { panic!( @@ -1953,7 +1946,7 @@ impl< |sort_tx| { // no more sortitions to invalidate -- all now-incompatible // sortitions have been invalidated. - let (canonical_ch, canonical_bhh, canonical_height) = Self::find_highest_stacks_block_with_compatible_affirmation_map(&heaviest_am, &highest_valid_sortition_id, &self.burnchain_blocks_db, sort_tx, &chainstate_db_conn) + let (canonical_ch, canonical_bhh, canonical_height) = Self::find_highest_stacks_block_with_compatible_affirmation_map(&heaviest_am, &highest_valid_sortition_id, &self.burnchain_blocks_db, sort_tx, chainstate_db_conn) .expect("FATAL: could not find a valid parent Stacks block"); let stacks_am = inner_static_get_stacks_tip_affirmation_map( @@ -1972,7 +1965,7 @@ impl< for valid_sn in valid_sortitions.iter() { test_debug!("Revalidate snapshot {},{}", valid_sn.block_height, &valid_sn.sortition_id); let block_known = StacksChainState::is_stacks_block_processed( - &chainstate_db_conn, + chainstate_db_conn, &valid_sn.consensus_hash, &valid_sn.winning_stacks_block_hash, ).expect("FATAL: failed to query chainstate DB"); @@ -1986,7 +1979,7 @@ impl< let invalidate_sn = SortitionDB::get_ancestor_snapshot_tx( sort_tx, last_invalidate_start_block - 1, - &sortition_tip, + sortition_tip, ) .expect("FATAL: failed to query the sortition DB") .unwrap_or_else(|| panic!("BUG: no ancestral sortition at height {}", @@ -2003,7 +1996,7 @@ impl< }; // recalculate highest valid stacks tip - let (canonical_ch, canonical_bhh, canonical_height) = Self::find_highest_stacks_block_with_compatible_affirmation_map(&heaviest_am, &highest_valid_sortition_id, &self.burnchain_blocks_db, sort_tx, &chainstate_db_conn) + let (canonical_ch, canonical_bhh, canonical_height) = Self::find_highest_stacks_block_with_compatible_affirmation_map(&heaviest_am, &highest_valid_sortition_id, &self.burnchain_blocks_db, sort_tx, chainstate_db_conn) .expect("FATAL: could not find a valid parent Stacks block"); let stacks_am = inner_static_get_stacks_tip_affirmation_map( @@ -2030,7 +2023,7 @@ impl< .expect("FATAL: no such dirty sortition"); let block_known = StacksChainState::is_stacks_block_processed( - &chainstate_db_conn, + chainstate_db_conn, &dirty_sort_sn.consensus_hash, &dirty_sort_sn.winning_stacks_block_hash, ).expect("FATAL: failed to query chainstate DB"); @@ -2040,7 +2033,7 @@ impl< } // recalculate highest valid stacks tip once more - let (canonical_ch, canonical_bhh, canonical_height) = Self::find_highest_stacks_block_with_compatible_affirmation_map(&heaviest_am, &highest_valid_sortition_id, &self.burnchain_blocks_db, sort_tx, &chainstate_db_conn) + let (canonical_ch, canonical_bhh, canonical_height) = Self::find_highest_stacks_block_with_compatible_affirmation_map(&heaviest_am, &highest_valid_sortition_id, &self.burnchain_blocks_db, sort_tx, chainstate_db_conn) .expect("FATAL: could not find a valid parent Stacks block"); let stacks_am = inner_static_get_stacks_tip_affirmation_map( @@ -2060,7 +2053,7 @@ impl< .expect("FATAL: highest valid sortition ID does not have a snapshot"); let block_known = StacksChainState::is_stacks_block_processed( - &chainstate_db_conn, + chainstate_db_conn, &highest_valid_sn.consensus_hash, &highest_valid_sn.winning_stacks_block_hash, ).expect("FATAL: failed to query chainstate DB"); @@ -2086,7 +2079,7 @@ impl< // un-orphan blocks that had been orphaned but were tied to this now-revalidated sortition history Self::undo_stacks_block_orphaning( - &self.burnchain_blocks_db.conn(), + self.burnchain_blocks_db.conn(), &self.burnchain_indexer, &ic, &mut chainstate_db_tx, @@ -2102,7 +2095,7 @@ impl< .map_err(|e| DBError::SqliteError(e))?; let highest_valid_snapshot = SortitionDB::get_block_snapshot( - &self.sortition_db.conn(), + self.sortition_db.conn(), &highest_valid_sortition_id, )? .expect("FATAL: highest valid sortition doesn't exist"); @@ -2131,7 +2124,7 @@ impl< self.canonical_sortition_tip = Some(highest_valid_snapshot.sortition_id); } else { let highest_valid_snapshot = - SortitionDB::get_block_snapshot(&self.sortition_db.conn(), &sortition_tip)? + SortitionDB::get_block_snapshot(self.sortition_db.conn(), sortition_tip)? .expect("FATAL: highest valid sortition doesn't exist"); let stacks_tip_affirmation_map = static_get_stacks_tip_affirmation_map( @@ -2181,7 +2174,7 @@ impl< test_debug!( "Verify affirmation against PoX info in reward cycle {} canonical affirmation map {}", new_reward_cycle, - &canonical_affirmation_map + canonical_affirmation_map ); let new_status = if new_reward_cycle > 0 @@ -2195,7 +2188,7 @@ impl< .at(affirmed_rc) .expect("BUG: checked index overflow") .to_owned(); - test_debug!("Affirmation '{}' for anchor block of previous reward cycle {} canonical affirmation map {}", &affirmation, affirmed_rc, &canonical_affirmation_map); + test_debug!("Affirmation '{affirmation}' for anchor block of previous reward cycle {affirmed_rc} canonical affirmation map {canonical_affirmation_map}"); // switch reward cycle info assessment based on what the network // affirmed. @@ -2213,7 +2206,7 @@ impl< AffirmationMapEntry::PoxAnchorBlockAbsent => { // network actually affirms that this anchor block // is absent. - warn!("Chose PoX anchor block for reward cycle {}, but it is affirmed absent by the network", affirmed_rc; "affirmation map" => %&canonical_affirmation_map); + warn!("Chose PoX anchor block for reward cycle {affirmed_rc}, but it is affirmed absent by the network"; "affirmation map" => %&canonical_affirmation_map); PoxAnchorBlockStatus::SelectedAndUnknown( block_hash.clone(), txid.clone(), @@ -2232,7 +2225,7 @@ impl< // exists, but we don't have it locally. Stop // processing here and wait for it to arrive, via // the downloader. - info!("Anchor block {} (txid {}) for reward cycle {} is affirmed by the network ({}), but must be downloaded", block_hash, txid, affirmed_rc, canonical_affirmation_map); + info!("Anchor block {block_hash} (txid {txid}) for reward cycle {affirmed_rc} is affirmed by the network ({canonical_affirmation_map}), but must be downloaded"); return Ok(Some(block_hash.clone())); } AffirmationMapEntry::PoxAnchorBlockAbsent => { @@ -2369,20 +2362,19 @@ impl< // NOTE: this mutates rc_info if it returns None if let Some(missing_anchor_block) = self.reinterpret_affirmed_pox_anchor_block_status( - &canonical_affirmation_map, - &header, + canonical_affirmation_map, + header, rc_info, )? { if self.config.require_affirmed_anchor_blocks { // missing this anchor block -- cannot proceed until we have it info!( - "Burnchain block processing stops due to missing affirmed anchor stacks block hash {}", - &missing_anchor_block + "Burnchain block processing stops due to missing affirmed anchor stacks block hash {missing_anchor_block}" ); return Ok(Some(missing_anchor_block)); } else { // this and descendant sortitions might already exist - info!("Burnchain block processing will continue in spite of missing affirmed anchor stacks block hash {}", &missing_anchor_block); + info!("Burnchain block processing will continue in spite of missing affirmed anchor stacks block hash {missing_anchor_block}"); } } } @@ -2429,7 +2421,7 @@ impl< sn_tip ) }), - None => SortitionDB::get_canonical_burn_chain_tip(&self.sortition_db.conn())?, + None => SortitionDB::get_canonical_burn_chain_tip(self.sortition_db.conn())?, }; let target_epoch_index = StacksEpoch::find_epoch(&epochs, canonical_snapshot.block_height) .expect("FATAL: epoch not defined for BlockSnapshot height"); @@ -2491,7 +2483,7 @@ impl< sn_tip ) }), - None => SortitionDB::get_canonical_burn_chain_tip(&self.sortition_db.conn())?, + None => SortitionDB::get_canonical_burn_chain_tip(self.sortition_db.conn())?, }; let cur_epoch = SortitionDB::get_stacks_epoch( self.sortition_db.conn(), @@ -2517,7 +2509,7 @@ impl< sn_tip ) }), - None => SortitionDB::get_canonical_burn_chain_tip(&self.sortition_db.conn())?, + None => SortitionDB::get_canonical_burn_chain_tip(self.sortition_db.conn())?, }; let canonical_burnchain_tip = self.burnchain_blocks_db.get_canonical_chain_tip()?; @@ -2537,15 +2529,12 @@ impl< // We halt the ancestry research as soon as we find a processed parent let mut last_processed_ancestor = loop { if let Some(found_sortition) = self.sortition_db.is_sortition_processed(&cursor)? { - debug!( - "Ancestor sortition {} of block {} is processed", - &found_sortition, &cursor - ); + debug!("Ancestor sortition {found_sortition} of block {cursor} is processed"); break found_sortition; } let current_block = - BurnchainDB::get_burnchain_block(&self.burnchain_blocks_db.conn(), &cursor) + BurnchainDB::get_burnchain_block(self.burnchain_blocks_db.conn(), &cursor) .map_err(|e| { warn!( "ChainsCoordinator: could not retrieve block burnhash={}", @@ -2665,7 +2654,7 @@ impl< if sortition.sortition { if let Some(stacks_block_header) = StacksChainState::get_stacks_block_header_info_by_index_block_hash( - &self.chain_state_db.db(), + self.chain_state_db.db(), &StacksBlockId::new( &sortition.consensus_hash, &sortition.winning_stacks_block_hash, @@ -2858,7 +2847,7 @@ impl< &highest_valid_sortition_id, &self.burnchain_blocks_db, &mut sort_tx, - &chainstate_db_conn, + chainstate_db_conn, ) .expect("FATAL: could not find a valid parent Stacks block"); @@ -2886,7 +2875,7 @@ impl< .expect("FATAL: no snapshot for highest valid sortition ID"); let block_known = StacksChainState::is_stacks_block_processed( - &chainstate_db_conn, + chainstate_db_conn, &highest_valid_sn.consensus_hash, &highest_valid_sn.winning_stacks_block_hash, ) @@ -3113,7 +3102,7 @@ impl< ); self.replay_stacks_blocks( - &canonical_snapshot, + canonical_snapshot, vec![next_snapshot.winning_stacks_block_hash.clone()], )?; } @@ -3212,11 +3201,11 @@ impl< ) -> Result, Error> { // use affirmation maps even if they're not supported yet. // if the chain is healthy, this won't cause a chain split. - match self.check_pox_anchor_affirmation(pox_anchor, &pox_anchor_snapshot) { + match self.check_pox_anchor_affirmation(pox_anchor, pox_anchor_snapshot) { Ok(Some(pox_anchor)) => { // yup, affirmed. Report it for subsequent reward cycle calculation. let block_id = StacksBlockId::new(&pox_anchor_snapshot.consensus_hash, &pox_anchor); - if !StacksChainState::has_stacks_block(&self.chain_state_db.db(), &block_id)? { + if !StacksChainState::has_stacks_block(self.chain_state_db.db(), &block_id)? { debug!( "Have NOT processed anchor block {}/{}", &pox_anchor_snapshot.consensus_hash, pox_anchor @@ -3496,42 +3485,36 @@ pub fn check_chainstate_db_versions( let mut cur_epoch_opt = None; if fs::metadata(&sortdb_path).is_ok() { // check sortition DB and load up the current epoch - let max_height = SortitionDB::get_highest_block_height_from_path(&sortdb_path) + let max_height = SortitionDB::get_highest_block_height_from_path(sortdb_path) .expect("FATAL: could not query sortition DB for maximum block height"); let cur_epoch_idx = StacksEpoch::find_epoch(epochs, max_height) - .unwrap_or_else(|| panic!("FATAL: no epoch defined for burn height {}", max_height)); + .unwrap_or_else(|| panic!("FATAL: no epoch defined for burn height {max_height}")); let cur_epoch = epochs[cur_epoch_idx].epoch_id; // save for later cur_epoch_opt = Some(cur_epoch.clone()); - let db_version = SortitionDB::get_db_version_from_path(&sortdb_path)? + let db_version = SortitionDB::get_db_version_from_path(sortdb_path)? .expect("FATAL: could not load sortition DB version"); if !SortitionDB::is_db_version_supported_in_epoch(cur_epoch, &db_version) { - error!( - "Sortition DB at {} does not support epoch {}", - &sortdb_path, cur_epoch - ); + error!("Sortition DB at {sortdb_path} does not support epoch {cur_epoch}"); return Ok(false); } } else { warn!("Sortition DB {} does not exist; assuming it will be instantiated with the correct version", sortdb_path); } - if fs::metadata(&chainstate_path).is_ok() { + if fs::metadata(chainstate_path).is_ok() { let cur_epoch = cur_epoch_opt.expect( "FATAL: chainstate corruption: sortition DB does not exist, but chainstate does.", ); - let db_config = StacksChainState::get_db_config_from_path(&chainstate_path)?; + let db_config = StacksChainState::get_db_config_from_path(chainstate_path)?; if !db_config.supports_epoch(cur_epoch) { - error!( - "Chainstate DB at {} does not support epoch {}", - &chainstate_path, cur_epoch - ); + error!("Chainstate DB at {chainstate_path} does not support epoch {cur_epoch}"); return Ok(false); } } else { - warn!("Chainstate DB {} does not exist; assuming it will be instantiated with the correct version", chainstate_path); + warn!("Chainstate DB {chainstate_path} does not exist; assuming it will be instantiated with the correct version"); } Ok(true) @@ -3554,7 +3537,7 @@ impl SortitionDBMigrator { chainstate_path: &str, marf_opts: Option, ) -> Result { - let db_config = StacksChainState::get_db_config_from_path(&chainstate_path)?; + let db_config = StacksChainState::get_db_config_from_path(chainstate_path)?; let (chainstate, _) = StacksChainState::open( db_config.mainnet, db_config.chain_id, @@ -3647,11 +3630,11 @@ pub fn migrate_chainstate_dbs( chainstate_path, chainstate_marf_opts.clone(), )?; - SortitionDB::migrate_if_exists(&sortdb_path, epochs, migrator)?; + SortitionDB::migrate_if_exists(sortdb_path, epochs, migrator)?; } if fs::metadata(&chainstate_path).is_ok() { info!("Migrating chainstate DB to the latest schema version"); - let db_config = StacksChainState::get_db_config_from_path(&chainstate_path)?; + let db_config = StacksChainState::get_db_config_from_path(chainstate_path)?; // this does the migration internally let _ = StacksChainState::open( diff --git a/stackslib/src/chainstate/coordinator/tests.rs b/stackslib/src/chainstate/coordinator/tests.rs index 0863708122..7c05a9537d 100644 --- a/stackslib/src/chainstate/coordinator/tests.rs +++ b/stackslib/src/chainstate/coordinator/tests.rs @@ -128,7 +128,7 @@ pub fn produce_burn_block<'a, I: Iterator>( ) -> BurnchainHeaderHash { let BurnchainBlockData { header: par_header, .. - } = BurnchainDB::get_burnchain_block(&burnchain_db.conn(), par).unwrap(); + } = BurnchainDB::get_burnchain_block(burnchain_db.conn(), par).unwrap(); assert_eq!(&par_header.block_hash, par); let block_height = par_header.block_height + 1; for op in ops.iter_mut() { @@ -159,7 +159,7 @@ fn produce_burn_block_do_not_set_height<'a, I: Iterator BurnchainHeaderHash { let BurnchainBlockData { header: par_header, .. - } = BurnchainDB::get_burnchain_block(&burnchain_db.conn(), par).unwrap(); + } = BurnchainDB::get_burnchain_block(burnchain_db.conn(), par).unwrap(); assert_eq!(&par_header.block_hash, par); let block_height = par_header.block_height + 1; let timestamp = par_header.timestamp + 1; @@ -902,7 +902,7 @@ fn make_stacks_block_with_input( eprintln!( "Find parents stacks header: {} in sortition {} (height {}, parent {}/{},{}, index block hash {})", - &parent_block, &parents_sortition.sortition_id, parents_sortition.block_height, &parents_sortition.consensus_hash, parent_block, parent_height, &StacksBlockHeader::make_index_block_hash(&parents_sortition.consensus_hash, &parent_block) + &parent_block, &parents_sortition.sortition_id, parents_sortition.block_height, &parents_sortition.consensus_hash, parent_block, parent_height, &StacksBlockHeader::make_index_block_hash(&parents_sortition.consensus_hash, parent_block) ); let parent_vtxindex = @@ -6409,7 +6409,7 @@ fn test_pox_no_anchor_selected() { path_blinded, &sort_db_blind, &mut coord_blind, - &sort_id, + sort_id, block, ); } @@ -6805,7 +6805,7 @@ fn reveal_block { F: FnMut(&mut NakamotoBlockBuilder), G: FnMut(&mut NakamotoBlock) -> bool, { - let sender_addr = StacksAddress::p2pkh(false, &StacksPublicKey::from_private(&sender_key)); + let sender_addr = StacksAddress::p2pkh(false, &StacksPublicKey::from_private(sender_key)); let mut test_signers = self.config.test_signers.clone().unwrap(); let recipient_addr = StacksAddress::from_string("ST2YM3J4KQK09V670TD6ZZ1XYNYCNGCWCVTASN5VM").unwrap(); @@ -629,7 +629,7 @@ impl TestPeer<'_> { let stx_transfer = make_token_transfer( chainstate, sortdb, - &sender_key, + sender_key, sender_acct.nonce, 200, 1, @@ -987,7 +987,7 @@ fn block_info_tests(use_primary_testnet: bool) { let output = chainstate .clarity_eval_read_only( &sortdb_handle, - &tip_block_id, + tip_block_id, contract_id, &format!("(get-info u{query_ht})"), ) diff --git a/stackslib/src/chainstate/nakamoto/miner.rs b/stackslib/src/chainstate/nakamoto/miner.rs index fe6b75f9cb..6c4392517b 100644 --- a/stackslib/src/chainstate/nakamoto/miner.rs +++ b/stackslib/src/chainstate/nakamoto/miner.rs @@ -265,7 +265,7 @@ impl NakamotoBlockBuilder { debug!("Nakamoto miner tenure begin"; "shadow" => shadow_block, "tenure_change" => ?cause); let Some(tenure_election_sn) = - SortitionDB::get_block_snapshot_consensus(&burn_dbconn, &self.header.consensus_hash)? + SortitionDB::get_block_snapshot_consensus(burn_dbconn, &self.header.consensus_hash)? else { warn!("Could not find sortition snapshot for burn block that elected the miner"; "consensus_hash" => %self.header.consensus_hash, @@ -279,7 +279,7 @@ impl NakamotoBlockBuilder { None } else { let Some(tenure_block_commit) = SortitionDB::get_block_commit( - &burn_dbconn, + burn_dbconn, &tenure_election_sn.winning_block_txid, &tenure_election_sn.sortition_id, )? @@ -674,7 +674,7 @@ impl BlockBuilder for NakamotoBlockBuilder { ast_rules: ASTRules, ) -> TransactionResult { if self.bytes_so_far + tx_len >= MAX_EPOCH_SIZE.into() { - return TransactionResult::skipped_due_to_error(&tx, Error::BlockTooBigError); + return TransactionResult::skipped_due_to_error(tx, Error::BlockTooBigError); } let non_boot_code_contract_call = match &tx.payload { @@ -687,14 +687,14 @@ impl BlockBuilder for NakamotoBlockBuilder { BlockLimitFunction::CONTRACT_LIMIT_HIT => { if non_boot_code_contract_call { return TransactionResult::skipped( - &tx, + tx, "BlockLimitFunction::CONTRACT_LIMIT_HIT".to_string(), ); } } BlockLimitFunction::LIMIT_REACHED => { return TransactionResult::skipped( - &tx, + tx, "BlockLimitFunction::LIMIT_REACHED".to_string(), ) } @@ -707,14 +707,14 @@ impl BlockBuilder for NakamotoBlockBuilder { if let Err(e) = Relayer::static_check_problematic_relayed_tx( clarity_tx.config.mainnet, clarity_tx.get_epoch(), - &tx, + tx, ast_rules, ) { info!( "Detected problematic tx {} while mining; dropping from mempool", tx.txid() ); - return TransactionResult::problematic(&tx, Error::NetError(e)); + return TransactionResult::problematic(tx, Error::NetError(e)); } let cost_before = clarity_tx.cost_so_far(); @@ -745,7 +745,7 @@ impl BlockBuilder for NakamotoBlockBuilder { // save self.txs.push(tx.clone()); - TransactionResult::success_with_soft_limit(&tx, fee, receipt, soft_limit_reached) + TransactionResult::success_with_soft_limit(tx, fee, receipt, soft_limit_reached) }; self.bytes_so_far += tx_len; @@ -758,9 +758,9 @@ fn parse_process_transaction_error( tx: &StacksTransaction, e: Error, ) -> TransactionResult { - let (is_problematic, e) = TransactionResult::is_problematic(&tx, e, clarity_tx.get_epoch()); + let (is_problematic, e) = TransactionResult::is_problematic(tx, e, clarity_tx.get_epoch()); if is_problematic { - TransactionResult::problematic(&tx, e) + TransactionResult::problematic(tx, e) } else { match e { Error::CostOverflowError(cost_before, cost_after, total_budget) => { @@ -781,18 +781,16 @@ fn parse_process_transaction_error( warn!("Failed to compute measured cost of a too big transaction"); None }; - TransactionResult::error(&tx, Error::TransactionTooBigError(measured_cost)) + TransactionResult::error(tx, Error::TransactionTooBigError(measured_cost)) } else { warn!( - "Transaction {} reached block cost {}; budget was {}", + "Transaction {} reached block cost {cost_after}; budget was {total_budget}", tx.txid(), - &cost_after, - &total_budget ); - TransactionResult::skipped_due_to_error(&tx, Error::BlockTooBigError) + TransactionResult::skipped_due_to_error(tx, Error::BlockTooBigError) } } - _ => TransactionResult::error(&tx, e), + _ => TransactionResult::error(tx, e), } } } diff --git a/stackslib/src/chainstate/nakamoto/mod.rs b/stackslib/src/chainstate/nakamoto/mod.rs index 5f30ac51fc..6740916b38 100644 --- a/stackslib/src/chainstate/nakamoto/mod.rs +++ b/stackslib/src/chainstate/nakamoto/mod.rs @@ -1765,7 +1765,7 @@ impl NakamotoChainState { continue; }; - let Ok(_) = staging_block_tx.set_block_orphaned(&block_id).map_err(|e| { + let Ok(_) = staging_block_tx.set_block_orphaned(block_id).map_err(|e| { warn!("Failed to mark {} as orphaned: {:?}", &block_id, &e); e }) else { @@ -2122,7 +2122,7 @@ impl NakamotoChainState { // succeeds, since *we have already processed* the block. Self::infallible_set_block_processed(stacks_chain_state, &block_id); - let signer_bitvec = (&next_ready_block).header.pox_treatment.clone(); + let signer_bitvec = (next_ready_block).header.pox_treatment.clone(); let block_timestamp = next_ready_block.header.timestamp; @@ -2172,7 +2172,7 @@ impl NakamotoChainState { dispatcher.announce_block( &block_event, &receipt.header.clone(), - &tx_receipts, + tx_receipts, &parent_block_id, next_ready_block_snapshot.winning_block_txid, &receipt.matured_rewards, @@ -2949,7 +2949,7 @@ impl NakamotoChainState { let parent_sortition_id = SortitionDB::get_block_commit_parent_sortition_id( sortdb_conn, - &block_commit_txid, + block_commit_txid, &sn.sortition_id, )? .ok_or(ChainstateError::InvalidStacksBlock( @@ -3153,7 +3153,7 @@ impl NakamotoChainState { let block_hash = header.block_hash(); - let index_block_hash = StacksBlockId::new(&consensus_hash, &block_hash); + let index_block_hash = StacksBlockId::new(consensus_hash, &block_hash); assert!(*stacks_block_height < u64::try_from(i64::MAX).unwrap()); @@ -3277,7 +3277,7 @@ impl NakamotoChainState { StacksBlockHeaderTypes::Epoch2(..) => { assert_eq!( new_tip.parent_block_id, - StacksBlockId::new(&parent_consensus_hash, &parent_tip.block_hash()) + StacksBlockId::new(parent_consensus_hash, &parent_tip.block_hash()) ); } StacksBlockHeaderTypes::Nakamoto(nakamoto_header) => { @@ -3401,7 +3401,7 @@ impl NakamotoChainState { + if new_tenure { 0 } else { - Self::get_total_tenure_tx_fees_at(&headers_tx, &parent_hash)?.ok_or_else(|| { + Self::get_total_tenure_tx_fees_at(headers_tx, &parent_hash)?.ok_or_else(|| { warn!( "Failed to fetch parent block's total tx fees"; "parent_block_id" => %parent_hash, @@ -3432,7 +3432,7 @@ impl NakamotoChainState { Self::insert_stacks_block_header( headers_tx.deref_mut(), &new_tip_info, - &new_tip, + new_tip, new_vrf_proof, anchor_block_cost, total_tenure_cost, @@ -3530,7 +3530,7 @@ impl NakamotoChainState { let signer_sighash = block.header.signer_signature_hash(); for signer_signature in &block.header.signer_signature { let signer_pubkey = - StacksPublicKey::recover_to_pubkey(signer_sighash.bits(), &signer_signature) + StacksPublicKey::recover_to_pubkey(signer_sighash.bits(), signer_signature) .map_err(|e| ChainstateError::InvalidStacksBlock(e.to_string()))?; let sql = "INSERT INTO signer_stats(public_key,reward_cycle) VALUES(?1,?2) ON CONFLICT(public_key,reward_cycle) DO UPDATE SET blocks_signed=blocks_signed+1"; let params = params![signer_pubkey.to_hex(), reward_cycle]; @@ -4042,7 +4042,7 @@ impl NakamotoChainState { signer_set_calc = NakamotoSigners::check_and_handle_prepare_phase_start( &mut clarity_tx, first_block_height, - &pox_constants, + pox_constants, burn_header_height.into(), coinbase_height, )?; @@ -4091,7 +4091,7 @@ impl NakamotoChainState { miner_payouts: Option<&MaturedMinerRewards>, ) -> Result, ChainstateError> { // add miner payments - if let Some(ref rewards) = miner_payouts { + if let Some(rewards) = miner_payouts { // grant in order by miner, then users let matured_ustx = StacksChainState::process_matured_miner_rewards( clarity_tx, @@ -4220,7 +4220,7 @@ impl NakamotoChainState { > { // get burn block stats, for the transaction receipt - let parent_sn = SortitionDB::get_block_snapshot_consensus(burn_dbconn, &parent_ch)? + let parent_sn = SortitionDB::get_block_snapshot_consensus(burn_dbconn, parent_ch)? .ok_or_else(|| { // shouldn't happen warn!( @@ -4477,7 +4477,7 @@ impl NakamotoChainState { burn_dbconn, first_block_height, pox_constants, - &parent_chain_tip, + parent_chain_tip, parent_ch, parent_block_hash, parent_chain_tip.burn_header_height, @@ -4639,7 +4639,7 @@ impl NakamotoChainState { &mut chainstate_tx.tx, &parent_chain_tip.anchored_header, &parent_chain_tip.consensus_hash, - &block, + block, vrf_proof_opt, chain_tip_burn_header_hash, chain_tip_burn_header_height, @@ -4849,7 +4849,7 @@ impl NakamotoChainState { tip: &BlockSnapshot, election_sortition: &ConsensusHash, ) -> Result>, ChainstateError> { - let (stackerdb_config, miners_info) = Self::make_miners_stackerdb_config(sortdb, &tip)?; + let (stackerdb_config, miners_info) = Self::make_miners_stackerdb_config(sortdb, tip)?; // find out which slot we're in let Some(signer_ix) = miners_info diff --git a/stackslib/src/chainstate/nakamoto/shadow.rs b/stackslib/src/chainstate/nakamoto/shadow.rs index dad10f62e0..3bf157d3e5 100644 --- a/stackslib/src/chainstate/nakamoto/shadow.rs +++ b/stackslib/src/chainstate/nakamoto/shadow.rs @@ -484,7 +484,7 @@ impl NakamotoBlockBuilder { tip: &StacksHeaderInfo, ) -> Result { let snapshot = - SortitionDB::get_block_snapshot_consensus(&sortdb.conn(), &tip.consensus_hash)? + SortitionDB::get_block_snapshot_consensus(sortdb.conn(), &tip.consensus_hash)? .ok_or_else(|| Error::NoSuchBlockError)?; let account = chainstate @@ -734,7 +734,7 @@ impl NakamotoBlockBuilder { block_txs.append(&mut txs); let (mut shadow_block, _size, _cost) = Self::make_shadow_block_from_txs( builder, - &chainstate, + chainstate, &sortdb.index_handle(&burn_tip.sortition_id), &tenure_id_consensus_hash, block_txs, @@ -968,7 +968,7 @@ pub fn shadow_chainstate_repair( ) -> Result, ChainstateError> { let sort_tip = SortitionDB::get_canonical_burn_chain_tip(sort_db.conn())?; - let header = NakamotoChainState::get_canonical_block_header(chain_state.db(), &sort_db)? + let header = NakamotoChainState::get_canonical_block_header(chain_state.db(), sort_db)? .ok_or_else(|| ChainstateError::NoSuchBlockError)?; let header_sn = @@ -987,7 +987,7 @@ pub fn shadow_chainstate_repair( .get_block_snapshot_by_height(burn_height)? .ok_or_else(|| ChainstateError::InvalidStacksBlock("No sortition at height".into()))?; - let header = NakamotoChainState::get_canonical_block_header(chain_state.db(), &sort_db)? + let header = NakamotoChainState::get_canonical_block_header(chain_state.db(), sort_db)? .ok_or_else(|| ChainstateError::NoSuchBlockError)?; let chain_tip = header.index_block_hash(); diff --git a/stackslib/src/chainstate/nakamoto/signer_set.rs b/stackslib/src/chainstate/nakamoto/signer_set.rs index 38e76f7e51..f947d4abc7 100644 --- a/stackslib/src/chainstate/nakamoto/signer_set.rs +++ b/stackslib/src/chainstate/nakamoto/signer_set.rs @@ -232,7 +232,7 @@ impl NakamotoSigners { let liquid_ustx = clarity.with_clarity_db_readonly(|db| db.get_total_liquid_ustx())?; let reward_slots = Self::get_reward_slots(clarity, reward_cycle, pox_contract)?; let (threshold, participation) = StacksChainState::get_reward_threshold_and_participation( - &pox_constants, + pox_constants, &reward_slots[..], liquid_ustx, ); @@ -322,13 +322,13 @@ impl NakamotoSigners { |vm_env| { vm_env.execute_in_env(sender_addr.clone(), None, None, |env| { env.execute_contract_allow_private( - &signers_contract, + signers_contract, "stackerdb-set-signer-slots", &set_stackerdb_args, false, )?; env.execute_contract_allow_private( - &signers_contract, + signers_contract, "set-signers", &set_signers_args, false, @@ -435,7 +435,7 @@ impl NakamotoSigners { .as_free_transaction(|clarity| { Self::handle_signer_stackerdb_update( clarity, - &pox_constants, + pox_constants, cycle_of_prepare_phase, active_pox_contract, coinbase_height, @@ -568,7 +568,7 @@ impl NakamotoSigners { transactions: Vec, ) { for transaction in transactions { - if NakamotoSigners::valid_vote_transaction(&account_nonces, &transaction, mainnet) { + if NakamotoSigners::valid_vote_transaction(account_nonces, &transaction, mainnet) { let origin_address = transaction.origin_address(); let origin_nonce = transaction.get_origin_nonce(); if let Some(entry) = filtered_transactions.get_mut(&origin_address) { diff --git a/stackslib/src/chainstate/nakamoto/staging_blocks.rs b/stackslib/src/chainstate/nakamoto/staging_blocks.rs index 9190bf99af..d11d81fe7f 100644 --- a/stackslib/src/chainstate/nakamoto/staging_blocks.rs +++ b/stackslib/src/chainstate/nakamoto/staging_blocks.rs @@ -520,7 +520,7 @@ impl NakamotoStagingBlocksTx<'_> { "UPDATE nakamoto_staging_blocks SET processed = 1, processed_time = ?2 WHERE index_block_hash = ?1"; self.execute( - &clear_staged_block, + clear_staged_block, params![block, u64_to_sql(get_epoch_time_secs())?], )?; @@ -534,13 +534,13 @@ impl NakamotoStagingBlocksTx<'_> { let update_dependents = "UPDATE nakamoto_staging_blocks SET orphaned = 1 WHERE parent_block_id = ?"; - self.execute(&update_dependents, &[&block])?; + self.execute(update_dependents, &[&block])?; let clear_staged_block = "UPDATE nakamoto_staging_blocks SET processed = 1, processed_time = ?2, orphaned = 1 WHERE index_block_hash = ?1"; self.execute( - &clear_staged_block, + clear_staged_block, params![block, u64_to_sql(get_epoch_time_secs())?], )?; @@ -555,7 +555,7 @@ impl NakamotoStagingBlocksTx<'_> { ) -> Result<(), ChainstateError> { let update_dependents = "UPDATE nakamoto_staging_blocks SET burn_attachable = 1 WHERE consensus_hash = ?"; - self.execute(&update_dependents, &[consensus_hash])?; + self.execute(update_dependents, &[consensus_hash])?; Ok(()) } @@ -743,13 +743,13 @@ impl StacksChainState { pub fn get_nakamoto_staging_blocks_db_version( conn: &Connection, ) -> Result { - let db_version_exists = table_exists(&conn, "db_version")?; + let db_version_exists = table_exists(conn, "db_version")?; if !db_version_exists { return Ok(1); } let qry = "SELECT version FROM db_version ORDER BY version DESC LIMIT 1"; let args = NO_PARAMS; - let version: Option = match query_row(&conn, qry, args) { + let version: Option = match query_row(conn, qry, args) { Ok(x) => x, Err(e) => { error!("Failed to get Nakamoto staging blocks DB version: {:?}", &e); diff --git a/stackslib/src/chainstate/nakamoto/tenure.rs b/stackslib/src/chainstate/nakamoto/tenure.rs index a0e516f283..3d218f85e0 100644 --- a/stackslib/src/chainstate/nakamoto/tenure.rs +++ b/stackslib/src/chainstate/nakamoto/tenure.rs @@ -372,7 +372,7 @@ impl NakamotoChainState { let matured_coinbase_height = coinbase_height - MINER_REWARD_MATURITY; let matured_tenure_block_header = Self::get_header_by_coinbase_height( chainstate_tx.deref_mut(), - &tip_index_hash, + tip_index_hash, matured_coinbase_height, )? .ok_or_else(|| { diff --git a/stackslib/src/chainstate/nakamoto/test_signers.rs b/stackslib/src/chainstate/nakamoto/test_signers.rs index 6fd559da69..46e4345333 100644 --- a/stackslib/src/chainstate/nakamoto/test_signers.rs +++ b/stackslib/src/chainstate/nakamoto/test_signers.rs @@ -128,7 +128,7 @@ impl TestSigners { self.generate_aggregate_key(cycle); } - let signer_signature = self.generate_block_signatures(&block); + let signer_signature = self.generate_block_signatures(block); test_debug!( "Signed Nakamoto block {} with {} signatures (rc {})", diff --git a/stackslib/src/chainstate/nakamoto/tests/mod.rs b/stackslib/src/chainstate/nakamoto/tests/mod.rs index bd415b68b0..aa3acc2546 100644 --- a/stackslib/src/chainstate/nakamoto/tests/mod.rs +++ b/stackslib/src/chainstate/nakamoto/tests/mod.rs @@ -136,7 +136,7 @@ pub fn get_account( &tip ); - let snapshot = SortitionDB::get_block_snapshot_consensus(&sortdb.conn(), &tip.consensus_hash) + let snapshot = SortitionDB::get_block_snapshot_consensus(sortdb.conn(), &tip.consensus_hash) .unwrap() .unwrap(); chainstate @@ -577,7 +577,7 @@ pub fn test_nakamoto_first_tenure_block_syntactic_validation() { #[test] pub fn test_load_store_update_nakamoto_blocks() { let test_name = function_name!(); - let path = test_path(&test_name); + let path = test_path(test_name); let pox_constants = PoxConstants::new(5, 3, 3, 25, 5, 0, 0, 0, 0, 0, 0); let epochs = StacksEpoch::unit_test_3_0_only(1); let _ = std::fs::remove_dir_all(&path); @@ -2243,7 +2243,7 @@ fn test_make_miners_stackerdb_config() { let tip = SortitionDB::get_canonical_burn_chain_tip(sort_db.conn()).unwrap(); let miner_privkey = &miner_keys[i]; let miner_pubkey = StacksPublicKey::from_private(miner_privkey); - let slot_id = NakamotoChainState::get_miner_slot(&sort_db, &tip, &tip.consensus_hash) + let slot_id = NakamotoChainState::get_miner_slot(sort_db, &tip, &tip.consensus_hash) .expect("Failed to get miner slot"); if sortition { let slot_id = slot_id.expect("No miner slot exists for this miner").start; @@ -2544,7 +2544,7 @@ fn parse_vote_for_aggregate_public_key_invalid() { .enumerate() { assert!( - NakamotoSigners::parse_vote_for_aggregate_public_key(&tx).is_none(), + NakamotoSigners::parse_vote_for_aggregate_public_key(tx).is_none(), "{}", format!("parsed the {i}th transaction: {tx:?}") ); @@ -3051,7 +3051,7 @@ fn filter_one_transaction_per_signer_duplicate_nonces() { let filtered_txs: Vec<_> = filtered_transactions.into_values().collect(); txs.sort_by(|a, b| a.txid().cmp(&b.txid())); assert_eq!(filtered_txs.len(), 1); - assert!(filtered_txs.contains(&txs.first().expect("failed to get first tx"))); + assert!(filtered_txs.contains(txs.first().expect("failed to get first tx"))); } pub mod nakamoto_block_signatures { @@ -3066,7 +3066,7 @@ pub mod nakamoto_block_signatures { .map(|(s, w)| { let mut signing_key = [0u8; 33]; signing_key.copy_from_slice( - &Secp256k1PublicKey::from_private(s) + Secp256k1PublicKey::from_private(s) .to_bytes_compressed() .as_slice(), ); diff --git a/stackslib/src/chainstate/nakamoto/tests/node.rs b/stackslib/src/chainstate/nakamoto/tests/node.rs index cd21c7eeaa..384145b41a 100644 --- a/stackslib/src/chainstate/nakamoto/tests/node.rs +++ b/stackslib/src/chainstate/nakamoto/tests/node.rs @@ -410,7 +410,7 @@ impl TestStacksNode { sortdb, burn_block, miner, - &last_tenure_id, + last_tenure_id, burn_amount, miner_key, parent_block_snapshot_opt, @@ -510,7 +510,7 @@ impl TestStacksNode { let mut cursor = first_parent.header.consensus_hash; let parent_sortition = loop { let parent_sortition = - SortitionDB::get_block_snapshot_consensus(&sortdb.conn(), &cursor) + SortitionDB::get_block_snapshot_consensus(sortdb.conn(), &cursor) .unwrap() .unwrap(); @@ -618,7 +618,7 @@ impl TestStacksNode { ) } else { let hdr = - NakamotoChainState::get_canonical_block_header(self.chainstate.db(), &sortdb) + NakamotoChainState::get_canonical_block_header(self.chainstate.db(), sortdb) .unwrap() .unwrap(); if hdr.anchored_header.as_stacks_nakamoto().is_some() { @@ -766,7 +766,7 @@ impl TestStacksNode { Some(nakamoto_parent) } else { warn!("Produced Tenure change transaction does not point to a real block"); - NakamotoChainState::get_canonical_block_header(chainstate.db(), &sortdb)? + NakamotoChainState::get_canonical_block_header(chainstate.db(), sortdb)? } } else if let Some(tenure_change) = tenure_change.as_ref() { // make sure parent tip is consistent with a tenure change @@ -782,13 +782,13 @@ impl TestStacksNode { Some(nakamoto_parent) } else { debug!("Use parent tip identified by canonical tip pointer (no parent block {})", &payload.previous_tenure_end); - NakamotoChainState::get_canonical_block_header(chainstate.db(), &sortdb)? + NakamotoChainState::get_canonical_block_header(chainstate.db(), sortdb)? } } else { panic!("Tenure change transaction does not have a TenureChange payload"); } } else { - NakamotoChainState::get_canonical_block_header(chainstate.db(), &sortdb)? + NakamotoChainState::get_canonical_block_header(chainstate.db(), sortdb)? }; let burn_tip = SortitionDB::get_canonical_burn_chain_tip(sortdb.conn())?; @@ -952,7 +952,7 @@ impl TestStacksNode { // canonical tip let stacks_chain_tip = NakamotoChainState::get_canonical_block_header( chainstate.db(), - &sortdb, + sortdb, )? .ok_or_else(|| ChainstateError::NoSuchBlockError)?; let nakamoto_chain_tip = stacks_chain_tip @@ -1628,7 +1628,7 @@ impl TestPeer<'_> { let tip = SortitionDB::get_canonical_sortition_tip(sortdb.conn()).unwrap(); node.add_nakamoto_tenure_blocks(blocks.clone()); - for block in blocks.into_iter() { + for block in blocks.iter() { let mut sort_handle = sortdb.index_handle(&tip); let block_id = block.block_id(); debug!("Process Nakamoto block {} ({:?}", &block_id, &block.header); @@ -1638,7 +1638,7 @@ impl TestPeer<'_> { &mut sort_handle, &mut node.chainstate, &self.network.stacks_tip.block_id(), - &block, + block, None, NakamotoBlockObtainMethod::Pushed, ) @@ -1648,7 +1648,7 @@ impl TestPeer<'_> { self.coord.handle_new_nakamoto_stacks_block().unwrap(); debug!("Begin check Nakamoto block {}", &block.block_id()); - TestPeer::check_processed_nakamoto_block(&mut sortdb, &mut node.chainstate, &block); + TestPeer::check_processed_nakamoto_block(&mut sortdb, &mut node.chainstate, block); debug!("Eegin check Nakamoto block {}", &block.block_id()); } else { test_debug!("Did NOT accept Nakamoto block {}", &block_id); @@ -1668,7 +1668,7 @@ impl TestPeer<'_> { ) -> StacksHeaderInfo { let Ok(Some(tenure_start_header)) = NakamotoChainState::get_tenure_start_block_header( &mut chainstate.index_conn(), - &tip_block_id, + tip_block_id, tenure_id_consensus_hash, ) else { panic!( @@ -1699,7 +1699,7 @@ impl TestPeer<'_> { // get the tenure-start block of the last tenure let Ok(Some(prev_tenure_start_header)) = NakamotoChainState::get_tenure_start_block_header( &mut chainstate.index_conn(), - &tip_block_id, + tip_block_id, prev_tenure_consensus_hash, ) else { panic!( @@ -1960,7 +1960,7 @@ impl TestPeer<'_> { let parent_vrf_proof = NakamotoChainState::get_parent_vrf_proof( &mut chainstate.index_conn(), &block.header.parent_block_id, - &sortdb.conn(), + sortdb.conn(), &block.header.consensus_hash, &tenure_block_commit.txid, ) @@ -2186,7 +2186,7 @@ impl TestPeer<'_> { assert!(NakamotoChainState::check_block_commit_vrf_seed( &mut chainstate.index_conn(), sortdb.conn(), - &block + block ) .is_ok()); @@ -2412,7 +2412,7 @@ impl TestPeer<'_> { chainstate.nakamoto_blocks_db(), &sortdb.index_handle_at_tip(), None, - &block, + block, false, 0x80000000, ) @@ -2423,7 +2423,7 @@ impl TestPeer<'_> { chainstate.nakamoto_blocks_db(), &sortdb.index_handle_at_tip(), Some(block.header.burn_spent), - &block, + block, false, 0x80000000, ) @@ -2435,7 +2435,7 @@ impl TestPeer<'_> { chainstate.nakamoto_blocks_db(), &sortdb.index_handle_at_tip(), Some(block.header.burn_spent + 1), - &block, + block, false, 0x80000000, ) diff --git a/stackslib/src/chainstate/stacks/auth.rs b/stackslib/src/chainstate/stacks/auth.rs index f867b82f53..47834b0e2a 100644 --- a/stackslib/src/chainstate/stacks/auth.rs +++ b/stackslib/src/chainstate/stacks/auth.rs @@ -459,7 +459,7 @@ impl OrderIndependentMultisigSpendingCondition { } let (pubkey, _next_sighash) = TransactionSpendingCondition::next_verification( - &initial_sighash, + initial_sighash, cond_code, self.tx_fee, self.nonce, diff --git a/stackslib/src/chainstate/stacks/block.rs b/stackslib/src/chainstate/stacks/block.rs index 51c53c94de..02a8f285c6 100644 --- a/stackslib/src/chainstate/stacks/block.rs +++ b/stackslib/src/chainstate/stacks/block.rs @@ -388,10 +388,7 @@ impl StacksBlock { state_index_root: &TrieHash, microblock_pubkey_hash: &Hash160, ) -> StacksBlock { - let txids: Vec<_> = txs - .iter() - .map(|ref tx| tx.txid().as_bytes().to_vec()) - .collect(); + let txids: Vec<_> = txs.iter().map(|tx| tx.txid().as_bytes().to_vec()).collect(); let merkle_tree = MerkleTree::::new(&txids); let tx_merkle_root = merkle_tree.root(); let header = StacksBlockHeader::from_parent( @@ -880,10 +877,7 @@ impl StacksMicroblock { parent_block_hash: &BlockHeaderHash, txs: Vec, ) -> StacksMicroblock { - let txids: Vec<_> = txs - .iter() - .map(|ref tx| tx.txid().as_bytes().to_vec()) - .collect(); + let txids: Vec<_> = txs.iter().map(|tx| tx.txid().as_bytes().to_vec()).collect(); let merkle_tree = MerkleTree::::new(&txids); let tx_merkle_root = merkle_tree.root(); let header = StacksMicroblockHeader::first_unsigned(parent_block_hash, &tx_merkle_root); @@ -894,10 +888,7 @@ impl StacksMicroblock { parent_header: &StacksMicroblockHeader, txs: Vec, ) -> Option { - let txids: Vec<_> = txs - .iter() - .map(|ref tx| tx.txid().as_bytes().to_vec()) - .collect(); + let txids: Vec<_> = txs.iter().map(|tx| tx.txid().as_bytes().to_vec()).collect(); let merkle_tree = MerkleTree::::new(&txids); let tx_merkle_root = merkle_tree.root(); let header = @@ -1770,17 +1761,17 @@ mod test { if *epoch_id < activation_epoch_id { assert!(!StacksBlock::validate_transactions_static_epoch( - &txs, + txs, epoch_id.clone(), )); } else if deactivation_epoch_id.is_none() || deactivation_epoch_id.unwrap() > *epoch_id { assert!(StacksBlock::validate_transactions_static_epoch( - &txs, *epoch_id, + txs, *epoch_id, )); } else { assert!(!StacksBlock::validate_transactions_static_epoch( - &txs, *epoch_id, + txs, *epoch_id, )); } } diff --git a/stackslib/src/chainstate/stacks/boot/contract_tests.rs b/stackslib/src/chainstate/stacks/boot/contract_tests.rs index 58701a2861..31fab9f148 100644 --- a/stackslib/src/chainstate/stacks/boot/contract_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/contract_tests.rs @@ -1778,9 +1778,9 @@ fn test_deploy_smart_contract( ) -> std::result::Result<(), ClarityError> { block.as_transaction(|tx| { let (ast, analysis) = - tx.analyze_smart_contract(&contract_id, version, content, ASTRules::PrecheckSize)?; - tx.initialize_smart_contract(&contract_id, version, &ast, content, None, |_, _| false)?; - tx.save_analysis(&contract_id, &analysis)?; + tx.analyze_smart_contract(contract_id, version, content, ASTRules::PrecheckSize)?; + tx.initialize_smart_contract(contract_id, version, &ast, content, None, |_, _| false)?; + tx.save_analysis(contract_id, &analysis)?; return Ok(()); }) } diff --git a/stackslib/src/chainstate/stacks/boot/mod.rs b/stackslib/src/chainstate/stacks/boot/mod.rs index b941bed938..1e047ffa49 100644 --- a/stackslib/src/chainstate/stacks/boot/mod.rs +++ b/stackslib/src/chainstate/stacks/boot/mod.rs @@ -108,17 +108,17 @@ pub mod docs; lazy_static! { pub static ref BOOT_CODE_POX_MAINNET: String = - format!("{}\n{}", BOOT_CODE_POX_MAINNET_CONSTS, BOOT_CODE_POX_BODY); + format!("{BOOT_CODE_POX_MAINNET_CONSTS}\n{BOOT_CODE_POX_BODY}"); pub static ref BOOT_CODE_POX_TESTNET: String = - format!("{}\n{}", BOOT_CODE_POX_TESTNET_CONSTS, BOOT_CODE_POX_BODY); + format!("{BOOT_CODE_POX_TESTNET_CONSTS}\n{BOOT_CODE_POX_BODY}"); pub static ref POX_2_MAINNET_CODE: String = - format!("{}\n{}", BOOT_CODE_POX_MAINNET_CONSTS, POX_2_BODY); + format!("{BOOT_CODE_POX_MAINNET_CONSTS}\n{POX_2_BODY}"); pub static ref POX_2_TESTNET_CODE: String = - format!("{}\n{}", BOOT_CODE_POX_TESTNET_CONSTS, POX_2_BODY); + format!("{BOOT_CODE_POX_TESTNET_CONSTS}\n{POX_2_BODY}"); pub static ref POX_3_MAINNET_CODE: String = - format!("{}\n{}", BOOT_CODE_POX_MAINNET_CONSTS, POX_3_BODY); + format!("{BOOT_CODE_POX_MAINNET_CONSTS}\n{POX_3_BODY}"); pub static ref POX_3_TESTNET_CODE: String = - format!("{}\n{}", BOOT_CODE_POX_TESTNET_CONSTS, POX_3_BODY); + format!("{BOOT_CODE_POX_TESTNET_CONSTS}\n{POX_3_BODY}"); pub static ref POX_4_CODE: String = POX_4_BODY.to_string(); pub static ref BOOT_CODE_COST_VOTING_TESTNET: String = make_testnet_cost_voting(); pub static ref STACKS_BOOT_CODE_MAINNET: [(&'static str, &'static str); 6] = [ @@ -126,16 +126,16 @@ lazy_static! { ("lockup", BOOT_CODE_LOCKUP), ("costs", BOOT_CODE_COSTS), ("cost-voting", BOOT_CODE_COST_VOTING_MAINNET), - ("bns", &BOOT_CODE_BNS), - ("genesis", &BOOT_CODE_GENESIS), + ("bns", BOOT_CODE_BNS), + ("genesis", BOOT_CODE_GENESIS), ]; pub static ref STACKS_BOOT_CODE_TESTNET: [(&'static str, &'static str); 6] = [ ("pox", &BOOT_CODE_POX_TESTNET), ("lockup", BOOT_CODE_LOCKUP), ("costs", BOOT_CODE_COSTS), ("cost-voting", &BOOT_CODE_COST_VOTING_TESTNET), - ("bns", &BOOT_CODE_BNS), - ("genesis", &BOOT_CODE_GENESIS), + ("bns", BOOT_CODE_BNS), + ("genesis", BOOT_CODE_GENESIS), ]; } @@ -530,7 +530,7 @@ impl StacksChainState { // 4. delete the user's stacking-state entry. clarity.with_clarity_db(|db| { // lookup the Stacks account and alter their unlock height to next block - let mut balance = db.get_stx_balance_snapshot(&principal)?; + let mut balance = db.get_stx_balance_snapshot(principal)?; let canonical_locked = balance.canonical_balance_repr()?.amount_locked(); if canonical_locked < *amount_locked { panic!("Principal missed reward slots, but did not have as many locked tokens as expected. Actual: {}, Expected: {}", canonical_locked, *amount_locked); @@ -599,7 +599,7 @@ impl StacksChainState { let headers_db = HeadersDBConn(StacksDBConn::new(&ro_index, ())); self.clarity_state .eval_read_only( - &stacks_block_id, + stacks_block_id, &headers_db, &iconn, &boot::boot_code_id(boot_contract_name, self.mainnet), @@ -1871,7 +1871,7 @@ pub mod test { chainstate .with_read_only_clarity_tx( &sortdb - .index_handle_at_block(&chainstate, &stacks_block_id) + .index_handle_at_block(chainstate, &stacks_block_id) .unwrap(), &stacks_block_id, |clarity_tx| StacksChainState::get_account(clarity_tx, addr), @@ -2816,7 +2816,7 @@ pub mod test { } pub fn get_current_reward_cycle(peer: &TestPeer, burnchain: &Burnchain) -> u128 { - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); burnchain .block_height_to_reward_cycle(tip.block_height) @@ -2844,7 +2844,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -2971,7 +2971,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -3038,7 +3038,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure(|ref mut miner, ref mut sortdb, ref mut chainstate, vrf_proof, ref parent_opt, ref parent_microblock_header_opt| { @@ -3155,7 +3155,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -3266,7 +3266,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -3335,14 +3335,14 @@ pub mod test { assert_eq!(alice_account.stx_balance.amount_locked(), 0); assert_eq!(alice_account.stx_balance.unlock_height(), 0); } - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); assert_eq!(min_ustx, total_liquid_ustx / TESTNET_STACKING_THRESHOLD_25); // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip( chainstate, &burnchain, @@ -3379,11 +3379,11 @@ pub mod test { let alice_balance = get_balance(&mut peer, &key_to_stacks_addr(&alice).into()); assert_eq!(alice_balance, 0); - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip( chainstate, &burnchain, @@ -3392,7 +3392,7 @@ pub mod test { ) }) .unwrap(); - let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.test_get_total_ustx_stacked( sortdb, &tip_index_block, @@ -3477,7 +3477,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let cur_reward_cycle = burnchain @@ -3575,10 +3575,10 @@ pub mod test { // No locks have taken place for key in keys.iter() { // has not locked up STX - let balance = get_balance(&mut peer, &key_to_stacks_addr(&key).into()); + let balance = get_balance(&mut peer, &key_to_stacks_addr(key).into()); assert_eq!(balance, 1024 * POX_THRESHOLD_STEPS_USTX); - let account = get_account(&mut peer, &key_to_stacks_addr(&key).into()); + let account = get_account(&mut peer, &key_to_stacks_addr(key).into()); assert_eq!( account.stx_balance.amount_unlocked(), 1024 * POX_THRESHOLD_STEPS_USTX @@ -3587,14 +3587,14 @@ pub mod test { assert_eq!(account.stx_balance.unlock_height(), 0); } } - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); assert_eq!(min_ustx, total_liquid_ustx / TESTNET_STACKING_THRESHOLD_25); // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip( chainstate, &burnchain, @@ -3633,11 +3633,11 @@ pub mod test { assert_eq!(balance, 0); } - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip( chainstate, &burnchain, @@ -3646,7 +3646,7 @@ pub mod test { ) }) .unwrap(); - let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.test_get_total_ustx_stacked( sortdb, &tip_index_block, @@ -3672,24 +3672,24 @@ pub mod test { assert_eq!(reward_addrs.len(), 4); let mut all_addrbytes = HashSet::new(); for key in keys.iter() { - all_addrbytes.insert(key_to_stacks_addr(&key).bytes); + all_addrbytes.insert(key_to_stacks_addr(key).bytes); } for key in keys.iter() { let (amount_ustx, pox_addr, lock_period, first_reward_cycle) = - get_stacker_info(&mut peer, &key_to_stacks_addr(&key).into()).unwrap(); + get_stacker_info(&mut peer, &key_to_stacks_addr(key).into()).unwrap(); eprintln!("\n{}: {} uSTX stacked for {} cycle(s); addr is {:?}; first reward cycle is {}\n", key.to_hex(), amount_ustx, lock_period, &pox_addr, first_reward_cycle); assert_eq!( (reward_addrs[0].0).version(), AddressHashMode::SerializeP2PKH as u8 ); - assert!(all_addrbytes.contains(&key_to_stacks_addr(&key).bytes)); - all_addrbytes.remove(&key_to_stacks_addr(&key).bytes); + assert!(all_addrbytes.contains(&key_to_stacks_addr(key).bytes)); + all_addrbytes.remove(&key_to_stacks_addr(key).bytes); assert_eq!(reward_addrs[0].1, 1024 * POX_THRESHOLD_STEPS_USTX); // Lock-up is consistent with stacker state - let account = get_account(&mut peer, &key_to_stacks_addr(&key).into()); + let account = get_account(&mut peer, &key_to_stacks_addr(key).into()); assert_eq!(account.stx_balance.amount_unlocked(), 0); assert_eq!( account.stx_balance.amount_locked(), @@ -3738,7 +3738,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -3803,14 +3803,14 @@ pub mod test { let alice_balance = get_balance(&mut peer, &key_to_stacks_addr(&alice).into()); assert_eq!(alice_balance, 1024 * POX_THRESHOLD_STEPS_USTX); } - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); assert_eq!(min_ustx, total_liquid_ustx / TESTNET_STACKING_THRESHOLD_25); // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip( chainstate, &burnchain, @@ -3846,11 +3846,11 @@ pub mod test { let alice_balance = get_balance(&mut peer, &key_to_stacks_addr(&alice).into()); assert_eq!(alice_balance, 0); - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip( chainstate, &burnchain, @@ -3859,7 +3859,7 @@ pub mod test { ) }) .unwrap(); - let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.test_get_total_ustx_stacked( sortdb, &tip_index_block, @@ -4005,7 +4005,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -4083,14 +4083,14 @@ pub mod test { assert_eq!(bob_balance, 1024 * POX_THRESHOLD_STEPS_USTX); } - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); assert_eq!(min_ustx, total_liquid_ustx / TESTNET_STACKING_THRESHOLD_25); // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip( chainstate, &burnchain, @@ -4133,11 +4133,11 @@ pub mod test { 1024 * POX_THRESHOLD_STEPS_USTX - (4 * 1024 * POX_THRESHOLD_STEPS_USTX) / 5 ); - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip( chainstate, &burnchain, @@ -4221,7 +4221,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure(|ref mut miner, ref mut sortdb, ref mut chainstate, vrf_proof, ref parent_opt, ref parent_microblock_header_opt| { @@ -4328,7 +4328,7 @@ pub mod test { if tenure_id <= 1 { // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip( chainstate, &burnchain, @@ -4434,7 +4434,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -4496,14 +4496,14 @@ pub mod test { assert_eq!(alice_balance, 1024 * POX_THRESHOLD_STEPS_USTX); } - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); assert_eq!(min_ustx, total_liquid_ustx / TESTNET_STACKING_THRESHOLD_25); // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip( chainstate, &burnchain, @@ -4538,11 +4538,11 @@ pub mod test { let alice_balance = get_balance(&mut peer, &key_to_stacks_addr(&alice).into()); - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip( chainstate, &burnchain, @@ -4551,7 +4551,7 @@ pub mod test { ) }) .unwrap(); - let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.test_get_total_ustx_stacked( sortdb, &tip_index_block, @@ -4683,7 +4683,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -4800,15 +4800,15 @@ pub mod test { ); let charlie_balance = get_balance(&mut peer, &key_to_stacks_addr(&charlie).into()); - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip(chainstate, &burnchain, sortdb, &tip_index_block) }) .unwrap(); - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); - let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.test_get_total_ustx_stacked(sortdb, &tip_index_block, cur_reward_cycle) }) .unwrap(); @@ -4822,7 +4822,7 @@ pub mod test { assert_eq!(charlie_contract_balance, 0); } - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); @@ -4858,7 +4858,7 @@ pub mod test { // should have just re-locked // stacking minimum should be minimum, since we haven't // locked up 25% of the tokens yet - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); @@ -5205,7 +5205,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -5445,15 +5445,15 @@ pub mod test { 512 * POX_THRESHOLD_STEPS_USTX - 1, ]; - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip(chainstate, &burnchain, sortdb, &tip_index_block) }) .unwrap(); - let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.test_get_total_ustx_stacked(sortdb, &tip_index_block, cur_reward_cycle) }) .unwrap(); @@ -5472,7 +5472,7 @@ pub mod test { assert_eq!(min_ustx, total_liquid_ustx / TESTNET_STACKING_THRESHOLD_25); // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip( chainstate, &burnchain, @@ -5651,7 +5651,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure(|ref mut miner, ref mut sortdb, ref mut chainstate, vrf_proof, ref parent_opt, ref parent_microblock_header_opt| { @@ -5747,19 +5747,19 @@ pub mod test { .unwrap() as u128; let alice_balance = get_balance(&mut peer, &key_to_stacks_addr(&alice).into()); - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip(chainstate, &burnchain, sortdb, &tip_index_block) }) .unwrap(); - let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.test_get_total_ustx_stacked(sortdb, &tip_index_block, cur_reward_cycle) }) .unwrap(); - let total_stacked_next = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let total_stacked_next = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.test_get_total_ustx_stacked( sortdb, &tip_index_block, diff --git a/stackslib/src/chainstate/stacks/boot/pox_2_tests.rs b/stackslib/src/chainstate/stacks/boot/pox_2_tests.rs index 47b57cdd2c..4168c9c8cc 100644 --- a/stackslib/src/chainstate/stacks/boot/pox_2_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/pox_2_tests.rs @@ -73,7 +73,7 @@ const USTX_PER_HOLDER: u128 = 1_000_000; /// Return the BlockSnapshot for the latest sortition in the provided /// SortitionDB option-reference. Panics on any errors. fn get_tip(sortdb: Option<&SortitionDB>) -> BlockSnapshot { - SortitionDB::get_canonical_burn_chain_tip(&sortdb.unwrap().conn()).unwrap() + SortitionDB::get_canonical_burn_chain_tip(sortdb.unwrap().conn()).unwrap() } /// Get the reward set entries if evaluated at the given StacksBlock @@ -83,7 +83,7 @@ pub fn get_reward_set_entries_at( at_burn_ht: u64, ) -> Vec { let burnchain = peer.config.burnchain.clone(); - with_sortdb(peer, |ref mut c, ref sortdb| { + with_sortdb(peer, |ref mut c, sortdb| { get_reward_set_entries_at_block(c, &burnchain, sortdb, tip, at_burn_ht).unwrap() }) } @@ -96,7 +96,7 @@ pub fn get_reward_set_entries_index_order_at( at_burn_ht: u64, ) -> Vec { let burnchain = peer.config.burnchain.clone(); - with_sortdb(peer, |ref mut c, ref sortdb| { + with_sortdb(peer, |ref mut c, sortdb| { c.get_reward_addresses(&burnchain, sortdb, at_burn_ht, tip) .unwrap() }) @@ -665,7 +665,7 @@ pub fn with_clarity_db_ro(peer: &mut TestPeer, tip: &StacksBlockId, todo: where F: FnOnce(&mut ClarityDatabase) -> R, { - with_sortdb(peer, |ref mut c, ref sortdb| { + with_sortdb(peer, |ref mut c, sortdb| { let headers_db = HeadersDBConn(StacksDBConn::new(&c.state_index, ())); let burn_db = sortdb.index_handle_at_tip(); let mut read_only_clar = c @@ -745,7 +745,7 @@ fn test_simple_pox_lockup_transition_pox_2() { .block_height_to_reward_cycle(tip_burn_block_height) .unwrap() as u128; let (min_ustx, reward_addrs, total_stacked) = - with_sortdb(&mut peer, |ref mut c, ref sortdb| { + with_sortdb(&mut peer, |ref mut c, sortdb| { ( c.get_stacking_minimum(sortdb, &tip_index_block).unwrap(), get_reward_addresses_with_par_tip(c, &burnchain, sortdb, &tip_index_block) @@ -844,7 +844,7 @@ fn test_simple_pox_lockup_transition_pox_2() { // check the stacking minimum let total_liquid_ustx = get_liquid_ustx(&mut peer); - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); @@ -854,7 +854,7 @@ fn test_simple_pox_lockup_transition_pox_2() { ); // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip(chainstate, &burnchain, sortdb, &tip_index_block) }) .unwrap(); @@ -2127,7 +2127,7 @@ fn test_lock_period_invariant_extend_transition() { // check the stacking minimum let total_liquid_ustx = get_liquid_ustx(&mut peer); - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); @@ -2137,7 +2137,7 @@ fn test_lock_period_invariant_extend_transition() { ); // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip(chainstate, &burnchain, sortdb, &tip_index_block) }) .unwrap(); @@ -2264,7 +2264,7 @@ fn test_pox_extend_transition_pox_2() { let cur_reward_cycle = burnchain .block_height_to_reward_cycle(tip_burn_block_height) .unwrap() as u128; - let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, ref sortdb| { + let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, sortdb| { ( c.get_stacking_minimum(sortdb, &tip_index_block).unwrap(), get_reward_addresses_with_par_tip(c, &burnchain, sortdb, &tip_index_block).unwrap(), @@ -2305,7 +2305,7 @@ fn test_pox_extend_transition_pox_2() { let cur_reward_cycle = burnchain .block_height_to_reward_cycle(tip_burn_block_height) .unwrap() as u128; - let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, ref sortdb| { + let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, sortdb| { ( c.get_stacking_minimum(sortdb, &tip_index_block).unwrap(), get_reward_addresses_with_par_tip(c, &burnchain, sortdb, &tip_index_block).unwrap(), @@ -2379,7 +2379,7 @@ fn test_pox_extend_transition_pox_2() { // check the stacking minimum let total_liquid_ustx = get_liquid_ustx(&mut peer); - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); @@ -2389,7 +2389,7 @@ fn test_pox_extend_transition_pox_2() { ); // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip(chainstate, &burnchain, sortdb, &tip_index_block) }) .unwrap(); @@ -2711,7 +2711,7 @@ fn test_delegate_extend_transition_pox_2() { let cur_reward_cycle = burnchain .block_height_to_reward_cycle(tip_burn_block_height) .unwrap() as u128; - let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, ref sortdb| { + let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, sortdb| { ( c.get_stacking_minimum(sortdb, &tip_index_block).unwrap(), get_reward_addresses_with_par_tip(c, &burnchain, sortdb, &tip_index_block).unwrap(), @@ -2742,7 +2742,7 @@ fn test_delegate_extend_transition_pox_2() { let cur_reward_cycle = burnchain .block_height_to_reward_cycle(tip_burn_block_height) .unwrap() as u128; - let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, ref sortdb| { + let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, sortdb| { ( c.get_stacking_minimum(sortdb, &tip_index_block).unwrap(), get_reward_addresses_with_par_tip(c, &burnchain, sortdb, &tip_index_block).unwrap(), @@ -2885,7 +2885,7 @@ fn test_delegate_extend_transition_pox_2() { // check the stacking minimum let total_liquid_ustx = get_liquid_ustx(&mut peer); - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); @@ -2895,7 +2895,7 @@ fn test_delegate_extend_transition_pox_2() { ); // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip(chainstate, &burnchain, sortdb, &tip_index_block) }) .unwrap(); @@ -3739,7 +3739,7 @@ fn test_get_pox_addrs() { let microblock_privkey = StacksPrivateKey::new(); let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let cur_reward_cycle = burnchain @@ -3857,15 +3857,15 @@ fn test_get_pox_addrs() { ); } if tenure_id > 1 { - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip(chainstate, &burnchain, sortdb, &tip_index_block) }) .unwrap(); - let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.test_get_total_ustx_stacked(sortdb, &tip_index_block, cur_reward_cycle) }) .unwrap(); @@ -4013,7 +4013,7 @@ fn test_stack_with_segwit() { let microblock_privkey = StacksPrivateKey::new(); let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let cur_reward_cycle = burnchain @@ -4153,15 +4153,15 @@ fn test_stack_with_segwit() { ); } if tenure_id > 1 { - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip(chainstate, &burnchain, sortdb, &tip_index_block) }) .unwrap(); - let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let total_stacked = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.test_get_total_ustx_stacked(sortdb, &tip_index_block, cur_reward_cycle) }) .unwrap(); diff --git a/stackslib/src/chainstate/stacks/boot/pox_3_tests.rs b/stackslib/src/chainstate/stacks/boot/pox_3_tests.rs index 5c52297969..52a95e2afd 100644 --- a/stackslib/src/chainstate/stacks/boot/pox_3_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/pox_3_tests.rs @@ -78,7 +78,7 @@ const USTX_PER_HOLDER: u128 = 1_000_000; /// Return the BlockSnapshot for the latest sortition in the provided /// SortitionDB option-reference. Panics on any errors. fn get_tip(sortdb: Option<&SortitionDB>) -> BlockSnapshot { - SortitionDB::get_canonical_burn_chain_tip(&sortdb.unwrap().conn()).unwrap() + SortitionDB::get_canonical_burn_chain_tip(sortdb.unwrap().conn()).unwrap() } fn make_test_epochs_pox() -> (EpochList, PoxConstants) { @@ -250,7 +250,7 @@ fn simple_pox_lockup_transition_pox_2() { // check the stacking minimum let total_liquid_ustx = get_liquid_ustx(&mut peer); - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); @@ -260,7 +260,7 @@ fn simple_pox_lockup_transition_pox_2() { ); // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip(chainstate, &burnchain, sortdb, &tip_index_block) }) .unwrap(); @@ -2108,7 +2108,7 @@ fn pox_extend_transition() { let cur_reward_cycle = burnchain .block_height_to_reward_cycle(tip_burn_block_height) .unwrap() as u128; - let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, ref sortdb| { + let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, sortdb| { ( c.get_stacking_minimum(sortdb, &tip_index_block).unwrap(), get_reward_addresses_with_par_tip(c, &burnchain, sortdb, &tip_index_block).unwrap(), @@ -2149,7 +2149,7 @@ fn pox_extend_transition() { let cur_reward_cycle = burnchain .block_height_to_reward_cycle(tip_burn_block_height) .unwrap() as u128; - let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, ref sortdb| { + let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, sortdb| { ( c.get_stacking_minimum(sortdb, &tip_index_block).unwrap(), get_reward_addresses_with_par_tip(c, &burnchain, sortdb, &tip_index_block).unwrap(), @@ -2213,7 +2213,7 @@ fn pox_extend_transition() { // check the stacking minimum let total_liquid_ustx = get_liquid_ustx(&mut peer); - let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let min_ustx = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { chainstate.get_stacking_minimum(sortdb, &tip_index_block) }) .unwrap(); @@ -2223,7 +2223,7 @@ fn pox_extend_transition() { ); // no reward addresses - let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, ref sortdb| { + let reward_addrs = with_sortdb(&mut peer, |ref mut chainstate, sortdb| { get_reward_addresses_with_par_tip(chainstate, &burnchain, sortdb, &tip_index_block) }) .unwrap(); diff --git a/stackslib/src/chainstate/stacks/boot/pox_4_tests.rs b/stackslib/src/chainstate/stacks/boot/pox_4_tests.rs index 072f1d33ef..a9472b03d6 100644 --- a/stackslib/src/chainstate/stacks/boot/pox_4_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/pox_4_tests.rs @@ -93,7 +93,7 @@ const ERR_REUSED_SIGNER_KEY: i128 = 33; /// Return the BlockSnapshot for the latest sortition in the provided /// SortitionDB option-reference. Panics on any errors. pub fn get_tip(sortdb: Option<&SortitionDB>) -> BlockSnapshot { - SortitionDB::get_canonical_burn_chain_tip(&sortdb.unwrap().conn()).unwrap() + SortitionDB::get_canonical_burn_chain_tip(sortdb.unwrap().conn()).unwrap() } /// Helper rstest template for running tests in both 2.5 @@ -112,7 +112,7 @@ fn make_simple_pox_4_lock( ) -> StacksTransaction { let addr = key_to_stacks_addr(key); let pox_addr = PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, addr.bytes.clone()); - let signer_pk = StacksPublicKey::from_private(&key); + let signer_pk = StacksPublicKey::from_private(key); let tip = get_tip(peer.sortdb.as_ref()); let next_reward_cycle = peer .config @@ -124,7 +124,7 @@ fn make_simple_pox_4_lock( let signature = make_signer_key_signature( &pox_addr, - &key, + key, next_reward_cycle.into(), &Pox4SignatureTopic::StackStx, lock_period, @@ -313,7 +313,7 @@ fn pox_extend_transition() { let cur_reward_cycle = burnchain .block_height_to_reward_cycle(tip_burn_block_height) .unwrap() as u128; - let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, ref sortdb| { + let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, sortdb| { ( c.get_stacking_minimum(sortdb, &tip_index_block).unwrap(), get_reward_addresses_with_par_tip(c, &burnchain, sortdb, &tip_index_block).unwrap(), @@ -354,7 +354,7 @@ fn pox_extend_transition() { let cur_reward_cycle = burnchain .block_height_to_reward_cycle(tip_burn_block_height) .unwrap() as u128; - let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, ref sortdb| { + let (min_ustx, reward_addrs, total_stacked) = with_sortdb(peer, |ref mut c, sortdb| { ( c.get_stacking_minimum(sortdb, &tip_index_block).unwrap(), get_reward_addresses_with_par_tip(c, &burnchain, sortdb, &tip_index_block).unwrap(), @@ -965,7 +965,7 @@ fn pox_lock_unlock() { let signer_key = key; let signature = make_signer_key_signature( &pox_addr, - &signer_key, + signer_key, reward_cycle, &Pox4SignatureTopic::StackStx, lock_period.into(), @@ -978,7 +978,7 @@ fn pox_lock_unlock() { 1024 * POX_THRESHOLD_STEPS_USTX, &pox_addr, lock_period, - &StacksPublicKey::from_private(&signer_key), + &StacksPublicKey::from_private(signer_key), tip_height, Some(signature), u128::MAX, @@ -2976,7 +2976,7 @@ fn verify_signer_key_sig( ) -> Value { let result: Value = with_sortdb(peer, |ref mut chainstate, ref mut sortdb| { chainstate - .with_read_only_clarity_tx(&sortdb.index_handle_at_tip(), &latest_block, |clarity_tx| { + .with_read_only_clarity_tx(&sortdb.index_handle_at_tip(), latest_block, |clarity_tx| { clarity_tx .with_readonly_clarity_env( false, @@ -2992,7 +2992,7 @@ fn verify_signer_key_sig( reward_cycle, topic.get_name_str(), period, - to_hex(&signature), + to_hex(signature), signing_key.to_hex(), amount, max_amount, @@ -3314,10 +3314,10 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { let mut stacker_nonce = 0; let stacker_key = &keys[0]; let min_ustx = get_stacking_minimum(&mut peer, &latest_block); - let stacker_addr = key_to_stacks_addr(&stacker_key); + let stacker_addr = key_to_stacks_addr(stacker_key); let signer_key = &keys[1]; let signer_public_key = StacksPublicKey::from_private(signer_key); - let pox_addr = pox_addr_from(&stacker_key); + let pox_addr = pox_addr_from(stacker_key); let second_stacker = &keys[2]; let second_stacker_addr = key_to_stacks_addr(second_stacker); @@ -3333,7 +3333,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { // Test 1: invalid reward cycle let signature = make_signer_key_signature( &pox_addr, - &signer_key, + signer_key, reward_cycle - 1, &topic, lock_period, @@ -3342,7 +3342,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { ); let invalid_cycle_nonce = stacker_nonce; let invalid_cycle_stack = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -3358,7 +3358,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &second_stacker_pox_addr, - &signer_key, + signer_key, reward_cycle, &topic, lock_period, @@ -3367,7 +3367,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { ); let invalid_pox_addr_nonce = stacker_nonce; let invalid_pox_addr_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -3383,7 +3383,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &second_stacker, + second_stacker, reward_cycle, &topic, lock_period, @@ -3392,7 +3392,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { ); let invalid_key_nonce = stacker_nonce; let invalid_key_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -3408,7 +3408,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_key, + signer_key, reward_cycle, &Pox4SignatureTopic::StackExtend, // wrong topic lock_period, @@ -3417,7 +3417,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { ); let invalid_topic_nonce = stacker_nonce; let invalid_topic_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -3433,7 +3433,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_key, + signer_key, reward_cycle, &topic, lock_period + 1, // wrong period @@ -3442,7 +3442,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { ); let invalid_period_nonce = stacker_nonce; let invalid_period_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -3458,7 +3458,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_key, + signer_key, reward_cycle, &topic, lock_period, @@ -3467,7 +3467,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { ); let invalid_auth_id_nonce = stacker_nonce; let invalid_auth_id_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -3483,7 +3483,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_key, + signer_key, reward_cycle, &topic, lock_period, @@ -3492,7 +3492,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { ); let invalid_amount_nonce = stacker_nonce; let invalid_amount_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -3508,7 +3508,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_key, + signer_key, reward_cycle, &topic, lock_period, @@ -3517,7 +3517,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { ); let invalid_max_amount_nonce = stacker_nonce; let invalid_max_amount_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -3533,7 +3533,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_key, + signer_key, reward_cycle, &topic, lock_period, @@ -3542,7 +3542,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { ); let valid_nonce = stacker_nonce; let valid_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -3634,10 +3634,10 @@ fn stack_extend_verify_sig() { let mut stacker_nonce = 0; let stacker_key = &keys[0]; let min_ustx = get_stacking_minimum(&mut peer, &latest_block); - let stacker_addr = key_to_stacks_addr(&stacker_key); + let stacker_addr = key_to_stacks_addr(stacker_key); let signer_key = &keys[1]; let signer_public_key = StacksPublicKey::from_private(signer_key); - let pox_addr = pox_addr_from(&signer_key); + let pox_addr = pox_addr_from(signer_key); let reward_cycle = get_current_reward_cycle(&peer, &burnchain); let topic = Pox4SignatureTopic::StackExtend; @@ -3645,7 +3645,7 @@ fn stack_extend_verify_sig() { // Setup: stack-stx let signature = make_signer_key_signature( &pox_addr, - &signer_key, + signer_key, reward_cycle, &Pox4SignatureTopic::StackStx, lock_period, @@ -3654,7 +3654,7 @@ fn stack_extend_verify_sig() { ); let stack_nonce = stacker_nonce; let stack_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -3683,7 +3683,7 @@ fn stack_extend_verify_sig() { stacker_nonce += 1; let invalid_cycle_nonce = stacker_nonce; let invalid_cycle_tx = make_pox_4_extend( - &stacker_key, + stacker_key, stacker_nonce, pox_addr.clone(), lock_period, @@ -3707,7 +3707,7 @@ fn stack_extend_verify_sig() { ); let invalid_pox_addr_nonce = stacker_nonce; let invalid_pox_addr_tx = make_pox_4_extend( - &stacker_key, + stacker_key, stacker_nonce, pox_addr.clone(), lock_period, @@ -3731,7 +3731,7 @@ fn stack_extend_verify_sig() { ); let invalid_key_nonce = stacker_nonce; let invalid_key_tx = make_pox_4_extend( - &stacker_key, + stacker_key, stacker_nonce, pox_addr.clone(), lock_period, @@ -3754,7 +3754,7 @@ fn stack_extend_verify_sig() { ); let invalid_auth_id_nonce = stacker_nonce; let invalid_auth_id_tx = make_pox_4_extend( - &stacker_key, + stacker_key, stacker_nonce, pox_addr.clone(), lock_period, @@ -3777,7 +3777,7 @@ fn stack_extend_verify_sig() { ); let invalid_max_amount_nonce = stacker_nonce; let invalid_max_amount_tx = make_pox_4_extend( - &stacker_key, + stacker_key, stacker_nonce, pox_addr.clone(), lock_period, @@ -3800,7 +3800,7 @@ fn stack_extend_verify_sig() { ); let valid_nonce = stacker_nonce; let valid_tx = make_pox_4_extend( - &stacker_key, + stacker_key, stacker_nonce, pox_addr.clone(), lock_period, @@ -3889,15 +3889,15 @@ fn stack_agg_commit_verify_sig() { let min_ustx = get_stacking_minimum(&mut peer, &latest_block); let stacker_key = &keys[0]; - let stacker_addr = PrincipalData::from(key_to_stacks_addr(&stacker_key)); + let stacker_addr = PrincipalData::from(key_to_stacks_addr(stacker_key)); let signer_sk = &keys[1]; let signer_pk = StacksPublicKey::from_private(signer_sk); let delegate_key = &keys[2]; - let delegate_addr = key_to_stacks_addr(&delegate_key); + let delegate_addr = key_to_stacks_addr(delegate_key); - let pox_addr = pox_addr_from(&delegate_key); + let pox_addr = pox_addr_from(delegate_key); let reward_cycle = burnchain .block_height_to_reward_cycle(block_height) @@ -3907,7 +3907,7 @@ fn stack_agg_commit_verify_sig() { // Setup: delegate-stx and delegate-stack-stx let delegate_tx = make_pox_4_delegate_stx( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, delegate_addr.clone().into(), @@ -3917,7 +3917,7 @@ fn stack_agg_commit_verify_sig() { let delegate_stack_stx_nonce = delegate_nonce; let delegate_stack_stx_tx = make_pox_4_delegate_stack_stx( - &delegate_key, + delegate_key, delegate_nonce, stacker_addr, min_ustx, @@ -3933,7 +3933,7 @@ fn stack_agg_commit_verify_sig() { let next_reward_cycle = reward_cycle + 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, reward_cycle, // wrong cycle &topic, 1_u128, @@ -3942,7 +3942,7 @@ fn stack_agg_commit_verify_sig() { ); let invalid_cycle_nonce = delegate_nonce; let invalid_cycle_tx = make_pox_4_aggregation_commit_indexed( - &delegate_key, + delegate_key, delegate_nonce, &pox_addr, next_reward_cycle, @@ -3957,7 +3957,7 @@ fn stack_agg_commit_verify_sig() { let other_pox_addr = pox_addr_from(&Secp256k1PrivateKey::new()); let signature = make_signer_key_signature( &other_pox_addr, - &signer_sk, + signer_sk, next_reward_cycle, &topic, 1_u128, @@ -3966,7 +3966,7 @@ fn stack_agg_commit_verify_sig() { ); let invalid_pox_addr_nonce = delegate_nonce; let invalid_pox_addr_tx = make_pox_4_aggregation_commit_indexed( - &delegate_key, + delegate_key, delegate_nonce, &pox_addr, next_reward_cycle, @@ -3980,7 +3980,7 @@ fn stack_agg_commit_verify_sig() { delegate_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &delegate_key, + delegate_key, next_reward_cycle, &topic, 1_u128, @@ -3989,7 +3989,7 @@ fn stack_agg_commit_verify_sig() { ); let invalid_key_nonce = delegate_nonce; let invalid_key_tx = make_pox_4_aggregation_commit_indexed( - &delegate_key, + delegate_key, delegate_nonce, &pox_addr, next_reward_cycle, @@ -4003,7 +4003,7 @@ fn stack_agg_commit_verify_sig() { delegate_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, next_reward_cycle, &topic, 2_u128, // wrong period @@ -4012,7 +4012,7 @@ fn stack_agg_commit_verify_sig() { ); let invalid_period_nonce = delegate_nonce; let invalid_period_tx = make_pox_4_aggregation_commit_indexed( - &delegate_key, + delegate_key, delegate_nonce, &pox_addr, next_reward_cycle, @@ -4026,7 +4026,7 @@ fn stack_agg_commit_verify_sig() { delegate_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, next_reward_cycle, &Pox4SignatureTopic::StackStx, // wrong topic 1_u128, @@ -4035,7 +4035,7 @@ fn stack_agg_commit_verify_sig() { ); let invalid_topic_nonce = delegate_nonce; let invalid_topic_tx = make_pox_4_aggregation_commit_indexed( - &delegate_key, + delegate_key, delegate_nonce, &pox_addr, next_reward_cycle, @@ -4049,7 +4049,7 @@ fn stack_agg_commit_verify_sig() { delegate_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, next_reward_cycle, &topic, 1_u128, @@ -4058,7 +4058,7 @@ fn stack_agg_commit_verify_sig() { ); let invalid_auth_id_nonce = delegate_nonce; let invalid_auth_id_tx = make_pox_4_aggregation_commit_indexed( - &delegate_key, + delegate_key, delegate_nonce, &pox_addr, next_reward_cycle, @@ -4072,7 +4072,7 @@ fn stack_agg_commit_verify_sig() { delegate_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, next_reward_cycle, &topic, 1_u128, @@ -4081,7 +4081,7 @@ fn stack_agg_commit_verify_sig() { ); let invalid_max_amount_nonce = delegate_nonce; let invalid_max_amount_tx = make_pox_4_aggregation_commit_indexed( - &delegate_key, + delegate_key, delegate_nonce, &pox_addr, next_reward_cycle, @@ -4095,7 +4095,7 @@ fn stack_agg_commit_verify_sig() { delegate_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, next_reward_cycle, &topic, 1_u128, @@ -4104,7 +4104,7 @@ fn stack_agg_commit_verify_sig() { ); let invalid_amount_nonce = delegate_nonce; let invalid_amount_tx = make_pox_4_aggregation_commit_indexed( - &delegate_key, + delegate_key, delegate_nonce, &pox_addr, next_reward_cycle, @@ -4118,7 +4118,7 @@ fn stack_agg_commit_verify_sig() { delegate_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, next_reward_cycle, &topic, 1_u128, @@ -4127,7 +4127,7 @@ fn stack_agg_commit_verify_sig() { ); let valid_nonce = delegate_nonce; let valid_tx = make_pox_4_aggregation_commit_indexed( - &delegate_key, + delegate_key, delegate_nonce, &pox_addr, next_reward_cycle, @@ -4262,7 +4262,7 @@ fn advance_to_block_height( peer.get_burn_block_height(), passed_txs.len() ); - latest_block = Some(tenure_with_txs(peer, &passed_txs, peer_nonce, test_signers)); + latest_block = Some(tenure_with_txs(peer, passed_txs, peer_nonce, test_signers)); passed_txs = &[]; if tx_block.is_none() { tx_block = Some(observer.get_blocks().last().unwrap().clone()); @@ -4690,7 +4690,7 @@ fn stack_agg_increase() { burnchain_unlock_height: Value::UInt(0), }; - check_pox_print_event(&aggregation_increase_event, common_data, increase_op_data); + check_pox_print_event(aggregation_increase_event, common_data, increase_op_data); // Check that Bob's second pool has an assigned reward index of 1 let bob_aggregate_commit_reward_index = &tx_block @@ -4716,10 +4716,10 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { let mut stacker_nonce = 0; let stacker_key = &keys[0]; let min_ustx = get_stacking_minimum(&mut peer, &latest_block); - let stacker_addr = key_to_stacks_addr(&stacker_key); + let stacker_addr = key_to_stacks_addr(stacker_key); let signer_sk = &keys[1]; let signer_pk = StacksPublicKey::from_private(signer_sk); - let pox_addr = pox_addr_from(&signer_sk); + let pox_addr = pox_addr_from(signer_sk); let reward_cycle = get_current_reward_cycle(&peer, &burnchain); let topic = Pox4SignatureTopic::StackIncrease; @@ -4727,7 +4727,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { // Setup: stack-stx let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, reward_cycle, &Pox4SignatureTopic::StackStx, lock_period, @@ -4736,7 +4736,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { ); let stack_nonce = stacker_nonce; let stack_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -4752,7 +4752,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, reward_cycle - 1, // invalid &topic, lock_period, @@ -4761,7 +4761,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { ); let invalid_cycle_nonce = stacker_nonce; let invalid_cycle_tx = make_pox_4_stack_increase( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &signer_pk, @@ -4775,7 +4775,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { let other_pox_addr = pox_addr_from(&Secp256k1PrivateKey::new()); let signature = make_signer_key_signature( &other_pox_addr, // different than existing - &signer_sk, + signer_sk, reward_cycle, &topic, lock_period, @@ -4784,7 +4784,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { ); let invalid_pox_addr_nonce = stacker_nonce; let invalid_pox_addr_tx = make_pox_4_stack_increase( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &signer_pk, @@ -4797,7 +4797,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &stacker_key, // different than signer + stacker_key, // different than signer reward_cycle, &topic, lock_period, @@ -4806,7 +4806,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { ); let invalid_key_nonce = stacker_nonce; let invalid_key_tx = make_pox_4_stack_increase( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &signer_pk, @@ -4819,7 +4819,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, reward_cycle, &topic, lock_period + 1, // wrong @@ -4828,7 +4828,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { ); let invalid_period_nonce = stacker_nonce; let invalid_period_tx = make_pox_4_stack_increase( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &signer_pk, @@ -4841,7 +4841,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, reward_cycle, &Pox4SignatureTopic::StackExtend, // wrong topic lock_period, @@ -4850,7 +4850,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { ); let invalid_topic_nonce = stacker_nonce; let invalid_topic_tx = make_pox_4_stack_increase( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &signer_pk, @@ -4863,7 +4863,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, reward_cycle, &topic, lock_period, @@ -4872,7 +4872,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { ); let invalid_auth_id_nonce = stacker_nonce; let invalid_auth_id_tx = make_pox_4_stack_increase( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &signer_pk, @@ -4885,7 +4885,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, reward_cycle, &topic, lock_period, @@ -4894,7 +4894,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { ); let invalid_max_amount_nonce = stacker_nonce; let invalid_max_amount_tx = make_pox_4_stack_increase( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &signer_pk, @@ -4907,7 +4907,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, reward_cycle, &topic, lock_period, @@ -4916,7 +4916,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { ); let invalid_amount_nonce = stacker_nonce; let invalid_amount_tx = make_pox_4_stack_increase( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &signer_pk, @@ -4929,7 +4929,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, reward_cycle, &Pox4SignatureTopic::StackIncrease, lock_period, @@ -4938,7 +4938,7 @@ fn stack_increase_verify_signer_key(use_nakamoto: bool) { ); let valid_nonce = stacker_nonce; let stack_increase = make_pox_4_stack_increase( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &signer_pk, @@ -5006,10 +5006,10 @@ fn stack_increase_different_signer_keys(use_nakamoto: bool) { let mut stacker_nonce = 0; let stacker_key = &keys[0]; let min_ustx = get_stacking_minimum(&mut peer, &latest_block); - let stacker_addr = key_to_stacks_addr(&stacker_key); + let stacker_addr = key_to_stacks_addr(stacker_key); let signer_sk = &keys[1]; let signer_pk = StacksPublicKey::from_private(signer_sk); - let pox_addr = pox_addr_from(&signer_sk); + let pox_addr = pox_addr_from(signer_sk); // Second key is used in `stack-extend` let second_signer_sk = &keys[2]; @@ -5020,7 +5020,7 @@ fn stack_increase_different_signer_keys(use_nakamoto: bool) { // Setup: stack-stx let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, reward_cycle, &Pox4SignatureTopic::StackStx, lock_period, @@ -5029,7 +5029,7 @@ fn stack_increase_different_signer_keys(use_nakamoto: bool) { ); let stack_nonce = stacker_nonce; let stack_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -5044,7 +5044,7 @@ fn stack_increase_different_signer_keys(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &second_signer_sk, + second_signer_sk, reward_cycle, &Pox4SignatureTopic::StackExtend, lock_period, @@ -5053,7 +5053,7 @@ fn stack_increase_different_signer_keys(use_nakamoto: bool) { ); let extend_nonce = stacker_nonce; let extend_tx = make_pox_4_extend( - &stacker_key, + stacker_key, stacker_nonce, pox_addr.clone(), lock_period, @@ -5066,7 +5066,7 @@ fn stack_increase_different_signer_keys(use_nakamoto: bool) { stacker_nonce += 1; let signature = make_signer_key_signature( &pox_addr, - &signer_sk, + signer_sk, reward_cycle, &Pox4SignatureTopic::StackIncrease, 2, // 2 cycles total (1 from stack-stx, 1 from extend) @@ -5075,7 +5075,7 @@ fn stack_increase_different_signer_keys(use_nakamoto: bool) { ); let increase_nonce = stacker_nonce; let stack_increase = make_pox_4_stack_increase( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &signer_pk, @@ -5212,11 +5212,11 @@ fn stack_stx_signer_key(use_nakamoto: bool) { // (start-burn-ht uint) // (lock-period uint) // (signer-key (buff 33))) - let pox_addr = pox_addr_from(&stacker_key); + let pox_addr = pox_addr_from(stacker_key); let pox_addr_val = Value::Tuple(pox_addr.clone().as_clarity_tuple().unwrap()); let signature = make_signer_key_signature( &pox_addr, - &signer_key, + signer_key, reward_cycle, &Pox4SignatureTopic::StackStx, 2_u128, @@ -5250,7 +5250,7 @@ fn stack_stx_signer_key(use_nakamoto: bool) { .expect_tuple(); let stacker_txs = - get_last_block_sender_transactions(&observer, key_to_stacks_addr(&stacker_key)); + get_last_block_sender_transactions(&observer, key_to_stacks_addr(stacker_key)); let stacking_tx = stacker_txs.get(0).unwrap(); let events: Vec<&STXLockEventData> = stacking_tx @@ -5312,7 +5312,7 @@ fn stack_stx_signer_auth(use_nakamoto: bool) { let reward_cycle = get_current_reward_cycle(&peer, &burnchain); - let pox_addr = pox_addr_from(&stacker_key); + let pox_addr = pox_addr_from(stacker_key); let pox_addr_val = Value::Tuple(pox_addr.clone().as_clarity_tuple().unwrap()); let lock_period = 6; @@ -5320,7 +5320,7 @@ fn stack_stx_signer_auth(use_nakamoto: bool) { let failed_stack_nonce = stacker_nonce; let failed_stack_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -5335,7 +5335,7 @@ fn stack_stx_signer_auth(use_nakamoto: bool) { let enable_auth_nonce = signer_nonce; let enable_auth_tx = make_pox_4_set_signer_key_auth( &pox_addr, - &signer_key, + signer_key, reward_cycle, &topic, lock_period, @@ -5350,7 +5350,7 @@ fn stack_stx_signer_auth(use_nakamoto: bool) { stacker_nonce += 1; let successful_stack_nonce = stacker_nonce; let valid_stack_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -5374,7 +5374,7 @@ fn stack_stx_signer_auth(use_nakamoto: bool) { .expect_tuple(); let stacker_txs = - get_last_block_sender_transactions(&observer, key_to_stacks_addr(&stacker_key)); + get_last_block_sender_transactions(&observer, key_to_stacks_addr(stacker_key)); let expected_error = Value::error(Value::Int(19)).unwrap(); @@ -5391,7 +5391,7 @@ fn stack_stx_signer_auth(use_nakamoto: bool) { .expect_result_ok() .expect("Expected ok result from stack-stx tx"); - let signer_txs = get_last_block_sender_transactions(&observer, key_to_stacks_addr(&signer_key)); + let signer_txs = get_last_block_sender_transactions(&observer, key_to_stacks_addr(signer_key)); // enable auth worked let enable_tx_result = signer_txs @@ -5417,15 +5417,15 @@ fn stack_agg_commit_signer_auth(use_nakamoto: bool) { let min_ustx = get_stacking_minimum(&mut peer, &latest_block); let stacker_key = &keys[0]; - let stacker_addr = PrincipalData::from(key_to_stacks_addr(&stacker_key)); + let stacker_addr = PrincipalData::from(key_to_stacks_addr(stacker_key)); let signer_sk = &keys[1]; let signer_pk = StacksPublicKey::from_private(signer_sk); let delegate_key = &keys[2]; - let delegate_addr = key_to_stacks_addr(&delegate_key); + let delegate_addr = key_to_stacks_addr(delegate_key); - let pox_addr = pox_addr_from(&delegate_key); + let pox_addr = pox_addr_from(delegate_key); let reward_cycle = burnchain .block_height_to_reward_cycle(block_height) @@ -5435,7 +5435,7 @@ fn stack_agg_commit_signer_auth(use_nakamoto: bool) { // Setup: delegate-stx and delegate-stack-stx let delegate_tx = make_pox_4_delegate_stx( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, delegate_addr.clone().into(), @@ -5445,7 +5445,7 @@ fn stack_agg_commit_signer_auth(use_nakamoto: bool) { let delegate_stack_stx_nonce = delegate_nonce; let delegate_stack_stx_tx = make_pox_4_delegate_stack_stx( - &delegate_key, + delegate_key, delegate_nonce, stacker_addr, min_ustx, @@ -5460,7 +5460,7 @@ fn stack_agg_commit_signer_auth(use_nakamoto: bool) { delegate_nonce += 1; let invalid_agg_nonce = delegate_nonce; let invalid_agg_tx = make_pox_4_aggregation_commit_indexed( - &delegate_key, + delegate_key, delegate_nonce, &pox_addr, next_reward_cycle, @@ -5474,7 +5474,7 @@ fn stack_agg_commit_signer_auth(use_nakamoto: bool) { let enable_auth_nonce = 0; let enable_auth_tx = make_pox_4_set_signer_key_auth( &pox_addr, - &signer_sk, + signer_sk, next_reward_cycle, &topic, 1, @@ -5489,7 +5489,7 @@ fn stack_agg_commit_signer_auth(use_nakamoto: bool) { delegate_nonce += 1; let valid_agg_nonce = delegate_nonce; let valid_agg_tx = make_pox_4_aggregation_commit_indexed( - &delegate_key, + delegate_key, delegate_nonce, &pox_addr, next_reward_cycle, @@ -5536,10 +5536,10 @@ fn stack_extend_signer_auth(use_nakamoto: bool) { let mut stacker_nonce = 0; let stacker_key = &keys[0]; let min_ustx = get_stacking_minimum(&mut peer, &latest_block); - let stacker_addr = key_to_stacks_addr(&stacker_key); + let stacker_addr = key_to_stacks_addr(stacker_key); let signer_key = &keys[1]; let signer_public_key = StacksPublicKey::from_private(signer_key); - let pox_addr = pox_addr_from(&signer_key); + let pox_addr = pox_addr_from(signer_key); let reward_cycle = get_current_reward_cycle(&peer, &burnchain); let topic = Pox4SignatureTopic::StackExtend; @@ -5547,7 +5547,7 @@ fn stack_extend_signer_auth(use_nakamoto: bool) { // Setup: stack-stx let signature = make_signer_key_signature( &pox_addr, - &signer_key, + signer_key, reward_cycle, &Pox4SignatureTopic::StackStx, lock_period, @@ -5556,7 +5556,7 @@ fn stack_extend_signer_auth(use_nakamoto: bool) { ); let stack_nonce = stacker_nonce; let stack_tx = make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -5572,7 +5572,7 @@ fn stack_extend_signer_auth(use_nakamoto: bool) { stacker_nonce += 1; let invalid_extend_nonce = stacker_nonce; let invalid_cycle_tx = make_pox_4_extend( - &stacker_key, + stacker_key, stacker_nonce, pox_addr.clone(), lock_period, @@ -5586,7 +5586,7 @@ fn stack_extend_signer_auth(use_nakamoto: bool) { let enable_auth_nonce = 0; let enable_auth_tx = make_pox_4_set_signer_key_auth( &pox_addr, - &signer_key, + signer_key, reward_cycle, &topic, lock_period, @@ -5601,7 +5601,7 @@ fn stack_extend_signer_auth(use_nakamoto: bool) { stacker_nonce += 1; let valid_extend_nonce = stacker_nonce; let valid_tx = make_pox_4_extend( - &stacker_key, + stacker_key, stacker_nonce, pox_addr, lock_period, @@ -5642,12 +5642,12 @@ fn test_set_signer_key_auth(use_nakamoto: bool) { let alice_nonce = 0; let alice_key = &keys[0]; let min_ustx = get_stacking_minimum(&mut peer, &latest_block); - let alice_addr = key_to_stacks_addr(&alice_key); + let alice_addr = key_to_stacks_addr(alice_key); let mut signer_nonce = 0; let signer_key = &keys[1]; let signer_public_key = StacksPublicKey::from_private(signer_key); - let signer_addr = key_to_stacks_addr(&signer_key); - let pox_addr = pox_addr_from(&signer_key); + let signer_addr = key_to_stacks_addr(signer_key); + let pox_addr = pox_addr_from(signer_key); let current_reward_cycle = get_current_reward_cycle(&peer, &burnchain); @@ -5655,13 +5655,13 @@ fn test_set_signer_key_auth(use_nakamoto: bool) { let invalid_enable_nonce = alice_nonce; let invalid_enable_tx = make_pox_4_set_signer_key_auth( &pox_addr, - &signer_key, + signer_key, 1, &Pox4SignatureTopic::StackStx, lock_period, true, invalid_enable_nonce, - Some(&alice_key), + Some(alice_key), u128::MAX, 1, ); @@ -5671,13 +5671,13 @@ fn test_set_signer_key_auth(use_nakamoto: bool) { signer_nonce += 1; let invalid_tx_period: StacksTransaction = make_pox_4_set_signer_key_auth( &pox_addr, - &signer_key, + signer_key, current_reward_cycle, &Pox4SignatureTopic::StackStx, 0, false, signer_invalid_period_nonce, - Some(&signer_key), + Some(signer_key), u128::MAX, 1, ); @@ -5687,13 +5687,13 @@ fn test_set_signer_key_auth(use_nakamoto: bool) { // Test that confirmed reward cycle is at least current reward cycle let invalid_tx_cycle: StacksTransaction = make_pox_4_set_signer_key_auth( &pox_addr, - &signer_key, + signer_key, 1, &Pox4SignatureTopic::StackStx, 1, false, signer_invalid_cycle_nonce, - Some(&signer_key), + Some(signer_key), u128::MAX, 1, ); @@ -5701,7 +5701,7 @@ fn test_set_signer_key_auth(use_nakamoto: bool) { // Disable auth for `signer-key` let disable_auth_tx: StacksTransaction = make_pox_4_set_signer_key_auth( &pox_addr, - &signer_key, + signer_key, current_reward_cycle, &Pox4SignatureTopic::StackStx, lock_period, @@ -5780,7 +5780,7 @@ fn test_set_signer_key_auth(use_nakamoto: bool) { let enable_auth_nonce = signer_nonce; let enable_auth_tx = make_pox_4_set_signer_key_auth( &pox_addr, - &signer_key, + signer_key, current_reward_cycle, &Pox4SignatureTopic::StackStx, lock_period, @@ -5817,7 +5817,7 @@ fn test_set_signer_key_auth(use_nakamoto: bool) { let disable_auth_nonce = signer_nonce; let disable_auth_tx = make_pox_4_set_signer_key_auth( &pox_addr, - &signer_key, + signer_key, current_reward_cycle, &Pox4SignatureTopic::StackStx, lock_period, @@ -5867,7 +5867,7 @@ fn stack_extend_signer_key(use_nakamoto: bool) { let stacker_key = &keys[0]; let min_ustx = get_stacking_minimum(&mut peer, &latest_block) * 2; - let pox_addr = pox_addr_from(&stacker_key); + let pox_addr = pox_addr_from(stacker_key); let pox_addr_val = Value::Tuple(pox_addr.clone().as_clarity_tuple().unwrap()); let signer_sk = Secp256k1PrivateKey::from_seed(&[0]); @@ -5897,7 +5897,7 @@ fn stack_extend_signer_key(use_nakamoto: bool) { ); let txs = vec![make_pox_4_lockup( - &stacker_key, + stacker_key, stacker_nonce, min_ustx, &pox_addr, @@ -5924,7 +5924,7 @@ fn stack_extend_signer_key(use_nakamoto: bool) { ); let update_txs = vec![make_pox_4_extend( - &stacker_key, + stacker_key, stacker_nonce, pox_addr.clone(), 1, @@ -6015,7 +6015,7 @@ fn delegate_stack_stx_signer_key(use_nakamoto: bool) { // (delegate-to principal) // (until-burn-ht (optional uint)) // (pox-addr (optional { version: (buff 1), hashbytes: (buff 32) }))) - let pox_addr = pox_addr_from(&stacker_key); + let pox_addr = pox_addr_from(stacker_key); let pox_addr_val = Value::Tuple(pox_addr.clone().as_clarity_tuple().unwrap()); let signer_sk = Secp256k1PrivateKey::from_seed(&[1, 1, 1]); let signer_key = Secp256k1PublicKey::from_private(&signer_sk); @@ -6476,7 +6476,7 @@ fn stack_increase(use_nakamoto: bool) { burnchain_unlock_height: Value::UInt(expected_unlock_height as u128), }; - check_pox_print_event(&increase_event, common_data, increase_op_data); + check_pox_print_event(increase_event, common_data, increase_op_data); // Testing stack_increase response is equal to expected response // Test is straightforward because 'stack-increase' in PoX-4 is the same as PoX-3 @@ -6695,7 +6695,7 @@ pub fn pox_4_scenario_test_setup<'a>( peer_config.burnchain.pox_constants.reward_cycle_length = 20; peer_config.burnchain.pox_constants.prepare_length = 5; - let mut peer = TestPeer::new_with_observer(peer_config.clone(), Some(&observer)); + let mut peer = TestPeer::new_with_observer(peer_config.clone(), Some(observer)); let mut peer_nonce = 0; @@ -8561,7 +8561,7 @@ fn delegate_stack_increase_err(use_nakamoto: bool) { // Bob's Aggregate Increase let bobs_aggregate_increase = make_pox_4_aggregation_increase( - &bob_delegate_key, + bob_delegate_key, bob_nonce, &pox_addr, next_reward_cycle.into(), @@ -8662,11 +8662,11 @@ pub fn get_signer_key_authorization_pox_4( ) -> Option { with_clarity_db_ro(peer, tip, |db| { let lookup_tuple = make_signer_key_authorization_lookup_key( - &pox_addr, + pox_addr, reward_cycle, - &topic, + topic, period, - &signer_key, + signer_key, max_amount, auth_id, ); @@ -8700,11 +8700,11 @@ pub fn get_signer_key_authorization_used_pox_4( ) -> bool { with_clarity_db_ro(peer, tip, |db| { let lookup_tuple = make_signer_key_authorization_lookup_key( - &pox_addr, + pox_addr, reward_cycle, - &topic, + topic, period, - &signer_key, + signer_key, max_amount, auth_id, ); @@ -8785,8 +8785,8 @@ pub fn get_delegation_state_pox_4( } pub fn get_stacking_minimum(peer: &mut TestPeer, latest_block: &StacksBlockId) -> u128 { - with_sortdb(peer, |ref mut chainstate, ref sortdb| { - chainstate.get_stacking_minimum(sortdb, &latest_block) + with_sortdb(peer, |ref mut chainstate, sortdb| { + chainstate.get_stacking_minimum(sortdb, latest_block) }) .unwrap() } @@ -8827,7 +8827,7 @@ pub fn prepare_pox4_test<'a>( signer_private_key: key.clone(), stacker_private_key: key.clone(), amount: 1024 * POX_THRESHOLD_STEPS_USTX, - pox_addr: Some(pox_addr_from(&key)), + pox_addr: Some(pox_addr_from(key)), max_amount: None, }) .collect::>(); @@ -8999,7 +8999,7 @@ fn missed_slots_no_unlock() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, - &function_name!(), + function_name!(), Some(epochs.clone()), Some(&observer), ); @@ -9252,7 +9252,7 @@ fn no_lockups_2_5() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, - &function_name!(), + function_name!(), Some(epochs.clone()), Some(&observer), ); diff --git a/stackslib/src/chainstate/stacks/boot/signers_tests.rs b/stackslib/src/chainstate/stacks/boot/signers_tests.rs index bf3b5f312c..efcf9ae6bd 100644 --- a/stackslib/src/chainstate/stacks/boot/signers_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/signers_tests.rs @@ -445,12 +445,12 @@ fn advance_blocks( test_signers, |miner, chainstate, sortdb, blocks| { if blocks.len() < num_blocks as usize { - let addr = key_to_stacks_addr(&stacker_private_key); + let addr = key_to_stacks_addr(stacker_private_key); let account = get_account(chainstate, sortdb, &addr); let stx_transfer = make_token_transfer( chainstate, sortdb, - &stacker_private_key, + stacker_private_key, account.nonce, 1, 1, diff --git a/stackslib/src/chainstate/stacks/db/accounts.rs b/stackslib/src/chainstate/stacks/db/accounts.rs index 0ad5687f12..d0ff67e2d4 100644 --- a/stackslib/src/chainstate/stacks/db/accounts.rs +++ b/stackslib/src/chainstate/stacks/db/accounts.rs @@ -420,7 +420,7 @@ impl StacksChainState { panic!(); }); - db.set_account_nonce(&principal, next_nonce)?; + db.set_account_nonce(principal, next_nonce)?; Ok(()) }) .unwrap_or_else(|e| { @@ -1190,7 +1190,7 @@ mod test { new_tip.burn_header_height, new_tip.burn_header_timestamp, new_tip.microblock_tail.clone(), - &block_reward, + block_reward, None, &ExecutionCost::ZERO, 123, diff --git a/stackslib/src/chainstate/stacks/db/blocks.rs b/stackslib/src/chainstate/stacks/db/blocks.rs index b29ffe022e..2e768e70ec 100644 --- a/stackslib/src/chainstate/stacks/db/blocks.rs +++ b/stackslib/src/chainstate/stacks/db/blocks.rs @@ -668,8 +668,7 @@ impl StacksChainState { consensus_hash: &ConsensusHash, block_hash: &BlockHeaderHash, ) -> Result<(), Error> { - let block_path = - StacksChainState::make_block_dir(blocks_path, consensus_hash, &block_hash)?; + let block_path = StacksChainState::make_block_dir(blocks_path, consensus_hash, block_hash)?; StacksChainState::atomic_file_write(&block_path, &vec![]) } @@ -680,7 +679,7 @@ impl StacksChainState { block_header_hash: &BlockHeaderHash, ) { let block_path = - StacksChainState::make_block_dir(blocks_dir, consensus_hash, &block_header_hash) + StacksChainState::make_block_dir(blocks_dir, consensus_hash, block_header_hash) .expect("FATAL: failed to create block directory"); let sz = fs::metadata(&block_path) @@ -1156,7 +1155,7 @@ impl StacksChainState { ) -> Result, Error> { match StacksChainState::load_staging_microblock_info( blocks_conn, - &parent_index_hash, + parent_index_hash, microblock_hash, )? { Some(mut staging_microblock) => { @@ -1484,7 +1483,7 @@ impl StacksChainState { // find all blocks that we have that could be this block's parent let sql = "SELECT * FROM snapshots WHERE winning_stacks_block_hash = ?1"; let possible_parent_snapshots = - query_rows::(&sort_handle, &sql, &[parent_block_hash])?; + query_rows::(&sort_handle, sql, &[parent_block_hash])?; for possible_parent in possible_parent_snapshots.into_iter() { let burn_ancestor = sort_handle.get_block_snapshot(&possible_parent.burn_header_hash)?; @@ -1521,7 +1520,7 @@ impl StacksChainState { // find all blocks that we have that could be this block's parent let sql = "SELECT * FROM snapshots WHERE winning_stacks_block_hash = ?1"; let possible_parent_snapshots = - query_rows::(&sort_handle, &sql, &[&header.parent_block])?; + query_rows::(&sort_handle, sql, &[&header.parent_block])?; for possible_parent in possible_parent_snapshots.into_iter() { let burn_ancestor = sort_handle.get_block_snapshot(&possible_parent.burn_header_hash)?; @@ -1564,7 +1563,7 @@ impl StacksChainState { let block_hash = block.block_hash(); let index_block_hash = - StacksBlockHeader::make_index_block_hash(&consensus_hash, &block_hash); + StacksBlockHeader::make_index_block_hash(consensus_hash, &block_hash); let attachable = { // if this block has an unprocessed staging parent, then it's not attachable until its parent is. @@ -1572,14 +1571,14 @@ impl StacksChainState { let has_parent_sql = "SELECT anchored_block_hash FROM staging_blocks WHERE anchored_block_hash = ?1 AND consensus_hash = ?2 LIMIT 1"; let has_parent_args = params![block.header.parent_block, parent_consensus_hash]; let has_unprocessed_parent_rows = query_row_columns::( - &tx, + tx, has_unprocessed_parent_sql, has_parent_args, "anchored_block_hash", ) .map_err(Error::DBError)?; let has_parent_rows = query_row_columns::( - &tx, + tx, has_parent_sql, has_parent_args, "anchored_block_hash", @@ -1642,7 +1641,7 @@ impl StacksChainState { u64_to_sql(download_time)?, ]; - tx.execute(&sql, args) + tx.execute(sql, args) .map_err(|e| Error::DBError(db_error::SqliteError(e)))?; StacksChainState::store_block(blocks_path, consensus_hash, block)?; @@ -1653,7 +1652,7 @@ impl StacksChainState { "UPDATE staging_blocks SET attachable = 0 WHERE parent_anchored_block_hash = ?1"; let children_args = [&block_hash]; - tx.execute(&children_sql, &children_args) + tx.execute(children_sql, &children_args) .map_err(|e| Error::DBError(db_error::SqliteError(e)))?; Ok(()) @@ -1707,7 +1706,7 @@ impl StacksChainState { 0, ]; - tx.execute(&sql, args) + tx.execute(sql, args) .map_err(|e| Error::DBError(db_error::SqliteError(e)))?; // store microblock bytes @@ -1716,7 +1715,7 @@ impl StacksChainState { VALUES (?1, ?2)"; let block_args = params![microblock.block_hash(), microblock_bytes]; - tx.execute(&block_sql, block_args) + tx.execute(block_sql, block_args) .map_err(|e| Error::DBError(db_error::SqliteError(e)))?; Ok(()) @@ -1808,7 +1807,7 @@ impl StacksChainState { parent_block_hash: &BlockHeaderHash, microblock_hash: &BlockHeaderHash, ) -> Result, Error> { - StacksChainState::read_i64s(&self.db(), "SELECT processed FROM staging_microblocks WHERE anchored_block_hash = ?1 AND microblock_hash = ?2 AND consensus_hash = ?3", &[&parent_block_hash, microblock_hash, &parent_consensus_hash]) + StacksChainState::read_i64s(self.db(), "SELECT processed FROM staging_microblocks WHERE anchored_block_hash = ?1 AND microblock_hash = ?2 AND consensus_hash = ?3", &[&parent_block_hash, microblock_hash, &parent_consensus_hash]) .and_then(|processed| { if processed.is_empty() { Ok(None) @@ -1833,8 +1832,8 @@ impl StacksChainState { ) -> Result { let (parent_consensus_hash, parent_block_hash) = match StacksChainState::get_parent_block_header_hashes( - &self.db(), - &child_index_block_hash, + self.db(), + child_index_block_hash, )? { Some(x) => x, None => { @@ -1848,7 +1847,7 @@ impl StacksChainState { let parent_microblock_hash = match StacksChainState::get_staging_block_parent_microblock_hash( - &self.db(), + self.db(), child_index_block_hash, )? { Some(x) => x, @@ -1932,8 +1931,8 @@ impl StacksChainState { // TODO: just do a stat? cache this? match StacksChainState::load_block_header( &self.blocks_path, - &consensus_hash, - &stacks_header_hash, + consensus_hash, + stacks_header_hash, ) { Ok(Some(hdr)) => { test_debug!( @@ -2261,11 +2260,11 @@ impl StacksChainState { // and `heaviest_am` against each other depending on their lengths. if (stacks_tip_affirmation_map.len() > heaviest_am.len() && stacks_tip_affirmation_map - .find_divergence(&heaviest_am) + .find_divergence(heaviest_am) .is_some()) || (stacks_tip_affirmation_map.len() <= heaviest_am.len() && heaviest_am - .find_divergence(&stacks_tip_affirmation_map) + .find_divergence(stacks_tip_affirmation_map) .is_some()) { return Ok(false); @@ -2428,7 +2427,7 @@ impl StacksChainState { }; let stacks_block_id = - StacksBlockHeader::make_index_block_hash(&consensus_hash, &anchored_block_hash); + StacksBlockHeader::make_index_block_hash(consensus_hash, anchored_block_hash); if !block.processed { if !has_stored_block { if accept { @@ -2620,7 +2619,7 @@ impl StacksChainState { // garbage-collect for mblock_hash in orphaned_microblock_hashes.iter() { - StacksChainState::delete_microblock_data(tx, &mblock_hash)?; + StacksChainState::delete_microblock_data(tx, mblock_hash)?; } for mblock_hash in orphaned_microblock_hashes.iter() { @@ -2704,8 +2703,8 @@ impl StacksChainState { ) -> Result { let (parent_consensus_hash, parent_block_hash) = match StacksChainState::get_parent_block_header_hashes( - &self.db(), - &child_index_block_hash, + self.db(), + child_index_block_hash, )? { Some(x) => x, None => { @@ -2714,7 +2713,7 @@ impl StacksChainState { }; let parent_index_block_hash = StacksBlockHeader::make_index_block_hash(&parent_consensus_hash, &parent_block_hash); - StacksChainState::read_i64s(&self.db(), "SELECT processed FROM staging_microblocks WHERE index_block_hash = ?1 AND sequence = ?2", &[&parent_index_block_hash, &seq]) + StacksChainState::read_i64s(self.db(), "SELECT processed FROM staging_microblocks WHERE index_block_hash = ?1 AND sequence = ?2", &[&parent_index_block_hash, &seq]) .and_then(|processed| { if processed.is_empty() { Ok(false) @@ -2737,7 +2736,7 @@ impl StacksChainState { let sql = "SELECT 1 FROM staging_microblocks WHERE index_microblock_hash = ?1 AND processed = 1 AND orphaned = 0"; let args = params![index_microblock_hash]; let res = conn - .query_row(&sql, args, |_r| Ok(())) + .query_row(sql, args, |_r| Ok(())) .optional() .expect("DB CORRUPTION: block header DB corrupted!") .is_some(); @@ -2751,7 +2750,7 @@ impl StacksChainState { ) -> Result, Error> { // get parent's consensus hash and block hash let (parent_consensus_hash, _) = match StacksChainState::get_parent_block_header_hashes( - &self.db(), + self.db(), child_index_block_hash, )? { Some(x) => x, @@ -2763,7 +2762,7 @@ impl StacksChainState { // get the child's staging block info let child_block_info = - match StacksChainState::load_staging_block_info(&self.db(), child_index_block_hash)? { + match StacksChainState::load_staging_block_info(self.db(), child_index_block_hash)? { Some(hdr) => hdr, None => { test_debug!("No such block: {:?}", &child_index_block_hash); @@ -2786,7 +2785,7 @@ impl StacksChainState { parent_index_block_hash: &StacksBlockId, min_seq: u16, ) -> Result { - StacksChainState::read_i64s(&self.db(), "SELECT processed FROM staging_microblocks WHERE index_block_hash = ?1 AND sequence >= ?2 LIMIT 1", &[&parent_index_block_hash, &min_seq]) + StacksChainState::read_i64s(self.db(), "SELECT processed FROM staging_microblocks WHERE index_block_hash = ?1 AND sequence >= ?2 LIMIT 1", &[&parent_index_block_hash, &min_seq]) .and_then(|processed| Ok(!processed.is_empty())) } @@ -2799,7 +2798,7 @@ impl StacksChainState { parent_index_block_hash: &StacksBlockId, microblock_hash: &BlockHeaderHash, ) -> Result { - StacksChainState::read_i64s(&self.db(), "SELECT processed FROM staging_microblocks WHERE index_block_hash = ?1 AND microblock_hash = ?2 LIMIT 1", &[parent_index_block_hash, microblock_hash]) + StacksChainState::read_i64s(self.db(), "SELECT processed FROM staging_microblocks WHERE index_block_hash = ?1 AND microblock_hash = ?2 LIMIT 1", &[parent_index_block_hash, microblock_hash]) .and_then(|processed| Ok(!processed.is_empty())) } @@ -2811,7 +2810,7 @@ impl StacksChainState { parent_index_block_hash: &StacksBlockId, ) -> Result { StacksChainState::read_i64s( - &self.db(), + self.db(), "SELECT processed FROM staging_microblocks WHERE index_block_hash = ?1 LIMIT 1", &[&parent_index_block_hash], ) @@ -2849,7 +2848,7 @@ impl StacksChainState { index_block_hash: &StacksBlockId, ) -> Result, Error> { StacksChainState::inner_get_block_header_hashes( - &self.db(), + self.db(), index_block_hash, "consensus_hash", "anchored_block_hash", @@ -3011,7 +3010,7 @@ impl StacksChainState { } let signed_microblocks = if verify_signatures { - StacksChainState::extract_signed_microblocks(&parent_anchored_block_header, microblocks) + StacksChainState::extract_signed_microblocks(parent_anchored_block_header, microblocks) } else { microblocks.to_owned() }; @@ -3319,7 +3318,7 @@ impl StacksChainState { let index_block_hash = StacksBlockHeader::make_index_block_hash(consensus_hash, &block.block_hash()); if StacksChainState::has_stored_block( - &conn, + conn, blocks_path, consensus_hash, &block.block_hash(), @@ -3339,7 +3338,7 @@ impl StacksChainState { &index_block_hash ); return Ok(true); - } else if StacksChainState::has_valid_block_indexed(&blocks_path, &index_block_hash)? { + } else if StacksChainState::has_valid_block_indexed(blocks_path, &index_block_hash)? { debug!( "Block already stored to chunk store: {}/{} ({})", consensus_hash, @@ -3459,7 +3458,7 @@ impl StacksChainState { &mut block_tx, &blocks_path, consensus_hash, - &block, + block, parent_consensus_hash, commit_burn, sortition_burn, @@ -3817,7 +3816,7 @@ impl StacksChainState { ) -> Result, Error> { let sql = "SELECT processed_time - arrival_time FROM staging_blocks WHERE processed = 1 AND height >= ?1 AND height < ?2"; let args = params![u64_to_sql(start_height)?, u64_to_sql(end_height)?]; - let list = query_rows::(blocks_conn, &sql, args)?; + let list = query_rows::(blocks_conn, sql, args)?; Ok(list) } @@ -3830,7 +3829,7 @@ impl StacksChainState { ) -> Result, Error> { let sql = "SELECT download_time FROM staging_blocks WHERE height >= ?1 AND height < ?2"; let args = params![u64_to_sql(start_height)?, u64_to_sql(end_height)?]; - let list = query_rows::(blocks_conn, &sql, args)?; + let list = query_rows::(blocks_conn, sql, args)?; Ok(list) } @@ -3853,9 +3852,9 @@ impl StacksChainState { // go through staging blocks and see if any of them match headers, are attachable, and are // recent (i.e. less than 10 minutes old) // pick randomly -- don't allow the network sender to choose the processing order! - let sql = "SELECT * FROM staging_blocks WHERE processed = 0 AND attachable = 1 AND orphaned = 0 ORDER BY RANDOM()".to_string(); + let sql = "SELECT * FROM staging_blocks WHERE processed = 0 AND attachable = 1 AND orphaned = 0 ORDER BY RANDOM()"; let mut stmt = blocks_tx - .prepare(&sql) + .prepare(sql) .map_err(|e| Error::DBError(db_error::SqliteError(e)))?; let mut rows = stmt @@ -3863,7 +3862,7 @@ impl StacksChainState { .map_err(|e| Error::DBError(db_error::SqliteError(e)))?; while let Some(row) = rows.next().map_err(|e| db_error::SqliteError(e))? { - let mut candidate = StagingBlock::from_row(&row).map_err(Error::DBError)?; + let mut candidate = StagingBlock::from_row(row).map_err(Error::DBError)?; // block must correspond to a valid PoX snapshot let sn_opt = @@ -4713,7 +4712,7 @@ impl StacksChainState { mainnet: bool, latest_matured_miners: &[MinerPaymentSchedule], ) -> Result { - let parent_miner = if let Some(ref miner) = latest_matured_miners.first().as_ref() { + let parent_miner = if let Some(miner) = latest_matured_miners.first().as_ref() { StacksChainState::get_scheduled_block_rewards_at_block( conn, &StacksBlockHeader::make_index_block_hash( @@ -5093,7 +5092,7 @@ impl StacksChainState { // microblock stream is non-empty. let parent_block_cost = if miner_id_opt.is_none() || !parent_microblocks.is_empty() { let cost = StacksChainState::get_stacks_block_anchored_cost( - &chainstate_tx.deref().deref(), + chainstate_tx.deref().deref(), &parent_index_hash, )? .ok_or_else(|| { @@ -5160,7 +5159,7 @@ impl StacksChainState { let (microblock_fees, microblock_burns, microblock_txs_receipts) = match StacksChainState::process_microblocks_transactions( &mut clarity_tx, - &parent_microblocks, + parent_microblocks, microblock_ast_rules, ) { Ok((fees, burns, events)) => (fees, burns, events), @@ -5219,7 +5218,7 @@ impl StacksChainState { signer_set_calc = NakamotoSigners::check_and_handle_prepare_phase_start( &mut clarity_tx, first_block_height.into(), - &pox_constants, + pox_constants, burn_tip_height.into(), // this is the block height that the write occurs *during* chain_tip.stacks_block_height + 1, @@ -5495,8 +5494,8 @@ impl StacksChainState { // get the burnchain block that precedes this block's sortition let parent_burn_hash = SortitionDB::get_block_snapshot_consensus( - &burn_dbconn.tx(), - &chain_tip_consensus_hash, + burn_dbconn.tx(), + chain_tip_consensus_hash, )? .expect("BUG: Failed to load snapshot for block snapshot during Stacks block processing") .parent_burn_header_hash; @@ -5522,9 +5521,9 @@ impl StacksChainState { clarity_instance, burn_dbconn, burn_dbconn, - &burn_dbconn.tx(), + burn_dbconn.tx(), pox_constants, - &parent_chain_tip, + parent_chain_tip, parent_burn_hash, chain_tip_burn_header_height, parent_consensus_hash, @@ -6547,7 +6546,7 @@ impl StacksChainState { SortitionDB::get_canonical_stacks_chain_tip_hash(sortdb.conn())?; let sql = "SELECT * FROM staging_blocks WHERE processed = 1 AND orphaned = 0 AND consensus_hash = ?1 AND anchored_block_hash = ?2"; let args = params![consensus_hash, block_bhh]; - query_row(&self.db(), sql, args).map_err(Error::DBError) + query_row(self.db(), sql, args).map_err(Error::DBError) } /// Get all possible canonical chain tips @@ -6557,7 +6556,7 @@ impl StacksChainState { let sql = "SELECT * FROM staging_blocks WHERE processed = 1 AND orphaned = 0 AND consensus_hash = ?1 AND anchored_block_hash = ?2"; let args = params![consensus_hash, block_bhh]; let Some(staging_block): Option = - query_row(&self.db(), sql, args).map_err(Error::DBError)? + query_row(self.db(), sql, args).map_err(Error::DBError)? else { return Ok(vec![]); }; @@ -6569,7 +6568,7 @@ impl StacksChainState { let sql = "SELECT * FROM staging_blocks WHERE processed = 1 AND orphaned = 0 AND height = ?1"; let args = params![u64_to_sql(height)?]; - query_rows(&self.db(), sql, args).map_err(Error::DBError) + query_rows(self.db(), sql, args).map_err(Error::DBError) } /// Get the parent block of `staging_block`. @@ -6582,7 +6581,7 @@ impl StacksChainState { staging_block.parent_consensus_hash, staging_block.parent_anchored_block_hash, ]; - query_row(&self.db(), sql, args).map_err(Error::DBError) + query_row(self.db(), sql, args).map_err(Error::DBError) } /// Get the height of a staging block @@ -6593,7 +6592,7 @@ impl StacksChainState { ) -> Result, Error> { let sql = "SELECT height FROM staging_blocks WHERE consensus_hash = ?1 AND anchored_block_hash = ?2"; let args = params![consensus_hash, block_hash]; - query_row(&self.db(), sql, args).map_err(Error::DBError) + query_row(self.db(), sql, args).map_err(Error::DBError) } /// This runs checks for the validity of a transaction that @@ -6673,7 +6672,7 @@ impl StacksChainState { // 2: it must be validly signed. let epoch = clarity_connection.get_epoch().clone(); - StacksChainState::process_transaction_precheck(&chainstate_config, &tx, epoch) + StacksChainState::process_transaction_precheck(chainstate_config, tx, epoch) .map_err(|e| MemPoolRejection::FailedToValidate(e))?; // 3: it must pay a tx fee @@ -6695,7 +6694,7 @@ impl StacksChainState { // 5: the account nonces must be correct let (origin, payer) = - match StacksChainState::check_transaction_nonces(clarity_connection, &tx, true) { + match StacksChainState::check_transaction_nonces(clarity_connection, tx, true) { Ok(x) => x, // if errored, check if MEMPOOL_TX_CHAINING would admit this TX Err((e, (origin, payer))) => { @@ -6853,7 +6852,7 @@ impl StacksChainState { let epoch = clarity_connection.get_epoch().clone(); clarity_connection.with_analysis_db_readonly(|db| { let function_type = db - .get_public_function_type(&contract_identifier, &function_name, &epoch) + .get_public_function_type(&contract_identifier, function_name, &epoch) .map_err(|_e| MemPoolRejection::NoSuchContract)? .ok_or_else(|| MemPoolRejection::NoSuchPublicFunction)?; let clarity_version = db @@ -6862,7 +6861,7 @@ impl StacksChainState { function_type .check_args_by_allowing_trait_cast( db, - &function_args, + function_args, epoch, clarity_version, ) @@ -7127,7 +7126,7 @@ pub mod test { for i in 0..49 { let random_bytes = rng.gen::<[u8; 8]>(); let random_bytes_str = to_hex(&random_bytes); - let auth = TransactionAuth::from_p2pkh(&privk).unwrap(); + let auth = TransactionAuth::from_p2pkh(privk).unwrap(); // 16k + 8 contract let contract_16k = { @@ -7153,7 +7152,7 @@ pub mod test { tx_big_contract.anchor_mode = TransactionAnchorMode::OffChainOnly; let mut tx_signer = StacksTransactionSigner::new(&tx_big_contract); - tx_signer.sign_origin(&privk).unwrap(); + tx_signer.sign_origin(privk).unwrap(); let tx_big_contract_signed = tx_signer.get_tx().unwrap(); all_txs.push(tx_big_contract_signed); @@ -7224,7 +7223,7 @@ pub mod test { block: &StacksBlock, ) { assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -7233,7 +7232,7 @@ pub mod test { .is_some()); assert_eq!( StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -7244,7 +7243,7 @@ pub mod test { ); assert_eq!( StacksChainState::get_staging_block_status( - &chainstate.db(), + chainstate.db(), consensus_hash, &block.block_hash() ) @@ -7267,7 +7266,7 @@ pub mod test { block: &StacksBlock, ) { assert!(!StacksChainState::has_stored_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -7275,7 +7274,7 @@ pub mod test { .unwrap()); assert_eq!( StacksChainState::load_staging_block_pubkey_hash( - &chainstate.db(), + chainstate.db(), consensus_hash, &block.block_hash() ) @@ -7291,7 +7290,7 @@ pub mod test { block: &StacksBlock, ) { assert!(StacksChainState::has_stored_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -7312,7 +7311,7 @@ pub mod test { .unwrap() .is_none()); assert!(StacksChainState::load_staging_block_pubkey_hash( - &chainstate.db(), + chainstate.db(), consensus_hash, &block.block_hash() ) @@ -7321,7 +7320,7 @@ pub mod test { assert_eq!( StacksChainState::get_staging_block_status( - &chainstate.db(), + chainstate.db(), consensus_hash, &block.block_hash() ) @@ -7330,7 +7329,7 @@ pub mod test { true ); assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -7352,7 +7351,7 @@ pub mod test { block: &StacksBlock, ) { assert!(StacksChainState::has_stored_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -7386,7 +7385,7 @@ pub mod test { block.header ); assert!(StacksChainState::load_staging_block_pubkey_hash( - &chainstate.db(), + chainstate.db(), consensus_hash, &block.block_hash() ) @@ -7395,7 +7394,7 @@ pub mod test { assert_eq!( StacksChainState::get_staging_block_status( - &chainstate.db(), + chainstate.db(), consensus_hash, &block.block_hash() ) @@ -7404,7 +7403,7 @@ pub mod test { true ); assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -7538,7 +7537,7 @@ pub mod test { ); let (parent_consensus_hash, parent_block_hash) = StacksChainState::get_parent_block_header_hashes( - &chainstate.db(), + chainstate.db(), &child_index_block_hash, ) .unwrap() @@ -7547,7 +7546,7 @@ pub mod test { StacksBlockHeader::make_index_block_hash(&parent_consensus_hash, &parent_block_hash); let parent_microblock_index_hash = - StacksBlockHeader::make_index_block_hash(&parent_consensus_hash, &tail_microblock_hash); + StacksBlockHeader::make_index_block_hash(&parent_consensus_hash, tail_microblock_hash); let mut tx = chainstate.db_tx_begin().unwrap(); @@ -7555,7 +7554,7 @@ pub mod test { &mut tx, child_consensus_hash, child_anchored_block_hash, - &tail_microblock_hash, + tail_microblock_hash, ) .unwrap(); tx.commit().unwrap(); @@ -7608,7 +7607,7 @@ pub mod test { .unwrap(); assert!(fs::metadata(&path).is_err()); assert!(!StacksChainState::has_stored_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &ConsensusHash([1u8; 20]), &BlockHeaderHash([2u8; 32]) @@ -7625,7 +7624,7 @@ pub mod test { // empty block is considered _not_ stored assert!(!StacksChainState::has_stored_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &ConsensusHash([1u8; 20]), &BlockHeaderHash([2u8; 32]) @@ -7662,7 +7661,7 @@ pub mod test { .unwrap(); assert!(fs::metadata(&path).is_err()); assert!(!StacksChainState::has_stored_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &ConsensusHash([1u8; 20]), &block.block_hash() @@ -7670,7 +7669,7 @@ pub mod test { .unwrap()); assert!(!StacksChainState::has_stored_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &ConsensusHash([1u8; 20]), &block.block_hash() @@ -7694,7 +7693,7 @@ pub mod test { ); assert!(StacksChainState::has_stored_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &ConsensusHash([1u8; 20]), &block.block_hash() @@ -7737,7 +7736,7 @@ pub mod test { // database determines that it's still there assert!(StacksChainState::has_stored_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &ConsensusHash([1u8; 20]), &block.block_hash() @@ -7760,7 +7759,7 @@ pub mod test { // still technically stored -- we processed it assert!(StacksChainState::has_stored_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &ConsensusHash([1u8; 20]), &block.block_hash() @@ -7778,7 +7777,7 @@ pub mod test { // *now* it's not there assert!(!StacksChainState::has_stored_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &ConsensusHash([1u8; 20]), &block.block_hash() @@ -7812,7 +7811,7 @@ pub mod test { let block = make_empty_coinbase_block(&privk); assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &ConsensusHash([2u8; 20]), &block.block_hash() @@ -7863,7 +7862,7 @@ pub mod test { let block = make_empty_coinbase_block(&privk); assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &ConsensusHash([2u8; 20]), &block.block_hash() @@ -7915,7 +7914,7 @@ pub mod test { let microblocks = make_sample_microblock_stream(&privk, &block.block_hash()); assert!(!StacksChainState::has_stored_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &ConsensusHash([2u8; 20]), µblocks[0].block_hash() @@ -7923,7 +7922,7 @@ pub mod test { .unwrap()); assert!(StacksChainState::load_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks.last().as_ref().unwrap().block_hash(), @@ -7942,7 +7941,7 @@ pub mod test { assert_eq!( StacksChainState::load_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks.last().as_ref().unwrap().block_hash(), @@ -7954,7 +7953,7 @@ pub mod test { // not processed assert!(StacksChainState::load_processed_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks.last().as_ref().unwrap().block_hash(), @@ -7981,7 +7980,7 @@ pub mod test { microblocks.last().as_ref().unwrap().header.sequence; assert!(StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks[0].block_hash() @@ -7990,7 +7989,7 @@ pub mod test { .is_none()); assert!(StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &ConsensusHash([2u8; 20]), &block.block_hash() @@ -8036,7 +8035,7 @@ pub mod test { // microblock stream should be stored to staging assert!(StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks[0].block_hash() @@ -8046,7 +8045,7 @@ pub mod test { assert_eq!( StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks[0].block_hash() @@ -8059,7 +8058,7 @@ pub mod test { ); assert_eq!( StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &ConsensusHash([2u8; 20]), &block.block_hash() @@ -8078,7 +8077,7 @@ pub mod test { // microblocks present assert_eq!( StacksChainState::load_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks.last().as_ref().unwrap().block_hash(), @@ -8090,7 +8089,7 @@ pub mod test { // microblocks not processed yet assert!(StacksChainState::load_processed_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks.last().as_ref().unwrap().block_hash(), @@ -8123,7 +8122,7 @@ pub mod test { assert_eq!( StacksChainState::load_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks.last().as_ref().unwrap().block_hash(), @@ -8158,7 +8157,7 @@ pub mod test { // but we should still load the full stream if asked assert!(StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &ConsensusHash([2u8; 20]), &block.block_hash() @@ -8170,7 +8169,7 @@ pub mod test { .is_some()); assert_eq!( StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &ConsensusHash([2u8; 20]), &block.block_hash() @@ -8202,7 +8201,7 @@ pub mod test { microblocks.first().as_ref().unwrap().header.sequence; assert!(StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks[0].block_hash() @@ -8210,7 +8209,7 @@ pub mod test { .unwrap() .is_none()); assert!(StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &ConsensusHash([2u8; 20]), &block.block_hash() @@ -8258,7 +8257,7 @@ pub mod test { // microblock stream should be stored to staging assert!(StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks[0].block_hash() @@ -8267,7 +8266,7 @@ pub mod test { .is_some()); assert_eq!( StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks[0].block_hash() @@ -8280,7 +8279,7 @@ pub mod test { ); assert_eq!( StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &ConsensusHash([2u8; 20]), &block.block_hash() @@ -8294,7 +8293,7 @@ pub mod test { ); assert_eq!( StacksChainState::load_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks.last().as_ref().unwrap().block_hash(), @@ -8306,7 +8305,7 @@ pub mod test { // not processed assert!(StacksChainState::load_processed_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks.last().as_ref().unwrap().block_hash(), @@ -8342,7 +8341,7 @@ pub mod test { // microblocks should not be in the chunk store, except for block 0 which was confirmed assert_eq!( StacksChainState::load_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks.last().as_ref().unwrap().block_hash(), @@ -8354,7 +8353,7 @@ pub mod test { assert_eq!( StacksChainState::load_processed_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks.first().as_ref().unwrap().block_hash(), @@ -8366,7 +8365,7 @@ pub mod test { assert_eq!( StacksChainState::load_processed_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks[1].block_hash(), @@ -8416,7 +8415,7 @@ pub mod test { // can load the entire stream still assert!(StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &ConsensusHash([2u8; 20]), &block.block_hash() @@ -8428,7 +8427,7 @@ pub mod test { .is_some()); assert_eq!( StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &ConsensusHash([2u8; 20]), &block.block_hash() @@ -8460,7 +8459,7 @@ pub mod test { microblocks.first().as_ref().unwrap().header.sequence; assert!(StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks[0].block_hash() @@ -8468,7 +8467,7 @@ pub mod test { .unwrap() .is_none()); assert!(StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &ConsensusHash([2u8; 20]), &block.block_hash() @@ -8520,7 +8519,7 @@ pub mod test { // missing head assert!(StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks[0].block_hash() @@ -8530,7 +8529,7 @@ pub mod test { // subsequent microblock stream should be stored to staging assert!(StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks[1].block_hash() @@ -8539,7 +8538,7 @@ pub mod test { .is_some()); assert_eq!( StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &ConsensusHash([2u8; 20]), &block.block_hash(), µblocks[1].block_hash() @@ -8553,7 +8552,7 @@ pub mod test { // can't load descendent stream because missing head assert!(StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &ConsensusHash([2u8; 20]), &block.block_hash() @@ -8929,7 +8928,7 @@ pub mod test { .zip(&parent_consensus_hashes) { assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -8950,7 +8949,7 @@ pub mod test { // first block is attachable, but all the rest are not assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &consensus_hashes[0], &block_1.block_hash() @@ -8964,7 +8963,7 @@ pub mod test { for (block, consensus_hash) in blocks[1..].iter().zip(&consensus_hashes[1..]) { assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -8984,7 +8983,7 @@ pub mod test { let child_block = &blocks[i + 1]; assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, child_consensus_hash, &child_block.block_hash() @@ -9010,7 +9009,7 @@ pub mod test { let child_block = &blocks[i + 1]; assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, child_consensus_hash, &child_block.block_hash() @@ -9066,7 +9065,7 @@ pub mod test { .rev() { assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -9087,7 +9086,7 @@ pub mod test { // first block is accepted, but all the rest are not assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &consensus_hashes[0], &block_1.block_hash() @@ -9101,7 +9100,7 @@ pub mod test { for (block, consensus_hash) in blocks[1..].iter().zip(&consensus_hashes[1..]) { assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -9121,7 +9120,7 @@ pub mod test { let child_block = &blocks[i + 1]; assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, child_consensus_hash, &child_block.block_hash() @@ -9147,7 +9146,7 @@ pub mod test { let child_block = &blocks[i + 1]; assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, child_consensus_hash, &child_block.block_hash() @@ -9211,7 +9210,7 @@ pub mod test { .rev() { assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -9237,7 +9236,7 @@ pub mod test { ]) { assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -9251,7 +9250,7 @@ pub mod test { // store block 1 assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &consensus_hashes[0], &block_1.block_hash() @@ -9271,7 +9270,7 @@ pub mod test { // first block is attachable assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &consensus_hashes[0], &block_1.block_hash() @@ -9289,7 +9288,7 @@ pub mod test { { assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -9315,7 +9314,7 @@ pub mod test { for (block, consensus_hash) in blocks[1..3].iter().zip(&consensus_hashes[1..3]) { assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, consensus_hash, &block.block_hash() @@ -9330,7 +9329,7 @@ pub mod test { // and block 4 is still not assert_eq!( StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &consensus_hashes[3], &block_4.block_hash() @@ -9402,7 +9401,7 @@ pub mod test { // store block 1 to staging assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &consensus_hashes[0], &blocks[0].block_hash() @@ -9412,12 +9411,12 @@ pub mod test { store_staging_block( &mut chainstate, &consensus_hashes[0], - &blocks[0], + blocks[0], &parent_consensus_hash, 1, 2, ); - assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[0], &blocks[0]); + assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[0], blocks[0]); set_block_processed( &mut chainstate, @@ -9425,35 +9424,34 @@ pub mod test { &blocks[0].block_hash(), true, ); - assert_block_stored_not_staging(&mut chainstate, &consensus_hashes[0], &blocks[0]); + assert_block_stored_not_staging(&mut chainstate, &consensus_hashes[0], blocks[0]); // process and store blocks 1 and N, as well as microblocks in-between - let len = blocks.len(); - for i in 1..len { + for (i, block) in blocks.iter().skip(1).enumerate() { // this is what happens at the end of append_block() // store block to staging and process it assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &consensus_hashes[i], - &blocks[i].block_hash() + &block.block_hash() ) .unwrap() .is_none()); store_staging_block( &mut chainstate, &consensus_hashes[i], - &blocks[i], + block, &consensus_hashes[0], 1, 2, ); - assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], &blocks[i]); + assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], block); set_block_processed( &mut chainstate, &consensus_hashes[i], - &blocks[i].block_hash(), + &block.block_hash(), true, ); @@ -9461,17 +9459,17 @@ pub mod test { set_microblocks_processed( &mut chainstate, &consensus_hashes[i], - &blocks[i].block_hash(), - &blocks[i].header.parent_microblock, + &block.block_hash(), + &block.header.parent_microblock, ); - assert_block_stored_not_staging(&mut chainstate, &consensus_hashes[i], &blocks[i]); + assert_block_stored_not_staging(&mut chainstate, &consensus_hashes[i], block); let mblocks_confirmed = StacksChainState::load_processed_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &consensus_hashes[0], &blocks[0].block_hash(), - &blocks[i].header.parent_microblock, + &block.header.parent_microblock, ) .unwrap() .unwrap(); @@ -9536,7 +9534,7 @@ pub mod test { mblock, ); assert!(StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), consensus_hash, &block.block_hash(), &mblock.block_hash() @@ -9547,24 +9545,24 @@ pub mod test { } // store blocks to staging - for i in 0..blocks.len() { + for (i, block) in blocks.iter().enumerate() { assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &consensus_hashes[i], - &blocks[i].block_hash() + &block.block_hash() ) .unwrap() .is_none()); store_staging_block( &mut chainstate, &consensus_hashes[i], - &blocks[i], + block, &parent_consensus_hashes[i], 1, 2, ); - assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], &blocks[i]); + assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], block); } // reject block 1 @@ -9583,7 +9581,7 @@ pub mod test { // block i's microblocks should all be marked as processed, orphaned, and deleted for mblock in microblocks[i].iter() { assert!(StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &consensus_hashes[i], &blocks[i].block_hash(), &mblock.block_hash() @@ -9592,7 +9590,7 @@ pub mod test { .is_none()); assert!(StacksChainState::load_staging_microblock_bytes( - &chainstate.db(), + chainstate.db(), &mblock.block_hash() ) .unwrap() @@ -9602,7 +9600,7 @@ pub mod test { if i + 1 < blocks.len() { // block i+1 should be marked as an orphan, but its data should still be there assert!(StacksChainState::load_staging_block( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &consensus_hashes[i + 1], &blocks[i + 1].block_hash() @@ -9620,7 +9618,7 @@ pub mod test { for mblock in microblocks[i + 1].iter() { let staging_mblock = StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &consensus_hashes[i + 1], &blocks[i + 1].block_hash(), &mblock.block_hash(), @@ -9670,7 +9668,7 @@ pub mod test { mblock, ); assert!(StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &consensus_hash, &block.block_hash(), &mblock.block_hash() @@ -9681,7 +9679,7 @@ pub mod test { // store block to staging assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &consensus_hash, &block.block_hash() @@ -9710,7 +9708,7 @@ pub mod test { if i < len - 1 { assert_eq!( StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &consensus_hash, &block.block_hash() @@ -9726,7 +9724,7 @@ pub mod test { } else { // last time we do this, there will be no more stream assert!(StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash(&consensus_hash, &block.block_hash()), 0, u16::MAX @@ -9784,7 +9782,7 @@ pub mod test { .unwrap()); assert_eq!( - StacksChainState::stream_microblock_get_info(&chainstate.db(), &index_block_header) + StacksChainState::stream_microblock_get_info(chainstate.db(), &index_block_header) .unwrap() .len(), 0 @@ -9793,7 +9791,7 @@ pub mod test { // store microblocks to staging for (i, mblock) in mblocks.iter().enumerate() { assert!(StacksChainState::stream_microblock_get_rowid( - &chainstate.db(), + chainstate.db(), &index_block_header, &mblock.header.block_hash(), ) @@ -9807,7 +9805,7 @@ pub mod test { mblock, ); assert!(StacksChainState::load_staging_microblock( - &chainstate.db(), + chainstate.db(), &consensus_hash, &block.block_hash(), &mblock.block_hash() @@ -9819,7 +9817,7 @@ pub mod test { .has_microblocks_indexed(&index_block_header) .unwrap()); assert!(StacksChainState::stream_microblock_get_rowid( - &chainstate.db(), + chainstate.db(), &index_block_header, &mblock.header.block_hash(), ) @@ -9833,7 +9831,7 @@ pub mod test { .unwrap()); let mblock_info = - StacksChainState::stream_microblock_get_info(&chainstate.db(), &index_block_header) + StacksChainState::stream_microblock_get_info(chainstate.db(), &index_block_header) .unwrap(); assert_eq!(mblock_info.len(), i + 1); @@ -9895,7 +9893,7 @@ pub mod test { for i in 0..mblocks.len() { assert!(StacksChainState::stream_microblock_get_rowid( - &chainstate.db(), + chainstate.db(), &index_block_header, &mblocks[i].block_hash(), ) @@ -9914,7 +9912,7 @@ pub mod test { .unwrap()); let mblock_info = - StacksChainState::stream_microblock_get_info(&chainstate.db(), &index_block_header) + StacksChainState::stream_microblock_get_info(chainstate.db(), &index_block_header) .unwrap(); assert_eq!(mblock_info.len(), mblocks.len()); @@ -9999,12 +9997,11 @@ pub mod test { microblocks.push(mblocks); } - let block_hashes: Vec = - blocks.iter().map(|ref b| b.block_hash()).collect(); + let block_hashes: Vec = blocks.iter().map(|b| b.block_hash()).collect(); let header_hashes_all: Vec<(ConsensusHash, Option)> = consensus_hashes .iter() .zip(block_hashes.iter()) - .map(|(ref burn, ref block)| ((*burn).clone(), Some((*block).clone()))) + .map(|(burn, block)| ((*burn).clone(), Some((*block).clone()))) .collect(); // nothing is stored, so our inventory should be empty @@ -10048,7 +10045,7 @@ pub mod test { for i in 0..blocks.len() { test_debug!("Store block {} to staging", i); assert!(StacksChainState::load_staging_block_data( - &chainstate.db(), + chainstate.db(), &chainstate.blocks_path, &consensus_hashes[i], &blocks[i].block_hash() @@ -10209,7 +10206,7 @@ pub mod test { // The first burnchain block with a Stacks block is at first_stacks_block_height + 1. let (first_stacks_block_height, canonical_sort_id) = { let sn = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); (sn.block_height, sn.sortition_id) }; @@ -10239,7 +10236,7 @@ pub mod test { // make some blocks, up to and including a fractional reward cycle for tenure_id in 0..(last_stacks_block_height - first_stacks_block_height) { let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); assert_eq!(tip.block_height, first_stacks_block_height + tenure_id); @@ -10432,7 +10429,7 @@ pub mod test { set_block_orphaned( &mut chainstate, &header_hashes[block_height as usize].0, - &hdr_hash, + hdr_hash, ); test_debug!( "Orphaned {}/{}", @@ -10483,7 +10480,7 @@ pub mod test { let num_blocks = 10; let first_stacks_block_height = { let sn = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -10492,7 +10489,7 @@ pub mod test { let mut last_parent_opt: Option = None; for tenure_id in 0..num_blocks { let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); assert_eq!( @@ -10720,7 +10717,7 @@ pub mod test { // both streams should be present assert_eq!( StacksChainState::load_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &consensus_hashes[0], &block_1.block_hash(), &mblocks_1.last().as_ref().unwrap().block_hash(), @@ -10732,7 +10729,7 @@ pub mod test { assert_eq!( StacksChainState::load_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &consensus_hashes[0], &block_1.block_hash(), &mblocks_2.last().as_ref().unwrap().block_hash(), @@ -10746,7 +10743,7 @@ pub mod test { // seq 0 assert_eq!( StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &consensus_hashes[0], &block_1.block_hash() @@ -10813,7 +10810,7 @@ pub mod test { store_staging_block( &mut chainstate, &consensus_hashes[i + 1], - &block, + block, &consensus_hashes[0], 1, 2, @@ -10868,7 +10865,7 @@ pub mod test { // all streams should be present assert_eq!( StacksChainState::load_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &consensus_hashes[0], &block_1.block_hash(), &mblocks.last().as_ref().unwrap().block_hash(), @@ -10887,7 +10884,7 @@ pub mod test { assert_eq!( StacksChainState::load_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &consensus_hashes[0], &block_1.block_hash(), &mblock_branch.last().as_ref().unwrap().block_hash() @@ -10902,7 +10899,7 @@ pub mod test { // seq 1 assert_eq!( StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &consensus_hashes[0], &block_1.block_hash() @@ -11031,7 +11028,7 @@ pub mod test { let first_stacks_block_height = { let sn = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -11040,7 +11037,7 @@ pub mod test { for tenure_id in 0..num_blocks { let del_addr = del_addrs[tenure_id]; let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); assert_eq!( @@ -11201,7 +11198,7 @@ pub mod test { } let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let sortdb = peer.sortdb.take().unwrap(); @@ -11357,7 +11354,7 @@ pub mod test { let first_stacks_block_height = { let sn = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -11366,7 +11363,7 @@ pub mod test { for tenure_id in 0..num_blocks { let del_addr = del_addrs[tenure_id]; let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); assert_eq!( @@ -11884,7 +11881,7 @@ pub mod test { } let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let sortdb = peer.sortdb.take().unwrap(); diff --git a/stackslib/src/chainstate/stacks/db/headers.rs b/stackslib/src/chainstate/stacks/db/headers.rs index 92584e362a..686073a5fd 100644 --- a/stackslib/src/chainstate/stacks/db/headers.rs +++ b/stackslib/src/chainstate/stacks/db/headers.rs @@ -135,7 +135,7 @@ impl StacksChainState { let block_hash = header.block_hash(); let index_block_hash = - StacksBlockHeader::make_index_block_hash(&consensus_hash, &block_hash); + StacksBlockHeader::make_index_block_hash(consensus_hash, &block_hash); assert!(block_height < (i64::MAX as u64)); @@ -362,7 +362,7 @@ impl StacksChainState { for _i in 0..count { let parent_index_block_hash = { let cur_index_block_hash = ret.last().expect("FATAL: empty list of ancestors"); - match StacksChainState::get_parent_block_id(conn, &cur_index_block_hash)? { + match StacksChainState::get_parent_block_id(conn, cur_index_block_hash)? { Some(ibhh) => ibhh, None => { // out of ancestors diff --git a/stackslib/src/chainstate/stacks/db/mod.rs b/stackslib/src/chainstate/stacks/db/mod.rs index 31159137ac..d483f17669 100644 --- a/stackslib/src/chainstate/stacks/db/mod.rs +++ b/stackslib/src/chainstate/stacks/db/mod.rs @@ -252,7 +252,7 @@ fn ExtendedStacksHeader_StacksBlockHeader_serialize( ) -> Result { let bytes = header.serialize_to_vec(); let header_hex = to_hex(&bytes); - s.serialize_str(&header_hex.as_str()) + s.serialize_str(header_hex.as_str()) } /// In ExtendedStacksHeader, encode the StacksBlockHeader as a hex string @@ -1009,10 +1009,10 @@ impl StacksChainState { )?; if migrate { - StacksChainState::apply_schema_migrations(&tx, mainnet, chain_id)?; + StacksChainState::apply_schema_migrations(tx, mainnet, chain_id)?; } - StacksChainState::add_indexes(&tx)?; + StacksChainState::add_indexes(tx)?; } dbtx.instantiate_index()?; @@ -1227,12 +1227,12 @@ impl StacksChainState { fn parse_genesis_address(addr: &str, mainnet: bool) -> PrincipalData { // Typical entries are BTC encoded addresses that need converted to STX - let mut stacks_address = match LegacyBitcoinAddress::from_b58(&addr) { + let mut stacks_address = match LegacyBitcoinAddress::from_b58(addr) { Ok(addr) => StacksAddress::from_legacy_bitcoin_address(&addr), // A few addresses (from legacy placeholder accounts) are already STX addresses _ => match StacksAddress::from_string(addr) { Some(addr) => addr, - None => panic!("Failed to parsed genesis address {}", addr), + None => panic!("Failed to parsed genesis address {addr}"), }, }; // Convert a given address to the currently running network mode (mainnet vs testnet). @@ -1518,7 +1518,7 @@ impl StacksChainState { let namespace = { let namespace_str = components[1]; - if !BNS_CHARS_REGEX.is_match(&namespace_str) { + if !BNS_CHARS_REGEX.is_match(namespace_str) { panic!("Invalid namespace characters"); } let buffer = namespace_str.as_bytes(); @@ -2172,7 +2172,7 @@ impl StacksChainState { where F: FnOnce(&mut ClarityReadOnlyConnection) -> R, { - if let Some(ref unconfirmed) = self.unconfirmed_state.as_ref() { + if let Some(unconfirmed) = self.unconfirmed_state.as_ref() { if !unconfirmed.is_readable() { return Ok(None); } @@ -2638,7 +2638,7 @@ impl StacksChainState { &vec![], &vec![], )?; - let index_block_hash = new_tip.index_block_hash(&new_consensus_hash); + let index_block_hash = new_tip.index_block_hash(new_consensus_hash); test_debug!( "Headers index_indexed_all finished {}-{}", &parent_hash, diff --git a/stackslib/src/chainstate/stacks/db/transactions.rs b/stackslib/src/chainstate/stacks/db/transactions.rs index e56624b84f..4e3b920a90 100644 --- a/stackslib/src/chainstate/stacks/db/transactions.rs +++ b/stackslib/src/chainstate/stacks/db/transactions.rs @@ -719,11 +719,10 @@ impl StacksChainState { match asset_entry { AssetMapEntry::Asset(values) => { // this is a NFT - if let Some(ref checked_nft_asset_map) = + if let Some(checked_nft_asset_map) = checked_nonfungible_assets.get(&principal) { - if let Some(ref nfts) = checked_nft_asset_map.get(&asset_identifier) - { + if let Some(nfts) = checked_nft_asset_map.get(&asset_identifier) { // each value must be covered for v in values { if !nfts.contains(&v.clone().try_into()?) { @@ -744,7 +743,7 @@ impl StacksChainState { } _ => { // This is STX or a fungible token - if let Some(ref checked_ft_asset_ids) = + if let Some(checked_ft_asset_ids) = checked_fungible_assets.get(&principal) { if !checked_ft_asset_ids.contains(&asset_identifier) { @@ -811,7 +810,7 @@ impl StacksChainState { // encodes MARF reads for loading microblock height and current height, and loading and storing a // poison-microblock report runtime_cost(ClarityCostFunction::PoisonMicroblock, env, 0) - .map_err(|e| Error::from_cost_error(e, cost_before.clone(), &env.global_context))?; + .map_err(|e| Error::from_cost_error(e, cost_before.clone(), env.global_context))?; let sender_principal = match &env.sender { Some(ref sender) => { @@ -840,11 +839,11 @@ impl StacksChainState { // for the microblock public key hash we had to process env.add_memory(20) - .map_err(|e| Error::from_cost_error(e, cost_before.clone(), &env.global_context))?; + .map_err(|e| Error::from_cost_error(e, cost_before.clone(), env.global_context))?; // for the block height we had to load env.add_memory(4) - .map_err(|e| Error::from_cost_error(e, cost_before.clone(), &env.global_context))?; + .map_err(|e| Error::from_cost_error(e, cost_before.clone(), env.global_context))?; // was the referenced public key hash used anytime in the past // MINER_REWARD_MATURITY blocks? @@ -892,11 +891,11 @@ impl StacksChainState { .size() .map_err(InterpreterError::from)?, )) - .map_err(|e| Error::from_cost_error(e, cost_before.clone(), &env.global_context))?; + .map_err(|e| Error::from_cost_error(e, cost_before.clone(), env.global_context))?; // u128 sequence env.add_memory(16) - .map_err(|e| Error::from_cost_error(e, cost_before.clone(), &env.global_context))?; + .map_err(|e| Error::from_cost_error(e, cost_before.clone(), env.global_context))?; if mblock_header_1.sequence < seq { // this sender reports a point lower in the stream where a fork occurred, and is now @@ -1981,7 +1980,7 @@ pub mod test { .iter() .zip(error_frags.clone()) { - let mut signer = StacksTransactionSigner::new(&tx_stx_transfer); + let mut signer = StacksTransactionSigner::new(tx_stx_transfer); signer.sign_origin(&privk).unwrap(); if tx_stx_transfer.auth.is_sponsored() { @@ -2352,8 +2351,7 @@ pub mod test { let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract(&contract_name, &contract, None) - .unwrap(), + TransactionPayload::new_smart_contract(contract_name, &contract, None).unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -3947,7 +3945,7 @@ pub mod test { for tx_pass in post_conditions_pass.iter() { let (_fee, _) = StacksChainState::process_transaction( &mut conn, - &tx_pass, + tx_pass, false, ASTRules::PrecheckSize, ) @@ -3977,7 +3975,7 @@ pub mod test { for tx_pass in post_conditions_pass_payback.iter() { let (_fee, _) = StacksChainState::process_transaction( &mut conn, - &tx_pass, + tx_pass, false, ASTRules::PrecheckSize, ) @@ -4021,10 +4019,10 @@ pub mod test { assert_eq!(account_recv_publisher_after.nonce, expected_recv_nonce); } - for (_i, tx_pass) in post_conditions_pass_nft.iter().enumerate() { + for tx_pass in post_conditions_pass_nft.iter() { let (_fee, _) = StacksChainState::process_transaction( &mut conn, - &tx_pass, + tx_pass, false, ASTRules::PrecheckSize, ) @@ -4054,7 +4052,7 @@ pub mod test { for tx_fail in post_conditions_fail.iter() { let (_fee, _) = StacksChainState::process_transaction( &mut conn, - &tx_fail, + tx_fail, false, ASTRules::PrecheckSize, ) @@ -4097,7 +4095,7 @@ pub mod test { for tx_fail in post_conditions_fail_payback.iter() { let (_fee, _) = StacksChainState::process_transaction( &mut conn, - &tx_fail, + tx_fail, false, ASTRules::PrecheckSize, ) @@ -4142,10 +4140,10 @@ pub mod test { assert_eq!(account_publisher_after.nonce, expected_recv_nonce); } - for (_i, tx_fail) in post_conditions_fail_nft.iter().enumerate() { + for tx_fail in post_conditions_fail_nft.iter() { let (_fee, _) = StacksChainState::process_transaction( &mut conn, - &tx_fail, + tx_fail, false, ASTRules::PrecheckSize, ) @@ -4666,10 +4664,10 @@ pub mod test { let mut expected_recv_nonce = 0; let mut expected_payback_stackaroos_balance = 0; - for (_i, tx_pass) in post_conditions_pass.iter().enumerate() { + for tx_pass in post_conditions_pass.iter() { let (_fee, _) = StacksChainState::process_transaction( &mut conn, - &tx_pass, + tx_pass, false, ASTRules::PrecheckSize, ) @@ -4713,10 +4711,10 @@ pub mod test { assert_eq!(account_publisher_after.nonce, expected_nonce); } - for (_i, tx_pass) in post_conditions_pass_payback.iter().enumerate() { + for tx_pass in post_conditions_pass_payback.iter() { let (_fee, _) = StacksChainState::process_transaction( &mut conn, - &tx_pass, + tx_pass, false, ASTRules::PrecheckSize, ) @@ -4779,10 +4777,10 @@ pub mod test { assert_eq!(account_recv_publisher_after.nonce, expected_recv_nonce); } - for (_i, tx_fail) in post_conditions_fail.iter().enumerate() { + for tx_fail in post_conditions_fail.iter() { let (_fee, _) = StacksChainState::process_transaction( &mut conn, - &tx_fail, + tx_fail, false, ASTRules::PrecheckSize, ) @@ -4836,11 +4834,11 @@ pub mod test { assert_eq!(account_publisher_after.nonce, expected_nonce); } - for (_i, tx_fail) in post_conditions_fail_payback.iter().enumerate() { - eprintln!("tx fail {:?}", &tx_fail); + for tx_fail in post_conditions_fail_payback.iter() { + eprintln!("tx fail {tx_fail:?}"); let (_fee, _) = StacksChainState::process_transaction( &mut conn, - &tx_fail, + tx_fail, false, ASTRules::PrecheckSize, ) @@ -8212,7 +8210,7 @@ pub mod test { (stx-transfer? amount tx-sender recipient)) "#; - let auth = TransactionAuth::from_p2pkh(&tx_privk).unwrap(); + let auth = TransactionAuth::from_p2pkh(tx_privk).unwrap(); let addr = auth.origin().address_testnet(); let mut rng = rand::thread_rng(); @@ -8232,7 +8230,7 @@ pub mod test { tx_contract_create.set_tx_fee(0); let mut signer = StacksTransactionSigner::new(&tx_contract_create); - signer.sign_origin(&tx_privk).unwrap(); + signer.sign_origin(tx_privk).unwrap(); let signed_contract_tx = signer.get_tx().unwrap(); diff --git a/stackslib/src/chainstate/stacks/db/unconfirmed.rs b/stackslib/src/chainstate/stacks/db/unconfirmed.rs index b39de26c18..c8e3dc3756 100644 --- a/stackslib/src/chainstate/stacks/db/unconfirmed.rs +++ b/stackslib/src/chainstate/stacks/db/unconfirmed.rs @@ -382,7 +382,7 @@ impl UnconfirmedState { }; StacksChainState::load_descendant_staging_microblock_stream( - &chainstate.db(), + chainstate.db(), &StacksBlockId::new(&consensus_hash, &anchored_block_hash), 0, u16::MAX, @@ -684,7 +684,7 @@ mod test { let num_blocks = 10; let first_stacks_block_height = { let sn = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -697,7 +697,7 @@ mod test { // send transactions to the mempool let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); assert_eq!( @@ -778,7 +778,7 @@ mod test { let microblocks = { let sortdb = peer.sortdb.take().unwrap(); let sort_iconn = sortdb - .index_handle_at_block(&peer.chainstate(), &canonical_tip) + .index_handle_at_block(peer.chainstate(), &canonical_tip) .unwrap(); peer.chainstate() .reload_unconfirmed_state(&sort_iconn, canonical_tip.clone()) @@ -853,7 +853,7 @@ mod test { // process microblock stream to generate unconfirmed state let sortdb = peer.sortdb.take().unwrap(); let iconn = sortdb - .index_handle_at_block(&peer.chainstate(), &canonical_tip) + .index_handle_at_block(peer.chainstate(), &canonical_tip) .unwrap(); peer.chainstate() .reload_unconfirmed_state(&iconn, canonical_tip.clone()) @@ -879,7 +879,7 @@ mod test { let sortdb = peer.sortdb.take().unwrap(); let iconn = sortdb - .index_handle_at_block(&peer.chainstate(), &canonical_tip) + .index_handle_at_block(peer.chainstate(), &canonical_tip) .unwrap(); let confirmed_recv_balance = peer .chainstate() @@ -921,7 +921,7 @@ mod test { let num_blocks = 10; let first_stacks_block_height = { let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); tip.block_height }; @@ -934,7 +934,7 @@ mod test { // send transactions to the mempool let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); assert_eq!( @@ -1015,7 +1015,7 @@ mod test { let sortdb = peer.sortdb.take().unwrap(); let microblocks = { let sort_iconn = sortdb - .index_handle_at_block(&peer.chainstate(), &canonical_tip) + .index_handle_at_block(peer.chainstate(), &canonical_tip) .unwrap(); peer.chainstate() .reload_unconfirmed_state(&sort_iconn, canonical_tip.clone()) @@ -1175,7 +1175,7 @@ mod test { let num_microblocks = 3; let first_stacks_block_height = { let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); tip.block_height }; @@ -1193,7 +1193,7 @@ mod test { // send transactions to the mempool let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); assert_eq!( @@ -1402,7 +1402,7 @@ mod test { // process microblock stream to generate unconfirmed state let sortdb = peer.sortdb.take().unwrap(); let iconn = sortdb - .index_handle_at_block(&peer.chainstate(), &canonical_tip) + .index_handle_at_block(peer.chainstate(), &canonical_tip) .unwrap(); peer.chainstate() .reload_unconfirmed_state(&iconn, canonical_tip.clone()) diff --git a/stackslib/src/chainstate/stacks/index/marf.rs b/stackslib/src/chainstate/stacks/index/marf.rs index b917dffe41..65d4f86833 100644 --- a/stackslib/src/chainstate/stacks/index/marf.rs +++ b/stackslib/src/chainstate/stacks/index/marf.rs @@ -1173,7 +1173,7 @@ impl MARF { ) -> Result, Error> { let (cur_block_hash, cur_block_id) = storage.get_cur_block_and_id(); - let result = MARF::get_path(storage, block_hash, &path).or_else(|e| match e { + let result = MARF::get_path(storage, block_hash, path).or_else(|e| match e { Error::NotFoundError => Ok(None), _ => Err(e), }); @@ -1233,7 +1233,7 @@ impl MARF { ) -> Result, Error> { let (cur_block_hash, cur_block_id) = storage.get_cur_block_and_id(); - let result = MARF::get_path(storage, block_hash, &path).or_else(|e| match e { + let result = MARF::get_path(storage, block_hash, path).or_else(|e| match e { Error::NotFoundError => Ok(None), _ => Err(e), }); @@ -1427,11 +1427,11 @@ impl MARF { path: &TrieHash, ) -> Result)>, Error> { let mut conn = self.storage.connection(); - let marf_value = match MARF::get_by_path(&mut conn, block_hash, &path)? { + let marf_value = match MARF::get_by_path(&mut conn, block_hash, path)? { None => return Ok(None), Some(x) => x, }; - let proof = TrieMerkleProof::from_path(&mut conn, &path, &marf_value, block_hash)?; + let proof = TrieMerkleProof::from_path(&mut conn, path, &marf_value, block_hash)?; Ok(Some((marf_value, proof))) } diff --git a/stackslib/src/chainstate/stacks/index/node.rs b/stackslib/src/chainstate/stacks/index/node.rs index b689035675..6c82127449 100644 --- a/stackslib/src/chainstate/stacks/index/node.rs +++ b/stackslib/src/chainstate/stacks/index/node.rs @@ -433,7 +433,7 @@ impl TrieCursor { for i in 0..node_path.len() { if node_path[i] != path_bytes[self.index] { // diverged - trace!("cursor: diverged({} != {}): i = {}, self.index = {}, self.node_path_index = {}", to_hex(&node_path), to_hex(path_bytes), i, self.index, self.node_path_index); + trace!("cursor: diverged({} != {}): i = {}, self.index = {}, self.node_path_index = {}", to_hex(node_path), to_hex(path_bytes), i, self.index, self.node_path_index); self.last_error = Some(CursorError::PathDiverged); return Err(CursorError::PathDiverged); } diff --git a/stackslib/src/chainstate/stacks/index/proofs.rs b/stackslib/src/chainstate/stacks/index/proofs.rs index 4d399c9f70..6361dfd044 100644 --- a/stackslib/src/chainstate/stacks/index/proofs.rs +++ b/stackslib/src/chainstate/stacks/index/proofs.rs @@ -857,13 +857,10 @@ impl TrieMerkleProof { let mut i = ptrs.len() - 1; loop { let ptr = &ptrs[i]; - let proof_node = TrieMerkleProof::ptr_to_segment_proof_node(storage, &ptr, prev_chr)?; + let proof_node = TrieMerkleProof::ptr_to_segment_proof_node(storage, ptr, prev_chr)?; trace!( - "make_segment_proof: Add proof node from {:?} child 0x{:02x}: {:?}", - &ptr, - prev_chr, - &proof_node + "make_segment_proof: Add proof node from {ptr:?} child 0x{prev_chr:02x}: {proof_node:?}" ); proof_segment.push(proof_node); @@ -1125,7 +1122,7 @@ impl TrieMerkleProof { root_hash: &TrieHash, root_to_block: &HashMap, ) -> bool { - if !TrieMerkleProof::is_proof_well_formed(&proof, path) { + if !TrieMerkleProof::is_proof_well_formed(proof, path) { test_debug!("Invalid proof -- proof is not well-formed"); return false; } @@ -1355,7 +1352,7 @@ impl TrieMerkleProof { root_hash: &TrieHash, root_to_block: &HashMap, ) -> bool { - TrieMerkleProof::::verify_proof(&self.0, &path, &marf_value, root_hash, root_to_block) + TrieMerkleProof::::verify_proof(&self.0, path, marf_value, root_hash, root_to_block) } /// Walk down the trie pointed to by s until we reach a backptr or a leaf diff --git a/stackslib/src/chainstate/stacks/index/storage.rs b/stackslib/src/chainstate/stacks/index/storage.rs index d8d1b9133a..3e0e024cfd 100644 --- a/stackslib/src/chainstate/stacks/index/storage.rs +++ b/stackslib/src/chainstate/stacks/index/storage.rs @@ -170,7 +170,7 @@ impl BlockMap for TrieSqlHashMapCursor<'_, T> { type TrieId = T; fn get_block_hash(&self, id: u32) -> Result { - trie_sql::get_block_hash(&self.db, id) + trie_sql::get_block_hash(self.db, id) } fn get_block_hash_caching(&mut self, id: u32) -> Result<&T, Error> { @@ -186,7 +186,7 @@ impl BlockMap for TrieSqlHashMapCursor<'_, T> { } fn get_block_id(&self, block_hash: &T) -> Result { - trie_sql::get_block_identifier(&self.db, block_hash) + trie_sql::get_block_identifier(self.db, block_hash) } fn get_block_id_caching(&mut self, block_hash: &T) -> Result { @@ -836,7 +836,7 @@ impl TrieRAM { while let Some(pointer) = frontier.pop_front() { let (node, _node_hash) = self.get_nodetype(pointer)?; // calculate size - let num_written = get_node_byte_len(&node); + let num_written = get_node_byte_len(node); ptr += num_written as u64; // queue each child @@ -1590,7 +1590,7 @@ impl<'a, T: MarfTrieId> TrieStorageTransaction<'a, T> { pub fn reopen_readonly(&self) -> Result, Error> { let db = marf_sqlite_open(&self.db_path, OpenFlags::SQLITE_OPEN_READ_ONLY, false)?; let blobs = if self.blobs.is_some() { - Some(TrieFile::from_db_path(&self.db_path, true)?) + Some(TrieFile::from_db_path(self.db_path, true)?) } else { None }; @@ -1679,10 +1679,10 @@ impl<'a, T: MarfTrieId> TrieStorageTransaction<'a, T> { return Err(Error::UnconfirmedError); } self.with_trie_blobs(|db, blobs| match blobs { - Some(blobs) => blobs.store_trie_blob(&db, &bhh, &buffer), + Some(blobs) => blobs.store_trie_blob(db, &bhh, &buffer), None => { - test_debug!("Stored trie blob {} to db", &bhh); - trie_sql::write_trie_blob(&db, &bhh, &buffer) + test_debug!("Stored trie blob {bhh} to db"); + trie_sql::write_trie_blob(db, &bhh, &buffer) } })? } @@ -2342,7 +2342,7 @@ impl TrieStorageConnection<'_, T> { let mut map = TrieSqlHashMapCursor { db: &self.db, - cache: &mut self.cache, + cache: self.cache, unconfirmed: self.data.unconfirmed, }; @@ -2356,7 +2356,7 @@ impl TrieStorageConnection<'_, T> { &mut map, node, w, - &mut self.bench, + self.bench, ); self.bench.write_children_hashes_finish(start_time, true); return res; @@ -2377,7 +2377,7 @@ impl TrieStorageConnection<'_, T> { &mut map, node, w, - &mut self.bench, + self.bench, ); self.bench.write_children_hashes_finish(start_time, false); res @@ -2396,7 +2396,7 @@ impl TrieStorageConnection<'_, T> { &mut map, node, w, - &mut self.bench, + self.bench, ); self.bench.write_children_hashes_finish(start_time, false); res @@ -2536,38 +2536,36 @@ impl TrieStorageConnection<'_, T> { read_hash: bool, ) -> Result<(TrieNodeType, TrieHash), Error> { trace!( - "inner_read_persisted_nodetype({}): {:?} (unconfirmed={:?},{})", - block_id, - ptr, + "inner_read_persisted_nodetype({block_id}): {ptr:?} (unconfirmed={:?},{})", &self.unconfirmed_block_id, self.unconfirmed() ); if self.unconfirmed_block_id == Some(block_id) { - trace!("Read persisted node from unconfirmed block id {}", block_id); + trace!("Read persisted node from unconfirmed block id {block_id}"); // read from unconfirmed trie if read_hash { - return trie_sql::read_node_type(&self.db, block_id, &ptr); + return trie_sql::read_node_type(&self.db, block_id, ptr); } else { - return trie_sql::read_node_type_nohash(&self.db, block_id, &ptr) + return trie_sql::read_node_type_nohash(&self.db, block_id, ptr) .map(|node| (node, TrieHash([0u8; TRIEHASH_ENCODED_SIZE]))); } } let (node_inst, node_hash) = match self.blobs.as_mut() { Some(blobs) => { if read_hash { - blobs.read_node_type(&self.db, block_id, &ptr)? + blobs.read_node_type(&self.db, block_id, ptr)? } else { blobs - .read_node_type_nohash(&self.db, block_id, &ptr) + .read_node_type_nohash(&self.db, block_id, ptr) .map(|node| (node, TrieHash([0u8; TRIEHASH_ENCODED_SIZE])))? } } None => { if read_hash { - trie_sql::read_node_type(&self.db, block_id, &ptr)? + trie_sql::read_node_type(&self.db, block_id, ptr)? } else { - trie_sql::read_node_type_nohash(&self.db, block_id, &ptr) + trie_sql::read_node_type_nohash(&self.db, block_id, ptr) .map(|node| (node, TrieHash([0u8; TRIEHASH_ENCODED_SIZE])))? } } @@ -2739,11 +2737,11 @@ impl TrieStorageConnection<'_, T> { #[cfg(test)] pub fn transient_data(&self) -> &TrieStorageTransientData { - &self.data + self.data } #[cfg(test)] pub fn transient_data_mut(&mut self) -> &mut TrieStorageTransientData { - &mut self.data + self.data } } diff --git a/stackslib/src/chainstate/stacks/index/test/file.rs b/stackslib/src/chainstate/stacks/index/test/file.rs index 19ac5e60e4..a4e5715a92 100644 --- a/stackslib/src/chainstate/stacks/index/test/file.rs +++ b/stackslib/src/chainstate/stacks/index/test/file.rs @@ -92,7 +92,7 @@ fn test_migrate_existing_trie_blobs() { let (data, last_block_header, root_header_map) = { let marf_opts = MARFOpenOpts::new(TrieHashCalculationMode::Deferred, "noop", false); - let f = TrieFileStorage::open(&test_file, marf_opts).unwrap(); + let f = TrieFileStorage::open(test_file, marf_opts).unwrap(); let mut marf = MARF::from_storage(f); // make data to insert @@ -124,7 +124,7 @@ fn test_migrate_existing_trie_blobs() { let mut marf_opts = MARFOpenOpts::new(TrieHashCalculationMode::Deferred, "noop", true); marf_opts.force_db_migrate = true; - let f = TrieFileStorage::open(&test_file, marf_opts).unwrap(); + let f = TrieFileStorage::open(test_file, marf_opts).unwrap(); let mut marf = MARF::from_storage(f); // blobs file exists @@ -132,7 +132,7 @@ fn test_migrate_existing_trie_blobs() { // verify that the new blob structure is well-formed let blob_root_header_map = { - let mut blobs = TrieFile::from_db_path(&test_file, false).unwrap(); + let mut blobs = TrieFile::from_db_path(test_file, false).unwrap(); let blob_root_header_map = blobs .read_all_block_hashes_and_roots::(marf.sqlite_conn()) .unwrap(); diff --git a/stackslib/src/chainstate/stacks/index/test/marf.rs b/stackslib/src/chainstate/stacks/index/test/marf.rs index 7f92bb678d..a96e7ad34f 100644 --- a/stackslib/src/chainstate/stacks/index/test/marf.rs +++ b/stackslib/src/chainstate/stacks/index/test/marf.rs @@ -1479,7 +1479,7 @@ fn marf_insert_random_4096_128_merkle_proof() { m.begin(&prev_block_header, &block_header).unwrap(); - let marf_values = values.iter().map(|x| MARFValue::from_value(&x)).collect(); + let marf_values = values.iter().map(|x| MARFValue::from_value(x)).collect(); m.insert_batch(&keys, marf_values).unwrap(); m.commit().unwrap(); diff --git a/stackslib/src/chainstate/stacks/index/test/mod.rs b/stackslib/src/chainstate/stacks/index/test/mod.rs index f563d507a7..2fdc389c2b 100644 --- a/stackslib/src/chainstate/stacks/index/test/mod.rs +++ b/stackslib/src/chainstate/stacks/index/test/mod.rs @@ -188,7 +188,7 @@ pub fn merkle_test_marf_key_value( s.open_block(header).unwrap(); let (_, root_hash) = Trie::read_root(s).unwrap(); - let proof = TrieMerkleProof::from_entry(s, key, value, &header).unwrap(); + let proof = TrieMerkleProof::from_entry(s, key, value, header).unwrap(); test_debug!("---------"); test_debug!("MARF merkle verify: {:?}", &proof); diff --git a/stackslib/src/chainstate/stacks/index/test/storage.rs b/stackslib/src/chainstate/stacks/index/test/storage.rs index ebd97fd5c7..dfa795f5f9 100644 --- a/stackslib/src/chainstate/stacks/index/test/storage.rs +++ b/stackslib/src/chainstate/stacks/index/test/storage.rs @@ -121,13 +121,13 @@ fn trie_cmp( // search children for ptr in n1_data.ptrs() { if ptr.id != TrieNodeID::Empty as u8 && !is_backptr(ptr.id) { - let (child_data, child_hash) = t1.read_nodetype(&ptr).unwrap(); + let (child_data, child_hash) = t1.read_nodetype(ptr).unwrap(); frontier_1.push_back((child_data, child_hash)) } } for ptr in n2_data.ptrs() { if ptr.id != TrieNodeID::Empty as u8 && !is_backptr(ptr.id) { - let (child_data, child_hash) = t2.read_nodetype(&ptr).unwrap(); + let (child_data, child_hash) = t2.read_nodetype(ptr).unwrap(); frontier_2.push_back((child_data, child_hash)) } } @@ -254,7 +254,7 @@ fn load_store_trie_m_n_same(m: u64, n: u64, same: bool) { // verify that all new keys are there, off the unconfirmed tip for (path, expected_value) in new_inserted.iter() { - let value = MARF::get_path(&mut marf.borrow_storage_backend(), &unconfirmed_tip, &path) + let value = MARF::get_path(&mut marf.borrow_storage_backend(), &unconfirmed_tip, path) .unwrap() .unwrap(); assert_eq!(expected_value.data, value.data); @@ -280,9 +280,9 @@ fn load_store_trie_m_n_same(m: u64, n: u64, same: bool) { // test rollback for path in all_new_paths.iter() { - eprintln!("path present? {:?}", &path); + eprintln!("path present? {path:?}"); assert!( - MARF::get_path(&mut marf.borrow_storage_backend(), &unconfirmed_tip, &path) + MARF::get_path(&mut marf.borrow_storage_backend(), &unconfirmed_tip, path) .unwrap() .is_some() ); @@ -291,8 +291,8 @@ fn load_store_trie_m_n_same(m: u64, n: u64, same: bool) { marf.drop_unconfirmed(); for path in all_new_paths.iter() { - eprintln!("path absent? {:?}", &path); - assert!(MARF::get_path(&mut marf.borrow_storage_backend(), &confirmed_tip, &path).is_err()); + eprintln!("path absent? {path:?}"); + assert!(MARF::get_path(&mut marf.borrow_storage_backend(), &confirmed_tip, path).is_err()); } } diff --git a/stackslib/src/chainstate/stacks/index/trie.rs b/stackslib/src/chainstate/stacks/index/trie.rs index 54026eb03a..b3e338273d 100644 --- a/stackslib/src/chainstate/stacks/index/trie.rs +++ b/stackslib/src/chainstate/stacks/index/trie.rs @@ -641,7 +641,7 @@ impl Trie { node.set_path(new_cur_node_path); - let new_cur_node_hash = get_nodetype_hash(storage, &node)?; + let new_cur_node_hash = get_nodetype_hash(storage, node)?; let mut new_node4 = TrieNode4::new(&shared_path_prefix); new_node4.insert(&leaf_ptr); @@ -684,7 +684,7 @@ impl Trie { ); cursor.repair_retarget(&new_node, &ret, &storage.get_cur_block()); - trace!("splice_leaf: node-X' at {:?}", &ret); + trace!("splice_leaf: node-X' at {ret:?}"); Ok(ret) } diff --git a/stackslib/src/chainstate/stacks/miner.rs b/stackslib/src/chainstate/stacks/miner.rs index eae3e1f14d..60edeb498a 100644 --- a/stackslib/src/chainstate/stacks/miner.rs +++ b/stackslib/src/chainstate/stacks/miner.rs @@ -884,7 +884,7 @@ impl<'a> StacksMicroblockBuilder<'a> { let merkle_tree = MerkleTree::::new(&txid_vecs); let tx_merkle_root = merkle_tree.root(); - let mut next_microblock_header = if let Some(ref prev_microblock) = prev_microblock_header { + let mut next_microblock_header = if let Some(prev_microblock) = prev_microblock_header { StacksMicroblockHeader::from_parent_unsigned(prev_microblock, &tx_merkle_root) .ok_or(Error::MicroblockStreamTooLongError)? } else { @@ -1052,7 +1052,7 @@ impl<'a> StacksMicroblockBuilder<'a> { // note: this path _does_ not perform the tx block budget % heuristic, // because this code path is not directly called with a mempool handle. clarity_tx.reset_cost(cost_before.clone()); - if total_budget.proportion_largest_dimension(&cost_before) + if total_budget.proportion_largest_dimension(cost_before) < TX_BLOCK_LIMIT_PROPORTION_HEURISTIC { warn!( @@ -1358,7 +1358,7 @@ impl<'a> StacksMicroblockBuilder<'a> { if let Some(measured_cost) = measured_cost { if let Err(e) = estimator.notify_event( &mempool_tx.tx.payload, - &measured_cost, + measured_cost, &block_limit, &stacks_epoch_id, ) { @@ -1525,7 +1525,7 @@ impl StacksBlockBuilder { parent_microblock_hash: parent_chain_tip .microblock_tail .as_ref() - .map(|ref hdr| hdr.block_hash()), + .map(|hdr| hdr.block_hash()), prev_microblock_header: StacksMicroblockHeader::first_unsigned( &EMPTY_MICROBLOCK_PARENT_HASH, &Sha512Trunc256Sum([0u8; 32]), @@ -1836,19 +1836,19 @@ impl StacksBlockBuilder { if let Some(microblock_parent_hash) = self.parent_microblock_hash.as_ref() { // load up a microblock fork let microblocks = StacksChainState::load_microblock_stream_fork( - &chainstate.db(), - &parent_consensus_hash, - &parent_header_hash, - µblock_parent_hash, + chainstate.db(), + parent_consensus_hash, + parent_header_hash, + microblock_parent_hash, )? .ok_or(Error::NoSuchBlockError)?; debug!( "Loaded {} microblocks made by {}/{} tipped at {}", microblocks.len(), - &parent_consensus_hash, - &parent_header_hash, - µblock_parent_hash + parent_consensus_hash, + parent_header_hash, + microblock_parent_hash ); Ok(microblocks) } else { @@ -1859,7 +1859,7 @@ impl StacksBlockBuilder { ); let (parent_microblocks, _) = match StacksChainState::load_descendant_staging_microblock_stream_with_poison( - &chainstate.db(), + chainstate.db(), &parent_index_hash, 0, u16::MAX, @@ -1871,8 +1871,8 @@ impl StacksBlockBuilder { debug!( "Loaded {} microblocks made by {}/{}", parent_microblocks.len(), - &parent_consensus_hash, - &parent_header_hash + parent_consensus_hash, + parent_header_hash ); Ok(parent_microblocks) } @@ -2480,7 +2480,7 @@ impl StacksBlockBuilder { if let Some(measured_cost) = measured_cost { if let Err(e) = estimator.notify_event( &txinfo.tx.payload, - &measured_cost, + measured_cost, &block_limit, &stacks_epoch_id, ) { @@ -2719,7 +2719,7 @@ impl BlockBuilder for StacksBlockBuilder { ast_rules: ASTRules, ) -> TransactionResult { if self.bytes_so_far + tx_len >= MAX_EPOCH_SIZE.into() { - return TransactionResult::skipped_due_to_error(&tx, Error::BlockTooBigError); + return TransactionResult::skipped_due_to_error(tx, Error::BlockTooBigError); } match limit_behavior { @@ -2730,14 +2730,14 @@ impl BlockBuilder for StacksBlockBuilder { // other contract calls if !cc.address.is_boot_code_addr() { return TransactionResult::skipped( - &tx, + tx, "BlockLimitFunction::CONTRACT_LIMIT_HIT".to_string(), ); } } TransactionPayload::SmartContract(..) => { return TransactionResult::skipped( - &tx, + tx, "BlockLimitFunction::CONTRACT_LIMIT_HIT".to_string(), ); } @@ -2746,7 +2746,7 @@ impl BlockBuilder for StacksBlockBuilder { } BlockLimitFunction::LIMIT_REACHED => { return TransactionResult::skipped( - &tx, + tx, "BlockLimitFunction::LIMIT_REACHED".to_string(), ) } @@ -2772,14 +2772,14 @@ impl BlockBuilder for StacksBlockBuilder { if let Err(e) = Relayer::static_check_problematic_relayed_tx( clarity_tx.config.mainnet, clarity_tx.get_epoch(), - &tx, + tx, ast_rules, ) { info!( "Detected problematic tx {} while mining; dropping from mempool", tx.txid() ); - return TransactionResult::problematic(&tx, Error::NetError(e)); + return TransactionResult::problematic(tx, Error::NetError(e)); } let (fee, receipt) = match StacksChainState::process_transaction( clarity_tx, tx, quiet, ast_rules, @@ -2787,9 +2787,9 @@ impl BlockBuilder for StacksBlockBuilder { Ok((fee, receipt)) => (fee, receipt), Err(e) => { let (is_problematic, e) = - TransactionResult::is_problematic(&tx, e, clarity_tx.get_epoch()); + TransactionResult::is_problematic(tx, e, clarity_tx.get_epoch()); if is_problematic { - return TransactionResult::problematic(&tx, e); + return TransactionResult::problematic(tx, e); } else { match e { Error::CostOverflowError(cost_before, cost_after, total_budget) => { @@ -2813,7 +2813,7 @@ impl BlockBuilder for StacksBlockBuilder { None }; return TransactionResult::error( - &tx, + tx, Error::TransactionTooBigError(measured_cost), ); } else { @@ -2824,12 +2824,12 @@ impl BlockBuilder for StacksBlockBuilder { &total_budget ); return TransactionResult::skipped_due_to_error( - &tx, + tx, Error::BlockTooBigError, ); } } - _ => return TransactionResult::error(&tx, e), + _ => return TransactionResult::error(tx, e), } } } @@ -2843,7 +2843,7 @@ impl BlockBuilder for StacksBlockBuilder { self.txs.push(tx.clone()); self.total_anchored_fees += fee; - TransactionResult::success(&tx, fee, receipt) + TransactionResult::success(tx, fee, receipt) } else { // building up the microblocks if tx.anchor_mode != TransactionAnchorMode::OffChainOnly @@ -2862,14 +2862,14 @@ impl BlockBuilder for StacksBlockBuilder { if let Err(e) = Relayer::static_check_problematic_relayed_tx( clarity_tx.config.mainnet, clarity_tx.get_epoch(), - &tx, + tx, ast_rules, ) { info!( "Detected problematic tx {} while mining; dropping from mempool", tx.txid() ); - return TransactionResult::problematic(&tx, Error::NetError(e)); + return TransactionResult::problematic(tx, Error::NetError(e)); } let (fee, receipt) = match StacksChainState::process_transaction( clarity_tx, tx, quiet, ast_rules, @@ -2877,9 +2877,9 @@ impl BlockBuilder for StacksBlockBuilder { Ok((fee, receipt)) => (fee, receipt), Err(e) => { let (is_problematic, e) = - TransactionResult::is_problematic(&tx, e, clarity_tx.get_epoch()); + TransactionResult::is_problematic(tx, e, clarity_tx.get_epoch()); if is_problematic { - return TransactionResult::problematic(&tx, e); + return TransactionResult::problematic(tx, e); } else { match e { Error::CostOverflowError(cost_before, cost_after, total_budget) => { @@ -2904,23 +2904,21 @@ impl BlockBuilder for StacksBlockBuilder { }; return TransactionResult::error( - &tx, + tx, Error::TransactionTooBigError(measured_cost), ); } else { warn!( - "Transaction {} reached block cost {}; budget was {}", - tx.txid(), - &cost_after, - &total_budget + "Transaction {} reached block cost {cost_after}; budget was {total_budget}", + tx.txid() ); return TransactionResult::skipped_due_to_error( - &tx, + tx, Error::BlockTooBigError, ); } } - _ => return TransactionResult::error(&tx, e), + _ => return TransactionResult::error(tx, e), } } } @@ -2935,7 +2933,7 @@ impl BlockBuilder for StacksBlockBuilder { self.micro_txs.push(tx.clone()); self.total_streamed_fees += fee; - TransactionResult::success(&tx, fee, receipt) + TransactionResult::success(tx, fee, receipt) }; self.bytes_so_far += tx_len; diff --git a/stackslib/src/chainstate/stacks/tests/accounting.rs b/stackslib/src/chainstate/stacks/tests/accounting.rs index 9ca3016a1b..23a2fc5f2a 100644 --- a/stackslib/src/chainstate/stacks/tests/accounting.rs +++ b/stackslib/src/chainstate/stacks/tests/accounting.rs @@ -137,7 +137,7 @@ fn test_bad_microblock_fees_pre_v210() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -148,7 +148,7 @@ fn test_bad_microblock_fees_pre_v210() { let mut block_ids = vec![]; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let acct = get_stacks_account(&mut peer, &addr.to_account_principal()); @@ -460,7 +460,7 @@ fn test_bad_microblock_fees_fix_transition() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -471,7 +471,7 @@ fn test_bad_microblock_fees_fix_transition() { let mut block_ids = vec![]; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let acct = get_stacks_account(&mut peer, &addr.to_account_principal()); @@ -817,7 +817,7 @@ fn test_get_block_info_v210() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -827,7 +827,7 @@ fn test_get_block_info_v210() { for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let acct = get_stacks_account(&mut peer, &addr.to_account_principal()); @@ -1189,7 +1189,7 @@ fn test_get_block_info_v210_no_microblocks() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -1199,7 +1199,7 @@ fn test_get_block_info_v210_no_microblocks() { for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let acct = get_stacks_account(&mut peer, &addr.to_account_principal()); @@ -1510,7 +1510,7 @@ fn test_coinbase_pay_to_alt_recipient_v210(pay_to_contract: bool) { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -1526,7 +1526,7 @@ fn test_coinbase_pay_to_alt_recipient_v210(pay_to_contract: bool) { for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let acct = get_stacks_account(&mut peer, &addr.to_account_principal()); diff --git a/stackslib/src/chainstate/stacks/tests/block_construction.rs b/stackslib/src/chainstate/stacks/tests/block_construction.rs index bcf7611695..c4b367055a 100644 --- a/stackslib/src/chainstate/stacks/tests/block_construction.rs +++ b/stackslib/src/chainstate/stacks/tests/block_construction.rs @@ -77,7 +77,7 @@ fn test_build_anchored_blocks_empty() { let num_blocks = 10; let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -85,7 +85,7 @@ fn test_build_anchored_blocks_empty() { let mut last_block: Option = None; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); assert_eq!( @@ -178,7 +178,7 @@ fn test_build_anchored_blocks_stx_transfers_single() { let num_blocks = 10; let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -190,7 +190,7 @@ fn test_build_anchored_blocks_stx_transfers_single() { let mut last_block = None; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -315,7 +315,7 @@ fn test_build_anchored_blocks_empty_with_builder_timeout() { let num_blocks = 10; let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -327,7 +327,7 @@ fn test_build_anchored_blocks_empty_with_builder_timeout() { let mut last_block = None; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -453,7 +453,7 @@ fn test_build_anchored_blocks_stx_transfers_multi() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -465,7 +465,7 @@ fn test_build_anchored_blocks_stx_transfers_multi() { let mut last_block = None; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -658,7 +658,7 @@ fn test_build_anchored_blocks_connected_by_microblocks_across_epoch() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -669,7 +669,7 @@ fn test_build_anchored_blocks_connected_by_microblocks_across_epoch() { let mut last_block = None; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let acct = get_stacks_account(&mut peer, &addr.to_account_principal()); @@ -894,7 +894,7 @@ fn test_build_anchored_blocks_connected_by_microblocks_across_epoch_invalid() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -907,7 +907,7 @@ fn test_build_anchored_blocks_connected_by_microblocks_across_epoch_invalid() { for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let acct = get_stacks_account(&mut peer, &addr.to_account_principal()); @@ -1131,7 +1131,7 @@ fn test_build_anchored_blocks_connected_by_microblocks_across_epoch_invalid() { } last_block_ch = Some( - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap() .consensus_hash, ); @@ -1183,7 +1183,7 @@ fn test_build_anchored_blocks_incrementing_nonces() { // during the tenure, let's push transactions to the mempool let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()).unwrap(); + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()).unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( |ref mut miner, @@ -1366,7 +1366,7 @@ fn test_build_anchored_blocks_skip_too_expensive() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -1378,7 +1378,7 @@ fn test_build_anchored_blocks_skip_too_expensive() { let mut last_block = None; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -1456,7 +1456,7 @@ fn test_build_anchored_blocks_skip_too_expensive() { &privks_expensive[tenure_id], 0, (2 * contract.len()) as u64, - &format!("hello-world-{}", tenure_id), + &format!("hello-world-{tenure_id}"), &contract, ); @@ -1562,7 +1562,7 @@ fn test_build_anchored_blocks_mempool_fee_transaction_too_low() { let recipient = StacksAddress::from_string(recipient_addr_str).unwrap(); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()).unwrap(); + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()).unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( |ref mut miner, @@ -1682,7 +1682,7 @@ fn test_build_anchored_blocks_zero_fee_transaction() { let recipient = StacksAddress::from_string(recipient_addr_str).unwrap(); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()).unwrap(); + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()).unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( |ref mut miner, @@ -1789,7 +1789,7 @@ fn test_build_anchored_blocks_multiple_chaintips() { let mut blank_mempool = MemPoolDB::open_test(false, 1, &blank_chainstate.root_path).unwrap(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -1797,7 +1797,7 @@ fn test_build_anchored_blocks_multiple_chaintips() { let mut last_block = None; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -1846,8 +1846,8 @@ fn test_build_anchored_blocks_multiple_chaintips() { &privks[tenure_id], 0, (2 * contract.len()) as u64, - &format!("hello-world-{}", tenure_id), - &contract, + &format!("hello-world-{tenure_id}"), + contract, ); mempool .submit( @@ -1931,7 +1931,7 @@ fn test_build_anchored_blocks_empty_chaintips() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -1939,7 +1939,7 @@ fn test_build_anchored_blocks_empty_chaintips() { let mut last_block = None; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -2004,8 +2004,8 @@ fn test_build_anchored_blocks_empty_chaintips() { &privks[tenure_id], 0, 2000, - &format!("hello-world-{}", tenure_id), - &contract, + &format!("hello-world-{tenure_id}"), + contract, ); mempool .submit( @@ -2074,7 +2074,7 @@ fn test_build_anchored_blocks_too_expensive_transactions() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -2082,7 +2082,7 @@ fn test_build_anchored_blocks_too_expensive_transactions() { let mut last_block = None; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -2132,8 +2132,8 @@ fn test_build_anchored_blocks_too_expensive_transactions() { &privks[tenure_id], 0, 100000000 / 2 + 1, - &format!("hello-world-{}", tenure_id), - &contract, + &format!("hello-world-{tenure_id}"), + contract, ); let mut contract_tx_bytes = vec![]; contract_tx @@ -2160,8 +2160,8 @@ fn test_build_anchored_blocks_too_expensive_transactions() { &privks[tenure_id], 1, 100000000 / 2, - &format!("hello-world-{}-2", tenure_id), - &contract, + &format!("hello-world-{tenure_id}-2"), + contract, ); let mut contract_tx_bytes = vec![]; contract_tx @@ -2228,7 +2228,7 @@ fn test_build_anchored_blocks_invalid() { let num_blocks = 10; let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -2254,7 +2254,7 @@ fn test_build_anchored_blocks_invalid() { for tenure_id in 0..num_blocks { // send transactions to the mempool let mut tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); if tenure_id == bad_block_ancestor_tenure { @@ -2303,7 +2303,7 @@ fn test_build_anchored_blocks_invalid() { Some(ref block) => { let ic = sortdb.index_conn(); let parent_block_hash = - if let Some(ref block) = last_valid_block.as_ref() { + if let Some(block) = last_valid_block.as_ref() { block.block_hash() } else { @@ -2439,7 +2439,7 @@ fn test_build_anchored_blocks_bad_nonces() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -2448,7 +2448,7 @@ fn test_build_anchored_blocks_bad_nonces() { for tenure_id in 0..num_blocks { eprintln!("Start tenure {:?}", tenure_id); // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -2498,8 +2498,8 @@ fn test_build_anchored_blocks_bad_nonces() { &privks[tenure_id], 0, 10000, - &format!("hello-world-{}", tenure_id), - &contract, + &format!("hello-world-{tenure_id}"), + contract, ); let mut contract_tx_bytes = vec![]; contract_tx @@ -2527,8 +2527,8 @@ fn test_build_anchored_blocks_bad_nonces() { &privks[tenure_id], 1, 10000, - &format!("hello-world-{}-2", tenure_id), - &contract, + &format!("hello-world-{tenure_id}-2"), + contract, ); let mut contract_tx_bytes = vec![]; contract_tx @@ -2564,8 +2564,8 @@ fn test_build_anchored_blocks_bad_nonces() { &privks[tenure_id], 0, 10000, - &format!("hello-world-{}", tenure_id), - &contract, + &format!("hello-world-{tenure_id}"), + contract, ); let mut contract_tx_bytes = vec![]; contract_tx @@ -2593,8 +2593,8 @@ fn test_build_anchored_blocks_bad_nonces() { &privks[tenure_id], 1, 10000, - &format!("hello-world-{}-2", tenure_id), - &contract, + &format!("hello-world-{tenure_id}-2"), + contract, ); let mut contract_tx_bytes = vec![]; contract_tx @@ -2691,7 +2691,7 @@ fn test_build_microblock_stream_forks() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -2702,7 +2702,7 @@ fn test_build_microblock_stream_forks() { let mut last_block = None; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -2826,7 +2826,7 @@ fn test_build_microblock_stream_forks() { // find the poison-microblock at seq 2 let (_, poison_opt) = match StacksChainState::load_descendant_staging_microblock_stream_with_poison( - &chainstate.db(), + chainstate.db(), &parent_index_hash, 0, u16::MAX @@ -2992,7 +2992,7 @@ fn test_build_microblock_stream_forks_with_descendants() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -3012,7 +3012,7 @@ fn test_build_microblock_stream_forks_with_descendants() { for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (mut burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -3143,7 +3143,7 @@ fn test_build_microblock_stream_forks_with_descendants() { if mblock.header.sequence < 2 { tail = Some((mblock.block_hash(), mblock.header.sequence)); } - let stored = chainstate.preprocess_streamed_microblock(&parent_consensus_hash, &parent_header_hash, &mblock).unwrap(); + let stored = chainstate.preprocess_streamed_microblock(&parent_consensus_hash, &parent_header_hash, mblock).unwrap(); assert!(stored); } for mblock in forked_parent_microblock_stream[2..].iter() { @@ -3153,7 +3153,7 @@ fn test_build_microblock_stream_forks_with_descendants() { // find the poison-microblock at seq 2 let (_, poison_opt) = match StacksChainState::load_descendant_staging_microblock_stream_with_poison( - &chainstate.db(), + chainstate.db(), &parent_index_hash, 0, u16::MAX @@ -3505,7 +3505,7 @@ fn test_contract_call_across_clarity_versions() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -3515,7 +3515,7 @@ fn test_contract_call_across_clarity_versions() { for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let acct = get_stacks_account(&mut peer, &addr.to_account_principal()); @@ -4056,7 +4056,7 @@ fn test_is_tx_problematic() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -4067,7 +4067,7 @@ fn test_is_tx_problematic() { let mut last_block = None; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -4124,7 +4124,7 @@ fn test_is_tx_problematic() { &privks_expensive[tenure_id], 0, (2 * contract_spends_too_much.len()) as u64, - &format!("hello-world-{}", &tenure_id), + &format!("hello-world-{tenure_id}"), &contract_spends_too_much ); let contract_spends_too_much_txid = contract_spends_too_much_tx.txid(); @@ -4273,7 +4273,7 @@ fn test_is_tx_problematic() { &privks_expensive[tenure_id], 4, (2 * contract_spends_too_much.len()) as u64, - &format!("hello-world-{}", &tenure_id), + &format!("hello-world-{tenure_id}"), &contract_spends_too_much ); let contract_spends_too_much_txid = contract_spends_too_much_tx.txid(); @@ -4539,7 +4539,7 @@ fn mempool_incorporate_pox_unlocks() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -4569,7 +4569,7 @@ fn mempool_incorporate_pox_unlocks() { let mut last_block = None; for tenure_id in 0..num_blocks { // send transactions to the mempool - let tip = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let tip = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( @@ -4754,7 +4754,7 @@ fn test_fee_order_mismatch_nonce_order() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -4766,7 +4766,7 @@ fn test_fee_order_mismatch_nonce_order() { let mut last_block = None; // send transactions to the mempool let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()).unwrap(); + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()).unwrap(); let (burn_ops, stacks_block, microblocks) = peer.make_tenure( |ref mut miner, diff --git a/stackslib/src/chainstate/stacks/tests/chain_histories.rs b/stackslib/src/chainstate/stacks/tests/chain_histories.rs index b8441a3cbb..9240626e85 100644 --- a/stackslib/src/chainstate/stacks/tests/chain_histories.rs +++ b/stackslib/src/chainstate/stacks/tests/chain_histories.rs @@ -63,7 +63,7 @@ use crate::util_lib::db::Error as db_error; fn connect_burnchain_db(burnchain: &Burnchain) -> BurnchainDB { let burnchain_db = - BurnchainDB::connect(&burnchain.get_burnchaindb_path(), &burnchain, true).unwrap(); + BurnchainDB::connect(&burnchain.get_burnchaindb_path(), burnchain, true).unwrap(); burnchain_db } @@ -140,7 +140,7 @@ where &last_key, parent_block_opt.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!("Produce anchored stacks block"); let mut miner_chainstate = open_chainstate(false, 0x80000000, &full_test_name); @@ -326,7 +326,7 @@ where &last_key, parent_block_opt.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!("Produce anchored stacks block"); let mut miner_chainstate = open_chainstate(false, 0x80000000, &full_test_name); @@ -470,7 +470,7 @@ where &last_key_1, parent_block_opt.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!( "Produce anchored stacks block in stacks fork 1 via {}", miner.origin_address().unwrap().to_string() @@ -518,7 +518,7 @@ where &last_key_2, parent_block_opt.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!( "Produce anchored stacks block in stacks fork 2 via {}", miner.origin_address().unwrap().to_string() @@ -807,7 +807,7 @@ where &last_key_1, parent_block_opt.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!( "Produce anchored stacks block in stacks fork 1 via {}", miner.origin_address().unwrap().to_string() @@ -855,7 +855,7 @@ where &last_key_2, parent_block_opt.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!( "Produce anchored stacks block in stacks fork 2 via {}", miner.origin_address().unwrap().to_string() @@ -1071,7 +1071,7 @@ where &last_key_1, parent_block_opt_1.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!( "Miner {}: Produce anchored stacks block in stacks fork 1 via {}", miner.id, @@ -1120,7 +1120,7 @@ where &last_key_2, parent_block_opt_2.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!( "Miner {}: Produce anchored stacks block in stacks fork 2 via {}", miner.id, @@ -1423,7 +1423,7 @@ where &last_key_1, parent_block_opt.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!("Produce anchored stacks block from miner 1"); let mut miner_chainstate = open_chainstate(false, 0x80000000, &full_test_name); @@ -1468,7 +1468,7 @@ where &last_key_2, parent_block_opt.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!("Produce anchored stacks block from miner 2"); let mut miner_chainstate = open_chainstate(false, 0x80000000, &full_test_name); @@ -1667,7 +1667,7 @@ where &last_key_1, parent_block_opt_1.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!( "Produce anchored stacks block in stacks fork 1 via {}", miner.origin_address().unwrap().to_string() @@ -1715,7 +1715,7 @@ where &last_key_2, parent_block_opt_2.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!( "Produce anchored stacks block in stacks fork 2 via {}", miner.origin_address().unwrap().to_string() @@ -1978,7 +1978,7 @@ where &last_key_1, parent_block_opt_1.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!("Produce anchored stacks block"); let mut miner_chainstate = open_chainstate(false, 0x80000000, &full_test_name); @@ -2023,7 +2023,7 @@ where &last_key_2, parent_block_opt_2.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!("Produce anchored stacks block"); let mut miner_chainstate = open_chainstate(false, 0x80000000, &full_test_name); @@ -2222,7 +2222,7 @@ where &last_key_1, parent_block_opt_1.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!( "Produce anchored stacks block in stacks fork 1 via {}", miner.origin_address().unwrap().to_string() @@ -2270,7 +2270,7 @@ where &last_key_2, parent_block_opt_2.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { test_debug!( "Produce anchored stacks block in stacks fork 2 via {}", miner.origin_address().unwrap().to_string() @@ -2436,8 +2436,8 @@ fn assert_chainstate_blocks_eq(test_name_1: &str, test_name_2: &str) { let ch2 = open_chainstate(false, 0x80000000, test_name_2); // check presence of anchored blocks - let mut all_blocks_1 = StacksChainState::list_blocks(&ch1.db()).unwrap(); - let mut all_blocks_2 = StacksChainState::list_blocks(&ch2.db()).unwrap(); + let mut all_blocks_1 = StacksChainState::list_blocks(ch1.db()).unwrap(); + let mut all_blocks_2 = StacksChainState::list_blocks(ch2.db()).unwrap(); all_blocks_1.sort(); all_blocks_2.sort(); @@ -2449,9 +2449,9 @@ fn assert_chainstate_blocks_eq(test_name_1: &str, test_name_2: &str) { // check presence and ordering of microblocks let mut all_microblocks_1 = - StacksChainState::list_microblocks(&ch1.db(), &ch1.blocks_path).unwrap(); + StacksChainState::list_microblocks(ch1.db(), &ch1.blocks_path).unwrap(); let mut all_microblocks_2 = - StacksChainState::list_microblocks(&ch2.db(), &ch2.blocks_path).unwrap(); + StacksChainState::list_microblocks(ch2.db(), &ch2.blocks_path).unwrap(); all_microblocks_1.sort(); all_microblocks_2.sort(); @@ -2470,14 +2470,14 @@ fn assert_chainstate_blocks_eq(test_name_1: &str, test_name_2: &str) { // compare block status (staging vs confirmed) and contents for i in 0..all_blocks_1.len() { let staging_1_opt = StacksChainState::load_staging_block( - &ch1.db(), + ch1.db(), &ch2.blocks_path, &all_blocks_1[i].0, &all_blocks_1[i].1, ) .unwrap(); let staging_2_opt = StacksChainState::load_staging_block( - &ch2.db(), + ch2.db(), &ch2.blocks_path, &all_blocks_2[i].0, &all_blocks_2[i].1, @@ -2518,7 +2518,7 @@ fn assert_chainstate_blocks_eq(test_name_1: &str, test_name_2: &str) { } let chunk_1_opt = StacksChainState::load_descendant_staging_microblock_stream( - &ch1.db(), + ch1.db(), &StacksBlockHeader::make_index_block_hash( &all_microblocks_1[i].0, &all_microblocks_1[i].1, @@ -2528,7 +2528,7 @@ fn assert_chainstate_blocks_eq(test_name_1: &str, test_name_2: &str) { ) .unwrap(); let chunk_2_opt = StacksChainState::load_descendant_staging_microblock_stream( - &ch1.db(), + ch1.db(), &StacksBlockHeader::make_index_block_hash( &all_microblocks_2[i].0, &all_microblocks_2[i].1, @@ -2550,14 +2550,14 @@ fn assert_chainstate_blocks_eq(test_name_1: &str, test_name_2: &str) { for j in 0..all_microblocks_1[i].2.len() { // staging status is the same let staging_1_opt = StacksChainState::load_staging_microblock( - &ch1.db(), + ch1.db(), &all_microblocks_1[i].0, &all_microblocks_1[i].1, &all_microblocks_1[i].2[j], ) .unwrap(); let staging_2_opt = StacksChainState::load_staging_microblock( - &ch2.db(), + ch2.db(), &all_microblocks_2[i].0, &all_microblocks_2[i].1, &all_microblocks_2[i].2[j], @@ -2600,7 +2600,7 @@ fn miner_trace_replay_randomized(miner_trace: &mut TestMinerTrace) { miner_trace .miners .iter() - .map(|ref miner| miner.origin_address().unwrap()) + .map(|miner| miner.origin_address().unwrap()) .collect(), ); nodes.insert(test_name, next_node); @@ -2638,11 +2638,11 @@ fn miner_trace_replay_randomized(miner_trace: &mut TestMinerTrace) { // "discover" the stacks block and its microblocks in all nodes // TODO: randomize microblock discovery order too - for (node_name, mut node) in nodes.iter_mut() { + for (node_name, node) in nodes.iter_mut() { microblocks.as_mut_slice().shuffle(&mut rng); preprocess_stacks_block_data( - &mut node, + node, &mut miner_trace.burn_node, &fork_snapshot, &stacks_block, @@ -2671,7 +2671,7 @@ fn miner_trace_replay_randomized(miner_trace: &mut TestMinerTrace) { } else { for mblock in microblocks.iter() { preprocess_stacks_block_data( - &mut node, + node, &mut miner_trace.burn_node, &fork_snapshot, &stacks_block, @@ -3605,7 +3605,7 @@ fn mine_anchored_invalid_token_transfer_blocks_single() { .unwrap() .unwrap(); assert!(StacksChainState::is_block_orphaned( - &chainstate.db(), + chainstate.db(), &sn.consensus_hash, &bc.block_header_hash ) diff --git a/stackslib/src/chainstate/stacks/tests/mod.rs b/stackslib/src/chainstate/stacks/tests/mod.rs index 9f5dd9c860..ba11a6ab97 100644 --- a/stackslib/src/chainstate/stacks/tests/mod.rs +++ b/stackslib/src/chainstate/stacks/tests/mod.rs @@ -88,8 +88,8 @@ pub fn copy_dir(src_dir: &str, dest_dir: &str) -> Result<(), io::Error> { while !dir_queue.is_empty() { let next_dir = dir_queue.pop_front().unwrap(); - let next_src_dir = path_join(&src_dir, &next_dir); - let next_dest_dir = path_join(&dest_dir, &next_dir); + let next_src_dir = path_join(src_dir, &next_dir); + let next_dest_dir = path_join(dest_dir, &next_dir); eprintln!("mkdir {next_dest_dir}"); fs::create_dir_all(&next_dest_dir)?; @@ -99,11 +99,11 @@ pub fn copy_dir(src_dir: &str, dest_dir: &str) -> Result<(), io::Error> { let path = dirent.path(); let md = fs::metadata(&path)?; if md.is_dir() { - let frontier = path_join(&next_dir, &dirent.file_name().to_str().unwrap()); + let frontier = path_join(&next_dir, dirent.file_name().to_str().unwrap()); eprintln!("push {frontier}"); dir_queue.push_back(frontier); } else { - let dest_path = path_join(&next_dest_dir, &dirent.file_name().to_str().unwrap()); + let dest_path = path_join(&next_dest_dir, dirent.file_name().to_str().unwrap()); eprintln!("copy {} to {dest_path}", &path.to_str().unwrap()); fs::copy(path, dest_path)?; } @@ -782,7 +782,7 @@ pub fn preprocess_stacks_block_data( .preprocess_anchored_block( &ic, &commit_snapshot.consensus_hash, - &stacks_block, + stacks_block, &parent_block_consensus_hash, 5, ) @@ -923,7 +923,7 @@ pub fn check_mining_reward( if confirmed_block_height as u64 > block_height - MINER_REWARD_MATURITY { continue; } - if let Some(ref parent_reward) = stream_rewards.get(&parent_block) { + if let Some(parent_reward) = stream_rewards.get(&parent_block) { if parent_reward.address == miner.origin_address().unwrap() { let streamed = match &parent_reward.tx_fees { MinerPaymentTxFees::Epoch2 { streamed, .. } => streamed, @@ -968,7 +968,7 @@ pub fn get_last_microblock_header( parent_block_opt: Option<&StacksBlock>, ) -> Option { let last_microblocks_opt = match parent_block_opt { - Some(ref block) => node.get_microblock_stream(&miner, &block.block_hash()), + Some(block) => node.get_microblock_stream(miner, &block.block_hash()), None => None, }; diff --git a/stackslib/src/chainstate/stacks/transaction.rs b/stackslib/src/chainstate/stacks/transaction.rs index d813dbcf01..f0fdf4f192 100644 --- a/stackslib/src/chainstate/stacks/transaction.rs +++ b/stackslib/src/chainstate/stacks/transaction.rs @@ -193,7 +193,7 @@ impl StacksMessageCodec for TransactionPayload { if let Some(version) = version_opt { // caller requests a specific Clarity version write_next(fd, &(TransactionPayloadID::VersionedSmartContract as u8))?; - ClarityVersion_consensus_serialize(&version, fd)?; + ClarityVersion_consensus_serialize(version, fd)?; sc.consensus_serialize(fd)?; } else { // caller requests to use whatever the current clarity version is @@ -1020,7 +1020,7 @@ impl StacksTransaction { /// Get a copy of the sending condition that will pay the tx fee pub fn get_payer(&self) -> TransactionSpendingCondition { match self.auth.sponsor() { - Some(ref tsc) => (*tsc).clone(), + Some(tsc) => tsc.clone(), None => self.auth.origin().clone(), } } @@ -3502,14 +3502,14 @@ mod test { // length asset_name.len(), ]; - asset_name_bytes.extend_from_slice(&asset_name.to_string().as_str().as_bytes()); + asset_name_bytes.extend_from_slice(asset_name.to_string().as_str().as_bytes()); let contract_name = ContractName::try_from("hello-world").unwrap(); let mut contract_name_bytes = vec![ // length contract_name.len(), ]; - contract_name_bytes.extend_from_slice(&contract_name.to_string().as_str().as_bytes()); + contract_name_bytes.extend_from_slice(contract_name.to_string().as_str().as_bytes()); let asset_info = AssetInfo { contract_address: addr.clone(), @@ -3863,7 +3863,7 @@ mod test { test_debug!("---------"); test_debug!("text tx bytes:\n{}", &to_hex(&tx_bytes)); - check_codec_and_corruption::(&tx, &tx_bytes); + check_codec_and_corruption::(tx, &tx_bytes); } } diff --git a/stackslib/src/clarity_cli.rs b/stackslib/src/clarity_cli.rs index d07399a027..6951ed062c 100644 --- a/stackslib/src/clarity_cli.rs +++ b/stackslib/src/clarity_cli.rs @@ -74,8 +74,8 @@ lazy_static! { ("lockup", BOOT_CODE_LOCKUP), ("costs", BOOT_CODE_COSTS), ("cost-voting", BOOT_CODE_COST_VOTING_MAINNET), - ("bns", &BOOT_CODE_BNS), - ("genesis", &BOOT_CODE_GENESIS), + ("bns", BOOT_CODE_BNS), + ("genesis", BOOT_CODE_GENESIS), ("costs-2", BOOT_CODE_COSTS_2), ("pox-2", &POX_2_MAINNET_CODE), ("costs-3", BOOT_CODE_COSTS_3), @@ -85,8 +85,8 @@ lazy_static! { ("lockup", BOOT_CODE_LOCKUP), ("costs", BOOT_CODE_COSTS), ("cost-voting", &BOOT_CODE_COST_VOTING_TESTNET), - ("bns", &BOOT_CODE_BNS), - ("genesis", &BOOT_CODE_GENESIS), + ("bns", BOOT_CODE_BNS), + ("genesis", BOOT_CODE_GENESIS), ("costs-2", BOOT_CODE_COSTS_2_TESTNET), ("pox-2", &POX_2_TESTNET_CODE), ("costs-3", BOOT_CODE_COSTS_3), @@ -300,7 +300,7 @@ fn get_cli_chain_tip(conn: &Connection) -> StacksBlockId { let mut hash_opt = None; while let Some(row) = rows.next().expect("FATAL: could not read block hash") { let bhh = friendly_expect( - StacksBlockId::from_column(&row, "block_hash"), + StacksBlockId::from_column(row, "block_hash"), "FATAL: could not parse block hash", ); hash_opt = Some(bhh); @@ -320,10 +320,7 @@ fn get_cli_block_height(conn: &Connection, block_id: &StacksBlockId) -> Option Option { // mock it let conn = self.conn(); - if let Some(_) = get_cli_block_height(&conn, id_bhh) { + if let Some(_) = get_cli_block_height(conn, id_bhh) { let hash_bytes = Sha512Trunc256Sum::from_data(&id_bhh.0); Some(BurnchainHeaderHash(hash_bytes.0)) } else { @@ -660,7 +657,7 @@ impl HeadersDB for CLIHeadersDB { ) -> Option { // mock it let conn = self.conn(); - if let Some(_) = get_cli_block_height(&conn, id_bhh) { + if let Some(_) = get_cli_block_height(conn, id_bhh) { let hash_bytes = Hash160::from_data(&id_bhh.0); Some(ConsensusHash(hash_bytes.0)) } else { @@ -674,7 +671,7 @@ impl HeadersDB for CLIHeadersDB { _epoch: &StacksEpochId, ) -> Option { let conn = self.conn(); - if let Some(_) = get_cli_block_height(&conn, id_bhh) { + if let Some(_) = get_cli_block_height(conn, id_bhh) { // mock it, but make it unique let hash_bytes = Sha512Trunc256Sum::from_data(&id_bhh.0); let hash_bytes_2 = Sha512Trunc256Sum::from_data(&hash_bytes.0); @@ -690,7 +687,7 @@ impl HeadersDB for CLIHeadersDB { _epoch: &StacksEpochId, ) -> Option { let conn = self.conn(); - if let Some(_) = get_cli_block_height(&conn, id_bhh) { + if let Some(_) = get_cli_block_height(conn, id_bhh) { // mock it, but make it unique let hash_bytes = Sha512Trunc256Sum::from_data(&id_bhh.0); let hash_bytes_2 = Sha512Trunc256Sum::from_data(&hash_bytes.0); @@ -707,7 +704,7 @@ impl HeadersDB for CLIHeadersDB { _epoch: Option<&StacksEpochId>, ) -> Option { let conn = self.conn(); - if let Some(height) = get_cli_block_height(&conn, id_bhh) { + if let Some(height) = get_cli_block_height(conn, id_bhh) { Some(height * 600 + 1231006505) } else { None @@ -716,7 +713,7 @@ impl HeadersDB for CLIHeadersDB { fn get_stacks_block_time_for_block(&self, id_bhh: &StacksBlockId) -> Option { let conn = self.conn(); - if let Some(height) = get_cli_block_height(&conn, id_bhh) { + if let Some(height) = get_cli_block_height(conn, id_bhh) { Some(height * 10 + 1713799973) } else { None @@ -725,7 +722,7 @@ impl HeadersDB for CLIHeadersDB { fn get_burn_block_height_for_block(&self, id_bhh: &StacksBlockId) -> Option { let conn = self.conn(); - if let Some(height) = get_cli_block_height(&conn, id_bhh) { + if let Some(height) = get_cli_block_height(conn, id_bhh) { Some(height as u32) } else { None @@ -746,7 +743,7 @@ impl HeadersDB for CLIHeadersDB { _epoch: &StacksEpochId, ) -> Option { // if the block is defined at all, then return a constant - get_cli_block_height(&self.conn(), id_bhh).map(|_| 2000) + get_cli_block_height(self.conn(), id_bhh).map(|_| 2000) } fn get_burnchain_tokens_spent_for_winning_block( @@ -755,7 +752,7 @@ impl HeadersDB for CLIHeadersDB { _epoch: &StacksEpochId, ) -> Option { // if the block is defined at all, then return a constant - get_cli_block_height(&self.conn(), id_bhh).map(|_| 1000) + get_cli_block_height(self.conn(), id_bhh).map(|_| 1000) } fn get_tokens_earned_for_block( @@ -764,7 +761,7 @@ impl HeadersDB for CLIHeadersDB { _epoch: &StacksEpochId, ) -> Option { // if the block is defined at all, then return a constant - get_cli_block_height(&self.conn(), id_bhh).map(|_| 3000) + get_cli_block_height(self.conn(), id_bhh).map(|_| 3000) } fn get_stacks_height_for_tenure_height( @@ -911,7 +908,7 @@ fn install_boot_code(header_db: &CLIHeadersDB, marf: &mut C) let mut ast = friendly_expect( parse( &contract_identifier, - &contract_content, + contract_content, ClarityVersion::Clarity2, ), "Failed to parse program.", @@ -931,7 +928,7 @@ fn install_boot_code(header_db: &CLIHeadersDB, marf: &mut C) .initialize_versioned_contract( contract_identifier, ClarityVersion::Clarity2, - &contract_content, + contract_content, None, ASTRules::PrecheckSize, ) @@ -987,7 +984,7 @@ pub fn add_assets(result: &mut serde_json::Value, assets: bool, asset_map: Asset pub fn add_serialized_output(result: &mut serde_json::Value, value: Value) { let result_raw = { - let bytes = (&value).serialize_to_vec().unwrap(); + let bytes = value.serialize_to_vec().unwrap(); bytes_to_hex(&bytes) }; result["output_serialized"] = serde_json::to_value(result_raw.as_str()).unwrap(); @@ -1055,8 +1052,8 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option (i32, Option { where F: FnOnce(&mut AnalysisDatabase) -> R, { - self.with_analysis_db(|mut db, cost_tracker| { + self.with_analysis_db(|db, cost_tracker| { db.begin(); - let result = to_do(&mut db); + let result = to_do(db); db.roll_back() .expect("FATAL: failed to rollback changes during read-only connection"); (cost_tracker, result) @@ -1927,7 +1927,7 @@ mod tests { tx.analyze_smart_contract( &contract_identifier, ClarityVersion::Clarity1, - &contract, + contract, ASTRules::PrecheckSize, ) }) @@ -1940,7 +1940,7 @@ mod tests { tx.analyze_smart_contract( &contract_identifier, ClarityVersion::Clarity1, - &contract, + contract, ASTRules::PrecheckSize, ) }) @@ -1988,7 +1988,7 @@ mod tests { .analyze_smart_contract( &contract_identifier, ClarityVersion::Clarity1, - &contract, + contract, ASTRules::PrecheckSize, ) .unwrap(); @@ -1996,7 +1996,7 @@ mod tests { &contract_identifier, ClarityVersion::Clarity1, &ct_ast, - &contract, + contract, None, |_, _| false, ) @@ -2041,7 +2041,7 @@ mod tests { .analyze_smart_contract( &contract_identifier, ClarityVersion::Clarity1, - &contract, + contract, ASTRules::PrecheckSize, ) .unwrap(); @@ -2049,7 +2049,7 @@ mod tests { &contract_identifier, ClarityVersion::Clarity1, &ct_ast, - &contract, + contract, None, |_, _| false, ) @@ -2069,7 +2069,7 @@ mod tests { .analyze_smart_contract( &contract_identifier, ClarityVersion::Clarity1, - &contract, + contract, ASTRules::PrecheckSize, ) .unwrap(); @@ -2077,7 +2077,7 @@ mod tests { &contract_identifier, ClarityVersion::Clarity1, &ct_ast, - &contract, + contract, None, |_, _| false, ) @@ -2099,7 +2099,7 @@ mod tests { .analyze_smart_contract( &contract_identifier, ClarityVersion::Clarity1, - &contract, + contract, ASTRules::PrecheckSize, ) .unwrap(); @@ -2109,7 +2109,7 @@ mod tests { &contract_identifier, ClarityVersion::Clarity1, &ct_ast, - &contract, + contract, None, |_, _| false ) @@ -2153,7 +2153,7 @@ mod tests { .analyze_smart_contract( &contract_identifier, ClarityVersion::Clarity1, - &contract, + contract, ASTRules::PrecheckSize, ) .unwrap(); @@ -2161,7 +2161,7 @@ mod tests { &contract_identifier, ClarityVersion::Clarity1, &ct_ast, - &contract, + contract, None, |_, _| false, ) @@ -2213,7 +2213,7 @@ mod tests { .analyze_smart_contract( &contract_identifier, ClarityVersion::Clarity1, - &contract, + contract, ASTRules::PrecheckSize, ) .unwrap(); @@ -2221,7 +2221,7 @@ mod tests { &contract_identifier, ClarityVersion::Clarity1, &ct_ast, - &contract, + contract, None, |_, _| false, ) @@ -2305,7 +2305,7 @@ mod tests { .analyze_smart_contract( &contract_identifier, ClarityVersion::Clarity1, - &contract, + contract, ASTRules::PrecheckSize, ) .unwrap(); @@ -2313,7 +2313,7 @@ mod tests { &contract_identifier, ClarityVersion::Clarity1, &ct_ast, - &contract, + contract, None, |_, _| false, ) @@ -2436,7 +2436,7 @@ mod tests { .analyze_smart_contract( &contract_identifier, ClarityVersion::Clarity1, - &contract, + contract, ASTRules::PrecheckSize, ) .unwrap(); @@ -2444,7 +2444,7 @@ mod tests { &contract_identifier, ClarityVersion::Clarity1, &ct_ast, - &contract, + contract, None, |_, _| false, ) @@ -2820,7 +2820,7 @@ mod tests { .analyze_smart_contract( &contract_identifier, ClarityVersion::Clarity1, - &contract, + contract, ASTRules::PrecheckSize, ) .unwrap(); @@ -2828,7 +2828,7 @@ mod tests { &contract_identifier, ClarityVersion::Clarity1, &ct_ast, - &contract, + contract, None, |_, _| false, ) diff --git a/stackslib/src/clarity_vm/database/marf.rs b/stackslib/src/clarity_vm/database/marf.rs index 56a1fde107..7eaed3d1f7 100644 --- a/stackslib/src/clarity_vm/database/marf.rs +++ b/stackslib/src/clarity_vm/database/marf.rs @@ -67,7 +67,7 @@ impl MarfedKV { .map_err(|err| InterpreterError::MarfFailure(err.to_string()))? }; - if SqliteConnection::check_schema(&marf.sqlite_conn()).is_ok() { + if SqliteConnection::check_schema(marf.sqlite_conn()).is_ok() { // no need to initialize return Ok(marf); } diff --git a/stackslib/src/clarity_vm/tests/contracts.rs b/stackslib/src/clarity_vm/tests/contracts.rs index c7de36aa1c..394bd328e9 100644 --- a/stackslib/src/clarity_vm/tests/contracts.rs +++ b/stackslib/src/clarity_vm/tests/contracts.rs @@ -917,14 +917,14 @@ fn test_block_heights() { let (ast, analysis) = clarity_db.analyze_smart_contract( &contract_identifier1, ClarityVersion::Clarity1, - &contract_clarity1, + contract_clarity1, ASTRules::PrecheckSize, ).unwrap(); let res = clarity_db.analyze_smart_contract( &contract_identifier2, ClarityVersion::Clarity1, - &contract_clarity3, + contract_clarity3, ASTRules::PrecheckSize, ); if let Err(ClarityError::Analysis(check_error)) = res { @@ -952,14 +952,14 @@ fn test_block_heights() { let (ast, analysis) = clarity_db.analyze_smart_contract( &contract_identifier1, ClarityVersion::Clarity2, - &contract_clarity1, + contract_clarity1, ASTRules::PrecheckSize, ).unwrap(); let res = clarity_db.analyze_smart_contract( &contract_identifier2, ClarityVersion::Clarity2, - &contract_clarity3, + contract_clarity3, ASTRules::PrecheckSize, ); if let Err(ClarityError::Analysis(check_error)) = res { @@ -976,7 +976,7 @@ fn test_block_heights() { let res = clarity_db.analyze_smart_contract( &contract_identifier1, ClarityVersion::Clarity3, - &contract_clarity1, + contract_clarity1, ASTRules::PrecheckSize, ); if let Err(ClarityError::Analysis(check_error)) = res { @@ -992,7 +992,7 @@ fn test_block_heights() { let (ast, analysis) = clarity_db.analyze_smart_contract( &contract_identifier2, ClarityVersion::Clarity3, - &contract_clarity3, + contract_clarity3, ASTRules::PrecheckSize, ).unwrap(); @@ -1207,7 +1207,7 @@ fn test_block_heights_across_versions() { .analyze_smart_contract( &contract_id_e2c1, ClarityVersion::Clarity1, - &contract_e2c1_2, + contract_e2c1_2, ASTRules::PrecheckSize, ) .unwrap(); @@ -1237,7 +1237,7 @@ fn test_block_heights_across_versions() { .analyze_smart_contract( &contract_id_e2c2, ClarityVersion::Clarity2, - &contract_e2c1_2, + contract_e2c1_2, ASTRules::PrecheckSize, ) .unwrap(); @@ -1340,7 +1340,7 @@ fn test_block_heights_across_versions_traits_3_from_2() { .analyze_smart_contract( &contract_id_e2c1, ClarityVersion::Clarity1, - &contract_e2c1_2, + contract_e2c1_2, ASTRules::PrecheckSize, ) .unwrap(); @@ -1367,7 +1367,7 @@ fn test_block_heights_across_versions_traits_3_from_2() { .analyze_smart_contract( &contract_id_e2c2, ClarityVersion::Clarity2, - &contract_e2c1_2, + contract_e2c1_2, ASTRules::PrecheckSize, ) .unwrap(); @@ -1484,7 +1484,7 @@ fn test_block_heights_across_versions_traits_2_from_3() { .analyze_smart_contract( &contract_id_e2c1, ClarityVersion::Clarity1, - &contract_e2c1_2, + contract_e2c1_2, ASTRules::PrecheckSize, ) .unwrap(); @@ -1511,7 +1511,7 @@ fn test_block_heights_across_versions_traits_2_from_3() { .analyze_smart_contract( &contract_id_e2c2, ClarityVersion::Clarity2, - &contract_e2c1_2, + contract_e2c1_2, ASTRules::PrecheckSize, ) .unwrap(); @@ -1618,7 +1618,7 @@ fn test_block_heights_at_block() { let (ast, analysis) = clarity_db.analyze_smart_contract( &contract_identifier, ClarityVersion::Clarity3, - &contract, + contract, ASTRules::PrecheckSize, ).unwrap(); @@ -1679,7 +1679,7 @@ fn test_get_block_info_time() { .analyze_smart_contract( &contract_identifier2, ClarityVersion::Clarity2, - &contract2, + contract2, ASTRules::PrecheckSize, ) .unwrap(); @@ -1701,7 +1701,7 @@ fn test_get_block_info_time() { .analyze_smart_contract( &contract_identifier3, ClarityVersion::Clarity3, - &contract3, + contract3, ASTRules::PrecheckSize, ) .unwrap(); @@ -1723,7 +1723,7 @@ fn test_get_block_info_time() { .analyze_smart_contract( &contract_identifier3_3, ClarityVersion::Clarity3, - &contract3_3, + contract3_3, ASTRules::PrecheckSize, ) .unwrap(); diff --git a/stackslib/src/clarity_vm/tests/forking.rs b/stackslib/src/clarity_vm/tests/forking.rs index 22a3f07321..59e544195c 100644 --- a/stackslib/src/clarity_vm/tests/forking.rs +++ b/stackslib/src/clarity_vm/tests/forking.rs @@ -71,7 +71,7 @@ fn test_at_block_mutations(#[case] version: ClarityVersion, #[case] epoch: Stack eprintln!("Initializing contract..."); owned_env - .initialize_contract(c.clone(), &contract, None, ASTRules::PrecheckSize) + .initialize_contract(c.clone(), contract, None, ASTRules::PrecheckSize) .unwrap(); } @@ -150,7 +150,7 @@ fn test_at_block_good(#[case] version: ClarityVersion, #[case] epoch: StacksEpoc eprintln!("Initializing contract..."); owned_env - .initialize_contract(c.clone(), &contract, None, ASTRules::PrecheckSize) + .initialize_contract(c.clone(), contract, None, ASTRules::PrecheckSize) .unwrap(); } @@ -224,7 +224,7 @@ fn test_at_block_missing_defines(#[case] version: ClarityVersion, #[case] epoch: eprintln!("Initializing contract..."); owned_env - .initialize_contract(c_a.clone(), &contract, None, ASTRules::PrecheckSize) + .initialize_contract(c_a.clone(), contract, None, ASTRules::PrecheckSize) .unwrap(); } @@ -239,7 +239,7 @@ fn test_at_block_missing_defines(#[case] version: ClarityVersion, #[case] epoch: eprintln!("Initializing contract..."); let e = owned_env - .initialize_contract(c_b.clone(), &contract, None, ASTRules::PrecheckSize) + .initialize_contract(c_b.clone(), contract, None, ASTRules::PrecheckSize) .unwrap_err(); e } diff --git a/stackslib/src/clarity_vm/tests/simple_tests.rs b/stackslib/src/clarity_vm/tests/simple_tests.rs index a73489bb95..0fb38cdf9e 100644 --- a/stackslib/src/clarity_vm/tests/simple_tests.rs +++ b/stackslib/src/clarity_vm/tests/simple_tests.rs @@ -55,7 +55,7 @@ fn test_at_unknown_block() { let err = owned_env .initialize_contract( QualifiedContractIdentifier::local("contract").unwrap(), - &contract, + contract, None, clarity::vm::ast::ASTRules::PrecheckSize, ) diff --git a/stackslib/src/cli.rs b/stackslib/src/cli.rs index 66e14d4b5d..2cca8ce601 100644 --- a/stackslib/src/cli.rs +++ b/stackslib/src/cli.rs @@ -84,7 +84,7 @@ pub fn drain_common_opts(argv: &mut Vec, start_at: usize) -> CommonOpts "config" => { let path = &argv[i]; i += 1; - let config_file = ConfigFile::from_path(&path).unwrap_or_else(|e| { + let config_file = ConfigFile::from_path(path).unwrap_or_else(|e| { panic!("Failed to read '{path}' as stacks-node config: {e}") }); let config = Config::from_config_file(config_file, false).unwrap_or_else(|e| { @@ -279,7 +279,7 @@ pub fn command_replay_block_nakamoto(argv: &[String], conf: Option<&Config>) { if i % 100 == 0 { println!("Checked {i}..."); } - replay_naka_staging_block(db_path, index_block_hash, &conf); + replay_naka_staging_block(db_path, index_block_hash, conf); } println!("Finished. run_time_seconds = {}", start.elapsed().as_secs()); } @@ -374,7 +374,7 @@ pub fn command_replay_mock_mining(argv: &[String], conf: Option<&Config>) { "block_height" => bh, "block" => ?block ); - replay_mock_mined_block(&db_path, block, conf); + replay_mock_mined_block(db_path, block, conf); } } @@ -715,7 +715,7 @@ fn replay_block( let Some(next_microblocks) = StacksChainState::inner_find_parent_microblock_stream( &chainstate_tx.tx, - &block_hash, + block_hash, &parent_block_hash, &parent_header_info.consensus_hash, parent_microblock_hash, @@ -727,7 +727,7 @@ fn replay_block( }; let (burn_header_hash, burn_header_height, burn_header_timestamp, _winning_block_txid) = - match SortitionDB::get_block_snapshot_consensus(&sort_tx, &block_consensus_hash).unwrap() { + match SortitionDB::get_block_snapshot_consensus(&sort_tx, block_consensus_hash).unwrap() { Some(sn) => ( sn.burn_header_hash, sn.block_height as u32, @@ -745,10 +745,10 @@ fn replay_block( block_consensus_hash, block_hash, &block_id, &burn_header_hash, parent_microblock_hash, ); - if !StacksChainState::check_block_attachment(&parent_block_header, &block.header) { + if !StacksChainState::check_block_attachment(parent_block_header, &block.header) { let msg = format!( "Invalid stacks block {}/{} -- does not attach to parent {}/{}", - &block_consensus_hash, + block_consensus_hash, block.block_hash(), parent_block_header.block_hash(), &parent_header_info.consensus_hash @@ -760,9 +760,9 @@ fn replay_block( // validation check -- validate parent microblocks and find the ones that connect the // block's parent to this block. let next_microblocks = StacksChainState::extract_connecting_microblocks( - &parent_header_info, - &block_consensus_hash, - &block_hash, + parent_header_info, + block_consensus_hash, + block_hash, block, next_microblocks, ) @@ -795,12 +795,12 @@ fn replay_block( clarity_instance, &mut sort_tx, &pox_constants, - &parent_header_info, + parent_header_info, block_consensus_hash, &burn_header_hash, burn_header_height, burn_header_timestamp, - &block, + block, block_size, &next_microblocks, block_commit_burn, @@ -1080,7 +1080,7 @@ fn replay_block_nakamoto( .try_into() .expect("Failed to downcast u64 to u32"), next_ready_block_snapshot.burn_header_timestamp, - &block, + block, block_size, commit_burn, sortition_burn, diff --git a/stackslib/src/core/mempool.rs b/stackslib/src/core/mempool.rs index 865f99d3b0..d219699caf 100644 --- a/stackslib/src/core/mempool.rs +++ b/stackslib/src/core/mempool.rs @@ -333,7 +333,7 @@ impl MemPoolAdmitter { tx_size: u64, ) -> Result<(), MemPoolRejection> { let sortition_id = match SortitionDB::get_sortition_id_by_consensus( - &sortdb.conn(), + sortdb.conn(), &self.cur_consensus_hash, ) { Ok(Some(x)) => x, @@ -887,11 +887,11 @@ impl<'a> MemPoolTx<'a> { where F: FnOnce(&mut DBTx<'a>, &mut BloomCounter) -> R, { - let mut bc = tx + let bc = tx .bloom_counter .take() .expect("BUG: did not replace bloom filter"); - let res = f(&mut tx.tx, &mut bc); + let res = f(&mut tx.tx, bc); tx.bloom_counter.replace(bc); res } @@ -968,7 +968,7 @@ impl<'a> MemPoolTx<'a> { // keep the bloom counter un-saturated -- remove at most one transaction from it to keep // the error rate at or below the target error rate let evict_txid = { - let num_recents = MemPoolDB::get_num_recent_txs(&dbtx)?; + let num_recents = MemPoolDB::get_num_recent_txs(dbtx)?; if num_recents >= MAX_BLOOM_COUNTER_TXS.into() { // remove lowest-fee tx (they're paying the least, so replication is // deprioritized) @@ -976,7 +976,7 @@ impl<'a> MemPoolTx<'a> { let args = params![u64_to_sql( coinbase_height.saturating_sub(BLOOM_COUNTER_DEPTH as u64), )?]; - let evict_txid: Option = query_row(&dbtx, sql, args)?; + let evict_txid: Option = query_row(dbtx, sql, args)?; if let Some(evict_txid) = evict_txid { bloom_counter.remove_raw(dbtx, &evict_txid.0)?; @@ -1144,7 +1144,7 @@ fn db_get_nonce(conn: &DBConn, address: &StacksAddress) -> Result, d #[cfg(test)] pub fn db_get_all_nonces(conn: &DBConn) -> Result, db_error> { let sql = "SELECT * FROM nonces"; - let mut stmt = conn.prepare(&sql).map_err(|e| db_error::SqliteError(e))?; + let mut stmt = conn.prepare(sql).map_err(|e| db_error::SqliteError(e))?; let mut iter = stmt .query(NO_PARAMS) .map_err(|e| db_error::SqliteError(e))?; @@ -1297,7 +1297,7 @@ impl MemPoolDB { /// Apply all schema migrations up to the latest schema. fn apply_schema_migrations(tx: &mut DBTx) -> Result<(), db_error> { loop { - let version = MemPoolDB::get_schema_version(&tx)?.unwrap_or(1); + let version = MemPoolDB::get_schema_version(tx)?.unwrap_or(1); match version { 1 => { MemPoolDB::instantiate_cost_estimator(tx)?; @@ -1672,7 +1672,7 @@ impl MemPoolDB { "; let mut query_stmt_null = self .db - .prepare(&sql) + .prepare(sql) .map_err(|err| Error::SqliteError(err))?; let mut null_iterator = query_stmt_null .query(NO_PARAMS) @@ -1686,7 +1686,7 @@ impl MemPoolDB { "; let mut query_stmt_fee = self .db - .prepare(&sql) + .prepare(sql) .map_err(|err| Error::SqliteError(err))?; let mut fee_iterator = query_stmt_fee .query(NO_PARAMS) @@ -1808,7 +1808,7 @@ impl MemPoolDB { }; // Read in and deserialize the transaction. - let tx_info_option = MemPoolDB::get_tx(&self.conn(), &candidate.txid)?; + let tx_info_option = MemPoolDB::get_tx(self.conn(), &candidate.txid)?; let tx_info = match tx_info_option { Some(tx) => tx, None => { @@ -1983,7 +1983,7 @@ impl MemPoolDB { #[cfg(test)] pub fn get_all_txs(conn: &DBConn) -> Result, db_error> { let sql = "SELECT * FROM mempool"; - let rows = query_rows::(conn, &sql, NO_PARAMS)?; + let rows = query_rows::(conn, sql, NO_PARAMS)?; Ok(rows) } @@ -1996,7 +1996,7 @@ impl MemPoolDB { ) -> Result { let sql = "SELECT * FROM mempool WHERE consensus_hash = ?1 AND block_header_hash = ?2"; let args = params![consensus_hash, block_header_hash]; - let rows = query_rows::(conn, &sql, args)?; + let rows = query_rows::(conn, sql, args)?; Ok(rows.len()) } @@ -2016,7 +2016,7 @@ impl MemPoolDB { block_header_hash, u64_to_sql(count)?, ]; - let rows = query_rows::(conn, &sql, args)?; + let rows = query_rows::(conn, sql, args)?; Ok(rows) } @@ -2385,7 +2385,7 @@ impl MemPoolDB { if do_admission_checks { mempool_tx .admitter - .set_block(&block_hash, (*consensus_hash).clone()); + .set_block(block_hash, (*consensus_hash).clone()); mempool_tx .admitter .will_admit_tx(chainstate, sortdb, tx, len)?; @@ -2394,8 +2394,8 @@ impl MemPoolDB { MemPoolDB::try_add_tx( mempool_tx, chainstate, - &consensus_hash, - &block_hash, + consensus_hash, + block_hash, true, txid.clone(), tx_data, @@ -2734,7 +2734,7 @@ impl MemPoolDB { /// Get the bloom filter that represents the set of recent transactions we have pub fn get_txid_bloom_filter(&self) -> Result, db_error> { - self.bloom_counter.to_bloom_filter(&self.conn()) + self.bloom_counter.to_bloom_filter(self.conn()) } /// Find maximum Stacks coinbase height represented in the mempool. @@ -2752,7 +2752,7 @@ impl MemPoolDB { /// Get the transaction ID list that represents the set of transactions that are represented in /// the bloom counter. pub fn get_bloom_txids(&self) -> Result, db_error> { - let max_height = match MemPoolDB::get_max_coinbase_height(&self.conn())? { + let max_height = match MemPoolDB::get_max_coinbase_height(self.conn())? { Some(h) => h, None => { // mempool is empty @@ -2762,7 +2762,7 @@ impl MemPoolDB { let min_height = max_height.saturating_sub(BLOOM_COUNTER_DEPTH as u64); let sql = "SELECT mempool.txid FROM mempool WHERE height > ?1 AND height <= ?2 AND NOT EXISTS (SELECT 1 FROM removed_txids WHERE txid = mempool.txid)"; let args = params![u64_to_sql(min_height)?, u64_to_sql(max_height)?]; - query_rows(&self.conn(), sql, args) + query_rows(self.conn(), sql, args) } /// Get the transaction tag list that represents the set of recent transactions we have. @@ -2811,7 +2811,7 @@ impl MemPoolDB { pub fn get_randomized_txid(&self, txid: &Txid) -> Result, db_error> { let sql = "SELECT hashed_txid FROM randomized_txids WHERE txid = ?1 LIMIT 1"; let args = params![txid]; - query_row(&self.conn(), sql, args) + query_row(self.conn(), sql, args) } pub fn find_next_missing_transactions( diff --git a/stackslib/src/core/tests/mod.rs b/stackslib/src/core/tests/mod.rs index 4477c93b93..a563a2772a 100644 --- a/stackslib/src/core/tests/mod.rs +++ b/stackslib/src/core/tests/mod.rs @@ -2119,7 +2119,7 @@ fn test_make_mempool_sync_data() { assert!(in_bf >= recent_txids.len()); for txid in txids.iter() { - if !recent_set.contains(&txid) && bf.contains_raw(&txid.0) { + if !recent_set.contains(txid) && bf.contains_raw(&txid.0) { fp_count += 1; } if bf.contains_raw(&txid.0) { @@ -2166,7 +2166,7 @@ fn test_make_mempool_sync_data() { ); } - let total_count = MemPoolDB::get_num_recent_txs(&mempool.conn()).unwrap(); + let total_count = MemPoolDB::get_num_recent_txs(mempool.conn()).unwrap(); eprintln!( "present_count: {}, absent count: {}, total sent: {}, total recent: {}", present_count, diff --git a/stackslib/src/cost_estimates/fee_medians.rs b/stackslib/src/cost_estimates/fee_medians.rs index 38d200d8a2..b2a3c0dc74 100644 --- a/stackslib/src/cost_estimates/fee_medians.rs +++ b/stackslib/src/cost_estimates/fee_medians.rs @@ -192,7 +192,7 @@ impl FeeEstimator for WeightedMedianFeeRateEstimator { .tx_receipts .iter() .filter_map(|tx_receipt| { - fee_rate_and_weight_from_receipt(&self.metric, &tx_receipt, block_limit) + fee_rate_and_weight_from_receipt(&self.metric, tx_receipt, block_limit) }) .collect(); @@ -327,7 +327,7 @@ fn fee_rate_and_weight_from_receipt( | TransactionPayload::TenureChange(..) => { // These transaction payload types all "work" the same: they have associated ExecutionCosts // and contibute to the block length limit with their tx_len - metric.from_cost_and_len(&tx_receipt.execution_cost, &block_limit, tx_size) + metric.from_cost_and_len(&tx_receipt.execution_cost, block_limit, tx_size) } }; let denominator = cmp::max(scalar_cost, 1) as f64; diff --git a/stackslib/src/cost_estimates/fee_scalar.rs b/stackslib/src/cost_estimates/fee_scalar.rs index c3ad8bd40c..4915dd529d 100644 --- a/stackslib/src/cost_estimates/fee_scalar.rs +++ b/stackslib/src/cost_estimates/fee_scalar.rs @@ -180,7 +180,7 @@ impl FeeEstimator for ScalarFeeRateEstimator { read_count: 2, runtime: 4640, // taken from .costs-3 }, - &block_limit, + block_limit, tx_size, ) } @@ -196,7 +196,7 @@ impl FeeEstimator for ScalarFeeRateEstimator { // and contibute to the block length limit with their tx_len self.metric.from_cost_and_len( &tx_receipt.execution_cost, - &block_limit, + block_limit, tx_size, ) } diff --git a/stackslib/src/cost_estimates/pessimistic.rs b/stackslib/src/cost_estimates/pessimistic.rs index 9894180480..04579331f1 100644 --- a/stackslib/src/cost_estimates/pessimistic.rs +++ b/stackslib/src/cost_estimates/pessimistic.rs @@ -266,9 +266,9 @@ impl CostEstimator for PessimisticEstimator { // only log the estimate error if an estimate could be constructed if let Ok(estimated_cost) = self.estimate_cost(tx, evaluated_epoch) { let estimated_scalar = - estimated_cost.proportion_dot_product(&block_limit, PROPORTION_RESOLUTION); + estimated_cost.proportion_dot_product(block_limit, PROPORTION_RESOLUTION); let actual_scalar = - actual_cost.proportion_dot_product(&block_limit, PROPORTION_RESOLUTION); + actual_cost.proportion_dot_product(block_limit, PROPORTION_RESOLUTION); info!("PessimisticEstimator received event"; "key" => %PessimisticEstimator::get_estimate_key(tx, &CostField::RuntimeCost, evaluated_epoch), "estimate" => estimated_scalar, diff --git a/stackslib/src/cost_estimates/tests/cost_estimators.rs b/stackslib/src/cost_estimates/tests/cost_estimators.rs index 1ed6b034e5..1d772e620e 100644 --- a/stackslib/src/cost_estimates/tests/cost_estimators.rs +++ b/stackslib/src/cost_estimates/tests/cost_estimators.rs @@ -827,11 +827,7 @@ fn test_cost_estimator_epochs_independent() { // Setup: "notify" cost_200 in Epoch20. estimator.notify_block( - &vec![make_dummy_cc_tx( - &contract_name, - &func_name, - cost_200.clone(), - )], + &vec![make_dummy_cc_tx(contract_name, func_name, cost_200.clone())], &BLOCK_LIMIT_MAINNET_20, &StacksEpochId::Epoch20, ); @@ -842,7 +838,7 @@ fn test_cost_estimator_epochs_independent() { make_dummy_coinbase_tx(), make_dummy_transfer_tx(), make_dummy_transfer_tx(), - make_dummy_cc_tx(&contract_name, &func_name, cost_205.clone()), + make_dummy_cc_tx(contract_name, func_name, cost_205.clone()), ], &BLOCK_LIMIT_MAINNET_20, &StacksEpochId::Epoch2_05, diff --git a/stackslib/src/main.rs b/stackslib/src/main.rs index 730303cbd2..c2df93da91 100644 --- a/stackslib/src/main.rs +++ b/stackslib/src/main.rs @@ -507,7 +507,7 @@ fn main() { } let index_block_hash = &argv[3]; - let index_block_hash = StacksBlockId::from_hex(&index_block_hash).unwrap(); + let index_block_hash = StacksBlockId::from_hex(index_block_hash).unwrap(); let chain_state_path = format!("{}/mainnet/chainstate/", &argv[2]); let (chainstate, _) = @@ -686,11 +686,11 @@ check if the associated microblocks can be downloaded }; let index_block_hash = - StacksBlockHeader::make_index_block_hash(&consensus_hash, &block_hash); + StacksBlockHeader::make_index_block_hash(consensus_hash, block_hash); let start_load_header = get_epoch_time_ms(); let parent_header_opt = { let child_block_info = match StacksChainState::load_staging_block_info( - &chain_state.db(), + chain_state.db(), &index_block_hash, ) { Ok(Some(hdr)) => hdr, @@ -725,8 +725,8 @@ check if the associated microblocks can be downloaded &chain_state, &parent_consensus_hash, &parent_header.block_hash(), - &consensus_hash, - &block_hash, + consensus_hash, + block_hash, ) .unwrap(); } else { @@ -1029,7 +1029,7 @@ check if the associated microblocks can be downloaded let vals: Vec<_> = line.split(" => ").map(|x| x.trim()).collect(); let hex_string = &vals[0]; let expected_value_display = &vals[1]; - let value = clarity::vm::Value::try_deserialize_hex_untyped(&hex_string).unwrap(); + let value = clarity::vm::Value::try_deserialize_hex_untyped(hex_string).unwrap(); assert_eq!(&value.to_string(), expected_value_display); } @@ -1177,7 +1177,7 @@ check if the associated microblocks can be downloaded let txs = argv[5..] .iter() .map(|tx_str| { - let tx_bytes = hex_bytes(&tx_str).unwrap(); + let tx_bytes = hex_bytes(tx_str).unwrap(); let tx = StacksTransaction::consensus_deserialize(&mut &tx_bytes[..]).unwrap(); tx }) @@ -1345,7 +1345,7 @@ check if the associated microblocks can be downloaded ), ]; - let burnchain = Burnchain::regtest(&burnchain_db_path); + let burnchain = Burnchain::regtest(burnchain_db_path); let first_burnchain_block_height = burnchain.first_block_height; let first_burnchain_block_hash = burnchain.first_block_hash; let epochs = StacksEpoch::all(first_burnchain_block_height, u64::MAX, u64::MAX); @@ -1358,8 +1358,7 @@ check if the associated microblocks can be downloaded ) .unwrap(); - let old_burnchaindb = - BurnchainDB::connect(&old_burnchaindb_path, &burnchain, true).unwrap(); + let old_burnchaindb = BurnchainDB::connect(old_burnchaindb_path, &burnchain, true).unwrap(); let mut boot_data = ChainStateBootData { initial_balances, @@ -1385,7 +1384,7 @@ check if the associated microblocks can be downloaded let all_snapshots = old_sortition_db.get_all_snapshots().unwrap(); let all_stacks_blocks = - StacksChainState::get_all_staging_block_headers(&old_chainstate.db()).unwrap(); + StacksChainState::get_all_staging_block_headers(old_chainstate.db()).unwrap(); // order block hashes by arrival index let mut stacks_blocks_arrival_indexes = vec![]; @@ -1402,7 +1401,7 @@ check if the associated microblocks can be downloaded ); stacks_blocks_arrival_indexes.push((index_hash, snapshot.arrival_index)); } - stacks_blocks_arrival_indexes.sort_by(|ref a, ref b| a.1.partial_cmp(&b.1).unwrap()); + stacks_blocks_arrival_indexes.sort_by(|a, b| a.1.partial_cmp(&b.1).unwrap()); let stacks_blocks_arrival_order: Vec = stacks_blocks_arrival_indexes .into_iter() .map(|(h, _)| h) @@ -1464,7 +1463,7 @@ check if the associated microblocks can be downloaded header: burn_block_header, ops: blockstack_txs, } = BurnchainDB::get_burnchain_block( - &old_burnchaindb.conn(), + old_burnchaindb.conn(), &old_snapshot.burn_header_hash, ) .unwrap(); @@ -2071,10 +2070,10 @@ fn analyze_sortition_mev(argv: Vec) { for (winner, count) in all_wins_epoch3.into_iter() { let degradation = (count as f64) / (all_wins_epoch2 - .get(&winner) + .get(winner) .map(|cnt| *cnt as f64) .unwrap_or(0.00000000000001f64)); - println!("{},{},{}", &winner, count, degradation); + println!("{winner},{count},{degradation}"); } process::exit(0); diff --git a/stackslib/src/net/api/getmicroblocks_indexed.rs b/stackslib/src/net/api/getmicroblocks_indexed.rs index 4a1b310ae0..a13b26dbd9 100644 --- a/stackslib/src/net/api/getmicroblocks_indexed.rs +++ b/stackslib/src/net/api/getmicroblocks_indexed.rs @@ -73,7 +73,7 @@ impl StacksIndexedMicroblockStream { ) -> Result { // look up parent let mblock_info = StacksChainState::load_staging_microblock_info_indexed( - &chainstate.db(), + chainstate.db(), tail_index_microblock_hash, )? .ok_or(ChainError::NoSuchBlockError)?; diff --git a/stackslib/src/net/api/getmicroblocks_unconfirmed.rs b/stackslib/src/net/api/getmicroblocks_unconfirmed.rs index 41d0b77681..4eb2837022 100644 --- a/stackslib/src/net/api/getmicroblocks_unconfirmed.rs +++ b/stackslib/src/net/api/getmicroblocks_unconfirmed.rs @@ -77,7 +77,7 @@ impl StacksUnconfirmedMicroblockStream { seq: u16, ) -> Result { let mblock_info = StacksChainState::load_next_descendant_microblock( - &chainstate.db(), + chainstate.db(), parent_block_id, seq, )? diff --git a/stackslib/src/net/api/getpoxinfo.rs b/stackslib/src/net/api/getpoxinfo.rs index 81868c81f8..f576229110 100644 --- a/stackslib/src/net/api/getpoxinfo.rs +++ b/stackslib/src/net/api/getpoxinfo.rs @@ -318,7 +318,7 @@ impl RPCPoxInfoData { .active_pox_contract(burnchain.reward_cycle_to_block_height(reward_cycle_id + 1)); let cur_cycle_stacked_ustx = chainstate.get_total_ustx_stacked( - &sortdb, + sortdb, tip, reward_cycle_id as u128, cur_cycle_pox_contract, @@ -326,7 +326,7 @@ impl RPCPoxInfoData { let next_cycle_stacked_ustx = // next_cycle_pox_contract might not be instantiated yet match chainstate.get_total_ustx_stacked( - &sortdb, + sortdb, tip, reward_cycle_id as u128 + 1, next_cycle_pox_contract, diff --git a/stackslib/src/net/api/gettenure.rs b/stackslib/src/net/api/gettenure.rs index 9888b5563f..f569407c22 100644 --- a/stackslib/src/net/api/gettenure.rs +++ b/stackslib/src/net/api/gettenure.rs @@ -188,7 +188,7 @@ impl HttpRequest for RPCNakamotoTenureRequestHandler { let req_contents = HttpRequestContents::new().query_string(query); let last_block_id = req_contents .get_query_arg("stop") - .map(|last_block_id_hex| StacksBlockId::from_hex(&last_block_id_hex)) + .map(|last_block_id_hex| StacksBlockId::from_hex(last_block_id_hex)) .transpose() .map_err(|e| { Error::DecodeError(format!("Failed to parse stop= query parameter: {:?}", &e)) diff --git a/stackslib/src/net/api/gettransaction_unconfirmed.rs b/stackslib/src/net/api/gettransaction_unconfirmed.rs index 9628817b40..110bf063b4 100644 --- a/stackslib/src/net/api/gettransaction_unconfirmed.rs +++ b/stackslib/src/net/api/gettransaction_unconfirmed.rs @@ -123,7 +123,7 @@ impl RPCRequestHandler for RPCGetTransactionUnconfirmedRequestHandler { let txinfo_res = node.with_node_state(|_network, _sortdb, chainstate, mempool, _rpc_args| { // present in the unconfirmed state? - if let Some(ref unconfirmed) = chainstate.unconfirmed_state.as_ref() { + if let Some(unconfirmed) = chainstate.unconfirmed_state.as_ref() { if let Some((transaction, mblock_hash, seq)) = unconfirmed.get_unconfirmed_transaction(&txid) { diff --git a/stackslib/src/net/api/mod.rs b/stackslib/src/net/api/mod.rs index 8d32308d9d..9604b3eb69 100644 --- a/stackslib/src/net/api/mod.rs +++ b/stackslib/src/net/api/mod.rs @@ -192,7 +192,7 @@ pub mod prefix_opt_hex { &"at least length 2 string", )); }; - let val = T::try_from(&hex_str).map_err(serde::de::Error::custom)?; + let val = T::try_from(hex_str).map_err(serde::de::Error::custom)?; Ok(Some(val)) } } @@ -218,7 +218,7 @@ pub mod prefix_hex { &"at least length 2 string", )); }; - T::try_from(&hex_str).map_err(serde::de::Error::custom) + T::try_from(hex_str).map_err(serde::de::Error::custom) } } diff --git a/stackslib/src/net/api/postblock.rs b/stackslib/src/net/api/postblock.rs index 4fc50244f9..90d4e166e0 100644 --- a/stackslib/src/net/api/postblock.rs +++ b/stackslib/src/net/api/postblock.rs @@ -164,7 +164,7 @@ impl RPCRequestHandler for RPCPostBlockRequestHandler { let data_resp = node.with_node_state(|_network, sortdb, chainstate, _mempool, _rpc_args| { - match SortitionDB::get_sortition_id_by_consensus(&sortdb.conn(), &consensus_hash) { + match SortitionDB::get_sortition_id_by_consensus(sortdb.conn(), &consensus_hash) { Ok(Some(_)) => { // we recognize this consensus hash let ic = sortdb.index_conn(); diff --git a/stackslib/src/net/api/postblock_proposal.rs b/stackslib/src/net/api/postblock_proposal.rs index ca0d71815f..32152e90a3 100644 --- a/stackslib/src/net/api/postblock_proposal.rs +++ b/stackslib/src/net/api/postblock_proposal.rs @@ -525,7 +525,7 @@ impl NakamotoBlockProposal { let tx_len = tx.tx_len(); let tx_result = builder.try_mine_tx_with_len( &mut tenure_tx, - &tx, + tx, tx_len, &BlockLimitFunction::NO_LIMIT_HIT, ASTRules::PrecheckSize, diff --git a/stackslib/src/net/api/postblock_v3.rs b/stackslib/src/net/api/postblock_v3.rs index e1c794ea2d..1290cc8e8b 100644 --- a/stackslib/src/net/api/postblock_v3.rs +++ b/stackslib/src/net/api/postblock_v3.rs @@ -164,7 +164,7 @@ impl RPCRequestHandler for RPCPostBlockRequestHandler { let stacks_tip = network.stacks_tip.block_id(); Relayer::process_new_nakamoto_block_ext( &network.burnchain, - &sortdb, + sortdb, &mut handle_conn, chainstate, &stacks_tip, diff --git a/stackslib/src/net/api/postfeerate.rs b/stackslib/src/net/api/postfeerate.rs index 376d8bf3da..cb012bbc6c 100644 --- a/stackslib/src/net/api/postfeerate.rs +++ b/stackslib/src/net/api/postfeerate.rs @@ -119,7 +119,7 @@ impl RPCPostFeeRateRequestHandler { metric.from_cost_and_len(&estimated_cost, &stacks_epoch.block_limit, estimated_len); let fee_rates = fee_estimator.get_rate_estimates().map_err(|e| { StacksHttpResponse::new_error( - &preamble, + preamble, &HttpBadRequest::new(format!( "Estimator RPC endpoint failed to estimate fees for tx: {:?}", &e diff --git a/stackslib/src/net/api/postmicroblock.rs b/stackslib/src/net/api/postmicroblock.rs index 370ba1f34d..fa434d7c65 100644 --- a/stackslib/src/net/api/postmicroblock.rs +++ b/stackslib/src/net/api/postmicroblock.rs @@ -118,7 +118,7 @@ impl HttpRequest for RPCPostMicroblockRequestHandler { )); } - let microblock = Self::parse_postmicroblock_octets(&body)?; + let microblock = Self::parse_postmicroblock_octets(body)?; self.microblock = Some(microblock); Ok(HttpRequestContents::new().query_string(query)) diff --git a/stackslib/src/net/api/tests/getheaders.rs b/stackslib/src/net/api/tests/getheaders.rs index 4ea4480082..43e6383a27 100644 --- a/stackslib/src/net/api/tests/getheaders.rs +++ b/stackslib/src/net/api/tests/getheaders.rs @@ -386,8 +386,7 @@ fn test_stream_getheaders() { // ask for only a few let mut stream = - StacksHeaderStream::new(&chainstate, &blocks_fork_index_hashes.last().unwrap(), 10) - .unwrap(); + StacksHeaderStream::new(&chainstate, blocks_fork_index_hashes.last().unwrap(), 10).unwrap(); let header_bytes = stream_headers_to_vec(&mut stream); let headers: Vec = serde_json::from_reader(&mut &header_bytes[..]).unwrap(); diff --git a/stackslib/src/net/api/tests/getmicroblocks_confirmed.rs b/stackslib/src/net/api/tests/getmicroblocks_confirmed.rs index 421264fd9a..e37b5749be 100644 --- a/stackslib/src/net/api/tests/getmicroblocks_confirmed.rs +++ b/stackslib/src/net/api/tests/getmicroblocks_confirmed.rs @@ -143,7 +143,7 @@ fn test_try_make_response() { rpc_test.peer_2.chainstate(), &parent_consensus_hash, &parent_block.block_hash(), - &mblock, + mblock, ); } diff --git a/stackslib/src/net/api/tests/getmicroblocks_indexed.rs b/stackslib/src/net/api/tests/getmicroblocks_indexed.rs index aba7fd5c23..ca879034c4 100644 --- a/stackslib/src/net/api/tests/getmicroblocks_indexed.rs +++ b/stackslib/src/net/api/tests/getmicroblocks_indexed.rs @@ -147,7 +147,7 @@ fn test_try_make_response() { rpc_test.peer_2.chainstate(), &parent_consensus_hash, &parent_block.block_hash(), - &mblock, + mblock, ); } diff --git a/stackslib/src/net/api/tests/getmicroblocks_unconfirmed.rs b/stackslib/src/net/api/tests/getmicroblocks_unconfirmed.rs index f4facf717c..3f31613e67 100644 --- a/stackslib/src/net/api/tests/getmicroblocks_unconfirmed.rs +++ b/stackslib/src/net/api/tests/getmicroblocks_unconfirmed.rs @@ -106,7 +106,7 @@ fn test_try_make_response() { rpc_test.peer_2.chainstate(), &consensus_hash, &anchored_block_hash, - &mblock, + mblock, ); } diff --git a/stackslib/src/net/api/tests/mod.rs b/stackslib/src/net/api/tests/mod.rs index 35e12b5593..b737a9d56f 100644 --- a/stackslib/src/net/api/tests/mod.rs +++ b/stackslib/src/net/api/tests/mod.rs @@ -428,9 +428,8 @@ impl<'a> TestRPC<'a> { tx.commit().unwrap(); } - let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) - .unwrap(); + let tip = SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) + .unwrap(); let mut anchor_cost = ExecutionCost::ZERO; let mut anchor_size = 0; @@ -699,9 +698,8 @@ impl<'a> TestRPC<'a> { .unwrap(); // next tip, coinbase - let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) - .unwrap(); + let tip = SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) + .unwrap(); let mut tx_coinbase = StacksTransaction::new( TransactionVersion::Testnet, diff --git a/stackslib/src/net/api/tests/postblock_proposal.rs b/stackslib/src/net/api/tests/postblock_proposal.rs index 231ffe3366..30fb9de432 100644 --- a/stackslib/src/net/api/tests/postblock_proposal.rs +++ b/stackslib/src/net/api/tests/postblock_proposal.rs @@ -234,7 +234,7 @@ fn test_try_make_response() { let mut requests = vec![]; let tip = - SortitionDB::get_canonical_burn_chain_tip(&rpc_test.peer_1.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(rpc_test.peer_1.sortdb.as_ref().unwrap().conn()) .unwrap(); let (stacks_tip_ch, stacks_tip_bhh) = SortitionDB::get_canonical_stacks_chain_tip_hash( diff --git a/stackslib/src/net/api/tests/postmempoolquery.rs b/stackslib/src/net/api/tests/postmempoolquery.rs index 8f921525a3..76583d4c01 100644 --- a/stackslib/src/net/api/tests/postmempoolquery.rs +++ b/stackslib/src/net/api/tests/postmempoolquery.rs @@ -275,7 +275,7 @@ fn test_stream_mempool_txs() { decoded_txs.append(&mut next_txs); // for fun, use a page ID that is actually a well-formed prefix of a transaction - if let Some(ref tx) = decoded_txs.last() { + if let Some(tx) = decoded_txs.last() { let mut evil_buf = tx.serialize_to_vec(); let mut evil_page_id = [0u8; 32]; evil_page_id.copy_from_slice(&evil_buf[0..32]); diff --git a/stackslib/src/net/atlas/db.rs b/stackslib/src/net/atlas/db.rs index d11dd9995d..1bb0c7aab6 100644 --- a/stackslib/src/net/atlas/db.rs +++ b/stackslib/src/net/atlas/db.rs @@ -462,7 +462,7 @@ impl AtlasDB { let max = (page_index + 1) * AttachmentInstance::ATTACHMENTS_INV_PAGE_SIZE; let qry = "SELECT MIN(block_height) as min, MAX(block_height) as max FROM attachment_instances WHERE attachment_index >= ?1 AND attachment_index < ?2"; let args = params![min, max]; - let mut stmt = self.conn.prepare(&qry)?; + let mut stmt = self.conn.prepare(qry)?; let mut rows = stmt.query(args)?; match rows.next() { @@ -502,7 +502,7 @@ impl AtlasDB { .ok_or(db_error::Overflow)?; let qry = "SELECT attachment_index, is_available FROM attachment_instances WHERE attachment_index >= ?1 AND attachment_index < ?2 AND index_block_hash = ?3 ORDER BY attachment_index ASC"; let args = params![min, max, block_id,]; - let rows = query_rows::<(u32, u32), _>(&self.conn, &qry, args)?; + let rows = query_rows::<(u32, u32), _>(&self.conn, qry, args)?; let mut bool_vector = vec![true; AttachmentInstance::ATTACHMENTS_INV_PAGE_SIZE as usize]; for (attachment_index, is_available) in rows.into_iter() { diff --git a/stackslib/src/net/atlas/download.rs b/stackslib/src/net/atlas/download.rs index f877a0da3a..9f958f7d26 100644 --- a/stackslib/src/net/atlas/download.rs +++ b/stackslib/src/net/atlas/download.rs @@ -78,7 +78,7 @@ impl AttachmentsDownloader { /// Because AttachmentBatches are ordered first by their retry deadlines, it follows that if /// there are any ready AttachmentBatches, they'll be at the head of the queue. pub fn pop_next_ready_batch(&mut self) -> Option { - let next_is_ready = if let Some(ref next) = self.priority_queue.peek() { + let next_is_ready = if let Some(next) = self.priority_queue.peek() { next.retry_deadline < get_epoch_time_secs() } else { false @@ -305,10 +305,10 @@ impl AttachmentsDownloader { atlas_db, new_attachments, |atlas_db, attachment_instance| { - atlas_db.mark_attachment_instance_checked(&attachment_instance, true) + atlas_db.mark_attachment_instance_checked(attachment_instance, true) }, |atlas_db, attachment_instance| { - atlas_db.mark_attachment_instance_checked(&attachment_instance, false) + atlas_db.mark_attachment_instance_checked(attachment_instance, false) }, ) } @@ -331,7 +331,7 @@ impl AttachmentsDownloader { atlas_db, initial_batch, |atlas_db, attachment_instance| { - atlas_db.insert_initial_attachment_instance(&attachment_instance) + atlas_db.insert_initial_attachment_instance(attachment_instance) }, |_atlas_db, _attachment_instance| { // If attachment not found, don't insert attachment instance @@ -411,7 +411,7 @@ impl AttachmentsBatchStateContext { let missing_attachments = match self .attachments_batch .attachments_instances - .get(&contract_id) + .get(contract_id) { None => continue, Some(missing_attachments) => missing_attachments, @@ -1108,7 +1108,7 @@ impl Ord for AttachmentRequest { other.sources.len().cmp(&self.sources.len()).then_with(|| { let (_, report) = self.get_most_reliable_source(); let (_, other_report) = other.get_most_reliable_source(); - report.cmp(&other_report) + report.cmp(other_report) }) } } @@ -1219,7 +1219,7 @@ impl AttachmentsBatch { contract_id: &QualifiedContractIdentifier, ) -> Vec { let mut pages_indexes = HashSet::new(); - if let Some(missing_attachments) = self.attachments_instances.get(&contract_id) { + if let Some(missing_attachments) = self.attachments_instances.get(contract_id) { for (attachment_index, _) in missing_attachments.iter() { let page_index = attachment_index / AttachmentInstance::ATTACHMENTS_INV_PAGE_SIZE; pages_indexes.insert(page_index); diff --git a/stackslib/src/net/atlas/tests.rs b/stackslib/src/net/atlas/tests.rs index 8094c77799..8000db776b 100644 --- a/stackslib/src/net/atlas/tests.rs +++ b/stackslib/src/net/atlas/tests.rs @@ -71,7 +71,7 @@ fn new_attachments_batch_from( ) -> AttachmentsBatch { let mut attachments_batch = AttachmentsBatch::new(); for attachment_instance in attachment_instances.iter() { - attachments_batch.track_attachment(&attachment_instance); + attachments_batch.track_attachment(attachment_instance); } for _ in 0..retry_count { attachments_batch.bump_retry_count(); @@ -287,7 +287,7 @@ fn test_attachment_instance_parsing() { for value in values.iter() { assert!(AttachmentInstance::try_new_from_value( - &value, + value, &contract_id, index_block_hash.clone(), stacks_block_height, diff --git a/stackslib/src/net/chat.rs b/stackslib/src/net/chat.rs index 5d9c67227b..c9418c2b61 100644 --- a/stackslib/src/net/chat.rs +++ b/stackslib/src/net/chat.rs @@ -525,7 +525,7 @@ impl Neighbor { }; } - neighbor.handshake_update(conn, &handshake_data)?; + neighbor.handshake_update(conn, handshake_data)?; Ok((neighbor, present)) } @@ -636,7 +636,7 @@ impl ConversationP2P { } pub fn to_neighbor_address(&self) -> NeighborAddress { - let pubkh = if let Some(ref pubk) = self.ref_public_key() { + let pubkh = if let Some(pubk) = self.ref_public_key() { Hash160::from_node_public_key(pubk) } else { Hash160([0u8; 20]) @@ -650,7 +650,7 @@ impl ConversationP2P { } pub fn to_handshake_neighbor_address(&self) -> NeighborAddress { - let pubkh = if let Some(ref pubk) = self.ref_public_key() { + let pubkh = if let Some(pubk) = self.ref_public_key() { Hash160::from_node_public_key(pubk) } else { Hash160([0u8; 20]) @@ -1411,7 +1411,7 @@ impl ConversationP2P { StacksMessageType::Ping(ref data) => data, _ => panic!("Message is not a ping"), }; - let pong_data = PongData::from_ping(&ping_data); + let pong_data = PongData::from_ping(ping_data); Ok(Some(StacksMessage::from_chain_view( self.version, self.network_id, @@ -1562,7 +1562,7 @@ impl ConversationP2P { } let base_snapshot_or_nack = Self::validate_consensus_hash_reward_cycle_start( - &_local_peer, + _local_peer, sortdb, &get_blocks_inv.consensus_hash, )?; @@ -1617,7 +1617,7 @@ impl ConversationP2P { Err(db_error::NotFoundError) | Err(db_error::InvalidPoxSortition) => { debug!( "{:?}: Failed to load ancestor hashes from {}", - &_local_peer, &tip_snapshot.consensus_hash + _local_peer, &tip_snapshot.consensus_hash ); // make this into a NACK @@ -1722,7 +1722,7 @@ impl ConversationP2P { let _local_peer = network.get_local_peer(); let base_snapshot_or_nack = Self::validate_consensus_hash_reward_cycle_start( - &_local_peer, + _local_peer, sortdb, &get_nakamoto_inv.consensus_hash, )?; @@ -2518,7 +2518,7 @@ impl ConversationP2P { burnchain_view: &BurnchainView, ) -> Result { // validate message preamble - if let Err(e) = self.is_preamble_valid(&msg, burnchain_view) { + if let Err(e) = self.is_preamble_valid(msg, burnchain_view) { match e { net_error::InvalidMessage => { // Disconnect from this peer. If it thinks nothing's wrong, it'll @@ -2634,7 +2634,7 @@ impl ConversationP2P { // // Anything else will be nack'ed -- the peer will first need to handshake. let mut consume = false; - let solicited = self.connection.is_solicited(&msg); + let solicited = self.connection.is_solicited(msg); let reply_opt = match msg.payload { StacksMessageType::Handshake(_) => { monitoring::increment_msg_counter("p2p_unauthenticated_handshake".to_string()); @@ -3137,8 +3137,8 @@ mod test { PeerAddress::from_ipv4(127, 0, 0, 1), NETWORK_P2P_PORT, data_url.clone(), - &asn4_entries, - Some(&initial_neighbors), + asn4_entries, + Some(initial_neighbors), &vec![ QualifiedContractIdentifier::parse("SP000000000000000000002Q6VF78.sbtc").unwrap(), ], @@ -3165,7 +3165,7 @@ mod test { let first_burnchain_block_height = burnchain.first_block_height; let first_burnchain_block_hash = burnchain.first_block_hash; - let mut boot_data = ChainStateBootData::new(&burnchain, vec![], None); + let mut boot_data = ChainStateBootData::new(burnchain, vec![], None); let (chainstate, _) = StacksChainState::open_and_exec( false, @@ -3445,8 +3445,8 @@ mod test { &chain_view_2, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); peerdb_1 .update_local_peer( @@ -3474,8 +3474,8 @@ mod test { ) .unwrap(); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); assert_eq!( local_peer_1.stacker_dbs, @@ -3754,7 +3754,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -3763,7 +3763,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -3772,8 +3772,8 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -3934,7 +3934,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -3943,7 +3943,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -3952,8 +3952,8 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -4079,7 +4079,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -4088,7 +4088,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -4097,8 +4097,8 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -4223,7 +4223,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -4232,7 +4232,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -4241,8 +4241,8 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -4380,7 +4380,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -4389,7 +4389,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -4398,8 +4398,8 @@ mod test { &chain_view, ); - let mut local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let mut local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -4579,7 +4579,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -4588,7 +4588,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -4597,8 +4597,8 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -4723,7 +4723,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -4732,7 +4732,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -4741,8 +4741,8 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -4899,7 +4899,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -4908,7 +4908,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -4917,8 +4917,8 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -5126,7 +5126,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -5135,7 +5135,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -5144,8 +5144,8 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -5276,7 +5276,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -5285,7 +5285,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -5294,8 +5294,8 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -5447,7 +5447,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -5456,7 +5456,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -5465,8 +5465,8 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -5726,7 +5726,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -5735,7 +5735,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -5744,8 +5744,8 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -6006,7 +6006,7 @@ mod test { ); let mut net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain_1, 0x9abcdef0, &mut peerdb_1, @@ -6015,7 +6015,7 @@ mod test { &chain_view, ); let mut net_2 = db_setup( - &test_name_2, + test_name_2, &burnchain_2, 0x9abcdef0, &mut peerdb_2, @@ -6024,8 +6024,8 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); - let local_peer_2 = PeerDB::get_local_peer(&peerdb_2.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); + let local_peer_2 = PeerDB::get_local_peer(peerdb_2.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -6130,7 +6130,7 @@ mod test { ); let net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain, 0x9abcdef0, &mut peerdb_1, @@ -6139,7 +6139,7 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); // network ID check { @@ -6798,7 +6798,7 @@ mod test { ); let net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain, 0x9abcdef0, &mut peerdb_1, @@ -6807,7 +6807,7 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -6916,7 +6916,7 @@ mod test { ); let net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain, 0x9abcdef0, &mut peerdb_1, @@ -6925,7 +6925,7 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -6983,7 +6983,7 @@ mod test { ); let net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain, 0x9abcdef0, &mut peerdb_1, @@ -6992,7 +6992,7 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -7117,7 +7117,7 @@ mod test { ); let net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain, 0x9abcdef0, &mut peerdb_1, @@ -7126,7 +7126,7 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -7251,7 +7251,7 @@ mod test { ); let net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain, 0x9abcdef0, &mut peerdb_1, @@ -7260,7 +7260,7 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, @@ -7385,7 +7385,7 @@ mod test { ); let net_1 = db_setup( - &test_name_1, + test_name_1, &burnchain, 0x9abcdef0, &mut peerdb_1, @@ -7394,7 +7394,7 @@ mod test { &chain_view, ); - let local_peer_1 = PeerDB::get_local_peer(&peerdb_1.conn()).unwrap(); + let local_peer_1 = PeerDB::get_local_peer(peerdb_1.conn()).unwrap(); let mut convo_1 = ConversationP2P::new( 123, diff --git a/stackslib/src/net/connection.rs b/stackslib/src/net/connection.rs index 954b16ced8..9449d29b5c 100644 --- a/stackslib/src/net/connection.rs +++ b/stackslib/src/net/connection.rs @@ -2016,7 +2016,7 @@ mod test { // the combined ping buffers should be the serialized ping let mut combined_ping_buf = vec![]; combined_ping_buf.append(&mut half_ping); - combined_ping_buf.extend_from_slice(&write_buf_05.get_mut()); + combined_ping_buf.extend_from_slice(write_buf_05.get_mut()); assert_eq!(combined_ping_buf, serialized_ping); diff --git a/stackslib/src/net/db.rs b/stackslib/src/net/db.rs index 35471183f3..641f240c72 100644 --- a/stackslib/src/net/db.rs +++ b/stackslib/src/net/db.rs @@ -485,7 +485,7 @@ impl PeerDB { } for asn4 in asn4_entries { - PeerDB::asn4_insert(&tx, &asn4)?; + PeerDB::asn4_insert(&tx, asn4)?; } for neighbor in initial_neighbors { @@ -673,7 +673,7 @@ impl PeerDB { if create_flag { // instantiate! match initial_neighbors { - Some(ref neighbors) => { + Some(neighbors) => { db.instantiate( network_id, parent_network_id, @@ -823,8 +823,8 @@ impl PeerDB { /// Read the local peer record pub fn get_local_peer(conn: &DBConn) -> Result { - let qry = "SELECT * FROM local_peer LIMIT 1".to_string(); - let rows = query_rows::(conn, &qry, NO_PARAMS)?; + let qry = "SELECT * FROM local_peer LIMIT 1"; + let rows = query_rows::(conn, qry, NO_PARAMS)?; match rows.len() { 1 => Ok(rows[0].clone()), @@ -979,7 +979,7 @@ impl PeerDB { ) -> Result { let qry = "SELECT 1 FROM frontier WHERE network_id = ?1 AND addrbytes = ?2 AND port = ?3"; let args = params![network_id, peer_addr.to_bin(), peer_port]; - Ok(query_row::(conn, &qry, args)? + Ok(query_row::(conn, qry, args)? .map(|x| x == 1) .unwrap_or(false)) } @@ -1006,14 +1006,14 @@ impl PeerDB { let args = params![network_id, slot]; // N.B. we don't use Self::query_peer() here because `slot` is the primary key - query_row::(conn, &qry, args) + query_row::(conn, qry, args) } /// Is there any peer at a particular slot? pub fn has_peer_at(conn: &DBConn, network_id: u32, slot: u32) -> Result { let qry = "SELECT 1 FROM frontier WHERE network_id = ?1 AND slot = ?2"; let args = params![network_id, slot]; - Ok(query_row::(conn, &qry, args)? + Ok(query_row::(conn, qry, args)? .map(|x| x == 1) .unwrap_or(false)) } @@ -1036,7 +1036,7 @@ impl PeerDB { return Ok(false); } None => { - if PeerDB::is_address_denied(conn, &peer_addr)? { + if PeerDB::is_address_denied(conn, peer_addr)? { return Ok(true); } return Ok(false); @@ -1703,7 +1703,7 @@ impl PeerDB { u64_to_sql(now_secs)?, network_epoch, ]; - let mut allow_rows = Self::query_peers(conn, &allow_qry, allow_args)?; + let mut allow_rows = Self::query_peers(conn, allow_qry, allow_args)?; if allow_rows.len() >= (count as usize) { // return a random subset @@ -1807,7 +1807,7 @@ impl PeerDB { let qry = "SELECT * FROM asn4 WHERE prefix = (?1 & ~((1 << (32 - mask)) - 1)) ORDER BY prefix DESC LIMIT 1"; let args = params![addr_u32]; - let rows = query_rows::(conn, &qry, args)?; + let rows = query_rows::(conn, qry, args)?; match rows.len() { 0 => Ok(None), _ => Ok(Some(rows[0].asn)), @@ -1830,20 +1830,20 @@ impl PeerDB { pub fn asn_count(conn: &DBConn, asn: u32) -> Result { let qry = "SELECT COUNT(*) FROM frontier WHERE asn = ?1"; let args = params![asn]; - let count = query_count(conn, &qry, args)?; + let count = query_count(conn, qry, args)?; Ok(count as u64) } #[cfg_attr(test, mutants::skip)] pub fn get_frontier_size(conn: &DBConn) -> Result { let qry = "SELECT COUNT(*) FROM frontier"; - let count = query_count(conn, &qry, NO_PARAMS)?; + let count = query_count(conn, qry, NO_PARAMS)?; Ok(count as u64) } pub fn get_all_peers(conn: &DBConn) -> Result, db_error> { let qry = "SELECT * FROM frontier ORDER BY addrbytes ASC, port ASC"; - let rows = Self::query_peers(conn, &qry, NO_PARAMS)?; + let rows = Self::query_peers(conn, qry, NO_PARAMS)?; Ok(rows) } diff --git a/stackslib/src/net/dns.rs b/stackslib/src/net/dns.rs index b610f2a156..ddc37ff516 100644 --- a/stackslib/src/net/dns.rs +++ b/stackslib/src/net/dns.rs @@ -130,7 +130,7 @@ impl DNSResolver { } pub fn resolve(&self, req: DNSRequest) -> DNSResponse { - if let Some(ref addrs) = self.hardcoded.get(&(req.host.clone(), req.port)) { + if let Some(addrs) = self.hardcoded.get(&(req.host.clone(), req.port)) { return DNSResponse::new(req, Ok(addrs.to_vec())); } diff --git a/stackslib/src/net/download/epoch2x.rs b/stackslib/src/net/download/epoch2x.rs index d58321118e..4494399bed 100644 --- a/stackslib/src/net/download/epoch2x.rs +++ b/stackslib/src/net/download/epoch2x.rs @@ -455,7 +455,7 @@ impl BlockDownloader { self.requested_blocks.remove(&block_key.index_block_hash); let is_always_allowed = match PeerDB::get_peer( - &network.peerdb.conn(), + network.peerdb.conn(), block_key.neighbor.network_id, &block_key.neighbor.addrbytes, block_key.neighbor.port, @@ -582,7 +582,7 @@ impl BlockDownloader { .remove(&block_key.index_block_hash); let is_always_allowed = match PeerDB::get_peer( - &network.peerdb.conn(), + network.peerdb.conn(), block_key.neighbor.network_id, &block_key.neighbor.addrbytes, block_key.neighbor.port, @@ -1058,8 +1058,8 @@ impl PeerNetwork { /// Get the data URL for a neighbor pub fn get_data_url(&self, neighbor_key: &NeighborKey) -> Option { match self.events.get(neighbor_key) { - Some(ref event_id) => match self.peers.get(event_id) { - Some(ref convo) => { + Some(event_id) => match self.peers.get(event_id) { + Some(convo) => { if convo.data_url.is_empty() { None } else { @@ -1107,9 +1107,9 @@ impl PeerNetwork { // if the child is processed, then we have all the microblocks we need. // this is the overwhelmingly likely case. if let Ok(Some(true)) = StacksChainState::get_staging_block_status( - &chainstate.db(), - &child_consensus_hash, - &child_block_hash, + chainstate.db(), + child_consensus_hash, + child_block_hash, ) { test_debug!( "{:?}: Already processed block {}/{}, so must have stream between it and {}/{}", @@ -1167,7 +1167,7 @@ impl PeerNetwork { // try and load the connecting stream. If we have it, then we're good to go. // SLOW match StacksChainState::load_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), parent_consensus_hash, parent_block_hash, &child_header.parent_microblock, @@ -1337,7 +1337,7 @@ impl PeerNetwork { // does this anchor block _confirm_ a microblock stream that we don't know about? let parent_header_opt = { let child_block_info = match StacksChainState::load_staging_block_info( - &chainstate.db(), + chainstate.db(), &index_block_hash, )? { Some(hdr) => hdr, @@ -1444,7 +1444,7 @@ impl PeerNetwork { neighbors.len() ); - (&mut neighbors[..]).shuffle(&mut thread_rng()); + neighbors[..].shuffle(&mut thread_rng()); let mut requests = VecDeque::new(); for nk in neighbors.into_iter() { @@ -1731,7 +1731,7 @@ impl PeerNetwork { &requests.front().as_ref().unwrap().consensus_hash, &requests.front().as_ref().unwrap().anchor_block_hash, &index_block_hash, - requests.iter().map(|ref r| &r.data_url).collect::>() + requests.iter().map(|r| &r.data_url).collect::>() ); downloader.blocks_to_try.insert(height, requests); @@ -1795,7 +1795,7 @@ impl PeerNetwork { debug!("{:?}: will request microblock stream confirmed by sortition {}: {}/{} ({}) from {:?}", &network.local_peer, mblock_height, &requests.front().as_ref().unwrap().consensus_hash, &requests.front().as_ref().unwrap().anchor_block_hash, &index_block_hash, - requests.iter().map(|ref r| &r.data_url).collect::>() + requests.iter().map(|r| &r.data_url).collect::>() ); downloader diff --git a/stackslib/src/net/download/nakamoto/download_state_machine.rs b/stackslib/src/net/download/nakamoto/download_state_machine.rs index 4c509ed5c1..84586540a1 100644 --- a/stackslib/src/net/download/nakamoto/download_state_machine.rs +++ b/stackslib/src/net/download/nakamoto/download_state_machine.rs @@ -182,7 +182,7 @@ impl NakamotoDownloadStateMachine { StacksBlockId(cursor.winning_stacks_block_hash.0), cursor.block_height, )); - cursor = SortitionDB::get_block_snapshot(&ih, &cursor.parent_sortition_id)? + cursor = SortitionDB::get_block_snapshot(ih, &cursor.parent_sortition_id)? .ok_or(DBError::NotFoundError)?; } wanted_tenures.reverse(); @@ -1179,8 +1179,8 @@ impl NakamotoDownloadStateMachine { finished.push(naddr.clone()); continue; } - if neighbor_rpc.has_inflight(&naddr) { - debug!("Peer {} has an inflight request", naddr); + if neighbor_rpc.has_inflight(naddr) { + debug!("Peer {naddr} has an inflight request"); continue; } @@ -1565,7 +1565,7 @@ impl NakamotoDownloadStateMachine { ) -> Result>, NetError> { self.nakamoto_tip = network.stacks_tip.block_id(); debug!("Downloader: Nakamoto tip is {:?}", &self.nakamoto_tip); - self.update_wanted_tenures(&network, sortdb)?; + self.update_wanted_tenures(network, sortdb)?; self.update_processed_tenures(chainstate)?; let new_blocks = self.run_downloads(burnchain_height, network, sortdb, chainstate, ibd); self.last_sort_tip = Some(network.burnchain_tip.clone()); diff --git a/stackslib/src/net/download/nakamoto/tenure_downloader_set.rs b/stackslib/src/net/download/nakamoto/tenure_downloader_set.rs index e5b796181a..f8054828b6 100644 --- a/stackslib/src/net/download/nakamoto/tenure_downloader_set.rs +++ b/stackslib/src/net/download/nakamoto/tenure_downloader_set.rs @@ -434,7 +434,7 @@ impl NakamotoTenureDownloaderSet { if self.try_resume_peer(naddr.clone()) { continue; }; - if self.has_downloader_for_tenure(&ch) { + if self.has_downloader_for_tenure(ch) { schedule.pop_front(); continue; } @@ -491,11 +491,11 @@ impl NakamotoTenureDownloaderSet { continue; }; - let attempt_count = *self.attempted_tenures.get(&ch).unwrap_or(&0); + let attempt_count = *self.attempted_tenures.get(ch).unwrap_or(&0); self.attempted_tenures .insert(ch.clone(), attempt_count.saturating_add(1)); - let attempt_failed_count = *self.attempt_failed_tenures.get(&ch).unwrap_or(&0); + let attempt_failed_count = *self.attempt_failed_tenures.get(ch).unwrap_or(&0); info!("Download tenure {ch}"; "peer" => %naddr, @@ -551,7 +551,7 @@ impl NakamotoTenureDownloaderSet { // send requests for (naddr, index) in self.peers.iter() { - if neighbor_rpc.has_inflight(&naddr) { + if neighbor_rpc.has_inflight(naddr) { debug!("Peer {naddr} has an inflight request"); continue; } @@ -608,7 +608,7 @@ impl NakamotoTenureDownloaderSet { for naddr in addrs.iter() { if neighbor_rpc.is_dead_or_broken(network, naddr) { debug!("Remove dead/broken downloader for {naddr}"); - self.clear_downloader(&naddr); + self.clear_downloader(naddr); } } for done_naddr in finished.drain(..) { diff --git a/stackslib/src/net/http/mod.rs b/stackslib/src/net/http/mod.rs index ca7a97c5be..fb6d96c0e0 100644 --- a/stackslib/src/net/http/mod.rs +++ b/stackslib/src/net/http/mod.rs @@ -195,7 +195,7 @@ pub fn write_headers( fd: &mut W, headers: &BTreeMap, ) -> Result<(), CodecError> { - for (ref key, ref value) in headers.iter() { + for (key, value) in headers.iter() { fd.write_all(key.as_str().as_bytes()) .map_err(CodecError::WriteError)?; fd.write_all(": ".as_bytes()) diff --git a/stackslib/src/net/http/request.rs b/stackslib/src/net/http/request.rs index 6535f4a14a..192de1fa4f 100644 --- a/stackslib/src/net/http/request.rs +++ b/stackslib/src/net/http/request.rs @@ -655,7 +655,7 @@ impl HttpRequestContents { let buf = "".to_string(); let mut serializer = form_urlencoded::Serializer::new(buf); for (k, v) in self.query_args.iter() { - serializer.append_pair(&k, &v); + serializer.append_pair(k, v); } serializer.finish() } diff --git a/stackslib/src/net/http/response.rs b/stackslib/src/net/http/response.rs index 3ebed7e9d2..97a828e387 100644 --- a/stackslib/src/net/http/response.rs +++ b/stackslib/src/net/http/response.rs @@ -668,7 +668,7 @@ impl HttpResponsePayload { match self { Self::Empty => Ok(()), Self::JSON(value) => serde_json::to_writer(fd, &value).map_err(Error::JsonError), - Self::Bytes(value) => fd.write_all(&value).map_err(Error::WriteError), + Self::Bytes(value) => fd.write_all(value).map_err(Error::WriteError), Self::Text(value) => fd.write_all(value.as_bytes()).map_err(Error::WriteError), } } diff --git a/stackslib/src/net/httpcore.rs b/stackslib/src/net/httpcore.rs index b7f9d15602..d3a521123e 100644 --- a/stackslib/src/net/httpcore.rs +++ b/stackslib/src/net/httpcore.rs @@ -189,7 +189,7 @@ pub mod request { contract_key: &str, ) -> Result { let address = if let Some(address_str) = captures.name(address_key) { - if let Some(addr) = StacksAddress::from_string(&address_str.as_str()) { + if let Some(addr) = StacksAddress::from_string(address_str.as_str()) { addr } else { return Err(HttpError::Http( @@ -383,7 +383,7 @@ pub trait RPCRequestHandler: HttpRequest + HttpResponse + RPCRequestHandlerClone ) -> Result { SortitionDB::get_canonical_burn_chain_tip(sortdb.conn()).map_err(|e| { StacksHttpResponse::new_error( - &preamble, + preamble, &HttpServerError::new(format!("Failed to load canonical burnchain tip: {:?}", &e)), ) }) @@ -398,7 +398,7 @@ pub trait RPCRequestHandler: HttpRequest + HttpResponse + RPCRequestHandlerClone ) -> Result { SortitionDB::get_stacks_epoch(sortdb.conn(), block_height) .map_err(|e| { - StacksHttpResponse::new_error(&preamble, &HttpServerError::new(format!("Could not load Stacks epoch for canonical burn height: {:?}", &e))) + StacksHttpResponse::new_error(preamble, &HttpServerError::new(format!("Could not load Stacks epoch for canonical burn height: {:?}", &e))) })? .ok_or_else(|| { let msg = format!( @@ -406,7 +406,7 @@ pub trait RPCRequestHandler: HttpRequest + HttpResponse + RPCRequestHandlerClone block_height ); warn!("{}", &msg); - StacksHttpResponse::new_error(&preamble, &HttpServerError::new(msg)) + StacksHttpResponse::new_error(preamble, &HttpServerError::new(msg)) }) } @@ -421,14 +421,14 @@ pub trait RPCRequestHandler: HttpRequest + HttpResponse + RPCRequestHandlerClone .map_err(|e| { let msg = format!("Failed to load stacks chain tip header: {:?}", &e); warn!("{}", &msg); - StacksHttpResponse::new_error(&preamble, &HttpServerError::new(msg)) + StacksHttpResponse::new_error(preamble, &HttpServerError::new(msg)) })? .ok_or_else(|| { let msg = "No stacks tip exists yet. Perhaps no blocks have been processed by this node" .to_string(); warn!("{}", &msg); - StacksHttpResponse::new_error(&preamble, &HttpNotFound::new(msg)) + StacksHttpResponse::new_error(preamble, &HttpNotFound::new(msg)) }) } } @@ -1332,7 +1332,7 @@ impl StacksHttp { /// This can only return a finite set of identifiers, which makes it safer to use for Prometheus metrics /// For details see https://github.com/stacks-network/stacks-core/issues/4574 pub fn metrics_identifier(&self, req: &mut StacksHttpRequest) -> &str { - let Ok((decoded_path, _)) = decode_request_path(&req.request_path()) else { + let Ok((decoded_path, _)) = decode_request_path(req.request_path()) else { return ""; }; @@ -1385,7 +1385,7 @@ impl StacksHttp { )), } } else { - let (message, _) = http.read_payload(&preamble, &mut message_bytes)?; + let (message, _) = http.read_payload(&preamble, message_bytes)?; Ok(message) } } diff --git a/stackslib/src/net/inv/epoch2x.rs b/stackslib/src/net/inv/epoch2x.rs index 782ce8a876..bbc8312f85 100644 --- a/stackslib/src/net/inv/epoch2x.rs +++ b/stackslib/src/net/inv/epoch2x.rs @@ -693,7 +693,7 @@ impl NeighborBlockStats { self.status = NeighborBlockStats::diagnose_nack( &self.nk, nack_data, - &chain_view, + chain_view, preamble_burn_block_height, preamble_burn_stable_block_height, preamble_burn_block_hash, @@ -792,7 +792,7 @@ impl NeighborBlockStats { StacksMessageType::Nack(nack_data) => { debug!("Remote neighbor {:?} nack'ed our GetPoxInv at reward cycle {}: NACK code {}", &self.nk, self.target_pox_reward_cycle, nack_data.error_code); let is_bootstrap_peer = PeerDB::is_initial_peer( - &network.peerdb.conn(), + network.peerdb.conn(), self.nk.network_id, &self.nk.addrbytes, self.nk.port, @@ -892,7 +892,7 @@ impl NeighborBlockStats { StacksMessageType::Nack(nack_data) => { debug!("Remote neighbor {:?} nack'ed our GetBlocksInv at reward cycle {}: NACK code {}", &self.nk, self.target_block_reward_cycle, nack_data.error_code); let is_bootstrap_peer = PeerDB::is_initial_peer( - &network.peerdb.conn(), + network.peerdb.conn(), self.nk.network_id, &self.nk.addrbytes, self.nk.port, @@ -1024,7 +1024,7 @@ impl InvState { if let Some(stats) = self.block_stats.get_mut(peer) { debug!("Already tracking inventories of peer {:?}", &peer); stats.reset_pox_scan(0); - stats.is_bootstrap_peer = bootstrap_peers.contains(&peer); + stats.is_bootstrap_peer = bootstrap_peers.contains(peer); } else if self.block_stats.len() < max_neighbors { debug!("Will track inventories of new peer {:?}", &peer); self.block_stats.insert( @@ -1032,7 +1032,7 @@ impl InvState { NeighborBlockStats::new( peer.clone(), self.first_block_height, - bootstrap_peers.contains(&peer), + bootstrap_peers.contains(peer), ), ); added += 1; @@ -1051,7 +1051,7 @@ impl InvState { // if we're still connected to these peers, then keep them pinned self.pinned.clear(); for peer in peers.iter() { - if let Some(event_id) = network.get_event_id(&peer) { + if let Some(event_id) = network.get_event_id(peer) { self.pinned.insert(event_id); } } @@ -1175,7 +1175,7 @@ impl InvState { } pub fn del_peer(&mut self, nk: &NeighborKey) { - self.block_stats.remove(&nk); + self.block_stats.remove(nk); } /// Is there any downloader-actionable data available? @@ -1211,7 +1211,7 @@ impl InvState { consensus_hash: &ConsensusHash, microblocks: bool, ) -> Result, net_error> { - let sn = match SortitionDB::get_block_snapshot_consensus(sortdb.conn(), &consensus_hash)? { + let sn = match SortitionDB::get_block_snapshot_consensus(sortdb.conn(), consensus_hash)? { Some(sn) => { if !sn.pox_valid { debug!( @@ -1845,7 +1845,7 @@ impl PeerNetwork { }; let payload = StacksMessageType::GetPoxInv(getpoxinv); - let event_id_opt = self.get_event_id(&nk); + let event_id_opt = self.get_event_id(nk); let message = self.sign_for_neighbor(nk, payload)?; let request = self @@ -2277,7 +2277,7 @@ impl PeerNetwork { let mut ibd_diverged_height: Option = None; let bootstrap_peers: HashSet<_> = - PeerDB::get_bootstrap_peers(&network.peerdb.conn(), network.local_peer.network_id) + PeerDB::get_bootstrap_peers(network.peerdb.conn(), network.local_peer.network_id) .unwrap_or(vec![]) .into_iter() .map(|neighbor| neighbor.addr) @@ -2343,7 +2343,7 @@ impl PeerNetwork { // if this node diverged from us, and we're in ibd, and this is an // always-allowed peer, then start scanning here (or lower) if ibd - && bootstrap_peers.contains(&nk) + && bootstrap_peers.contains(nk) && stats.status == NodeStatus::Diverged { inv_state.last_change_at = get_epoch_time_secs(); @@ -2719,7 +2719,7 @@ impl PeerNetwork { // only count an inv_sync as passing if there's an always-allowed node // in our inv state let always_allowed: HashSet<_> = - PeerDB::get_always_allowed_peers(&self.peerdb.conn(), self.local_peer.network_id) + PeerDB::get_always_allowed_peers(self.peerdb.conn(), self.local_peer.network_id) .unwrap_or(vec![]) .into_iter() .map(|neighbor| neighbor.addr) @@ -2742,7 +2742,7 @@ impl PeerNetwork { }; for (nk, stats) in inv_state.block_stats.iter() { - if self.is_bound(&nk) { + if self.is_bound(nk) { // this is the same address we're bound to continue; } @@ -2750,7 +2750,7 @@ impl PeerNetwork { // this is a peer at our address continue; } - if !always_allowed.contains(&nk) { + if !always_allowed.contains(nk) { // this peer isn't in the always-allowed set continue; } diff --git a/stackslib/src/net/inv/nakamoto.rs b/stackslib/src/net/inv/nakamoto.rs index e832b70184..5ca3c10127 100644 --- a/stackslib/src/net/inv/nakamoto.rs +++ b/stackslib/src/net/inv/nakamoto.rs @@ -294,7 +294,7 @@ impl InvGenerator { // we have not loaded the tenure info for this tip, or it was cleared via cache // maintenance. Either way, got get it from disk. let loaded_info_opt = - InvTenureInfo::load(chainstate, &tip_block_id, &tenure_id_consensus_hash)?; + InvTenureInfo::load(chainstate, &tip_block_id, tenure_id_consensus_hash)?; tenure_infos.insert(tenure_id_consensus_hash.clone(), loaded_info_opt.clone()); self.cache_misses = self.cache_misses.saturating_add(1); @@ -873,7 +873,7 @@ impl NakamotoInvStateMachine { if ibd { // in IBD, only connect to initial peers let is_initial = PeerDB::is_initial_peer( - &network.peerdb_conn(), + network.peerdb_conn(), convo.peer_network_id, &convo.peer_addrbytes, convo.peer_port, diff --git a/stackslib/src/net/mempool/mod.rs b/stackslib/src/net/mempool/mod.rs index 27253180d4..54c3210360 100644 --- a/stackslib/src/net/mempool/mod.rs +++ b/stackslib/src/net/mempool/mod.rs @@ -499,7 +499,7 @@ impl MempoolSync { // 3. ask for the remote peer's mempool's novel txs // address must be resolvable if !network.get_connection_opts().private_neighbors - && PeerAddress::from_socketaddr(&addr).is_in_private_range() + && PeerAddress::from_socketaddr(addr).is_in_private_range() { debug!( "{:?}: Mempool sync skips {}, which has private IP", diff --git a/stackslib/src/net/mod.rs b/stackslib/src/net/mod.rs index 415f74c739..4cc943300c 100644 --- a/stackslib/src/net/mod.rs +++ b/stackslib/src/net/mod.rs @@ -1575,7 +1575,7 @@ impl NetworkResult { let mut blocks: HashSet<_> = self .blocks .iter() - .map(|(ch, blk, _)| StacksBlockId::new(&ch, &blk.block_hash())) + .map(|(ch, blk, _)| StacksBlockId::new(ch, &blk.block_hash())) .collect(); let pushed_blocks: HashSet<_> = self @@ -1778,7 +1778,7 @@ impl NetworkResult { // only retain blocks not found in `newer` self.blocks.retain(|(ch, blk, _)| { - let block_id = StacksBlockId::new(&ch, &blk.block_hash()); + let block_id = StacksBlockId::new(ch, &blk.block_hash()); let retain = !newer_blocks.contains(&block_id); if !retain { debug!("Drop duplicate downloaded block {}", &block_id); @@ -2810,7 +2810,7 @@ pub mod test { } pub fn make_test_path(config: &TestPeerConfig) -> String { - let test_path = TestPeer::test_path(&config); + let test_path = TestPeer::test_path(config); match fs::metadata(&test_path) { Ok(_) => { fs::remove_dir_all(&test_path).unwrap(); @@ -2835,7 +2835,7 @@ pub mod test { let initial_peers = PeerDB::find_stacker_db_replicas( peerdb.conn(), local_peer.network_id, - &contract_id, + contract_id, 0, 10000000, ) @@ -2848,7 +2848,7 @@ pub mod test { let stacker_dbs = StackerDBs::connect(&stackerdb_path, true).unwrap(); let stacker_db_sync = StackerDBSync::new( contract_id.clone(), - &db_config, + db_config, PeerNetworkComms::new(), stacker_dbs, ); @@ -3115,7 +3115,7 @@ pub mod test { let local_peer = PeerDB::get_local_peer(peerdb.conn()).unwrap(); let burnchain_view = { - let chaintip = SortitionDB::get_canonical_burn_chain_tip(&sortdb.conn()).unwrap(); + let chaintip = SortitionDB::get_canonical_burn_chain_tip(sortdb.conn()).unwrap(); SortitionDB::get_burnchain_view(&sortdb.index_conn(), &config.burnchain, &chaintip) .unwrap() }; @@ -3664,7 +3664,7 @@ pub mod test { indexer.raw_store_header(block_header.clone()).unwrap(); burnchain_db .raw_store_burnchain_block( - &burnchain, + burnchain, &indexer, block_header.clone(), blockstack_ops, @@ -3672,7 +3672,7 @@ pub mod test { .unwrap(); Burnchain::process_affirmation_maps( - &burnchain, + burnchain, &mut burnchain_db, &indexer, block_header.block_height, @@ -3707,8 +3707,8 @@ pub mod test { ) { let sortdb = self.sortdb.take().unwrap(); let (block_height, block_hash, epoch_id) = { - let tip = SortitionDB::get_canonical_burn_chain_tip(&sortdb.conn()).unwrap(); - let epoch_id = SortitionDB::get_stacks_epoch(&sortdb.conn(), tip.block_height + 1) + let tip = SortitionDB::get_canonical_burn_chain_tip(sortdb.conn()).unwrap(); + let epoch_id = SortitionDB::get_stacks_epoch(sortdb.conn(), tip.block_height + 1) .unwrap() .unwrap() .epoch_id; @@ -3769,7 +3769,7 @@ pub mod test { &pox_id ); - let tip = SortitionDB::get_canonical_burn_chain_tip(&sortdb.conn()).unwrap(); + let tip = SortitionDB::get_canonical_burn_chain_tip(sortdb.conn()).unwrap(); self.sortdb = Some(sortdb); ( block_height, @@ -4184,7 +4184,7 @@ pub mod test { let microblock_pubkeyhash = Hash160::from_node_public_key(&StacksPublicKey::from_private(µblock_privkey)); let tip = - SortitionDB::get_canonical_burn_chain_tip(&self.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(self.sortdb.as_ref().unwrap().conn()) .unwrap(); let burnchain = self.config.burnchain.clone(); @@ -4429,7 +4429,7 @@ pub mod test { &last_key, parent_block_opt.as_ref(), 1000, - |mut builder, ref mut miner, ref sortdb| { + |mut builder, ref mut miner, sortdb| { let (mut miner_chainstate, _) = StacksChainState::open(false, network_id, &chainstate_path, None).unwrap(); let sort_iconn = sortdb.index_handle_at_tip(); @@ -4479,7 +4479,7 @@ pub mod test { } pub fn get_public_key(&self) -> Secp256k1PublicKey { - let local_peer = PeerDB::get_local_peer(&self.network.peerdb.conn()).unwrap(); + let local_peer = PeerDB::get_local_peer(self.network.peerdb.conn()).unwrap(); Secp256k1PublicKey::from_private(&local_peer.private_key) } @@ -4555,7 +4555,7 @@ pub mod test { pub fn get_burn_block_height(&self) -> u64 { SortitionDB::get_canonical_burn_chain_tip( - &self.sortdb.as_ref().expect("Failed to get sortdb").conn(), + self.sortdb.as_ref().expect("Failed to get sortdb").conn(), ) .expect("Failed to get canonical burn chain tip") .block_height @@ -4657,7 +4657,7 @@ pub mod test { .unwrap() .into_iter() .filter(|(sort_id, rc_info)| { - let sn = SortitionDB::get_block_snapshot(sortdb.conn(), &sort_id) + let sn = SortitionDB::get_block_snapshot(sortdb.conn(), sort_id) .unwrap() .unwrap(); let rc_sn = sortdb @@ -4695,7 +4695,7 @@ pub mod test { .unwrap() .into_iter() .filter(|(sort_id, rc_info)| { - let sn = SortitionDB::get_block_snapshot(sortdb.conn(), &sort_id) + let sn = SortitionDB::get_block_snapshot(sortdb.conn(), sort_id) .unwrap() .unwrap(); sn.block_height < epoch_3.start_height diff --git a/stackslib/src/net/neighbors/comms.rs b/stackslib/src/net/neighbors/comms.rs index ed0e03f5c6..7bd973c024 100644 --- a/stackslib/src/net/neighbors/comms.rs +++ b/stackslib/src/net/neighbors/comms.rs @@ -232,7 +232,7 @@ pub trait NeighborComms { neighbor_pubkh: &Hash160, ) -> Result, net_error> { let nk = neighbor_addr.to_neighbor_key(network); - match network.can_register_peer_with_pubkey(&nk, true, &neighbor_pubkh) { + match network.can_register_peer_with_pubkey(&nk, true, neighbor_pubkh) { Ok(_) => self.neighbor_connect_and_handshake(network, &nk), Err(net_error::AlreadyConnected(event_id, handshake_nk)) => { // already connected, but on a possibly-different address. @@ -242,7 +242,7 @@ pub trait NeighborComms { if let Some(convo) = network.get_p2p_convo(event_id) { if !convo.is_outbound() { test_debug!("{:?}: Already connected to {:?} on inbound event {} (address {:?}). Try to establish outbound connection to {:?} {:?}.", - network.get_local_peer(), &nk, &event_id, &handshake_nk, &neighbor_pubkh, &nk); + network.get_local_peer(), &nk, &event_id, &handshake_nk, neighbor_pubkh, &nk); self.remove_connecting(network, &nk); return self diff --git a/stackslib/src/net/neighbors/db.rs b/stackslib/src/net/neighbors/db.rs index ebf83af962..f448d545a6 100644 --- a/stackslib/src/net/neighbors/db.rs +++ b/stackslib/src/net/neighbors/db.rs @@ -186,7 +186,7 @@ pub trait NeighborWalkDB { let block_height = network.get_chain_view().burn_block_height; let cur_epoch = network.get_current_epoch(); let neighbors = PeerDB::get_random_walk_neighbors( - &network.peerdb_conn(), + network.peerdb_conn(), network.get_local_peer().network_id, cur_epoch.network_epoch, min_age, @@ -202,7 +202,7 @@ pub trait NeighborWalkDB { min_age ); let seed_nodes = PeerDB::get_bootstrap_peers( - &network.peerdb_conn(), + network.peerdb_conn(), network.get_local_peer().network_id, )?; if seed_nodes.is_empty() { @@ -436,10 +436,7 @@ impl NeighborWalkDB for PeerDBNeighborWalk { ) -> Result, net_error> { let allowed_peers = if ibd { // only get bootstrap peers (will be randomized) - PeerDB::get_bootstrap_peers( - &network.peerdb_conn(), - network.get_local_peer().network_id, - )? + PeerDB::get_bootstrap_peers(network.peerdb_conn(), network.get_local_peer().network_id)? } else { // can be any peer marked 'always-allowed' (will be randomized) PeerDB::get_always_allowed_peers( @@ -456,12 +453,7 @@ impl NeighborWalkDB for PeerDBNeighborWalk { nk: &NeighborKey, ) -> Result<(), net_error> { // don't proceed if denied - if PeerDB::is_peer_denied( - &network.peerdb_conn(), - nk.network_id, - &nk.addrbytes, - nk.port, - )? { + if PeerDB::is_peer_denied(network.peerdb_conn(), nk.network_id, &nk.addrbytes, nk.port)? { debug!( "{:?}: neighbor {:?} is denied", network.get_local_peer(), @@ -504,7 +496,7 @@ impl NeighborWalkDB for PeerDBNeighborWalk { local_peer_str, &replaced.addr, &replacement.addr ); - PeerDB::insert_or_replace_peer(&tx, &replacement, *slot)?; + PeerDB::insert_or_replace_peer(&tx, replacement, *slot)?; result.add_replaced(replaced.addr.clone()); } } @@ -519,7 +511,7 @@ impl NeighborWalkDB for PeerDBNeighborWalk { data: &HandshakeAcceptData, ) -> Result { Neighbor::load_and_update( - &network.peerdb_conn(), + network.peerdb_conn(), preamble.peer_version, preamble.network_id, &data.handshake, diff --git a/stackslib/src/net/neighbors/neighbor.rs b/stackslib/src/net/neighbors/neighbor.rs index 64a033ce9c..dbefeca7c0 100644 --- a/stackslib/src/net/neighbors/neighbor.rs +++ b/stackslib/src/net/neighbors/neighbor.rs @@ -55,9 +55,9 @@ impl Neighbor { stacker_dbs: Option<&[QualifiedContractIdentifier]>, ) -> Result<(), net_error> { self.last_contact_time = get_epoch_time_secs(); - PeerDB::update_peer(tx, &self).map_err(net_error::DBError)?; + PeerDB::update_peer(tx, self).map_err(net_error::DBError)?; if let Some(stacker_dbs) = stacker_dbs { - PeerDB::update_peer_stacker_dbs(tx, &self, stacker_dbs).map_err(net_error::DBError)?; + PeerDB::update_peer_stacker_dbs(tx, self, stacker_dbs).map_err(net_error::DBError)?; } Ok(()) } @@ -72,7 +72,7 @@ impl Neighbor { stacker_dbs: Option<&[QualifiedContractIdentifier]>, ) -> Result { self.last_contact_time = get_epoch_time_secs(); - PeerDB::try_insert_peer(tx, &self, stacker_dbs.unwrap_or(&[])).map_err(net_error::DBError) + PeerDB::try_insert_peer(tx, self, stacker_dbs.unwrap_or(&[])).map_err(net_error::DBError) } /// Attempt to load a neighbor from our peer DB, given its NeighborAddress reported by another diff --git a/stackslib/src/net/neighbors/walk.rs b/stackslib/src/net/neighbors/walk.rs index f16483b361..da48ad4ebd 100644 --- a/stackslib/src/net/neighbors/walk.rs +++ b/stackslib/src/net/neighbors/walk.rs @@ -275,7 +275,7 @@ impl NeighborWalk { &first_neighbor, true, network.get_walk_pingbacks().clone(), - &network.get_connection_opts(), + network.get_connection_opts(), ); debug!( @@ -326,7 +326,7 @@ impl NeighborWalk { &allowed_peer, true, network.get_walk_pingbacks().clone(), - &network.get_connection_opts(), + network.get_connection_opts(), ); debug!( @@ -397,7 +397,7 @@ impl NeighborWalk { &empty_neighbor, false, network.get_walk_pingbacks().clone(), - &network.get_connection_opts(), + network.get_connection_opts(), ); debug!( @@ -454,7 +454,7 @@ impl NeighborWalk { let nk = NeighborKey::from_neighbor_address( pingback_peer.peer_version, pingback_peer.network_id, - &addr, + addr, ); // don't proceed if denied @@ -469,7 +469,7 @@ impl NeighborWalk { &empty_neighbor, false, network.get_walk_pingbacks().clone(), - &network.get_connection_opts(), + network.get_connection_opts(), ); debug!( @@ -909,7 +909,7 @@ impl NeighborWalk { debug!( "{:?}: will handshake with {} neighbors out of {} reported by {:?}", network.get_local_peer(), - &network.get_connection_opts().max_neighbors_of_neighbor, + network.get_connection_opts().max_neighbors_of_neighbor, neighbor_addrs_to_resolve.len(), &self.cur_neighbor.addr ); @@ -1078,7 +1078,7 @@ impl NeighborWalk { // Do we know about this peer already? let (new, neighbor) = self.neighbor_db.add_or_schedule_replace_neighbor( network, - &preamble, + preamble, &data.handshake, db_data, &mut self.neighbor_replacements, @@ -1477,7 +1477,7 @@ impl NeighborWalk { // won the coin toss; will take a step. // take care not to step back to the neighbor from which we // stepped previously - if let Some(ref prev_neighbor) = self.prev_neighbor.as_ref() { + if let Some(prev_neighbor) = self.prev_neighbor.as_ref() { if prev_neighbor.addr == next_neighbor.addr { // oops, backtracked. Try to pick a different neighbor, if possible. if self.frontier.len() == 1 { @@ -1488,14 +1488,14 @@ impl NeighborWalk { // acceptance by probabilistically deciding to step to an alternative // instead of backtracking. let alt_next_neighbor = - Self::pick_random_neighbor(&self.frontier, Some(&prev_neighbor)) + Self::pick_random_neighbor(&self.frontier, Some(prev_neighbor)) .expect("BUG: empty frontier size"); let alt_prob: f64 = rnd.gen(); let cur_to_alt = self.degree_ratio(network, &self.cur_neighbor, &alt_next_neighbor); let prev_to_cur = - self.degree_ratio(network, &prev_neighbor, &self.cur_neighbor); + self.degree_ratio(network, prev_neighbor, &self.cur_neighbor); let trans_prob = fmin!( fmin!(1.0, cur_to_alt * cur_to_alt), fmax!(1.0, prev_to_cur * prev_to_cur) @@ -1722,7 +1722,7 @@ impl NeighborWalk { if let Err(e) = self.comms.neighbor_send( network, - &naddr, + naddr, StacksMessageType::Handshake(HandshakeData::from_local_peer( network.get_local_peer(), )), diff --git a/stackslib/src/net/p2p.rs b/stackslib/src/net/p2p.rs index 8d25907cb2..e6a7f4134e 100644 --- a/stackslib/src/net/p2p.rs +++ b/stackslib/src/net/p2p.rs @@ -1008,10 +1008,10 @@ impl PeerNetwork { neighbor_key: &NeighborKey, message: StacksMessage, ) -> Result<(), net_error> { - let event_id = if let Some(event_id) = self.events.get(&neighbor_key) { + let event_id = if let Some(event_id) = self.events.get(neighbor_key) { *event_id } else { - info!("Not connected to {:?}", &neighbor_key); + info!("Not connected to {:?}", neighbor_key); return Err(net_error::NoSuchNeighbor); }; @@ -1202,7 +1202,7 @@ impl PeerNetwork { // don't talk if denied if PeerDB::is_peer_denied( - &self.peerdb.conn(), + self.peerdb.conn(), neighbor.network_id, &neighbor.addrbytes, neighbor.port, @@ -1467,7 +1467,7 @@ impl PeerNetwork { // receive all in-bound requests for i in 0..self.handles.len() { match self.handles.get(i) { - Some(ref handle) => { + Some(handle) => { loop { // drain all inbound requests let inbound_request_res = handle.chan_in.try_recv(); @@ -1686,7 +1686,7 @@ impl PeerNetwork { // denied? if PeerDB::is_peer_denied( - &self.peerdb.conn(), + self.peerdb.conn(), neighbor_key.network_id, &neighbor_key.addrbytes, neighbor_key.port, @@ -1699,10 +1699,10 @@ impl PeerNetwork { } // already connected? - if let Some(event_id) = self.get_event_id(&neighbor_key) { + if let Some(event_id) = self.get_event_id(neighbor_key) { debug!( "{:?}: already connected to {:?} on event {}", - &self.local_peer, &neighbor_key, event_id + &self.local_peer, neighbor_key, event_id ); return Err(net_error::AlreadyConnected(event_id, neighbor_key.clone())); } @@ -1711,7 +1711,7 @@ impl PeerNetwork { if !self.connection_opts.private_neighbors && neighbor_key.addrbytes.is_in_private_range() { debug!("{:?}: Peer {:?} is in private range and we are configured to drop private neighbors", &self.local_peer, - &neighbor_key + neighbor_key ); return Err(net_error::Denied); } @@ -1957,7 +1957,7 @@ impl PeerNetwork { /// Deregister by neighbor key pub fn deregister_neighbor(&mut self, neighbor_key: &NeighborKey) { debug!("Disconnect from {:?}", neighbor_key); - let event_id = match self.events.get(&neighbor_key) { + let event_id = match self.events.get(neighbor_key) { None => { return; } @@ -1987,7 +1987,7 @@ impl PeerNetwork { peer_key: &NeighborKey, message_payload: StacksMessageType, ) -> Result { - match self.events.get(&peer_key) { + match self.events.get(peer_key) { None => { // not connected debug!("Could not sign for peer {:?}: not connected", peer_key); @@ -2280,11 +2280,11 @@ impl PeerNetwork { /// Get stats for a neighbor pub fn get_neighbor_stats(&self, nk: &NeighborKey) -> Option { - match self.events.get(&nk) { + match self.events.get(nk) { None => None, - Some(eid) => match self.peers.get(&eid) { + Some(eid) => match self.peers.get(eid) { None => None, - Some(ref convo) => Some(convo.stats.clone()), + Some(convo) => Some(convo.stats.clone()), }, } } @@ -3130,7 +3130,7 @@ impl PeerNetwork { }; let block_info = match StacksChainState::load_staging_block_info( - &chainstate.db(), + chainstate.db(), &StacksBlockHeader::make_index_block_hash( &ancestor_sn.consensus_hash, &ancestor_sn.winning_stacks_block_hash, @@ -3159,7 +3159,7 @@ impl PeerNetwork { }; let microblocks = match StacksChainState::load_processed_microblock_stream_fork( - &chainstate.db(), + chainstate.db(), &block_info.parent_consensus_hash, &block_info.parent_anchored_block_hash, &block_info.parent_microblock_hash, @@ -4062,7 +4062,7 @@ impl PeerNetwork { // drop one at random let idx = thread_rng().gen::() % self.walk_pingbacks.len(); let drop_addr = match self.walk_pingbacks.keys().skip(idx).next() { - Some(ref addr) => (*addr).clone(), + Some(addr) => (*addr).clone(), None => { continue; } @@ -4117,7 +4117,7 @@ impl PeerNetwork { /// Get the local peer from the peer DB, but also preserve the public IP address pub fn load_local_peer(&self) -> Result { - let mut lp = PeerDB::get_local_peer(&self.peerdb.conn())?; + let mut lp = PeerDB::get_local_peer(self.peerdb.conn())?; lp.public_ip_address = self.local_peer.public_ip_address.clone(); Ok(lp) } @@ -4907,7 +4907,7 @@ impl PeerNetwork { } // update our relay statistics, so we know who to forward messages to - self.update_relayer_stats(&network_result); + self.update_relayer_stats(network_result); // finally, handle network I/O requests from other threads, and get back reply handles to them. // do this after processing new sockets, so we don't accidentally re-use an event ID. @@ -5006,7 +5006,7 @@ impl PeerNetwork { ) }; - let sn = SortitionDB::get_canonical_burn_chain_tip(&sortdb.conn())?; + let sn = SortitionDB::get_canonical_burn_chain_tip(sortdb.conn())?; let mut ret: HashMap, StacksTransaction)>> = HashMap::new(); diff --git a/stackslib/src/net/prune.rs b/stackslib/src/net/prune.rs index 96edb12c2a..2d14568742 100644 --- a/stackslib/src/net/prune.rs +++ b/stackslib/src/net/prune.rs @@ -54,7 +54,7 @@ impl PeerNetwork { None => { continue; } - Some(ref convo) => { + Some(convo) => { if !convo.stats.outbound { continue; } @@ -88,7 +88,7 @@ impl PeerNetwork { "==== ORG NEIGHBOR DISTRIBUTION OF {:?} ===", &self.local_peer ); - for (ref _org, ref neighbor_infos) in org_neighbor.iter() { + for (ref _org, neighbor_infos) in org_neighbor.iter() { let _neighbors: Vec = neighbor_infos.iter().map(|ni| ni.0.clone()).collect(); test_debug!( @@ -196,7 +196,7 @@ impl PeerNetwork { // likely to be up for X more seconds, so we only really want to distinguish between nodes that // have wildly different uptimes. // Within uptime buckets, sort by health. - match org_neighbors.get_mut(&org) { + match org_neighbors.get_mut(org) { None => {} Some(ref mut neighbor_infos) => { neighbor_infos.sort_unstable_by( @@ -211,7 +211,7 @@ impl PeerNetwork { // don't let a single organization have more than // soft_max_neighbors_per_org neighbors. for org in orgs.iter() { - match org_neighbors.get_mut(&org) { + match org_neighbors.get_mut(org) { None => {} Some(ref mut neighbor_infos) => { if neighbor_infos.len() as u64 > self.connection_opts.soft_max_neighbors_per_org @@ -324,8 +324,8 @@ impl PeerNetwork { if preserve.contains(event_id) { continue; } - match self.peers.get(&event_id) { - Some(ref convo) => { + match self.peers.get(event_id) { + Some(convo) => { if !convo.stats.outbound { let stats = convo.stats.clone(); if let Some(entry) = ip_neighbor.get_mut(&nk.addrbytes) { @@ -415,7 +415,7 @@ impl PeerNetwork { for prune in pruned_by_ip.iter() { debug!("{:?}: prune by IP: {:?}", &self.local_peer, prune); - self.deregister_neighbor(&prune); + self.deregister_neighbor(prune); if !self.prune_inbound_counts.contains_key(prune) { self.prune_inbound_counts.insert(prune.clone(), 1); @@ -437,7 +437,7 @@ impl PeerNetwork { for prune in pruned_by_org.iter() { debug!("{:?}: prune by Org: {:?}", &self.local_peer, prune); - self.deregister_neighbor(&prune); + self.deregister_neighbor(prune); if !self.prune_outbound_counts.contains_key(prune) { self.prune_outbound_counts.insert(prune.clone(), 1); diff --git a/stackslib/src/net/relay.rs b/stackslib/src/net/relay.rs index 4e1d7eaf18..b07e070ca1 100644 --- a/stackslib/src/net/relay.rs +++ b/stackslib/src/net/relay.rs @@ -1002,7 +1002,7 @@ impl Relayer { if !Relayer::static_check_problematic_relayed_nakamoto_block( chainstate.mainnet, epoch_id, - &block, + block, ASTRules::PrecheckSize, ) { warn!( @@ -1230,9 +1230,8 @@ impl Relayer { &block.block_hash() ); if chainstate.fault_injection.hide_blocks { - if let Some(sn) = - SortitionDB::get_block_snapshot_consensus(sort_ic, &consensus_hash) - .expect("FATAL: failed to query downloaded block snapshot") + if let Some(sn) = SortitionDB::get_block_snapshot_consensus(sort_ic, consensus_hash) + .expect("FATAL: failed to query downloaded block snapshot") { if Self::fault_injection_is_block_hidden(&block.header, sn.block_height) { continue; @@ -1345,15 +1344,13 @@ impl Relayer { } for BlocksDatum(consensus_hash, block) in blocks_data.blocks.iter() { - match SortitionDB::get_block_snapshot_consensus( - sort_ic.conn(), - &consensus_hash, - )? { + match SortitionDB::get_block_snapshot_consensus(sort_ic.conn(), consensus_hash)? + { Some(sn) => { if !sn.pox_valid { warn!( "Consensus hash {} is not on the valid PoX fork", - &consensus_hash + consensus_hash ); continue; } @@ -1367,14 +1364,14 @@ impl Relayer { } } None => { - warn!("Consensus hash {} not known to this node", &consensus_hash); + warn!("Consensus hash {} not known to this node", consensus_hash); continue; } }; debug!( "Received pushed block {}/{} from {}", - &consensus_hash, + consensus_hash, block.block_hash(), neighbor_key ); @@ -1382,7 +1379,7 @@ impl Relayer { match Relayer::process_new_anchored_block( sort_ic, chainstate, - &consensus_hash, + consensus_hash, block, 0, ) { @@ -1390,20 +1387,20 @@ impl Relayer { if BlockAcceptResponse::Accepted == accept_response { debug!( "Accepted block {}/{} from {}", - &consensus_hash, &bhh, &neighbor_key + consensus_hash, &bhh, &neighbor_key ); new_blocks.insert(consensus_hash.clone(), block.clone()); } else { debug!( "Rejected block {}/{} from {}: {:?}", - &consensus_hash, &bhh, &neighbor_key, &accept_response + consensus_hash, &bhh, &neighbor_key, &accept_response ); } } Err(chainstate_error::InvalidStacksBlock(msg)) => { warn!( "Invalid pushed Stacks block {}/{}: {}", - &consensus_hash, + consensus_hash, block.block_hash(), msg ); @@ -1412,7 +1409,7 @@ impl Relayer { Err(e) => { warn!( "Could not process pushed Stacks block {}/{}: {:?}", - &consensus_hash, + consensus_hash, block.block_hash(), &e ); diff --git a/stackslib/src/net/server.rs b/stackslib/src/net/server.rs index 78f0f6fbb5..7410e5afa1 100644 --- a/stackslib/src/net/server.rs +++ b/stackslib/src/net/server.rs @@ -91,8 +91,8 @@ impl HttpPeer { #[cfg_attr(test, mutants::skip)] pub fn find_free_conversation(&self, data_url: &UrlString) -> Option { for (event_id, convo) in self.peers.iter() { - if let Some(ref url) = convo.get_url() { - if *url == data_url && !convo.is_request_inflight() { + if let Some(url) = convo.get_url() { + if url == data_url && !convo.is_request_inflight() { return Some(*event_id); } } @@ -560,7 +560,7 @@ impl HttpPeer { let mut to_remove = vec![]; let mut msgs = vec![]; for event_id in &poll_state.ready { - let Some(client_sock) = self.sockets.get_mut(&event_id) else { + let Some(client_sock) = self.sockets.get_mut(event_id) else { debug!("Rogue socket event {}", event_id); to_remove.push(*event_id); continue; diff --git a/stackslib/src/net/stackerdb/db.rs b/stackslib/src/net/stackerdb/db.rs index 0faf5bbe03..59ab9fe4eb 100644 --- a/stackslib/src/net/stackerdb/db.rs +++ b/stackslib/src/net/stackerdb/db.rs @@ -173,7 +173,7 @@ fn inner_get_slot_metadata( let stackerdb_id = inner_get_stackerdb_id(conn, smart_contract)?; let sql = "SELECT slot_id,version,data_hash,signature FROM chunks WHERE stackerdb_id = ?1 AND slot_id = ?2"; let args = params![stackerdb_id, slot_id]; - query_row(conn, &sql, args).map_err(|e| e.into()) + query_row(conn, sql, args).map_err(|e| e.into()) } /// Load up validation information from the database, keyed by the chunk's database's smart @@ -188,7 +188,7 @@ fn inner_get_slot_validation( let sql = "SELECT signer,write_time,version FROM chunks WHERE stackerdb_id = ?1 AND slot_id = ?2"; let args = params![stackerdb_id, slot_id]; - query_row(conn, &sql, args).map_err(|e| e.into()) + query_row(conn, sql, args).map_err(|e| e.into()) } impl StackerDBTx<'_> { @@ -218,7 +218,7 @@ impl StackerDBTx<'_> { &self, ) -> Result, net_error> { let sql = "SELECT smart_contract_id FROM databases ORDER BY smart_contract_id"; - query_rows(&self.conn(), sql, NO_PARAMS).map_err(|e| e.into()) + query_rows(self.conn(), sql, NO_PARAMS).map_err(|e| e.into()) } /// Get the Stacker DB ID for a smart contract @@ -226,7 +226,7 @@ impl StackerDBTx<'_> { &self, smart_contract: &QualifiedContractIdentifier, ) -> Result { - inner_get_stackerdb_id(&self.conn(), smart_contract) + inner_get_stackerdb_id(self.conn(), smart_contract) } /// Set up a database's storage slots. @@ -246,14 +246,14 @@ impl StackerDBTx<'_> { } let qry = "INSERT OR REPLACE INTO databases (smart_contract_id) VALUES (?1)"; - let mut stmt = self.sql_tx.prepare(&qry)?; + let mut stmt = self.sql_tx.prepare(qry)?; let args = params![smart_contract.to_string()]; stmt.execute(args)?; let stackerdb_id = self.get_stackerdb_id(smart_contract)?; let qry = "INSERT OR REPLACE INTO chunks (stackerdb_id,signer,slot_id,version,write_time,data,data_hash,signature) VALUES (?1,?2,?3,?4,?5,?6,?7,?8)"; - let mut stmt = self.sql_tx.prepare(&qry)?; + let mut stmt = self.sql_tx.prepare(qry)?; let mut slot_id = 0u32; for (principal, slot_count) in slots.iter() { @@ -288,7 +288,7 @@ impl StackerDBTx<'_> { let stackerdb_id = self.get_stackerdb_id(smart_contract)?; let qry = "DELETE FROM chunks WHERE stackerdb_id = ?1"; let args = params![stackerdb_id]; - let mut stmt = self.sql_tx.prepare(&qry)?; + let mut stmt = self.sql_tx.prepare(qry)?; stmt.execute(args)?; Ok(()) } @@ -297,7 +297,7 @@ impl StackerDBTx<'_> { fn shrink_stackerdb(&self, stackerdb_id: i64, first_slot_id: u32) -> Result<(), net_error> { let qry = "DELETE FROM chunks WHERE stackerdb_id = ?1 AND slot_id >= ?2"; let args = params![&stackerdb_id, &first_slot_id]; - let mut stmt = self.sql_tx.prepare(&qry)?; + let mut stmt = self.sql_tx.prepare(qry)?; stmt.execute(args)?; Ok(()) } @@ -337,7 +337,7 @@ impl StackerDBTx<'_> { // new slot, or existing slot with a different signer let qry = "INSERT OR REPLACE INTO chunks (stackerdb_id,signer,slot_id,version,write_time,data,data_hash,signature) VALUES (?1,?2,?3,?4,?5,?6,?7,?8)"; - let mut stmt = self.sql_tx.prepare(&qry)?; + let mut stmt = self.sql_tx.prepare(qry)?; let args = params![ stackerdb_id, principal.to_string(), @@ -386,7 +386,7 @@ impl StackerDBTx<'_> { ) -> Result<(), net_error> { let stackerdb_id = self.get_stackerdb_id(smart_contract)?; let sql = "UPDATE chunks SET version = ?1, data_hash = ?2, signature = ?3, data = ?4, write_time = ?5 WHERE stackerdb_id = ?6 AND slot_id = ?7"; - let mut stmt = self.sql_tx.prepare(&sql)?; + let mut stmt = self.sql_tx.prepare(sql)?; let args = params![ slot_desc.slot_version, @@ -560,7 +560,7 @@ impl StackerDBs { let stackerdb_id = self.get_stackerdb_id(smart_contract)?; let sql = "SELECT signer FROM chunks WHERE stackerdb_id = ?1 AND slot_id = ?2"; let args = params![stackerdb_id, slot_id]; - query_row(&self.conn, &sql, args).map_err(|e| e.into()) + query_row(&self.conn, sql, args).map_err(|e| e.into()) } /// Get all principals who can write to a particular stacker DB. @@ -573,7 +573,7 @@ impl StackerDBs { let stackerdb_id = self.get_stackerdb_id(smart_contract)?; let sql = "SELECT signer FROM chunks WHERE stackerdb_id = ?1 GROUP BY signer"; let args = params![stackerdb_id]; - query_rows(&self.conn, &sql, args).map_err(|e| e.into()) + query_rows(&self.conn, sql, args).map_err(|e| e.into()) } /// Get the slot metadata @@ -594,7 +594,7 @@ impl StackerDBs { let stackerdb_id = inner_get_stackerdb_id(&self.conn, smart_contract)?; let sql = "SELECT slot_id,version,data_hash,signature FROM chunks WHERE stackerdb_id = ?1 ORDER BY slot_id ASC"; let args = params![stackerdb_id]; - query_rows(&self.conn, &sql, args).map_err(|e| e.into()) + query_rows(&self.conn, sql, args).map_err(|e| e.into()) } /// Get a slot's validation data @@ -633,7 +633,7 @@ impl StackerDBs { let stackerdb_id = self.get_stackerdb_id(smart_contract)?; let sql = "SELECT version FROM chunks WHERE stackerdb_id = ?1 ORDER BY slot_id"; let args = params![stackerdb_id]; - query_rows(&self.conn, &sql, args).map_err(|e| e.into()) + query_rows(&self.conn, sql, args).map_err(|e| e.into()) } /// Get the list of slot write timestamps for a given DB instance at a given reward cycle @@ -644,7 +644,7 @@ impl StackerDBs { let stackerdb_id = self.get_stackerdb_id(smart_contract)?; let sql = "SELECT write_time FROM chunks WHERE stackerdb_id = ?1 ORDER BY slot_id"; let args = params![stackerdb_id]; - query_rows(&self.conn, &sql, args).map_err(|e| e.into()) + query_rows(&self.conn, sql, args).map_err(|e| e.into()) } /// Get the latest chunk out of the database. @@ -692,6 +692,6 @@ impl StackerDBs { let stackerdb_id = self.get_stackerdb_id(smart_contract)?; let qry = "SELECT slot_id,version,signature,data FROM chunks WHERE stackerdb_id = ?1 AND slot_id = ?2 AND version = ?3"; let args = params![stackerdb_id, slot_id, slot_version]; - query_row(&self.conn, &qry, args).map_err(|e| e.into()) + query_row(&self.conn, qry, args).map_err(|e| e.into()) } } diff --git a/stackslib/src/net/stackerdb/mod.rs b/stackslib/src/net/stackerdb/mod.rs index 899990402d..f4a9d1a302 100644 --- a/stackslib/src/net/stackerdb/mod.rs +++ b/stackslib/src/net/stackerdb/mod.rs @@ -313,7 +313,7 @@ impl StackerDBs { // attempt to load the config from the contract itself StackerDBConfig::from_smart_contract( chainstate, - &sortdb, + sortdb, &stackerdb_contract_id, num_neighbors, connection_opts @@ -546,7 +546,7 @@ impl PeerNetwork { if let Ok(Some(_)) = NakamotoChainState::get_tenure_start_block_header( &mut chainstate.index_conn(), &tip_block_id, - &rc_consensus_hash, + rc_consensus_hash, ) { debug!("{:?}: NACK StackerDBGetChunksInv / StackerDBPushChunk from {} since {} != {} (remote is stale)", self.get_local_peer(), &naddr, &self.get_chain_view().rc_consensus_hash, rc_consensus_hash); return StacksMessageType::Nack(NackData::new(NackErrorCodes::StaleView)); diff --git a/stackslib/src/net/stackerdb/sync.rs b/stackslib/src/net/stackerdb/sync.rs index 7dfeb809c7..4115827c58 100644 --- a/stackslib/src/net/stackerdb/sync.rs +++ b/stackslib/src/net/stackerdb/sync.rs @@ -289,7 +289,7 @@ impl StackerDBSync { if let Some(event_id) = network.get_event_id(&nk) { self.comms.unpin_connection(event_id); } - self.connected_replicas.remove(&naddr); + self.connected_replicas.remove(naddr); } /// Make a chunk inv request @@ -531,7 +531,7 @@ impl StackerDBSync { // validate -- must be a valid chunk if !network.validate_received_chunk( &self.smart_contract_id, - &config, + config, data, &self.expected_versions, )? { @@ -984,7 +984,7 @@ impl StackerDBSync { } // got everything. Calculate download priority - let priorities = self.make_chunk_request_schedule(&network, None)?; + let priorities = self.make_chunk_request_schedule(network, None)?; let expected_versions = self.stackerdbs.get_slot_versions(&self.smart_contract_id)?; self.chunk_fetch_priorities = priorities; @@ -1050,7 +1050,7 @@ impl StackerDBSync { if let Err(e) = self.comms.neighbor_send( network, - &selected_neighbor, + selected_neighbor, StacksMessageType::StackerDBGetChunk(chunk_request.clone()), ) { info!( @@ -1058,7 +1058,7 @@ impl StackerDBSync { network.get_local_peer(), &self.smart_contract_id, chunk_request.slot_id, - &selected_neighbor, + selected_neighbor, &e ); unpin.insert(selected_neighbor.clone()); @@ -1159,7 +1159,7 @@ impl StackerDBSync { pub fn pushchunks_begin(&mut self, network: &mut PeerNetwork) -> Result { if self.chunk_push_priorities.is_empty() && self.push_round != self.rounds { // only do this once per round - let priorities = self.make_chunk_push_schedule(&network)?; + let priorities = self.make_chunk_push_schedule(network)?; self.chunk_push_priorities = priorities; self.push_round = self.rounds; } @@ -1224,7 +1224,7 @@ impl StackerDBSync { let slot_version = chunk_push.chunk_data.slot_version; if let Err(e) = self.comms.neighbor_send( network, - &selected_neighbor, + selected_neighbor, StacksMessageType::StackerDBPushChunk(chunk_push), ) { info!( @@ -1232,7 +1232,7 @@ impl StackerDBSync { network.get_local_peer(), &self.smart_contract_id, slot_id, - &selected_neighbor, + selected_neighbor, &e ); continue; @@ -1342,7 +1342,7 @@ impl StackerDBSync { } let priorities = - self.make_chunk_request_schedule(&network, Some(expected_versions.clone()))?; + self.make_chunk_request_schedule(network, Some(expected_versions.clone()))?; self.chunk_fetch_priorities = priorities; self.expected_versions = expected_versions; diff --git a/stackslib/src/net/stackerdb/tests/config.rs b/stackslib/src/net/stackerdb/tests/config.rs index cff4ca1059..932193acdc 100644 --- a/stackslib/src/net/stackerdb/tests/config.rs +++ b/stackslib/src/net/stackerdb/tests/config.rs @@ -53,7 +53,7 @@ fn make_smart_contract( tx_contract.set_tx_fee(fee); let mut tx_signer = StacksTransactionSigner::new(&tx_contract); - tx_signer.sign_origin(&pk).unwrap(); + tx_signer.sign_origin(pk).unwrap(); let tx_contract_signed = tx_signer.get_tx().unwrap(); tx_contract_signed @@ -646,7 +646,7 @@ fn test_hint_replicas_override() { max_neighbors: 7, }; - let tx = make_smart_contract("test-0", &config_contract, &contract_owner, 0, 10000); + let tx = make_smart_contract("test-0", config_contract, &contract_owner, 0, 10000); txs.push(tx); peer.tenure_with_txs(&txs, &mut coinbase_nonce); diff --git a/stackslib/src/net/stackerdb/tests/db.rs b/stackslib/src/net/stackerdb/tests/db.rs index 9bcf800529..a8b7617a13 100644 --- a/stackslib/src/net/stackerdb/tests/db.rs +++ b/stackslib/src/net/stackerdb/tests/db.rs @@ -217,7 +217,7 @@ fn test_stackerdb_create_list_delete() { // each DB's single chunk exists for sc in dbs.iter() { - db.get_latest_chunk(&sc, 0).unwrap().expect("missing chunk"); + db.get_latest_chunk(sc, 0).unwrap().expect("missing chunk"); } // remove a db @@ -260,7 +260,7 @@ fn test_stackerdb_create_list_delete() { // only existing DBs still have chunks for sc in dbs.iter() { - db.get_latest_chunk(&sc, 0).unwrap().expect("missing chunk"); + db.get_latest_chunk(sc, 0).unwrap().expect("missing chunk"); } // deletion is idempotent @@ -302,7 +302,7 @@ fn test_stackerdb_create_list_delete() { ); // only existing DBs still have chunks for sc in dbs.iter() { - db.get_latest_chunk(&sc, 0).unwrap().expect("missing chunk"); + db.get_latest_chunk(sc, 0).unwrap().expect("missing chunk"); } } @@ -448,7 +448,7 @@ fn test_stackerdb_insert_query_chunks() { C32_ADDRESS_VERSION_MAINNET_SINGLESIG, &AddressHashMode::SerializeP2PKH, 1, - &vec![StacksPublicKey::from_private(&pk)], + &vec![StacksPublicKey::from_private(pk)], ) .unwrap() }) @@ -473,7 +473,7 @@ fn test_stackerdb_insert_query_chunks() { data: vec![i as u8; 128], }; - chunk_data.sign(&pk).unwrap(); + chunk_data.sign(pk).unwrap(); let slot_metadata = tx.get_slot_metadata(&sc, i as u32).unwrap().unwrap(); assert_eq!(slot_metadata.slot_id, i as u32); @@ -505,7 +505,7 @@ fn test_stackerdb_insert_query_chunks() { // should fail -- too many writes version chunk_data.slot_version = db_config.max_writes + 1; - chunk_data.sign(&pk).unwrap(); + chunk_data.sign(pk).unwrap(); if let Err(net_error::TooManySlotWrites { supplied_version, max_writes, @@ -549,7 +549,7 @@ fn test_stackerdb_insert_query_chunks() { assert_eq!(chunk.data, vec![i as u8; 128]); assert_eq!(chunk.slot_version, 1); assert_eq!(chunk.slot_id, i as u32); - assert!(chunk.verify(&addr).unwrap()); + assert!(chunk.verify(addr).unwrap()); // incorrect version let chunk = db.get_chunk(&sc, i as u32, 0).unwrap(); @@ -560,7 +560,7 @@ fn test_stackerdb_insert_query_chunks() { assert!(chunk.is_none()); let slot_metadata = db.get_slot_metadata(&sc, i as u32).unwrap().unwrap(); - assert!(slot_metadata.verify(&addr).unwrap()); + assert!(slot_metadata.verify(addr).unwrap()); } let versions = db.get_slot_versions(&sc).unwrap(); @@ -603,7 +603,7 @@ fn test_reconfigure_stackerdb() { C32_ADDRESS_VERSION_MAINNET_SINGLESIG, &AddressHashMode::SerializeP2PKH, 1, - &vec![StacksPublicKey::from_private(&pk)], + &vec![StacksPublicKey::from_private(pk)], ) .unwrap() }) @@ -629,7 +629,7 @@ fn test_reconfigure_stackerdb() { data: vec![i as u8; 128], }; - chunk_data.sign(&pk).unwrap(); + chunk_data.sign(pk).unwrap(); let slot_metadata = tx.get_slot_metadata(&sc, i as u32).unwrap().unwrap(); assert_eq!(slot_metadata.slot_id, i as u32); @@ -677,7 +677,7 @@ fn test_reconfigure_stackerdb() { C32_ADDRESS_VERSION_MAINNET_SINGLESIG, &AddressHashMode::SerializeP2PKH, 1, - &vec![StacksPublicKey::from_private(&pk)], + &vec![StacksPublicKey::from_private(pk)], ) .unwrap() }) @@ -759,7 +759,7 @@ fn test_reconfigure_stackerdb() { C32_ADDRESS_VERSION_MAINNET_SINGLESIG, &AddressHashMode::SerializeP2PKH, 1, - &vec![StacksPublicKey::from_private(&pk)], + &vec![StacksPublicKey::from_private(pk)], ) .unwrap() }) diff --git a/stackslib/src/net/tests/convergence.rs b/stackslib/src/net/tests/convergence.rs index 627db94758..af5afaea11 100644 --- a/stackslib/src/net/tests/convergence.rs +++ b/stackslib/src/net/tests/convergence.rs @@ -861,7 +861,7 @@ fn dump_peers(peers: &Vec) { } let all_neighbors = PeerDB::get_all_peers(peers[i].network.peerdb.conn()).unwrap(); - let num_allowed = all_neighbors.iter().fold(0, |mut sum, ref n2| { + let num_allowed = all_neighbors.iter().fold(0, |mut sum, n2| { sum += if n2.allowed < 0 { 1 } else { 0 }; sum }); @@ -1002,7 +1002,7 @@ fn run_topology_test_ex( // allowed peers are still connected match initial_allowed.get(&nk) { - Some(ref peer_list) => { + Some(peer_list) => { for pnk in peer_list.iter() { if !peers[i].network.events.contains_key(&pnk.clone()) { error!( @@ -1018,7 +1018,7 @@ fn run_topology_test_ex( // denied peers are never connected match initial_denied.get(&nk) { - Some(ref peer_list) => { + Some(peer_list) => { for pnk in peer_list.iter() { if peers[i].network.events.contains_key(&pnk.clone()) { error!("{:?}: Perma-denied peer {:?} connected", &nk, &pnk); @@ -1041,7 +1041,7 @@ fn run_topology_test_ex( // done? let now_finished = if use_finished_check { - finished_check(&peers) + finished_check(peers) } else { let mut done = true; let all_neighbors = PeerDB::get_all_peers(peers[i].network.peerdb.conn()).unwrap(); @@ -1082,13 +1082,13 @@ fn run_topology_test_ex( } test_debug!("Finished walking the network {} times", count); - dump_peers(&peers); - dump_peer_histograms(&peers); + dump_peers(peers); + dump_peer_histograms(peers); } test_debug!("Converged after {} calls to network.run()", count); - dump_peers(&peers); - dump_peer_histograms(&peers); + dump_peers(peers); + dump_peer_histograms(peers); // each peer learns each other peer's stacker DBs for (i, peer) in peers.iter().enumerate() { diff --git a/stackslib/src/net/tests/download/epoch2x.rs b/stackslib/src/net/tests/download/epoch2x.rs index 9c995f1f32..d80e6f3de2 100644 --- a/stackslib/src/net/tests/download/epoch2x.rs +++ b/stackslib/src/net/tests/download/epoch2x.rs @@ -92,7 +92,7 @@ fn test_get_block_availability() { let num_blocks = 10; let first_stacks_block_height = { let sn = - SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -111,7 +111,7 @@ fn test_get_block_availability() { peer_1.next_burnchain_block_raw(burn_ops); let sn = - SortitionDB::get_canonical_burn_chain_tip(&peer_2.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer_2.sortdb.as_ref().unwrap().conn()) .unwrap(); block_data.push((sn.consensus_hash.clone(), stacks_block, microblocks)); } @@ -289,7 +289,7 @@ where let mut num_blocks = 10; let first_stacks_block_height = { let sn = - SortitionDB::get_canonical_burn_chain_tip(&peers[0].sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peers[0].sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -553,7 +553,7 @@ pub fn test_get_blocks_and_microblocks_2_peers_download_plain() { peers[0].next_burnchain_block_raw(burn_ops); let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[1].sortdb.as_ref().unwrap().conn(), + peers[1].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -834,7 +834,7 @@ pub fn test_get_blocks_and_microblocks_2_peers_download_plain_100_blocks() { peers[0].next_burnchain_block_raw(burn_ops); let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[1].sortdb.as_ref().unwrap().conn(), + peers[1].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -925,7 +925,7 @@ pub fn test_get_blocks_and_microblocks_5_peers_star() { } let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -999,7 +999,7 @@ pub fn test_get_blocks_and_microblocks_5_peers_line() { } let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -1081,7 +1081,7 @@ pub fn test_get_blocks_and_microblocks_overwhelmed_connections() { } let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -1160,7 +1160,7 @@ pub fn test_get_blocks_and_microblocks_overwhelmed_sockets() { } let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -1248,7 +1248,7 @@ pub fn test_get_blocks_and_microblocks_ban_url() { peers[0].next_burnchain_block_raw(burn_ops); let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[1].sortdb.as_ref().unwrap().conn(), + peers[1].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -1376,7 +1376,7 @@ pub fn test_get_blocks_and_microblocks_2_peers_download_multiple_microblock_desc peers[0].next_burnchain_block_raw(burn_ops); let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[1].sortdb.as_ref().unwrap().conn(), + peers[1].sortdb.as_ref().unwrap().conn(), ) .unwrap(); @@ -1391,7 +1391,7 @@ pub fn test_get_blocks_and_microblocks_2_peers_download_multiple_microblock_desc } else { test_debug!("Build child block {}", i); let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[1].sortdb.as_ref().unwrap().conn(), + peers[1].sortdb.as_ref().unwrap().conn(), ) .unwrap(); @@ -1466,7 +1466,7 @@ pub fn test_get_blocks_and_microblocks_2_peers_download_multiple_microblock_desc peers[0].next_burnchain_block_raw(burn_ops); let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[1].sortdb.as_ref().unwrap().conn(), + peers[1].sortdb.as_ref().unwrap().conn(), ) .unwrap(); diff --git a/stackslib/src/net/tests/inv/epoch2x.rs b/stackslib/src/net/tests/inv/epoch2x.rs index aed43bdcba..cbf3a14449 100644 --- a/stackslib/src/net/tests/inv/epoch2x.rs +++ b/stackslib/src/net/tests/inv/epoch2x.rs @@ -527,7 +527,7 @@ fn test_sync_inv_set_blocks_microblocks_available() { ] .iter_mut() { - let working_dir = get_burnchain(&test_path, None).working_dir; + let working_dir = get_burnchain(test_path, None).working_dir; // pre-populate headers let mut indexer = BitcoinIndexer::new_unit_test(&working_dir); @@ -582,7 +582,7 @@ fn test_sync_inv_set_blocks_microblocks_available() { let num_blocks = 5; let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -752,7 +752,7 @@ fn test_sync_inv_make_inv_messages() { let mut peer_1 = TestPeer::new(peer_1_config); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -1343,7 +1343,7 @@ fn test_sync_inv_2_peers_plain() { let num_blocks = GETPOXINV_MAX_BITLEN * 2; let first_stacks_block_height = { let sn = - SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height + 1 }; @@ -1520,7 +1520,7 @@ fn test_sync_inv_2_peers_stale() { let num_blocks = GETPOXINV_MAX_BITLEN * 2; let first_stacks_block_height = { let sn = - SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height + 1 }; @@ -1560,7 +1560,7 @@ fn test_sync_inv_2_peers_stale() { assert_eq!(inv.get_dead_peers().len(), 0); assert_eq!(inv.get_diverged_peers().len(), 0); - if let Some(ref peer_2_inv) = inv.block_stats.get(&peer_2.to_neighbor().addr) { + if let Some(peer_2_inv) = inv.block_stats.get(&peer_2.to_neighbor().addr) { if peer_2_inv.inv.num_sortitions == first_stacks_block_height - peer_1.config.burnchain.first_block_height @@ -1583,7 +1583,7 @@ fn test_sync_inv_2_peers_stale() { assert_eq!(inv.get_dead_peers().len(), 0); assert_eq!(inv.get_diverged_peers().len(), 0); - if let Some(ref peer_1_inv) = inv.block_stats.get(&peer_1.to_neighbor().addr) { + if let Some(peer_1_inv) = inv.block_stats.get(&peer_1.to_neighbor().addr) { if peer_1_inv.inv.num_sortitions == first_stacks_block_height - peer_1.config.burnchain.first_block_height @@ -1629,7 +1629,7 @@ fn test_sync_inv_2_peers_unstable() { let first_stacks_block_height = { let sn = - SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height + 1 }; @@ -1842,7 +1842,7 @@ fn test_sync_inv_2_peers_different_pox_vectors() { let first_stacks_block_height = { let sn = - SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) + SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height + 1 }; diff --git a/stackslib/src/net/tests/mempool/mod.rs b/stackslib/src/net/tests/mempool/mod.rs index 436e5a315a..9efc405bd1 100644 --- a/stackslib/src/net/tests/mempool/mod.rs +++ b/stackslib/src/net/tests/mempool/mod.rs @@ -71,7 +71,7 @@ fn test_mempool_sync_2_peers() { let num_blocks = 10; let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height + 1 }; @@ -104,7 +104,7 @@ fn test_mempool_sync_2_peers() { let mut tx = StacksTransaction { version: TransactionVersion::Testnet, chain_id: 0x80000000, - auth: TransactionAuth::from_p2pkh(&pk).unwrap(), + auth: TransactionAuth::from_p2pkh(pk).unwrap(), anchor_mode: TransactionAnchorMode::Any, post_condition_mode: TransactionPostConditionMode::Allow, post_conditions: vec![], @@ -118,7 +118,7 @@ fn test_mempool_sync_2_peers() { tx.set_origin_nonce(0); let mut tx_signer = StacksTransactionSigner::new(&tx); - tx_signer.sign_origin(&pk).unwrap(); + tx_signer.sign_origin(pk).unwrap(); let tx = tx_signer.get_tx().unwrap(); @@ -184,7 +184,7 @@ fn test_mempool_sync_2_peers() { let mut tx = StacksTransaction { version: TransactionVersion::Testnet, chain_id: 0x80000000, - auth: TransactionAuth::from_p2pkh(&pk).unwrap(), + auth: TransactionAuth::from_p2pkh(pk).unwrap(), anchor_mode: TransactionAnchorMode::Any, post_condition_mode: TransactionPostConditionMode::Allow, post_conditions: vec![], @@ -198,7 +198,7 @@ fn test_mempool_sync_2_peers() { tx.set_origin_nonce(1); let mut tx_signer = StacksTransactionSigner::new(&tx); - tx_signer.sign_origin(&pk).unwrap(); + tx_signer.sign_origin(pk).unwrap(); let tx = tx_signer.get_tx().unwrap(); @@ -339,7 +339,7 @@ fn test_mempool_sync_2_peers_paginated() { let num_blocks = 10; let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height + 1 }; @@ -371,7 +371,7 @@ fn test_mempool_sync_2_peers_paginated() { let mut tx = StacksTransaction { version: TransactionVersion::Testnet, chain_id: 0x80000000, - auth: TransactionAuth::from_p2pkh(&pk).unwrap(), + auth: TransactionAuth::from_p2pkh(pk).unwrap(), anchor_mode: TransactionAnchorMode::Any, post_condition_mode: TransactionPostConditionMode::Allow, post_conditions: vec![], @@ -385,7 +385,7 @@ fn test_mempool_sync_2_peers_paginated() { tx.set_origin_nonce(0); let mut tx_signer = StacksTransactionSigner::new(&tx); - tx_signer.sign_origin(&pk).unwrap(); + tx_signer.sign_origin(pk).unwrap(); let tx = tx_signer.get_tx().unwrap(); @@ -530,7 +530,7 @@ fn test_mempool_sync_2_peers_blacklisted() { let num_blocks = 10; let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height + 1 }; @@ -563,7 +563,7 @@ fn test_mempool_sync_2_peers_blacklisted() { let mut tx = StacksTransaction { version: TransactionVersion::Testnet, chain_id: 0x80000000, - auth: TransactionAuth::from_p2pkh(&pk).unwrap(), + auth: TransactionAuth::from_p2pkh(pk).unwrap(), anchor_mode: TransactionAnchorMode::Any, post_condition_mode: TransactionPostConditionMode::Allow, post_conditions: vec![], @@ -577,7 +577,7 @@ fn test_mempool_sync_2_peers_blacklisted() { tx.set_origin_nonce(0); let mut tx_signer = StacksTransactionSigner::new(&tx); - tx_signer.sign_origin(&pk).unwrap(); + tx_signer.sign_origin(pk).unwrap(); let tx = tx_signer.get_tx().unwrap(); @@ -741,7 +741,7 @@ fn test_mempool_sync_2_peers_problematic() { let num_blocks = 10; let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer_1.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer_1.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height + 1 }; @@ -777,7 +777,7 @@ fn test_mempool_sync_2_peers_problematic() { let tx_exceeds_body = format!("{}u1 {}", tx_exceeds_body_start, tx_exceeds_body_end); let tx = make_contract_tx( - &pk, + pk, 0, (tx_exceeds_body.len() * 100) as u64, "test-exceeds", @@ -1022,7 +1022,7 @@ pub fn test_mempool_storage_nakamoto() { &sortdb, &tip.consensus_hash, &tip.anchored_header.block_hash(), - &mempool_tx, + mempool_tx, None, &epoch.block_limit, &epoch.epoch_id, @@ -1176,7 +1176,7 @@ fn test_mempool_sync_2_peers_nakamoto_paginated() { let mut tx = StacksTransaction { version: TransactionVersion::Testnet, chain_id: 0x80000000, - auth: TransactionAuth::from_p2pkh(&pk).unwrap(), + auth: TransactionAuth::from_p2pkh(pk).unwrap(), anchor_mode: TransactionAnchorMode::Any, post_condition_mode: TransactionPostConditionMode::Allow, post_conditions: vec![], @@ -1190,7 +1190,7 @@ fn test_mempool_sync_2_peers_nakamoto_paginated() { tx.set_origin_nonce(0); let mut tx_signer = StacksTransactionSigner::new(&tx); - tx_signer.sign_origin(&pk).unwrap(); + tx_signer.sign_origin(pk).unwrap(); let tx = tx_signer.get_tx().unwrap(); diff --git a/stackslib/src/net/tests/mod.rs b/stackslib/src/net/tests/mod.rs index 3a07ed006c..7b6379db22 100644 --- a/stackslib/src/net/tests/mod.rs +++ b/stackslib/src/net/tests/mod.rs @@ -280,7 +280,7 @@ impl NakamotoBootPlan { &mut sort_handle, &mut node.chainstate, &peer.network.stacks_tip.block_id(), - &block, + block, None, NakamotoBlockObtainMethod::Pushed, ) @@ -317,7 +317,7 @@ impl NakamotoBootPlan { &mut sort_handle, &mut node.chainstate, &peer.network.stacks_tip.block_id(), - &block, + block, None, NakamotoBlockObtainMethod::Pushed, ) @@ -1147,7 +1147,7 @@ fn test_boot_nakamoto_peer() { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, ]); - let plan = NakamotoBootPlan::new(&function_name!()) + let plan = NakamotoBootPlan::new(function_name!()) .with_private_key(private_key) .with_pox_constants(10, 3) .with_initial_balances(vec![(addr.into(), 1_000_000)]) diff --git a/stackslib/src/net/tests/relay/epoch2x.rs b/stackslib/src/net/tests/relay/epoch2x.rs index 1106721e38..22be02bd78 100644 --- a/stackslib/src/net/tests/relay/epoch2x.rs +++ b/stackslib/src/net/tests/relay/epoch2x.rs @@ -577,7 +577,7 @@ fn test_get_blocks_and_microblocks_3_peers_push_available() { }, |num_blocks, ref mut peers| { let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); let this_reward_cycle = peers[0] @@ -594,7 +594,7 @@ fn test_get_blocks_and_microblocks_3_peers_push_available() { // announcements in reward cycles the remote // peer doesn't know about won't work. let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); if peers[0] @@ -620,7 +620,7 @@ fn test_get_blocks_and_microblocks_3_peers_push_available() { } let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -669,7 +669,7 @@ fn test_get_blocks_and_microblocks_3_peers_push_available() { } let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); let this_reward_cycle = peers[0] @@ -1107,7 +1107,7 @@ fn test_get_blocks_and_microblocks_2_peers_push_blocks_and_microblocks( }, |num_blocks, ref mut peers| { let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); let this_reward_cycle = peers[0] @@ -1120,7 +1120,7 @@ fn test_get_blocks_and_microblocks_2_peers_push_blocks_and_microblocks( let mut block_data = vec![]; for _ in 0..num_blocks { let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); if peers[0] @@ -1145,7 +1145,7 @@ fn test_get_blocks_and_microblocks_2_peers_push_blocks_and_microblocks( } let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -1415,7 +1415,7 @@ fn test_get_blocks_and_microblocks_upload_blocks_http() { }, |num_blocks, ref mut peers| { let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); let this_reward_cycle = peers[0] @@ -1432,7 +1432,7 @@ fn test_get_blocks_and_microblocks_upload_blocks_http() { // announcements in reward cycles the remote // peer doesn't know about won't work. let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); if peers[0] @@ -1458,7 +1458,7 @@ fn test_get_blocks_and_microblocks_upload_blocks_http() { } let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -1638,7 +1638,7 @@ fn test_get_blocks_and_microblocks_2_peers_push_transactions() { }, |num_blocks, ref mut peers| { let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); let this_reward_cycle = peers[0] @@ -1651,7 +1651,7 @@ fn test_get_blocks_and_microblocks_2_peers_push_transactions() { let mut block_data = vec![]; for b in 0..num_blocks { let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); if peers[0] @@ -1680,7 +1680,7 @@ fn test_get_blocks_and_microblocks_2_peers_push_transactions() { } let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -2015,7 +2015,7 @@ fn test_get_blocks_and_microblocks_peers_broadcast() { }, |num_blocks, ref mut peers| { let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); let this_reward_cycle = peers[0] @@ -2028,7 +2028,7 @@ fn test_get_blocks_and_microblocks_peers_broadcast() { let mut block_data = vec![]; for _ in 0..num_blocks { let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); if peers[0] @@ -2053,7 +2053,7 @@ fn test_get_blocks_and_microblocks_peers_broadcast() { } let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); @@ -2327,7 +2327,7 @@ fn test_get_blocks_and_microblocks_2_peers_antientropy() { }, |num_blocks, ref mut peers| { let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); let this_reward_cycle = peers[0] @@ -2340,7 +2340,7 @@ fn test_get_blocks_and_microblocks_2_peers_antientropy() { let mut block_data = vec![]; for _ in 0..num_blocks { let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); if peers[0] @@ -2365,7 +2365,7 @@ fn test_get_blocks_and_microblocks_2_peers_antientropy() { } let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -2382,7 +2382,7 @@ fn test_get_blocks_and_microblocks_2_peers_antientropy() { peers[i].next_burnchain_block_raw(vec![]); } let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push((sn.consensus_hash.clone(), None, None)); @@ -2459,7 +2459,7 @@ fn test_get_blocks_and_microblocks_2_peers_buffered_messages() { }, |num_blocks, ref mut peers| { let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); let this_reward_cycle = peers[0] @@ -2472,7 +2472,7 @@ fn test_get_blocks_and_microblocks_2_peers_buffered_messages() { let mut block_data = vec![]; for block_num in 0..num_blocks { let tip = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); let (mut burn_ops, stacks_block, microblocks) = peers[0].make_default_tenure(); @@ -2494,7 +2494,7 @@ fn test_get_blocks_and_microblocks_2_peers_buffered_messages() { } let sn = SortitionDB::get_canonical_burn_chain_tip( - &peers[0].sortdb.as_ref().unwrap().conn(), + peers[0].sortdb.as_ref().unwrap().conn(), ) .unwrap(); block_data.push(( @@ -2794,7 +2794,7 @@ fn process_new_blocks_rejects_problematic_asts() { let chainstate_path = peer.chainstate_path.clone(); let first_stacks_block_height = { - let sn = SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()) + let sn = SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()) .unwrap(); sn.block_height }; @@ -2822,7 +2822,7 @@ fn process_new_blocks_rejects_problematic_asts() { }; let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()).unwrap(); + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()).unwrap(); let mblock_privk = StacksPrivateKey::new(); @@ -2885,7 +2885,7 @@ fn process_new_blocks_rejects_problematic_asts() { peer.process_stacks_epoch(&block, &consensus_hash, &vec![]); let tip = - SortitionDB::get_canonical_burn_chain_tip(&peer.sortdb.as_ref().unwrap().conn()).unwrap(); + SortitionDB::get_canonical_burn_chain_tip(peer.sortdb.as_ref().unwrap().conn()).unwrap(); let (burn_ops, bad_block, mut microblocks) = peer.make_tenure( |ref mut miner, @@ -3156,7 +3156,7 @@ fn process_new_blocks_rejects_problematic_asts() { &mut network_result, &sortdb, &mut peer.stacks_node.as_mut().unwrap().chainstate, - &mut peer.mempool.as_mut().unwrap(), + peer.mempool.as_mut().unwrap(), None, ) .unwrap(); diff --git a/stackslib/src/net/unsolicited.rs b/stackslib/src/net/unsolicited.rs index e7f1c256a4..1dbd3d7c37 100644 --- a/stackslib/src/net/unsolicited.rs +++ b/stackslib/src/net/unsolicited.rs @@ -138,7 +138,7 @@ impl PeerNetwork { // punish this peer info!( "Peer {:?} sent an invalid update for {}", - &outbound_neighbor_key, + outbound_neighbor_key, if microblocks { "streamed microblocks" } else { @@ -147,7 +147,7 @@ impl PeerNetwork { ); self.bans.insert(event_id); - if let Some(outbound_event_id) = self.events.get(&outbound_neighbor_key) { + if let Some(outbound_event_id) = self.events.get(outbound_neighbor_key) { self.bans.insert(*outbound_event_id); } return Ok(None); @@ -155,7 +155,7 @@ impl PeerNetwork { Err(e) => { warn!( "Failed to update inv state for {:?}: {:?}", - &outbound_neighbor_key, &e + outbound_neighbor_key, &e ); return Ok(None); } @@ -368,7 +368,7 @@ impl PeerNetwork { consensus_hash: &ConsensusHash, is_microblock: bool, ) -> Result { - let sn = SortitionDB::get_block_snapshot_consensus(sortdb.conn(), &consensus_hash)? + let sn = SortitionDB::get_block_snapshot_consensus(sortdb.conn(), consensus_hash)? .ok_or(ChainstateError::NoSuchBlockError)?; let block_hash_opt = if sn.sortition { Some(sn.winning_stacks_block_hash) @@ -421,7 +421,7 @@ impl PeerNetwork { debug!( "{:?}: Process BlocksAvailable from {:?} with {} entries", &self.get_local_peer(), - &outbound_neighbor_key, + outbound_neighbor_key, new_blocks.available.len() ); @@ -449,9 +449,9 @@ impl PeerNetwork { info!( "{:?}: Failed to handle BlocksAvailable({}/{}) from {}: {:?}", &self.get_local_peer(), - &consensus_hash, + consensus_hash, &block_hash, - &outbound_neighbor_key, + outbound_neighbor_key, &e ); continue; @@ -461,14 +461,14 @@ impl PeerNetwork { let need_block = match PeerNetwork::need_block_or_microblock_stream( sortdb, chainstate, - &consensus_hash, + consensus_hash, false, ) { Ok(x) => x, Err(e) => { warn!( "Failed to determine if we need block for consensus hash {}: {:?}", - &consensus_hash, &e + consensus_hash, &e ); false } @@ -476,7 +476,7 @@ impl PeerNetwork { debug!( "Need block {}/{}? {}", - &consensus_hash, &block_hash, need_block + consensus_hash, &block_hash, need_block ); if need_block { @@ -565,9 +565,9 @@ impl PeerNetwork { info!( "{:?}: Failed to handle MicroblocksAvailable({}/{}) from {:?}: {:?}", &self.get_local_peer(), - &consensus_hash, + consensus_hash, &block_hash, - &outbound_neighbor_key, + outbound_neighbor_key, &e ); continue; @@ -577,7 +577,7 @@ impl PeerNetwork { let need_microblock_stream = match PeerNetwork::need_block_or_microblock_stream( sortdb, chainstate, - &consensus_hash, + consensus_hash, true, ) { Ok(x) => x, @@ -589,7 +589,7 @@ impl PeerNetwork { debug!( "Need microblock stream {}/{}? {}", - &consensus_hash, &block_hash, need_microblock_stream + consensus_hash, &block_hash, need_microblock_stream ); if need_microblock_stream { @@ -648,20 +648,18 @@ impl PeerNetwork { let mut to_buffer = false; for BlocksDatum(consensus_hash, block) in new_blocks.blocks.iter() { - let sn = match SortitionDB::get_block_snapshot_consensus( - &sortdb.conn(), - &consensus_hash, - ) { + let sn = match SortitionDB::get_block_snapshot_consensus(sortdb.conn(), consensus_hash) + { Ok(Some(sn)) => sn, Ok(None) => { if buffer { debug!( "{:?}: Will buffer unsolicited BlocksData({}/{}) ({}) -- consensus hash not (yet) recognized", &self.get_local_peer(), - &consensus_hash, + consensus_hash, &block.block_hash(), StacksBlockHeader::make_index_block_hash( - &consensus_hash, + consensus_hash, &block.block_hash() ) ); @@ -670,10 +668,10 @@ impl PeerNetwork { debug!( "{:?}: Will drop unsolicited BlocksData({}/{}) ({}) -- consensus hash not (yet) recognized", &self.get_local_peer(), - &consensus_hash, + consensus_hash, &block.block_hash(), StacksBlockHeader::make_index_block_hash( - &consensus_hash, + consensus_hash, &block.block_hash() ) ); @@ -717,7 +715,7 @@ impl PeerNetwork { let _ = self.handle_unsolicited_inv_update_epoch2x( sortdb, event_id, - &outbound_neighbor_key, + outbound_neighbor_key, &sn.consensus_hash, false, ); @@ -846,7 +844,7 @@ impl PeerNetwork { nakamoto_block: &NakamotoBlock, ) -> (Option, bool) { let (reward_set_sn, can_process) = match SortitionDB::get_block_snapshot_consensus( - &sortdb.conn(), + sortdb.conn(), &nakamoto_block.header.consensus_hash, ) { Ok(Some(sn)) => (sn, true), @@ -1217,7 +1215,7 @@ impl PeerNetwork { && !self.can_buffer_data_message( *event_id, self.pending_messages.get(&(*event_id, neighbor_key.clone())).unwrap_or(&vec![]), - &message, + message, ) { // unable to store this due to quota being exceeded diff --git a/stackslib/src/util_lib/bloom.rs b/stackslib/src/util_lib/bloom.rs index bd9706fd59..d7cf93fa9d 100644 --- a/stackslib/src/util_lib/bloom.rs +++ b/stackslib/src/util_lib/bloom.rs @@ -351,7 +351,7 @@ impl BloomCounter { max_items: u32, hasher: H, ) -> Result, db_error> { - let sql = format!("CREATE TABLE IF NOT EXISTS {}(counts BLOB NOT NULL, num_bins INTEGER NOT NULL, num_hashes INTEGER NOT NULL, hasher BLOB NOT NULL);", table_name); + let sql = format!("CREATE TABLE IF NOT EXISTS {table_name}(counts BLOB NOT NULL, num_bins INTEGER NOT NULL, num_hashes INTEGER NOT NULL, hasher BLOB NOT NULL);"); tx.execute(&sql, NO_PARAMS).map_err(db_error::SqliteError)?; let (num_bins, num_hashes) = bloom_hash_count(error_rate, max_items); @@ -366,8 +366,8 @@ impl BloomCounter { tx.execute(&sql, args).map_err(db_error::SqliteError)?; - let sql = format!("SELECT rowid FROM {}", table_name); - let counts_rowid: u64 = query_expect_row(&tx, &sql, NO_PARAMS)? + let sql = format!("SELECT rowid FROM {table_name}"); + let counts_rowid: u64 = query_expect_row(tx, &sql, NO_PARAMS)? .expect("BUG: inserted bloom counter but can't find row ID"); Ok(BloomCounter { @@ -380,7 +380,7 @@ impl BloomCounter { } pub fn try_load(conn: &DBConn, table_name: &str) -> Result>, db_error> { - let sql = format!("SELECT rowid,* FROM {}", table_name); + let sql = format!("SELECT rowid,* FROM {table_name}"); let result = conn.query_row_and_then(&sql, NO_PARAMS, |row| { let mut hasher_blob = row .get_ref("hasher")? diff --git a/stackslib/src/util_lib/db.rs b/stackslib/src/util_lib/db.rs index 2e9e5c4b1c..6006f8521d 100644 --- a/stackslib/src/util_lib/db.rs +++ b/stackslib/src/util_lib/db.rs @@ -490,7 +490,7 @@ where // gather let mut row_data = vec![]; while let Some(row) = rows.next().map_err(|e| Error::SqliteError(e))? { - let next_row = T::from_column(&row, column_name)?; + let next_row = T::from_column(row, column_name)?; row_data.push(next_row); } @@ -918,7 +918,7 @@ impl<'a, C: Clone, T: MarfTrieId> IndexDBTx<'a, C, T> { marf_values.push(marf_value); } - self.index_mut().insert_batch(&keys, marf_values)?; + self.index_mut().insert_batch(keys, marf_values)?; let root_hash = self.index_mut().seal()?; Ok(root_hash) } diff --git a/stackslib/src/util_lib/signed_structured_data.rs b/stackslib/src/util_lib/signed_structured_data.rs index 14882c2fb9..0826f262be 100644 --- a/stackslib/src/util_lib/signed_structured_data.rs +++ b/stackslib/src/util_lib/signed_structured_data.rs @@ -30,7 +30,7 @@ pub const STRUCTURED_DATA_PREFIX: [u8; 6] = [0x53, 0x49, 0x50, 0x30, 0x31, 0x38] pub fn structured_data_hash(value: Value) -> Sha256Sum { let mut bytes = vec![]; value.serialize_write(&mut bytes).unwrap(); - Sha256Sum::from_data(&bytes.as_slice()) + Sha256Sum::from_data(bytes.as_slice()) } /// Generate a message hash for signing structured Clarity data. @@ -241,7 +241,7 @@ pub mod pox4 { .analyze_smart_contract( &pox_contract_id, clarity_version, - &body, + body, ASTRules::PrecheckSize, ) .unwrap(); @@ -250,7 +250,7 @@ pub mod pox4 { &pox_contract_id, clarity_version, &ast, - &body, + body, None, |_, _| false, ) diff --git a/stackslib/src/util_lib/strings.rs b/stackslib/src/util_lib/strings.rs index d1fb48c86b..ae9ea3e4f7 100644 --- a/stackslib/src/util_lib/strings.rs +++ b/stackslib/src/util_lib/strings.rs @@ -74,13 +74,13 @@ impl fmt::Display for VecDisplay<'_, T> { impl fmt::Display for StacksString { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.write_str(String::from_utf8_lossy(&self).into_owned().as_str()) + f.write_str(String::from_utf8_lossy(self).into_owned().as_str()) } } impl fmt::Debug for StacksString { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.write_str(String::from_utf8_lossy(&self).into_owned().as_str()) + f.write_str(String::from_utf8_lossy(self).into_owned().as_str()) } } @@ -330,7 +330,7 @@ mod test { #[test] fn tx_stacks_strings_codec() { let s = "hello-world"; - let stacks_str = StacksString::from_str(&s).unwrap(); + let stacks_str = StacksString::from_str(s).unwrap(); let clarity_str = ClarityName::try_from(s).unwrap(); let contract_str = ContractName::try_from(s).unwrap(); @@ -359,10 +359,10 @@ mod test { #[test] fn tx_stacks_string_invalid() { let s = "hello\rworld"; - assert!(StacksString::from_str(&s).is_none()); + assert!(StacksString::from_str(s).is_none()); let s = "hello\x01world"; - assert!(StacksString::from_str(&s).is_none()); + assert!(StacksString::from_str(s).is_none()); } #[test] From 3dd68dd3e8d649008d6a7fdca56d96ec00fa9c9f Mon Sep 17 00:00:00 2001 From: Jeff Bencin Date: Sat, 4 Jan 2025 21:16:39 -0500 Subject: [PATCH 02/21] chore: Apply Clippy lint `vec_init_then_push` --- .../chainstate/nakamoto/coordinator/tests.rs | 99 +++++++++---------- stackslib/src/net/api/tests/postblock_v3.rs | 32 ++---- 2 files changed, 59 insertions(+), 72 deletions(-) diff --git a/stackslib/src/chainstate/nakamoto/coordinator/tests.rs b/stackslib/src/chainstate/nakamoto/coordinator/tests.rs index e0b3375452..862c2cad04 100644 --- a/stackslib/src/chainstate/nakamoto/coordinator/tests.rs +++ b/stackslib/src/chainstate/nakamoto/coordinator/tests.rs @@ -3234,54 +3234,53 @@ fn test_stacks_on_burnchain_ops() { let (mut burn_ops, mut tenure_change, miner_key) = peer.begin_nakamoto_tenure(TenureChangeCause::BlockFound); - let mut new_burn_ops = vec![]; - new_burn_ops.push(BlockstackOperationType::DelegateStx(DelegateStxOp { - sender: addr.clone(), - delegate_to: recipient_addr.clone(), - reward_addr: None, - delegated_ustx: 1, - until_burn_height: None, - - // mocked - txid: Txid([i; 32]), - vtxindex: 11, - block_height: block_height + 1, - burn_header_hash: BurnchainHeaderHash([0x00; 32]), - })); - new_burn_ops.push(BlockstackOperationType::StackStx(StackStxOp { - sender: addr.clone(), - reward_addr: PoxAddress::Standard( - recipient_addr.clone(), - Some(AddressHashMode::SerializeP2PKH), - ), - stacked_ustx: 1, - num_cycles: 1, - signer_key: Some(StacksPublicKeyBuffer::from_public_key( - &StacksPublicKey::from_private(&recipient_private_key), - )), - max_amount: Some(1), - auth_id: Some(i as u32), - - // mocked - txid: Txid([i | 0x80; 32]), - vtxindex: 12, - block_height: block_height + 1, - burn_header_hash: BurnchainHeaderHash([0x00; 32]), - })); - new_burn_ops.push(BlockstackOperationType::TransferStx(TransferStxOp { - sender: addr.clone(), - recipient: recipient_addr.clone(), - transfered_ustx: 1, - memo: vec![0x2], - - // mocked - txid: Txid([i | 0x40; 32]), - vtxindex: 13, - block_height: block_height + 1, - burn_header_hash: BurnchainHeaderHash([0x00; 32]), - })); - new_burn_ops.push(BlockstackOperationType::VoteForAggregateKey( - VoteForAggregateKeyOp { + let mut new_burn_ops = vec![ + BlockstackOperationType::DelegateStx(DelegateStxOp { + sender: addr.clone(), + delegate_to: recipient_addr.clone(), + reward_addr: None, + delegated_ustx: 1, + until_burn_height: None, + + // mocked + txid: Txid([i; 32]), + vtxindex: 11, + block_height: block_height + 1, + burn_header_hash: BurnchainHeaderHash([0x00; 32]), + }), + BlockstackOperationType::StackStx(StackStxOp { + sender: addr.clone(), + reward_addr: PoxAddress::Standard( + recipient_addr.clone(), + Some(AddressHashMode::SerializeP2PKH), + ), + stacked_ustx: 1, + num_cycles: 1, + signer_key: Some(StacksPublicKeyBuffer::from_public_key( + &StacksPublicKey::from_private(&recipient_private_key), + )), + max_amount: Some(1), + auth_id: Some(i as u32), + + // mocked + txid: Txid([i | 0x80; 32]), + vtxindex: 12, + block_height: block_height + 1, + burn_header_hash: BurnchainHeaderHash([0x00; 32]), + }), + BlockstackOperationType::TransferStx(TransferStxOp { + sender: addr.clone(), + recipient: recipient_addr.clone(), + transfered_ustx: 1, + memo: vec![0x2], + + // mocked + txid: Txid([i | 0x40; 32]), + vtxindex: 13, + block_height: block_height + 1, + burn_header_hash: BurnchainHeaderHash([0x00; 32]), + }), + BlockstackOperationType::VoteForAggregateKey(VoteForAggregateKeyOp { sender: addr.clone(), aggregate_key: StacksPublicKeyBuffer::from_public_key( &StacksPublicKey::from_private(&agg_private_key), @@ -3298,8 +3297,8 @@ fn test_stacks_on_burnchain_ops() { vtxindex: 14, block_height: block_height + 1, burn_header_hash: BurnchainHeaderHash([0x00; 32]), - }, - )); + }), + ]; extra_burn_ops.push(new_burn_ops.clone()); burn_ops.append(&mut new_burn_ops); diff --git a/stackslib/src/net/api/tests/postblock_v3.rs b/stackslib/src/net/api/tests/postblock_v3.rs index 0b0a95f3a4..0cd5f7b33e 100644 --- a/stackslib/src/net/api/tests/postblock_v3.rs +++ b/stackslib/src/net/api/tests/postblock_v3.rs @@ -178,19 +178,12 @@ fn handle_req_accepted() { |_| true, ); let next_block_id = next_block.block_id(); - let mut requests = vec![]; - - // post the block - requests.push(StacksHttpRequest::new_post_block_v3( - addr.into(), - &next_block, - )); - - // idempotent - requests.push(StacksHttpRequest::new_post_block_v3( - addr.into(), - &next_block, - )); + let requests = vec![ + // post the block + StacksHttpRequest::new_post_block_v3(addr.into(), &next_block), + // idempotent + StacksHttpRequest::new_post_block_v3(addr.into(), &next_block), + ]; let mut responses = rpc_test.run(requests); @@ -229,10 +222,8 @@ fn handle_req_without_trailing_accepted() { |_| true, ); let next_block_id = next_block.block_id(); - let mut requests = vec![]; - - // post the block - requests.push( + let requests = vec![ + // post the block StacksHttpRequest::new_for_peer( addr.into(), "POST".into(), @@ -240,10 +231,7 @@ fn handle_req_without_trailing_accepted() { HttpRequestContents::new().payload_stacks(&next_block), ) .unwrap(), - ); - - // idempotent - requests.push( + // idempotent StacksHttpRequest::new_for_peer( addr.into(), "POST".into(), @@ -251,7 +239,7 @@ fn handle_req_without_trailing_accepted() { HttpRequestContents::new().payload_stacks(&next_block), ) .unwrap(), - ); + ]; let mut responses = rpc_test.run(requests); let response = responses.remove(0); From d8be6a26d17877491b659d516dfbb7a608dfef40 Mon Sep 17 00:00:00 2001 From: Jeff Bencin Date: Sat, 4 Jan 2025 21:42:48 -0500 Subject: [PATCH 03/21] chore: Apply Clippy lint `iter_kv_map` --- stackslib/src/burnchains/affirmation.rs | 2 +- stackslib/src/burnchains/db.rs | 4 ++-- stackslib/src/chainstate/stacks/miner.rs | 6 +---- stackslib/src/net/atlas/download.rs | 8 +++---- .../nakamoto/download_state_machine.rs | 3 +-- stackslib/src/net/inv/nakamoto.rs | 4 ++-- stackslib/src/net/mod.rs | 24 +++++++++---------- stackslib/src/net/relay.rs | 11 ++++----- 8 files changed, 27 insertions(+), 35 deletions(-) diff --git a/stackslib/src/burnchains/affirmation.rs b/stackslib/src/burnchains/affirmation.rs index 88ad745800..9f97e37dc9 100644 --- a/stackslib/src/burnchains/affirmation.rs +++ b/stackslib/src/burnchains/affirmation.rs @@ -679,7 +679,7 @@ pub fn read_parent_block_commits( } } } - let mut parent_list: Vec<_> = parents.into_iter().map(|(_, cmt)| cmt).collect(); + let mut parent_list: Vec<_> = parents.into_values().collect(); parent_list.sort_by(|a, b| { if a.block_height != b.block_height { a.block_height.cmp(&b.block_height) diff --git a/stackslib/src/burnchains/db.rs b/stackslib/src/burnchains/db.rs index 1f42881ac2..30d52f5039 100644 --- a/stackslib/src/burnchains/db.rs +++ b/stackslib/src/burnchains/db.rs @@ -1245,8 +1245,8 @@ impl BurnchainDB { ops.extend( pre_stx_ops - .into_iter() - .map(|(_, op)| BlockstackOperationType::PreStx(op)), + .into_values() + .map(BlockstackOperationType::PreStx), ); ops.sort_by_key(|op| op.vtxindex()); diff --git a/stackslib/src/chainstate/stacks/miner.rs b/stackslib/src/chainstate/stacks/miner.rs index eae3e1f14d..235d9e0f8e 100644 --- a/stackslib/src/chainstate/stacks/miner.rs +++ b/stackslib/src/chainstate/stacks/miner.rs @@ -262,11 +262,7 @@ pub struct MinerEpochInfo<'a> { impl From<&UnconfirmedState> for MicroblockMinerRuntime { fn from(unconfirmed: &UnconfirmedState) -> MicroblockMinerRuntime { - let considered = unconfirmed - .mined_txs - .iter() - .map(|(txid, _)| txid.clone()) - .collect(); + let considered = unconfirmed.mined_txs.keys().cloned().collect(); MicroblockMinerRuntime { bytes_so_far: unconfirmed.bytes_so_far, prev_microblock_header: unconfirmed.last_mblock.clone(), diff --git a/stackslib/src/net/atlas/download.rs b/stackslib/src/net/atlas/download.rs index f877a0da3a..07e9a6cbd4 100644 --- a/stackslib/src/net/atlas/download.rs +++ b/stackslib/src/net/atlas/download.rs @@ -533,8 +533,8 @@ impl AttachmentsBatchStateContext { } let mut events_ids = results .faulty_peers - .iter() - .map(|(k, _)| *k) + .keys() + .map(|k| *k) .collect::>(); self.events_to_deregister.append(&mut events_ids); @@ -567,8 +567,8 @@ impl AttachmentsBatchStateContext { } let mut events_ids = results .faulty_peers - .iter() - .map(|(k, _)| *k) + .keys() + .map(|k| *k) .collect::>(); self.events_to_deregister.append(&mut events_ids); diff --git a/stackslib/src/net/download/nakamoto/download_state_machine.rs b/stackslib/src/net/download/nakamoto/download_state_machine.rs index 4c509ed5c1..f0eecaeb0b 100644 --- a/stackslib/src/net/download/nakamoto/download_state_machine.rs +++ b/stackslib/src/net/download/nakamoto/download_state_machine.rs @@ -1402,8 +1402,7 @@ impl NakamotoDownloadStateMachine { let tenure_blocks = coalesced_blocks .into_iter() .map(|(consensus_hash, block_map)| { - let mut block_list: Vec<_> = - block_map.into_iter().map(|(_, block)| block).collect(); + let mut block_list: Vec<_> = block_map.into_values().collect(); block_list.sort_unstable_by_key(|blk| blk.header.chain_length); (consensus_hash, block_list) }) diff --git a/stackslib/src/net/inv/nakamoto.rs b/stackslib/src/net/inv/nakamoto.rs index c103f16eb7..c30ef23893 100644 --- a/stackslib/src/net/inv/nakamoto.rs +++ b/stackslib/src/net/inv/nakamoto.rs @@ -750,8 +750,8 @@ impl NakamotoInvStateMachine { /// Highest reward cycle learned pub fn highest_reward_cycle(&self) -> u64 { self.inventories - .iter() - .map(|(_, inv)| inv.highest_reward_cycle()) + .values() + .map(|inv| inv.highest_reward_cycle()) .max() .unwrap_or(0) } diff --git a/stackslib/src/net/mod.rs b/stackslib/src/net/mod.rs index 415f74c739..d865722601 100644 --- a/stackslib/src/net/mod.rs +++ b/stackslib/src/net/mod.rs @@ -1580,8 +1580,8 @@ impl NetworkResult { let pushed_blocks: HashSet<_> = self .pushed_blocks - .iter() - .map(|(_, block_list)| { + .values() + .map(|block_list| { block_list .iter() .map(|block_data| { @@ -1626,8 +1626,8 @@ impl NetworkResult { let pushed_microblocks: HashSet<_> = self .pushed_microblocks - .iter() - .map(|(_, mblock_list)| { + .values() + .map(|mblock_list| { mblock_list .iter() .map(|(_, mblock_data)| { @@ -1657,14 +1657,14 @@ impl NetworkResult { fn all_nakamoto_block_ids(&self) -> HashSet { let mut naka_block_ids: HashSet<_> = self .nakamoto_blocks - .iter() - .map(|(_, nblk)| nblk.block_id()) + .values() + .map(|nblk| nblk.block_id()) .collect(); let pushed_nakamoto_blocks: HashSet<_> = self .pushed_nakamoto_blocks - .iter() - .map(|(_, naka_blocks_list)| { + .values() + .map(|naka_blocks_list| { naka_blocks_list .iter() .map(|(_, naka_blocks)| { @@ -1705,8 +1705,8 @@ impl NetworkResult { .collect(); let pushed_txids: HashSet<_> = self .pushed_transactions - .iter() - .map(|(_, tx_list)| { + .values() + .map(|tx_list| { tx_list .iter() .map(|(_, tx)| tx.txid()) @@ -1734,8 +1734,8 @@ impl NetworkResult { /// This is unique per message. fn all_msg_sigs(&self) -> HashSet { self.unhandled_messages - .iter() - .map(|(_, msgs)| { + .values() + .map(|msgs| { msgs.iter() .map(|msg| msg.preamble.signature.clone()) .collect::>() diff --git a/stackslib/src/net/relay.rs b/stackslib/src/net/relay.rs index 9121bac2c9..6ab26a93a7 100644 --- a/stackslib/src/net/relay.rs +++ b/stackslib/src/net/relay.rs @@ -2607,21 +2607,18 @@ impl Relayer { new_microblocks: Vec<(Vec, MicroblocksData)>, ) { // have the p2p thread tell our neighbors about newly-discovered blocks - let new_block_chs = new_blocks.iter().map(|(ch, _)| ch.clone()).collect(); + let new_block_chs = new_blocks.keys().cloned().collect(); let available = Relayer::load_blocks_available_data(sortdb, new_block_chs) .unwrap_or(BlocksAvailableMap::new()); if !available.is_empty() { debug!("{:?}: Blocks available: {}", &_local_peer, available.len()); if let Err(e) = self.p2p.advertize_blocks(available, new_blocks) { - warn!("Failed to advertize new blocks: {:?}", &e); + warn!("Failed to advertize new blocks: {e:?}"); } } // have the p2p thread tell our neighbors about newly-discovered confirmed microblock streams - let new_mblock_chs = new_confirmed_microblocks - .iter() - .map(|(ch, _)| ch.clone()) - .collect(); + let new_mblock_chs = new_confirmed_microblocks.keys().cloned().collect(); let mblocks_available = Relayer::load_blocks_available_data(sortdb, new_mblock_chs) .unwrap_or(BlocksAvailableMap::new()); if !mblocks_available.is_empty() { @@ -2634,7 +2631,7 @@ impl Relayer { .p2p .advertize_microblocks(mblocks_available, new_confirmed_microblocks) { - warn!("Failed to advertize new confirmed microblocks: {:?}", &e); + warn!("Failed to advertize new confirmed microblocks: {e:?}"); } } From 075125996e80dc64faa4e20268b73260af66a6c5 Mon Sep 17 00:00:00 2001 From: Jeff Bencin Date: Sat, 4 Jan 2025 23:36:11 -0500 Subject: [PATCH 04/21] chore: Apply Clippy lint `iter_with_drain` --- clarity/src/vm/tests/datamaps.rs | 8 +++---- stacks-common/src/address/c32_old.rs | 2 +- stacks-common/src/util/chunked_encoding.rs | 4 ++-- stackslib/src/net/chat.rs | 4 ++-- stackslib/src/net/connection.rs | 8 +++---- stackslib/src/net/http/request.rs | 4 ++-- stackslib/src/net/http/response.rs | 4 ++-- stackslib/src/net/server.rs | 4 ++-- stackslib/src/net/tests/download/epoch2x.rs | 23 +++++++-------------- 9 files changed, 27 insertions(+), 34 deletions(-) diff --git a/clarity/src/vm/tests/datamaps.rs b/clarity/src/vm/tests/datamaps.rs index 828de608e7..6c17766434 100644 --- a/clarity/src/vm/tests/datamaps.rs +++ b/clarity/src/vm/tests/datamaps.rs @@ -642,7 +642,7 @@ fn bad_define_maps() { "(define-map lists { name: int } contents 5)", "(define-map lists { name: int } { contents: (list 5 0 int) })", ]; - let mut expected: Vec = vec![ + let expected: Vec = vec![ CheckErrors::BadSyntaxExpectedListOfPairs.into(), CheckErrors::UnknownTypeName("contents".to_string()).into(), CheckErrors::ExpectedName.into(), @@ -650,7 +650,7 @@ fn bad_define_maps() { CheckErrors::InvalidTypeDescription.into(), ]; - for (test, expected_err) in tests.iter().zip(expected.drain(..)) { + for (test, expected_err) in tests.iter().zip(expected.into_iter()) { let outcome = execute(test).unwrap_err(); assert_eq!(outcome, expected_err); } @@ -666,7 +666,7 @@ fn bad_tuples() { "(get name five (tuple (name 1)))", "(get 1234 (tuple (name 1)))", ]; - let mut expected = vec![ + let expected = vec![ CheckErrors::NameAlreadyUsed("name".into()), CheckErrors::BadSyntaxBinding, CheckErrors::BadSyntaxBinding, @@ -678,7 +678,7 @@ fn bad_tuples() { CheckErrors::ExpectedName, ]; - for (test, expected_err) in tests.iter().zip(expected.drain(..)) { + for (test, expected_err) in tests.iter().zip(expected.into_iter()) { let outcome = execute(test).unwrap_err(); assert_eq!(outcome, expected_err.into()); } diff --git a/stacks-common/src/address/c32_old.rs b/stacks-common/src/address/c32_old.rs index 29d441e5c0..6761afac05 100644 --- a/stacks-common/src/address/c32_old.rs +++ b/stacks-common/src/address/c32_old.rs @@ -67,7 +67,7 @@ fn c32_encode(input_bytes: &[u8]) -> String { } } - let result: Vec = result.drain(..).rev().collect(); + let result: Vec = result.into_iter().rev().collect(); String::from_utf8(result).unwrap() } diff --git a/stacks-common/src/util/chunked_encoding.rs b/stacks-common/src/util/chunked_encoding.rs index 445ec5a831..d6771e2218 100644 --- a/stacks-common/src/util/chunked_encoding.rs +++ b/stacks-common/src/util/chunked_encoding.rs @@ -504,14 +504,14 @@ mod test { #[test] fn test_segment_reader() { - let mut tests = vec![ + let tests = vec![ (vec_u8(vec!["a", "b"]), "ab"), (vec_u8(vec!["aa", "bbb", "cccc"]), "aabbbcccc"), (vec_u8(vec!["aaaa", "bbb", "cc", "d", ""]), "aaaabbbccd"), (vec_u8(vec!["", "a", "", "b", ""]), "ab"), (vec_u8(vec![""]), ""), ]; - for (input_vec, expected) in tests.drain(..) { + for (input_vec, expected) in tests.into_iter() { let num_segments = input_vec.len(); let mut segment_io = SegmentReader::new(input_vec); let mut output = vec![0u8; expected.len()]; diff --git a/stackslib/src/net/chat.rs b/stackslib/src/net/chat.rs index e8deeeda47..ad73c91976 100644 --- a/stackslib/src/net/chat.rs +++ b/stackslib/src/net/chat.rs @@ -6459,7 +6459,7 @@ mod test { }]; // allowed - let mut relayers = vec![ + let relayers = vec![ RelayData { peer: NeighborAddress { addrbytes: PeerAddress([0u8; 16]), @@ -6488,7 +6488,7 @@ mod test { let relayer_map = convo.stats.take_relayers(); assert_eq!(convo.stats.relayed_messages.len(), 0); - for r in relayers.drain(..) { + for r in relayers.into_iter() { assert!(relayer_map.contains_key(&r.peer)); let stats = relayer_map.get(&r.peer).unwrap(); diff --git a/stackslib/src/net/connection.rs b/stackslib/src/net/connection.rs index 954b16ced8..deef67a835 100644 --- a/stackslib/src/net/connection.rs +++ b/stackslib/src/net/connection.rs @@ -1811,7 +1811,7 @@ mod test { test_debug!("Received {} bytes in total", total_bytes); - let mut flushed_handles = rx.recv().unwrap(); + let flushed_handles = rx.recv().unwrap(); match shared_state.lock() { Ok(ref mut conn) => { @@ -1838,15 +1838,15 @@ mod test { assert_eq!(recved.len(), 0); } Err(e) => { - assert!(false, "{:?}", &e); + assert!(false, "{e:?}"); unreachable!(); } } // got all messages let mut recved = vec![]; - for (i, rh) in flushed_handles.drain(..).enumerate() { - test_debug!("recv {}", i); + for (i, rh) in flushed_handles.into_iter().enumerate() { + test_debug!("recv {i}"); let res = rh.recv(0).unwrap(); recved.push(res); } diff --git a/stackslib/src/net/http/request.rs b/stackslib/src/net/http/request.rs index 6535f4a14a..3db81b50b3 100644 --- a/stackslib/src/net/http/request.rs +++ b/stackslib/src/net/http/request.rs @@ -117,7 +117,7 @@ impl HttpRequestPreamble { hostname: String, port: u16, keep_alive: bool, - mut keys: Vec, + keys: Vec, values: Vec, ) -> HttpRequestPreamble { assert_eq!(keys.len(), values.len()); @@ -130,7 +130,7 @@ impl HttpRequestPreamble { keep_alive, ); - for (k, v) in keys.drain(..).zip(values) { + for (k, v) in keys.into_iter().zip(values) { req.add_header(k, v); } req diff --git a/stackslib/src/net/http/response.rs b/stackslib/src/net/http/response.rs index 3ebed7e9d2..d741f7a4bf 100644 --- a/stackslib/src/net/http/response.rs +++ b/stackslib/src/net/http/response.rs @@ -259,7 +259,7 @@ impl HttpResponsePreamble { keep_alive: bool, content_length: Option, content_type: HttpContentType, - mut keys: Vec, + keys: Vec, values: Vec, ) -> HttpResponsePreamble { assert_eq!(keys.len(), values.len()); @@ -272,7 +272,7 @@ impl HttpResponsePreamble { keep_alive, ); - for (k, v) in keys.drain(..).zip(values) { + for (k, v) in keys.into_iter().zip(values) { res.add_header(k, v); } res diff --git a/stackslib/src/net/server.rs b/stackslib/src/net/server.rs index 78f0f6fbb5..dd4c8d698d 100644 --- a/stackslib/src/net/server.rs +++ b/stackslib/src/net/server.rs @@ -753,7 +753,7 @@ mod test { client_requests.push(request); } - for (i, request) in client_requests.drain(..).enumerate() { + for (i, request) in client_requests.into_iter().enumerate() { let (client_sx, client_rx) = sync_channel(1); let client = thread::spawn(move || { let mut sock = TcpStream::connect( @@ -799,7 +799,7 @@ mod test { client_handles.push(client_rx); } - for (i, client_thread) in client_threads.drain(..).enumerate() { + for (i, client_thread) in client_threads.into_iter().enumerate() { test_debug!("Client join {}", i); client_thread.join().unwrap(); let resp = client_handles[i].recv().unwrap(); diff --git a/stackslib/src/net/tests/download/epoch2x.rs b/stackslib/src/net/tests/download/epoch2x.rs index 9c995f1f32..b1d62a42b6 100644 --- a/stackslib/src/net/tests/download/epoch2x.rs +++ b/stackslib/src/net/tests/download/epoch2x.rs @@ -280,11 +280,7 @@ where make_topology(&mut peer_configs); - let mut peers = vec![]; - for conf in peer_configs.drain(..) { - let peer = TestPeer::new(conf); - peers.push(peer); - } + let mut peers: Vec<_> = peer_configs.into_iter().map(TestPeer::new).collect(); let mut num_blocks = 10; let first_stacks_block_height = { @@ -511,7 +507,7 @@ where } drop(dns_clients); - for handle in dns_threads.drain(..) { + for handle in dns_threads.into_iter() { handle.join().unwrap(); } @@ -904,7 +900,7 @@ pub fn test_get_blocks_and_microblocks_5_peers_star() { peer_configs[i].add_neighbor(&peer_0); } - for n in neighbors.drain(..) { + for n in neighbors.into_iter() { peer_configs[0].add_neighbor(&n); } }, @@ -1060,7 +1056,7 @@ pub fn test_get_blocks_and_microblocks_overwhelmed_connections() { peer_configs[i].connection_opts.max_http_clients = 1; } - for n in neighbors.drain(..) { + for n in neighbors.into_iter() { peer_configs[0].add_neighbor(&n); } }, @@ -1139,7 +1135,7 @@ pub fn test_get_blocks_and_microblocks_overwhelmed_sockets() { peer_configs[i].connection_opts.max_sockets = 10; } - for n in neighbors.drain(..) { + for n in neighbors.into_iter() { peer_configs[0].add_neighbor(&n); } }, @@ -1175,12 +1171,9 @@ pub fn test_get_blocks_and_microblocks_overwhelmed_sockets() { |peer| { // check peer health // nothing should break - match peer.network.block_downloader { - Some(ref dl) => { - assert_eq!(dl.broken_peers.len(), 0); - assert_eq!(dl.dead_peers.len(), 0); - } - None => {} + if let Some(ref dl) = peer.network.block_downloader { + assert_eq!(dl.broken_peers.len(), 0); + assert_eq!(dl.dead_peers.len(), 0); } true }, From 83f427485f2321ebe057a5b7c78efb8f4811017d Mon Sep 17 00:00:00 2001 From: Jeff Bencin Date: Sun, 5 Jan 2025 16:42:55 -0500 Subject: [PATCH 05/21] chore: Apply Clippy lint ``map_clone` --- stackslib/src/burnchains/burnchain.rs | 5 ++-- .../src/chainstate/stacks/db/unconfirmed.rs | 2 +- .../src/chainstate/stacks/index/cache.rs | 2 +- stackslib/src/clarity_cli.rs | 16 ++++++------ stackslib/src/core/mempool.rs | 2 +- stackslib/src/net/api/tests/getheaders.rs | 14 +++------- .../src/net/api/tests/postmempoolquery.rs | 2 +- stackslib/src/net/atlas/download.rs | 14 +++------- stackslib/src/net/db.rs | 3 +-- .../nakamoto/download_state_machine.rs | 2 +- stackslib/src/net/inv/nakamoto.rs | 2 +- stackslib/src/net/mod.rs | 9 +++---- stackslib/src/net/neighbors/comms.rs | 4 +-- stackslib/src/net/neighbors/db.rs | 2 +- stackslib/src/net/p2p.rs | 4 +-- stackslib/src/net/tests/inv/nakamoto.rs | 26 +++++-------------- stackslib/src/net/tests/mempool/mod.rs | 12 ++------- 17 files changed, 40 insertions(+), 81 deletions(-) diff --git a/stackslib/src/burnchains/burnchain.rs b/stackslib/src/burnchains/burnchain.rs index caeefe538c..648da211c8 100644 --- a/stackslib/src/burnchains/burnchain.rs +++ b/stackslib/src/burnchains/burnchain.rs @@ -136,7 +136,7 @@ impl BurnchainStateTransition { return Some(block_total_burns[0]); } else if block_total_burns.len() % 2 != 0 { let idx = block_total_burns.len() / 2; - return block_total_burns.get(idx).map(|b| *b); + return block_total_burns.get(idx).copied(); } else { // NOTE: the `- 1` is safe because block_total_burns.len() >= 2 let idx_left = block_total_burns.len() / 2 - 1; @@ -269,8 +269,7 @@ impl BurnchainStateTransition { let mut missed_commits_at_height = SortitionDB::get_missed_commits_by_intended(sort_tx.tx(), &sortition_id)?; if let Some(missed_commit_in_block) = missed_commits_map.remove(&sortition_id) { - missed_commits_at_height - .extend(missed_commit_in_block.into_iter().map(|x| x.clone())); + missed_commits_at_height.extend(missed_commit_in_block.into_iter().cloned()); } windowed_missed_commits.push(missed_commits_at_height); diff --git a/stackslib/src/chainstate/stacks/db/unconfirmed.rs b/stackslib/src/chainstate/stacks/db/unconfirmed.rs index b39de26c18..8973597917 100644 --- a/stackslib/src/chainstate/stacks/db/unconfirmed.rs +++ b/stackslib/src/chainstate/stacks/db/unconfirmed.rs @@ -443,7 +443,7 @@ impl UnconfirmedState { &self, txid: &Txid, ) -> Option<(StacksTransaction, BlockHeaderHash, u16)> { - self.mined_txs.get(txid).map(|x| x.clone()) + self.mined_txs.get(txid).cloned() } pub fn num_microblocks(&self) -> u64 { diff --git a/stackslib/src/chainstate/stacks/index/cache.rs b/stackslib/src/chainstate/stacks/index/cache.rs index 7547fd6d80..6ba2c5feac 100644 --- a/stackslib/src/chainstate/stacks/index/cache.rs +++ b/stackslib/src/chainstate/stacks/index/cache.rs @@ -151,7 +151,7 @@ impl TrieCacheState { /// Get the block ID, given its hash pub fn load_block_id(&self, block_hash: &T) -> Option { - self.block_id_cache.get(block_hash).map(|id| *id) + self.block_id_cache.get(block_hash).copied() } } diff --git a/stackslib/src/clarity_cli.rs b/stackslib/src/clarity_cli.rs index d07399a027..c6bc797b8d 100644 --- a/stackslib/src/clarity_cli.rs +++ b/stackslib/src/clarity_cli.rs @@ -1002,7 +1002,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().map(|x| x.clone()).collect(); + let mut argv: Vec = args.into_iter().cloned().collect(); let mainnet = if let Ok(Some(_)) = consume_arg(&mut argv, &["--testnet"], false) { false @@ -1127,7 +1127,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option = args.into_iter().map(|x| x.clone()).collect(); + let mut argv: Vec = args.into_iter().cloned().collect(); let contract_id = if let Ok(optarg) = consume_arg(&mut argv, &["--contract_id"], true) { optarg .map(|optarg_str| { @@ -1253,7 +1253,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().map(|x| x.clone()).collect(); + let mut argv: Vec = args.into_iter().cloned().collect(); let mainnet = if let Ok(Some(_)) = consume_arg(&mut argv, &["--testnet"], false) { false } else { @@ -1385,7 +1385,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().map(|x| x.clone()).collect(); + let mut argv: Vec = args.into_iter().cloned().collect(); let costs = if let Ok(Some(_)) = consume_arg(&mut argv, &["--costs"], false) { true @@ -1448,7 +1448,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().map(|x| x.clone()).collect(); + let mut argv: Vec = args.into_iter().cloned().collect(); let costs = if let Ok(Some(_)) = consume_arg(&mut argv, &["--costs"], false) { true @@ -1530,7 +1530,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().map(|x| x.clone()).collect(); + let mut argv: Vec = args.into_iter().cloned().collect(); let costs = if let Ok(Some(_)) = consume_arg(&mut argv, &["--costs"], false) { true @@ -1612,7 +1612,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().map(|x| x.clone()).collect(); + let mut argv: Vec = args.into_iter().cloned().collect(); let coverage_folder = if let Ok(covarg) = consume_arg(&mut argv, &["--c"], true) { covarg } else { @@ -1767,7 +1767,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().map(|x| x.clone()).collect(); + let mut argv: Vec = args.into_iter().cloned().collect(); let coverage_folder = if let Ok(covarg) = consume_arg(&mut argv, &["--c"], true) { covarg } else { diff --git a/stackslib/src/core/mempool.rs b/stackslib/src/core/mempool.rs index 865f99d3b0..24a59664fc 100644 --- a/stackslib/src/core/mempool.rs +++ b/stackslib/src/core/mempool.rs @@ -520,7 +520,7 @@ impl MemPoolWalkTxTypes { } pub fn only(selected: &[MemPoolWalkTxTypes]) -> HashSet { - selected.iter().map(|x| x.clone()).collect() + selected.iter().copied().collect() } } diff --git a/stackslib/src/net/api/tests/getheaders.rs b/stackslib/src/net/api/tests/getheaders.rs index 4ea4480082..f6053c5482 100644 --- a/stackslib/src/net/api/tests/getheaders.rs +++ b/stackslib/src/net/api/tests/getheaders.rs @@ -295,11 +295,8 @@ fn test_stream_getheaders() { let block_expected_headers: Vec = blocks.iter().rev().map(|blk| blk.header.clone()).collect(); - let block_expected_index_hashes: Vec = blocks_index_hashes - .iter() - .rev() - .map(|idx| idx.clone()) - .collect(); + let block_expected_index_hashes: Vec = + blocks_index_hashes.iter().rev().copied().collect(); let block_fork_expected_headers: Vec = blocks_fork .iter() @@ -307,11 +304,8 @@ fn test_stream_getheaders() { .map(|blk| blk.header.clone()) .collect(); - let block_fork_expected_index_hashes: Vec = blocks_fork_index_hashes - .iter() - .rev() - .map(|idx| idx.clone()) - .collect(); + let block_fork_expected_index_hashes: Vec = + blocks_fork_index_hashes.iter().rev().copied().collect(); // get them all -- ask for more than there is let mut stream = diff --git a/stackslib/src/net/api/tests/postmempoolquery.rs b/stackslib/src/net/api/tests/postmempoolquery.rs index 8f921525a3..55a763884e 100644 --- a/stackslib/src/net/api/tests/postmempoolquery.rs +++ b/stackslib/src/net/api/tests/postmempoolquery.rs @@ -96,7 +96,7 @@ fn test_try_make_response() { let test_rpc = TestRPC::setup(function_name!()); let mempool_txids = test_rpc.mempool_txids.clone(); - let mempool_txids: HashSet<_> = mempool_txids.iter().map(|txid| txid.clone()).collect(); + let mempool_txids: HashSet<_> = mempool_txids.iter().copied().collect(); let sync_data = test_rpc .peer_1 diff --git a/stackslib/src/net/atlas/download.rs b/stackslib/src/net/atlas/download.rs index 07e9a6cbd4..ca1b70ac7c 100644 --- a/stackslib/src/net/atlas/download.rs +++ b/stackslib/src/net/atlas/download.rs @@ -373,7 +373,7 @@ impl AttachmentsBatchStateContext { } pub fn get_peers_urls(&self) -> Vec { - self.peers.keys().map(|e| e.clone()).collect() + self.peers.keys().cloned().collect() } pub fn get_prioritized_attachments_inventory_requests( @@ -531,11 +531,7 @@ impl AttachmentsBatchStateContext { report.bump_failed_requests(); } } - let mut events_ids = results - .faulty_peers - .keys() - .map(|k| *k) - .collect::>(); + let mut events_ids = results.faulty_peers.keys().copied().collect::>(); self.events_to_deregister.append(&mut events_ids); self @@ -565,11 +561,7 @@ impl AttachmentsBatchStateContext { report.bump_failed_requests(); } } - let mut events_ids = results - .faulty_peers - .keys() - .map(|k| *k) - .collect::>(); + let mut events_ids = results.faulty_peers.keys().copied().collect::>(); self.events_to_deregister.append(&mut events_ids); self diff --git a/stackslib/src/net/db.rs b/stackslib/src/net/db.rs index 35471183f3..1cf077b2ef 100644 --- a/stackslib/src/net/db.rs +++ b/stackslib/src/net/db.rs @@ -1447,8 +1447,7 @@ impl PeerDB { let cur_dbs_set: HashSet<_> = PeerDB::static_get_peer_stacker_dbs(tx, neighbor)? .into_iter() .collect(); - let new_dbs_set: HashSet = - dbs.iter().map(|cid| cid.clone()).collect(); + let new_dbs_set: HashSet = dbs.iter().cloned().collect(); let to_insert: Vec<_> = new_dbs_set.difference(&cur_dbs_set).collect(); let to_delete: Vec<_> = cur_dbs_set.difference(&new_dbs_set).collect(); diff --git a/stackslib/src/net/download/nakamoto/download_state_machine.rs b/stackslib/src/net/download/nakamoto/download_state_machine.rs index f0eecaeb0b..b022ec2fb7 100644 --- a/stackslib/src/net/download/nakamoto/download_state_machine.rs +++ b/stackslib/src/net/download/nakamoto/download_state_machine.rs @@ -1144,7 +1144,7 @@ impl NakamotoDownloadStateMachine { ) { debug!("Run unconfirmed tenure downloaders"); - let addrs: Vec<_> = downloaders.keys().map(|addr| addr.clone()).collect(); + let addrs: Vec<_> = downloaders.keys().cloned().collect(); let mut finished = vec![]; let mut unconfirmed_blocks = HashMap::new(); let mut highest_completed_tenure_downloaders = HashMap::new(); diff --git a/stackslib/src/net/inv/nakamoto.rs b/stackslib/src/net/inv/nakamoto.rs index c30ef23893..a3b8d3a833 100644 --- a/stackslib/src/net/inv/nakamoto.rs +++ b/stackslib/src/net/inv/nakamoto.rs @@ -856,7 +856,7 @@ impl NakamotoInvStateMachine { // we're updating inventories, so preserve the state we have let mut new_inventories = HashMap::new(); - let event_ids: Vec = network.iter_peer_event_ids().map(|e_id| *e_id).collect(); + let event_ids: Vec = network.iter_peer_event_ids().copied().collect(); debug!( "Send GetNakamotoInv to up to {} peers (ibd={})", diff --git a/stackslib/src/net/mod.rs b/stackslib/src/net/mod.rs index d865722601..a1b69b7c1f 100644 --- a/stackslib/src/net/mod.rs +++ b/stackslib/src/net/mod.rs @@ -2104,8 +2104,8 @@ impl NetworkResult { self.pushed_transactions .values() .flat_map(|pushed_txs| pushed_txs.iter().map(|(_, tx)| tx.clone())) - .chain(self.uploaded_transactions.iter().map(|x| x.clone())) - .chain(self.synced_transactions.iter().map(|x| x.clone())) + .chain(self.uploaded_transactions.iter().cloned()) + .chain(self.synced_transactions.iter().cloned()) .collect() } @@ -2553,7 +2553,7 @@ pub mod test { parent: parent.clone(), winner_txid, matured_rewards: matured_rewards.to_owned(), - matured_rewards_info: matured_rewards_info.map(|info| info.clone()), + matured_rewards_info: matured_rewards_info.cloned(), reward_set_data: reward_set_data.clone(), }) } @@ -3147,8 +3147,7 @@ pub mod test { let stacker_db_syncs = Self::init_stackerdb_syncs(&test_path, &peerdb, &mut stackerdb_configs); - let stackerdb_contracts: Vec<_> = - stacker_db_syncs.keys().map(|cid| cid.clone()).collect(); + let stackerdb_contracts: Vec<_> = stacker_db_syncs.keys().cloned().collect(); let burnchain_db = config.burnchain.open_burnchain_db(false).unwrap(); diff --git a/stackslib/src/net/neighbors/comms.rs b/stackslib/src/net/neighbors/comms.rs index ed0e03f5c6..20d23061a7 100644 --- a/stackslib/src/net/neighbors/comms.rs +++ b/stackslib/src/net/neighbors/comms.rs @@ -515,9 +515,7 @@ impl NeighborComms for PeerNetworkComms { } fn get_connecting(&self, network: &PeerNetwork, nk: &NK) -> Option { - self.connecting - .get(&nk.to_neighbor_key(network)) - .map(|event_ref| *event_ref) + self.connecting.get(&nk.to_neighbor_key(network)).copied() } /// Remove a connecting neighbor because it connected diff --git a/stackslib/src/net/neighbors/db.rs b/stackslib/src/net/neighbors/db.rs index ebf83af962..595c40d54d 100644 --- a/stackslib/src/net/neighbors/db.rs +++ b/stackslib/src/net/neighbors/db.rs @@ -55,7 +55,7 @@ impl NeighborReplacements { } pub fn get_slot(&self, naddr: &NeighborAddress) -> Option { - self.replaced_neighbors.get(naddr).map(|slot| *slot) + self.replaced_neighbors.get(naddr).copied() } pub fn get_neighbor(&self, naddr: &NeighborAddress) -> Option<&Neighbor> { diff --git a/stackslib/src/net/p2p.rs b/stackslib/src/net/p2p.rs index 9300fa9150..0703c6c775 100644 --- a/stackslib/src/net/p2p.rs +++ b/stackslib/src/net/p2p.rs @@ -1861,7 +1861,7 @@ impl PeerNetwork { /// Get the event ID associated with a neighbor key pub fn get_event_id(&self, neighbor_key: &NeighborKey) -> Option { - self.events.get(neighbor_key).map(|eid| *eid) + self.events.get(neighbor_key).copied() } /// Get a ref to a conversation given a neighbor key @@ -3255,7 +3255,7 @@ impl PeerNetwork { let neighbor_keys: Vec = self .inv_state .as_ref() - .map(|inv_state| inv_state.block_stats.keys().map(|nk| nk.clone()).collect()) + .map(|inv_state| inv_state.block_stats.keys().cloned().collect()) .unwrap_or(vec![]); if self.antientropy_start_reward_cycle == 0 { diff --git a/stackslib/src/net/tests/inv/nakamoto.rs b/stackslib/src/net/tests/inv/nakamoto.rs index 3a29d453ae..992f5970b5 100644 --- a/stackslib/src/net/tests/inv/nakamoto.rs +++ b/stackslib/src/net/tests/inv/nakamoto.rs @@ -901,16 +901,9 @@ fn test_nakamoto_inv_sync_state_machine() { let _ = peer.step_with_ibd(false); let _ = other_peer.step_with_ibd(false); - let event_ids: Vec = peer - .network - .iter_peer_event_ids() - .map(|e_id| *e_id) - .collect(); - let other_event_ids: Vec = other_peer - .network - .iter_peer_event_ids() - .map(|e_id| *e_id) - .collect(); + let event_ids: Vec = peer.network.iter_peer_event_ids().copied().collect(); + let other_event_ids: Vec = + other_peer.network.iter_peer_event_ids().copied().collect(); if !event_ids.is_empty() && !other_event_ids.is_empty() { break; @@ -1032,16 +1025,9 @@ fn test_nakamoto_inv_sync_across_epoch_change() { let _ = peer.step_with_ibd(false); let _ = other_peer.step_with_ibd(false); - let event_ids: Vec = peer - .network - .iter_peer_event_ids() - .map(|e_id| *e_id) - .collect(); - let other_event_ids: Vec = other_peer - .network - .iter_peer_event_ids() - .map(|e_id| *e_id) - .collect(); + let event_ids: Vec = peer.network.iter_peer_event_ids().copied().collect(); + let other_event_ids: Vec = + other_peer.network.iter_peer_event_ids().copied().collect(); if !event_ids.is_empty() && !other_event_ids.is_empty() { break; diff --git a/stackslib/src/net/tests/mempool/mod.rs b/stackslib/src/net/tests/mempool/mod.rs index 558dddb63e..b9ee1e4e49 100644 --- a/stackslib/src/net/tests/mempool/mod.rs +++ b/stackslib/src/net/tests/mempool/mod.rs @@ -1133,16 +1133,8 @@ fn test_mempool_sync_2_peers_nakamoto_paginated() { let _ = peer_1.step_with_ibd(false); let _ = peer_2.step_with_ibd(false); - let event_ids: Vec = peer_1 - .network - .iter_peer_event_ids() - .map(|e_id| *e_id) - .collect(); - let other_event_ids: Vec = peer_2 - .network - .iter_peer_event_ids() - .map(|e_id| *e_id) - .collect(); + let event_ids: Vec = peer_1.network.iter_peer_event_ids().copied().collect(); + let other_event_ids: Vec = peer_2.network.iter_peer_event_ids().copied().collect(); if !event_ids.is_empty() && !other_event_ids.is_empty() { break; From 6dc09b1814cb8951d4c973a248ebf5de9221dd68 Mon Sep 17 00:00:00 2001 From: Jeff Bencin Date: Sun, 5 Jan 2025 16:53:10 -0500 Subject: [PATCH 06/21] chore: Apply Clippy lint ``map_entry` --- stackslib/src/chainstate/stacks/tests/chain_histories.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/stackslib/src/chainstate/stacks/tests/chain_histories.rs b/stackslib/src/chainstate/stacks/tests/chain_histories.rs index 4859451cb1..123b50a75c 100644 --- a/stackslib/src/chainstate/stacks/tests/chain_histories.rs +++ b/stackslib/src/chainstate/stacks/tests/chain_histories.rs @@ -2857,9 +2857,7 @@ pub fn mine_invalid_token_transfers_block( ); builder.force_mine_tx(clarity_tx, &tx1).unwrap(); - if !miner.spent_at_nonce.contains_key(&1) { - miner.spent_at_nonce.insert(1, 11111); - } + miner.spent_at_nonce.entry(1).or_insert(11111); let tx2 = make_token_transfer( miner, @@ -2871,9 +2869,7 @@ pub fn mine_invalid_token_transfers_block( ); builder.force_mine_tx(clarity_tx, &tx2).unwrap(); - if !miner.spent_at_nonce.contains_key(&2) { - miner.spent_at_nonce.insert(2, 22222); - } + miner.spent_at_nonce.entry(2).or_insert(22222); let tx3 = make_token_transfer( miner, From e45112a938e8b7f10f38e7c12b1317fecf4807d5 Mon Sep 17 00:00:00 2001 From: Jacinta Ferrant Date: Thu, 9 Jan 2025 11:14:29 -0500 Subject: [PATCH 07/21] CRC: cleanup Signed-off-by: Jacinta Ferrant --- stackslib/src/chainstate/stacks/db/blocks.rs | 5 +++-- stackslib/src/chainstate/stacks/tests/mod.rs | 6 ++---- stackslib/src/net/api/gettenure.rs | 2 +- stackslib/src/net/p2p.rs | 11 ++++------- stackslib/src/net/tests/convergence.rs | 5 +---- 5 files changed, 11 insertions(+), 18 deletions(-) diff --git a/stackslib/src/chainstate/stacks/db/blocks.rs b/stackslib/src/chainstate/stacks/db/blocks.rs index 736a446652..29f633f43d 100644 --- a/stackslib/src/chainstate/stacks/db/blocks.rs +++ b/stackslib/src/chainstate/stacks/db/blocks.rs @@ -10020,8 +10020,9 @@ pub mod test { let block_hashes: Vec = blocks.iter().map(|b| b.block_hash()).collect(); let header_hashes_all: Vec<(ConsensusHash, Option)> = consensus_hashes .iter() - .zip(block_hashes.iter()) - .map(|(burn, block)| ((*burn).clone(), Some((*block).clone()))) + .cloned() + .zip(block_hashes.iter().cloned()) + .map(|(burn, block)| (burn, Some(block))) .collect(); // nothing is stored, so our inventory should be empty diff --git a/stackslib/src/chainstate/stacks/tests/mod.rs b/stackslib/src/chainstate/stacks/tests/mod.rs index 1f347b4a53..49eddc57d8 100644 --- a/stackslib/src/chainstate/stacks/tests/mod.rs +++ b/stackslib/src/chainstate/stacks/tests/mod.rs @@ -967,10 +967,8 @@ pub fn get_last_microblock_header( miner: &TestMiner, parent_block_opt: Option<&StacksBlock>, ) -> Option { - let last_microblocks_opt = match parent_block_opt { - Some(block) => node.get_microblock_stream(miner, &block.block_hash()), - None => None, - }; + let last_microblocks_opt = + parent_block_opt.and_then(|block| node.get_microblock_stream(miner, &block.block_hash())); let last_microblock_header_opt = match last_microblocks_opt { Some(last_microblocks) => { diff --git a/stackslib/src/net/api/gettenure.rs b/stackslib/src/net/api/gettenure.rs index f569407c22..bfa314b686 100644 --- a/stackslib/src/net/api/gettenure.rs +++ b/stackslib/src/net/api/gettenure.rs @@ -191,7 +191,7 @@ impl HttpRequest for RPCNakamotoTenureRequestHandler { .map(|last_block_id_hex| StacksBlockId::from_hex(last_block_id_hex)) .transpose() .map_err(|e| { - Error::DecodeError(format!("Failed to parse stop= query parameter: {:?}", &e)) + Error::DecodeError(format!("Failed to parse stop= query parameter: {e:?}")) })?; self.last_block_id = last_block_id; diff --git a/stackslib/src/net/p2p.rs b/stackslib/src/net/p2p.rs index 18cef6aafa..4bafd3447d 100644 --- a/stackslib/src/net/p2p.rs +++ b/stackslib/src/net/p2p.rs @@ -2280,13 +2280,10 @@ impl PeerNetwork { /// Get stats for a neighbor pub fn get_neighbor_stats(&self, nk: &NeighborKey) -> Option { - match self.events.get(nk) { - None => None, - Some(eid) => match self.peers.get(eid) { - None => None, - Some(convo) => Some(convo.stats.clone()), - }, - } + self.events + .get(nk) + .and_then(|eid| self.peers.get(eid)) + .map(|convo| convo.stats.clone()) } /// Update peer connections as a result of a peer graph walk. diff --git a/stackslib/src/net/tests/convergence.rs b/stackslib/src/net/tests/convergence.rs index af5afaea11..a86828d095 100644 --- a/stackslib/src/net/tests/convergence.rs +++ b/stackslib/src/net/tests/convergence.rs @@ -861,10 +861,7 @@ fn dump_peers(peers: &Vec) { } let all_neighbors = PeerDB::get_all_peers(peers[i].network.peerdb.conn()).unwrap(); - let num_allowed = all_neighbors.iter().fold(0, |mut sum, n2| { - sum += if n2.allowed < 0 { 1 } else { 0 }; - sum - }); + let num_allowed = all_neighbors.iter().filter(|n2| n2.allowed < 0).count(); test_debug!("Neighbor {} (all={}, outbound={}) (total neighbors = {}, total allowed = {}): outbound={:?} all={:?}", i, neighbor_index.len(), outbound_neighbor_index.len(), all_neighbors.len(), num_allowed, &outbound_neighbor_index, &neighbor_index); } test_debug!("\n"); From eccfec07cd59a97b06adb6b8f187c7a161a8c37e Mon Sep 17 00:00:00 2001 From: Jeff Bencin Date: Tue, 14 Jan 2025 16:15:42 -0500 Subject: [PATCH 08/21] chore: Apply Clippy lint `redundant_clone` using `cargo clippy --fix` --- clarity/src/vm/docs/mod.rs | 4 +--- pox-locking/src/events.rs | 1 - stacks-common/src/util/tests.rs | 2 +- stacks-signer/src/signerdb.rs | 9 ++++----- .../src/burnchains/bitcoin_regtest_controller.rs | 2 +- .../stacks-node/src/nakamoto_node/signer_coordinator.rs | 2 +- testnet/stacks-node/src/neon_node.rs | 4 ++-- 7 files changed, 10 insertions(+), 14 deletions(-) diff --git a/clarity/src/vm/docs/mod.rs b/clarity/src/vm/docs/mod.rs index 5b2302a9b2..acadbb0c4c 100644 --- a/clarity/src/vm/docs/mod.rs +++ b/clarity/src/vm/docs/mod.rs @@ -2734,9 +2734,7 @@ fn make_all_api_reference() -> ReferenceAPIs { #[allow(clippy::expect_used)] pub fn make_json_api_reference() -> String { let api_out = make_all_api_reference(); - serde_json::to_string(&api_out) - .expect("Failed to serialize documentation") - .to_string() + serde_json::to_string(&api_out).expect("Failed to serialize documentation") } #[cfg(test)] diff --git a/pox-locking/src/events.rs b/pox-locking/src/events.rs index e65018f27c..e298de65f2 100644 --- a/pox-locking/src/events.rs +++ b/pox-locking/src/events.rs @@ -545,7 +545,6 @@ fn create_event_info_data_code( "#, delegate_to = opt .data - .clone() .map(|boxed_value| *boxed_value) .unwrap() .expect_tuple() diff --git a/stacks-common/src/util/tests.rs b/stacks-common/src/util/tests.rs index b87e913718..1b01a449be 100644 --- a/stacks-common/src/util/tests.rs +++ b/stacks-common/src/util/tests.rs @@ -94,6 +94,6 @@ impl TestFlag { /// assert_eq!(test_flag.get(), 123); /// ``` pub fn get(&self) -> T { - self.0.lock().unwrap().clone().unwrap_or_default().clone() + self.0.lock().unwrap().clone().unwrap_or_default() } } diff --git a/stacks-signer/src/signerdb.rs b/stacks-signer/src/signerdb.rs index 67321c7218..666ef971d3 100644 --- a/stacks-signer/src/signerdb.rs +++ b/stacks-signer/src/signerdb.rs @@ -1101,7 +1101,7 @@ mod tests { .unwrap() .expect("Unable to get block from db"); - assert_eq!(BlockInfo::from(block_proposal_1.clone()), block_info); + assert_eq!(BlockInfo::from(block_proposal_1), block_info); // Test looking up a block with an unknown hash let block_info = db @@ -1116,7 +1116,7 @@ mod tests { .unwrap() .expect("Unable to get block from db"); - assert_eq!(BlockInfo::from(block_proposal_2.clone()), block_info); + assert_eq!(BlockInfo::from(block_proposal_2), block_info); } #[test] @@ -1543,12 +1543,11 @@ mod tests { &StacksPrivateKey::new(), )), }; - let tenure_change_tx_payload = - TransactionPayload::TenureChange(tenure_change_payload.clone()); + let tenure_change_tx_payload = TransactionPayload::TenureChange(tenure_change_payload); let tenure_change_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&StacksPrivateKey::new()).unwrap(), - tenure_change_tx_payload.clone(), + tenure_change_tx_payload, ); let consensus_hash_1 = ConsensusHash([0x01; 20]); diff --git a/testnet/stacks-node/src/burnchains/bitcoin_regtest_controller.rs b/testnet/stacks-node/src/burnchains/bitcoin_regtest_controller.rs index f3aaa95ab5..ce1728005a 100644 --- a/testnet/stacks-node/src/burnchains/bitcoin_regtest_controller.rs +++ b/testnet/stacks-node/src/burnchains/bitcoin_regtest_controller.rs @@ -2316,7 +2316,7 @@ impl SerializedTx { pub fn to_hex(&self) -> String { let formatted_bytes: Vec = self.bytes.iter().map(|b| format!("{b:02x}")).collect(); - formatted_bytes.join("").to_string() + formatted_bytes.join("") } } diff --git a/testnet/stacks-node/src/nakamoto_node/signer_coordinator.rs b/testnet/stacks-node/src/nakamoto_node/signer_coordinator.rs index 70c9aab190..e12b7bc82e 100644 --- a/testnet/stacks-node/src/nakamoto_node/signer_coordinator.rs +++ b/testnet/stacks-node/src/nakamoto_node/signer_coordinator.rs @@ -80,7 +80,7 @@ impl SignerCoordinator { // Create the stacker DB listener let mut listener = StackerDBListener::new( stackerdb_channel, - node_keep_running.clone(), + node_keep_running, keep_running.clone(), reward_set, burn_tip, diff --git a/testnet/stacks-node/src/neon_node.rs b/testnet/stacks-node/src/neon_node.rs index 2d4dc7fadd..09faca30a5 100644 --- a/testnet/stacks-node/src/neon_node.rs +++ b/testnet/stacks-node/src/neon_node.rs @@ -2396,7 +2396,7 @@ impl BlockMinerThread { &burn_db, &self.burn_block, &stackerdbs, - SignerMessage::MockBlock(mock_block.clone()), + SignerMessage::MockBlock(mock_block), MinerSlotID::BlockPushed, // There is no specific slot for mock miner messages. Let's use BlockPushed for MockBlock since MockProposal uses BlockProposal. self.config.is_mainnet(), &mut miners_stackerdb, @@ -3757,7 +3757,7 @@ impl RelayerThread { } let Some(mut miner_thread_state) = - self.create_block_miner(registered_key, last_burn_block.clone(), issue_timestamp_ms) + self.create_block_miner(registered_key, last_burn_block, issue_timestamp_ms) else { return false; }; From 8a55dd42fc7506a5f927e705517ef04419f81993 Mon Sep 17 00:00:00 2001 From: Jeff Bencin Date: Tue, 14 Jan 2025 17:21:12 -0500 Subject: [PATCH 09/21] chore: Apply Clippy lint `redundant_clone` manually --- stackslib/src/burnchains/affirmation.rs | 2 +- stackslib/src/burnchains/bitcoin/indexer.rs | 20 +- stackslib/src/burnchains/bitcoin/spv.rs | 11 +- stackslib/src/burnchains/tests/affirmation.rs | 6 +- stackslib/src/burnchains/tests/burnchain.rs | 8 +- stackslib/src/burnchains/tests/db.rs | 8 +- .../src/chainstate/burn/db/processing.rs | 2 +- stackslib/src/chainstate/burn/db/sortdb.rs | 16 +- stackslib/src/chainstate/burn/distribution.rs | 14 +- .../burn/operations/delegate_stx.rs | 10 +- .../burn/operations/leader_block_commit.rs | 22 +- .../burn/operations/leader_key_register.rs | 4 +- stackslib/src/chainstate/burn/sortition.rs | 6 +- stackslib/src/chainstate/coordinator/mod.rs | 2 +- stackslib/src/chainstate/coordinator/tests.rs | 29 +- .../chainstate/nakamoto/coordinator/mod.rs | 2 +- .../chainstate/nakamoto/coordinator/tests.rs | 62 ++-- stackslib/src/chainstate/nakamoto/miner.rs | 2 +- stackslib/src/chainstate/nakamoto/shadow.rs | 2 +- .../src/chainstate/nakamoto/tests/mod.rs | 144 ++++---- .../src/chainstate/nakamoto/tests/node.rs | 2 - stackslib/src/chainstate/stacks/block.rs | 72 ++-- .../chainstate/stacks/boot/contract_tests.rs | 10 +- stackslib/src/chainstate/stacks/boot/mod.rs | 13 +- .../src/chainstate/stacks/boot/pox_2_tests.rs | 48 +-- .../src/chainstate/stacks/boot/pox_3_tests.rs | 22 +- .../src/chainstate/stacks/boot/pox_4_tests.rs | 246 ++++++-------- .../chainstate/stacks/boot/signers_tests.rs | 10 +- stackslib/src/chainstate/stacks/db/blocks.rs | 16 +- stackslib/src/chainstate/stacks/db/mod.rs | 4 +- .../src/chainstate/stacks/db/transactions.rs | 314 ++++++------------ .../src/chainstate/stacks/db/unconfirmed.rs | 4 +- .../src/chainstate/stacks/index/cache.rs | 2 +- .../src/chainstate/stacks/index/storage.rs | 6 +- .../src/chainstate/stacks/index/test/cache.rs | 2 +- .../src/chainstate/stacks/index/test/marf.rs | 10 +- .../src/chainstate/stacks/index/test/node.rs | 2 +- stackslib/src/chainstate/stacks/mod.rs | 6 +- .../src/chainstate/stacks/tests/accounting.rs | 2 +- .../stacks/tests/block_construction.rs | 12 +- stackslib/src/chainstate/stacks/tests/mod.rs | 2 +- .../src/chainstate/stacks/transaction.rs | 26 +- stackslib/src/clarity_cli.rs | 6 +- stackslib/src/clarity_vm/clarity.rs | 10 +- .../src/clarity_vm/tests/analysis_costs.rs | 5 +- stackslib/src/clarity_vm/tests/costs.rs | 28 +- stackslib/src/clarity_vm/tests/forking.rs | 8 +- .../src/clarity_vm/tests/large_contract.rs | 10 +- stackslib/src/config/mod.rs | 2 +- stackslib/src/core/tests/mod.rs | 2 +- stackslib/src/cost_estimates/fee_scalar.rs | 2 +- .../cost_estimates/tests/cost_estimators.rs | 4 +- stackslib/src/net/api/tests/getblock_v3.rs | 3 +- .../src/net/api/tests/getstackerdbchunk.rs | 21 +- .../src/net/api/tests/getstackerdbmetadata.rs | 14 +- stackslib/src/net/api/tests/gettenure.rs | 3 +- .../net/api/tests/liststackerdbreplicas.rs | 14 +- stackslib/src/net/api/tests/mod.rs | 24 +- stackslib/src/net/api/tests/postblock.rs | 9 +- stackslib/src/net/api/tests/postblock_v3.rs | 2 +- stackslib/src/net/api/tests/postfeerate.rs | 2 +- stackslib/src/net/api/tests/postmicroblock.rs | 2 +- .../src/net/api/tests/posttransaction.rs | 4 +- stackslib/src/net/atlas/tests.rs | 6 +- stackslib/src/net/chat.rs | 78 ++--- stackslib/src/net/codec.rs | 6 +- stackslib/src/net/mod.rs | 4 +- stackslib/src/net/server.rs | 10 +- stackslib/src/net/stackerdb/config.rs | 2 +- stackslib/src/net/stackerdb/sync.rs | 2 +- stackslib/src/net/stackerdb/tests/config.rs | 4 +- stackslib/src/net/stackerdb/tests/db.rs | 12 +- stackslib/src/net/tests/download/nakamoto.rs | 106 ++---- stackslib/src/net/tests/httpcore.rs | 2 +- stackslib/src/net/tests/inv/epoch2x.rs | 10 +- stackslib/src/net/tests/inv/nakamoto.rs | 16 +- stackslib/src/net/tests/mempool/mod.rs | 12 +- stackslib/src/net/tests/mod.rs | 98 +++--- stackslib/src/net/tests/relay/epoch2x.rs | 72 ++-- stackslib/src/net/tests/relay/nakamoto.rs | 50 +-- stackslib/src/util_lib/strings.rs | 2 +- .../burnchains/bitcoin_regtest_controller.rs | 6 +- testnet/stacks-node/src/event_dispatcher.rs | 12 +- testnet/stacks-node/src/tests/epoch_205.rs | 10 +- testnet/stacks-node/src/tests/epoch_21.rs | 44 +-- testnet/stacks-node/src/tests/epoch_22.rs | 33 +- testnet/stacks-node/src/tests/epoch_23.rs | 6 +- testnet/stacks-node/src/tests/epoch_24.rs | 35 +- testnet/stacks-node/src/tests/epoch_25.rs | 4 +- testnet/stacks-node/src/tests/integrations.rs | 20 +- testnet/stacks-node/src/tests/mempool.rs | 8 +- testnet/stacks-node/src/tests/mod.rs | 2 +- .../src/tests/nakamoto_integrations.rs | 34 +- .../src/tests/neon_integrations.rs | 198 ++++------- testnet/stacks-node/src/tests/signer/v0.rs | 38 +-- 95 files changed, 933 insertions(+), 1387 deletions(-) diff --git a/stackslib/src/burnchains/affirmation.rs b/stackslib/src/burnchains/affirmation.rs index 592ea7daed..78a503d4e6 100644 --- a/stackslib/src/burnchains/affirmation.rs +++ b/stackslib/src/burnchains/affirmation.rs @@ -1182,7 +1182,7 @@ pub fn update_pox_affirmation_maps( let (prepare_ops, pox_anchor_block_info_opt) = find_pox_anchor_block(&tx, reward_cycle, indexer, burnchain)?; - if let Some((anchor_block, descendancy)) = pox_anchor_block_info_opt.clone() { + if let Some((anchor_block, descendancy)) = pox_anchor_block_info_opt { debug!( "PoX anchor block elected in reward cycle {} for reward cycle {} is {}", reward_cycle, diff --git a/stackslib/src/burnchains/bitcoin/indexer.rs b/stackslib/src/burnchains/bitcoin/indexer.rs index 6081b0468e..abc891df87 100644 --- a/stackslib/src/burnchains/bitcoin/indexer.rs +++ b/stackslib/src/burnchains/bitcoin/indexer.rs @@ -1343,11 +1343,9 @@ mod test { let mut spv_client_reorg = SpvClient::new(path_2, 0, None, BitcoinNetworkType::Regtest, true, false).unwrap(); - spv_client - .insert_block_headers_after(0, headers_1.clone()) - .unwrap(); + spv_client.insert_block_headers_after(0, headers_1).unwrap(); spv_client_reorg - .insert_block_headers_after(0, headers_2.clone()) + .insert_block_headers_after(0, headers_2) .unwrap(); spv_client.update_chain_work().unwrap(); @@ -1521,11 +1519,9 @@ mod test { let mut spv_client_reorg = SpvClient::new(path_2, 0, None, BitcoinNetworkType::Regtest, true, false).unwrap(); - spv_client - .insert_block_headers_after(0, headers_1.clone()) - .unwrap(); + spv_client.insert_block_headers_after(0, headers_1).unwrap(); spv_client_reorg - .insert_block_headers_after(0, headers_2.clone()) + .insert_block_headers_after(0, headers_2) .unwrap(); assert_eq!(spv_client.read_block_headers(0, 10).unwrap().len(), 4); @@ -3338,7 +3334,7 @@ mod test { // put these bad headers into the "main" chain spv_client - .insert_block_headers_after(40318, bad_headers.clone()) + .insert_block_headers_after(40318, bad_headers) .unwrap(); // *now* calculate main chain work @@ -3485,9 +3481,7 @@ mod test { ) .unwrap(); - spv_client - .test_write_block_headers(0, headers.clone()) - .unwrap(); + spv_client.test_write_block_headers(0, headers).unwrap(); assert_eq!(spv_client.get_highest_header_height().unwrap(), 2); let mut indexer = BitcoinIndexer::new( @@ -3518,7 +3512,7 @@ mod test { let should_keep_running = Arc::new(AtomicBool::new(true)); let mut indexer = BitcoinIndexer::new( - BitcoinIndexerConfig::test_default(db_path.to_string()), + BitcoinIndexerConfig::test_default(db_path), BitcoinIndexerRuntime::new(BitcoinNetworkType::Mainnet), Some(should_keep_running.clone()), ); diff --git a/stackslib/src/burnchains/bitcoin/spv.rs b/stackslib/src/burnchains/bitcoin/spv.rs index 5626b1eabf..4144415dc7 100644 --- a/stackslib/src/burnchains/bitcoin/spv.rs +++ b/stackslib/src/burnchains/bitcoin/spv.rs @@ -1629,7 +1629,7 @@ mod test { .unwrap(); assert_eq!(spv_client.read_block_headers(1, 10).unwrap(), headers); - let mut all_headers = vec![genesis_regtest_header.clone()]; + let mut all_headers = vec![genesis_regtest_header]; all_headers.append(&mut headers.clone()); assert_eq!(spv_client.read_block_headers(0, 10).unwrap(), all_headers); @@ -1652,9 +1652,7 @@ mod test { } // should succeed - spv_client - .insert_block_headers_before(9, headers.clone()) - .unwrap(); + spv_client.insert_block_headers_before(9, headers).unwrap(); } #[test] @@ -1773,10 +1771,7 @@ mod test { ]; // should fail - if let btc_error::InvalidPoW = spv_client - .handle_headers(40317, bad_headers.clone()) - .unwrap_err() - { + if let btc_error::InvalidPoW = spv_client.handle_headers(40317, bad_headers).unwrap_err() { } else { panic!("Bad PoW headers accepted"); } diff --git a/stackslib/src/burnchains/tests/affirmation.rs b/stackslib/src/burnchains/tests/affirmation.rs index ca40fb5724..0ac3b4145f 100644 --- a/stackslib/src/burnchains/tests/affirmation.rs +++ b/stackslib/src/burnchains/tests/affirmation.rs @@ -623,7 +623,7 @@ fn test_parent_block_commits() { // orphan assert_eq!(parent_commits.len(), all_ops_with_orphan.len() - 1); - let mut all_ops_with_same_parent = all_ops.clone(); + let mut all_ops_with_same_parent = all_ops; for ops in all_ops_with_same_parent.iter_mut() { for opdata in ops.iter_mut() { opdata.parent_block_ptr = 3; @@ -950,7 +950,7 @@ fn test_find_heaviest_block_commit() { // X------- 4,0 // // X------------ 5,0 - let mut all_ops_no_majority = filtered_ops.clone(); + let mut all_ops_no_majority = filtered_ops; all_ops_no_majority[0][0].parent_block_ptr = 2; all_ops_no_majority[0][0].parent_vtxindex = 10; all_ops_no_majority[0][0].burn_fee = 0; @@ -1155,7 +1155,7 @@ fn test_find_heaviest_parent_commit_many_commits() { // 1,0 <-- 2,0 <--- 3,0 <--- 4,0 <--- 5,0 // \ // `---- 2,1 <--- 3,1 <--- 4,1 <--- 5,1 (winner) - let mut all_ops_no_majority = filtered_ops.clone(); + let mut all_ops_no_majority = filtered_ops; // 3,0 all_ops_no_majority[0][0].parent_block_ptr = 2; diff --git a/stackslib/src/burnchains/tests/burnchain.rs b/stackslib/src/burnchains/tests/burnchain.rs index 1cd89f102d..d06c7e4358 100644 --- a/stackslib/src/burnchains/tests/burnchain.rs +++ b/stackslib/src/burnchains/tests/burnchain.rs @@ -428,16 +428,12 @@ fn test_process_block_ops() { ], vec![ BlockstackOperationType::LeaderBlockCommit(block_commit_1.clone()), - BlockstackOperationType::LeaderBlockCommit(block_commit_2.clone()), + BlockstackOperationType::LeaderBlockCommit(block_commit_2), BlockstackOperationType::LeaderBlockCommit(block_commit_3.clone()), ], ]; - let block_124_winners = vec![ - block_commit_1.clone(), - block_commit_3.clone(), - block_commit_1.clone(), - ]; + let block_124_winners = vec![block_commit_1.clone(), block_commit_3, block_commit_1]; let mut db = SortitionDB::connect_test(first_block_height, &first_burn_hash).unwrap(); diff --git a/stackslib/src/burnchains/tests/db.rs b/stackslib/src/burnchains/tests/db.rs index c8f568b5bf..9013281039 100644 --- a/stackslib/src/burnchains/tests/db.rs +++ b/stackslib/src/burnchains/tests/db.rs @@ -147,7 +147,7 @@ fn test_store_and_fetch() { &BurnchainHeaderHash::sentinel() ); - let headers = vec![first_block_header.clone()]; + let headers = vec![first_block_header]; let canon_hash = BurnchainHeaderHash([1; 32]); let canonical_block = @@ -1098,7 +1098,7 @@ fn test_classify_delegate_stx() { let canonical_block = BurnchainBlock::Bitcoin(BitcoinBlock::new(500, &canon_hash, &first_bhh, vec![], 485)); - let mut headers = vec![first_block_header.clone(), canonical_block.header().clone()]; + let mut headers = vec![first_block_header, canonical_block.header()]; let ops = burnchain_db .store_new_burnchain_block( @@ -1291,8 +1291,8 @@ fn test_classify_delegate_stx() { 360, )); - headers.push(block_0.header().clone()); - headers.push(block_1.header().clone()); + headers.push(block_0.header()); + headers.push(block_1.header()); test_debug!("store ops ({}) for block 0", ops_0_length); let processed_ops_0 = burnchain_db diff --git a/stackslib/src/chainstate/burn/db/processing.rs b/stackslib/src/chainstate/burn/db/processing.rs index 580a8e8a46..b2b6ce5135 100644 --- a/stackslib/src/chainstate/burn/db/processing.rs +++ b/stackslib/src/chainstate/burn/db/processing.rs @@ -135,7 +135,7 @@ impl SortitionHandleTx<'_> { let next_pox = SortitionDB::make_next_pox_id(parent_pox.clone(), next_pox_info.as_ref()); let next_sortition_id = SortitionDB::make_next_sortition_id( - parent_pox.clone(), + parent_pox, &this_block_hash, next_pox_info.as_ref(), ); diff --git a/stackslib/src/chainstate/burn/db/sortdb.rs b/stackslib/src/chainstate/burn/db/sortdb.rs index 26beabeceb..7a1b475921 100644 --- a/stackslib/src/chainstate/burn/db/sortdb.rs +++ b/stackslib/src/chainstate/burn/db/sortdb.rs @@ -7335,9 +7335,9 @@ pub mod tests { { let mut ic = SortitionHandleTx::begin(&mut db, &snapshot.sortition_id).unwrap(); let keys = ic - .get_consumed_leader_keys(&fork_snapshot, &vec![block_commit.clone()]) + .get_consumed_leader_keys(&fork_snapshot, &vec![block_commit]) .unwrap(); - assert_eq!(keys, vec![leader_key.clone()]); + assert_eq!(keys, vec![leader_key]); } } @@ -7386,9 +7386,7 @@ pub mod tests { let key_snapshot = test_append_snapshot( &mut db, BurnchainHeaderHash([0x03; 32]), - &[BlockstackOperationType::LeaderKeyRegister( - leader_key.clone(), - )], + &[BlockstackOperationType::LeaderKeyRegister(leader_key)], ); let has_key_after = { @@ -7913,9 +7911,7 @@ pub mod tests { let key_snapshot = test_append_snapshot( &mut db, BurnchainHeaderHash([0x01; 32]), - &[BlockstackOperationType::LeaderKeyRegister( - leader_key.clone(), - )], + &[BlockstackOperationType::LeaderKeyRegister(leader_key)], ); let commit_snapshot = test_append_snapshot( @@ -10259,9 +10255,7 @@ pub mod tests { let key_snapshot = test_append_snapshot( &mut db, BurnchainHeaderHash([0x01; 32]), - &[BlockstackOperationType::LeaderKeyRegister( - leader_key.clone(), - )], + &[BlockstackOperationType::LeaderKeyRegister(leader_key)], ); let genesis_commit_snapshot = test_append_snapshot_with_winner( diff --git a/stackslib/src/chainstate/burn/distribution.rs b/stackslib/src/chainstate/burn/distribution.rs index 2e3c7b9bb8..5de4d3833f 100644 --- a/stackslib/src/chainstate/burn/distribution.rs +++ b/stackslib/src/chainstate/burn/distribution.rs @@ -785,7 +785,7 @@ mod tests { let mut result = BurnSamplePoint::make_min_median_distribution( MINING_COMMITMENT_WINDOW, commits.clone(), - missed_commits.clone(), + missed_commits, vec![false, false, false, false, false, false], ); @@ -1261,11 +1261,7 @@ mod tests { ], }, BurnDistFixture { - consumed_leader_keys: vec![ - leader_key_1.clone(), - leader_key_2.clone(), - leader_key_3.clone(), - ], + consumed_leader_keys: vec![leader_key_1, leader_key_2, leader_key_3], block_commits: vec![ block_commit_1.clone(), block_commit_2.clone(), @@ -1283,7 +1279,7 @@ mod tests { 0x70989faf596c8b65, 0x41a3ed94d3cb0a84, ]), - candidate: block_commit_1.clone(), + candidate: block_commit_1, }, BurnSamplePoint { burns: block_commit_2.burn_fee.into(), @@ -1301,7 +1297,7 @@ mod tests { 0xe1313f5eb2d916ca, 0x8347db29a7961508, ]), - candidate: block_commit_2.clone(), + candidate: block_commit_2, }, BurnSamplePoint { burns: (block_commit_3.burn_fee).into(), @@ -1314,7 +1310,7 @@ mod tests { 0x8347db29a7961508, ]), range_end: Uint256::max(), - candidate: block_commit_3.clone(), + candidate: block_commit_3, }, ], }, diff --git a/stackslib/src/chainstate/burn/operations/delegate_stx.rs b/stackslib/src/chainstate/burn/operations/delegate_stx.rs index 20b2a2ba38..d4e54e3ee6 100644 --- a/stackslib/src/chainstate/burn/operations/delegate_stx.rs +++ b/stackslib/src/chainstate/burn/operations/delegate_stx.rs @@ -409,7 +409,7 @@ mod tests { let op = DelegateStxOp::parse_from_tx( 16843022, &BurnchainHeaderHash([0; 32]), - &BurnchainTransaction::Bitcoin(tx.clone()), + &BurnchainTransaction::Bitcoin(tx), &sender, ) .unwrap(); @@ -456,7 +456,7 @@ mod tests { let err = DelegateStxOp::parse_from_tx( 16843022, &BurnchainHeaderHash([0; 32]), - &BurnchainTransaction::Bitcoin(tx.clone()), + &BurnchainTransaction::Bitcoin(tx), &sender, ) .unwrap_err(); @@ -498,7 +498,7 @@ mod tests { let err = DelegateStxOp::parse_from_tx( 16843022, &BurnchainHeaderHash([0; 32]), - &BurnchainTransaction::Bitcoin(tx.clone()), + &BurnchainTransaction::Bitcoin(tx), &sender, ) .unwrap_err(); @@ -544,7 +544,7 @@ mod tests { let err = DelegateStxOp::parse_from_tx( 16843022, &BurnchainHeaderHash([0; 32]), - &BurnchainTransaction::Bitcoin(tx.clone()), + &BurnchainTransaction::Bitcoin(tx), &sender, ) .unwrap_err(); @@ -583,7 +583,7 @@ mod tests { let err = DelegateStxOp::parse_from_tx( 16843022, &BurnchainHeaderHash([0; 32]), - &BurnchainTransaction::Bitcoin(tx.clone()), + &BurnchainTransaction::Bitcoin(tx), &sender, ) .unwrap_err(); diff --git a/stackslib/src/chainstate/burn/operations/leader_block_commit.rs b/stackslib/src/chainstate/burn/operations/leader_block_commit.rs index 29ad28895d..9741711fb3 100644 --- a/stackslib/src/chainstate/burn/operations/leader_block_commit.rs +++ b/stackslib/src/chainstate/burn/operations/leader_block_commit.rs @@ -2050,13 +2050,11 @@ mod tests { vec![], // 124 vec![ - BlockstackOperationType::LeaderKeyRegister(leader_key_1.clone()), - BlockstackOperationType::LeaderKeyRegister(leader_key_2.clone()), + BlockstackOperationType::LeaderKeyRegister(leader_key_1), + BlockstackOperationType::LeaderKeyRegister(leader_key_2), ], // 125 - vec![BlockstackOperationType::LeaderBlockCommit( - block_commit_1.clone(), - )], + vec![BlockstackOperationType::LeaderBlockCommit(block_commit_1)], // 126 vec![], ]; @@ -2585,13 +2583,11 @@ mod tests { vec![], // 124 vec![ - BlockstackOperationType::LeaderKeyRegister(leader_key_1.clone()), - BlockstackOperationType::LeaderKeyRegister(leader_key_2.clone()), + BlockstackOperationType::LeaderKeyRegister(leader_key_1), + BlockstackOperationType::LeaderKeyRegister(leader_key_2), ], // 125 - vec![BlockstackOperationType::LeaderBlockCommit( - block_commit_1.clone(), - )], + vec![BlockstackOperationType::LeaderBlockCommit(block_commit_1)], // 126 vec![], ]; @@ -3403,7 +3399,7 @@ mod tests { ), ( LeaderBlockCommitOp { - commit_outs: vec![burn_addr_0.clone(), burn_addr_1.clone()], + commit_outs: vec![burn_addr_0.clone(), burn_addr_1], ..default_block_commit.clone() }, Some(no_punish(&rs_pox_addrs_0b)), @@ -3435,8 +3431,8 @@ mod tests { ), ( LeaderBlockCommitOp { - commit_outs: vec![burn_addr_0.clone(), reward_addrs(3)], - ..default_block_commit.clone() + commit_outs: vec![burn_addr_0, reward_addrs(3)], + ..default_block_commit }, Some(rs_pox_addrs.clone()), Err(op_error::BlockCommitBadOutputs), diff --git a/stackslib/src/chainstate/burn/operations/leader_key_register.rs b/stackslib/src/chainstate/burn/operations/leader_key_register.rs index 7616499091..256cbe42c7 100644 --- a/stackslib/src/chainstate/burn/operations/leader_key_register.rs +++ b/stackslib/src/chainstate/burn/operations/leader_key_register.rs @@ -507,9 +507,7 @@ pub mod tests { // 122 vec![], // 123 - vec![BlockstackOperationType::LeaderKeyRegister( - leader_key_1.clone(), - )], + vec![BlockstackOperationType::LeaderKeyRegister(leader_key_1)], // 124 vec![], // 125 diff --git a/stackslib/src/chainstate/burn/sortition.rs b/stackslib/src/chainstate/burn/sortition.rs index 6d6ec965a6..41ba892eba 100644 --- a/stackslib/src/chainstate/burn/sortition.rs +++ b/stackslib/src/chainstate/burn/sortition.rs @@ -445,7 +445,7 @@ impl BlockSnapshot { BlockHeaderHash(bhh_bytes) }; - let mut null_sample_winner = BurnSamplePoint::zero(null_winner.clone()); + let mut null_sample_winner = BurnSamplePoint::zero(null_winner); let mut burn_sample_winner = BurnSamplePoint::zero(commit_winner.clone()); let null_prob = Self::null_miner_probability(atc); @@ -908,8 +908,8 @@ mod test { &initial_snapshot, &empty_block_header, &BurnchainStateTransition { - burn_dist: vec![empty_burn_point.clone()], - accepted_ops: vec![BlockstackOperationType::LeaderKeyRegister(key.clone())], + burn_dist: vec![empty_burn_point], + accepted_ops: vec![BlockstackOperationType::LeaderKeyRegister(key)], ..BurnchainStateTransition::noop() }, ) diff --git a/stackslib/src/chainstate/coordinator/mod.rs b/stackslib/src/chainstate/coordinator/mod.rs index 45684a20af..aabff87423 100644 --- a/stackslib/src/chainstate/coordinator/mod.rs +++ b/stackslib/src/chainstate/coordinator/mod.rs @@ -625,7 +625,7 @@ impl< signal_mining_ready(miner_status.clone()); } if (bits & (CoordinatorEvents::STOP as u8)) != 0 { - signal_mining_blocked(miner_status.clone()); + signal_mining_blocked(miner_status); debug!("Received stop notice"); return false; } diff --git a/stackslib/src/chainstate/coordinator/tests.rs b/stackslib/src/chainstate/coordinator/tests.rs index 4caa48c481..fa98bf53d5 100644 --- a/stackslib/src/chainstate/coordinator/tests.rs +++ b/stackslib/src/chainstate/coordinator/tests.rs @@ -570,22 +570,12 @@ pub fn get_burnchain(path: &str, pox_consts: Option) -> Burnchain pub fn get_sortition_db(path: &str, pox_consts: Option) -> SortitionDB { let burnchain = get_burnchain(path, pox_consts); - SortitionDB::open( - &burnchain.get_db_path(), - false, - burnchain.pox_constants.clone(), - ) - .unwrap() + SortitionDB::open(&burnchain.get_db_path(), false, burnchain.pox_constants).unwrap() } pub fn get_rw_sortdb(path: &str, pox_consts: Option) -> SortitionDB { let burnchain = get_burnchain(path, pox_consts); - SortitionDB::open( - &burnchain.get_db_path(), - true, - burnchain.pox_constants.clone(), - ) - .unwrap() + SortitionDB::open(&burnchain.get_db_path(), true, burnchain.pox_constants).unwrap() } pub fn get_burnchain_db(path: &str, pox_consts: Option) -> BurnchainDB { @@ -594,7 +584,7 @@ pub fn get_burnchain_db(path: &str, pox_consts: Option) -> Burncha } pub fn get_chainstate_path_str(path: &str) -> String { - format!("{}/chainstate/", path) + format!("{path}/chainstate/") } pub fn get_chainstate(path: &str) -> StacksChainState { @@ -3510,7 +3500,7 @@ fn test_delegate_stx_btc_ops() { StacksEpochId::Epoch21, ); - let mut coord = make_coordinator(path, Some(burnchain_conf.clone())); + let mut coord = make_coordinator(path, Some(burnchain_conf)); coord.handle_new_burnchain_block().unwrap(); @@ -4678,7 +4668,7 @@ fn atlas_stop_start() { let atlas_qci = QualifiedContractIdentifier::new(signer_pk.clone().into(), atlas_name.clone()); // include our simple contract in the atlas config let mut atlas_config = AtlasConfig::new(false); - atlas_config.contracts.insert(atlas_qci.clone()); + atlas_config.contracts.insert(atlas_qci); setup_states( &[path], @@ -6903,13 +6893,8 @@ fn test_check_chainstate_db_versions() { ); // should work just fine in epoch 2 - assert!( - check_chainstate_db_versions(&[epoch_2.clone()], &sortdb_path, &chainstate_path).unwrap() - ); + assert!(check_chainstate_db_versions(&[epoch_2], &sortdb_path, &chainstate_path).unwrap()); // should fail in epoch 2.05 - assert!( - !check_chainstate_db_versions(&[epoch_2_05.clone()], &sortdb_path, &chainstate_path) - .unwrap() - ); + assert!(!check_chainstate_db_versions(&[epoch_2_05], &sortdb_path, &chainstate_path).unwrap()); } diff --git a/stackslib/src/chainstate/nakamoto/coordinator/mod.rs b/stackslib/src/chainstate/nakamoto/coordinator/mod.rs index c6dd44ac39..adbc4344f9 100644 --- a/stackslib/src/chainstate/nakamoto/coordinator/mod.rs +++ b/stackslib/src/chainstate/nakamoto/coordinator/mod.rs @@ -758,7 +758,7 @@ impl< signal_mining_ready(miner_status.clone()); } if (bits & (CoordinatorEvents::STOP as u8)) != 0 { - signal_mining_blocked(miner_status.clone()); + signal_mining_blocked(miner_status); debug!("Received stop notice"); return false; } diff --git a/stackslib/src/chainstate/nakamoto/coordinator/tests.rs b/stackslib/src/chainstate/nakamoto/coordinator/tests.rs index e0b3375452..072d3ba3f5 100644 --- a/stackslib/src/chainstate/nakamoto/coordinator/tests.rs +++ b/stackslib/src/chainstate/nakamoto/coordinator/tests.rs @@ -415,9 +415,7 @@ fn test_simple_nakamoto_coordinator_bootup() { tenure_change.tenure_consensus_hash = consensus_hash.clone(); tenure_change.burn_view_consensus_hash = consensus_hash.clone(); - let tenure_change_tx = peer - .miner - .make_nakamoto_tenure_change(tenure_change.clone()); + let tenure_change_tx = peer.miner.make_nakamoto_tenure_change(tenure_change); let coinbase_tx = peer.miner.make_nakamoto_coinbase(None, vrf_proof); let blocks_and_sizes = peer.make_nakamoto_tenure( @@ -480,9 +478,7 @@ fn test_simple_nakamoto_coordinator_1_tenure_10_blocks() { tenure_change.tenure_consensus_hash = consensus_hash.clone(); tenure_change.burn_view_consensus_hash = consensus_hash.clone(); - let tenure_change_tx = peer - .miner - .make_nakamoto_tenure_change(tenure_change.clone()); + let tenure_change_tx = peer.miner.make_nakamoto_tenure_change(tenure_change); let coinbase_tx = peer.miner.make_nakamoto_coinbase(None, vrf_proof); // do a stx transfer in each block to a given recipient @@ -659,7 +655,7 @@ impl TestPeer<'_> { { let (burn_ops, mut tenure_change, miner_key) = self.begin_nakamoto_tenure(TenureChangeCause::BlockFound); - let (burn_height, _, consensus_hash) = self.next_burnchain_block(burn_ops.clone()); + let (burn_height, _, consensus_hash) = self.next_burnchain_block(burn_ops); let pox_constants = self.sortdb().pox_constants.clone(); let first_burn_height = self.sortdb().first_block_height; let mut test_signers = self.config.test_signers.clone().unwrap(); @@ -693,7 +689,7 @@ impl TestPeer<'_> { let tenure_change_tx = self .miner - .make_nakamoto_tenure_change_with_nonce(tenure_change.clone(), miner_acct.nonce); + .make_nakamoto_tenure_change_with_nonce(tenure_change, miner_acct.nonce); let coinbase_tx = self.miner @@ -783,7 +779,7 @@ impl TestPeer<'_> { let tenure_change_tx = self .miner - .make_nakamoto_tenure_change_with_nonce(tenure_change.clone(), miner_acct.nonce); + .make_nakamoto_tenure_change_with_nonce(tenure_change, miner_acct.nonce); let coinbase_tx = self.miner @@ -839,8 +835,8 @@ fn block_descendant() { pox_constants.pox_4_activation_height = 28; let mut boot_plan = NakamotoBootPlan::new(function_name!()) - .with_test_stackers(test_stackers.clone()) - .with_test_signers(test_signers.clone()) + .with_test_stackers(test_stackers) + .with_test_signers(test_signers) .with_private_key(private_key); boot_plan.pox_constants = pox_constants; @@ -935,8 +931,8 @@ fn block_info_tests(use_primary_testnet: bool) { }; let mut boot_plan = NakamotoBootPlan::new(&format!("{}.{use_primary_testnet}", function_name!())) - .with_test_stackers(test_stackers.clone()) - .with_test_signers(test_signers.clone()) + .with_test_stackers(test_stackers) + .with_test_signers(test_signers) .with_private_key(private_key) .with_network_id(chain_id); boot_plan.pox_constants = pox_constants; @@ -1358,7 +1354,7 @@ fn pox_treatment() { let mut boot_plan = NakamotoBootPlan::new(function_name!()) .with_test_stackers(test_stackers.clone()) - .with_test_signers(test_signers.clone()) + .with_test_signers(test_signers) .with_private_key(private_key); boot_plan.pox_constants = pox_constants; @@ -1631,15 +1627,13 @@ fn test_nakamoto_chainstate_getters() { let (burn_ops, mut tenure_change, miner_key) = peer.begin_nakamoto_tenure(TenureChangeCause::BlockFound); - let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops.clone()); + let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops); let vrf_proof = peer.make_nakamoto_vrf_proof(miner_key); tenure_change.tenure_consensus_hash = consensus_hash.clone(); tenure_change.burn_view_consensus_hash = consensus_hash.clone(); - let tenure_change_tx = peer - .miner - .make_nakamoto_tenure_change(tenure_change.clone()); - let coinbase_tx = peer.miner.make_nakamoto_coinbase(None, vrf_proof.clone()); + let tenure_change_tx = peer.miner.make_nakamoto_tenure_change(tenure_change); + let coinbase_tx = peer.miner.make_nakamoto_coinbase(None, vrf_proof); // do a stx transfer in each block to a given recipient let recipient_addr = @@ -1878,23 +1872,19 @@ fn test_nakamoto_chainstate_getters() { } let txid = txid.unwrap(); - let (_, _, next_consensus_hash) = peer.next_burnchain_block(burn_ops.clone()); + let (_, _, next_consensus_hash) = peer.next_burnchain_block(burn_ops); let next_vrf_proof = peer.make_nakamoto_vrf_proof(miner_key); next_tenure_change.tenure_consensus_hash = next_consensus_hash.clone(); next_tenure_change.burn_view_consensus_hash = next_consensus_hash.clone(); - let next_tenure_change_tx = peer - .miner - .make_nakamoto_tenure_change(next_tenure_change.clone()); - let next_coinbase_tx = peer - .miner - .make_nakamoto_coinbase(None, next_vrf_proof.clone()); + let next_tenure_change_tx = peer.miner.make_nakamoto_tenure_change(next_tenure_change); + let next_coinbase_tx = peer.miner.make_nakamoto_coinbase(None, next_vrf_proof); // make the second tenure's blocks let blocks_and_sizes = peer.make_nakamoto_tenure( - next_tenure_change_tx.clone(), - next_coinbase_tx.clone(), + next_tenure_change_tx, + next_coinbase_tx, &mut test_signers, |miner, chainstate, sortdb, blocks_so_far| { if blocks_so_far.len() < 10 { @@ -2557,9 +2547,7 @@ pub fn simple_nakamoto_coordinator_2_tenures_3_sortitions<'a>() -> TestPeer<'a> blocks.last().cloned().unwrap().header.block_id(), blocks.len() as u32, ); - let tenure_change_tx = peer - .miner - .make_nakamoto_tenure_change(tenure_change_extend.clone()); + let tenure_change_tx = peer.miner.make_nakamoto_tenure_change(tenure_change_extend); let blocks_and_sizes = peer.make_nakamoto_tenure_extension( tenure_change_tx, @@ -2650,9 +2638,7 @@ pub fn simple_nakamoto_coordinator_2_tenures_3_sortitions<'a>() -> TestPeer<'a> tenure_change.tenure_consensus_hash = consensus_hash.clone(); tenure_change.burn_view_consensus_hash = consensus_hash.clone(); - let tenure_change_tx = peer - .miner - .make_nakamoto_tenure_change(tenure_change.clone()); + let tenure_change_tx = peer.miner.make_nakamoto_tenure_change(tenure_change); let coinbase_tx = peer.miner.make_nakamoto_coinbase(None, vrf_proof); rc_burn_ops.push(burn_ops); @@ -2864,7 +2850,7 @@ pub fn simple_nakamoto_coordinator_10_extended_tenures_10_sortitions() -> TestPe blocks_so_far.len() as u32, ); let tenure_extension_tx = - miner.make_nakamoto_tenure_change(tenure_extension.clone()); + miner.make_nakamoto_tenure_change(tenure_extension); final_txs.push(tenure_extension_tx); } final_txs.append(&mut txs); @@ -3108,8 +3094,8 @@ fn process_next_nakamoto_block_deadlock() { pox_constants.pox_4_activation_height = 28; let mut boot_plan = NakamotoBootPlan::new(function_name!()) - .with_test_stackers(test_stackers.clone()) - .with_test_signers(test_signers.clone()) + .with_test_stackers(test_stackers) + .with_test_signers(test_signers) .with_private_key(private_key); boot_plan.pox_constants = pox_constants; @@ -3384,7 +3370,7 @@ fn test_stacks_on_burnchain_ops() { blocks_so_far.len() as u32, ); let tenure_extension_tx = - miner.make_nakamoto_tenure_change(tenure_extension.clone()); + miner.make_nakamoto_tenure_change(tenure_extension); final_txs.push(tenure_extension_tx); } final_txs.append(&mut txs); diff --git a/stackslib/src/chainstate/nakamoto/miner.rs b/stackslib/src/chainstate/nakamoto/miner.rs index ab8b53ddcc..a8d649e162 100644 --- a/stackslib/src/chainstate/nakamoto/miner.rs +++ b/stackslib/src/chainstate/nakamoto/miner.rs @@ -593,7 +593,7 @@ impl NakamotoBlockBuilder { let initial_txs: Vec<_> = [ tenure_info.tenure_change_tx.clone(), - tenure_info.coinbase_tx.clone(), + tenure_info.coinbase_tx, ] .into_iter() .flatten() diff --git a/stackslib/src/chainstate/nakamoto/shadow.rs b/stackslib/src/chainstate/nakamoto/shadow.rs index dad10f62e0..e5350d97df 100644 --- a/stackslib/src/chainstate/nakamoto/shadow.rs +++ b/stackslib/src/chainstate/nakamoto/shadow.rs @@ -694,7 +694,7 @@ impl NakamotoBlockBuilder { let coinbase_tx = { let mut tx_coinbase = StacksTransaction::new( tx_version.clone(), - miner_tx_auth.clone(), + miner_tx_auth, TransactionPayload::Coinbase(coinbase_payload, Some(recipient), Some(vrf_proof)), ); tx_coinbase.chain_id = chain_id; diff --git a/stackslib/src/chainstate/nakamoto/tests/mod.rs b/stackslib/src/chainstate/nakamoto/tests/mod.rs index 0c242c0409..a3d9e0eb72 100644 --- a/stackslib/src/chainstate/nakamoto/tests/mod.rs +++ b/stackslib/src/chainstate/nakamoto/tests/mod.rs @@ -287,7 +287,7 @@ pub fn test_nakamoto_first_tenure_block_syntactic_validation() { let mut invalid_tenure_change_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - TransactionPayload::TenureChange(invalid_tenure_change_payload.clone()), + TransactionPayload::TenureChange(invalid_tenure_change_payload), ); invalid_tenure_change_tx.chain_id = 0x80000000; invalid_tenure_change_tx.anchor_mode = TransactionAnchorMode::OnChainOnly; @@ -295,7 +295,7 @@ pub fn test_nakamoto_first_tenure_block_syntactic_validation() { let mut coinbase_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - coinbase_payload.clone(), + coinbase_payload, ); coinbase_tx.chain_id = 0x80000000; coinbase_tx.anchor_mode = TransactionAnchorMode::OnChainOnly; @@ -303,7 +303,7 @@ pub fn test_nakamoto_first_tenure_block_syntactic_validation() { let mut invalid_coinbase_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - invalid_coinbase_payload.clone(), + invalid_coinbase_payload, ); invalid_coinbase_tx.chain_id = 0x80000000; invalid_coinbase_tx.anchor_mode = TransactionAnchorMode::OnChainOnly; @@ -371,7 +371,7 @@ pub fn test_nakamoto_first_tenure_block_syntactic_validation() { // missing a proof let block = NakamotoBlock { header: header.clone(), - txs: vec![tenure_change_tx.clone(), invalid_coinbase_tx.clone()], + txs: vec![tenure_change_tx.clone(), invalid_coinbase_tx], }; assert_eq!(block.is_wellformed_tenure_start_block(), Err(())); assert_eq!(block.is_wellformed_tenure_extend_block(), Ok(false)); @@ -445,7 +445,7 @@ pub fn test_nakamoto_first_tenure_block_syntactic_validation() { header: header.clone(), txs: vec![ tenure_change_tx.clone(), - invalid_tenure_change_tx.clone(), + invalid_tenure_change_tx, coinbase_tx.clone(), ], }; @@ -539,7 +539,7 @@ pub fn test_nakamoto_first_tenure_block_syntactic_validation() { // syntactically invalid if there's a tx before the one tenure change let block = NakamotoBlock { header: header.clone(), - txs: vec![stx_transfer.clone(), tenure_extend_tx.clone()], + txs: vec![stx_transfer, tenure_extend_tx], }; assert_eq!(block.is_wellformed_tenure_start_block(), Err(())); assert_eq!(block.is_wellformed_tenure_extend_block(), Err(())); @@ -554,12 +554,8 @@ pub fn test_nakamoto_first_tenure_block_syntactic_validation() { // invalid if there are multiple tenure changes let block = NakamotoBlock { - header: header.clone(), - txs: vec![ - tenure_change_tx.clone(), - tenure_change_tx.clone(), - coinbase_tx.clone(), - ], + header, + txs: vec![tenure_change_tx.clone(), tenure_change_tx, coinbase_tx], }; assert_eq!(block.is_wellformed_tenure_start_block(), Err(())); assert_eq!(block.is_wellformed_tenure_extend_block(), Ok(false)); @@ -587,7 +583,7 @@ pub fn test_load_store_update_nakamoto_blocks() { &[&path], &[], &[], - Some(pox_constants.clone()), + Some(pox_constants), None, StacksEpochId::Epoch30, Some(epochs), @@ -609,7 +605,7 @@ pub fn test_load_store_update_nakamoto_blocks() { let mut coinbase_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - coinbase_payload.clone(), + coinbase_payload, ); coinbase_tx.chain_id = 0x80000000; coinbase_tx.anchor_mode = TransactionAnchorMode::OnChainOnly; @@ -630,7 +626,7 @@ pub fn test_load_store_update_nakamoto_blocks() { burn: 123, work: 456, }, - proof: epoch2_proof.clone(), + proof: epoch2_proof, parent_block: BlockHeaderHash([0x11; 32]), parent_microblock: BlockHeaderHash([0x00; 32]), parent_microblock_sequence: 0, @@ -677,7 +673,7 @@ pub fn test_load_store_update_nakamoto_blocks() { let mut tenure_change_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - tenure_change_tx_payload.clone(), + tenure_change_tx_payload, ); tenure_change_tx.chain_id = 0x80000000; tenure_change_tx.anchor_mode = TransactionAnchorMode::OnChainOnly; @@ -708,7 +704,7 @@ pub fn test_load_store_update_nakamoto_blocks() { stx_transfer_tx_4.chain_id = 0x80000000; stx_transfer_tx_4.anchor_mode = TransactionAnchorMode::OnChainOnly; - let nakamoto_txs = vec![tenure_change_tx.clone(), coinbase_tx.clone()]; + let nakamoto_txs = vec![tenure_change_tx, coinbase_tx]; let nakamoto_tx_merkle_root = { let txid_vecs: Vec<_> = nakamoto_txs .iter() @@ -718,7 +714,7 @@ pub fn test_load_store_update_nakamoto_blocks() { MerkleTree::::new(&txid_vecs).root() }; - let nakamoto_txs_2 = vec![stx_transfer_tx.clone()]; + let nakamoto_txs_2 = vec![stx_transfer_tx]; let nakamoto_tx_merkle_root_2 = { let txid_vecs: Vec<_> = nakamoto_txs_2 .iter() @@ -728,7 +724,7 @@ pub fn test_load_store_update_nakamoto_blocks() { MerkleTree::::new(&txid_vecs).root() }; - let nakamoto_txs_3 = vec![stx_transfer_tx_3.clone()]; + let nakamoto_txs_3 = vec![stx_transfer_tx_3]; let nakamoto_tx_merkle_root_3 = { let txid_vecs: Vec<_> = nakamoto_txs_3 .iter() @@ -738,7 +734,7 @@ pub fn test_load_store_update_nakamoto_blocks() { MerkleTree::::new(&txid_vecs).root() }; - let nakamoto_txs_4 = vec![stx_transfer_tx_4.clone()]; + let nakamoto_txs_4 = vec![stx_transfer_tx_4]; let nakamoto_tx_merkle_root_4 = { let txid_vecs: Vec<_> = nakamoto_txs_4 .iter() @@ -902,7 +898,7 @@ pub fn test_load_store_update_nakamoto_blocks() { let nakamoto_block_3_weight_2 = NakamotoBlock { header: nakamoto_header_3_weight_2.clone(), - txs: nakamoto_txs_3.clone(), + txs: nakamoto_txs_3, }; // fourth nakamoto block -- confirms nakamoto_block_3_weight_2 @@ -935,7 +931,7 @@ pub fn test_load_store_update_nakamoto_blocks() { let nakamoto_block_4 = NakamotoBlock { header: nakamoto_header_4.clone(), - txs: nakamoto_txs_4.clone(), + txs: nakamoto_txs_4, }; // nakamoto block 3 only differs in signers @@ -1692,13 +1688,13 @@ fn test_nakamoto_block_static_verification() { let coinbase_shadow_recipient_payload = TransactionPayload::Coinbase( CoinbasePayload([0x12; 32]), Some(burn_recipient), - Some(vrf_proof.clone()), + Some(vrf_proof), ); let mut coinbase_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - coinbase_payload.clone(), + coinbase_payload, ); coinbase_tx.chain_id = 0x80000000; coinbase_tx.anchor_mode = TransactionAnchorMode::OnChainOnly; @@ -1706,7 +1702,7 @@ fn test_nakamoto_block_static_verification() { let mut coinbase_recipient_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - coinbase_recipient_payload.clone(), + coinbase_recipient_payload, ); coinbase_recipient_tx.chain_id = 0x80000000; coinbase_recipient_tx.anchor_mode = TransactionAnchorMode::OnChainOnly; @@ -1714,7 +1710,7 @@ fn test_nakamoto_block_static_verification() { let mut coinbase_shadow_recipient_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - coinbase_shadow_recipient_payload.clone(), + coinbase_shadow_recipient_payload, ); coinbase_shadow_recipient_tx.chain_id = 0x80000000; coinbase_shadow_recipient_tx.anchor_mode = TransactionAnchorMode::OnChainOnly; @@ -1753,27 +1749,27 @@ fn test_nakamoto_block_static_verification() { let mut tenure_change_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - tenure_change_tx_payload.clone(), + tenure_change_tx_payload, ); tenure_change_tx.chain_id = 0x80000000; tenure_change_tx.anchor_mode = TransactionAnchorMode::OnChainOnly; let tenure_change_tx_payload_bad_ch = - TransactionPayload::TenureChange(tenure_change_payload_bad_ch.clone()); + TransactionPayload::TenureChange(tenure_change_payload_bad_ch); let mut tenure_change_tx_bad_ch = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - tenure_change_tx_payload_bad_ch.clone(), + tenure_change_tx_payload_bad_ch, ); tenure_change_tx_bad_ch.chain_id = 0x80000000; tenure_change_tx_bad_ch.anchor_mode = TransactionAnchorMode::OnChainOnly; let tenure_change_tx_payload_bad_miner_sig = - TransactionPayload::TenureChange(tenure_change_payload_bad_miner_sig.clone()); + TransactionPayload::TenureChange(tenure_change_payload_bad_miner_sig); let mut tenure_change_tx_bad_miner_sig = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - tenure_change_tx_payload_bad_miner_sig.clone(), + tenure_change_tx_payload_bad_miner_sig, ); tenure_change_tx_bad_miner_sig.chain_id = 0x80000000; tenure_change_tx_bad_miner_sig.anchor_mode = TransactionAnchorMode::OnChainOnly; @@ -1788,7 +1784,7 @@ fn test_nakamoto_block_static_verification() { MerkleTree::::new(&txid_vecs).root() }; - let nakamoto_recipient_txs = vec![tenure_change_tx.clone(), coinbase_recipient_tx.clone()]; + let nakamoto_recipient_txs = vec![tenure_change_tx.clone(), coinbase_recipient_tx]; let nakamoto_recipient_tx_merkle_root = { let txid_vecs: Vec<_> = nakamoto_recipient_txs .iter() @@ -1798,10 +1794,7 @@ fn test_nakamoto_block_static_verification() { MerkleTree::::new(&txid_vecs).root() }; - let nakamoto_shadow_recipient_txs = vec![ - tenure_change_tx.clone(), - coinbase_shadow_recipient_tx.clone(), - ]; + let nakamoto_shadow_recipient_txs = vec![tenure_change_tx, coinbase_shadow_recipient_tx]; let nakamoto_shadow_recipient_tx_merkle_root = { let txid_vecs: Vec<_> = nakamoto_shadow_recipient_txs .iter() @@ -1811,7 +1804,7 @@ fn test_nakamoto_block_static_verification() { MerkleTree::::new(&txid_vecs).root() }; - let nakamoto_txs_bad_ch = vec![tenure_change_tx_bad_ch.clone(), coinbase_tx.clone()]; + let nakamoto_txs_bad_ch = vec![tenure_change_tx_bad_ch, coinbase_tx.clone()]; let nakamoto_tx_merkle_root_bad_ch = { let txid_vecs: Vec<_> = nakamoto_txs_bad_ch .iter() @@ -1821,8 +1814,7 @@ fn test_nakamoto_block_static_verification() { MerkleTree::::new(&txid_vecs).root() }; - let nakamoto_txs_bad_miner_sig = - vec![tenure_change_tx_bad_miner_sig.clone(), coinbase_tx.clone()]; + let nakamoto_txs_bad_miner_sig = vec![tenure_change_tx_bad_miner_sig, coinbase_tx]; let nakamoto_tx_merkle_root_bad_miner_sig = { let txid_vecs: Vec<_> = nakamoto_txs_bad_miner_sig .iter() @@ -2005,9 +1997,9 @@ fn test_nakamoto_block_static_verification() { .is_err()); // tenure tx requirements still hold for shadow blocks - let mut shadow_nakamoto_block = nakamoto_block.clone(); - let mut shadow_nakamoto_block_bad_ch = nakamoto_block_bad_ch.clone(); - let mut shadow_nakamoto_block_bad_miner_sig = nakamoto_block_bad_miner_sig.clone(); + let mut shadow_nakamoto_block = nakamoto_block; + let mut shadow_nakamoto_block_bad_ch = nakamoto_block_bad_ch; + let mut shadow_nakamoto_block_bad_miner_sig = nakamoto_block_bad_miner_sig; shadow_nakamoto_block.header.version |= 0x80; shadow_nakamoto_block_bad_ch.header.version |= 0x80; @@ -2328,7 +2320,7 @@ fn parse_vote_for_aggregate_public_key_valid() { let chainid = CHAIN_ID_TESTNET; let vote_contract_id = boot_code_id(SIGNERS_VOTING_NAME, mainnet); let contract_addr = vote_contract_id.issuer.into(); - let contract_name = vote_contract_id.name.clone(); + let contract_name = vote_contract_id.name; let signer_index = thread_rng().next_u64(); let signer_index_arg = Value::UInt(signer_index as u128); @@ -2342,10 +2334,10 @@ fn parse_vote_for_aggregate_public_key_valid() { let reward_cycle_arg = Value::UInt(reward_cycle as u128); let valid_function_args = vec![ - signer_index_arg.clone(), - aggregate_key_arg.clone(), - round_arg.clone(), - reward_cycle_arg.clone(), + signer_index_arg, + aggregate_key_arg, + round_arg, + reward_cycle_arg, ]; let valid_tx = StacksTransaction { version: TransactionVersion::Testnet, @@ -2375,7 +2367,7 @@ fn parse_vote_for_aggregate_public_key_invalid() { let chainid = CHAIN_ID_TESTNET; let vote_contract_id = boot_code_id(SIGNERS_VOTING_NAME, mainnet); let contract_addr: StacksAddress = vote_contract_id.issuer.into(); - let contract_name = vote_contract_id.name.clone(); + let contract_name = vote_contract_id.name; let signer_index = thread_rng().next_u32(); let signer_index_arg = Value::UInt(signer_index as u128); @@ -2440,7 +2432,7 @@ fn parse_vote_for_aggregate_public_key_invalid() { address: contract_addr.clone(), contract_name: contract_name.clone(), function_name: "some-other-function".into(), - function_args: valid_function_args.clone(), + function_args: valid_function_args, }), }; invalid_signers_vote_function.set_origin_nonce(1); @@ -2502,7 +2494,7 @@ fn parse_vote_for_aggregate_public_key_invalid() { signer_index_arg.clone(), aggregate_key_arg.clone(), aggregate_key_arg.clone(), - reward_cycle_arg.clone(), + reward_cycle_arg, ], }), }; @@ -2517,13 +2509,13 @@ fn parse_vote_for_aggregate_public_key_invalid() { post_conditions: vec![], payload: TransactionPayload::ContractCall(TransactionContractCall { address: contract_addr.clone(), - contract_name: contract_name.clone(), + contract_name, function_name: SIGNERS_VOTING_FUNCTION_NAME.into(), function_args: vec![ - signer_index_arg.clone(), - aggregate_key_arg.clone(), - round_arg.clone(), + signer_index_arg, aggregate_key_arg.clone(), + round_arg, + aggregate_key_arg, ], }), }; @@ -2558,7 +2550,7 @@ fn valid_vote_transaction() { let chainid = CHAIN_ID_TESTNET; let vote_contract_id = boot_code_id(SIGNERS_VOTING_NAME, mainnet); let contract_addr = vote_contract_id.issuer.into(); - let contract_name = vote_contract_id.name.clone(); + let contract_name = vote_contract_id.name; let signer_index = thread_rng().next_u32(); let signer_index_arg = Value::UInt(signer_index as u128); @@ -2572,10 +2564,10 @@ fn valid_vote_transaction() { let reward_cycle_arg = Value::UInt(reward_cycle as u128); let valid_function_args = vec![ - signer_index_arg.clone(), - aggregate_key_arg.clone(), - round_arg.clone(), - reward_cycle_arg.clone(), + signer_index_arg, + aggregate_key_arg, + round_arg, + reward_cycle_arg, ]; let mut valid_tx = StacksTransaction { version: TransactionVersion::Testnet, @@ -2608,7 +2600,7 @@ fn valid_vote_transaction_malformed_transactions() { let chainid = CHAIN_ID_TESTNET; let vote_contract_id = boot_code_id(SIGNERS_VOTING_NAME, mainnet); let contract_addr: StacksAddress = vote_contract_id.issuer.into(); - let contract_name = vote_contract_id.name.clone(); + let contract_name = vote_contract_id.name; let signer_index = thread_rng().next_u32(); let signer_index_arg = Value::UInt(signer_index as u128); @@ -2769,7 +2761,7 @@ fn valid_vote_transaction_malformed_transactions() { signer_index_arg.clone(), aggregate_key_arg.clone(), aggregate_key_arg.clone(), - reward_cycle_arg.clone(), + reward_cycle_arg, ], }), }; @@ -2787,10 +2779,10 @@ fn valid_vote_transaction_malformed_transactions() { contract_name: contract_name.clone(), function_name: SIGNERS_VOTING_FUNCTION_NAME.into(), function_args: vec![ - signer_index_arg.clone(), - aggregate_key_arg.clone(), - round_arg.clone(), + signer_index_arg, aggregate_key_arg.clone(), + round_arg, + aggregate_key_arg, ], }), }; @@ -2805,9 +2797,9 @@ fn valid_vote_transaction_malformed_transactions() { post_conditions: vec![], payload: TransactionPayload::ContractCall(TransactionContractCall { address: contract_addr.clone(), - contract_name: contract_name.clone(), + contract_name: contract_name, function_name: SIGNERS_VOTING_FUNCTION_NAME.into(), - function_args: valid_function_args.clone(), + function_args: valid_function_args, }), }; invalid_nonce.set_origin_nonce(0); // old nonce @@ -2842,7 +2834,7 @@ fn filter_one_transaction_per_signer_multiple_addresses() { let chainid = CHAIN_ID_TESTNET; let vote_contract_id = boot_code_id(SIGNERS_VOTING_NAME, mainnet); let contract_addr: StacksAddress = vote_contract_id.issuer.into(); - let contract_name = vote_contract_id.name.clone(); + let contract_name = vote_contract_id.name; let signer_index = thread_rng().next_u32(); let signer_index_arg = Value::UInt(signer_index as u128); @@ -2856,10 +2848,10 @@ fn filter_one_transaction_per_signer_multiple_addresses() { let reward_cycle_arg = Value::UInt(reward_cycle as u128); let function_args = vec![ - signer_index_arg.clone(), - aggregate_key_arg.clone(), - round_arg.clone(), - reward_cycle_arg.clone(), + signer_index_arg, + aggregate_key_arg, + round_arg, + reward_cycle_arg, ]; let mut valid_tx_1_address_1 = StacksTransaction { @@ -2970,7 +2962,7 @@ fn filter_one_transaction_per_signer_duplicate_nonces() { let chainid = CHAIN_ID_TESTNET; let vote_contract_id = boot_code_id(SIGNERS_VOTING_NAME, mainnet); let contract_addr: StacksAddress = vote_contract_id.issuer.into(); - let contract_name = vote_contract_id.name.clone(); + let contract_name = vote_contract_id.name; let signer_index = thread_rng().next_u32(); let signer_index_arg = Value::UInt(signer_index as u128); @@ -2984,10 +2976,10 @@ fn filter_one_transaction_per_signer_duplicate_nonces() { let reward_cycle_arg = Value::UInt(reward_cycle as u128); let function_args = vec![ - signer_index_arg.clone(), - aggregate_key_arg.clone(), - round_arg.clone(), - reward_cycle_arg.clone(), + signer_index_arg, + aggregate_key_arg, + round_arg, + reward_cycle_arg, ]; let mut valid_tx_1 = StacksTransaction { diff --git a/stackslib/src/chainstate/nakamoto/tests/node.rs b/stackslib/src/chainstate/nakamoto/tests/node.rs index e4c315dca2..9c2d43f8fc 100644 --- a/stackslib/src/chainstate/nakamoto/tests/node.rs +++ b/stackslib/src/chainstate/nakamoto/tests/node.rs @@ -1515,7 +1515,6 @@ impl TestPeer<'_> { peer.malleablized_blocks.append(&mut malleablized_blocks); let block_data = blocks - .clone() .into_iter() .map(|(blk, sz, cost, _)| (blk, sz, cost)) .collect(); @@ -1605,7 +1604,6 @@ impl TestPeer<'_> { self.malleablized_blocks.append(&mut malleablized_blocks); let block_data = blocks - .clone() .into_iter() .map(|(blk, sz, cost, _)| (blk, sz, cost)) .collect(); diff --git a/stackslib/src/chainstate/stacks/block.rs b/stackslib/src/chainstate/stacks/block.rs index a335e21894..33277721d9 100644 --- a/stackslib/src/chainstate/stacks/block.rs +++ b/stackslib/src/chainstate/stacks/block.rs @@ -1472,7 +1472,7 @@ mod test { }; let mut tx_invalid_anchor = StacksTransaction::new( TransactionVersion::Testnet, - origin_auth.clone(), + origin_auth, TransactionPayload::TokenTransfer( stx_address.into(), 123, @@ -1485,11 +1485,11 @@ mod test { let mut tx_dup = tx_invalid_anchor.clone(); tx_dup.anchor_mode = TransactionAnchorMode::OnChainOnly; - let txs_bad_coinbase = vec![tx_invalid_coinbase.clone()]; + let txs_bad_coinbase = vec![tx_invalid_coinbase]; let txs_no_coinbase = vec![tx_dup.clone()]; - let txs_multiple_coinbases = vec![tx_coinbase.clone(), tx_coinbase_2.clone()]; - let txs_bad_anchor = vec![tx_coinbase.clone(), tx_invalid_anchor.clone()]; - let txs_dup = vec![tx_coinbase.clone(), tx_dup.clone(), tx_dup.clone()]; + let txs_multiple_coinbases = vec![tx_coinbase.clone(), tx_coinbase_2]; + let txs_bad_anchor = vec![tx_coinbase.clone(), tx_invalid_anchor]; + let txs_dup = vec![tx_coinbase, tx_dup.clone(), tx_dup]; let get_tx_root = |txs: &[StacksTransaction]| { let txid_vecs: Vec<_> = txs.iter().map(|tx| tx.txid().as_bytes().to_vec()).collect(); @@ -1514,7 +1514,7 @@ mod test { let mut block_header_dup_tx = header.clone(); block_header_dup_tx.tx_merkle_root = get_tx_root(&txs_dup); - let mut block_header_empty = header.clone(); + let mut block_header_empty = header; block_header_empty.tx_merkle_root = get_tx_root(&[]); let invalid_blocks = vec![ @@ -1600,7 +1600,7 @@ mod test { }; let mut tx_invalid_anchor = StacksTransaction::new( TransactionVersion::Testnet, - origin_auth.clone(), + origin_auth, TransactionPayload::TokenTransfer( stx_address.into(), 123, @@ -1613,10 +1613,10 @@ mod test { let mut tx_dup = tx_invalid_anchor.clone(); tx_dup.anchor_mode = TransactionAnchorMode::OffChainOnly; - let txs_coinbase = vec![tx_coinbase.clone()]; - let txs_offchain_coinbase = vec![tx_coinbase_offchain.clone()]; - let txs_bad_anchor = vec![tx_invalid_anchor.clone()]; - let txs_dup = vec![tx_dup.clone(), tx_dup.clone()]; + let txs_coinbase = vec![tx_coinbase]; + let txs_offchain_coinbase = vec![tx_coinbase_offchain]; + let txs_bad_anchor = vec![tx_invalid_anchor]; + let txs_dup = vec![tx_dup.clone(), tx_dup]; let get_tx_root = |txs: &[StacksTransaction]| { let txid_vecs: Vec<_> = txs.iter().map(|tx| tx.txid().as_bytes().to_vec()).collect(); @@ -1638,7 +1638,7 @@ mod test { let mut block_header_dup_tx = header.clone(); block_header_dup_tx.tx_merkle_root = get_tx_root(&txs_dup); - let mut block_header_empty = header.clone(); + let mut block_header_empty = header; block_header_empty.tx_merkle_root = get_tx_root(&[]); let invalid_blocks = vec![ @@ -1719,7 +1719,7 @@ mod test { block_header_dup_tx.tx_merkle_root = get_tx_root(&txs.to_vec()); let block = StacksBlock { - header: block_header_dup_tx.clone(), + header: block_header_dup_tx, txs: txs.to_vec(), }; @@ -1732,7 +1732,7 @@ mod test { get_tx_root(&txs_with_coinbase.to_vec()); StacksBlock { - header: block_header_dup_tx_with_coinbase.clone(), + header: block_header_dup_tx_with_coinbase, txs: txs_with_coinbase, } }); @@ -1746,7 +1746,7 @@ mod test { get_tx_root(&txs_with_coinbase_nakamoto.to_vec()); StacksBlock { - header: block_header_dup_tx_with_coinbase_nakamoto.clone(), + header: block_header_dup_tx_with_coinbase_nakamoto, txs: txs_with_coinbase_nakamoto, } }); @@ -1866,14 +1866,14 @@ mod test { order_independent_multisig_condition_p2wsh.clone(), ); let order_independent_origin_auth_p2sh = - TransactionAuth::Standard(order_independent_multisig_condition_p2sh.clone()); + TransactionAuth::Standard(order_independent_multisig_condition_p2sh); let order_independent_origin_auth_p2wsh = - TransactionAuth::Standard(order_independent_multisig_condition_p2wsh.clone()); + TransactionAuth::Standard(order_independent_multisig_condition_p2wsh); let order_independent_multisig_tx_transfer_mainnet_p2sh = StacksTransaction::new( TransactionVersion::Mainnet, - order_independent_origin_auth_p2sh.clone(), + order_independent_origin_auth_p2sh, TransactionPayload::TokenTransfer( stx_address.into(), 123, @@ -1883,7 +1883,7 @@ mod test { let order_independent_multisig_tx_transfer_mainnet_p2wsh = StacksTransaction::new( TransactionVersion::Mainnet, - order_independent_origin_auth_p2wsh.clone(), + order_independent_origin_auth_p2wsh, TransactionPayload::TokenTransfer( stx_address.into(), 123, @@ -1893,7 +1893,7 @@ mod test { let order_independent_sponsored_multisig_tx_transfer_mainnet_p2sh = StacksTransaction::new( TransactionVersion::Mainnet, - order_independent_sponsored_auth_p2sh.clone(), + order_independent_sponsored_auth_p2sh, TransactionPayload::TokenTransfer( stx_address.into(), 123, @@ -1903,7 +1903,7 @@ mod test { let order_independent_sponsored_multisig_tx_transfer_mainnet_p2wsh = StacksTransaction::new( TransactionVersion::Mainnet, - order_independent_sponsored_auth_p2wsh.clone(), + order_independent_sponsored_auth_p2wsh, TransactionPayload::TokenTransfer( stx_address.into(), 123, @@ -2040,7 +2040,7 @@ mod test { }; let tx_tenure_change = StacksTransaction::new( TransactionVersion::Testnet, - origin_auth.clone(), + origin_auth, TransactionPayload::TenureChange(tenure_change_payload), ); @@ -2049,20 +2049,20 @@ mod test { tx_transfer.clone(), tx_transfer.clone(), ]; - let mainnet_txs = vec![tx_coinbase.clone(), tx_transfer_mainnet.clone()]; - let alt_chain_id_txs = vec![tx_coinbase.clone(), tx_transfer_alt_chain.clone()]; - let offchain_txs = vec![tx_coinbase.clone(), tx_transfer_bad_anchor.clone()]; - let no_coinbase = vec![tx_transfer.clone()]; - let coinbase_contract = vec![tx_coinbase_contract.clone()]; - let versioned_contract = vec![tx_versioned_smart_contract.clone()]; + let mainnet_txs = vec![tx_coinbase.clone(), tx_transfer_mainnet]; + let alt_chain_id_txs = vec![tx_coinbase.clone(), tx_transfer_alt_chain]; + let offchain_txs = vec![tx_coinbase.clone(), tx_transfer_bad_anchor]; + let no_coinbase = vec![tx_transfer]; + let coinbase_contract = vec![tx_coinbase_contract]; + let versioned_contract = vec![tx_versioned_smart_contract]; let nakamoto_coinbase = vec![tx_coinbase_proof.clone()]; let tenure_change_tx = vec![tx_tenure_change.clone()]; - let nakamoto_txs = vec![tx_coinbase_proof.clone(), tx_tenure_change.clone()]; + let nakamoto_txs = vec![tx_coinbase_proof.clone(), tx_tenure_change]; let order_independent_multisig_txs = vec![ - order_independent_multisig_tx_transfer_mainnet_p2sh_signed.clone(), - order_independent_sponsored_multisig_tx_transfer_mainnet_p2sh_signed.clone(), - order_independent_multisig_tx_transfer_mainnet_p2wsh_signed.clone(), - order_independent_sponsored_multisig_tx_transfer_mainnet_p2wsh_signed.clone(), + order_independent_multisig_tx_transfer_mainnet_p2sh_signed, + order_independent_sponsored_multisig_tx_transfer_mainnet_p2sh_signed, + order_independent_multisig_tx_transfer_mainnet_p2wsh_signed, + order_independent_sponsored_multisig_tx_transfer_mainnet_p2wsh_signed, ]; assert!(!StacksBlock::validate_transactions_unique(&dup_txs)); @@ -2119,10 +2119,10 @@ mod test { ); verify_block_epoch_validation( &tenure_change_tx, - Some(tx_coinbase.clone()), - Some(tx_coinbase_proof.clone()), + Some(tx_coinbase), + Some(tx_coinbase_proof), StacksEpochId::Epoch30, - header.clone(), + header, None, ); } diff --git a/stackslib/src/chainstate/stacks/boot/contract_tests.rs b/stackslib/src/chainstate/stacks/boot/contract_tests.rs index 58701a2861..1946cfc17f 100644 --- a/stackslib/src/chainstate/stacks/boot/contract_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/contract_tests.rs @@ -846,7 +846,7 @@ fn pox_2_contract_caller_units() { &symbols_from_values(vec![ Value::UInt(USTX_PER_HOLDER), POX_ADDRS[0].clone(), - burn_height.clone(), + burn_height, Value::UInt(3), ]) ) @@ -876,7 +876,7 @@ fn pox_2_contract_caller_units() { &symbols_from_values(vec![ Value::UInt(USTX_PER_HOLDER), POX_ADDRS[2].clone(), - burn_height.clone(), + burn_height, Value::UInt(3), ]) ) @@ -1020,7 +1020,7 @@ fn pox_2_lock_extend_units() { &symbols_from_values(vec![ Value::UInt(USTX_PER_HOLDER), POX_ADDRS[1].clone(), - burn_height.clone(), + burn_height, Value::UInt(3), ]) ) @@ -1276,7 +1276,7 @@ fn pox_2_delegate_extend_units() { (&USER_KEYS[1]).into(), Value::UInt(1), POX_ADDRS[1].clone(), - burn_height.clone(), + burn_height, Value::UInt(2) ]) ) @@ -2458,7 +2458,7 @@ fn delegation_tests() { (&USER_KEYS[4]).into(), Value::UInt(*MIN_THRESHOLD - 1), POX_ADDRS[0].clone(), - burn_height.clone(), + burn_height, Value::UInt(2) ]) ) diff --git a/stackslib/src/chainstate/stacks/boot/mod.rs b/stackslib/src/chainstate/stacks/boot/mod.rs index 86263904f5..0003d4aead 100644 --- a/stackslib/src/chainstate/stacks/boot/mod.rs +++ b/stackslib/src/chainstate/stacks/boot/mod.rs @@ -399,7 +399,7 @@ impl StacksChainState { // chain id doesn't matter since it won't be used CHAIN_ID_MAINNET, ClarityVersion::Clarity2, - sender_addr.clone(), + sender_addr, None, LimitedCostTracker::new_free(), |vm_env| { @@ -1678,7 +1678,6 @@ pub mod test { let addrs: Vec = keys.iter().map(|pk| key_to_stacks_addr(pk)).collect(); let balances: Vec<(PrincipalData, u64)> = addrs - .clone() .into_iter() .map(|addr| (addr.into(), (1024 * POX_THRESHOLD_STEPS_USTX) as u64)) .collect(); @@ -2228,7 +2227,7 @@ pub mod test { "delegate-stx", vec![ Value::UInt(amount), - Value::Principal(delegate_to.clone()), + Value::Principal(delegate_to), match until_burn_ht { Some(burn_ht) => Value::some(Value::UInt(burn_ht)).unwrap(), None => Value::none(), @@ -2260,7 +2259,7 @@ pub mod test { POX_4_NAME, "delegate-stack-stx", vec![ - Value::Principal(stacker.clone()), + Value::Principal(stacker), Value::UInt(amount), Value::Tuple(pox_addr.as_clarity_tuple().unwrap()), Value::UInt(start_burn_height), @@ -2284,7 +2283,7 @@ pub mod test { POX_4_NAME, "delegate-stack-extend", vec![ - Value::Principal(stacker.clone()), + Value::Principal(stacker), Value::Tuple(pox_addr.as_clarity_tuple().unwrap()), Value::UInt(extend_count), ], @@ -3082,8 +3081,8 @@ pub mod test { let tx = make_tx(&alice, 5, 0, cc_payload.clone()); block_txs.push(tx); - let alice_allowance = make_pox_contract_call(&alice, 6, "allow-contract-caller", vec![alice_contract.clone(), Value::none()]); - let tx = make_tx(&alice, 7, 0, cc_payload.clone()); // should be allowed! + let alice_allowance = make_pox_contract_call(&alice, 6, "allow-contract-caller", vec![alice_contract, Value::none()]); + let tx = make_tx(&alice, 7, 0, cc_payload); // should be allowed! block_txs.push(alice_allowance); block_txs.push(tx); } diff --git a/stackslib/src/chainstate/stacks/boot/pox_2_tests.rs b/stackslib/src/chainstate/stacks/boot/pox_2_tests.rs index 47b57cdd2c..2eac730cce 100644 --- a/stackslib/src/chainstate/stacks/boot/pox_2_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/pox_2_tests.rs @@ -721,7 +721,7 @@ fn test_simple_pox_lockup_transition_pox_2() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, "test_simple_pox_lockup_transition_pox_2", - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -1181,8 +1181,8 @@ fn test_simple_pox_2_auto_unlock(alice_first: bool) { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, - &format!("test_simple_pox_2_auto_unlock_{}", alice_first), - Some(epochs.clone()), + &format!("test_simple_pox_2_auto_unlock_{alice_first}"), + Some(epochs), Some(&observer), ); @@ -1475,7 +1475,7 @@ fn delegate_stack_increase() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, &format!("pox_2_delegate_stack_increase"), - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -1831,7 +1831,7 @@ fn stack_increase() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, &format!("test_simple_pox_2_increase"), - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -2076,7 +2076,7 @@ fn test_lock_period_invariant_extend_transition() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, "test_lp_invariant_extend_trans", - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -2238,7 +2238,7 @@ fn test_pox_extend_transition_pox_2() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, "test_pox_extend_transition_pox_2", - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -2681,7 +2681,7 @@ fn test_delegate_extend_transition_pox_2() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, "test_delegate_extend_transition_pox_2", - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -3429,12 +3429,8 @@ fn test_pox_2_getters() { let epochs = StacksEpoch::all(0, 0, EMPTY_SORTITIONS as u64 + 10); - let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( - &burnchain, - "test-pox-2-getters", - Some(epochs.clone()), - None, - ); + let (mut peer, mut keys) = + instantiate_pox_peer_with_epoch(&burnchain, "test-pox-2-getters", Some(epochs), None); peer.config.check_pox_invariants = Some((EXPECTED_FIRST_V2_CYCLE, EXPECTED_FIRST_V2_CYCLE + 10)); @@ -3721,12 +3717,8 @@ fn test_get_pox_addrs() { let epochs = StacksEpoch::all(1, 2, 3); - let (mut peer, keys) = instantiate_pox_peer_with_epoch( - &burnchain, - "test-get-pox-addrs", - Some(epochs.clone()), - None, - ); + let (mut peer, keys) = + instantiate_pox_peer_with_epoch(&burnchain, "test-get-pox-addrs", Some(epochs), None); let num_blocks = 20; let mut lockup_reward_cycle = 0; @@ -3993,12 +3985,8 @@ fn test_stack_with_segwit() { let epochs = StacksEpoch::all(1, 2, 3); - let (mut peer, all_keys) = instantiate_pox_peer_with_epoch( - &burnchain, - "test-stack-with-segwit", - Some(epochs.clone()), - None, - ); + let (mut peer, all_keys) = + instantiate_pox_peer_with_epoch(&burnchain, "test-stack-with-segwit", Some(epochs), None); let num_blocks = 20; let segwit_keys: Vec<_> = all_keys.into_iter().take(4).collect(); @@ -4324,7 +4312,7 @@ fn test_pox_2_delegate_stx_addr_validation() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, "test-pox-2-delegate-stx-addr", - Some(epochs.clone()), + Some(epochs), None, ); @@ -4510,7 +4498,7 @@ fn stack_aggregation_increase() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, &format!("pox_2_stack_aggregation_increase"), - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -4738,7 +4726,7 @@ fn stack_aggregation_increase() { charlie_nonce, "stack-aggregation-increase", vec![ - charlie_pox_addr.clone(), + charlie_pox_addr, Value::UInt(cur_reward_cycle as u128), Value::UInt(0), ], @@ -4960,7 +4948,7 @@ fn stack_in_both_pox1_and_pox2() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, &format!("stack_in_both_pox1_and_pox2"), - Some(epochs.clone()), + Some(epochs), Some(&observer), ); diff --git a/stackslib/src/chainstate/stacks/boot/pox_3_tests.rs b/stackslib/src/chainstate/stacks/boot/pox_3_tests.rs index 5c52297969..f444bcd9cd 100644 --- a/stackslib/src/chainstate/stacks/boot/pox_3_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/pox_3_tests.rs @@ -1011,7 +1011,7 @@ fn delegate_stack_increase() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let first_v2_cycle = burnchain .block_height_to_reward_cycle(burnchain.pox_constants.v1_unlock_height as u64) @@ -1632,7 +1632,7 @@ fn stack_increase() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let first_v2_cycle = burnchain .block_height_to_reward_cycle(burnchain.pox_constants.v1_unlock_height as u64) @@ -2061,7 +2061,7 @@ fn pox_extend_transition() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let first_v2_cycle = burnchain .block_height_to_reward_cycle(burnchain.pox_constants.v1_unlock_height as u64) @@ -2581,7 +2581,7 @@ fn delegate_extend_pox_3() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let first_v3_cycle = burnchain .block_height_to_reward_cycle(burnchain.pox_constants.pox_3_activation_height as u64) @@ -3047,7 +3047,7 @@ fn delegate_extend_pox_3() { ]); let common_data = PoxPrintFields { op_name: "stack-aggregation-commit".to_string(), - stacker: Value::Principal(charlie_principal.clone()), + stacker: Value::Principal(charlie_principal), balance: Value::UInt(LOCKUP_AMT), locked: Value::UInt(0), burnchain_unlock_height: Value::UInt(0), @@ -3067,7 +3067,7 @@ fn pox_3_getters() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let first_v3_cycle = burnchain .block_height_to_reward_cycle(burnchain.pox_constants.pox_3_activation_height as u64) @@ -3422,7 +3422,7 @@ fn get_pox_addrs() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let first_v2_cycle = burnchain .block_height_to_reward_cycle(burnchain.pox_constants.v1_unlock_height as u64) @@ -3631,7 +3631,7 @@ fn stack_with_segwit() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let first_v2_cycle = burnchain .block_height_to_reward_cycle(burnchain.pox_constants.v1_unlock_height as u64) @@ -3846,7 +3846,7 @@ fn stack_aggregation_increase() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let first_v3_cycle = burnchain .block_height_to_reward_cycle(burnchain.pox_constants.pox_3_activation_height as u64) @@ -4087,7 +4087,7 @@ fn stack_aggregation_increase() { charlie_nonce, "stack-aggregation-increase", vec![ - charlie_pox_addr.clone(), + charlie_pox_addr, Value::UInt(cur_reward_cycle as u128), Value::UInt(0), ], @@ -4286,7 +4286,7 @@ fn pox_3_delegate_stx_addr_validation() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let first_v3_cycle = burnchain .block_height_to_reward_cycle(burnchain.pox_constants.pox_3_activation_height as u64) diff --git a/stackslib/src/chainstate/stacks/boot/pox_4_tests.rs b/stackslib/src/chainstate/stacks/boot/pox_4_tests.rs index ee19fe22ce..da85b2b390 100644 --- a/stackslib/src/chainstate/stacks/boot/pox_4_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/pox_4_tests.rs @@ -261,7 +261,7 @@ fn pox_extend_transition() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let first_v2_cycle = burnchain .block_height_to_reward_cycle(burnchain.pox_constants.v1_unlock_height as u64) @@ -687,10 +687,10 @@ fn pox_extend_transition() { let alice_lockup = make_pox_4_extend( &alice, 3, - alice_pox_addr.clone(), + alice_pox_addr, 6, alice_signer_key.clone(), - Some(alice_signature.clone()), + Some(alice_signature), u128::MAX, 3, ); @@ -921,7 +921,7 @@ fn pox_lock_unlock() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let (mut peer, keys) = instantiate_pox_peer_with_epoch(&burnchain, function_name!(), Some(epochs.clone()), None); @@ -1096,7 +1096,7 @@ fn pox_3_defunct() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let observer = TestEventObserver::new(); @@ -1232,7 +1232,7 @@ fn pox_3_unlocks() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let (mut peer, keys) = instantiate_pox_peer_with_epoch(&burnchain, function_name!(), Some(epochs.clone()), None); @@ -1391,7 +1391,7 @@ fn pox_4_check_cycle_id_range_in_print_events_pool() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, function_name!(), - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -1461,7 +1461,7 @@ fn pox_4_check_cycle_id_range_in_print_events_pool() { &steph_key, steph_stack_stx_nonce, min_ustx, - &steph_pox_addr.clone(), + &steph_pox_addr, lock_period, &steph_signing_key, block_height, @@ -1675,7 +1675,7 @@ fn pox_4_check_cycle_id_range_in_print_events_pool() { ]); let common_data = PoxPrintFields { op_name: "stack-extend".to_string(), - stacker: steph_principal.clone().into(), + stacker: steph_principal.into(), balance: Value::UInt(10234866374900), locked: Value::UInt(5133625100), burnchain_unlock_height: Value::UInt(120), @@ -1723,7 +1723,7 @@ fn pox_4_check_cycle_id_range_in_print_events_pool() { ]); let common_data = PoxPrintFields { op_name: "delegate-stack-stx".to_string(), - stacker: alice_principal.clone().into(), + stacker: alice_principal.into(), balance: Value::UInt(10240000000000), locked: Value::UInt(0), burnchain_unlock_height: Value::UInt(0), @@ -1747,7 +1747,7 @@ fn pox_4_check_cycle_id_range_in_print_events_pool() { ]); let common_data = PoxPrintFields { op_name: "stack-aggregation-commit-indexed".to_string(), - stacker: bob_principal.clone().into(), + stacker: bob_principal.into(), balance: Value::UInt(10240000000000), locked: Value::UInt(0), burnchain_unlock_height: Value::UInt(0), @@ -1780,7 +1780,7 @@ fn pox_4_check_cycle_id_range_in_print_events_pool_in_prepare_phase() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, function_name!(), - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -2121,7 +2121,7 @@ fn pox_4_check_cycle_id_range_in_print_events_pool_in_prepare_phase() { ]); let common_data = PoxPrintFields { op_name: "delegate-stack-stx".to_string(), - stacker: alice_principal.clone().into(), + stacker: alice_principal.into(), balance: Value::UInt(10240000000000), locked: Value::UInt(0), burnchain_unlock_height: Value::UInt(0), @@ -2145,7 +2145,7 @@ fn pox_4_check_cycle_id_range_in_print_events_pool_in_prepare_phase() { ]); let common_data = PoxPrintFields { op_name: "stack-aggregation-commit-indexed".to_string(), - stacker: bob_principal.clone().into(), + stacker: bob_principal.into(), balance: Value::UInt(10240000000000), locked: Value::UInt(0), burnchain_unlock_height: Value::UInt(0), @@ -2207,7 +2207,7 @@ fn pox_4_check_cycle_id_range_in_print_events_pool_in_prepare_phase_skip_cycle() let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, function_name!(), - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -2384,7 +2384,7 @@ fn pox_4_check_cycle_id_range_in_print_events_pool_in_prepare_phase_skip_cycle() ]); let common_data = PoxPrintFields { op_name: "delegate-stack-stx".to_string(), - stacker: alice_principal.clone().into(), + stacker: alice_principal.into(), balance: Value::UInt(10240000000000), locked: Value::UInt(0), burnchain_unlock_height: Value::UInt(0), @@ -2408,7 +2408,7 @@ fn pox_4_check_cycle_id_range_in_print_events_pool_in_prepare_phase_skip_cycle() ]); let common_data = PoxPrintFields { op_name: "stack-aggregation-commit-indexed".to_string(), - stacker: bob_principal.clone().into(), + stacker: bob_principal.into(), balance: Value::UInt(10240000000000), locked: Value::UInt(0), burnchain_unlock_height: Value::UInt(0), @@ -2432,14 +2432,14 @@ fn pox_4_check_cycle_id_range_in_print_events_before_prepare_phase() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let observer = TestEventObserver::new(); let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, function_name!(), - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -2495,7 +2495,7 @@ fn pox_4_check_cycle_id_range_in_print_events_before_prepare_phase() { &steph_key, steph_nonce, min_ustx, - &steph_pox_addr.clone(), + &steph_pox_addr, steph_lock_period, &steph_signing_key, get_tip(peer.sortdb.as_ref()).block_height, @@ -2553,14 +2553,14 @@ fn pox_4_check_cycle_id_range_in_print_events_in_prepare_phase() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let observer = TestEventObserver::new(); let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, function_name!(), - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -2616,7 +2616,7 @@ fn pox_4_check_cycle_id_range_in_print_events_in_prepare_phase() { &steph_key, steph_nonce, min_ustx, - &steph_pox_addr.clone(), + &steph_pox_addr, steph_lock_period, &steph_signing_key, get_tip(peer.sortdb.as_ref()).block_height, @@ -2672,14 +2672,14 @@ fn pox_4_delegate_stack_increase_events() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let observer = TestEventObserver::new(); let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, function_name!(), - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -2708,8 +2708,7 @@ fn pox_4_delegate_stack_increase_events() { // alice delegate to bob let next_cycle = get_current_reward_cycle(&peer, &burnchain) + 1; let amount = 100_000_000; - let alice_delegate = - make_pox_4_delegate_stx(&alice_key, 0, amount, bob_principal.clone(), None, None); + let alice_delegate = make_pox_4_delegate_stx(&alice_key, 0, amount, bob_principal, None, None); // bob delegate-stack-stx let bob_delegate_stack_stx = make_pox_4_delegate_stack_stx( @@ -2723,18 +2722,13 @@ fn pox_4_delegate_stack_increase_events() { ); // bob delegate-stack-increase - let bob_delegate_stack_increase = make_pox_4_delegate_stack_increase( - &bob_key, - 1, - &alice_principal, - bob_pox_addr.clone(), - amount / 2, - ); + let bob_delegate_stack_increase = + make_pox_4_delegate_stack_increase(&bob_key, 1, &alice_principal, bob_pox_addr, amount / 2); latest_block = Some(peer.tenure_with_txs( &[ - alice_delegate.clone(), - bob_delegate_stack_stx.clone(), + alice_delegate, + bob_delegate_stack_stx, bob_delegate_stack_increase.clone(), ], &mut coinbase_nonce, @@ -2762,8 +2756,8 @@ fn pox_4_delegate_stack_increase_events() { ("start-cycle-id", Value::UInt(next_cycle)), ("end-cycle-id", Optional(OptionalData { data: None })), ("increase-by", Value::UInt(amount / 2)), - ("pox-addr", bob_pox_addr_val.clone()), - ("delegator", alice_principal.clone().into()), + ("pox-addr", bob_pox_addr_val), + ("delegator", alice_principal.into()), ]); } @@ -2778,14 +2772,14 @@ fn pox_4_revoke_delegate_stx_events() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let observer = TestEventObserver::new(); let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, function_name!(), - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -2932,7 +2926,7 @@ fn pox_4_revoke_delegate_stx_events() { ]); let common_data = PoxPrintFields { op_name: "revoke-delegate-stx".to_string(), - stacker: alice_principal.clone().into(), + stacker: alice_principal.into(), balance: Value::UInt(10240000000000), locked: Value::UInt(0), burnchain_unlock_height: Value::UInt(0), @@ -3016,14 +3010,14 @@ fn verify_signer_key_signatures() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let observer = TestEventObserver::new(); let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, function_name!(), - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -4322,7 +4316,7 @@ fn stack_agg_increase() { ) .unwrap(); - peer_config.aggregate_public_key = Some(aggregate_public_key.clone()); + peer_config.aggregate_public_key = Some(aggregate_public_key); peer_config .stacker_dbs .push(boot_code_id(MINERS_NAME, false)); @@ -4333,7 +4327,7 @@ fn stack_agg_increase() { peer_config.burnchain.pox_constants.pox_3_activation_height = 101; peer_config.burnchain.pox_constants.v3_unlock_height = 102; peer_config.burnchain.pox_constants.pox_4_activation_height = 105; - peer_config.test_signers = Some(test_signers.clone()); + peer_config.test_signers = Some(test_signers); peer_config.burnchain.pox_constants.reward_cycle_length = 20; peer_config.burnchain.pox_constants.prepare_length = 5; let epochs = peer_config.epochs.clone().unwrap(); @@ -4432,7 +4426,7 @@ fn stack_agg_increase() { let bob_delegate_stack_stx_for_carl_tx = make_pox_4_delegate_stack_stx( &bob.private_key, bob.nonce, - carl.principal.clone(), + carl.principal, amount, bob.pox_address.clone(), burn_block_height as u128, @@ -4443,7 +4437,7 @@ fn stack_agg_increase() { let bob_delegate_stack_stx_for_dave_tx = make_pox_4_delegate_stack_stx( &bob.private_key, bob.nonce, - dave.principal.clone(), + dave.principal, amount, bob.pox_address.clone(), burn_block_height as u128, @@ -4465,11 +4459,11 @@ fn stack_agg_increase() { bob.nonce += 1; let txs = vec![ - carl_delegate_stx_to_bob_tx.clone(), - dave_delegate_stx_to_bob_tx.clone(), - bob_delegate_stack_stx_for_carl_tx.clone(), - bob_delegate_stack_stx_for_dave_tx.clone(), - bobs_aggregate_commit_index_tx.clone(), + carl_delegate_stx_to_bob_tx, + dave_delegate_stx_to_bob_tx, + bob_delegate_stack_stx_for_carl_tx, + bob_delegate_stack_stx_for_dave_tx, + bobs_aggregate_commit_index_tx, ]; // Advance to next block in order to collect aggregate commit reward index @@ -4513,7 +4507,7 @@ fn stack_agg_increase() { let bob_delegate_stack_stx_for_eve_tx = make_pox_4_delegate_stack_stx( &bob.private_key, bob.nonce, - eve.principal.clone(), + eve.principal, amount, bob.pox_address.clone(), burn_block_height as u128, @@ -4576,7 +4570,7 @@ fn stack_agg_increase() { let bob_delegate_stack_stx_for_faith_tx = make_pox_4_delegate_stack_stx( &bob.private_key, bob.nonce, - frank.principal.clone(), + frank.principal, amount, bob.pox_address.clone(), burn_block_height as u128, @@ -4587,7 +4581,7 @@ fn stack_agg_increase() { let bob_delegate_stack_stx_for_grace_tx = make_pox_4_delegate_stack_stx( &bob.private_key, bob.nonce, - grace.principal.clone(), + grace.principal, amount, bob.pox_address.clone(), burn_block_height as u128, @@ -4608,15 +4602,15 @@ fn stack_agg_increase() { bob.nonce += 1; let txs = vec![ - eve_delegate_stx_to_bob_tx.clone(), - bob_delegate_stack_stx_for_eve_tx.clone(), - bobs_err_aggregate_increase.clone(), - bobs_aggregate_increase.clone(), - frank_delegate_stx_to_bob_tx.clone(), - grace_delegate_stx_to_bob_tx.clone(), - bob_delegate_stack_stx_for_faith_tx.clone(), - bob_delegate_stack_stx_for_grace_tx.clone(), - bobs_aggregate_commit_index_tx.clone(), + eve_delegate_stx_to_bob_tx, + bob_delegate_stack_stx_for_eve_tx, + bobs_err_aggregate_increase, + bobs_aggregate_increase, + frank_delegate_stx_to_bob_tx, + grace_delegate_stx_to_bob_tx, + bob_delegate_stack_stx_for_faith_tx, + bob_delegate_stack_stx_for_grace_tx, + bobs_aggregate_commit_index_tx, ]; // Advance to next block in order to attempt aggregate increase @@ -5058,7 +5052,7 @@ fn stack_increase_different_signer_keys(use_nakamoto: bool) { pox_addr.clone(), lock_period, second_signer_pk.clone(), - Some(signature.clone()), + Some(signature), u128::MAX, 1, ); @@ -5213,7 +5207,7 @@ fn stack_stx_signer_key(use_nakamoto: bool) { // (lock-period uint) // (signer-key (buff 33))) let pox_addr = pox_addr_from(&stacker_key); - let pox_addr_val = Value::Tuple(pox_addr.clone().as_clarity_tuple().unwrap()); + let pox_addr_val = Value::Tuple(pox_addr.as_clarity_tuple().unwrap()); let signature = make_signer_key_signature( &pox_addr, &signer_key, @@ -5233,8 +5227,8 @@ fn stack_stx_signer_key(use_nakamoto: bool) { pox_addr_val.clone(), Value::UInt(block_height as u128), Value::UInt(2), - Value::some(Value::buff_from(signature.clone()).unwrap()).unwrap(), - signer_key_val.clone(), + Value::some(Value::buff_from(signature).unwrap()).unwrap(), + signer_key_val, Value::UInt(u128::MAX), Value::UInt(1), ], @@ -5313,7 +5307,7 @@ fn stack_stx_signer_auth(use_nakamoto: bool) { let reward_cycle = get_current_reward_cycle(&peer, &burnchain); let pox_addr = pox_addr_from(&stacker_key); - let pox_addr_val = Value::Tuple(pox_addr.clone().as_clarity_tuple().unwrap()); + let pox_addr_val = Value::Tuple(pox_addr.as_clarity_tuple().unwrap()); let lock_period = 6; let topic = Pox4SignatureTopic::StackStx; @@ -5736,7 +5730,6 @@ fn test_set_signer_key_auth(use_nakamoto: bool) { let signer_txs = get_last_block_sender_transactions(&observer, signer_addr); let invalid_tx_period_result = signer_txs - .clone() .get(signer_invalid_period_nonce as usize) .unwrap() .result @@ -5749,7 +5742,6 @@ fn test_set_signer_key_auth(use_nakamoto: bool) { ); let invalid_tx_cycle_result = signer_txs - .clone() .get(signer_invalid_cycle_nonce as usize) .unwrap() .result @@ -5868,7 +5860,7 @@ fn stack_extend_signer_key(use_nakamoto: bool) { let min_ustx = get_stacking_minimum(&mut peer, &latest_block) * 2; let pox_addr = pox_addr_from(&stacker_key); - let pox_addr_val = Value::Tuple(pox_addr.clone().as_clarity_tuple().unwrap()); + let pox_addr_val = Value::Tuple(pox_addr.as_clarity_tuple().unwrap()); let signer_sk = Secp256k1PrivateKey::from_seed(&[0]); let signer_extend_sk = Secp256k1PrivateKey::from_seed(&[1]); @@ -6016,7 +6008,7 @@ fn delegate_stack_stx_signer_key(use_nakamoto: bool) { // (until-burn-ht (optional uint)) // (pox-addr (optional { version: (buff 1), hashbytes: (buff 32) }))) let pox_addr = pox_addr_from(&stacker_key); - let pox_addr_val = Value::Tuple(pox_addr.clone().as_clarity_tuple().unwrap()); + let pox_addr_val = Value::Tuple(pox_addr.as_clarity_tuple().unwrap()); let signer_sk = Secp256k1PrivateKey::from_seed(&[1, 1, 1]); let signer_key = Secp256k1PublicKey::from_private(&signer_sk); let signer_key_val = Value::buff_from(signer_key.to_bytes_compressed()).unwrap(); @@ -6039,7 +6031,7 @@ fn delegate_stack_stx_signer_key(use_nakamoto: bool) { "delegate-stx", vec![ Value::UInt(min_ustx + 1), - delegate_principal.clone().into(), + delegate_principal.into(), Value::none(), Value::Optional(OptionalData { data: Some(Box::new(pox_addr_val.clone())), @@ -6063,10 +6055,10 @@ fn delegate_stack_stx_signer_key(use_nakamoto: bool) { delegate_nonce + 1, "stack-aggregation-commit", vec![ - pox_addr_val.clone(), + pox_addr_val, Value::UInt(next_reward_cycle.into()), Value::some(Value::buff_from(signature).unwrap()).unwrap(), - signer_key_val.clone(), + signer_key_val, Value::UInt(u128::MAX), Value::UInt(1), ], @@ -6158,7 +6150,7 @@ fn delegate_stack_stx_extend_signer_key(use_nakamoto: bool) { alice_stacker_key, alice_nonce, min_ustx + 1, - bob_delegate_principal.clone().into(), + bob_delegate_principal.into(), None, Some(pox_addr.clone()), ); @@ -6251,7 +6243,7 @@ fn delegate_stack_stx_extend_signer_key(use_nakamoto: bool) { pox_addr.as_clarity_tuple().unwrap().into(), Value::UInt(next_reward_cycle.into()), Value::some(Value::buff_from(signature).unwrap()).unwrap(), - signer_key_val.clone(), + signer_key_val, Value::UInt(u128::MAX), Value::UInt(1), ], @@ -6275,7 +6267,7 @@ fn delegate_stack_stx_extend_signer_key(use_nakamoto: bool) { pox_addr.as_clarity_tuple().unwrap().into(), Value::UInt(extend_cycle.into()), Value::some(Value::buff_from(extend_signature).unwrap()).unwrap(), - signer_extend_key_val.clone(), + signer_extend_key_val, Value::UInt(u128::MAX), Value::UInt(2), ], @@ -6546,7 +6538,7 @@ fn delegate_stack_increase(use_nakamoto: bool) { alice_key, alice_nonce, 2 * min_ustx, - bob_delegate_address.clone(), + bob_delegate_address, None, Some(pox_addr.clone()), ); @@ -6596,7 +6588,7 @@ fn delegate_stack_increase(use_nakamoto: bool) { pox_addr.as_clarity_tuple().unwrap().into(), Value::UInt(next_reward_cycle.into()), (Value::some(Value::buff_from(signature).unwrap()).unwrap()), - signer_key_val.clone(), + signer_key_val, Value::UInt(u128::MAX), Value::UInt(1), ], @@ -6616,7 +6608,7 @@ fn delegate_stack_increase(use_nakamoto: bool) { TupleData::from_data(vec![ ( "stacker".into(), - Value::Principal(PrincipalData::from(alice_address.clone())), + Value::Principal(PrincipalData::from(alice_address)), ), ("total-locked".into(), Value::UInt(min_ustx * 2)), ]) @@ -6678,7 +6670,7 @@ pub fn pox_4_scenario_test_setup<'a>( ) .unwrap(); - peer_config.aggregate_public_key = Some(aggregate_public_key.clone()); + peer_config.aggregate_public_key = Some(aggregate_public_key); peer_config .stacker_dbs .push(boot_code_id(MINERS_NAME, false)); @@ -6686,12 +6678,12 @@ pub fn pox_4_scenario_test_setup<'a>( peer_config.initial_balances = vec![(addr.to_account_principal(), 1_000_000_000_000_000_000)]; peer_config .initial_balances - .append(&mut initial_balances.clone()); + .extend_from_slice(&initial_balances); peer_config.burnchain.pox_constants.v2_unlock_height = 81; peer_config.burnchain.pox_constants.pox_3_activation_height = 101; peer_config.burnchain.pox_constants.v3_unlock_height = 102; peer_config.burnchain.pox_constants.pox_4_activation_height = 105; - peer_config.test_signers = Some(test_signers.clone()); + peer_config.test_signers = Some(test_signers); peer_config.burnchain.pox_constants.reward_cycle_length = 20; peer_config.burnchain.pox_constants.prepare_length = 5; @@ -6749,20 +6741,16 @@ pub fn pox_4_scenario_test_setup_nakamoto<'a>( 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; - let (peer, keys) = instantiate_pox_peer_with_epoch( - &burnchain, - test_name, - Some(epochs.clone()), - Some(observer), - ); + let (peer, keys) = + instantiate_pox_peer_with_epoch(&burnchain, test_name, Some(epochs), Some(observer)); let test_key = keys[3].clone(); let test_keys = vec![test_key.clone()]; let test_addr = key_to_stacks_addr(&test_key); let test_signers = TestSigners::new(vec![test_key.clone()]); - let aggregate_public_key = test_signers.aggregate_public_key.clone(); + let aggregate_public_key = test_signers.aggregate_public_key; let private_key = StacksPrivateKey::from_seed(&[2]); let test_signers = TestSigners::new(test_keys.clone()); @@ -6779,7 +6767,7 @@ pub fn pox_4_scenario_test_setup_nakamoto<'a>( max_amount: None, }]; let mut peer_config = TestPeerConfig::default(); - peer_config.aggregate_public_key = Some(aggregate_public_key.clone()); + peer_config.aggregate_public_key = Some(aggregate_public_key); let mut pox_constants = peer_config.clone().burnchain.pox_constants; pox_constants.reward_cycle_length = 10; pox_constants.v2_unlock_height = 21; @@ -6795,7 +6783,7 @@ pub fn pox_4_scenario_test_setup_nakamoto<'a>( boot_plan.initial_balances = initial_balances; boot_plan.pox_constants = pox_constants.clone(); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; peer_config.burnchain = burnchain.clone(); peer_config.test_signers = Some(test_signers.clone()); @@ -6822,7 +6810,7 @@ pub fn pox_4_scenario_test_setup_nakamoto<'a>( reward_cycle as u128, reward_cycle.wrapping_add(1), min_ustx as u128, - peer_config.clone(), + peer_config, Some(test_signers), ) } @@ -7227,7 +7215,7 @@ fn test_scenario_one(use_nakamoto: bool) { lock_period, &alice.public_key, target_height, - Some(alice_signature.clone()), + Some(alice_signature), u128::MAX, 1, ); @@ -7375,7 +7363,7 @@ fn test_scenario_two(use_nakamoto: bool) { lock_period, &alice.public_key, burn_block_height, - Some(alice_signature_for_carl.clone()), + Some(alice_signature_for_carl), u128::MAX, 1, ); @@ -7762,7 +7750,7 @@ fn test_scenario_three(use_nakamoto: bool) { lock_period, &alice.public_key, burn_block_height, - Some(alice_signature_for_alice_err.clone()), + Some(alice_signature_for_alice_err), u128::MAX, 1, ); @@ -7790,7 +7778,7 @@ fn test_scenario_three(use_nakamoto: bool) { lock_period, &bob.public_key, burn_block_height, - Some(bob_signature_for_bob_err.clone()), + Some(bob_signature_for_bob_err), u128::MAX, 1, ); @@ -7855,7 +7843,7 @@ fn test_scenario_three(use_nakamoto: bool) { ); // Collecting all the pool stackers let davids_stackers = &[ - (eve.clone(), lock_period), + (eve, lock_period), (frank.clone(), lock_period), (grace.clone(), lock_period), (alice.clone(), lock_period), @@ -7894,7 +7882,7 @@ fn test_scenario_three(use_nakamoto: bool) { david.nonce, &david.pox_address, next_reward_cycle, - Some(carl_signature_for_david_err.clone()), + Some(carl_signature_for_david_err), &carl.public_key, u128::MAX, 1, @@ -7906,7 +7894,7 @@ fn test_scenario_three(use_nakamoto: bool) { david.nonce, &david.pox_address, next_reward_cycle, - Some(carl_signature_for_david.clone()), + Some(carl_signature_for_david), &carl.public_key, u128::MAX, 1, @@ -8222,7 +8210,7 @@ fn test_scenario_four(use_nakamoto: bool) { lock_period, &alice.public_key, burn_block_height, - Some(alice_signature_initial.clone()), + Some(alice_signature_initial), u128::MAX, 1, ); @@ -8236,13 +8224,13 @@ fn test_scenario_four(use_nakamoto: bool) { lock_period, &bob.public_key, burn_block_height, - Some(bob_signature_initial.clone()), + Some(bob_signature_initial), u128::MAX, 1, ); bob.nonce += 1; - let txs = vec![alice_stack.clone(), bob_stack.clone()]; + let txs = vec![alice_stack, bob_stack]; // Commit tx & advance to the reward set calculation height (2nd block of the prepare phase for reward cycle 6) let target_height = peer @@ -8316,11 +8304,7 @@ fn test_scenario_four(use_nakamoto: bool) { next_reward_cycle, ); bob.nonce += 1; - let mut txs = vec![ - alice_vote_err.clone(), - alice_vote_expected.clone(), - bob_vote_expected.clone(), - ]; + let mut txs = vec![alice_vote_err, alice_vote_expected, bob_vote_expected]; // Also vote for aggregate key with default test signer if in Nakamoto: if let Some(test_signers) = test_signers.clone() { @@ -8402,7 +8386,7 @@ fn test_scenario_four(use_nakamoto: bool) { alice.pox_address.clone(), lock_period, bob.public_key.clone(), - Some(alice_signature_extend_err.clone()), + Some(alice_signature_extend_err), u128::MAX, 1, ); @@ -8414,7 +8398,7 @@ fn test_scenario_four(use_nakamoto: bool) { alice.pox_address.clone(), lock_period, alice.public_key.clone(), - Some(alice_signature_extend.clone()), + Some(alice_signature_extend), u128::MAX, 1, ); @@ -8427,17 +8411,13 @@ fn test_scenario_four(use_nakamoto: bool) { &alice.private_key, alice.nonce, alice_index, - peer_config.aggregate_public_key.clone().unwrap(), + peer_config.aggregate_public_key.unwrap(), 1, 7, ); alice.nonce += 1; - let txs = vec![ - alice_extend_err.clone(), - alice_extend.clone(), - alice_vote_expected_err.clone(), - ]; + let txs = vec![alice_extend_err, alice_extend, alice_vote_expected_err]; let target_height = target_height.wrapping_add(1); let (latest_block, tx_block, receipts) = advance_to_block_height( &mut peer, @@ -8509,7 +8489,7 @@ fn delegate_stack_increase_err(use_nakamoto: bool) { let signer_sk = StacksPrivateKey::from_seed(&[1, 3, 3, 7]); let signer_pk = StacksPublicKey::from_private(&signer_sk); let signer_pk_bytes = signer_pk.to_bytes_compressed(); - let signer_key_val = Value::buff_from(signer_pk_bytes.clone()).unwrap(); + let signer_key_val = Value::buff_from(signer_pk_bytes).unwrap(); let pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, @@ -8524,7 +8504,7 @@ fn delegate_stack_increase_err(use_nakamoto: bool) { alice_key, alice_nonce, 2 * min_ustx, - bob_delegate_address.clone(), + bob_delegate_address, None, Some(pox_addr.clone()), ); @@ -8810,7 +8790,7 @@ pub fn prepare_pox4_test<'a>( 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let (mut peer, keys) = instantiate_pox_peer_with_epoch(&burnchain, test_name, Some(epochs.clone()), observer); @@ -8846,13 +8826,12 @@ pub fn prepare_pox4_test<'a>( let addrs: Vec = keys.iter().map(|pk| key_to_stacks_addr(pk)).collect(); let balances: Vec<(PrincipalData, u64)> = addrs - .clone() .into_iter() .map(|addr| (addr.into(), (1024 * POX_THRESHOLD_STEPS_USTX) as u64)) .collect(); boot_plan.initial_balances = balances; boot_plan.pox_constants = pox_constants.clone(); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; info!("---- Booting into Nakamoto Peer ----"); let peer = boot_plan.boot_into_nakamoto_peer(vec![], observer); @@ -8913,15 +8892,13 @@ pub fn tenure_with_txs( if let Some(test_signers) = test_signers { let (burn_ops, mut tenure_change, miner_key) = peer.begin_nakamoto_tenure(TenureChangeCause::BlockFound); - let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops.clone()); + let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops); let vrf_proof = peer.make_nakamoto_vrf_proof(miner_key); tenure_change.tenure_consensus_hash = consensus_hash.clone(); tenure_change.burn_view_consensus_hash = consensus_hash.clone(); - let tenure_change_tx = peer - .miner - .make_nakamoto_tenure_change(tenure_change.clone()); + let tenure_change_tx = peer.miner.make_nakamoto_tenure_change(tenure_change); let coinbase_tx = peer.miner.make_nakamoto_coinbase(None, vrf_proof); let blocks_and_sizes = peer.make_nakamoto_tenure( @@ -9246,7 +9223,7 @@ fn no_lockups_2_5() { 0, &BurnchainHeaderHash::from_hex(BITCOIN_REGTEST_FIRST_BLOCK_HASH).unwrap(), ); - burnchain.pox_constants = pox_constants.clone(); + burnchain.pox_constants = pox_constants; let observer = TestEventObserver::new(); @@ -9550,9 +9527,9 @@ fn test_scenario_five(use_nakamoto: bool) { (heidi.clone(), heidi_lock_period), ]; let eves_stackers = &[ - (ivan.clone(), ivan_lock_period), - (jude.clone(), jude_lock_period), - (mallory.clone(), mallory_lock_period), + (ivan, ivan_lock_period), + (jude, jude_lock_period), + (mallory, mallory_lock_period), ]; // David calls 'delegate-stack-stx' for each of his stackers @@ -10077,10 +10054,7 @@ fn test_scenario_five(use_nakamoto: bool) { .saturating_sub(peer_config.burnchain.pox_constants.prepare_length as u64) .wrapping_add(2); // This assertion just makes testing logic a bit easier - let davids_stackers = &[ - (grace.clone(), grace_lock_period), - (heidi.clone(), heidi_lock_period), - ]; + let davids_stackers = &[(grace, grace_lock_period), (heidi, heidi_lock_period)]; info!("Scenario five: submitting increase and aggregate-commit txs"); let (latest_block, tx_block, receipts) = advance_to_block_height( diff --git a/stackslib/src/chainstate/stacks/boot/signers_tests.rs b/stackslib/src/chainstate/stacks/boot/signers_tests.rs index bf3b5f312c..3a44dafa14 100644 --- a/stackslib/src/chainstate/stacks/boot/signers_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/signers_tests.rs @@ -373,9 +373,7 @@ pub fn prepare_signers_test<'a>( tenure_change.tenure_consensus_hash = consensus_hash.clone(); tenure_change.burn_view_consensus_hash = consensus_hash.clone(); - let tenure_change_tx = peer - .miner - .make_nakamoto_tenure_change(tenure_change.clone()); + let tenure_change_tx = peer.miner.make_nakamoto_tenure_change(tenure_change); let coinbase_tx = peer.miner.make_nakamoto_coinbase(None, vrf_proof); let blocks_and_sizes = peer.make_nakamoto_tenure( @@ -434,14 +432,12 @@ fn advance_blocks( tenure_change.tenure_consensus_hash = consensus_hash.clone(); tenure_change.burn_view_consensus_hash = consensus_hash.clone(); - let tenure_change_tx = peer - .miner - .make_nakamoto_tenure_change(tenure_change.clone()); + let tenure_change_tx = peer.miner.make_nakamoto_tenure_change(tenure_change); let coinbase_tx = peer.miner.make_nakamoto_coinbase(None, vrf_proof); let recipient_addr = boot_code_addr(false); let blocks_and_sizes = peer.make_nakamoto_tenure( tenure_change_tx, - coinbase_tx.clone(), + coinbase_tx, test_signers, |miner, chainstate, sortdb, blocks| { if blocks.len() < num_blocks as usize { diff --git a/stackslib/src/chainstate/stacks/db/blocks.rs b/stackslib/src/chainstate/stacks/db/blocks.rs index 3defe2adb9..4e9fd5f5ad 100644 --- a/stackslib/src/chainstate/stacks/db/blocks.rs +++ b/stackslib/src/chainstate/stacks/db/blocks.rs @@ -7031,7 +7031,7 @@ pub mod test { let mut block = StacksBlock::from_parent( &parent_header, &parent_microblock_header, - txs.clone(), + txs, &work_score, &proof, &TrieHash([2u8; 32]), @@ -7075,10 +7075,10 @@ pub mod test { let mut tx_big_contract = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), + auth, TransactionPayload::new_smart_contract( &format!("hello-world-{}", &thread_rng().gen::()), - &contract_16k.to_string(), + &contract_16k, None, ) .unwrap(), @@ -7125,7 +7125,7 @@ pub mod test { let mut block = StacksBlock::from_parent( &parent_header, &parent_microblock_header, - txs.clone(), + txs, &work_score, &proof, &TrieHash([2u8; 32]), @@ -7165,7 +7165,7 @@ pub mod test { auth.clone(), TransactionPayload::new_smart_contract( &format!("hello-world-{}", &thread_rng().gen::()), - &contract_16k.to_string(), + &contract_16k, None, ) .unwrap(), @@ -8604,7 +8604,7 @@ pub mod test { burn: 234, work: 567, }, - proof: proof.clone(), + proof, parent_block: block.block_hash(), parent_microblock: microblocks[num_mblocks - 1].block_hash(), parent_microblock_sequence: microblocks[num_mblocks - 1].header.sequence, @@ -8852,8 +8852,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"name-contract".to_string(), - &format!("conflicting smart contract {}", i), + "name-contract", + &format!("conflicting smart contract {i}"), None, ) .unwrap(), diff --git a/stackslib/src/chainstate/stacks/db/mod.rs b/stackslib/src/chainstate/stacks/db/mod.rs index 113f186d23..b2f6cb850f 100644 --- a/stackslib/src/chainstate/stacks/db/mod.rs +++ b/stackslib/src/chainstate/stacks/db/mod.rs @@ -1795,7 +1795,7 @@ impl StacksChainState { let blocks_path = StacksChainState::blocks_path(path.clone()); StacksChainState::mkdirs(&blocks_path)?; - let vm_state_path = StacksChainState::vm_state_path(path.clone()); + let vm_state_path = StacksChainState::vm_state_path(path); StacksChainState::mkdirs(&vm_state_path)?; Ok(()) } @@ -1836,7 +1836,7 @@ impl StacksChainState { .to_string(); let nakamoto_staging_blocks_path = - StacksChainState::static_get_nakamoto_staging_blocks_path(path.clone())?; + StacksChainState::static_get_nakamoto_staging_blocks_path(path)?; let nakamoto_staging_blocks_conn = StacksChainState::open_nakamoto_staging_blocks(&nakamoto_staging_blocks_path, true)?; diff --git a/stackslib/src/chainstate/stacks/db/transactions.rs b/stackslib/src/chainstate/stacks/db/transactions.rs index f22efda216..8e8041d8c1 100644 --- a/stackslib/src/chainstate/stacks/db/transactions.rs +++ b/stackslib/src/chainstate/stacks/db/transactions.rs @@ -1681,7 +1681,7 @@ pub mod test { &mut tx_conn, &tx, &StacksAccount { - principal: sender.clone(), + principal: sender, nonce: 0, stx_balance: STXBalance::Unlocked { amount: 100 }, }, @@ -1710,7 +1710,7 @@ pub mod test { let mut tx_stx_transfer = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), + auth, TransactionPayload::TokenTransfer( recv_addr.clone().into(), 123, @@ -1902,7 +1902,7 @@ pub mod test { 0, )); - let mut wrong_nonce_auth = auth.clone(); + let mut wrong_nonce_auth = auth; wrong_nonce_auth.set_origin_nonce(1); let mut tx_stx_transfer_wrong_nonce = StacksTransaction::new( TransactionVersion::Testnet, @@ -1914,7 +1914,7 @@ pub mod test { ), ); - let mut wrong_nonce_auth_sponsored = auth_sponsored.clone(); + let mut wrong_nonce_auth_sponsored = auth_sponsored; wrong_nonce_auth_sponsored.set_sponsor_nonce(1).unwrap(); let mut tx_stx_transfer_wrong_nonce_sponsored = StacksTransaction::new( TransactionVersion::Testnet, @@ -2053,7 +2053,7 @@ pub mod test { let mut tx_stx_transfer = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), + auth, TransactionPayload::TokenTransfer( recv_addr.clone().into(), 123, @@ -2145,13 +2145,8 @@ pub mod test { let mut tx_contract_call = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), - TransactionPayload::new_smart_contract( - &"hello-world".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + auth, + TransactionPayload::new_smart_contract("hello-world", contract, None).unwrap(), ); tx_contract_call.chain_id = 0x80000000; @@ -2525,13 +2520,8 @@ pub mod test { let mut tx_contract_call = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), - TransactionPayload::new_smart_contract( - &"hello-world".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + auth, + TransactionPayload::new_smart_contract("hello-world", contract, None).unwrap(), ); tx_contract_call.chain_id = 0x80000000; @@ -2612,12 +2602,7 @@ pub mod test { let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"hello-world".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("hello-world", contract, None).unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -2638,7 +2623,7 @@ pub mod test { let mut tx_contract_call = StacksTransaction::new( TransactionVersion::Testnet, - auth_2.clone(), + auth_2, TransactionPayload::new_contract_call( addr.clone(), "hello-world", @@ -2746,12 +2731,7 @@ pub mod test { let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"hello-world".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("hello-world", contract, None).unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -2777,7 +2757,7 @@ pub mod test { ))); let mut tx_contract_call = StacksTransaction::new( TransactionVersion::Testnet, - auth_2.clone(), + auth_2, TransactionPayload::new_contract_call( addr.clone(), "hello-world", @@ -2889,13 +2869,8 @@ pub mod test { let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), - TransactionPayload::new_smart_contract( - &"hello-world".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + auth, + TransactionPayload::new_smart_contract("hello-world", contract, None).unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -3014,13 +2989,8 @@ pub mod test { let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), - TransactionPayload::new_smart_contract( - &"hello-world".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + auth, + TransactionPayload::new_smart_contract("hello-world", contract, None).unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -3083,13 +3053,8 @@ pub mod test { let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), - TransactionPayload::new_smart_contract( - &"hello-world".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + auth, + TransactionPayload::new_smart_contract("hello-world", contract, None).unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -3298,13 +3263,8 @@ pub mod test { let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), - TransactionPayload::new_smart_contract( - &"hello-world".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + auth, + TransactionPayload::new_smart_contract("hello-world", contract, None).unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -3335,7 +3295,7 @@ pub mod test { let mut tx_contract_call = StacksTransaction::new( TransactionVersion::Testnet, - auth_contract_call.clone(), + auth_contract_call, TransactionPayload::new_contract_call( addr_publisher.clone(), "hello-world", @@ -3532,12 +3492,7 @@ pub mod test { let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, auth_origin.clone(), - TransactionPayload::new_smart_contract( - &"hello-world".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("hello-world", contract, None).unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -3661,7 +3616,7 @@ pub mod test { let mut tx_contract_call_user_stackaroos = StacksTransaction::new( TransactionVersion::Testnet, - auth_recv.clone(), + auth_recv, TransactionPayload::new_contract_call( addr_publisher.clone(), "hello-world", @@ -4276,12 +4231,7 @@ pub mod test { let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, auth_origin.clone(), - TransactionPayload::new_smart_contract( - &"hello-world".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("hello-world", contract, None).unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -4364,7 +4314,7 @@ pub mod test { addr_publisher.clone(), "hello-world", "send-stackaroos-and-name", - vec![name.clone(), Value::Principal(recv_principal.clone())], + vec![name, Value::Principal(recv_principal.clone())], ) .unwrap(), ); @@ -4943,19 +4893,18 @@ pub mod test { StandardPrincipalData::from(addr_publisher.clone()), contract_name.clone(), ); - let _contract_principal = PrincipalData::Contract(contract_id.clone()); + let _contract_principal = PrincipalData::Contract(contract_id); let asset_info = AssetInfo { contract_address: addr_publisher.clone(), - contract_name: contract_name.clone(), + contract_name, asset_name: ClarityName::try_from("connect-token").unwrap(), }; let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, auth_origin.clone(), - TransactionPayload::new_smart_contract(&"hello-world".to_string(), &contract, None) - .unwrap(), + TransactionPayload::new_smart_contract("hello-world", &contract, None).unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -4968,12 +4917,12 @@ pub mod test { let mut tx_contract_call = StacksTransaction::new( TransactionVersion::Testnet, - auth_origin.clone(), + auth_origin, TransactionPayload::new_contract_call( addr_publisher.clone(), "hello-world", "transfer", - vec![Value::Principal(recv_principal.clone()), Value::UInt(10)], + vec![Value::Principal(recv_principal), Value::UInt(10)], ) .unwrap(), ); @@ -4985,7 +4934,7 @@ pub mod test { tx_contract_call.post_condition_mode = TransactionPostConditionMode::Deny; tx_contract_call.add_post_condition(TransactionPostCondition::Fungible( PostConditionPrincipal::Origin, - asset_info.clone(), + asset_info, FungibleConditionCode::SentEq, 10, )); @@ -5100,10 +5049,10 @@ pub mod test { // multi-ft let mut ft_transfer_2 = AssetMap::new(); ft_transfer_2 - .add_token_transfer(&origin, asset_id_1.clone(), 123) + .add_token_transfer(&origin, asset_id_1, 123) .unwrap(); ft_transfer_2 - .add_token_transfer(&origin, asset_id_2.clone(), 123) + .add_token_transfer(&origin, asset_id_2, 123) .unwrap(); let tests = vec![ @@ -6843,19 +6792,19 @@ pub mod test { ), TransactionPostCondition::Fungible( PostConditionPrincipal::Standard(addr.clone()), - asset_info_3.clone(), + asset_info_3, FungibleConditionCode::SentEq, 0, ), TransactionPostCondition::Fungible( PostConditionPrincipal::Standard(recv_addr.clone()), - asset_info_1.clone(), + asset_info_1, FungibleConditionCode::SentEq, 0, ), TransactionPostCondition::Fungible( PostConditionPrincipal::Standard(addr.clone()), - asset_info_2.clone(), + asset_info_2, FungibleConditionCode::SentGt, 122, ), @@ -6924,7 +6873,7 @@ pub mod test { // multi-nft transfer let mut nft_transfer_2 = AssetMap::new(); nft_transfer_2.add_asset_transfer(&origin, asset_id.clone(), Value::Int(1)); - nft_transfer_2.add_asset_transfer(&origin, asset_id.clone(), Value::Int(2)); + nft_transfer_2.add_asset_transfer(&origin, asset_id, Value::Int(2)); let tests = vec![ // no post-conditions in allow mode @@ -7209,7 +7158,7 @@ pub mod test { ), TransactionPostCondition::Nonfungible( PostConditionPrincipal::Standard(addr.clone()), - asset_info.clone(), + asset_info, Value::Int(3), NonfungibleConditionCode::NotSent, ), @@ -8084,12 +8033,7 @@ pub mod test { let mut tx_contract_create = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"hello-world".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("hello-world", contract, None).unwrap(), ); tx_contract_create.chain_id = 0x80000000; @@ -8102,7 +8046,7 @@ pub mod test { let mut tx_contract_call = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), + auth, TransactionPayload::new_contract_call( addr.clone(), "hello-world", @@ -8219,10 +8163,10 @@ pub mod test { let mut tx_contract_create = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), + auth, TransactionPayload::new_smart_contract( &format!("hello-world-{}", &rng.gen::()), - &contract.to_string(), + contract, None, ) .unwrap(), @@ -8788,7 +8732,7 @@ pub mod test { ); let token_transfer = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), + auth, TransactionPayload::TokenTransfer( recv_addr.clone().into(), 123, @@ -9002,7 +8946,7 @@ pub mod test { ); let token_transfer = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), + auth, TransactionPayload::TokenTransfer( recv_addr.clone().into(), 123, @@ -9096,13 +9040,8 @@ pub mod test { let mut tx_contract_create = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), - TransactionPayload::new_smart_contract( - &"faucet".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + auth, + TransactionPayload::new_smart_contract("faucet", contract, None).unwrap(), ); tx_contract_create.post_condition_mode = TransactionPostConditionMode::Allow; @@ -9117,7 +9056,7 @@ pub mod test { // recipient tries to get some STX, but with a tx fee. let mut tx_contract_call = StacksTransaction::new( TransactionVersion::Testnet, - auth_recv.clone(), + auth_recv, TransactionPayload::new_contract_call( addr.clone(), "faucet", @@ -9270,13 +9209,8 @@ pub mod test { let mut tx_contract_create = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), - TransactionPayload::new_smart_contract( - &"faucet".to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + auth, + TransactionPayload::new_smart_contract("faucet", contract, None).unwrap(), ); tx_contract_create.post_condition_mode = TransactionPostConditionMode::Allow; @@ -9291,7 +9225,7 @@ pub mod test { // recipient tries to get some STX, but with a tx fee. let mut tx_contract_call = StacksTransaction::new( TransactionVersion::Testnet, - auth_recv.clone(), + auth_recv, TransactionPayload::new_contract_call( addr.clone(), "faucet", @@ -9496,12 +9430,7 @@ pub mod test { let mut tx_runtime_checkerror_trait_no_version = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"foo".to_string(), - &runtime_checkerror_trait.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("foo", &runtime_checkerror_trait, None).unwrap(), ); tx_runtime_checkerror_trait_no_version.post_condition_mode = @@ -9519,8 +9448,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"foo".to_string(), - &runtime_checkerror_trait.to_string(), + "foo", + &runtime_checkerror_trait, Some(ClarityVersion::Clarity1), ) .unwrap(), @@ -9540,8 +9469,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"foo-impl".to_string(), - &runtime_checkerror_impl.to_string(), + "foo-impl", + &runtime_checkerror_impl, Some(ClarityVersion::Clarity1), ) .unwrap(), @@ -9560,12 +9489,8 @@ pub mod test { let mut tx_runtime_checkerror_impl_no_version = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"foo-impl".to_string(), - &runtime_checkerror_impl.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("foo-impl", &runtime_checkerror_impl, None) + .unwrap(), ); tx_runtime_checkerror_impl_no_version.post_condition_mode = @@ -9583,8 +9508,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"trait-checkerror".to_string(), - &runtime_checkerror.to_string(), + "trait-checkerror", + &runtime_checkerror, Some(ClarityVersion::Clarity1), ) .unwrap(), @@ -9603,12 +9528,8 @@ pub mod test { let mut tx_runtime_checkerror_clar1_no_version = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"trait-checkerror".to_string(), - &runtime_checkerror.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("trait-checkerror", &runtime_checkerror, None) + .unwrap(), ); tx_runtime_checkerror_clar1_no_version.post_condition_mode = @@ -9626,8 +9547,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"trait-checkerror".to_string(), - &runtime_checkerror.to_string(), + "trait-checkerror", + &runtime_checkerror, Some(ClarityVersion::Clarity2), ) .unwrap(), @@ -9671,8 +9592,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"trait-checkerror-cc".to_string(), - &runtime_checkerror_contract.to_string(), + "trait-checkerror-cc", + runtime_checkerror_contract, Some(ClarityVersion::Clarity1), ) .unwrap(), @@ -9693,8 +9614,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"trait-checkerror-cc".to_string(), - &runtime_checkerror_contract.to_string(), + "trait-checkerror-cc", + runtime_checkerror_contract, None, ) .unwrap(), @@ -9714,10 +9635,10 @@ pub mod test { let mut tx_runtime_checkerror_cc_contract_clar2 = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), + auth, TransactionPayload::new_smart_contract( - &"trait-checkerror-cc".to_string(), - &runtime_checkerror_contract.to_string(), + "trait-checkerror-cc", + runtime_checkerror_contract, Some(ClarityVersion::Clarity2), ) .unwrap(), @@ -10181,8 +10102,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"foo".to_string(), - &foo_trait.to_string(), + "foo", + &foo_trait, Some(ClarityVersion::Clarity1), ) .unwrap(), @@ -10201,12 +10122,7 @@ pub mod test { let mut tx_foo_trait_no_version = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"foo".to_string(), - &foo_trait.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("foo", &foo_trait, None).unwrap(), ); tx_foo_trait_no_version.post_condition_mode = TransactionPostConditionMode::Allow; @@ -10223,8 +10139,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"foo-impl".to_string(), - &foo_impl.to_string(), + "foo-impl", + &foo_impl, Some(ClarityVersion::Clarity1), ) .unwrap(), @@ -10243,12 +10159,7 @@ pub mod test { let mut tx_foo_impl_no_version = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"foo-impl".to_string(), - &foo_impl.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("foo-impl", &foo_impl, None).unwrap(), ); tx_foo_impl_no_version.post_condition_mode = TransactionPostConditionMode::Allow; @@ -10265,8 +10176,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"call-foo".to_string(), - &call_foo.to_string(), + "call-foo", + &call_foo, Some(ClarityVersion::Clarity1), ) .unwrap(), @@ -10285,12 +10196,7 @@ pub mod test { let mut tx_call_foo_clar1_no_version = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"call-foo".to_string(), - &call_foo.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("call-foo", &call_foo, None).unwrap(), ); tx_call_foo_clar1_no_version.post_condition_mode = TransactionPostConditionMode::Allow; @@ -10307,8 +10213,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"call-foo".to_string(), - &call_foo.to_string(), + "call-foo", + &call_foo, Some(ClarityVersion::Clarity2), ) .unwrap(), @@ -10326,7 +10232,7 @@ pub mod test { let mut tx_test_call_foo = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), + auth, TransactionPayload::new_contract_call( addr.clone(), "call-foo", @@ -10694,8 +10600,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"foo".to_string(), - &foo_trait.to_string(), + "foo", + &foo_trait, Some(ClarityVersion::Clarity1), ) .unwrap(), @@ -10714,12 +10620,7 @@ pub mod test { let mut tx_foo_trait_no_version = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"foo".to_string(), - &foo_trait.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("foo", &foo_trait, None).unwrap(), ); tx_foo_trait_no_version.post_condition_mode = TransactionPostConditionMode::Allow; @@ -10736,8 +10637,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"transitive".to_string(), - &transitive_trait.to_string(), + "transitive", + &transitive_trait, Some(ClarityVersion::Clarity1), ) .unwrap(), @@ -10756,12 +10657,7 @@ pub mod test { let mut tx_transitive_trait_clar1_no_version = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"transitive".to_string(), - &transitive_trait.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("transitive", &transitive_trait, None).unwrap(), ); tx_transitive_trait_clar1_no_version.post_condition_mode = @@ -10779,8 +10675,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"transitive".to_string(), - &transitive_trait.to_string(), + "transitive", + &transitive_trait, Some(ClarityVersion::Clarity2), ) .unwrap(), @@ -10800,8 +10696,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"foo-impl".to_string(), - &foo_impl.to_string(), + "foo-impl", + &foo_impl, Some(ClarityVersion::Clarity1), ) .unwrap(), @@ -10820,12 +10716,7 @@ pub mod test { let mut tx_foo_impl_no_version = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"foo-impl".to_string(), - &foo_impl.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("foo-impl", &foo_impl, None).unwrap(), ); tx_foo_impl_no_version.post_condition_mode = TransactionPostConditionMode::Allow; @@ -10842,8 +10733,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"call-foo".to_string(), - &call_foo.to_string(), + "call-foo", + &call_foo, Some(ClarityVersion::Clarity1), ) .unwrap(), @@ -10862,12 +10753,7 @@ pub mod test { let mut tx_call_foo_clar1_no_version = StacksTransaction::new( TransactionVersion::Testnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"call-foo".to_string(), - &call_foo.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("call-foo", &call_foo, None).unwrap(), ); tx_call_foo_clar1_no_version.post_condition_mode = TransactionPostConditionMode::Allow; @@ -10884,8 +10770,8 @@ pub mod test { TransactionVersion::Testnet, auth.clone(), TransactionPayload::new_smart_contract( - &"call-foo".to_string(), - &call_foo.to_string(), + "call-foo", + &call_foo, Some(ClarityVersion::Clarity2), ) .unwrap(), @@ -10903,7 +10789,7 @@ pub mod test { let mut tx_test_call_foo = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), + auth, TransactionPayload::new_contract_call( addr.clone(), "call-foo", diff --git a/stackslib/src/chainstate/stacks/db/unconfirmed.rs b/stackslib/src/chainstate/stacks/db/unconfirmed.rs index 1142b156c1..ccc49baf4e 100644 --- a/stackslib/src/chainstate/stacks/db/unconfirmed.rs +++ b/stackslib/src/chainstate/stacks/db/unconfirmed.rs @@ -110,7 +110,7 @@ impl UnconfirmedState { unconfirmed_chain_tip: unconfirmed_tip, clarity_inst: clarity_instance, mined_txs: UnconfirmedTxMap::new(), - cost_so_far: cost_so_far.clone(), + cost_so_far, bytes_so_far: 0, last_mblock: None, @@ -1255,7 +1255,7 @@ mod test { ); let mut tx_stx_transfer = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), + auth, TransactionPayload::TokenTransfer( recv_addr.clone().into(), 1, diff --git a/stackslib/src/chainstate/stacks/index/cache.rs b/stackslib/src/chainstate/stacks/index/cache.rs index d5ba5ae5f6..5e7832bef0 100644 --- a/stackslib/src/chainstate/stacks/index/cache.rs +++ b/stackslib/src/chainstate/stacks/index/cache.rs @@ -468,7 +468,7 @@ pub mod test { total_read_time, &read_bench ); - let mut bench = write_bench.clone(); + let mut bench = write_bench; bench.add(&read_bench); eprintln!("MARF bench total: {:#?}", &bench); diff --git a/stackslib/src/chainstate/stacks/index/storage.rs b/stackslib/src/chainstate/stacks/index/storage.rs index d8d1b9133a..0b31d93917 100644 --- a/stackslib/src/chainstate/stacks/index/storage.rs +++ b/stackslib/src/chainstate/stacks/index/storage.rs @@ -74,7 +74,7 @@ impl BlockMap for TrieFileStorage { fn get_block_hash_caching(&mut self, id: u32) -> Result<&T, Error> { if !self.is_block_hash_cached(id) { let block_hash = self.get_block_hash(id)?; - self.cache.store_block_hash(id, block_hash.clone()); + self.cache.store_block_hash(id, block_hash); } self.cache.ref_block_hash(id).ok_or(Error::NotFoundError) } @@ -113,7 +113,7 @@ impl BlockMap for TrieStorageConnection<'_, T> { fn get_block_hash_caching(&mut self, id: u32) -> Result<&T, Error> { if !self.is_block_hash_cached(id) { let block_hash = self.get_block_hash(id)?; - self.cache.store_block_hash(id, block_hash.clone()); + self.cache.store_block_hash(id, block_hash); } self.cache.ref_block_hash(id).ok_or(Error::NotFoundError) } @@ -176,7 +176,7 @@ impl BlockMap for TrieSqlHashMapCursor<'_, T> { fn get_block_hash_caching(&mut self, id: u32) -> Result<&T, Error> { if !self.is_block_hash_cached(id) { let block_hash = self.get_block_hash(id)?; - self.cache.store_block_hash(id, block_hash.clone()); + self.cache.store_block_hash(id, block_hash); } self.cache.ref_block_hash(id).ok_or(Error::NotFoundError) } diff --git a/stackslib/src/chainstate/stacks/index/test/cache.rs b/stackslib/src/chainstate/stacks/index/test/cache.rs index 93f57e8511..8bb89bb383 100644 --- a/stackslib/src/chainstate/stacks/index/test/cache.rs +++ b/stackslib/src/chainstate/stacks/index/test/cache.rs @@ -153,7 +153,7 @@ fn test_marf_with_cache( total_read_time, &read_bench ); - let mut bench = write_bench.clone(); + let mut bench = write_bench; bench.add(&read_bench); eprintln!("MARF bench total: {:#?}", &bench); diff --git a/stackslib/src/chainstate/stacks/index/test/marf.rs b/stackslib/src/chainstate/stacks/index/test/marf.rs index ecee6e4a59..47f85ae492 100644 --- a/stackslib/src/chainstate/stacks/index/test/marf.rs +++ b/stackslib/src/chainstate/stacks/index/test/marf.rs @@ -2088,7 +2088,7 @@ fn test_marf_read_only() { } else { assert!(false); } - if let Err(Error::ReadOnlyError) = ro_marf.insert_raw(triepath.clone(), leaf.clone()) { + if let Err(Error::ReadOnlyError) = ro_marf.insert_raw(triepath.clone(), leaf) { } else { assert!(false); } @@ -2143,12 +2143,12 @@ fn test_marf_begin_from_sentinel_twice() { marf.begin(&BlockHeaderHash::sentinel(), &block_header_1) .unwrap(); - marf.insert_raw(triepath_1, value_1.clone()).unwrap(); + marf.insert_raw(triepath_1, value_1).unwrap(); marf.commit_to(&block_header_1).unwrap(); marf.begin(&BlockHeaderHash::sentinel(), &block_header_2) .unwrap(); - marf.insert_raw(triepath_2, value_2.clone()).unwrap(); + marf.insert_raw(triepath_2, value_2).unwrap(); marf.commit_to(&block_header_2).unwrap(); let read_value_1 = MARF::get_path( @@ -2226,7 +2226,7 @@ fn test_marf_unconfirmed() { } let unconfirmed_tip = marf.begin_unconfirmed(&block_header).unwrap(); - marf.insert_raw(triepath_1, value_1.clone()).unwrap(); + marf.insert_raw(triepath_1, value_1).unwrap(); marf.commit().unwrap(); // read succeeds @@ -2243,7 +2243,7 @@ fn test_marf_unconfirmed() { ); marf.begin_unconfirmed(&block_header).unwrap(); - marf.insert_raw(triepath_2, value_2.clone()).unwrap(); + marf.insert_raw(triepath_2, value_2).unwrap(); marf.drop_current(); // read still succeeds -- only current trie is dropped diff --git a/stackslib/src/chainstate/stacks/index/test/node.rs b/stackslib/src/chainstate/stacks/index/test/node.rs index e19946bd9a..dc9518267a 100644 --- a/stackslib/src/chainstate/stacks/index/test/node.rs +++ b/stackslib/src/chainstate/stacks/index/test/node.rs @@ -3970,7 +3970,7 @@ fn read_write_leaf() { let rres = trie_io.read_nodetype(&TriePtr::new(TrieNodeID::Leaf as u8, 0, 0)); assert!(rres.is_ok()); - assert_eq!(rres.unwrap(), (TrieNodeType::Leaf(leaf.clone()), hash)); + assert_eq!(rres.unwrap(), (TrieNodeType::Leaf(leaf), hash)); } #[test] diff --git a/stackslib/src/chainstate/stacks/mod.rs b/stackslib/src/chainstate/stacks/mod.rs index 23990fe199..66ce1b5b22 100644 --- a/stackslib/src/chainstate/stacks/mod.rs +++ b/stackslib/src/chainstate/stacks/mod.rs @@ -1484,7 +1484,7 @@ pub mod test { Some(PrincipalData::Standard(StandardPrincipalData( 0x01, [0x02; 20], ))), - Some(proof.clone()), + Some(proof), ), ]) } else { @@ -1566,7 +1566,7 @@ pub mod test { ); let tx_coinbase_proof = StacksTransaction::new( TransactionVersion::Mainnet, - origin_auth.clone(), + origin_auth, TransactionPayload::Coinbase(CoinbasePayload([0u8; 32]), None, Some(proof.clone())), ); @@ -1622,7 +1622,7 @@ pub mod test { burn: 234, work: 567, }, - proof: proof.clone(), + proof, parent_block: BlockHeaderHash([5u8; 32]), parent_microblock: BlockHeaderHash([6u8; 32]), parent_microblock_sequence: 4, diff --git a/stackslib/src/chainstate/stacks/tests/accounting.rs b/stackslib/src/chainstate/stacks/tests/accounting.rs index 5cf29d6993..05350f1d0a 100644 --- a/stackslib/src/chainstate/stacks/tests/accounting.rs +++ b/stackslib/src/chainstate/stacks/tests/accounting.rs @@ -1887,7 +1887,7 @@ fn test_coinbase_pay_to_alt_recipient_v210(pay_to_contract: bool) { if i > 2 { eprintln!("recipient_total_reward: {} = {} + {}", recipient_total_reward + block_reward_opt.clone().unwrap().expect_u128().unwrap(), recipient_total_reward, block_reward_opt.clone().unwrap().expect_u128().unwrap()); - recipient_total_reward += block_reward_opt.clone().unwrap().expect_u128().unwrap(); + recipient_total_reward += block_reward_opt.unwrap().expect_u128().unwrap(); } } else { diff --git a/stackslib/src/chainstate/stacks/tests/block_construction.rs b/stackslib/src/chainstate/stacks/tests/block_construction.rs index f935abec19..fc2a66a0f1 100644 --- a/stackslib/src/chainstate/stacks/tests/block_construction.rs +++ b/stackslib/src/chainstate/stacks/tests/block_construction.rs @@ -1267,7 +1267,7 @@ fn test_build_anchored_blocks_incrementing_nonces() { }, ); - peer.next_burnchain_block(burn_ops.clone()); + peer.next_burnchain_block(burn_ops); peer.process_stacks_epoch_at_tip(&stacks_block, µblocks); // expensive transaction was not mined, but the two stx-transfers were @@ -1649,7 +1649,7 @@ fn test_build_anchored_blocks_mempool_fee_transaction_too_low() { }, ); - peer.next_burnchain_block(burn_ops.clone()); + peer.next_burnchain_block(burn_ops); peer.process_stacks_epoch_at_tip(&stacks_block, µblocks); // Check that the block contains only coinbase transactions (coinbase) @@ -1744,7 +1744,7 @@ fn test_build_anchored_blocks_zero_fee_transaction() { }, ); - peer.next_burnchain_block(burn_ops.clone()); + peer.next_burnchain_block(burn_ops); peer.process_stacks_epoch_at_tip(&stacks_block, µblocks); // Check that the block contains 2 transactions (coinbase + zero-fee transaction) @@ -2334,7 +2334,7 @@ fn test_build_anchored_blocks_invalid() { if tenure_id == bad_block_ancestor_tenure { bad_block_parent_tip = Some(parent_tip.clone()); - bad_block_parent = parent_opt.clone(); + bad_block_parent = parent_opt; eprintln!("\n\nancestor of corrupt block: {:?}\n", &parent_tip); } @@ -4144,7 +4144,7 @@ fn test_is_tx_problematic() { block_builder, chainstate, &sortdb.index_handle_at_tip(), - vec![coinbase_tx.clone(), contract_spends_too_much_tx.clone()] + vec![coinbase_tx.clone(), contract_spends_too_much_tx] ) { assert_eq!(txid, contract_spends_too_much_txid); } @@ -4854,7 +4854,7 @@ fn test_fee_order_mismatch_nonce_order() { last_block = Some(stacks_block.clone()); - peer.next_burnchain_block(burn_ops.clone()); + peer.next_burnchain_block(burn_ops); peer.process_stacks_epoch_at_tip(&stacks_block, µblocks); // Both user transactions and the coinbase should have been mined. diff --git a/stackslib/src/chainstate/stacks/tests/mod.rs b/stackslib/src/chainstate/stacks/tests/mod.rs index c330912e34..ef53b16b56 100644 --- a/stackslib/src/chainstate/stacks/tests/mod.rs +++ b/stackslib/src/chainstate/stacks/tests/mod.rs @@ -1087,7 +1087,7 @@ pub fn make_smart_contract_with_version( miner.as_transaction_auth().unwrap(), TransactionPayload::new_smart_contract( &format!("hello-world-{burnchain_height}-{stacks_block_height}"), - &contract.to_string(), + contract, version, ) .unwrap(), diff --git a/stackslib/src/chainstate/stacks/transaction.rs b/stackslib/src/chainstate/stacks/transaction.rs index 880b83bbbb..3f1a5e01d3 100644 --- a/stackslib/src/chainstate/stacks/transaction.rs +++ b/stackslib/src/chainstate/stacks/transaction.rs @@ -1711,7 +1711,7 @@ mod test { // corrupt a signature let mut corrupt_tx_signature = signed_tx.clone(); - let corrupt_auth_signature = corrupt_tx_signature.auth.clone(); + let corrupt_auth_signature = corrupt_tx_signature.auth; corrupt_tx_signature.auth = corrupt_auth_field_signature(&corrupt_auth_signature, corrupt_origin, corrupt_sponsor); @@ -1894,7 +1894,7 @@ mod test { let mut corrupt_transactions = vec![ corrupt_tx_hash_mode, corrupt_tx_nonce, - corrupt_tx_signature.clone(), // needed below + corrupt_tx_signature, corrupt_tx_public_key, corrupt_tx_version, corrupt_tx_chain_id, @@ -1905,7 +1905,7 @@ mod test { corrupt_tx_payload, ]; if is_multisig_origin || is_multisig_sponsor { - corrupt_transactions.push(corrupt_tx_signatures_required.clone()); + corrupt_transactions.push(corrupt_tx_signatures_required); } // make sure all corrupted transactions fail @@ -3513,8 +3513,8 @@ mod test { let asset_info = AssetInfo { contract_address: addr.clone(), - contract_name: contract_name.clone(), - asset_name: asset_name.clone(), + contract_name, + asset_name, }; let mut asset_info_bytes = vec![]; @@ -3804,8 +3804,8 @@ mod test { nonfungible_pc_bytes_bad_principal.append(&mut vec![0xff]); AssetInfo { contract_address: addr.clone(), - contract_name: contract_name.clone(), - asset_name: asset_name.clone(), + contract_name, + asset_name, } .consensus_serialize(&mut nonfungible_pc_bytes_bad_principal) .unwrap(); @@ -3901,8 +3901,8 @@ mod test { let asset_info = AssetInfo { contract_address: contract_addr.clone(), - contract_name: contract_name.clone(), - asset_name: asset_name.clone(), + contract_name, + asset_name, }; let stx_address = StacksAddress { @@ -3925,12 +3925,8 @@ mod test { let tx_smart_contract = StacksTransaction::new( TransactionVersion::Mainnet, auth.clone(), - TransactionPayload::new_smart_contract( - &"name-contract".to_string(), - &"hello smart contract".to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract("name-contract", "hello smart contract", None) + .unwrap(), ); let tx_coinbase = StacksTransaction::new( diff --git a/stackslib/src/clarity_cli.rs b/stackslib/src/clarity_cli.rs index f67ab22eaa..16e69d7c92 100644 --- a/stackslib/src/clarity_cli.rs +++ b/stackslib/src/clarity_cli.rs @@ -1978,7 +1978,7 @@ mod test { let invoked = invoke_command( "test", - &["initialize".to_string(), json_name.clone(), db_name.clone()], + &["initialize".to_string(), json_name, db_name.clone()], ); let exit = invoked.0; let result = invoked.1.unwrap(); @@ -2303,7 +2303,7 @@ mod test { "eval_at_chaintip".to_string(), "S1G2081040G2081040G2081040G208105NK8PE5.tokens".to_string(), cargo_workspace_as_string("sample/contracts/tokens-mint.clar"), - db_name.clone(), + db_name, "--costs".to_string(), ], ); @@ -2355,7 +2355,7 @@ mod test { "launch".to_string(), "S1G2081040G2081040G2081040G208105NK8PE5.tokens-ft".to_string(), cargo_workspace_as_string("sample/contracts/tokens-ft.clar"), - db_name.clone(), + db_name, "--assets".to_string(), ], ); diff --git a/stackslib/src/clarity_vm/clarity.rs b/stackslib/src/clarity_vm/clarity.rs index 479d8b38db..9cbf915190 100644 --- a/stackslib/src/clarity_vm/clarity.rs +++ b/stackslib/src/clarity_vm/clarity.rs @@ -856,7 +856,7 @@ impl<'a> ClarityBlockConnection<'a, '_> { let boot_code_auth = boot_code_tx_auth(boot_code_address.clone()); let costs_2_contract_tx = - StacksTransaction::new(tx_version.clone(), boot_code_auth.clone(), payload); + StacksTransaction::new(tx_version.clone(), boot_code_auth, payload); let initialization_receipt = self.as_transaction(|tx_conn| { // bump the epoch in the Clarity DB @@ -1041,7 +1041,7 @@ impl<'a> ClarityBlockConnection<'a, '_> { ); let costs_3_contract_tx = - StacksTransaction::new(tx_version.clone(), boot_code_auth.clone(), payload); + StacksTransaction::new(tx_version.clone(), boot_code_auth, payload); let costs_3_initialization_receipt = self.as_transaction(|tx_conn| { // bump the epoch in the Clarity DB @@ -1222,7 +1222,7 @@ impl<'a> ClarityBlockConnection<'a, '_> { ); let pox_3_contract_tx = - StacksTransaction::new(tx_version.clone(), boot_code_auth.clone(), payload); + StacksTransaction::new(tx_version.clone(), boot_code_auth, payload); let pox_3_initialization_receipt = self.as_transaction(|tx_conn| { // initialize with a synthetic transaction @@ -1483,7 +1483,7 @@ impl<'a> ClarityBlockConnection<'a, '_> { ); let signers_contract_tx = - StacksTransaction::new(tx_version.clone(), boot_code_auth.clone(), payload); + StacksTransaction::new(tx_version.clone(), boot_code_auth, payload); let signers_voting_initialization_receipt = self.as_transaction(|tx_conn| { // initialize with a synthetic transaction @@ -2648,7 +2648,7 @@ mod tests { let mut tx3 = StacksTransaction::new( TransactionVersion::Mainnet, - TransactionAuth::Standard(spending_cond.clone()), + TransactionAuth::Standard(spending_cond), TransactionPayload::ContractCall(TransactionContractCall { address: sender, contract_name: "hello-world".into(), diff --git a/stackslib/src/clarity_vm/tests/analysis_costs.rs b/stackslib/src/clarity_vm/tests/analysis_costs.rs index dc5b33fd31..febaf4fb62 100644 --- a/stackslib/src/clarity_vm/tests/analysis_costs.rs +++ b/stackslib/src/clarity_vm/tests/analysis_costs.rs @@ -71,8 +71,7 @@ fn setup_tracked_cost_test( let other_contract_id = QualifiedContractIdentifier::new(p1_principal.clone(), "contract-other".into()); - let trait_contract_id = - QualifiedContractIdentifier::new(p1_principal.clone(), "contract-trait".into()); + let trait_contract_id = QualifiedContractIdentifier::new(p1_principal, "contract-trait".into()); let burn_state_db = UnitTestBurnStateDB { epoch_id: epoch, @@ -210,7 +209,7 @@ fn test_tracked_costs( }; let self_contract_id = QualifiedContractIdentifier::new( - p1_principal.clone(), + p1_principal, ContractName::try_from(format!("self-{}", prog_id)).unwrap(), ); diff --git a/stackslib/src/clarity_vm/tests/costs.rs b/stackslib/src/clarity_vm/tests/costs.rs index 030b62af93..57da6fc56c 100644 --- a/stackslib/src/clarity_vm/tests/costs.rs +++ b/stackslib/src/clarity_vm/tests/costs.rs @@ -853,12 +853,11 @@ fn setup_cost_tracked_test( let other_contract_id = QualifiedContractIdentifier::new(p1_principal.clone(), "contract-other".into()); - let trait_contract_id = - QualifiedContractIdentifier::new(p1_principal.clone(), "contract-trait".into()); + let trait_contract_id = QualifiedContractIdentifier::new(p1_principal, "contract-trait".into()); owned_env .initialize_versioned_contract( - trait_contract_id.clone(), + trait_contract_id, version, contract_trait, None, @@ -867,7 +866,7 @@ fn setup_cost_tracked_test( .unwrap(); owned_env .initialize_versioned_contract( - other_contract_id.clone(), + other_contract_id, version, contract_other, None, @@ -912,8 +911,7 @@ fn test_program_cost( p1_principal.clone(), ContractName::try_from(format!("self-{}", prog_id)).unwrap(), ); - let other_contract_id = - QualifiedContractIdentifier::new(p1_principal.clone(), "contract-other".into()); + let other_contract_id = QualifiedContractIdentifier::new(p1_principal, "contract-other".into()); owned_env .initialize_versioned_contract( @@ -927,11 +925,11 @@ fn test_program_cost( let start = owned_env.get_cost_total(); - let target_contract = Value::from(PrincipalData::Contract(other_contract_id.clone())); + let target_contract = Value::from(PrincipalData::Contract(other_contract_id)); eprintln!("{}", &contract_self); execute_transaction( owned_env, - p2_principal.clone(), + p2_principal, &self_contract_id, "execute", &symbols_from_values(vec![target_contract]), @@ -1046,7 +1044,7 @@ fn test_cost_contract_short_circuits(use_mainnet: bool, clarity_version: Clarity let cost_definer = QualifiedContractIdentifier::new(p1_principal.clone(), "cost-definer".into()); let intercepted = QualifiedContractIdentifier::new(p1_principal.clone(), "intercepted".into()); - let caller = QualifiedContractIdentifier::new(p1_principal.clone(), "caller".into()); + let caller = QualifiedContractIdentifier::new(p1_principal, "caller".into()); let mut marf_kv = { let mut clarity_inst = ClarityInstance::new(use_mainnet, chain_id, marf_kv); @@ -1227,7 +1225,7 @@ fn test_cost_contract_short_circuits(use_mainnet: bool, clarity_version: Clarity execute_transaction( &mut owned_env, - p2_principal.clone(), + p2_principal, &caller, "execute", &symbols_from_values(vec![Value::UInt(10)]), @@ -1414,7 +1412,7 @@ fn test_cost_voting_integration(use_mainnet: bool, clarity_version: ClarityVersi ( intercepted.clone().into(), "intercepted-function", - p1_principal.clone().into(), + p1_principal.into(), "cost-definition", ), // replacement function doesn't exist @@ -1458,14 +1456,14 @@ fn test_cost_voting_integration(use_mainnet: bool, clarity_version: ClarityVersi ( intercepted.clone().into(), "intercepted-function", - bad_cost_definer.clone().into(), + bad_cost_definer.into(), "cost-definition", ), // cost defining contract has incorrect number of arguments ( intercepted.clone().into(), "intercepted-function", - bad_cost_args_definer.clone().into(), + bad_cost_args_definer.into(), "cost-definition", ), ]; @@ -1627,7 +1625,7 @@ fn test_cost_voting_integration(use_mainnet: bool, clarity_version: ClarityVersi execute_transaction( &mut owned_env, - p2_principal.clone(), + p2_principal, &caller, "execute-2", &symbols_from_values(vec![Value::UInt(5)]), @@ -1643,7 +1641,7 @@ fn test_cost_voting_integration(use_mainnet: bool, clarity_version: ClarityVersi assert_eq!(circuits.len(), 2); let circuit1 = circuits.get(&(intercepted.clone(), "intercepted-function".into())); - let circuit2 = circuits.get(&(intercepted.clone(), "intercepted-function2".into())); + let circuit2 = circuits.get(&(intercepted, "intercepted-function2".into())); assert!(circuit1.is_some()); assert!(circuit2.is_some()); diff --git a/stackslib/src/clarity_vm/tests/forking.rs b/stackslib/src/clarity_vm/tests/forking.rs index ddec3fc32c..a2a83b8860 100644 --- a/stackslib/src/clarity_vm/tests/forking.rs +++ b/stackslib/src/clarity_vm/tests/forking.rs @@ -71,7 +71,7 @@ fn test_at_block_mutations(#[case] version: ClarityVersion, #[case] epoch: Stack eprintln!("Initializing contract..."); owned_env - .initialize_contract(c.clone(), &contract, None, ASTRules::PrecheckSize) + .initialize_contract(c, &contract, None, ASTRules::PrecheckSize) .unwrap(); } @@ -150,7 +150,7 @@ fn test_at_block_good(#[case] version: ClarityVersion, #[case] epoch: StacksEpoc eprintln!("Initializing contract..."); owned_env - .initialize_contract(c.clone(), &contract, None, ASTRules::PrecheckSize) + .initialize_contract(c, &contract, None, ASTRules::PrecheckSize) .unwrap(); } @@ -224,7 +224,7 @@ fn test_at_block_missing_defines(#[case] version: ClarityVersion, #[case] epoch: eprintln!("Initializing contract..."); owned_env - .initialize_contract(c_a.clone(), &contract, None, ASTRules::PrecheckSize) + .initialize_contract(c_a, &contract, None, ASTRules::PrecheckSize) .unwrap(); } @@ -239,7 +239,7 @@ fn test_at_block_missing_defines(#[case] version: ClarityVersion, #[case] epoch: eprintln!("Initializing contract..."); let e = owned_env - .initialize_contract(c_b.clone(), &contract, None, ASTRules::PrecheckSize) + .initialize_contract(c_b, &contract, None, ASTRules::PrecheckSize) .unwrap_err(); e } diff --git a/stackslib/src/clarity_vm/tests/large_contract.rs b/stackslib/src/clarity_vm/tests/large_contract.rs index 6e2255446a..2caafdb248 100644 --- a/stackslib/src/clarity_vm/tests/large_contract.rs +++ b/stackslib/src/clarity_vm/tests/large_contract.rs @@ -572,7 +572,7 @@ fn inner_test_simple_naming_system(owned_env: &mut OwnedEnvironment, version: Cl &env.execute_contract( &QualifiedContractIdentifier::local("names").unwrap(), "preorder", - &symbols_from_values(vec![name_hash_expensive_0.clone(), Value::UInt(1000)]), + &symbols_from_values(vec![name_hash_expensive_0, Value::UInt(1000)]), false ) .unwrap(), @@ -602,7 +602,7 @@ fn inner_test_simple_naming_system(owned_env: &mut OwnedEnvironment, version: Cl { // should work! let mut env = owned_env.get_exec_environment( - Some(p1.clone().expect_principal().unwrap()), + Some(p1.expect_principal().unwrap()), None, &mut placeholder_context, ); @@ -628,7 +628,7 @@ fn inner_test_simple_naming_system(owned_env: &mut OwnedEnvironment, version: Cl &env.execute_contract( &QualifiedContractIdentifier::local("names").unwrap(), "preorder", - &symbols_from_values(vec![name_hash_expensive_1.clone(), Value::UInt(100)]), + &symbols_from_values(vec![name_hash_expensive_1, Value::UInt(100)]), false ) .unwrap() @@ -649,7 +649,7 @@ fn inner_test_simple_naming_system(owned_env: &mut OwnedEnvironment, version: Cl &env.execute_contract( &QualifiedContractIdentifier::local("names").unwrap(), "preorder", - &symbols_from_values(vec![name_hash_cheap_0.clone(), Value::UInt(100)]), + &symbols_from_values(vec![name_hash_cheap_0, Value::UInt(100)]), false ) .unwrap() @@ -669,7 +669,7 @@ fn inner_test_simple_naming_system(owned_env: &mut OwnedEnvironment, version: Cl &env.execute_contract( &QualifiedContractIdentifier::local("names").unwrap(), "register", - &symbols_from_values(vec![p2.clone(), Value::Int(100001), Value::Int(0)]), + &symbols_from_values(vec![p2, Value::Int(100001), Value::Int(0)]), false ) .unwrap(), diff --git a/stackslib/src/config/mod.rs b/stackslib/src/config/mod.rs index 80874d1c48..c79606190b 100644 --- a/stackslib/src/config/mod.rs +++ b/stackslib/src/config/mod.rs @@ -3302,7 +3302,7 @@ mod tests { let config_file = make_burnchain_config_file(false, None); let config = config_file - .into_config_default(default_burnchain_config.clone()) + .into_config_default(default_burnchain_config) .expect("Should not panic"); assert_eq!(config.chain_id, CHAIN_ID_TESTNET); } diff --git a/stackslib/src/core/tests/mod.rs b/stackslib/src/core/tests/mod.rs index 04bb5e7ec2..cf1ab5a81b 100644 --- a/stackslib/src/core/tests/mod.rs +++ b/stackslib/src/core/tests/mod.rs @@ -1683,7 +1683,7 @@ fn mempool_db_test_rbf() { let mut tx = StacksTransaction { version: TransactionVersion::Testnet, chain_id: 0x80000000, - auth: TransactionAuth::Standard(spending_condition.clone()), + auth: TransactionAuth::Standard(spending_condition), anchor_mode: TransactionAnchorMode::Any, post_condition_mode: TransactionPostConditionMode::Allow, post_conditions: Vec::new(), diff --git a/stackslib/src/cost_estimates/fee_scalar.rs b/stackslib/src/cost_estimates/fee_scalar.rs index c3ad8bd40c..a185b51cfd 100644 --- a/stackslib/src/cost_estimates/fee_scalar.rs +++ b/stackslib/src/cost_estimates/fee_scalar.rs @@ -85,7 +85,7 @@ impl ScalarFeeRateEstimator { Ok(old_estimate) => { // compute the exponential windowing: // estimate = (a/b * old_estimate) + ((1 - a/b) * new_estimate) - let prior_component = old_estimate.clone() * self.decay_rate; + let prior_component = old_estimate * self.decay_rate; let next_component = new_measure.clone() * (1_f64 - self.decay_rate); let mut next_computed = prior_component + next_component; diff --git a/stackslib/src/cost_estimates/tests/cost_estimators.rs b/stackslib/src/cost_estimates/tests/cost_estimators.rs index 1ed6b034e5..34faadc106 100644 --- a/stackslib/src/cost_estimates/tests/cost_estimators.rs +++ b/stackslib/src/cost_estimates/tests/cost_estimators.rs @@ -856,7 +856,7 @@ fn test_cost_estimator_epochs_independent() { &StacksEpochId::Epoch20 ) .expect("Should be able to provide cost estimate now"), - cost_200.clone(), + cost_200, ); // Check: We get back cost_205 for Epoch2_05. @@ -867,6 +867,6 @@ fn test_cost_estimator_epochs_independent() { &StacksEpochId::Epoch2_05 ) .expect("Should be able to provide cost estimate now"), - cost_205.clone(), + cost_205, ); } diff --git a/stackslib/src/net/api/tests/getblock_v3.rs b/stackslib/src/net/api/tests/getblock_v3.rs index de1a76f748..c743d8bf14 100644 --- a/stackslib/src/net/api/tests/getblock_v3.rs +++ b/stackslib/src/net/api/tests/getblock_v3.rs @@ -125,8 +125,7 @@ fn test_stream_nakamoto_blocks() { true, true, true, true, true, true, true, true, true, true, ]]; - let mut peer = - make_nakamoto_peer_from_invs(function_name!(), &test_observer, 10, 3, bitvecs.clone()); + let mut peer = make_nakamoto_peer_from_invs(function_name!(), &test_observer, 10, 3, bitvecs); // can't stream a nonexistant block assert!(NakamotoBlockStream::new( diff --git a/stackslib/src/net/api/tests/getstackerdbchunk.rs b/stackslib/src/net/api/tests/getstackerdbchunk.rs index 11284c5bb6..60eb27613e 100644 --- a/stackslib/src/net/api/tests/getstackerdbchunk.rs +++ b/stackslib/src/net/api/tests/getstackerdbchunk.rs @@ -62,10 +62,7 @@ fn test_try_parse_request() { ) .unwrap(); - assert_eq!( - handler.contract_identifier, - Some(contract_identifier.clone()) - ); + assert_eq!(handler.contract_identifier, Some(contract_identifier)); assert_eq!(handler.slot_id, Some(0)); assert_eq!(handler.slot_version, Some(32)); @@ -132,21 +129,13 @@ fn test_try_make_response() { requests.push(request); // no chunk - let request = StacksHttpRequest::new_get_stackerdb_chunk( - addr.into(), - contract_identifier.clone(), - 4093, - None, - ); + let request = + StacksHttpRequest::new_get_stackerdb_chunk(addr.into(), contract_identifier, 4093, None); requests.push(request); // no contract - let request = StacksHttpRequest::new_get_stackerdb_chunk( - addr.into(), - none_contract_identifier.clone(), - 0, - None, - ); + let request = + StacksHttpRequest::new_get_stackerdb_chunk(addr.into(), none_contract_identifier, 0, None); requests.push(request); let mut responses = test_rpc(function_name!(), requests); diff --git a/stackslib/src/net/api/tests/getstackerdbmetadata.rs b/stackslib/src/net/api/tests/getstackerdbmetadata.rs index c2e72c3092..ff8e966cae 100644 --- a/stackslib/src/net/api/tests/getstackerdbmetadata.rs +++ b/stackslib/src/net/api/tests/getstackerdbmetadata.rs @@ -59,10 +59,7 @@ fn test_try_parse_request() { ) .unwrap(); - assert_eq!( - handler.contract_identifier, - Some(contract_identifier.clone()) - ); + assert_eq!(handler.contract_identifier, Some(contract_identifier)); // parsed request consumes headers that would not be in a constructed reqeuest parsed_request.clear_headers(); @@ -88,15 +85,12 @@ fn test_try_make_response() { ) .unwrap(); - let request = - StacksHttpRequest::new_get_stackerdb_metadata(addr.into(), contract_identifier.clone()); + let request = StacksHttpRequest::new_get_stackerdb_metadata(addr.into(), contract_identifier); requests.push(request); // no contract - let request = StacksHttpRequest::new_get_stackerdb_metadata( - addr.into(), - none_contract_identifier.clone(), - ); + let request = + StacksHttpRequest::new_get_stackerdb_metadata(addr.into(), none_contract_identifier); requests.push(request); let mut responses = test_rpc(function_name!(), requests); diff --git a/stackslib/src/net/api/tests/gettenure.rs b/stackslib/src/net/api/tests/gettenure.rs index a6a23fb4af..f3280bf2aa 100644 --- a/stackslib/src/net/api/tests/gettenure.rs +++ b/stackslib/src/net/api/tests/gettenure.rs @@ -129,8 +129,7 @@ fn test_stream_nakamoto_tenure() { true, true, true, true, true, true, true, true, true, true, ]]; - let mut peer = - make_nakamoto_peer_from_invs(function_name!(), &test_observer, 10, 3, bitvecs.clone()); + let mut peer = make_nakamoto_peer_from_invs(function_name!(), &test_observer, 10, 3, bitvecs); // can't stream a nonexistant tenure assert!(NakamotoTenureStream::new( diff --git a/stackslib/src/net/api/tests/liststackerdbreplicas.rs b/stackslib/src/net/api/tests/liststackerdbreplicas.rs index 7941e6232e..1db088ae81 100644 --- a/stackslib/src/net/api/tests/liststackerdbreplicas.rs +++ b/stackslib/src/net/api/tests/liststackerdbreplicas.rs @@ -59,10 +59,7 @@ fn test_try_parse_request() { ) .unwrap(); - assert_eq!( - handler.contract_identifier, - Some(contract_identifier.clone()) - ); + assert_eq!(handler.contract_identifier, Some(contract_identifier)); // parsed request consumes headers that would not be in a constructed reqeuest parsed_request.clear_headers(); @@ -88,15 +85,12 @@ fn test_try_make_response() { ) .unwrap(); - let request = - StacksHttpRequest::new_list_stackerdb_replicas(addr.into(), contract_identifier.clone()); + let request = StacksHttpRequest::new_list_stackerdb_replicas(addr.into(), contract_identifier); requests.push(request); // no contract - let request = StacksHttpRequest::new_list_stackerdb_replicas( - addr.into(), - none_contract_identifier.clone(), - ); + let request = + StacksHttpRequest::new_list_stackerdb_replicas(addr.into(), none_contract_identifier); requests.push(request); let mut responses = test_rpc(function_name!(), requests); diff --git a/stackslib/src/net/api/tests/mod.rs b/stackslib/src/net/api/tests/mod.rs index 5b8c74ee36..f866a6e8ec 100644 --- a/stackslib/src/net/api/tests/mod.rs +++ b/stackslib/src/net/api/tests/mod.rs @@ -338,12 +338,8 @@ impl<'a> TestRPC<'a> { let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&privk1).unwrap(), - TransactionPayload::new_smart_contract( - &format!("hello-world"), - &contract.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract(&format!("hello-world"), contract, None) + .unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -382,7 +378,7 @@ impl<'a> TestRPC<'a> { TransactionAuth::from_p2pkh(&privk1).unwrap(), TransactionPayload::new_smart_contract( &format!("hello-world-unconfirmed"), - &unconfirmed_contract.to_string(), + unconfirmed_contract, None, ) .unwrap(), @@ -485,7 +481,7 @@ impl<'a> TestRPC<'a> { ); let (_, _, consensus_hash) = peer_1.next_burnchain_block(burn_ops.clone()); - peer_2.next_burnchain_block(burn_ops.clone()); + peer_2.next_burnchain_block(burn_ops); peer_1.process_stacks_epoch_at_tip(&stacks_block, &[]); peer_2.process_stacks_epoch_at_tip(&stacks_block, &[]); @@ -765,7 +761,7 @@ impl<'a> TestRPC<'a> { ); let (_, _, next_consensus_hash) = peer_1.next_burnchain_block(next_burn_ops.clone()); - peer_2.next_burnchain_block(next_burn_ops.clone()); + peer_2.next_burnchain_block(next_burn_ops); let view_1 = peer_1.get_burnchain_view().unwrap(); let view_2 = peer_2.get_burnchain_view().unwrap(); @@ -851,18 +847,14 @@ impl<'a> TestRPC<'a> { true, true, true, true, true, true, true, true, true, true, ]]; - let (mut peer, mut other_peers) = make_nakamoto_peers_from_invs_ext( - function_name!(), - observer, - bitvecs.clone(), - |boot_plan| { + let (mut peer, mut other_peers) = + make_nakamoto_peers_from_invs_ext(function_name!(), observer, bitvecs, |boot_plan| { boot_plan .with_pox_constants(10, 3) .with_extra_peers(1) .with_initial_balances(vec![]) .with_malleablized_blocks(false) - }, - ); + }); let mut other_peer = other_peers.pop().unwrap(); let peer_1_indexer = BitcoinIndexer::new_unit_test(&peer.config.burnchain.working_dir); diff --git a/stackslib/src/net/api/tests/postblock.rs b/stackslib/src/net/api/tests/postblock.rs index 7412df9334..0d24247796 100644 --- a/stackslib/src/net/api/tests/postblock.rs +++ b/stackslib/src/net/api/tests/postblock.rs @@ -67,7 +67,7 @@ fn test_try_parse_request() { assert!(handler.block.is_none()); // try to deal with an invalid block - let mut bad_block = block.clone(); + let mut bad_block = block; bad_block.txs.clear(); let mut http = StacksHttp::new(addr.clone(), &ConnectionOptions::default()); @@ -112,11 +112,8 @@ fn test_try_make_response() { requests.push(request); // fails if the consensus hash is not recognized - let request = StacksHttpRequest::new_post_block( - addr.into(), - ConsensusHash([0x11; 20]), - next_block.1.clone(), - ); + let request = + StacksHttpRequest::new_post_block(addr.into(), ConsensusHash([0x11; 20]), next_block.1); requests.push(request); let mut responses = rpc_test.run(requests); diff --git a/stackslib/src/net/api/tests/postblock_v3.rs b/stackslib/src/net/api/tests/postblock_v3.rs index 0b0a95f3a4..23588d9cc7 100644 --- a/stackslib/src/net/api/tests/postblock_v3.rs +++ b/stackslib/src/net/api/tests/postblock_v3.rs @@ -53,7 +53,7 @@ fn parse_request() { ) .unwrap(); - assert_eq!(handler.block, Some(block.clone())); + assert_eq!(handler.block, Some(block)); // parsed request consumes headers that would not be in a constructed reqeuest parsed_request.clear_headers(); diff --git a/stackslib/src/net/api/tests/postfeerate.rs b/stackslib/src/net/api/tests/postfeerate.rs index b34109b5e5..b762264731 100644 --- a/stackslib/src/net/api/tests/postfeerate.rs +++ b/stackslib/src/net/api/tests/postfeerate.rs @@ -66,7 +66,7 @@ fn test_try_parse_request() { .unwrap(); assert_eq!(handler.estimated_len, Some(123)); - assert_eq!(handler.transaction_payload, Some(tx_payload.clone())); + assert_eq!(handler.transaction_payload, Some(tx_payload)); // parsed request consumes headers that would not be in a constructed reqeuest parsed_request.clear_headers(); diff --git a/stackslib/src/net/api/tests/postmicroblock.rs b/stackslib/src/net/api/tests/postmicroblock.rs index 487e9c17c6..92504a5560 100644 --- a/stackslib/src/net/api/tests/postmicroblock.rs +++ b/stackslib/src/net/api/tests/postmicroblock.rs @@ -74,7 +74,7 @@ fn test_try_parse_request() { // try to decode a bad microblock let mut http = StacksHttp::new(addr.clone(), &ConnectionOptions::default()); - let mut bad_mblock = mblock.clone(); + let mut bad_mblock = mblock; bad_mblock.txs.clear(); let request = StacksHttpRequest::new_post_microblock( addr.into(), diff --git a/stackslib/src/net/api/tests/posttransaction.rs b/stackslib/src/net/api/tests/posttransaction.rs index fd1c1e7e37..3dc0f2e031 100644 --- a/stackslib/src/net/api/tests/posttransaction.rs +++ b/stackslib/src/net/api/tests/posttransaction.rs @@ -144,7 +144,7 @@ fn test_try_parse_request() { ) .unwrap(); - assert_eq!(handler.tx, Some(tx_cc_signed.clone())); + assert_eq!(handler.tx, Some(tx_cc_signed)); assert_eq!( handler.attachment, Some(Attachment::new(vec![0, 1, 2, 3, 4])) @@ -198,7 +198,7 @@ fn test_try_make_response() { let mut bad_tx = sendable_txs[2].clone(); bad_tx.version = TransactionVersion::Mainnet; let request = - StacksHttpRequest::new_post_transaction_with_attachment(addr.into(), bad_tx.clone(), None); + StacksHttpRequest::new_post_transaction_with_attachment(addr.into(), bad_tx, None); requests.push(request); let mut responses = rpc_test.run(requests); diff --git a/stackslib/src/net/atlas/tests.rs b/stackslib/src/net/atlas/tests.rs index 8094c77799..09088cbde7 100644 --- a/stackslib/src/net/atlas/tests.rs +++ b/stackslib/src/net/atlas/tests.rs @@ -637,7 +637,7 @@ fn test_downloader_context_attachment_inventories_requests() { ); let request = request_queue.pop().unwrap(); - let request_type = request.make_request_type(localhost.clone()); + let request_type = request.make_request_type(localhost); assert_eq!(&**request.get_url(), "http://localhost:40443"); debug!("request path = {}", request_type.request_path()); assert!( @@ -693,7 +693,7 @@ fn test_downloader_context_attachment_requests() { let response_2 = new_attachments_inventory_response(vec![(0, vec![1, 1, 1]), (1, vec![0, 0, 0])]); - responses.insert(peer_url_2.clone(), Some(response_2.clone())); + responses.insert(peer_url_2, Some(response_2.clone())); let response_3 = new_attachments_inventory_response(vec![(0, vec![0, 1, 1]), (1, vec![1, 0, 0])]); @@ -742,7 +742,7 @@ fn test_downloader_context_attachment_requests() { assert_eq!(request.get_url(), &peer_url_1); let request = attachments_requests.pop().unwrap(); - let request_type = request.make_request_type(localhost.clone()); + let request_type = request.make_request_type(localhost); assert_eq!(request.get_url(), &peer_url_1); } diff --git a/stackslib/src/net/chat.rs b/stackslib/src/net/chat.rs index bc280c7786..5f4f7faaf4 100644 --- a/stackslib/src/net/chat.rs +++ b/stackslib/src/net/chat.rs @@ -515,7 +515,7 @@ impl Neighbor { // setting BLOCKSTACK_NEIGHBOR_TEST_${PORTNUMBER} will let us select an organization // for this peer use std::env; - match env::var(format!("BLOCKSTACK_NEIGHBOR_TEST_{}", addr.port).to_string()) { + match env::var(format!("BLOCKSTACK_NEIGHBOR_TEST_{}", addr.port)) { Ok(asn_str) => { neighbor.asn = asn_str.parse().unwrap(); neighbor.org = neighbor.asn; @@ -3136,7 +3136,7 @@ mod test { key_expires, PeerAddress::from_ipv4(127, 0, 0, 1), NETWORK_P2P_PORT, - data_url.clone(), + data_url, &asn4_entries, Some(&initial_neighbors), &[QualifiedContractIdentifier::parse("SP000000000000000000002Q6VF78.sbtc").unwrap()], @@ -3985,7 +3985,7 @@ mod test { .sign_message( &chain_view, &local_peer_1.private_key, - StacksMessageType::Handshake(handshake_data_1.clone()), + StacksMessageType::Handshake(handshake_data_1), ) .unwrap(); @@ -4129,7 +4129,7 @@ mod test { .sign_message( &chain_view, &local_peer_1.private_key, - StacksMessageType::Handshake(handshake_data_1.clone()), + StacksMessageType::Handshake(handshake_data_1), ) .unwrap(); match handshake_1.payload { @@ -4294,7 +4294,7 @@ mod test { .sign_message( &chain_view, &local_peer_1.private_key, - StacksMessageType::Handshake(handshake_data_1.clone()), + StacksMessageType::Handshake(handshake_data_1), ) .unwrap(); @@ -4430,7 +4430,7 @@ mod test { .sign_message( &chain_view, &local_peer_1.private_key, - StacksMessageType::Handshake(handshake_data_1.clone()), + StacksMessageType::Handshake(handshake_data_1), ) .unwrap(); @@ -4484,7 +4484,7 @@ mod test { .sign_message( &chain_view, &old_peer_1_privkey, - StacksMessageType::Handshake(handshake_data_1.clone()), + StacksMessageType::Handshake(handshake_data_1), ) .unwrap(); @@ -4629,7 +4629,7 @@ mod test { .sign_message( &chain_view, &local_peer_1.private_key, - StacksMessageType::Handshake(handshake_data_1.clone()), + StacksMessageType::Handshake(handshake_data_1), ) .unwrap(); let mut rh_1 = convo_1.send_signed_request(handshake_1, 1000000).unwrap(); @@ -5176,7 +5176,7 @@ mod test { .sign_message( &chain_view, &local_peer_1.private_key, - StacksMessageType::Ping(ping_data_1.clone()), + StacksMessageType::Ping(ping_data_1), ) .unwrap(); let mut rh_ping_1 = convo_1.send_signed_request(ping_1, 1000000).unwrap(); @@ -5332,7 +5332,7 @@ mod test { .unwrap(); let stackerdb_accept_data_1 = StacksMessageType::StackerDBHandshakeAccept( - accept_data_1.clone(), + accept_data_1, StackerDBHandshakeData { rc_consensus_hash: chain_view.rc_consensus_hash.clone(), // placeholder sbtc address for now @@ -5579,7 +5579,7 @@ mod test { .sign_message( &chain_view, &local_peer_1.private_key, - StacksMessageType::GetBlocksInv(getblocksdata_1.clone()), + StacksMessageType::GetBlocksInv(getblocksdata_1), ) .unwrap(); let mut rh_1 = convo_1 @@ -5632,7 +5632,7 @@ mod test { .sign_message( &chain_view, &local_peer_1.private_key, - StacksMessageType::GetBlocksInv(getblocksdata_diverged_1.clone()), + StacksMessageType::GetBlocksInv(getblocksdata_diverged_1), ) .unwrap(); let mut rh_1 = convo_1 @@ -5857,7 +5857,7 @@ mod test { .sign_message( &chain_view, &local_peer_1.private_key, - StacksMessageType::GetNakamotoInv(getnakamotodata_1.clone()), + StacksMessageType::GetNakamotoInv(getnakamotodata_1), ) .unwrap(); let mut rh_1 = convo_1 @@ -5909,7 +5909,7 @@ mod test { .sign_message( &chain_view, &local_peer_1.private_key, - StacksMessageType::GetNakamotoInv(getnakamotodata_diverged_1.clone()), + StacksMessageType::GetNakamotoInv(getnakamotodata_diverged_1), ) .unwrap(); let mut rh_1 = convo_1 @@ -6158,7 +6158,7 @@ mod test { .sign_message( &chain_view, &local_peer_1.private_key, - StacksMessageType::Ping(ping_data.clone()), + StacksMessageType::Ping(ping_data), ) .unwrap(); convo_bad.network_id -= 1; @@ -6191,7 +6191,7 @@ mod test { .sign_message( &chain_view_bad, &local_peer_1.private_key, - StacksMessageType::Ping(ping_data.clone()), + StacksMessageType::Ping(ping_data), ) .unwrap(); @@ -6228,7 +6228,7 @@ mod test { .sign_message( &chain_view_bad, &local_peer_1.private_key, - StacksMessageType::Ping(ping_data.clone()), + StacksMessageType::Ping(ping_data), ) .unwrap(); @@ -6266,7 +6266,7 @@ mod test { .sign_message( &chain_view_bad, &local_peer_1.private_key, - StacksMessageType::Ping(ping_data.clone()), + StacksMessageType::Ping(ping_data), ) .unwrap(); @@ -6354,7 +6354,7 @@ mod test { .sign_message( &chain_view, &local_peer_1.private_key, - StacksMessageType::Ping(ping_data.clone()), + StacksMessageType::Ping(ping_data), ) .unwrap(); convo_bad.version = 0x18000005; @@ -6836,7 +6836,7 @@ mod test { ) .unwrap(); - let mut expected_relayers = relayers.clone(); + let mut expected_relayers = relayers; expected_relayers.push(RelayData { peer: local_peer_1.to_neighbor_addr(), seq: 0, @@ -6940,7 +6940,7 @@ mod test { // should succeed convo_1 - .sign_and_forward(&local_peer_1, &chain_view, vec![], payload.clone()) + .sign_and_forward(&local_peer_1, &chain_view, vec![], payload) .unwrap(); } @@ -7027,12 +7027,7 @@ mod test { ]; let mut bad_msg = convo_1 - .sign_relay_message( - &local_peer_1, - &chain_view, - bad_relayers.clone(), - payload.clone(), - ) + .sign_relay_message(&local_peer_1, &chain_view, bad_relayers, payload) .unwrap(); bad_msg.preamble.payload_len = 10; @@ -7056,7 +7051,7 @@ mod test { // NOTE: payload can be anything since we only look at premable length here let payload = StacksMessageType::Nack(NackData { error_code: 123 }); let mut msg = convo_1 - .sign_relay_message(&local_peer_2, &chain_view, vec![], payload.clone()) + .sign_relay_message(&local_peer_2, &chain_view, vec![], payload) .unwrap(); let err_before = convo_1.stats.msgs_err; @@ -7161,12 +7156,7 @@ mod test { ]; let mut bad_msg = convo_1 - .sign_relay_message( - &local_peer_1, - &chain_view, - bad_relayers.clone(), - payload.clone(), - ) + .sign_relay_message(&local_peer_1, &chain_view, bad_relayers, payload) .unwrap(); bad_msg.preamble.payload_len = 10; @@ -7190,7 +7180,7 @@ mod test { // NOTE: payload can be anything since we only look at premable length here let payload = StacksMessageType::Nack(NackData { error_code: 123 }); let mut msg = convo_1 - .sign_relay_message(&local_peer_2, &chain_view, vec![], payload.clone()) + .sign_relay_message(&local_peer_2, &chain_view, vec![], payload) .unwrap(); let err_before = convo_1.stats.msgs_err; @@ -7295,12 +7285,7 @@ mod test { ]; let mut bad_msg = convo_1 - .sign_relay_message( - &local_peer_1, - &chain_view, - bad_relayers.clone(), - payload.clone(), - ) + .sign_relay_message(&local_peer_1, &chain_view, bad_relayers, payload) .unwrap(); bad_msg.preamble.payload_len = 10; @@ -7324,7 +7309,7 @@ mod test { // NOTE: payload can be anything since we only look at premable length here let payload = StacksMessageType::Nack(NackData { error_code: 123 }); let mut msg = convo_1 - .sign_relay_message(&local_peer_2, &chain_view, vec![], payload.clone()) + .sign_relay_message(&local_peer_2, &chain_view, vec![], payload) .unwrap(); let err_before = convo_1.stats.msgs_err; @@ -7429,12 +7414,7 @@ mod test { ]; let mut bad_msg = convo_1 - .sign_relay_message( - &local_peer_1, - &chain_view, - bad_relayers.clone(), - payload.clone(), - ) + .sign_relay_message(&local_peer_1, &chain_view, bad_relayers, payload) .unwrap(); bad_msg.preamble.payload_len = 10; @@ -7458,7 +7438,7 @@ mod test { // NOTE: payload can be anything since we only look at premable length here let payload = StacksMessageType::Nack(NackData { error_code: 123 }); let mut msg = convo_1 - .sign_relay_message(&local_peer_2, &chain_view, vec![], payload.clone()) + .sign_relay_message(&local_peer_2, &chain_view, vec![], payload) .unwrap(); let err_before = convo_1.stats.msgs_err; diff --git a/stackslib/src/net/codec.rs b/stackslib/src/net/codec.rs index 01987eaa7e..a17b140bed 100644 --- a/stackslib/src/net/codec.rs +++ b/stackslib/src/net/codec.rs @@ -1887,7 +1887,7 @@ pub mod test { // pox bitvec maximal_poxinvdata_bytes .append(&mut ((GETPOXINV_MAX_BITLEN / 8) as u32).to_be_bytes().to_vec()); - maximal_poxinvdata_bytes.append(&mut maximal_bitvec.clone()); + maximal_poxinvdata_bytes.extend_from_slice(&maximal_bitvec); assert!((maximal_poxinvdata_bytes.len() as u32) < MAX_MESSAGE_LEN); @@ -1960,10 +1960,10 @@ pub mod test { maximal_blocksinvdata_bytes.append(&mut (blocks_bitlen as u16).to_be_bytes().to_vec()); // block bitvec maximal_blocksinvdata_bytes.append(&mut (blocks_bitlen / 8).to_be_bytes().to_vec()); - maximal_blocksinvdata_bytes.append(&mut maximal_bitvec.clone()); + maximal_blocksinvdata_bytes.extend_from_slice(&maximal_bitvec); // microblock bitvec maximal_blocksinvdata_bytes.append(&mut (blocks_bitlen / 8).to_be_bytes().to_vec()); - maximal_blocksinvdata_bytes.append(&mut maximal_bitvec.clone()); + maximal_blocksinvdata_bytes.extend_from_slice(&maximal_bitvec); assert!((maximal_blocksinvdata_bytes.len() as u32) < MAX_MESSAGE_LEN); diff --git a/stackslib/src/net/mod.rs b/stackslib/src/net/mod.rs index 7a5aa47f92..c26e859fea 100644 --- a/stackslib/src/net/mod.rs +++ b/stackslib/src/net/mod.rs @@ -3003,7 +3003,7 @@ pub mod test { let boot_code_smart_contract = StacksTransaction::new( TransactionVersion::Testnet, - boot_code_auth.clone(), + boot_code_auth, smart_contract, ); StacksChainState::process_transaction_payload( @@ -3152,7 +3152,7 @@ pub mod test { burnchain_view, config.connection_opts.clone(), stacker_db_syncs, - epochs.clone(), + epochs, ); peer_network.set_stacker_db_configs(config.get_stacker_db_configs()); diff --git a/stackslib/src/net/server.rs b/stackslib/src/net/server.rs index 78f0f6fbb5..2b82fdeca8 100644 --- a/stackslib/src/net/server.rs +++ b/stackslib/src/net/server.rs @@ -1150,13 +1150,9 @@ mod test { let auth_origin = TransactionAuth::from_p2pkh(&privk_origin).unwrap(); let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, - auth_origin.clone(), - TransactionPayload::new_smart_contract( - &"hello-world".to_string(), - &big_contract.to_string(), - None, - ) - .unwrap(), + auth_origin, + TransactionPayload::new_smart_contract("hello-world", &big_contract, None) + .unwrap(), ); tx_contract.chain_id = chainstate.config().chain_id; diff --git a/stackslib/src/net/stackerdb/config.rs b/stackslib/src/net/stackerdb/config.rs index fbc1f28245..f0e13942d3 100644 --- a/stackslib/src/net/stackerdb/config.rs +++ b/stackslib/src/net/stackerdb/config.rs @@ -484,7 +484,7 @@ impl StackerDBConfig { } let hint_replicas = if let Some(replicas) = local_hint_replicas { - replicas.clone() + replicas } else { let hint_replicas_list = config_tuple .get("hint-replicas") diff --git a/stackslib/src/net/stackerdb/sync.rs b/stackslib/src/net/stackerdb/sync.rs index 7dfeb809c7..6a2d1e0b1f 100644 --- a/stackslib/src/net/stackerdb/sync.rs +++ b/stackslib/src/net/stackerdb/sync.rs @@ -606,7 +606,7 @@ impl StackerDBSync { false }; - self.chunk_invs.insert(naddr.clone(), new_inv); + self.chunk_invs.insert(naddr, new_inv); self.chunk_push_priorities .retain(|(chunk, ..)| chunk.chunk_data.slot_id != slot_id); diff --git a/stackslib/src/net/stackerdb/tests/config.rs b/stackslib/src/net/stackerdb/tests/config.rs index cff4ca1059..acc16b658c 100644 --- a/stackslib/src/net/stackerdb/tests/config.rs +++ b/stackslib/src/net/stackerdb/tests/config.rs @@ -107,7 +107,7 @@ fn test_valid_and_invalid_stackerdb_configs() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, "test_valid_and_invalid_stackerdb_configs", - Some(epochs.clone()), + Some(epochs), Some(&observer), ); @@ -583,7 +583,7 @@ fn test_hint_replicas_override() { let (mut peer, mut keys) = instantiate_pox_peer_with_epoch( &burnchain, "test_valid_and_invalid_stackerdb_configs", - Some(epochs.clone()), + Some(epochs), Some(&observer), ); diff --git a/stackslib/src/net/stackerdb/tests/db.rs b/stackslib/src/net/stackerdb/tests/db.rs index 9bcf800529..a16de443cd 100644 --- a/stackslib/src/net/stackerdb/tests/db.rs +++ b/stackslib/src/net/stackerdb/tests/db.rs @@ -593,9 +593,9 @@ fn test_reconfigure_stackerdb() { db_config.max_writes = 3; db_config.write_freq = 120; - let tx = db.tx_begin(db_config.clone()).unwrap(); + let tx = db.tx_begin(db_config).unwrap(); - let pks: Vec<_> = (0..10).map(|_| StacksPrivateKey::new()).collect(); + let pks = vec![StacksPrivateKey::new(); 10]; let addrs: Vec<_> = pks .iter() .map(|pk| { @@ -611,11 +611,7 @@ fn test_reconfigure_stackerdb() { tx.create_stackerdb( &sc, - &addrs - .clone() - .into_iter() - .map(|addr| (addr, 1)) - .collect::>(), + &addrs.into_iter().map(|addr| (addr, 1)).collect::>(), ) .unwrap(); @@ -687,7 +683,6 @@ fn test_reconfigure_stackerdb() { tx.reconfigure_stackerdb( &sc, &reconfigured_addrs - .clone() .into_iter() .map(|addr| (addr, 1)) .collect::>(), @@ -771,7 +766,6 @@ fn test_reconfigure_stackerdb() { tx.reconfigure_stackerdb( &sc, &reconfigured_addrs - .clone() .into_iter() .map(|addr| (addr, 1)) .collect::>(), diff --git a/stackslib/src/net/tests/download/nakamoto.rs b/stackslib/src/net/tests/download/nakamoto.rs index 5552e923b5..5276c17b5d 100644 --- a/stackslib/src/net/tests/download/nakamoto.rs +++ b/stackslib/src/net/tests/download/nakamoto.rs @@ -176,12 +176,12 @@ fn test_nakamoto_tenure_downloader() { let proof = VRFProof::from_bytes(&proof_bytes[..].to_vec()).unwrap(); let coinbase_payload = - TransactionPayload::Coinbase(CoinbasePayload([0x12; 32]), None, Some(proof.clone())); + TransactionPayload::Coinbase(CoinbasePayload([0x12; 32]), None, Some(proof)); let mut coinbase_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - coinbase_payload.clone(), + coinbase_payload, ); coinbase_tx.chain_id = 0x80000000; coinbase_tx.anchor_mode = TransactionAnchorMode::OnChainOnly; @@ -189,7 +189,7 @@ fn test_nakamoto_tenure_downloader() { let mut tenure_change_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - TransactionPayload::TenureChange(tenure_change_payload.clone()), + TransactionPayload::TenureChange(tenure_change_payload), ); tenure_change_tx.chain_id = 0x80000000; tenure_change_tx.anchor_mode = TransactionAnchorMode::OnChainOnly; @@ -209,8 +209,8 @@ fn test_nakamoto_tenure_downloader() { stx_transfer.anchor_mode = TransactionAnchorMode::OnChainOnly; let mut tenure_start_block = NakamotoBlock { - header: tenure_start_header.clone(), - txs: vec![tenure_change_tx.clone(), coinbase_tx.clone()], + header: tenure_start_header, + txs: vec![tenure_change_tx, coinbase_tx.clone()], }; test_signers.sign_nakamoto_block(&mut tenure_start_block, 0); @@ -266,14 +266,14 @@ fn test_nakamoto_tenure_downloader() { let mut next_tenure_change_tx = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&private_key).unwrap(), - TransactionPayload::TenureChange(next_tenure_change_payload.clone()), + TransactionPayload::TenureChange(next_tenure_change_payload), ); next_tenure_change_tx.chain_id = 0x80000000; next_tenure_change_tx.anchor_mode = TransactionAnchorMode::OnChainOnly; let mut next_tenure_start_block = NakamotoBlock { - header: next_tenure_start_header.clone(), - txs: vec![next_tenure_change_tx.clone(), coinbase_tx.clone()], + header: next_tenure_start_header, + txs: vec![next_tenure_change_tx, coinbase_tx], }; test_signers.sign_nakamoto_block(&mut next_tenure_start_block, 0); @@ -289,9 +289,9 @@ fn test_nakamoto_tenure_downloader() { tenure_start_block.header.block_id(), next_tenure_start_block.header.consensus_hash.clone(), next_tenure_start_block.header.block_id(), - naddr.clone(), - reward_set.clone(), + naddr, reward_set.clone(), + reward_set, ); // must be first block @@ -398,13 +398,7 @@ fn test_nakamoto_unconfirmed_tenure_downloader() { ]]; let rc_len = 10u64; - let peer = make_nakamoto_peer_from_invs( - function_name!(), - &observer, - rc_len as u32, - 3, - bitvecs.clone(), - ); + let peer = make_nakamoto_peer_from_invs(function_name!(), &observer, rc_len as u32, 3, bitvecs); let (mut peer, reward_cycle_invs) = peer_get_nakamoto_invs(peer, &[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); peer.mine_malleablized_blocks = false; @@ -710,7 +704,7 @@ fn test_nakamoto_unconfirmed_tenure_downloader() { tenure_tip.tip_block_id.clone(), ) ); - assert_eq!(utd.tenure_tip, Some(tenure_tip.clone())); + assert_eq!(utd.tenure_tip, Some(tenure_tip)); // fill in blocks for (i, block) in unconfirmed_tenure.iter().enumerate().rev() { @@ -809,7 +803,7 @@ fn test_nakamoto_unconfirmed_tenure_downloader() { tenure_tip.tip_block_id.clone(), ) ); - assert_eq!(utd.tenure_tip, Some(tenure_tip.clone())); + assert_eq!(utd.tenure_tip, Some(tenure_tip)); // fill in blocks for (i, block) in unconfirmed_tenure.iter().enumerate().rev() { @@ -890,7 +884,7 @@ fn test_nakamoto_unconfirmed_tenure_downloader() { &sortdb, &sort_tip, peer.chainstate(), - tenure_tip.clone(), + tenure_tip, ¤t_reward_sets, ) .unwrap(); @@ -967,7 +961,7 @@ fn test_nakamoto_unconfirmed_tenure_downloader() { &sortdb, &sort_tip, peer.chainstate(), - tenure_tip.clone(), + tenure_tip, ¤t_reward_sets, ) .unwrap(); @@ -986,7 +980,7 @@ fn test_nakamoto_unconfirmed_tenure_downloader() { // Does not consume blocks beyond the highest processed block ID { - let mut utd = NakamotoUnconfirmedTenureDownloader::new(naddr.clone(), None); + let mut utd = NakamotoUnconfirmedTenureDownloader::new(naddr, None); utd.confirmed_signer_keys = Some( current_reward_sets .get(&tip_rc) @@ -1030,7 +1024,7 @@ fn test_nakamoto_unconfirmed_tenure_downloader() { &sortdb, &sort_tip, peer.chainstate(), - tenure_tip.clone(), + tenure_tip, ¤t_reward_sets, ) .unwrap(); @@ -1071,7 +1065,7 @@ fn test_tenure_start_end_from_inventory() { public_key_hash: Hash160([0xff; 20]), }; let rc_len = 12u16; - let mut invs = NakamotoTenureInv::new(0, u64::from(rc_len), 0, naddr.clone()); + let mut invs = NakamotoTenureInv::new(0, u64::from(rc_len), 0, naddr); let pox_constants = PoxConstants::new( rc_len.into(), 5, @@ -1337,13 +1331,7 @@ fn test_make_tenure_downloaders() { ]]; let rc_len = 10u64; - let peer = make_nakamoto_peer_from_invs( - function_name!(), - &observer, - rc_len as u32, - 3, - bitvecs.clone(), - ); + let peer = make_nakamoto_peer_from_invs(function_name!(), &observer, rc_len as u32, 3, bitvecs); let (mut peer, reward_cycle_invs) = peer_get_nakamoto_invs(peer, &[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); @@ -2238,13 +2226,7 @@ fn test_nakamoto_unconfirmed_download_run_2_peers() { ]; let rc_len = 10u64; - let peer = make_nakamoto_peer_from_invs( - function_name!(), - &observer, - rc_len as u32, - 5, - bitvecs.clone(), - ); + let peer = make_nakamoto_peer_from_invs(function_name!(), &observer, rc_len as u32, 5, bitvecs); let (mut peer, reward_cycle_invs) = peer_get_nakamoto_invs(peer, &[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); @@ -2358,18 +2340,14 @@ fn test_nakamoto_microfork_download_run_2_peers() { let rc_len = 10u64; - let (mut peer, _) = make_nakamoto_peers_from_invs_ext( - function_name!(), - &observer, - bitvecs.clone(), - |boot_plan| { + let (mut peer, _) = + make_nakamoto_peers_from_invs_ext(function_name!(), &observer, bitvecs, |boot_plan| { boot_plan .with_pox_constants(rc_len as u32, 5) .with_extra_peers(0) .with_initial_balances(initial_balances) .with_malleablized_blocks(false) - }, - ); + }); peer.refresh_burnchain_view(); let nakamoto_start = @@ -2421,7 +2399,7 @@ fn test_nakamoto_microfork_download_run_2_peers() { peer.refresh_burnchain_view(); - peer.mine_nakamoto_on(vec![fork_naka_block.clone()]); + peer.mine_nakamoto_on(vec![fork_naka_block]); let (fork_naka_block_2, ..) = peer.single_block_tenure(&sender_key, |_| {}, |_| {}, |_| true); debug!( "test: confirmed fork with {}: {:?}", @@ -2537,18 +2515,14 @@ fn test_nakamoto_download_run_2_peers_with_one_shadow_block() { let bitvecs = vec![vec![true, true, false, false]]; let rc_len = 10u64; - let (mut peer, _) = make_nakamoto_peers_from_invs_ext( - function_name!(), - &observer, - bitvecs.clone(), - |boot_plan| { + let (mut peer, _) = + make_nakamoto_peers_from_invs_ext(function_name!(), &observer, bitvecs, |boot_plan| { boot_plan .with_pox_constants(rc_len as u32, 5) .with_extra_peers(0) .with_initial_balances(initial_balances) .with_malleablized_blocks(false) - }, - ); + }); peer.refresh_burnchain_view(); let (mut peer, reward_cycle_invs) = peer_get_nakamoto_invs(peer, &[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); @@ -2595,7 +2569,7 @@ fn test_nakamoto_download_run_2_peers_with_one_shadow_block() { ); peer.refresh_burnchain_view(); - peer.mine_nakamoto_on(vec![next_block.clone()]); + peer.mine_nakamoto_on(vec![next_block]); for _ in 0..9 { let (next_block, ..) = peer.single_block_tenure(&sender_key, |_| {}, |_| {}, |_| true); @@ -2721,18 +2695,14 @@ fn test_nakamoto_download_run_2_peers_shadow_prepare_phase() { let bitvecs = vec![vec![true, true]]; let rc_len = 10u64; - let (mut peer, _) = make_nakamoto_peers_from_invs_ext( - function_name!(), - &observer, - bitvecs.clone(), - |boot_plan| { + let (mut peer, _) = + make_nakamoto_peers_from_invs_ext(function_name!(), &observer, bitvecs, |boot_plan| { boot_plan .with_pox_constants(rc_len as u32, 5) .with_extra_peers(0) .with_initial_balances(initial_balances) .with_malleablized_blocks(false) - }, - ); + }); peer.refresh_burnchain_view(); let (mut peer, reward_cycle_invs) = peer_get_nakamoto_invs(peer, &[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); @@ -2785,7 +2755,7 @@ fn test_nakamoto_download_run_2_peers_shadow_prepare_phase() { ); peer.refresh_burnchain_view(); - peer.mine_nakamoto_on(vec![next_block.clone()]); + peer.mine_nakamoto_on(vec![next_block]); } Err(ChainstateError::NoSuchBlockError) => { // tried to mine but our commit was invalid (e.g. because we haven't mined often @@ -2928,18 +2898,14 @@ fn test_nakamoto_download_run_2_peers_shadow_reward_cycles() { let bitvecs = vec![vec![true, true]]; let rc_len = 10u64; - let (mut peer, _) = make_nakamoto_peers_from_invs_ext( - function_name!(), - &observer, - bitvecs.clone(), - |boot_plan| { + let (mut peer, _) = + make_nakamoto_peers_from_invs_ext(function_name!(), &observer, bitvecs, |boot_plan| { boot_plan .with_pox_constants(rc_len as u32, 5) .with_extra_peers(0) .with_initial_balances(initial_balances) .with_malleablized_blocks(false) - }, - ); + }); peer.refresh_burnchain_view(); let (mut peer, reward_cycle_invs) = peer_get_nakamoto_invs(peer, &[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]); @@ -2992,7 +2958,7 @@ fn test_nakamoto_download_run_2_peers_shadow_reward_cycles() { ); peer.refresh_burnchain_view(); - peer.mine_nakamoto_on(vec![next_block.clone()]); + peer.mine_nakamoto_on(vec![next_block]); } Err(ChainstateError::NoSuchBlockError) => { // tried to mine but our commit was invalid (e.g. because we haven't mined often diff --git a/stackslib/src/net/tests/httpcore.rs b/stackslib/src/net/tests/httpcore.rs index 8372398533..74dc474a78 100644 --- a/stackslib/src/net/tests/httpcore.rs +++ b/stackslib/src/net/tests/httpcore.rs @@ -158,7 +158,7 @@ fn make_test_transaction() -> StacksTransaction { let mut tx_stx_transfer = StacksTransaction::new( TransactionVersion::Testnet, - auth.clone(), + auth, TransactionPayload::TokenTransfer( recv_addr.clone().into(), 123, diff --git a/stackslib/src/net/tests/inv/epoch2x.rs b/stackslib/src/net/tests/inv/epoch2x.rs index 44a4bf3967..13a8679d05 100644 --- a/stackslib/src/net/tests/inv/epoch2x.rs +++ b/stackslib/src/net/tests/inv/epoch2x.rs @@ -138,7 +138,7 @@ fn peerblocksinv_merge() { ); // merge above, non-overlapping, aligned - let mut peer_inv_above = peer_inv.clone(); + let mut peer_inv_above = peer_inv; let (new_blocks, new_microblocks) = peer_inv_above.merge_blocks_inv(12345 + 32, 16, vec![0x11, 0x22], vec![0x11, 0x22], false); assert_eq!(peer_inv_above.num_sortitions, 48); @@ -306,7 +306,7 @@ fn peerblocksinv_merge_clear_bits() { ); // merge above, non-overlapping, aligned - let mut peer_inv_above = peer_inv.clone(); + let mut peer_inv_above = peer_inv; let (new_blocks, new_microblocks) = peer_inv_above.merge_blocks_inv(12345 + 32, 16, vec![0x11, 0x22], vec![0x11, 0x22], true); assert_eq!(peer_inv_above.num_sortitions, 48); @@ -578,7 +578,7 @@ fn test_sync_inv_set_blocks_microblocks_available() { peer_2_config.burnchain.first_block_hash ); - let burnchain = peer_1_config.burnchain.clone(); + let burnchain = peer_1_config.burnchain; let num_blocks = 5; let first_stacks_block_height = { @@ -1140,7 +1140,7 @@ fn test_sync_inv_make_inv_messages() { fn test_sync_inv_diagnose_nack() { let peer_config = TestPeerConfig::new(function_name!(), 0, 0); let neighbor = peer_config.to_neighbor(); - let neighbor_key = neighbor.addr.clone(); + let neighbor_key = neighbor.addr; let nack_no_block = NackData { error_code: NackErrorCodes::NoSuchBurnchainBlock, }; @@ -1230,7 +1230,7 @@ fn test_sync_inv_diagnose_nack() { NodeStatus::Diverged, NeighborBlockStats::diagnose_nack( &neighbor_key, - nack_no_block.clone(), + nack_no_block, &burnchain_view, 12346, 12340, diff --git a/stackslib/src/net/tests/inv/nakamoto.rs b/stackslib/src/net/tests/inv/nakamoto.rs index 3a29d453ae..c0f403a056 100644 --- a/stackslib/src/net/tests/inv/nakamoto.rs +++ b/stackslib/src/net/tests/inv/nakamoto.rs @@ -793,7 +793,7 @@ fn test_nakamoto_tenure_inv() { // has_ith_tenure() works (non-triial case) let partial_tenure = NakamotoInvData::try_from(&partial_tenure_bools).unwrap(); - let learned = nakamoto_inv.merge_tenure_inv(partial_tenure.clone().tenures, 2); + let learned = nakamoto_inv.merge_tenure_inv(partial_tenure.tenures, 2); assert!(learned); for i in 300..400 { @@ -836,7 +836,7 @@ fn test_nakamoto_tenure_inv() { // partial data let partial_tenure = NakamotoInvData::try_from(&[true; 50]).unwrap(); - let learned = nakamoto_inv.merge_tenure_inv(full_tenure.clone().tenures, 5); + let learned = nakamoto_inv.merge_tenure_inv(full_tenure.tenures, 5); assert!(learned); assert_eq!(nakamoto_inv.highest_reward_cycle(), 5); @@ -1011,7 +1011,7 @@ fn test_nakamoto_inv_sync_across_epoch_change() { // boot two peers, and cannibalize the second one for its network and sortdb so we can use them // to directly drive a state machine. let (mut peer, mut other_peers) = - make_nakamoto_peers_from_invs(function_name!(), &observer, 10, 3, bitvecs.clone(), 1); + make_nakamoto_peers_from_invs(function_name!(), &observer, 10, 3, bitvecs, 1); let mut other_peer = other_peers.pop().unwrap(); let nakamoto_start = @@ -1153,7 +1153,7 @@ fn test_nakamoto_make_tenure_inv_in_forks() { &observer, 10, 3, - bitvecs.clone(), + bitvecs, 0, initial_balances, ); @@ -1370,7 +1370,7 @@ fn test_nakamoto_make_tenure_inv_in_forks() { // ---------------------- the inv generator can track multiple forks at once ---------------------- // - peer.mine_nakamoto_on(vec![naka_tenure_start_block.clone()]); + peer.mine_nakamoto_on(vec![naka_tenure_start_block]); let (fork_naka_block, ..) = peer.single_block_tenure(&sender_key, |_| {}, |_| {}, |_| true); debug!( "test: produced fork {}: {:?}", @@ -1611,7 +1611,7 @@ fn test_nakamoto_make_tenure_inv_in_forks() { // advance the canonical chain by 3 more blocks, so the delta between `first_naka_tip` and // `naka_tip` is now 6 blocks - peer.mine_nakamoto_on(vec![naka_tip_block.clone()]); + peer.mine_nakamoto_on(vec![naka_tip_block]); for i in 0..3 { let (naka_block, ..) = peer.single_block_tenure(&sender_key, |_| {}, |_| {}, |_| true); debug!( @@ -1784,7 +1784,7 @@ fn test_nakamoto_make_tenure_inv_in_many_reward_cycles() { &observer, 10, 3, - bitvecs.clone(), + bitvecs, 0, initial_balances, ); @@ -2292,7 +2292,7 @@ fn test_nakamoto_make_tenure_inv_from_old_tips() { &observer, 10, 3, - bitvecs.clone(), + bitvecs, 0, initial_balances, ); diff --git a/stackslib/src/net/tests/mempool/mod.rs b/stackslib/src/net/tests/mempool/mod.rs index 558dddb63e..8296ee38bf 100644 --- a/stackslib/src/net/tests/mempool/mod.rs +++ b/stackslib/src/net/tests/mempool/mod.rs @@ -61,7 +61,7 @@ fn test_mempool_sync_2_peers() { .collect(); peer_1_config.initial_balances = initial_balances.clone(); - peer_2_config.initial_balances = initial_balances.clone(); + peer_2_config.initial_balances = initial_balances; let mut peer_1 = TestPeer::new(peer_1_config); let mut peer_2 = TestPeer::new(peer_2_config); @@ -329,7 +329,7 @@ fn test_mempool_sync_2_peers_paginated() { .collect(); peer_1_config.initial_balances = initial_balances.clone(); - peer_2_config.initial_balances = initial_balances.clone(); + peer_2_config.initial_balances = initial_balances; let mut peer_1 = TestPeer::new(peer_1_config); let mut peer_2 = TestPeer::new(peer_2_config); @@ -520,7 +520,7 @@ fn test_mempool_sync_2_peers_blacklisted() { .collect(); peer_1_config.initial_balances = initial_balances.clone(); - peer_2_config.initial_balances = initial_balances.clone(); + peer_2_config.initial_balances = initial_balances; let mut peer_1 = TestPeer::new(peer_1_config); let mut peer_2 = TestPeer::new(peer_2_config); @@ -731,7 +731,7 @@ fn test_mempool_sync_2_peers_problematic() { .collect(); peer_1_config.initial_balances = initial_balances.clone(); - peer_2_config.initial_balances = initial_balances.clone(); + peer_2_config.initial_balances = initial_balances; let mut peer_1 = TestPeer::new(peer_1_config); let mut peer_2 = TestPeer::new(peer_2_config); @@ -995,7 +995,7 @@ pub fn test_mempool_storage_nakamoto() { ); txs.push(stx_transfer.clone()); (*mempool_txs.borrow_mut()).push(stx_transfer.clone()); - all_txs.push(stx_transfer.clone()); + all_txs.push(stx_transfer); } txs }, @@ -1109,7 +1109,7 @@ fn test_mempool_sync_2_peers_nakamoto_paginated() { &observer, 10, 3, - bitvecs.clone(), + bitvecs, 1, initial_balances, ); diff --git a/stackslib/src/net/tests/mod.rs b/stackslib/src/net/tests/mod.rs index 28c906a4c2..c9f29b6001 100644 --- a/stackslib/src/net/tests/mod.rs +++ b/stackslib/src/net/tests/mod.rs @@ -740,7 +740,7 @@ impl NakamotoBootPlan { blocks_since_last_tenure ); let tenure_extension_tx = - miner.make_nakamoto_tenure_change(tenure_extension.clone()); + miner.make_nakamoto_tenure_change(tenure_extension); txs.push(tenure_extension_tx); txs.extend_from_slice(&transactions[..]); @@ -841,7 +841,7 @@ impl NakamotoBootPlan { blocks_since_last_tenure // blocks_so_far.len() as u32, ); let tenure_extension_tx = - miner.make_nakamoto_tenure_change(tenure_extension.clone()); + miner.make_nakamoto_tenure_change(tenure_extension); txs.push(tenure_extension_tx); txs.extend_from_slice(&transactions[..]); @@ -1343,29 +1343,29 @@ fn test_network_result_update() { }; let nblk1 = NakamotoBlock { - header: naka_header_1.clone(), + header: naka_header_1, txs: vec![], }; let nblk2 = NakamotoBlock { - header: naka_header_2.clone(), + header: naka_header_2, txs: vec![], }; let pushed_nblk1 = NakamotoBlock { - header: naka_pushed_header_1.clone(), + header: naka_pushed_header_1, txs: vec![], }; let pushed_nblk2 = NakamotoBlock { - header: naka_pushed_header_2.clone(), + header: naka_pushed_header_2, txs: vec![], }; let uploaded_nblk1 = NakamotoBlock { - header: naka_uploaded_header_1.clone(), + header: naka_uploaded_header_1, txs: vec![], }; let uploaded_nblk2 = NakamotoBlock { - header: naka_uploaded_header_2.clone(), + header: naka_uploaded_header_2, txs: vec![], }; @@ -1415,25 +1415,23 @@ fn test_network_result_update() { network_result_1 .unhandled_messages - .insert(nk1.clone(), vec![msg1.clone()]); + .insert(nk1.clone(), vec![msg1]); network_result_1 .blocks - .push((ConsensusHash([0x11; 20]), blk1.clone(), 1)); - network_result_1.confirmed_microblocks.push(( - ConsensusHash([0x11; 20]), - vec![mblk1.clone()], - 1, - )); + .push((ConsensusHash([0x11; 20]), blk1, 1)); + network_result_1 + .confirmed_microblocks + .push((ConsensusHash([0x11; 20]), vec![mblk1], 1)); network_result_1 .nakamoto_blocks .insert(nblk1.block_id(), nblk1.clone()); network_result_1 .pushed_transactions - .insert(nk1.clone(), vec![(vec![], pushed_tx1.clone())]); + .insert(nk1.clone(), vec![(vec![], pushed_tx1)]); network_result_1.pushed_blocks.insert( nk1.clone(), vec![BlocksData { - blocks: vec![BlocksDatum(ConsensusHash([0x11; 20]), pushed_blk1.clone())], + blocks: vec![BlocksDatum(ConsensusHash([0x11; 20]), pushed_blk1)], }], ); network_result_1.pushed_microblocks.insert( @@ -1442,7 +1440,7 @@ fn test_network_result_update() { vec![], MicroblocksData { index_anchor_block: StacksBlockId([0x11; 32]), - microblocks: vec![pushed_mblk1.clone()], + microblocks: vec![pushed_mblk1], }, )], ); @@ -1455,28 +1453,23 @@ fn test_network_result_update() { }, )], ); - network_result_1 - .uploaded_transactions - .push(uploaded_tx1.clone()); + network_result_1.uploaded_transactions.push(uploaded_tx1); network_result_1.uploaded_blocks.push(BlocksData { - blocks: vec![BlocksDatum( - ConsensusHash([0x11; 20]), - uploaded_blk1.clone(), - )], + blocks: vec![BlocksDatum(ConsensusHash([0x11; 20]), uploaded_blk1)], }); network_result_1.uploaded_microblocks.push(MicroblocksData { index_anchor_block: StacksBlockId([0x11; 32]), - microblocks: vec![uploaded_mblk1.clone()], + microblocks: vec![uploaded_mblk1], }); network_result_1 .uploaded_nakamoto_blocks - .push(uploaded_nblk1.clone()); + .push(uploaded_nblk1); network_result_1 .pushed_stackerdb_chunks - .push(pushed_stackerdb_chunk_1.clone()); + .push(pushed_stackerdb_chunk_1); network_result_1 .uploaded_stackerdb_chunks - .push(uploaded_stackerdb_chunk_1.clone()); + .push(uploaded_stackerdb_chunk_1); network_result_1.synced_transactions.push(synced_tx1); network_result_2 @@ -1484,22 +1477,20 @@ fn test_network_result_update() { .insert(nk2.clone(), vec![msg2.clone()]); network_result_2 .blocks - .push((ConsensusHash([0x22; 20]), blk2.clone(), 2)); - network_result_2.confirmed_microblocks.push(( - ConsensusHash([0x22; 20]), - vec![mblk2.clone()], - 2, - )); + .push((ConsensusHash([0x22; 20]), blk2, 2)); + network_result_2 + .confirmed_microblocks + .push((ConsensusHash([0x22; 20]), vec![mblk2], 2)); network_result_2 .nakamoto_blocks - .insert(nblk2.block_id(), nblk2.clone()); + .insert(nblk2.block_id(), nblk2); network_result_2 .pushed_transactions - .insert(nk2.clone(), vec![(vec![], pushed_tx2.clone())]); + .insert(nk2.clone(), vec![(vec![], pushed_tx2)]); network_result_2.pushed_blocks.insert( nk2.clone(), vec![BlocksData { - blocks: vec![BlocksDatum(ConsensusHash([0x22; 20]), pushed_blk2.clone())], + blocks: vec![BlocksDatum(ConsensusHash([0x22; 20]), pushed_blk2)], }], ); network_result_2.pushed_microblocks.insert( @@ -1508,7 +1499,7 @@ fn test_network_result_update() { vec![], MicroblocksData { index_anchor_block: StacksBlockId([0x22; 32]), - microblocks: vec![pushed_mblk2.clone()], + microblocks: vec![pushed_mblk2], }, )], ); @@ -1521,28 +1512,23 @@ fn test_network_result_update() { }, )], ); - network_result_2 - .uploaded_transactions - .push(uploaded_tx2.clone()); + network_result_2.uploaded_transactions.push(uploaded_tx2); network_result_2.uploaded_blocks.push(BlocksData { - blocks: vec![BlocksDatum( - ConsensusHash([0x22; 20]), - uploaded_blk2.clone(), - )], + blocks: vec![BlocksDatum(ConsensusHash([0x22; 20]), uploaded_blk2)], }); network_result_2.uploaded_microblocks.push(MicroblocksData { index_anchor_block: StacksBlockId([0x22; 32]), - microblocks: vec![uploaded_mblk2.clone()], + microblocks: vec![uploaded_mblk2], }); network_result_2 .uploaded_nakamoto_blocks - .push(uploaded_nblk2.clone()); + .push(uploaded_nblk2); network_result_2 .pushed_stackerdb_chunks - .push(pushed_stackerdb_chunk_2.clone()); + .push(pushed_stackerdb_chunk_2); network_result_2 .uploaded_stackerdb_chunks - .push(uploaded_stackerdb_chunk_2.clone()); + .push(uploaded_stackerdb_chunk_2); network_result_2.synced_transactions.push(synced_tx2); let mut network_result_union = network_result_2.clone(); @@ -1658,7 +1644,7 @@ fn test_network_result_update() { }, }; - old.uploaded_stackerdb_chunks.push(old_chunk_1.clone()); + old.uploaded_stackerdb_chunks.push(old_chunk_1); // replaced new.uploaded_stackerdb_chunks.push(new_chunk_1.clone()); // included @@ -1666,7 +1652,7 @@ fn test_network_result_update() { assert_eq!( old.update(new).uploaded_stackerdb_chunks, - vec![new_chunk_1.clone(), new_chunk_2.clone()] + vec![new_chunk_1, new_chunk_2] ); // stackerdb pushed chunks get consolidated correctly @@ -1717,7 +1703,7 @@ fn test_network_result_update() { }, }; - old.pushed_stackerdb_chunks.push(old_chunk_1.clone()); + old.pushed_stackerdb_chunks.push(old_chunk_1); // replaced new.pushed_stackerdb_chunks.push(new_chunk_1.clone()); // included @@ -1725,7 +1711,7 @@ fn test_network_result_update() { assert_eq!( old.update(new).pushed_stackerdb_chunks, - vec![new_chunk_1.clone(), new_chunk_2.clone()] + vec![new_chunk_1, new_chunk_2] ); // nakamoto blocks obtained via download, upload, or pushed get consoldated @@ -1743,7 +1729,7 @@ fn test_network_result_update() { ); old.nakamoto_blocks.insert(nblk1.block_id(), nblk1.clone()); old.pushed_nakamoto_blocks.insert( - nk1.clone(), + nk1, vec![( vec![], NakamotoBlocksData { @@ -1768,7 +1754,7 @@ fn test_network_result_update() { let mut new_pushed = new.clone(); let mut new_uploaded = new.clone(); - let mut new_downloaded = new.clone(); + let mut new_downloaded = new; new_downloaded .nakamoto_blocks diff --git a/stackslib/src/net/tests/relay/epoch2x.rs b/stackslib/src/net/tests/relay/epoch2x.rs index f5599f2f60..2f301e0858 100644 --- a/stackslib/src/net/tests/relay/epoch2x.rs +++ b/stackslib/src/net/tests/relay/epoch2x.rs @@ -88,7 +88,7 @@ fn test_sample_neighbors() { 0 ); assert_eq!( - RelayerStats::sample_neighbors(empty_distribution.clone(), 10).len(), + RelayerStats::sample_neighbors(empty_distribution, 10).len(), 0 ); @@ -117,10 +117,9 @@ fn test_sample_neighbors() { assert_eq!(flat_partial_sample_set.len(), 5); - let flat_unit_sample_set: HashSet<_> = - RelayerStats::sample_neighbors(flat_distribution.clone(), 1) - .into_iter() - .collect(); + let flat_unit_sample_set: HashSet<_> = RelayerStats::sample_neighbors(flat_distribution, 1) + .into_iter() + .collect(); assert_eq!(flat_unit_sample_set.len(), 1); @@ -153,10 +152,9 @@ fn test_sample_neighbors() { assert_eq!(flat_partial_sample_set.len(), 5); - let flat_unit_sample_set: HashSet<_> = - RelayerStats::sample_neighbors(biased_distribution.clone(), 1) - .into_iter() - .collect(); + let flat_unit_sample_set: HashSet<_> = RelayerStats::sample_neighbors(biased_distribution, 1) + .into_iter() + .collect(); assert_eq!(flat_unit_sample_set.len(), 1); } @@ -238,7 +236,7 @@ fn test_relayer_merge_stats() { }; let mut rs = HashMap::new(); - rs.insert(na.clone(), relay_stats.clone()); + rs.insert(na.clone(), relay_stats); relayer_stats.merge_relay_stats(rs); assert_eq!(relayer_stats.relay_stats.len(), 1); @@ -256,7 +254,7 @@ fn test_relayer_merge_stats() { }; let mut rs = HashMap::new(); - rs.insert(na.clone(), relay_stats_2.clone()); + rs.insert(na.clone(), relay_stats_2); relayer_stats.merge_relay_stats(rs); assert_eq!(relayer_stats.relay_stats.len(), 1); @@ -275,7 +273,7 @@ fn test_relayer_merge_stats() { }; let mut rs = HashMap::new(); - rs.insert(na.clone(), relay_stats_3.clone()); + rs.insert(na.clone(), relay_stats_3); relayer_stats.merge_relay_stats(rs); assert_eq!(relayer_stats.relay_stats.len(), 1); @@ -488,7 +486,7 @@ fn test_relay_outbound_peer_rankings() { 4032, UrlString::try_from("http://foo.com").unwrap(), &[asn1, asn2], - &[n1.clone(), n2.clone(), n3.clone()], + &[n1, n2, n3], ) .unwrap(); @@ -764,7 +762,7 @@ fn push_message( } }; - match peer.network.relay_signed_message(dest, relay_msg.clone()) { + match peer.network.relay_signed_message(dest, relay_msg) { Ok(_) => { return true; } @@ -1182,7 +1180,7 @@ fn test_get_blocks_and_microblocks_2_peers_push_blocks_and_microblocks( Some(ref mut inv_state) => { if inv_state.get_stats(&peer_0_nk).is_none() { test_debug!("initialize inv statistics for peer 0 in peer 1"); - inv_state.add_peer(peer_0_nk.clone(), true); + inv_state.add_peer(peer_0_nk, true); } else { test_debug!("peer 1 has inv state for peer 0"); } @@ -1513,12 +1511,7 @@ fn make_test_smart_contract_transaction( let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, spending_account.as_transaction_auth().unwrap().into(), - TransactionPayload::new_smart_contract( - &name.to_string(), - &contract.to_string(), - None, - ) - .unwrap(), + TransactionPayload::new_smart_contract(name, contract, None).unwrap(), ); let chain_tip = @@ -1626,7 +1619,7 @@ fn test_get_blocks_and_microblocks_2_peers_push_transactions() { ]; peer_configs[0].initial_balances = initial_balances.clone(); - peer_configs[1].initial_balances = initial_balances.clone(); + peer_configs[1].initial_balances = initial_balances; let peer_0 = peer_configs[0].to_neighbor(); let peer_1 = peer_configs[1].to_neighbor(); @@ -2632,9 +2625,8 @@ pub fn make_contract_tx( let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, - spending_auth.clone(), - TransactionPayload::new_smart_contract(&name.to_string(), &contract.to_string(), None) - .unwrap(), + spending_auth, + TransactionPayload::new_smart_contract(name, contract, None).unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -2860,7 +2852,7 @@ fn process_new_blocks_rejects_problematic_asts() { let block_builder = StacksBlockBuilder::make_regtest_block_builder( &burnchain, &parent_tip, - vrf_proof.clone(), + vrf_proof, tip.total_burn, Hash160::from_node_public_key(&StacksPublicKey::from_private(&mblock_privk)), ) @@ -2870,7 +2862,7 @@ fn process_new_blocks_rejects_problematic_asts() { block_builder, chainstate, &sortdb.index_handle(&tip.sortition_id), - vec![coinbase_tx.clone()], + vec![coinbase_tx], ) .unwrap() .0; @@ -2879,7 +2871,7 @@ fn process_new_blocks_rejects_problematic_asts() { }, ); - let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops.clone()); + let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops); peer.process_stacks_epoch(&block, &consensus_hash, &[]); let tip = @@ -2950,7 +2942,7 @@ fn process_new_blocks_rejects_problematic_asts() { let block_builder = StacksBlockBuilder::make_regtest_block_builder( &burnchain, &parent_tip, - vrf_proof.clone(), + vrf_proof, tip.total_burn, Hash160::from_node_public_key(&StacksPublicKey::from_private(&mblock_privk)), ) @@ -2959,7 +2951,7 @@ fn process_new_blocks_rejects_problematic_asts() { block_builder, chainstate, &sortdb.index_handle(&tip.sortition_id), - vec![coinbase_tx.clone()], + vec![coinbase_tx], ) .unwrap(); @@ -3037,7 +3029,7 @@ fn process_new_blocks_rejects_problematic_asts() { ); let bad_mblock = microblocks.pop().unwrap(); - let (_, _, new_consensus_hash) = peer.next_burnchain_block(burn_ops.clone()); + let (_, _, new_consensus_hash) = peer.next_burnchain_block(burn_ops); peer.process_stacks_epoch(&bad_block, &new_consensus_hash, &[]); // stuff them all into each possible field of NetworkResult @@ -3080,13 +3072,13 @@ fn process_new_blocks_rejects_problematic_asts() { }), }, StacksMessage { - preamble: preamble.clone(), + preamble, relayers: vec![], payload: StacksMessageType::Transaction(bad_tx.clone()), }, ]; let mut unsolicited = HashMap::new(); - unsolicited.insert((1, nk.clone()), bad_msgs.clone()); + unsolicited.insert((1, nk), bad_msgs.clone()); let mut network_result = NetworkResult::new( peer.network.stacks_tip.block_id(), @@ -3127,11 +3119,9 @@ fn process_new_blocks_rejects_problematic_asts() { network_result .blocks .push((new_consensus_hash.clone(), bad_block.clone(), 123)); - network_result.confirmed_microblocks.push(( - new_consensus_hash.clone(), - vec![bad_mblock.clone()], - 234, - )); + network_result + .confirmed_microblocks + .push((new_consensus_hash.clone(), vec![bad_mblock], 234)); let mut sortdb = peer.sortdb.take().unwrap(); let (processed_blocks, processed_mblocks, relay_mblocks, bad_neighbors) = @@ -3303,7 +3293,7 @@ fn test_block_pay_to_contract_gated_at_v210() { // *now* it should succeed, since tenure 28 was in epoch 2.1 let (burn_ops, stacks_block, microblocks) = peer.make_tenure(&mut make_tenure); - let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops.clone()); + let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops); let sortdb = peer.sortdb.take().unwrap(); let mut node = peer.stacks_node.take().unwrap(); @@ -3483,7 +3473,7 @@ fn test_block_versioned_smart_contract_gated_at_v210() { // *now* it should succeed, since tenure 28 was in epoch 2.1 let (burn_ops, stacks_block, microblocks) = peer.make_tenure(&mut make_tenure); - let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops.clone()); + let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops); let sortdb = peer.sortdb.take().unwrap(); let mut node = peer.stacks_node.take().unwrap(); @@ -3700,7 +3690,7 @@ fn test_block_versioned_smart_contract_mempool_rejection_until_v210() { // *now* it should succeed, since tenure 28 was in epoch 2.1 let (burn_ops, stacks_block, microblocks) = peer.make_tenure(&mut make_tenure); - let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops.clone()); + let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops); let sortdb = peer.sortdb.take().unwrap(); let mut node = peer.stacks_node.take().unwrap(); diff --git a/stackslib/src/net/tests/relay/nakamoto.rs b/stackslib/src/net/tests/relay/nakamoto.rs index f52c59bfb5..d9d929826f 100644 --- a/stackslib/src/net/tests/relay/nakamoto.rs +++ b/stackslib/src/net/tests/relay/nakamoto.rs @@ -385,7 +385,7 @@ fn test_buffer_data_message() { ]]; let (mut peer, _followers) = - make_nakamoto_peers_from_invs(function_name!(), &observer, 10, 5, bitvecs.clone(), 1); + make_nakamoto_peers_from_invs(function_name!(), &observer, 10, 5, bitvecs, 1); let peer_nk = peer.to_neighbor().addr; let nakamoto_block = NakamotoBlock { @@ -501,7 +501,7 @@ fn test_buffer_data_message() { } assert!(!peer .network - .buffer_sortition_data_message(0, &peer_nk, blocks_available.clone())); + .buffer_sortition_data_message(0, &peer_nk, blocks_available)); for _ in 0..peer .network @@ -514,11 +514,9 @@ fn test_buffer_data_message() { microblocks_available.clone() )); } - assert!(!peer.network.buffer_sortition_data_message( - 0, - &peer_nk, - microblocks_available.clone() - )); + assert!(!peer + .network + .buffer_sortition_data_message(0, &peer_nk, microblocks_available)); for _ in 0..peer.network.connection_opts.max_buffered_blocks { assert!(peer @@ -527,7 +525,7 @@ fn test_buffer_data_message() { } assert!(!peer .network - .buffer_sortition_data_message(0, &peer_nk, block.clone())); + .buffer_sortition_data_message(0, &peer_nk, block)); for _ in 0..peer.network.connection_opts.max_buffered_microblocks { assert!(peer @@ -536,7 +534,7 @@ fn test_buffer_data_message() { } assert!(!peer .network - .buffer_sortition_data_message(0, &peer_nk, microblocks.clone())); + .buffer_sortition_data_message(0, &peer_nk, microblocks)); for _ in 0..peer.network.connection_opts.max_buffered_nakamoto_blocks { assert!(peer @@ -545,7 +543,7 @@ fn test_buffer_data_message() { } assert!(!peer .network - .buffer_sortition_data_message(0, &peer_nk, nakamoto_block.clone())); + .buffer_sortition_data_message(0, &peer_nk, nakamoto_block)); for _ in 0..peer.network.connection_opts.max_buffered_stackerdb_chunks { assert!(peer @@ -554,7 +552,7 @@ fn test_buffer_data_message() { } assert!(!peer .network - .buffer_stacks_data_message(0, &peer_nk, stackerdb_chunk.clone())); + .buffer_stacks_data_message(0, &peer_nk, stackerdb_chunk)); } /// Verify that Nakmaoto blocks whose sortitions are known will *not* be buffered, but instead @@ -567,14 +565,8 @@ fn test_no_buffer_ready_nakamoto_blocks() { ]]; let rc_len = 10u64; - let (peer, mut followers) = make_nakamoto_peers_from_invs( - function_name!(), - &observer, - rc_len as u32, - 5, - bitvecs.clone(), - 1, - ); + let (peer, mut followers) = + make_nakamoto_peers_from_invs(function_name!(), &observer, rc_len as u32, 5, bitvecs, 1); let peer_nk = peer.to_neighbor().addr; let mut follower = followers.pop().unwrap(); @@ -824,14 +816,8 @@ fn test_buffer_nonready_nakamoto_blocks() { ]]; let rc_len = 10u64; - let (peer, mut followers) = make_nakamoto_peers_from_invs( - function_name!(), - &observer, - rc_len as u32, - 5, - bitvecs.clone(), - 1, - ); + let (peer, mut followers) = + make_nakamoto_peers_from_invs(function_name!(), &observer, rc_len as u32, 5, bitvecs, 1); let peer_nk = peer.to_neighbor().addr; let mut follower = followers.pop().unwrap(); @@ -1069,14 +1055,8 @@ fn test_nakamoto_boot_node_from_block_push() { ]; let rc_len = 10u64; - let (peer, mut followers) = make_nakamoto_peers_from_invs( - function_name!(), - &observer, - rc_len as u32, - 5, - bitvecs.clone(), - 1, - ); + let (peer, mut followers) = + make_nakamoto_peers_from_invs(function_name!(), &observer, rc_len as u32, 5, bitvecs, 1); let peer_nk = peer.to_neighbor().addr; let mut follower = followers.pop().unwrap(); diff --git a/stackslib/src/util_lib/strings.rs b/stackslib/src/util_lib/strings.rs index f3c8b444e4..696cdd907c 100644 --- a/stackslib/src/util_lib/strings.rs +++ b/stackslib/src/util_lib/strings.rs @@ -336,7 +336,7 @@ mod test { assert_eq!(stacks_str[..], s.as_bytes().to_vec()[..]); let s2 = stacks_str.to_string(); - assert_eq!(s2.to_string(), s.to_string()); + assert_eq!(s2, s.to_string()); // stacks strings have a 4-byte length prefix let mut b = vec![]; diff --git a/testnet/stacks-node/src/burnchains/bitcoin_regtest_controller.rs b/testnet/stacks-node/src/burnchains/bitcoin_regtest_controller.rs index ce1728005a..6dbb43c1cc 100644 --- a/testnet/stacks-node/src/burnchains/bitcoin_regtest_controller.rs +++ b/testnet/stacks-node/src/burnchains/bitcoin_regtest_controller.rs @@ -664,7 +664,7 @@ impl BitcoinRegtestController { params: vec![ min_conf.into(), max_conf.into(), - filter_addresses.clone().into(), + filter_addresses.into(), true.into(), json!({ "minimumAmount": minimum_amount, "maximumCount": self.config.burnchain.max_unspent_utxos }), ], @@ -2915,7 +2915,7 @@ mod tests { // test send_block_commit_operation_at_burn_height() let utxo_set = UTXOSet { bhh: BurnchainHeaderHash([0x01; 32]), - utxos: spend_utxos.clone(), + utxos: spend_utxos, }; let commit_op = LeaderBlockCommitOp { @@ -2985,6 +2985,6 @@ mod tests { debug!("{}", &SerializedTx::new(block_commit.clone()).to_hex()); assert_eq!(block_commit.output[3].value, 323507); - assert_eq!(&SerializedTx::new(block_commit.clone()).to_hex(), "0100000002eeda098987728e4a2e21b34b74000dcb0bd0e4d20e55735492ec3cba3afbead3030000006a4730440220558286e20e10ce31537f0625dae5cc62fac7961b9d2cf272c990de96323d7e2502202255adbea3d2e0509b80c5d8a3a4fe6397a87bcf18da1852740d5267d89a0cb20121035379aa40c02890d253cfa577964116eb5295570ae9f7287cbae5f2585f5b2c7cfdffffff243b0b329a5889ab8801b315eea19810848d4c2133e0245671cc984a2d2f1301000000006a47304402206d9f8de107f9e1eb15aafac66c2bb34331a7523260b30e18779257e367048d34022013c7dabb32a5c281aa00d405e2ccbd00f34f03a65b2336553a4acd6c52c251ef0121035379aa40c02890d253cfa577964116eb5295570ae9f7287cbae5f2585f5b2c7cfdffffff040000000000000000536a4c5054335be88c3d30cb59a142f83de3b27f897a43bbb0f13316911bb98a3229973dae32afd5b9f21bc1f40f24e2c101ecd13c55b8619e5e03dad81de2c62a1cc1d8c1b375000008a300010000059800015a10270000000000001976a914000000000000000000000000000000000000000088ac10270000000000001976a914000000000000000000000000000000000000000088acb3ef0400000000001976a9141dc27eba0247f8cc9575e7d45e50a0bc7e72427d88ac00000000"); + assert_eq!(&SerializedTx::new(block_commit).to_hex(), "0100000002eeda098987728e4a2e21b34b74000dcb0bd0e4d20e55735492ec3cba3afbead3030000006a4730440220558286e20e10ce31537f0625dae5cc62fac7961b9d2cf272c990de96323d7e2502202255adbea3d2e0509b80c5d8a3a4fe6397a87bcf18da1852740d5267d89a0cb20121035379aa40c02890d253cfa577964116eb5295570ae9f7287cbae5f2585f5b2c7cfdffffff243b0b329a5889ab8801b315eea19810848d4c2133e0245671cc984a2d2f1301000000006a47304402206d9f8de107f9e1eb15aafac66c2bb34331a7523260b30e18779257e367048d34022013c7dabb32a5c281aa00d405e2ccbd00f34f03a65b2336553a4acd6c52c251ef0121035379aa40c02890d253cfa577964116eb5295570ae9f7287cbae5f2585f5b2c7cfdffffff040000000000000000536a4c5054335be88c3d30cb59a142f83de3b27f897a43bbb0f13316911bb98a3229973dae32afd5b9f21bc1f40f24e2c101ecd13c55b8619e5e03dad81de2c62a1cc1d8c1b375000008a300010000059800015a10270000000000001976a914000000000000000000000000000000000000000088ac10270000000000001976a914000000000000000000000000000000000000000088acb3ef0400000000001976a9141dc27eba0247f8cc9575e7d45e50a0bc7e72427d88ac00000000"); } } diff --git a/testnet/stacks-node/src/event_dispatcher.rs b/testnet/stacks-node/src/event_dispatcher.rs index da1668cdd2..9a32c48fd6 100644 --- a/testnet/stacks-node/src/event_dispatcher.rs +++ b/testnet/stacks-node/src/event_dispatcher.rs @@ -1842,7 +1842,7 @@ mod test { txs: vec![], }; let mut metadata = StacksHeaderInfo::regtest_genesis(); - metadata.anchored_header = StacksBlockHeaderTypes::Nakamoto(block_header.clone()); + metadata.anchored_header = StacksBlockHeaderTypes::Nakamoto(block_header); let receipts = vec![]; let parent_index_hash = StacksBlockId([0; 32]); let winner_txid = Txid([0; 32]); @@ -1872,7 +1872,7 @@ mod test { &mblock_confirmed_consumed, &pox_constants, &None, - &Some(signer_bitvec.clone()), + &Some(signer_bitvec), block_timestamp, coinbase_height, ); @@ -2127,7 +2127,7 @@ mod test { let endpoint = server.url().strip_prefix("http://").unwrap().to_string(); let timeout = Duration::from_secs(5); - let observer = EventObserver::new(Some(working_dir.clone()), endpoint, timeout); + let observer = EventObserver::new(Some(working_dir), endpoint, timeout); // Call send_payload observer.send_payload(&payload, "/test"); @@ -2377,11 +2377,7 @@ mod test { } }); - let observer = EventObserver::new( - Some(working_dir.clone()), - format!("127.0.0.1:{port}"), - timeout, - ); + let observer = EventObserver::new(Some(working_dir), format!("127.0.0.1:{port}"), timeout); let payload = json!({"key": "value"}); let payload2 = json!({"key": "value2"}); diff --git a/testnet/stacks-node/src/tests/epoch_205.rs b/testnet/stacks-node/src/tests/epoch_205.rs index e555b6a8aa..4505ef8da3 100644 --- a/testnet/stacks-node/src/tests/epoch_205.rs +++ b/testnet/stacks-node/src/tests/epoch_205.rs @@ -63,7 +63,7 @@ fn test_exact_block_costs() { conf.node.microblock_frequency = 500; conf.initial_balances.push(InitialBalance { - address: spender_addr.clone(), + address: spender_addr, amount: 200_000_000, }); @@ -306,7 +306,7 @@ fn test_dynamic_db_method_costs() { conf.burnchain.epochs = Some(epochs); conf.initial_balances.push(InitialBalance { - address: spender_addr.clone(), + address: spender_addr, amount: 200_000_000, }); @@ -766,15 +766,15 @@ fn test_cost_limit_switch_version205() { conf.burnchain.pox_2_activation = Some(10_003); conf.initial_balances.push(InitialBalance { - address: alice_pd.clone(), + address: alice_pd, amount: 10492300000, }); conf.initial_balances.push(InitialBalance { - address: bob_pd.clone(), + address: bob_pd, amount: 10492300000, }); conf.initial_balances.push(InitialBalance { - address: creator_pd.clone(), + address: creator_pd, amount: 10492300000, }); diff --git a/testnet/stacks-node/src/tests/epoch_21.rs b/testnet/stacks-node/src/tests/epoch_21.rs index d50cac0117..c9e706779d 100644 --- a/testnet/stacks-node/src/tests/epoch_21.rs +++ b/testnet/stacks-node/src/tests/epoch_21.rs @@ -100,7 +100,7 @@ fn advance_to_2_1( u32::MAX, u32::MAX, )); - burnchain_config.pox_constants = pox_constants.clone(); + burnchain_config.pox_constants = pox_constants; let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller @@ -165,7 +165,7 @@ fn advance_to_2_1( let channel = run_loop.get_coordinator_channel().unwrap(); - let runloop_burnchain = burnchain_config.clone(); + let runloop_burnchain = burnchain_config; thread::spawn(move || run_loop.start(Some(runloop_burnchain), 0)); // give the run loop some time to start up! @@ -289,7 +289,7 @@ fn transition_adds_burn_block_height() { let (conf, _btcd_controller, mut btc_regtest_controller, blocks_processed, coord_channel) = advance_to_2_1( vec![InitialBalance { - address: spender_addr.clone(), + address: spender_addr, amount: 200_000_000, }], None, @@ -599,7 +599,7 @@ fn transition_fixes_bitcoin_rigidity() { u32::MAX, u32::MAX, ); - burnchain_config.pox_constants = pox_constants.clone(); + burnchain_config.pox_constants = pox_constants; let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller @@ -625,7 +625,7 @@ fn transition_fixes_bitcoin_rigidity() { let channel = run_loop.get_coordinator_channel().unwrap(); - let runloop_burnchain = burnchain_config.clone(); + let runloop_burnchain = burnchain_config; thread::spawn(move || run_loop.start(Some(runloop_burnchain), 0)); // give the run loop some time to start up! @@ -1372,7 +1372,7 @@ fn transition_adds_mining_from_segwit() { } let (conf, _btcd_controller, mut btc_regtest_controller, blocks_processed, _coord_channel) = - advance_to_2_1(initial_balances, None, Some(pox_constants.clone()), true); + advance_to_2_1(initial_balances, None, Some(pox_constants), true); let utxos = btc_regtest_controller .get_all_utxos(&Secp256k1PublicKey::from_hex(MINER_BURN_PUBLIC_KEY).unwrap()); @@ -1510,7 +1510,7 @@ fn transition_removes_pox_sunset() { u32::MAX, u32::MAX, ); - burnchain_config.pox_constants = pox_constants.clone(); + burnchain_config.pox_constants = pox_constants; let mut btc_regtest_controller = BitcoinRegtestController::with_burnchain( conf.clone(), @@ -1776,7 +1776,7 @@ fn transition_empty_blocks() { u32::MAX, u32::MAX, ); - burnchain_config.pox_constants = pox_constants.clone(); + burnchain_config.pox_constants = pox_constants; let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller @@ -1800,7 +1800,7 @@ fn transition_empty_blocks() { let channel = run_loop.get_coordinator_channel().unwrap(); - let runloop_burnchain_config = burnchain_config.clone(); + let runloop_burnchain_config = burnchain_config; thread::spawn(move || run_loop.start(Some(runloop_burnchain_config), 0)); // give the run loop some time to start up! @@ -4582,7 +4582,7 @@ fn trait_invocation_cross_epoch() { let (mut conf, _) = neon_integration_test_conf(); let mut initial_balances = vec![InitialBalance { - address: spender_addr.clone(), + address: spender_addr, amount: 200_000_000, }]; conf.initial_balances.append(&mut initial_balances); @@ -4611,7 +4611,7 @@ fn trait_invocation_cross_epoch() { u32::MAX, u32::MAX, ); - burnchain_config.pox_constants = pox_constants.clone(); + burnchain_config.pox_constants = pox_constants; let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller @@ -4636,7 +4636,7 @@ fn trait_invocation_cross_epoch() { let blocks_processed = run_loop.get_blocks_processed_arc(); let channel = run_loop.get_coordinator_channel().unwrap(); - let runloop_burnchain = burnchain_config.clone(); + let runloop_burnchain = burnchain_config; thread::spawn(move || run_loop.start(Some(runloop_burnchain), 0)); // give the run loop some time to start up! @@ -4745,12 +4745,12 @@ fn trait_invocation_cross_epoch() { } let interesting_txids = [ - invoke_txid.clone(), - invoke_1_txid.clone(), - invoke_2_txid.clone(), - use_txid.clone(), - impl_txid.clone(), - trait_txid.clone(), + invoke_txid, + invoke_1_txid, + invoke_2_txid, + use_txid, + impl_txid, + trait_txid, ]; let blocks = test_observer::get_blocks(); @@ -4817,7 +4817,7 @@ fn test_v1_unlock_height_with_current_stackers() { let mut initial_balances = vec![]; initial_balances.push(InitialBalance { - address: spender_addr.clone(), + address: spender_addr, amount: stacked + 100_000, }); @@ -4874,7 +4874,7 @@ fn test_v1_unlock_height_with_current_stackers() { u32::MAX, u32::MAX, ); - burnchain_config.pox_constants = pox_constants.clone(); + burnchain_config.pox_constants = pox_constants; let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller @@ -5070,7 +5070,7 @@ fn test_v1_unlock_height_with_delay_and_current_stackers() { let mut initial_balances = vec![]; initial_balances.push(InitialBalance { - address: spender_addr.clone(), + address: spender_addr, amount: stacked + 100_000, }); @@ -5127,7 +5127,7 @@ fn test_v1_unlock_height_with_delay_and_current_stackers() { u32::MAX, u32::MAX, ); - burnchain_config.pox_constants = pox_constants.clone(); + burnchain_config.pox_constants = pox_constants; let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller diff --git a/testnet/stacks-node/src/tests/epoch_22.rs b/testnet/stacks-node/src/tests/epoch_22.rs index 493fb36fcd..3fd25800e1 100644 --- a/testnet/stacks-node/src/tests/epoch_22.rs +++ b/testnet/stacks-node/src/tests/epoch_22.rs @@ -76,14 +76,14 @@ fn disable_pox() { }); initial_balances.push(InitialBalance { - address: spender_2_addr.clone(), + address: spender_2_addr, amount: stacked + 100_000, }); // // create a third initial balance so that there's more liquid ustx than the stacked amount bug. // // otherwise, it surfaces the DoS vector. initial_balances.push(InitialBalance { - address: spender_3_addr.clone(), + address: spender_3_addr, amount: stacked + 100_000, }); @@ -220,7 +220,7 @@ fn disable_pox() { "stack-stx", &[ Value::UInt(stacked.into()), - pox_addr_tuple_1.clone(), + pox_addr_tuple_1, Value::UInt(sort_height as u128), Value::UInt(12), ], @@ -269,7 +269,7 @@ fn disable_pox() { "stack-stx", &[ Value::UInt(stacked.into()), - pox_addr_tuple_2.clone(), + pox_addr_tuple_2, Value::UInt(sort_height as u128), Value::UInt(12), ], @@ -288,7 +288,7 @@ fn disable_pox() { "stack-stx", &[ Value::UInt(stacked.into()), - pox_addr_tuple_3.clone(), + pox_addr_tuple_3, Value::UInt(sort_height as u128), Value::UInt(10), ], @@ -474,7 +474,7 @@ fn disable_pox() { ), ( 23u64, - HashMap::from([(pox_addr_1.clone(), 13u64), (burn_pox_addr.clone(), 1)]), + HashMap::from([(pox_addr_1, 13u64), (burn_pox_addr.clone(), 1)]), ), // cycle 24 is the first 2.1, it should have pox_2 and pox_3 with equal // slots (because increase hasn't gone into effect yet) and 2 burn slots @@ -491,14 +491,14 @@ fn disable_pox() { ( 25, HashMap::from([ - (pox_addr_2.clone(), 9u64), - (pox_addr_3.clone(), 4), + (pox_addr_2, 9u64), + (pox_addr_3, 4), (burn_pox_addr.clone(), 1), ]), ), // Epoch 2.2 has started, so the reward set should be all burns. (26, HashMap::from([(burn_pox_addr.clone(), 14)])), - (27, HashMap::from([(burn_pox_addr.clone(), 14)])), + (27, HashMap::from([(burn_pox_addr, 14)])), ]); for reward_cycle in reward_cycle_min..(reward_cycle_max + 1) { @@ -742,7 +742,7 @@ fn pox_2_unlock_all() { "stack-stx", &[ Value::UInt(stacked.into()), - pox_addr_tuple_1.clone(), + pox_addr_tuple_1, Value::UInt(sort_height as u128), Value::UInt(12), ], @@ -803,7 +803,7 @@ fn pox_2_unlock_all() { "stack-stx", &[ Value::UInt(stacked.into()), - pox_addr_tuple_2.clone(), + pox_addr_tuple_2, Value::UInt(sort_height as u128), Value::UInt(12), ], @@ -823,7 +823,7 @@ fn pox_2_unlock_all() { "stack-stx", &[ Value::UInt(stacked.into()), - pox_addr_tuple_3.clone(), + pox_addr_tuple_3, Value::UInt(sort_height as u128), Value::UInt(10), ], @@ -1132,19 +1132,16 @@ fn pox_2_unlock_all() { let expected_slots = HashMap::from([ (42u64, HashMap::from([(pox_addr_1.clone(), 4u64)])), (43, HashMap::from([(pox_addr_1.clone(), 4)])), - (44, HashMap::from([(pox_addr_1.clone(), 4)])), + (44, HashMap::from([(pox_addr_1, 4)])), // cycle 45 is the first 2.1, and in the setup of this test, there's not // enough time for the stackers to begin in this cycle (45, HashMap::from([(burn_pox_addr.clone(), 4)])), (46, HashMap::from([(burn_pox_addr.clone(), 4)])), - ( - 47, - HashMap::from([(pox_addr_2.clone(), 2), (pox_addr_3.clone(), 2)]), - ), + (47, HashMap::from([(pox_addr_2, 2), (pox_addr_3, 2)])), // Now 2.2 is active, everything should be a burn. (48, HashMap::from([(burn_pox_addr.clone(), 4)])), (49, HashMap::from([(burn_pox_addr.clone(), 4)])), - (50, HashMap::from([(burn_pox_addr.clone(), 4)])), + (50, HashMap::from([(burn_pox_addr, 4)])), ]); for reward_cycle in reward_cycle_min..(reward_cycle_max + 1) { diff --git a/testnet/stacks-node/src/tests/epoch_23.rs b/testnet/stacks-node/src/tests/epoch_23.rs index 085e5a49cb..c95d59f797 100644 --- a/testnet/stacks-node/src/tests/epoch_23.rs +++ b/testnet/stacks-node/src/tests/epoch_23.rs @@ -130,7 +130,7 @@ fn trait_invocation_behavior() { u32::MAX, u32::MAX, ); - burnchain_config.pox_constants = pox_constants.clone(); + burnchain_config.pox_constants = pox_constants; let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller @@ -151,7 +151,7 @@ fn trait_invocation_behavior() { eprintln!("Chain bootstrapped..."); let mut run_loop = neon::RunLoop::new(conf.clone()); - let runloop_burnchain = burnchain_config.clone(); + let runloop_burnchain = burnchain_config; let blocks_processed = run_loop.get_blocks_processed_arc(); @@ -496,7 +496,7 @@ fn trait_invocation_behavior() { &contract_addr, "invoke-simple", "invocation-2", - &[Value::Principal(impl_contract_id.clone().into())], + &[Value::Principal(impl_contract_id.into())], ); let expected_good_23_2_nonce = spender_nonce; spender_nonce += 1; diff --git a/testnet/stacks-node/src/tests/epoch_24.rs b/testnet/stacks-node/src/tests/epoch_24.rs index 8780d08012..b23bc8bc91 100644 --- a/testnet/stacks-node/src/tests/epoch_24.rs +++ b/testnet/stacks-node/src/tests/epoch_24.rs @@ -102,7 +102,7 @@ fn fix_to_pox_contract() { }); initial_balances.push(InitialBalance { - address: spender_2_addr.clone(), + address: spender_2_addr, amount: stacked + 100_000, }); @@ -243,7 +243,7 @@ fn fix_to_pox_contract() { "stack-stx", &[ Value::UInt(stacked.into()), - pox_addr_tuple_1.clone(), + pox_addr_tuple_1, Value::UInt(sort_height as u128), Value::UInt(12), ], @@ -393,7 +393,7 @@ fn fix_to_pox_contract() { "stack-stx", &[ Value::UInt(stacked.into()), - pox_addr_tuple_2.clone(), + pox_addr_tuple_2, Value::UInt(sort_height as u128), Value::UInt(12), ], @@ -413,7 +413,7 @@ fn fix_to_pox_contract() { "stack-stx", &[ Value::UInt(stacked.into()), - pox_addr_tuple_3.clone(), + pox_addr_tuple_3, Value::UInt(sort_height as u128), Value::UInt(10), ], @@ -570,7 +570,7 @@ fn fix_to_pox_contract() { ), ( 23u64, - HashMap::from([(pox_addr_1.clone(), 13u64), (burn_pox_addr.clone(), 1)]), + HashMap::from([(pox_addr_1, 13u64), (burn_pox_addr.clone(), 1)]), ), // cycle 24 is the first 2.1, it should have pox_2 and 1 burn slot ( @@ -600,11 +600,7 @@ fn fix_to_pox_contract() { // because pox-3 fixes the total-locked bug ( 30, - HashMap::from([ - (pox_addr_2.clone(), 7u64), - (pox_addr_3.clone(), 6), - (burn_pox_addr.clone(), 1), - ]), + HashMap::from([(pox_addr_2, 7u64), (pox_addr_3, 6), (burn_pox_addr, 1)]), ), ]); @@ -709,12 +705,12 @@ fn verify_auto_unlock_behavior() { let mut initial_balances = vec![]; initial_balances.push(InitialBalance { - address: spender_addr.clone(), + address: spender_addr, amount: first_stacked_init + first_stacked_incr + 100_000, }); initial_balances.push(InitialBalance { - address: spender_2_addr.clone(), + address: spender_2_addr, amount: small_stacked + 100_000, }); @@ -874,7 +870,7 @@ fn verify_auto_unlock_behavior() { "stack-stx", &[ Value::UInt(first_stacked_init.into()), - pox_addr_tuple_1.clone(), + pox_addr_tuple_1, Value::UInt(sort_height as u128), Value::UInt(12), ], @@ -1010,7 +1006,7 @@ fn verify_auto_unlock_behavior() { "stack-stx", &[ Value::UInt(first_stacked_init.into()), - pox_addr_tuple_2.clone(), + pox_addr_tuple_2, Value::UInt(sort_height as u128), Value::UInt(12), ], @@ -1030,7 +1026,7 @@ fn verify_auto_unlock_behavior() { "stack-stx", &[ Value::UInt(small_stacked.into()), - pox_addr_tuple_3.clone(), + pox_addr_tuple_3, Value::UInt(sort_height as u128), Value::UInt(10), ], @@ -1274,7 +1270,7 @@ fn verify_auto_unlock_behavior() { ), ( 23u64, - HashMap::from([(pox_addr_1.clone(), 13u64), (burn_pox_addr.clone(), 1)]), + HashMap::from([(pox_addr_1, 13u64), (burn_pox_addr.clone(), 1)]), ), // cycle 24 is the first 2.1, it should have pox_2 and 1 burn slot ( @@ -1296,16 +1292,13 @@ fn verify_auto_unlock_behavior() { 29, HashMap::from([ (pox_addr_2.clone(), 12u64), - (pox_addr_3.clone(), 1), + (pox_addr_3, 1), (burn_pox_addr.clone(), 1), ]), ), // stack-increase has been invoked, which causes spender_addr_2 to be below the stacking // minimum, and thus they have zero reward addresses in reward cycle 30. - ( - 30, - HashMap::from([(pox_addr_2.clone(), 13u64), (burn_pox_addr.clone(), 1)]), - ), + (30, HashMap::from([(pox_addr_2, 13u64), (burn_pox_addr, 1)])), ]); for reward_cycle in reward_cycle_min..(reward_cycle_max + 1) { diff --git a/testnet/stacks-node/src/tests/epoch_25.rs b/testnet/stacks-node/src/tests/epoch_25.rs index e840b0fcd3..7c6fb7a707 100644 --- a/testnet/stacks-node/src/tests/epoch_25.rs +++ b/testnet/stacks-node/src/tests/epoch_25.rs @@ -118,7 +118,7 @@ fn microblocks_disabled() { u32::MAX, pox_3_activation_height as u32, ); - burnchain_config.pox_constants = pox_constants.clone(); + burnchain_config.pox_constants = pox_constants; let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller @@ -139,7 +139,7 @@ fn microblocks_disabled() { eprintln!("Chain bootstrapped..."); let mut run_loop = neon::RunLoop::new(conf.clone()); - let runloop_burnchain = burnchain_config.clone(); + let runloop_burnchain = burnchain_config; let blocks_processed = run_loop.get_blocks_processed_arc(); diff --git a/testnet/stacks-node/src/tests/integrations.rs b/testnet/stacks-node/src/tests/integrations.rs index 7f893835d1..d64a211a66 100644 --- a/testnet/stacks-node/src/tests/integrations.rs +++ b/testnet/stacks-node/src/tests/integrations.rs @@ -831,7 +831,7 @@ fn integration_test_get_info() { let res = client.post(&path) .header("Content-Type", "application/octet-stream") - .body(tx_xfer_invalid.clone()) + .body(tx_xfer_invalid) .send() .unwrap().json::().unwrap(); @@ -852,7 +852,7 @@ fn integration_test_get_info() { let res = client.post(&path) .header("Content-Type", "application/octet-stream") - .body(tx_xfer_invalid.clone()) + .body(tx_xfer_invalid) .send() .unwrap() .json::() @@ -928,7 +928,7 @@ fn integration_test_get_info() { eprintln!("Test: POST {path}"); - let body = json!({ "transaction_payload": payload_hex.clone() }); + let body = json!({ "transaction_payload": payload_hex }); let res = client.post(&path) .json(&body) @@ -979,7 +979,7 @@ fn integration_test_get_info() { eprintln!("Test: POST {path}"); - let body = json!({ "transaction_payload": payload_hex.clone() }); + let body = json!({ "transaction_payload": payload_hex }); let res = client.post(&path) .json(&body) @@ -1029,7 +1029,7 @@ fn integration_test_get_info() { let payload_hex = to_hex(&payload_data); let estimated_len = 1550; - let body = json!({ "transaction_payload": payload_hex.clone(), "estimated_len": estimated_len }); + let body = json!({ "transaction_payload": payload_hex, "estimated_len": estimated_len }); info!("POST body\n {body}"); let res = client.post(&path) @@ -1255,7 +1255,7 @@ fn contract_stx_transfer() { 3, 190, CHAIN_ID_TESTNET, - &contract_identifier.clone().into(), + &contract_identifier.into(), 1000, ); let xfer_to_contract = @@ -2263,7 +2263,7 @@ fn mempool_errors() { let res = client .post(&path) .header("Content-Type", "application/octet-stream") - .body(tx_xfer_invalid.clone()) + .body(tx_xfer_invalid) .send() .unwrap() .json::() @@ -2305,7 +2305,7 @@ fn mempool_errors() { let res = client .post(&path) .header("Content-Type", "application/octet-stream") - .body(tx_xfer_invalid.clone()) + .body(tx_xfer_invalid) .send() .unwrap() .json::() @@ -2339,7 +2339,7 @@ fn mempool_errors() { let res = client .post(&path) .header("Content-Type", "application/octet-stream") - .body(tx_xfer_invalid.clone()) + .body(tx_xfer_invalid) .send() .unwrap() .json::() @@ -2384,7 +2384,7 @@ fn mempool_errors() { let res = client .post(&path) .header("Content-Type", "application/octet-stream") - .body(tx_xfer_invalid.clone()) + .body(tx_xfer_invalid) .send() .unwrap() .json::() diff --git a/testnet/stacks-node/src/tests/mempool.rs b/testnet/stacks-node/src/tests/mempool.rs index 58a526ba30..4463d9e2d4 100644 --- a/testnet/stacks-node/src/tests/mempool.rs +++ b/testnet/stacks-node/src/tests/mempool.rs @@ -498,7 +498,7 @@ fn mempool_setup_chainstate() { // tx version must be testnet let contract_princ = PrincipalData::from(contract_addr); let payload = TransactionPayload::TokenTransfer( - contract_princ.clone(), + contract_princ, 1000, TokenTransferMemo([0; 34]), ); @@ -818,7 +818,7 @@ fn mempool_setup_chainstate() { let mut conf = super::new_test_conf(); conf.node.seed = vec![0x00]; - let keychain = Keychain::default(conf.node.seed.clone()); + let keychain = Keychain::default(conf.node.seed); for i in 0..4 { let microblock_secret_key = keychain.get_microblock_key(1 + i); let mut microblock_pubkey = @@ -878,7 +878,7 @@ fn mempool_setup_chainstate() { StandardPrincipalData::from(contract_addr), ContractName::from("implement-trait-contract"), ); - let contract_principal = PrincipalData::Contract(contract_id.clone()); + let contract_principal = PrincipalData::Contract(contract_id); let tx_bytes = make_contract_call( &contract_sk, @@ -906,7 +906,7 @@ fn mempool_setup_chainstate() { StandardPrincipalData::from(contract_addr), ContractName::from("bad-trait-contract"), ); - let contract_principal = PrincipalData::Contract(contract_id.clone()); + let contract_principal = PrincipalData::Contract(contract_id); let tx_bytes = make_contract_call( &contract_sk, diff --git a/testnet/stacks-node/src/tests/mod.rs b/testnet/stacks-node/src/tests/mod.rs index 6f02ecf138..9b9753fd1b 100644 --- a/testnet/stacks-node/src/tests/mod.rs +++ b/testnet/stacks-node/src/tests/mod.rs @@ -1339,7 +1339,7 @@ fn test_inner_pick_best_tip() { }, ]; - let sorted_candidates = BlockMinerThread::sort_and_populate_candidates(candidates.clone()); + let sorted_candidates = BlockMinerThread::sort_and_populate_candidates(candidates); assert_eq!( None, BlockMinerThread::inner_pick_best_tip(vec![], HashMap::new()) diff --git a/testnet/stacks-node/src/tests/nakamoto_integrations.rs b/testnet/stacks-node/src/tests/nakamoto_integrations.rs index 3edc88c96b..e3fffd9c6e 100644 --- a/testnet/stacks-node/src/tests/nakamoto_integrations.rs +++ b/testnet/stacks-node/src/tests/nakamoto_integrations.rs @@ -1436,7 +1436,7 @@ fn simple_neon_integration() { let (mut naka_conf, _miner_account) = naka_neon_integration_conf(None); let prom_bind = "127.0.0.1:6000".to_string(); - naka_conf.node.prometheus_bind = Some(prom_bind.clone()); + naka_conf.node.prometheus_bind = Some(prom_bind); naka_conf.miner.wait_on_interim_blocks = Duration::from_secs(5); let sender_sk = Secp256k1PrivateKey::new(); // setup sender + recipient for a test stx transfer @@ -1563,7 +1563,7 @@ fn simple_neon_integration() { &sortdb, &tip.consensus_hash, &tip.anchored_header.block_hash(), - transfer_tx.clone(), + transfer_tx, &ExecutionCost::max_value(), &StacksEpochId::Epoch30, ) @@ -1676,7 +1676,7 @@ fn flash_blocks_on_epoch_3() { let (mut naka_conf, _miner_account) = naka_neon_integration_conf(None); let prom_bind = "127.0.0.1:6000".to_string(); - naka_conf.node.prometheus_bind = Some(prom_bind.clone()); + naka_conf.node.prometheus_bind = Some(prom_bind); naka_conf.miner.wait_on_interim_blocks = Duration::from_secs(1); let sender_sk = Secp256k1PrivateKey::new(); // setup sender + recipient for a test stx transfer @@ -1820,7 +1820,7 @@ fn flash_blocks_on_epoch_3() { &sortdb, &tip.consensus_hash, &tip.anchored_header.block_hash(), - transfer_tx.clone(), + transfer_tx, &ExecutionCost::max_value(), &StacksEpochId::Epoch30, ) @@ -2441,7 +2441,7 @@ fn correct_burn_outs() { next_block_and_wait(&mut btc_regtest_controller, &blocks_processed); let http_origin = format!("http://{}", &naka_conf.node.rpc_bind); - let stacker_accounts_copy = stacker_accounts.clone(); + let stacker_accounts_copy = stacker_accounts; let _stacker_thread = thread::Builder::new() .name("stacker".into()) .spawn(move || loop { @@ -4487,7 +4487,7 @@ fn burn_ops_integration_test() { "pox-4", "set-signer-key-authorization", &[ - clarity::vm::Value::Tuple(pox_addr.clone().as_clarity_tuple().unwrap()), + clarity::vm::Value::Tuple(pox_addr.as_clarity_tuple().unwrap()), clarity::vm::Value::UInt(lock_period.into()), clarity::vm::Value::UInt(reward_cycle.into()), clarity::vm::Value::string_ascii_from_bytes(topic.get_name_str().into()).unwrap(), @@ -5669,7 +5669,7 @@ fn nakamoto_attempt_time() { let mut signers = TestSigners::default(); let (mut naka_conf, _miner_account) = naka_neon_integration_conf(None); let password = "12345".to_string(); - naka_conf.connection_options.auth_token = Some(password.clone()); + naka_conf.connection_options.auth_token = Some(password); // Use fixed timing params for this test let nakamoto_attempt_time_ms = 20_000; naka_conf.miner.nakamoto_attempt_time_ms = nakamoto_attempt_time_ms; @@ -6262,7 +6262,7 @@ fn signer_chainstate() { let (mut naka_conf, _miner_account) = naka_neon_integration_conf(None); let prom_bind = "127.0.0.1:6000".to_string(); let http_origin = format!("http://{}", &naka_conf.node.rpc_bind); - naka_conf.node.prometheus_bind = Some(prom_bind.clone()); + naka_conf.node.prometheus_bind = Some(prom_bind); naka_conf.miner.wait_on_interim_blocks = Duration::from_secs(1); let sender_sk = Secp256k1PrivateKey::new(); // setup sender + recipient for a test stx transfer @@ -6852,7 +6852,7 @@ fn continue_tenure_extend() { let mut signers = TestSigners::default(); let (mut naka_conf, _miner_account) = naka_neon_integration_conf(None); let prom_bind = "127.0.0.1:6000".to_string(); - naka_conf.node.prometheus_bind = Some(prom_bind.clone()); + naka_conf.node.prometheus_bind = Some(prom_bind); naka_conf.miner.wait_on_interim_blocks = Duration::from_secs(1); naka_conf.connection_options.block_proposal_max_age_secs = u64::MAX; let http_origin = naka_conf.node.data_url.clone(); @@ -7013,7 +7013,7 @@ fn continue_tenure_extend() { &sortdb, &tip.consensus_hash, &tip.anchored_header.block_hash(), - transfer_tx.clone(), + transfer_tx, &ExecutionCost::max_value(), &StacksEpochId::Epoch30, ) @@ -9009,7 +9009,7 @@ fn utxo_check_on_startup_panic() { let (mut naka_conf, _miner_account) = naka_neon_integration_conf(None); println!("Nakamoto node started with config: {naka_conf:?}"); let prom_bind = "127.0.0.1:6000".to_string(); - naka_conf.node.prometheus_bind = Some(prom_bind.clone()); + naka_conf.node.prometheus_bind = Some(prom_bind); naka_conf.miner.wait_on_interim_blocks = Duration::from_secs(1000); test_observer::spawn(); @@ -9085,7 +9085,7 @@ fn utxo_check_on_startup_recover() { let (mut naka_conf, _miner_account) = naka_neon_integration_conf(None); println!("Nakamoto node started with config: {naka_conf:?}"); let prom_bind = "127.0.0.1:6000".to_string(); - naka_conf.node.prometheus_bind = Some(prom_bind.clone()); + naka_conf.node.prometheus_bind = Some(prom_bind); naka_conf.miner.wait_on_interim_blocks = Duration::from_secs(1000); test_observer::spawn(); @@ -9145,7 +9145,7 @@ fn v3_signer_api_endpoint() { let (mut conf, _miner_account) = naka_neon_integration_conf(None); let password = "12345".to_string(); - conf.connection_options.auth_token = Some(password.clone()); + conf.connection_options.auth_token = Some(password); conf.miner.wait_on_interim_blocks = Duration::from_secs(1); let stacker_sk = setup_stacker(&mut conf); let signer_sk = Secp256k1PrivateKey::new(); @@ -9319,7 +9319,7 @@ fn v3_blockbyheight_api_endpoint() { let (mut conf, _miner_account) = naka_neon_integration_conf(None); let password = "12345".to_string(); - conf.connection_options.auth_token = Some(password.clone()); + conf.connection_options.auth_token = Some(password); conf.miner.wait_on_interim_blocks = Duration::from_secs(1); let stacker_sk = setup_stacker(&mut conf); let signer_sk = Secp256k1PrivateKey::new(); @@ -9444,7 +9444,7 @@ fn nakamoto_lockup_events() { let (mut conf, _miner_account) = naka_neon_integration_conf(None); let password = "12345".to_string(); - conf.connection_options.auth_token = Some(password.clone()); + conf.connection_options.auth_token = Some(password); conf.miner.wait_on_interim_blocks = Duration::from_secs(1); let stacker_sk = setup_stacker(&mut conf); let signer_sk = Secp256k1PrivateKey::new(); @@ -9620,7 +9620,7 @@ fn skip_mining_long_tx() { let (mut naka_conf, _miner_account) = naka_neon_integration_conf(None); let prom_bind = "127.0.0.1:6000".to_string(); - naka_conf.node.prometheus_bind = Some(prom_bind.clone()); + naka_conf.node.prometheus_bind = Some(prom_bind); naka_conf.miner.wait_on_interim_blocks = Duration::from_secs(1); naka_conf.miner.nakamoto_attempt_time_ms = 5_000; naka_conf.miner.tenure_cost_limit_per_block_percentage = None; @@ -10003,7 +10003,7 @@ fn sip029_coinbase_change() { }, ]; - set_test_coinbase_schedule(Some(new_sched.clone())); + set_test_coinbase_schedule(Some(new_sched)); let (mut naka_conf, _miner_account) = naka_neon_integration_conf(None); naka_conf.miner.wait_on_interim_blocks = Duration::from_secs(1); diff --git a/testnet/stacks-node/src/tests/neon_integrations.rs b/testnet/stacks-node/src/tests/neon_integrations.rs index a3ce78eb24..47be35a5f9 100644 --- a/testnet/stacks-node/src/tests/neon_integrations.rs +++ b/testnet/stacks-node/src/tests/neon_integrations.rs @@ -265,7 +265,7 @@ pub mod test_observer { ); let event: StackerDBChunksEvent = serde_json::from_value(chunks).unwrap(); let mut stackerdb_chunks = NEW_STACKERDB_CHUNKS.lock().unwrap(); - stackerdb_chunks.push(event.clone()); + stackerdb_chunks.push(event); Ok(warp::http::StatusCode::OK) } @@ -1027,7 +1027,7 @@ fn bitcoind_integration_test() { let prom_port = gen_random_port(); let localhost = "127.0.0.1"; let prom_bind = format!("{localhost}:{prom_port}"); - conf.node.prometheus_bind = Some(prom_bind.clone()); + conf.node.prometheus_bind = Some(prom_bind); conf.burnchain.max_rbf = 1000000; @@ -1037,7 +1037,6 @@ fn bitcoind_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -1146,7 +1145,6 @@ fn confirm_unparsed_ongoing_ops() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -1229,7 +1227,6 @@ fn most_recent_utxo_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -1257,7 +1254,7 @@ fn most_recent_utxo_integration_test() { // second block will be the first mined Stacks block next_block_and_wait(&mut btc_regtest_controller, &blocks_processed); - let mut miner_signer = Keychain::default(conf.node.seed.clone()).generate_op_signer(); + let mut miner_signer = Keychain::default(conf.node.seed).generate_op_signer(); let pubkey = miner_signer.get_public_key(); let utxos_before = btc_regtest_controller.get_all_utxos(&pubkey); @@ -1458,17 +1455,16 @@ fn deep_contract() { test_observer::spawn(); test_observer::register_any(&mut conf); - let spender_bal = 10_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64); + let spender_bal = 10_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS); conf.initial_balances.push(InitialBalance { - address: spender_princ.clone(), + address: spender_princ, amount: spender_bal, }); let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); @@ -1562,7 +1558,6 @@ fn bad_microblock_pubkey() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); @@ -1640,17 +1635,16 @@ fn liquid_ustx_integration() { test_observer::spawn(); test_observer::register_any(&mut conf); - let spender_bal = 10_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64); + let spender_bal = 10_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS); conf.initial_balances.push(InitialBalance { - address: spender_princ.clone(), + address: spender_princ, amount: spender_bal, }); let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); @@ -1782,7 +1776,6 @@ fn lockup_integration() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); @@ -1905,7 +1898,6 @@ fn stx_transfer_btc_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -2157,7 +2149,6 @@ fn stx_delegate_btc_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); @@ -2178,14 +2169,10 @@ fn stx_delegate_btc_integration_test() { u32::MAX, u32::MAX, ); - burnchain_config.pox_constants = pox_constants.clone(); + burnchain_config.pox_constants = pox_constants; - let mut btc_regtest_controller = BitcoinRegtestController::with_burnchain( - conf.clone(), - None, - Some(burnchain_config.clone()), - None, - ); + let mut btc_regtest_controller = + BitcoinRegtestController::with_burnchain(conf.clone(), None, Some(burnchain_config), None); let http_origin = format!("http://{}", &conf.node.rpc_bind); btc_regtest_controller.bootstrap_chain(201); @@ -2284,7 +2271,7 @@ fn stx_delegate_btc_integration_test() { "pox-2", "delegate-stack-stx", &[ - Value::Principal(spender_addr.clone()), + Value::Principal(spender_addr), Value::UInt(100_000), execute( &format!("{{ hashbytes: 0x{pox_pubkey_hash}, version: 0x00 }}"), @@ -2371,11 +2358,11 @@ fn stack_stx_burn_op_test() { let (mut conf, _miner_account) = neon_integration_test_conf(); - let first_bal = 6_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64); - let second_bal = 2_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64); + let first_bal = 6_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS); + let second_bal = 2_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS); conf.initial_balances.push(InitialBalance { - address: spender_addr_1.clone(), + address: spender_addr_1, amount: first_bal, }); conf.initial_balances.push(InitialBalance { @@ -2443,7 +2430,6 @@ fn stack_stx_burn_op_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); @@ -2464,7 +2450,7 @@ fn stack_stx_burn_op_test() { u32::MAX, u32::MAX, ); - burnchain_config.pox_constants = pox_constants.clone(); + burnchain_config.pox_constants = pox_constants; let mut btc_regtest_controller = BitcoinRegtestController::with_burnchain( conf.clone(), @@ -2598,7 +2584,7 @@ fn stack_stx_burn_op_test() { .block_height_to_reward_cycle(block_height) .unwrap(); - let signer_key: StacksPublicKeyBuffer = signer_pk_bytes.clone().as_slice().into(); + let signer_key: StacksPublicKeyBuffer = signer_pk_bytes.as_slice().into(); info!( "Submitting stack stx op"; @@ -2637,7 +2623,7 @@ fn stack_stx_burn_op_test() { let stack_stx_op_with_no_signer_key = BlockstackOperationType::StackStx(StackStxOp { sender: spender_stx_addr_2, - reward_addr: pox_addr.clone(), + reward_addr: pox_addr, stacked_ustx: 10000000000000, num_cycles: 6, signer_key: None, @@ -2774,11 +2760,11 @@ fn vote_for_aggregate_key_burn_op_test() { let (mut conf, _miner_account) = neon_integration_test_conf(); - let first_bal = 6_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64); - let stacked_bal = 1_000_000_000 * (core::MICROSTACKS_PER_STACKS as u128); + let first_bal = 6_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS); + let stacked_bal = 1_000_000_000 * u128::from(core::MICROSTACKS_PER_STACKS); conf.initial_balances.push(InitialBalance { - address: spender_addr.clone(), + address: spender_addr, amount: first_bal, }); @@ -2842,7 +2828,6 @@ fn vote_for_aggregate_key_burn_op_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); @@ -2863,7 +2848,7 @@ fn vote_for_aggregate_key_burn_op_test() { u32::MAX, u32::MAX, ); - burnchain_config.pox_constants = pox_constants.clone(); + burnchain_config.pox_constants = pox_constants; let mut btc_regtest_controller = BitcoinRegtestController::with_burnchain( conf.clone(), @@ -2979,7 +2964,7 @@ fn vote_for_aggregate_key_burn_op_test() { .block_height_to_reward_cycle(block_height) .unwrap(); - let signer_key: StacksPublicKeyBuffer = signer_pk_bytes.clone().as_slice().into(); + let signer_key: StacksPublicKeyBuffer = signer_pk_bytes.as_slice().into(); let aggregate_pk = Secp256k1PublicKey::new(); let aggregate_key: StacksPublicKeyBuffer = aggregate_pk.to_bytes_compressed().as_slice().into(); @@ -3083,14 +3068,13 @@ fn bitcoind_resubmission_test() { let spender_addr: PrincipalData = to_addr(&spender_sk).into(); conf.initial_balances.push(InitialBalance { - address: spender_addr.clone(), + address: spender_addr, amount: 100300, }); let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -3209,7 +3193,6 @@ fn bitcoind_forking_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -3314,7 +3297,6 @@ fn should_fix_2771() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -3442,7 +3424,6 @@ fn microblock_fork_poison_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -3554,7 +3535,7 @@ fn microblock_fork_poison_integration_test() { &mut chainstate, &iconn, consensus_hash, - stacks_block.clone(), + stacks_block, vec![unconfirmed_tx], ); @@ -3616,7 +3597,7 @@ fn microblock_fork_poison_integration_test() { // resume mining eprintln!("Enable miner"); - signal_mining_ready(miner_status.clone()); + signal_mining_ready(miner_status); sleep_ms(10_000); eprintln!("Attempt to mine poison-microblock"); @@ -3689,7 +3670,6 @@ fn microblock_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -3832,7 +3812,7 @@ fn microblock_integration_test() { &mut chainstate, &iconn, consensus_hash, - stacks_block.clone(), + stacks_block, vec![unconfirmed_tx], ); @@ -4227,7 +4207,6 @@ fn filter_low_fee_tx_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -4317,7 +4296,6 @@ fn filter_long_runtime_tx_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -4423,7 +4401,6 @@ fn miner_submit_twice() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -4533,7 +4510,6 @@ fn size_check_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -4708,7 +4684,6 @@ fn size_overflow_unconfirmed_microblocks_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -4897,7 +4872,6 @@ fn size_overflow_unconfirmed_stream_microblocks_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -5084,7 +5058,6 @@ fn size_overflow_unconfirmed_invalid_stream_microblocks_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -5344,7 +5317,6 @@ fn runtime_overflow_unconfirmed_microblocks_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -5510,7 +5482,6 @@ fn block_replay_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -5642,7 +5613,7 @@ fn cost_voting_integration() { test_observer::spawn(); test_observer::register_any(&mut conf); - let spender_bal = 10_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64); + let spender_bal = 10_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS); conf.initial_balances.push(InitialBalance { address: spender_princ.clone(), @@ -5652,7 +5623,6 @@ fn cost_voting_integration() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); @@ -6012,7 +5982,6 @@ fn mining_events_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -6294,7 +6263,6 @@ fn block_limit_hit_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -6549,7 +6517,6 @@ fn microblock_limit_hit_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -6722,7 +6689,6 @@ fn block_large_tx_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -6856,7 +6822,6 @@ fn microblock_large_tx_integration_test_FLAKY() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -6962,10 +6927,10 @@ fn pox_integration_test() { // required for testing post-sunset behavior conf.node.always_use_affirmation_maps = false; - let first_bal = 6_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64); - let second_bal = 2_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64); - let third_bal = 2_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64); - let stacked_bal = 1_000_000_000 * (core::MICROSTACKS_PER_STACKS as u128); + let first_bal = 6_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS); + let second_bal = 2_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS); + let third_bal = 2_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS); + let stacked_bal = 1_000_000_000 * u128::from(core::MICROSTACKS_PER_STACKS); conf.initial_balances.push(InitialBalance { address: spender_addr.clone(), @@ -6973,12 +6938,12 @@ fn pox_integration_test() { }); conf.initial_balances.push(InitialBalance { - address: spender_2_addr.clone(), + address: spender_2_addr, amount: second_bal, }); conf.initial_balances.push(InitialBalance { - address: spender_3_addr.clone(), + address: spender_3_addr, amount: third_bal, }); @@ -6991,7 +6956,6 @@ fn pox_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); @@ -7458,7 +7422,7 @@ fn atlas_integration_test() { let user_1 = StacksPrivateKey::new(); let initial_balance_user_1 = InitialBalance { address: to_addr(&user_1).into(), - amount: 1_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64), + amount: 1_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS), }; // Prepare the config of the bootstrap node @@ -7504,7 +7468,6 @@ fn atlas_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf_bootstrap_node.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let (bootstrap_node_tx, bootstrap_node_rx) = mpsc::channel(); @@ -7978,7 +7941,7 @@ fn antientropy_integration_test() { let user_1 = StacksPrivateKey::new(); let initial_balance_user_1 = InitialBalance { address: to_addr(&user_1).into(), - amount: 1_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64), + amount: 1_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS), }; // Prepare the config of the bootstrap node @@ -8023,7 +7986,7 @@ fn antientropy_integration_test() { conf_follower_node.node.miner = false; conf_follower_node .initial_balances - .push(initial_balance_user_1.clone()); + .push(initial_balance_user_1); conf_follower_node .events_observers .insert(EventObserverConfig { @@ -8047,7 +8010,6 @@ fn antientropy_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf_bootstrap_node.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let (bootstrap_node_tx, bootstrap_node_rx) = mpsc::channel(); @@ -8163,7 +8125,7 @@ fn antientropy_integration_test() { let btc_regtest_controller = BitcoinRegtestController::with_burnchain( conf_follower_node.clone(), None, - Some(burnchain_config.clone()), + Some(burnchain_config), None, ); @@ -8259,7 +8221,7 @@ fn atlas_stress_integration_test() { let user = StacksPrivateKey::new(); let initial_balance_user = InitialBalance { address: to_addr(&user).into(), - amount: 1_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64), + amount: 1_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS), }; users.push(user); initial_balances.push(initial_balance_user); @@ -8294,7 +8256,6 @@ fn atlas_stress_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf_bootstrap_node.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let burnchain_config = Burnchain::regtest(&conf_bootstrap_node.get_burn_db_path()); @@ -8431,7 +8392,7 @@ fn atlas_stress_integration_test() { Value::UInt(1), Value::UInt(1), Value::UInt(1000), - Value::Principal(initial_balance_user_1.address.clone()), + Value::Principal(initial_balance_user_1.address), ], ); @@ -8572,7 +8533,7 @@ fn atlas_stress_integration_test() { let res = client .post(&path) .header("Content-Type", "application/octet-stream") - .body(tx_4.clone()) + .body(tx_4) .send() .unwrap(); eprintln!("{res:#?}"); @@ -9023,7 +8984,6 @@ fn fuzzed_median_fee_rate_estimation_test(window_size: u64, expected_final_value let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -9201,7 +9161,6 @@ fn use_latest_tip_integration_test() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -9299,7 +9258,7 @@ fn use_latest_tip_integration_test() { &mut chainstate, &iconn, consensus_hash, - stacks_block.clone(), + stacks_block, vec_tx, ); let mut mblock_bytes = vec![]; @@ -9433,7 +9392,6 @@ fn test_flash_block_skip_tenure() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -9497,7 +9455,6 @@ fn test_chainwork_first_intervals() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -9525,7 +9482,6 @@ fn test_chainwork_partial_interval() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -9614,7 +9570,6 @@ fn test_problematic_txs_are_not_stored() { btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -9811,15 +9766,15 @@ fn test_problematic_blocks_are_not_mined() { let (mut conf, _) = neon_integration_test_conf(); conf.initial_balances.push(InitialBalance { - address: spender_addr_1.clone(), + address: spender_addr_1, amount: 1_000_000_000_000, }); conf.initial_balances.push(InitialBalance { - address: spender_addr_2.clone(), + address: spender_addr_2, amount: 1_000_000_000_000, }); conf.initial_balances.push(InitialBalance { - address: spender_addr_3.clone(), + address: spender_addr_3, amount: 1_000_000_000_000, }); @@ -9858,7 +9813,6 @@ fn test_problematic_blocks_are_not_mined() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -10148,15 +10102,15 @@ fn test_problematic_blocks_are_not_relayed_or_stored() { let (mut conf, _) = neon_integration_test_conf(); conf.initial_balances.push(InitialBalance { - address: spender_addr_1.clone(), + address: spender_addr_1, amount: 1_000_000_000_000, }); conf.initial_balances.push(InitialBalance { - address: spender_addr_2.clone(), + address: spender_addr_2, amount: 1_000_000_000_000, }); conf.initial_balances.push(InitialBalance { - address: spender_addr_3.clone(), + address: spender_addr_3, amount: 1_000_000_000_000, }); @@ -10195,7 +10149,6 @@ fn test_problematic_blocks_are_not_relayed_or_stored() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -10521,15 +10474,15 @@ fn test_problematic_microblocks_are_not_mined() { let (mut conf, _) = neon_integration_test_conf(); conf.initial_balances.push(InitialBalance { - address: spender_addr_1.clone(), + address: spender_addr_1, amount: 1_000_000_000_000, }); conf.initial_balances.push(InitialBalance { - address: spender_addr_2.clone(), + address: spender_addr_2, amount: 1_000_000_000_000, }); conf.initial_balances.push(InitialBalance { - address: spender_addr_3.clone(), + address: spender_addr_3, amount: 1_000_000_000_000, }); @@ -10574,7 +10527,6 @@ fn test_problematic_microblocks_are_not_mined() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -10873,15 +10825,15 @@ fn test_problematic_microblocks_are_not_relayed_or_stored() { let (mut conf, _) = neon_integration_test_conf(); conf.initial_balances.push(InitialBalance { - address: spender_addr_1.clone(), + address: spender_addr_1, amount: 1_000_000_000_000, }); conf.initial_balances.push(InitialBalance { - address: spender_addr_2.clone(), + address: spender_addr_2, amount: 1_000_000_000_000, }); conf.initial_balances.push(InitialBalance { - address: spender_addr_3.clone(), + address: spender_addr_3, amount: 1_000_000_000_000, }); @@ -10928,7 +10880,6 @@ fn test_problematic_microblocks_are_not_relayed_or_stored() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -11258,7 +11209,6 @@ fn push_boot_receipts() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -11304,7 +11254,6 @@ fn run_with_custom_wallet() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -11623,7 +11572,6 @@ fn test_competing_miners_build_on_same_chain( let mut btcd_controller = BitcoinCoreController::new(confs[0].clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::with_burnchain( @@ -11816,7 +11764,6 @@ fn microblock_miner_multiple_attempts() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -11900,17 +11847,16 @@ fn min_txs() { fs::remove_file(path).unwrap(); } - let spender_bal = 10_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64); + let spender_bal = 10_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS); conf.initial_balances.push(InitialBalance { - address: spender_princ.clone(), + address: spender_princ, amount: spender_bal, }); let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); @@ -12005,17 +11951,16 @@ fn filter_txs_by_type() { fs::remove_file(path).unwrap(); } - let spender_bal = 10_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64); + let spender_bal = 10_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS); conf.initial_balances.push(InitialBalance { - address: spender_princ.clone(), + address: spender_princ, amount: spender_bal, }); let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); @@ -12116,17 +12061,16 @@ fn filter_txs_by_origin() { .into_iter() .collect(); - let spender_bal = 10_000_000_000 * (core::MICROSTACKS_PER_STACKS as u64); + let spender_bal = 10_000_000_000 * u64::from(core::MICROSTACKS_PER_STACKS); conf.initial_balances.push(InitialBalance { - address: spender_princ.clone(), + address: spender_princ, amount: spender_bal, }); let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); @@ -12295,7 +12239,7 @@ fn bitcoin_reorg_flap() { // carry out the flap to fork B -- new_conf's state was the same as before the reorg let mut btcd_controller = BitcoinCoreController::new(new_conf.clone()); - let btc_regtest_controller = BitcoinRegtestController::new(new_conf.clone(), None); + let btc_regtest_controller = BitcoinRegtestController::new(new_conf, None); btcd_controller .start_bitcoind() @@ -12311,7 +12255,7 @@ fn bitcoin_reorg_flap() { info!("\n\nBegin reorg flap from B to A\n\n"); let mut btcd_controller = BitcoinCoreController::new(conf.clone()); - let btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); + let btc_regtest_controller = BitcoinRegtestController::new(conf, None); btcd_controller .start_bitcoind() .expect("Failed starting bitcoind"); @@ -12506,7 +12450,7 @@ fn bitcoin_reorg_flap_with_follower() { // carry out the flap to fork B -- new_conf's state was the same as before the reorg let mut btcd_controller = BitcoinCoreController::new(new_conf.clone()); - let btc_regtest_controller = BitcoinRegtestController::new(new_conf.clone(), None); + let btc_regtest_controller = BitcoinRegtestController::new(new_conf, None); btcd_controller .start_bitcoind() @@ -12522,7 +12466,7 @@ fn bitcoin_reorg_flap_with_follower() { info!("\n\nBegin reorg flap from B to A\n\n"); let mut btcd_controller = BitcoinCoreController::new(conf.clone()); - let btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); + let btc_regtest_controller = BitcoinRegtestController::new(conf, None); btcd_controller .start_bitcoind() .expect("Failed starting bitcoind"); @@ -12568,12 +12512,8 @@ fn mock_miner_replay() { .expect("Failed starting bitcoind"); let burnchain_config = Burnchain::regtest(&conf.get_burn_db_path()); - let mut btc_regtest_controller = BitcoinRegtestController::with_burnchain( - conf.clone(), - None, - Some(burnchain_config.clone()), - None, - ); + let mut btc_regtest_controller = + BitcoinRegtestController::with_burnchain(conf.clone(), None, Some(burnchain_config), None); btc_regtest_controller.bootstrap_chain(201); @@ -12717,7 +12657,7 @@ fn listunspent_max_utxos() { let prom_port = gen_random_port(); let localhost = "127.0.0.1"; let prom_bind = format!("{localhost}:{prom_port}"); - conf.node.prometheus_bind = Some(prom_bind.clone()); + conf.node.prometheus_bind = Some(prom_bind); conf.burnchain.max_rbf = 1000000; conf.burnchain.max_unspent_utxos = Some(10); @@ -12725,7 +12665,6 @@ fn listunspent_max_utxos() { let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); @@ -12765,17 +12704,16 @@ fn start_stop_bitcoind() { let prom_port = gen_random_port(); let localhost = "127.0.0.1"; let prom_bind = format!("{localhost}:{prom_port}"); - conf.node.prometheus_bind = Some(prom_bind.clone()); + conf.node.prometheus_bind = Some(prom_bind); conf.burnchain.max_rbf = 1000000; let mut btcd_controller = BitcoinCoreController::new(conf.clone()); btcd_controller .start_bitcoind() - .map_err(|_e| ()) .expect("Failed starting bitcoind"); - let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); + let mut btc_regtest_controller = BitcoinRegtestController::new(conf, None); btc_regtest_controller.bootstrap_chain(201); diff --git a/testnet/stacks-node/src/tests/signer/v0.rs b/testnet/stacks-node/src/tests/signer/v0.rs index 86002e6c3a..1b03200412 100644 --- a/testnet/stacks-node/src/tests/signer/v0.rs +++ b/testnet/stacks-node/src/tests/signer/v0.rs @@ -1578,7 +1578,7 @@ fn multiple_miners() { conf_node_2.node.p2p_address = format!("{localhost}:{node_2_p2p}"); conf_node_2.node.seed = btc_miner_2_seed.clone(); conf_node_2.burnchain.local_mining_public_key = Some(btc_miner_2_pk.to_hex()); - conf_node_2.node.local_peer_seed = btc_miner_2_seed.clone(); + conf_node_2.node.local_peer_seed = btc_miner_2_seed; conf_node_2.miner.mining_key = Some(Secp256k1PrivateKey::from_seed(&[2])); conf_node_2.node.miner = true; conf_node_2.events_observers.clear(); @@ -1859,7 +1859,7 @@ fn miner_forking() { conf_node_2.node.p2p_address = format!("{localhost}:{node_2_p2p}"); conf_node_2.node.seed = btc_miner_2_seed.clone(); conf_node_2.burnchain.local_mining_public_key = Some(btc_miner_2_pk.to_hex()); - conf_node_2.node.local_peer_seed = btc_miner_2_seed.clone(); + conf_node_2.node.local_peer_seed = btc_miner_2_seed; conf_node_2.node.miner = true; conf_node_2.events_observers.clear(); conf_node_2.events_observers.extend(node_2_listeners); @@ -2418,7 +2418,7 @@ fn retry_on_rejection() { .map(StacksPublicKey::from_private) .take(num_signers) .collect(); - TEST_REJECT_ALL_BLOCK_PROPOSAL.set(rejecting_signers.clone()); + TEST_REJECT_ALL_BLOCK_PROPOSAL.set(rejecting_signers); let proposals_before = signer_test .running_nodes @@ -3894,7 +3894,7 @@ fn multiple_miners_mock_sign_epoch_25() { conf_node_2.node.p2p_address = format!("{localhost}:{node_2_p2p}"); conf_node_2.node.seed = btc_miner_2_seed.clone(); conf_node_2.burnchain.local_mining_public_key = Some(btc_miner_2_pk.to_hex()); - conf_node_2.node.local_peer_seed = btc_miner_2_seed.clone(); + conf_node_2.node.local_peer_seed = btc_miner_2_seed; conf_node_2.miner.mining_key = Some(Secp256k1PrivateKey::from_seed(&[2])); conf_node_2.node.miner = true; conf_node_2.events_observers.clear(); @@ -4620,7 +4620,7 @@ fn multiple_miners_with_nakamoto_blocks() { conf_node_2.node.p2p_address = format!("{localhost}:{node_2_p2p}"); conf_node_2.node.seed = btc_miner_2_seed.clone(); conf_node_2.burnchain.local_mining_public_key = Some(btc_miner_2_pk.to_hex()); - conf_node_2.node.local_peer_seed = btc_miner_2_seed.clone(); + conf_node_2.node.local_peer_seed = btc_miner_2_seed; conf_node_2.miner.mining_key = Some(Secp256k1PrivateKey::from_seed(&[2])); conf_node_2.node.miner = true; conf_node_2.events_observers.clear(); @@ -4883,7 +4883,7 @@ fn partial_tenure_fork() { conf_node_2.node.p2p_address = format!("{localhost}:{node_2_p2p}"); conf_node_2.node.seed = btc_miner_2_seed.clone(); conf_node_2.burnchain.local_mining_public_key = Some(btc_miner_2_pk.to_hex()); - conf_node_2.node.local_peer_seed = btc_miner_2_seed.clone(); + conf_node_2.node.local_peer_seed = btc_miner_2_seed; conf_node_2.miner.mining_key = Some(Secp256k1PrivateKey::from_seed(&[2])); conf_node_2.node.miner = true; conf_node_2.events_observers.clear(); @@ -6528,7 +6528,7 @@ fn continue_after_fast_block_no_sortition() { conf_node_2.node.p2p_address = format!("{localhost}:{node_2_p2p}"); conf_node_2.node.seed = btc_miner_2_seed.clone(); conf_node_2.burnchain.local_mining_public_key = Some(btc_miner_2_pk.to_hex()); - conf_node_2.node.local_peer_seed = btc_miner_2_seed.clone(); + conf_node_2.node.local_peer_seed = btc_miner_2_seed; conf_node_2.miner.mining_key = Some(Secp256k1PrivateKey::from_seed(&[2])); conf_node_2.node.miner = true; conf_node_2.events_observers.clear(); @@ -6682,7 +6682,7 @@ fn continue_after_fast_block_no_sortition() { // Make all signers ignore block proposals let ignoring_signers = all_signers.to_vec(); - TEST_REJECT_ALL_BLOCK_PROPOSAL.set(ignoring_signers.clone()); + TEST_REJECT_ALL_BLOCK_PROPOSAL.set(ignoring_signers); info!("------------------------- Submit Miner 2 Block Commit -------------------------"); let rejections_before = signer_test @@ -7258,7 +7258,7 @@ fn multiple_miners_with_custom_chain_id() { conf_node_2.node.p2p_address = format!("{localhost}:{node_2_p2p}"); conf_node_2.node.seed = btc_miner_2_seed.clone(); conf_node_2.burnchain.local_mining_public_key = Some(btc_miner_2_pk.to_hex()); - conf_node_2.node.local_peer_seed = btc_miner_2_seed.clone(); + conf_node_2.node.local_peer_seed = btc_miner_2_seed; conf_node_2.miner.mining_key = Some(Secp256k1PrivateKey::from_seed(&[2])); conf_node_2.node.miner = true; conf_node_2.events_observers.clear(); @@ -7825,7 +7825,7 @@ fn tenure_extend_after_failed_miner() { conf_node_2.node.p2p_address = format!("{localhost}:{node_2_p2p}"); conf_node_2.node.seed = btc_miner_2_seed.clone(); conf_node_2.burnchain.local_mining_public_key = Some(btc_miner_2_pk.to_hex()); - conf_node_2.node.local_peer_seed = btc_miner_2_seed.clone(); + conf_node_2.node.local_peer_seed = btc_miner_2_seed; conf_node_2.miner.mining_key = Some(Secp256k1PrivateKey::from_seed(&[2])); conf_node_2.node.miner = true; conf_node_2.events_observers.clear(); @@ -8228,7 +8228,7 @@ fn tenure_extend_after_bad_commit() { conf_node_2.node.p2p_address = format!("{localhost}:{node_2_p2p}"); conf_node_2.node.seed = btc_miner_2_seed.clone(); conf_node_2.burnchain.local_mining_public_key = Some(btc_miner_2_pk.to_hex()); - conf_node_2.node.local_peer_seed = btc_miner_2_seed.clone(); + conf_node_2.node.local_peer_seed = btc_miner_2_seed; conf_node_2.miner.mining_key = Some(Secp256k1PrivateKey::from_seed(&[2])); conf_node_2.node.miner = true; conf_node_2.events_observers.clear(); @@ -8706,7 +8706,7 @@ fn tenure_extend_after_2_bad_commits() { conf_node_2.node.p2p_address = format!("{localhost}:{node_2_p2p}"); conf_node_2.node.seed = btc_miner_2_seed.clone(); conf_node_2.burnchain.local_mining_public_key = Some(btc_miner_2_pk.to_hex()); - conf_node_2.node.local_peer_seed = btc_miner_2_seed.clone(); + conf_node_2.node.local_peer_seed = btc_miner_2_seed; conf_node_2.miner.mining_key = Some(Secp256k1PrivateKey::from_seed(&[2])); conf_node_2.node.miner = true; conf_node_2.events_observers.clear(); @@ -9399,7 +9399,7 @@ fn global_acceptance_depends_on_block_announcement() { .cloned() .take(num_signers * 3 / 10) .collect(); - TEST_REJECT_ALL_BLOCK_PROPOSAL.set(rejecting_signers.clone()); + TEST_REJECT_ALL_BLOCK_PROPOSAL.set(rejecting_signers); TEST_SKIP_BLOCK_ANNOUNCEMENT.set(true); TEST_IGNORE_SIGNERS.set(true); TEST_SKIP_BLOCK_BROADCAST.set(true); @@ -9647,7 +9647,7 @@ fn no_reorg_due_to_successive_block_validation_ok() { conf_node_2.node.p2p_address = format!("{localhost}:{node_2_p2p}"); conf_node_2.node.seed = btc_miner_2_seed.clone(); conf_node_2.burnchain.local_mining_public_key = Some(btc_miner_2_pk.to_hex()); - conf_node_2.node.local_peer_seed = btc_miner_2_seed.clone(); + conf_node_2.node.local_peer_seed = btc_miner_2_seed; conf_node_2.miner.mining_key = Some(Secp256k1PrivateKey::from_seed(&[2])); conf_node_2.node.miner = true; conf_node_2.events_observers.clear(); @@ -9816,7 +9816,7 @@ fn no_reorg_due_to_successive_block_validation_ok() { .unwrap() && proposal.block.header.chain_length == block_n.stacks_height + 1 { - block_n_1 = Some(proposal.block.clone()); + block_n_1 = Some(proposal.block); return Ok(true); } } @@ -9875,7 +9875,7 @@ fn no_reorg_due_to_successive_block_validation_ok() { .map(|pk| pk == mining_pk_2) .unwrap() { - block_n_1_prime = Some(proposal.block.clone()); + block_n_1_prime = Some(proposal.block); return Ok(true); } } @@ -10014,7 +10014,7 @@ fn no_reorg_due_to_successive_block_validation_ok() { .map(|pk| pk == mining_pk_2) .unwrap() { - block_n_2 = Some(proposal.block.clone()); + block_n_2 = Some(proposal.block); return Ok(true); } } @@ -10575,7 +10575,7 @@ fn injected_signatures_are_ignored_across_boundaries() { AddressHashMode::SerializeP2PKH, tests::to_addr(&new_signer_private_key).bytes, ); - let pox_addr_tuple: clarity::vm::Value = pox_addr.clone().as_clarity_tuple().unwrap().into(); + let pox_addr_tuple: clarity::vm::Value = pox_addr.as_clarity_tuple().unwrap().into(); let signature = make_pox_4_signer_key_signature( &pox_addr, &new_signer_private_key, @@ -10600,7 +10600,7 @@ fn injected_signatures_are_ignored_across_boundaries() { "stack-stx", &[ clarity::vm::Value::UInt(POX_4_DEFAULT_STACKER_STX_AMT), - pox_addr_tuple.clone(), + pox_addr_tuple, clarity::vm::Value::UInt(burn_block_height as u128), clarity::vm::Value::UInt(1), clarity::vm::Value::some(clarity::vm::Value::buff_from(signature).unwrap()).unwrap(), From 820702c1a8df73f704e5feaf2336f97e740a31fd Mon Sep 17 00:00:00 2001 From: Aaron Blankstein Date: Fri, 17 Jan 2025 08:37:02 -0600 Subject: [PATCH 10/21] test: use last_commit_burn_height counter to address flakiness in miner_forking --- testnet/stacks-node/src/nakamoto_node/relayer.rs | 4 +++- testnet/stacks-node/src/run_loop/neon.rs | 8 +++++++- testnet/stacks-node/src/tests/signer/mod.rs | 3 +++ testnet/stacks-node/src/tests/signer/v0.rs | 16 ++++++++++++++-- 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/testnet/stacks-node/src/nakamoto_node/relayer.rs b/testnet/stacks-node/src/nakamoto_node/relayer.rs index 8cc1293acd..2f65973f62 100644 --- a/testnet/stacks-node/src/nakamoto_node/relayer.rs +++ b/testnet/stacks-node/src/nakamoto_node/relayer.rs @@ -1229,8 +1229,10 @@ impl RelayerThread { // update local state last_committed.set_txid(&txid); self.last_commits.insert(txid); + self.globals + .counters + .bump_naka_submitted_commits(last_committed.burn_tip.block_height); self.last_committed = Some(last_committed); - self.globals.counters.bump_naka_submitted_commits(); Ok(()) } diff --git a/testnet/stacks-node/src/run_loop/neon.rs b/testnet/stacks-node/src/run_loop/neon.rs index 4ecc84b73b..3bc12cdb04 100644 --- a/testnet/stacks-node/src/run_loop/neon.rs +++ b/testnet/stacks-node/src/run_loop/neon.rs @@ -106,6 +106,8 @@ pub struct Counters { pub naka_submitted_vrfs: RunLoopCounter, pub naka_submitted_commits: RunLoopCounter, + /// the burn block height when the last commit was submitted + pub naka_submitted_commit_last_burn_height: RunLoopCounter, pub naka_mined_blocks: RunLoopCounter, pub naka_rejected_blocks: RunLoopCounter, pub naka_proposed_blocks: RunLoopCounter, @@ -161,8 +163,12 @@ impl Counters { Counters::inc(&self.naka_submitted_vrfs); } - pub fn bump_naka_submitted_commits(&self) { + pub fn bump_naka_submitted_commits(&self, committed_height: u64) { Counters::inc(&self.naka_submitted_commits); + Counters::set( + &self.naka_submitted_commit_last_burn_height, + committed_height, + ); } pub fn bump_naka_mined_blocks(&self) { diff --git a/testnet/stacks-node/src/tests/signer/mod.rs b/testnet/stacks-node/src/tests/signer/mod.rs index ed4560c70a..9e59d73235 100644 --- a/testnet/stacks-node/src/tests/signer/mod.rs +++ b/testnet/stacks-node/src/tests/signer/mod.rs @@ -88,6 +88,7 @@ pub struct RunningNodes { pub run_loop_stopper: Arc, pub vrfs_submitted: RunLoopCounter, pub commits_submitted: RunLoopCounter, + pub last_commit_burn_height: RunLoopCounter, pub blocks_processed: RunLoopCounter, pub nakamoto_blocks_proposed: RunLoopCounter, pub nakamoto_blocks_mined: RunLoopCounter, @@ -902,6 +903,7 @@ fn setup_stx_btc_node( blocks_processed, naka_submitted_vrfs: vrfs_submitted, naka_submitted_commits: commits_submitted, + naka_submitted_commit_last_burn_height: last_commit_burn_height, naka_proposed_blocks: naka_blocks_proposed, naka_mined_blocks: naka_blocks_mined, naka_rejected_blocks: naka_blocks_rejected, @@ -936,6 +938,7 @@ fn setup_stx_btc_node( run_loop_stopper, vrfs_submitted, commits_submitted, + last_commit_burn_height, blocks_processed, nakamoto_blocks_proposed: naka_blocks_proposed, nakamoto_blocks_mined: naka_blocks_mined, diff --git a/testnet/stacks-node/src/tests/signer/v0.rs b/testnet/stacks-node/src/tests/signer/v0.rs index 190145279f..76a6ae02a7 100644 --- a/testnet/stacks-node/src/tests/signer/v0.rs +++ b/testnet/stacks-node/src/tests/signer/v0.rs @@ -1882,6 +1882,7 @@ fn miner_forking() { let Counters { naka_skip_commit_op: skip_commit_op_rl2, naka_submitted_commits: commits_submitted_rl2, + naka_submitted_commit_last_burn_height: commits_submitted_rl2_last_burn_height, .. } = run_loop_2.counters(); let _run_loop_2_thread = thread::Builder::new() @@ -1903,6 +1904,8 @@ fn miner_forking() { .expect("Timed out waiting for boostrapped node to catch up to the miner"); let commits_submitted_rl1 = signer_test.running_nodes.commits_submitted.clone(); + let commits_submitted_rl1_last_burn_height = + signer_test.running_nodes.last_commit_burn_height.clone(); let skip_commit_op_rl1 = signer_test .running_nodes .nakamoto_test_skip_commit_op @@ -1947,13 +1950,18 @@ fn miner_forking() { info!("Pausing stacks block proposal to force an empty tenure commit from RL2"); TEST_BROADCAST_STALL.lock().unwrap().replace(true); let rl1_commits_before = commits_submitted_rl1.load(Ordering::SeqCst); + let burn_height_before = get_burn_height(); info!("Unpausing commits from RL1"); skip_commit_op_rl1.set(false); info!("Waiting for commits from RL1"); wait_for(30, || { - Ok(commits_submitted_rl1.load(Ordering::SeqCst) > rl1_commits_before) + Ok( + commits_submitted_rl1.load(Ordering::SeqCst) > rl1_commits_before + && commits_submitted_rl1_last_burn_height.load(Ordering::SeqCst) + >= burn_height_before, + ) }) .expect("Timed out waiting for miner 1 to submit a commit op"); @@ -1984,13 +1992,17 @@ fn miner_forking() { "------------------------- RL2 Wins Sortition With Outdated View -------------------------" ); let rl2_commits_before = commits_submitted_rl2.load(Ordering::SeqCst); + let burn_height = get_burn_height(); info!("Unpausing commits from RL2"); skip_commit_op_rl2.set(false); info!("Waiting for commits from RL2"); wait_for(30, || { - Ok(commits_submitted_rl2.load(Ordering::SeqCst) > rl2_commits_before) + Ok( + commits_submitted_rl2.load(Ordering::SeqCst) > rl2_commits_before + && commits_submitted_rl2_last_burn_height.load(Ordering::SeqCst) >= burn_height, + ) }) .expect("Timed out waiting for miner 1 to submit a commit op"); From d5304f8af09536b7a8c8583e1e965da35c6ec50a Mon Sep 17 00:00:00 2001 From: Jeff Bencin Date: Fri, 17 Jan 2025 11:42:32 -0500 Subject: [PATCH 11/21] fix: Builds with `--features=monitoring_prom` --- testnet/stacks-node/src/tests/nakamoto_integrations.rs | 6 +++--- testnet/stacks-node/src/tests/neon_integrations.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/testnet/stacks-node/src/tests/nakamoto_integrations.rs b/testnet/stacks-node/src/tests/nakamoto_integrations.rs index c55891082f..176969330d 100644 --- a/testnet/stacks-node/src/tests/nakamoto_integrations.rs +++ b/testnet/stacks-node/src/tests/nakamoto_integrations.rs @@ -1438,7 +1438,7 @@ fn simple_neon_integration() { let (mut naka_conf, _miner_account) = naka_neon_integration_conf(None); let prom_bind = "127.0.0.1:6000".to_string(); - naka_conf.node.prometheus_bind = Some(prom_bind); + naka_conf.node.prometheus_bind = Some(prom_bind.clone()); naka_conf.miner.wait_on_interim_blocks = Duration::from_secs(5); let sender_sk = Secp256k1PrivateKey::new(); // setup sender + recipient for a test stx transfer @@ -6264,7 +6264,7 @@ fn signer_chainstate() { let (mut naka_conf, _miner_account) = naka_neon_integration_conf(None); let prom_bind = "127.0.0.1:6000".to_string(); let http_origin = format!("http://{}", &naka_conf.node.rpc_bind); - naka_conf.node.prometheus_bind = Some(prom_bind); + naka_conf.node.prometheus_bind = Some(prom_bind.clone()); naka_conf.miner.wait_on_interim_blocks = Duration::from_secs(1); let sender_sk = Secp256k1PrivateKey::new(); // setup sender + recipient for a test stx transfer @@ -6854,7 +6854,7 @@ fn continue_tenure_extend() { let mut signers = TestSigners::default(); let (mut naka_conf, _miner_account) = naka_neon_integration_conf(None); let prom_bind = "127.0.0.1:6000".to_string(); - naka_conf.node.prometheus_bind = Some(prom_bind); + naka_conf.node.prometheus_bind = Some(prom_bind.clone()); naka_conf.miner.wait_on_interim_blocks = Duration::from_secs(1); naka_conf.connection_options.block_proposal_max_age_secs = u64::MAX; let http_origin = naka_conf.node.data_url.clone(); diff --git a/testnet/stacks-node/src/tests/neon_integrations.rs b/testnet/stacks-node/src/tests/neon_integrations.rs index 47be35a5f9..821f392e52 100644 --- a/testnet/stacks-node/src/tests/neon_integrations.rs +++ b/testnet/stacks-node/src/tests/neon_integrations.rs @@ -1027,7 +1027,7 @@ fn bitcoind_integration_test() { let prom_port = gen_random_port(); let localhost = "127.0.0.1"; let prom_bind = format!("{localhost}:{prom_port}"); - conf.node.prometheus_bind = Some(prom_bind); + conf.node.prometheus_bind = Some(prom_bind.clone()); conf.burnchain.max_rbf = 1000000; From 5f873b360679c3393855e14008dfbf90cb5dc7ad Mon Sep 17 00:00:00 2001 From: Jeff Bencin Date: Sun, 19 Jan 2025 22:50:43 -0500 Subject: [PATCH 12/21] fix: Undo change --- stackslib/src/net/stackerdb/tests/db.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stackslib/src/net/stackerdb/tests/db.rs b/stackslib/src/net/stackerdb/tests/db.rs index a16de443cd..af16896859 100644 --- a/stackslib/src/net/stackerdb/tests/db.rs +++ b/stackslib/src/net/stackerdb/tests/db.rs @@ -595,7 +595,7 @@ fn test_reconfigure_stackerdb() { let tx = db.tx_begin(db_config).unwrap(); - let pks = vec![StacksPrivateKey::new(); 10]; + let pks: Vec<_> = (0..10).map(|_| StacksPrivateKey::new()).collect(); let addrs: Vec<_> = pks .iter() .map(|pk| { From b8a51e386d3277d310b5a0c44d185027e930b7ef Mon Sep 17 00:00:00 2001 From: Jacinta Ferrant Date: Tue, 21 Jan 2025 16:12:29 -0800 Subject: [PATCH 13/21] Fix test Signed-off-by: Jacinta Ferrant --- stackslib/src/chainstate/stacks/db/blocks.rs | 49 +++++++++----------- 1 file changed, 23 insertions(+), 26 deletions(-) diff --git a/stackslib/src/chainstate/stacks/db/blocks.rs b/stackslib/src/chainstate/stacks/db/blocks.rs index df37f46d07..681e4b2973 100644 --- a/stackslib/src/chainstate/stacks/db/blocks.rs +++ b/stackslib/src/chainstate/stacks/db/blocks.rs @@ -757,8 +757,8 @@ impl StacksChainState { /// Get all stacks block headers. Great for testing! pub fn get_all_staging_block_headers(blocks_conn: &DBConn) -> Result, Error> { - let sql = "SELECT * FROM staging_blocks ORDER BY height".to_string(); - query_rows::(blocks_conn, &sql, NO_PARAMS).map_err(Error::DBError) + let sql = "SELECT * FROM staging_blocks ORDER BY height"; + query_rows::(blocks_conn, sql, NO_PARAMS).map_err(Error::DBError) } /// Get a list of all microblocks' hashes, and their anchored blocks' hashes @@ -929,7 +929,7 @@ impl StacksChainState { table: &str, block_hash: &BlockHeaderHash, ) -> Result>, Error> { - let sql = format!("SELECT block_data FROM {} WHERE block_hash = ?1", table); + let sql = format!("SELECT block_data FROM {table} WHERE block_hash = ?1"); let args = [&block_hash]; let mut blobs = StacksChainState::load_block_data_blobs(block_conn, &sql, &args)?; let len = blobs.len(); @@ -982,10 +982,10 @@ impl StacksChainState { consensus_hash: &ConsensusHash, block_hash: &BlockHeaderHash, ) -> Result, Error> { - let sql = "SELECT * FROM staging_blocks WHERE anchored_block_hash = ?1 AND consensus_hash = ?2 AND orphaned = 0 AND processed = 0".to_string(); + let sql = "SELECT * FROM staging_blocks WHERE anchored_block_hash = ?1 AND consensus_hash = ?2 AND orphaned = 0 AND processed = 0"; let args = params![block_hash, consensus_hash]; let mut rows = - query_rows::(block_conn, &sql, args).map_err(Error::DBError)?; + query_rows::(block_conn, sql, args).map_err(Error::DBError)?; let len = rows.len(); match len { 0 => Ok(None), @@ -1330,22 +1330,18 @@ impl StacksChainState { let sql = if start_seq == last_seq { // takes the same arguments as the range case below, but will - "SELECT * FROM staging_microblocks WHERE index_block_hash = ?1 AND sequence == ?2 AND sequence == ?3 AND orphaned = 0 ORDER BY sequence ASC".to_string() + "SELECT * FROM staging_microblocks WHERE index_block_hash = ?1 AND sequence == ?2 AND sequence == ?3 AND orphaned = 0 ORDER BY sequence ASC" } else { - "SELECT * FROM staging_microblocks WHERE index_block_hash = ?1 AND sequence >= ?2 AND sequence < ?3 AND orphaned = 0 ORDER BY sequence ASC".to_string() + "SELECT * FROM staging_microblocks WHERE index_block_hash = ?1 AND sequence >= ?2 AND sequence < ?3 AND orphaned = 0 ORDER BY sequence ASC" }; let args = params![parent_index_block_hash, start_seq, last_seq]; let staging_microblocks = - query_rows::(blocks_conn, &sql, args).map_err(Error::DBError)?; + query_rows::(blocks_conn, sql, args).map_err(Error::DBError)?; if staging_microblocks.is_empty() { // haven't seen any microblocks that descend from this block yet - test_debug!( - "No microblocks built on {} up to {}", - &parent_index_block_hash, - last_seq - ); + test_debug!("No microblocks built on {parent_index_block_hash} up to {last_seq}"); return Ok(None); } @@ -9444,31 +9440,32 @@ pub mod test { assert_block_stored_not_staging(&mut chainstate, &consensus_hashes[0], blocks[0]); // process and store blocks 1 and N, as well as microblocks in-between - for (i, block) in blocks.iter().skip(1).enumerate() { + let len = blocks.len(); + for i in 1..len { // this is what happens at the end of append_block() // store block to staging and process it assert!(StacksChainState::load_staging_block_data( chainstate.db(), &chainstate.blocks_path, &consensus_hashes[i], - &block.block_hash() + &blocks[i].block_hash() ) .unwrap() .is_none()); store_staging_block( &mut chainstate, &consensus_hashes[i], - block, + blocks[i], &consensus_hashes[0], 1, 2, ); - assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], block); + assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], blocks[i]); set_block_processed( &mut chainstate, &consensus_hashes[i], - &block.block_hash(), + &blocks[i].block_hash(), true, ); @@ -9476,17 +9473,17 @@ pub mod test { set_microblocks_processed( &mut chainstate, &consensus_hashes[i], - &block.block_hash(), - &block.header.parent_microblock, + &blocks[i].block_hash(), + &blocks[i].header.parent_microblock, ); - assert_block_stored_not_staging(&mut chainstate, &consensus_hashes[i], block); + assert_block_stored_not_staging(&mut chainstate, &consensus_hashes[i], blocks[i]); let mblocks_confirmed = StacksChainState::load_processed_microblock_stream_fork( chainstate.db(), &consensus_hashes[0], &blocks[0].block_hash(), - &block.header.parent_microblock, + &blocks[i].header.parent_microblock, ) .unwrap() .unwrap(); @@ -9562,24 +9559,24 @@ pub mod test { } // store blocks to staging - for (i, block) in blocks.iter().enumerate() { + for i in 0..blocks.len() { assert!(StacksChainState::load_staging_block_data( chainstate.db(), &chainstate.blocks_path, &consensus_hashes[i], - &block.block_hash() + &blocks[i].block_hash() ) .unwrap() .is_none()); store_staging_block( &mut chainstate, &consensus_hashes[i], - block, + &blocks[i], &parent_consensus_hashes[i], 1, 2, ); - assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], block); + assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], &blocks[i]); } // reject block 1 From d892a8996b506ba8672f4343725aebec166e2b9f Mon Sep 17 00:00:00 2001 From: Brice Dobry Date: Wed, 22 Jan 2025 16:31:42 -0500 Subject: [PATCH 14/21] chore: improved loops --- stackslib/src/chainstate/stacks/db/blocks.rs | 46 ++++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/stackslib/src/chainstate/stacks/db/blocks.rs b/stackslib/src/chainstate/stacks/db/blocks.rs index 681e4b2973..d9fba0ea48 100644 --- a/stackslib/src/chainstate/stacks/db/blocks.rs +++ b/stackslib/src/chainstate/stacks/db/blocks.rs @@ -9440,32 +9440,31 @@ pub mod test { assert_block_stored_not_staging(&mut chainstate, &consensus_hashes[0], blocks[0]); // process and store blocks 1 and N, as well as microblocks in-between - let len = blocks.len(); - for i in 1..len { + for (i, block) in blocks.iter().enumerate().skip(1) { // this is what happens at the end of append_block() // store block to staging and process it assert!(StacksChainState::load_staging_block_data( chainstate.db(), &chainstate.blocks_path, &consensus_hashes[i], - &blocks[i].block_hash() + &block.block_hash() ) .unwrap() .is_none()); store_staging_block( &mut chainstate, &consensus_hashes[i], - blocks[i], + block, &consensus_hashes[0], 1, 2, ); - assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], blocks[i]); + assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], block); set_block_processed( &mut chainstate, &consensus_hashes[i], - &blocks[i].block_hash(), + &block.block_hash(), true, ); @@ -9473,17 +9472,17 @@ pub mod test { set_microblocks_processed( &mut chainstate, &consensus_hashes[i], - &blocks[i].block_hash(), - &blocks[i].header.parent_microblock, + &block.block_hash(), + &block.header.parent_microblock, ); - assert_block_stored_not_staging(&mut chainstate, &consensus_hashes[i], blocks[i]); + assert_block_stored_not_staging(&mut chainstate, &consensus_hashes[i], block); let mblocks_confirmed = StacksChainState::load_processed_microblock_stream_fork( chainstate.db(), &consensus_hashes[0], &blocks[0].block_hash(), - &blocks[i].header.parent_microblock, + &block.header.parent_microblock, ) .unwrap() .unwrap(); @@ -9559,24 +9558,24 @@ pub mod test { } // store blocks to staging - for i in 0..blocks.len() { + for (i, block) in blocks.iter().enumerate() { assert!(StacksChainState::load_staging_block_data( chainstate.db(), &chainstate.blocks_path, &consensus_hashes[i], - &blocks[i].block_hash() + &block.block_hash() ) .unwrap() .is_none()); store_staging_block( &mut chainstate, &consensus_hashes[i], - &blocks[i], + &block, &parent_consensus_hashes[i], 1, 2, ); - assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], &blocks[i]); + assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], &block); } // reject block 1 @@ -9588,16 +9587,16 @@ pub mod test { ); // destroy all descendants - for i in 0..blocks.len() { + for (i, block) in blocks.iter().enumerate() { // confirm that block i is deleted, as are its microblocks - assert_block_stored_rejected(&mut chainstate, &consensus_hashes[i], &blocks[i]); + assert_block_stored_rejected(&mut chainstate, &consensus_hashes[i], block); // block i's microblocks should all be marked as processed, orphaned, and deleted - for mblock in microblocks[i].iter() { + for mblock in µblocks[i] { assert!(StacksChainState::load_staging_microblock( chainstate.db(), &consensus_hashes[i], - &blocks[i].block_hash(), + &block.block_hash(), &mblock.block_hash() ) .unwrap() @@ -9611,30 +9610,31 @@ pub mod test { .is_none()); } - if i + 1 < blocks.len() { + // Check block i+1 if it exists + if let Some(next_block) = blocks.get(i + 1) { // block i+1 should be marked as an orphan, but its data should still be there assert!(StacksChainState::load_staging_block( chainstate.db(), &chainstate.blocks_path, &consensus_hashes[i + 1], - &blocks[i + 1].block_hash() + &next_block.block_hash() ) .unwrap() .is_none()); assert!(!StacksChainState::load_block_bytes( &chainstate.blocks_path, &consensus_hashes[i + 1], - &blocks[i + 1].block_hash() + &next_block.block_hash() ) .unwrap() .unwrap() .is_empty()); - for mblock in microblocks[i + 1].iter() { + for mblock in µblocks[i + 1] { let staging_mblock = StacksChainState::load_staging_microblock( chainstate.db(), &consensus_hashes[i + 1], - &blocks[i + 1].block_hash(), + &next_block.block_hash(), &mblock.block_hash(), ) .unwrap() From af9f7eabf6e024b94a1998fe2cc2c6f87fb848f5 Mon Sep 17 00:00:00 2001 From: Jacinta Ferrant Date: Wed, 22 Jan 2025 13:54:24 -0800 Subject: [PATCH 15/21] Fix last of needless refs in loops Signed-off-by: Jacinta Ferrant --- clarity/src/vm/ast/parser/v2/mod.rs | 4 +--- stackslib/src/chainstate/stacks/db/blocks.rs | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/clarity/src/vm/ast/parser/v2/mod.rs b/clarity/src/vm/ast/parser/v2/mod.rs index d6d1500e54..dd5a900364 100644 --- a/clarity/src/vm/ast/parser/v2/mod.rs +++ b/clarity/src/vm/ast/parser/v2/mod.rs @@ -1121,9 +1121,7 @@ mod tests { use super::*; use crate::vm::diagnostic::Level; use crate::vm::representations::PreSymbolicExpressionType; - use crate::vm::types::{ - ASCIIData, CharType, PrincipalData, SequenceData, StandardPrincipalData, UTF8Data, - }; + use crate::vm::types::{ASCIIData, CharType, PrincipalData, SequenceData}; #[test] fn test_parse_int() { diff --git a/stackslib/src/chainstate/stacks/db/blocks.rs b/stackslib/src/chainstate/stacks/db/blocks.rs index 89e6e4b436..4e2c702471 100644 --- a/stackslib/src/chainstate/stacks/db/blocks.rs +++ b/stackslib/src/chainstate/stacks/db/blocks.rs @@ -9570,12 +9570,12 @@ pub mod test { store_staging_block( &mut chainstate, &consensus_hashes[i], - &block, + block, &parent_consensus_hashes[i], 1, 2, ); - assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], &block); + assert_block_staging_not_processed(&mut chainstate, &consensus_hashes[i], block); } // reject block 1 From b691268b2c64d6b1a2d2b25a30b58e3302e28269 Mon Sep 17 00:00:00 2001 From: Brice Dobry Date: Thu, 23 Jan 2025 10:21:32 -0500 Subject: [PATCH 16/21] chore: don't log the contract source on deploy error Logging the contract source is excessive. It can be retrieved if it is needed for debugging. --- stackslib/src/chainstate/stacks/db/transactions.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/stackslib/src/chainstate/stacks/db/transactions.rs b/stackslib/src/chainstate/stacks/db/transactions.rs index 88bbf73dfe..f004d909e0 100644 --- a/stackslib/src/chainstate/stacks/db/transactions.rs +++ b/stackslib/src/chainstate/stacks/db/transactions.rs @@ -1300,7 +1300,6 @@ impl StacksChainState { info!("Smart-contract processed with {}", err_type; "txid" => %tx.txid(), "contract" => %contract_id, - "code" => %contract_code_str, "error" => ?error); // When top-level code in a contract publish causes a runtime error, // the transaction is accepted, but the contract is not created. @@ -1345,7 +1344,6 @@ impl StacksChainState { info!("Smart-contract encountered an analysis error at runtime"; "txid" => %tx.txid(), "contract" => %contract_id, - "code" => %contract_code_str, "error" => %check_error); let receipt = @@ -1361,7 +1359,6 @@ impl StacksChainState { warn!("Unexpected analysis error invalidating transaction: if included, this will invalidate a block"; "txid" => %tx.txid(), "contract" => %contract_id, - "code" => %contract_code_str, "error" => %check_error); return Err(Error::ClarityError(clarity_error::Interpreter( InterpreterError::Unchecked(check_error), @@ -1372,7 +1369,6 @@ impl StacksChainState { error!("Unexpected error invalidating transaction: if included, this will invalidate a block"; "txid" => %tx.txid(), "contract_name" => %contract_id, - "code" => %contract_code_str, "error" => ?e); return Err(Error::ClarityError(e)); } From 9978402a120f1c9b3da830e0552b0b9c54e6adf4 Mon Sep 17 00:00:00 2001 From: Jeff Bencin Date: Thu, 23 Jan 2025 11:08:50 -0500 Subject: [PATCH 17/21] chore: Additional simplifications to `Vec` construction in clarity_cli.rs --- stackslib/src/clarity_cli.rs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/stackslib/src/clarity_cli.rs b/stackslib/src/clarity_cli.rs index 58b2e7895f..cc0ad11273 100644 --- a/stackslib/src/clarity_cli.rs +++ b/stackslib/src/clarity_cli.rs @@ -1002,7 +1002,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().cloned().collect(); + let mut argv = args.to_vec(); let mainnet = if let Ok(Some(_)) = consume_arg(&mut argv, &["--testnet"], false) { false @@ -1127,7 +1127,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option = args.into_iter().cloned().collect(); + let mut argv = args.to_vec(); let contract_id = if let Ok(optarg) = consume_arg(&mut argv, &["--contract_id"], true) { optarg .map(|optarg_str| { @@ -1253,7 +1253,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().cloned().collect(); + let mut argv = args.to_vec(); let mainnet = if let Ok(Some(_)) = consume_arg(&mut argv, &["--testnet"], false) { false } else { @@ -1281,15 +1281,15 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option ").unwrap_or_else(|e| { - panic!("Failed to write stdout prompt string:\n{}", e); + panic!("Failed to write stdout prompt string:\n{e}"); }); stdout.flush().unwrap_or_else(|e| { - panic!("Failed to flush stdout prompt string:\n{}", e); + panic!("Failed to flush stdout prompt string:\n{e}"); }); match io::stdin().read_line(&mut buffer) { Ok(_) => buffer, Err(error) => { - eprintln!("Error reading from stdin:\n{}", error); + eprintln!("Error reading from stdin:\n{error}"); panic_test!(); } } @@ -1385,7 +1385,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().cloned().collect(); + let mut argv = args.to_vec(); let costs = if let Ok(Some(_)) = consume_arg(&mut argv, &["--costs"], false) { true @@ -1448,7 +1448,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().cloned().collect(); + let mut argv = args.to_vec(); let costs = if let Ok(Some(_)) = consume_arg(&mut argv, &["--costs"], false) { true @@ -1530,7 +1530,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().cloned().collect(); + let mut argv = args.to_vec(); let costs = if let Ok(Some(_)) = consume_arg(&mut argv, &["--costs"], false) { true @@ -1612,7 +1612,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().cloned().collect(); + let mut argv = args.to_vec(); let coverage_folder = if let Ok(covarg) = consume_arg(&mut argv, &["--c"], true) { covarg } else { @@ -1767,7 +1767,7 @@ pub fn invoke_command(invoked_by: &str, args: &[String]) -> (i32, Option { - let mut argv: Vec = args.into_iter().cloned().collect(); + let mut argv = args.to_vec(); let coverage_folder = if let Ok(covarg) = consume_arg(&mut argv, &["--c"], true) { covarg } else { From dc5bbe317eadb658c15cdf62cb45e2565806dec3 Mon Sep 17 00:00:00 2001 From: Jeff Bencin Date: Thu, 23 Jan 2025 12:47:50 -0500 Subject: [PATCH 18/21] chore: Remove unnecessary `format!()` calls --- stackslib/src/net/api/tests/mod.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/stackslib/src/net/api/tests/mod.rs b/stackslib/src/net/api/tests/mod.rs index defbfe99ff..1259fb7002 100644 --- a/stackslib/src/net/api/tests/mod.rs +++ b/stackslib/src/net/api/tests/mod.rs @@ -338,8 +338,7 @@ impl<'a> TestRPC<'a> { let mut tx_contract = StacksTransaction::new( TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&privk1).unwrap(), - TransactionPayload::new_smart_contract(&format!("hello-world"), contract, None) - .unwrap(), + TransactionPayload::new_smart_contract("hello-world", contract, None).unwrap(), ); tx_contract.chain_id = 0x80000000; @@ -377,7 +376,7 @@ impl<'a> TestRPC<'a> { TransactionVersion::Testnet, TransactionAuth::from_p2pkh(&privk1).unwrap(), TransactionPayload::new_smart_contract( - &format!("hello-world-unconfirmed"), + "hello-world-unconfirmed", unconfirmed_contract, None, ) From 47a0d911ccfea964b5b7407ee95cafde56ba42d2 Mon Sep 17 00:00:00 2001 From: Jude Nelson Date: Thu, 23 Jan 2025 12:57:56 -0500 Subject: [PATCH 19/21] chore: refactor StacksAddress and PrincipalData to make them easier to use --- .github/workflows/bitcoin-tests.yml | 1 + clarity/src/libclarity.rs | 3 +- clarity/src/vm/contexts.rs | 14 +- clarity/src/vm/functions/conversions.rs | 4 + clarity/src/vm/functions/crypto.rs | 7 +- clarity/src/vm/functions/principals.rs | 19 +- clarity/src/vm/test_util/mod.rs | 2 +- clarity/src/vm/tests/principals.rs | 25 +- clarity/src/vm/tests/simple_apply_eval.rs | 12 +- clarity/src/vm/types/mod.rs | 134 ++-- clarity/src/vm/types/serialization.rs | 17 +- clarity/src/vm/types/signatures.rs | 4 +- libstackerdb/src/libstackerdb.rs | 2 +- libstackerdb/src/tests/mod.rs | 5 +- stacks-common/src/types/chainstate.rs | 66 +- stacks-common/src/types/mod.rs | 45 +- stacks-signer/src/cli.rs | 10 +- stacks-signer/src/v0/signer.rs | 4 +- stackslib/src/blockstack_cli.rs | 2 +- stackslib/src/burnchains/tests/db.rs | 5 +- stackslib/src/chainstate/burn/db/sortdb.rs | 38 +- .../burn/operations/delegate_stx.rs | 50 +- .../burn/operations/leader_block_commit.rs | 12 +- .../src/chainstate/burn/operations/mod.rs | 4 +- .../chainstate/burn/operations/stack_stx.rs | 30 +- .../burn/operations/test/serialization.rs | 15 +- .../burn/operations/transfer_stx.rs | 5 +- .../burn/operations/vote_for_aggregate_key.rs | 15 +- .../chainstate/nakamoto/coordinator/tests.rs | 14 +- stackslib/src/chainstate/nakamoto/mod.rs | 8 +- .../src/chainstate/nakamoto/test_signers.rs | 9 +- .../src/chainstate/nakamoto/tests/mod.rs | 9 +- .../src/chainstate/nakamoto/tests/node.rs | 2 +- stackslib/src/chainstate/stacks/address.rs | 274 +++----- stackslib/src/chainstate/stacks/auth.rs | 106 ++- stackslib/src/chainstate/stacks/block.rs | 20 +- .../chainstate/stacks/boot/contract_tests.rs | 6 +- stackslib/src/chainstate/stacks/boot/mod.rs | 76 +- .../src/chainstate/stacks/boot/pox_2_tests.rs | 147 ++-- .../src/chainstate/stacks/boot/pox_3_tests.rs | 137 ++-- .../src/chainstate/stacks/boot/pox_4_tests.rs | 493 +++++++++++-- .../src/chainstate/stacks/db/accounts.rs | 15 +- stackslib/src/chainstate/stacks/db/blocks.rs | 2 +- stackslib/src/chainstate/stacks/db/mod.rs | 19 +- .../src/chainstate/stacks/db/transactions.rs | 507 ++++++++++++-- stackslib/src/chainstate/stacks/mod.rs | 45 +- .../stacks/tests/chain_histories.rs | 3 +- .../src/chainstate/stacks/transaction.rs | 648 +++++++++--------- stackslib/src/config/chain_data.rs | 9 +- stackslib/src/core/tests/mod.rs | 103 +-- .../cost_estimates/tests/cost_estimators.rs | 10 +- .../src/cost_estimates/tests/fee_medians.rs | 2 +- .../src/cost_estimates/tests/fee_scalar.rs | 4 +- .../src/net/api/tests/postblock_proposal.rs | 5 +- .../src/net/api/tests/postmempoolquery.rs | 10 +- stackslib/src/net/codec.rs | 14 +- stackslib/src/net/db.rs | 40 +- stackslib/src/net/stackerdb/tests/config.rs | 39 +- stackslib/src/net/stackerdb/tests/db.rs | 223 ++---- stackslib/src/net/stackerdb/tests/sync.rs | 18 +- stackslib/src/net/tests/convergence.rs | 2 +- stackslib/src/net/tests/httpcore.rs | 5 +- stackslib/src/net/tests/mempool/mod.rs | 30 +- stackslib/src/net/tests/mod.rs | 2 +- stackslib/src/util_lib/boot.rs | 2 +- .../src/util_lib/signed_structured_data.rs | 4 +- testnet/stacks-node/src/tests/epoch_21.rs | 2 +- testnet/stacks-node/src/tests/epoch_22.rs | 18 +- testnet/stacks-node/src/tests/epoch_24.rs | 24 +- testnet/stacks-node/src/tests/mempool.rs | 10 +- .../src/tests/nakamoto_integrations.rs | 129 +++- .../src/tests/neon_integrations.rs | 2 +- testnet/stacks-node/src/tests/signer/v0.rs | 6 +- 73 files changed, 2274 insertions(+), 1529 deletions(-) diff --git a/.github/workflows/bitcoin-tests.yml b/.github/workflows/bitcoin-tests.yml index bb64a1a8b7..363e02044f 100644 --- a/.github/workflows/bitcoin-tests.yml +++ b/.github/workflows/bitcoin-tests.yml @@ -167,6 +167,7 @@ jobs: - tests::nakamoto_integrations::sip029_coinbase_change - tests::nakamoto_integrations::clarity_cost_spend_down - tests::nakamoto_integrations::v3_blockbyheight_api_endpoint + - tests::nakamoto_integrations::mine_invalid_principal_from_consensus_buff - tests::nakamoto_integrations::test_tenure_extend_from_flashblocks # TODO: enable these once v1 signer is supported by a new nakamoto epoch # - tests::signer::v1::dkg diff --git a/clarity/src/libclarity.rs b/clarity/src/libclarity.rs index 7ce2a4f903..9f1a0a06ba 100644 --- a/clarity/src/libclarity.rs +++ b/clarity/src/libclarity.rs @@ -60,7 +60,8 @@ pub mod boot_util { pub fn boot_code_id(name: &str, mainnet: bool) -> QualifiedContractIdentifier { let addr = boot_code_addr(mainnet); QualifiedContractIdentifier::new( - addr.into(), + addr.try_into() + .expect("FATAL: boot contract addr is not a legal principal"), ContractName::try_from(name.to_string()) .expect("FATAL: boot contract name is not a legal ContractName"), ) diff --git a/clarity/src/vm/contexts.rs b/clarity/src/vm/contexts.rs index c8050f6803..c716538f6d 100644 --- a/clarity/src/vm/contexts.rs +++ b/clarity/src/vm/contexts.rs @@ -2134,20 +2134,14 @@ mod test { mut tl_env_factory: TopLevelMemoryEnvironmentGenerator, ) { let mut env = tl_env_factory.get_env(epoch); - let u1 = StacksAddress { - version: 0, - bytes: Hash160([1; 20]), - }; - let u2 = StacksAddress { - version: 0, - bytes: Hash160([2; 20]), - }; + let u1 = StacksAddress::new(0, Hash160([1; 20])).unwrap(); + let u2 = StacksAddress::new(0, Hash160([2; 20])).unwrap(); // insufficient balance must be a non-includable transaction. it must error here, // not simply rollback the tx and squelch the error as includable. let e = env .stx_transfer( - &PrincipalData::from(u1), - &PrincipalData::from(u2), + &PrincipalData::try_from(u1).unwrap(), + &PrincipalData::try_from(u2).unwrap(), 1000, &BuffData::empty(), ) diff --git a/clarity/src/vm/functions/conversions.rs b/clarity/src/vm/functions/conversions.rs index 29fa7df651..db4c35fc71 100644 --- a/clarity/src/vm/functions/conversions.rs +++ b/clarity/src/vm/functions/conversions.rs @@ -20,6 +20,7 @@ use crate::vm::errors::{ check_argument_count, CheckErrors, InterpreterError, InterpreterResult as Result, }; use crate::vm::representations::SymbolicExpression; +use crate::vm::types::serialization::SerializationError; use crate::vm::types::SequenceSubtype::BufferType; use crate::vm::types::TypeSignature::SequenceType; use crate::vm::types::{ @@ -276,6 +277,9 @@ pub fn from_consensus_buff( env.epoch().value_sanitizing(), ) { Ok(value) => value, + Err(SerializationError::UnexpectedSerialization) => { + return Err(CheckErrors::Expects("UnexpectedSerialization".into()).into()) + } Err(_) => return Ok(Value::none()), }; if !type_arg.admits(env.epoch(), &result)? { diff --git a/clarity/src/vm/functions/crypto.rs b/clarity/src/vm/functions/crypto.rs index 9cc5f5ae9b..1dd92a8f8f 100644 --- a/clarity/src/vm/functions/crypto.rs +++ b/clarity/src/vm/functions/crypto.rs @@ -27,10 +27,7 @@ use crate::vm::errors::{ check_argument_count, CheckErrors, InterpreterError, InterpreterResult as Result, }; use crate::vm::representations::SymbolicExpression; -use crate::vm::types::{ - BuffData, SequenceData, StacksAddressExtensions, TypeSignature, Value, BUFF_32, BUFF_33, - BUFF_65, -}; +use crate::vm::types::{BuffData, SequenceData, TypeSignature, Value, BUFF_32, BUFF_33, BUFF_65}; use crate::vm::{eval, ClarityVersion, Environment, LocalContext}; macro_rules! native_hash_func { @@ -120,7 +117,7 @@ pub fn special_principal_of( } else { pubkey_to_address_v1(pub_key)? }; - let principal = addr.to_account_principal(); + let principal = addr.into(); Ok(Value::okay(Value::Principal(principal)) .map_err(|_| InterpreterError::Expect("Failed to construct ok".into()))?) } else { diff --git a/clarity/src/vm/functions/principals.rs b/clarity/src/vm/functions/principals.rs index e34e50148e..c3600e6654 100644 --- a/clarity/src/vm/functions/principals.rs +++ b/clarity/src/vm/functions/principals.rs @@ -58,15 +58,10 @@ pub fn special_is_standard( runtime_cost(ClarityCostFunction::IsStandard, env, 0)?; let owner = eval(&args[0], env, context)?; - let version = match owner { - Value::Principal(PrincipalData::Standard(StandardPrincipalData(version, _bytes))) => { - version - } - Value::Principal(PrincipalData::Contract(QualifiedContractIdentifier { - issuer, - name: _, - })) => issuer.0, - _ => return Err(CheckErrors::TypeValueError(TypeSignature::PrincipalType, owner).into()), + let version = if let Value::Principal(ref p) = owner { + p.version() + } else { + return Err(CheckErrors::TypeValueError(TypeSignature::PrincipalType, owner).into()); }; Ok(Value::Bool(version_matches_current_network( @@ -161,10 +156,12 @@ pub fn special_principal_destruct( let principal = eval(&args[0], env, context)?; let (version_byte, hash_bytes, name_opt) = match principal { - Value::Principal(PrincipalData::Standard(StandardPrincipalData(version, bytes))) => { + Value::Principal(PrincipalData::Standard(p)) => { + let (version, bytes) = p.destruct(); (version, bytes, None) } Value::Principal(PrincipalData::Contract(QualifiedContractIdentifier { issuer, name })) => { + let issuer = issuer.destruct(); (issuer.0, issuer.1, Some(name)) } _ => { @@ -254,7 +251,7 @@ pub fn special_principal_construct( // Construct the principal. let mut transfer_buffer = [0u8; 20]; transfer_buffer.copy_from_slice(verified_hash_bytes); - let principal_data = StandardPrincipalData(version_byte, transfer_buffer); + let principal_data = StandardPrincipalData::new(version_byte, transfer_buffer)?; let principal = if let Some(name) = name_opt { // requested a contract principal. Verify that the `name` is a valid ContractName. diff --git a/clarity/src/vm/test_util/mod.rs b/clarity/src/vm/test_util/mod.rs index 37a40182eb..07e557119c 100644 --- a/clarity/src/vm/test_util/mod.rs +++ b/clarity/src/vm/test_util/mod.rs @@ -108,7 +108,7 @@ impl From<&StacksPrivateKey> for StandardPrincipalData { &vec![StacksPublicKey::from_private(o)], ) .unwrap(); - StandardPrincipalData::from(stacks_addr) + StandardPrincipalData::try_from(stacks_addr).unwrap() } } diff --git a/clarity/src/vm/tests/principals.rs b/clarity/src/vm/tests/principals.rs index 98db149273..06fd3e546f 100644 --- a/clarity/src/vm/tests/principals.rs +++ b/clarity/src/vm/tests/principals.rs @@ -668,7 +668,7 @@ fn test_principal_construct_good() { Value::Response(ResponseData { committed: true, data: Box::new(Value::Principal(PrincipalData::Standard( - StandardPrincipalData(22, transfer_buffer) + StandardPrincipalData::new(22, transfer_buffer).unwrap() ))) }), execute_with_parameters( @@ -688,7 +688,7 @@ fn test_principal_construct_good() { Value::Response(ResponseData { committed: true, data: Box::new(Value::Principal(PrincipalData::Standard( - StandardPrincipalData(20, transfer_buffer) + StandardPrincipalData::new(20, transfer_buffer).unwrap() ))) }), execute_with_parameters( @@ -710,7 +710,7 @@ fn test_principal_construct_good() { committed: true, data: Box::new(Value::Principal(PrincipalData::Contract( QualifiedContractIdentifier::new( - StandardPrincipalData(22, transfer_buffer), + StandardPrincipalData::new(22, transfer_buffer).unwrap(), "hello-world".into() ) ))) @@ -734,7 +734,7 @@ fn test_principal_construct_good() { committed: true, data: Box::new(Value::Principal(PrincipalData::Contract( QualifiedContractIdentifier::new( - StandardPrincipalData(20, transfer_buffer), + StandardPrincipalData::new(20, transfer_buffer).unwrap(), "hello-world".into() ) ))) @@ -756,7 +756,7 @@ fn test_principal_construct_good() { Value::Response(ResponseData { committed: true, data: Box::new(Value::Principal(PrincipalData::Standard( - StandardPrincipalData(26, transfer_buffer) + StandardPrincipalData::new(26, transfer_buffer).unwrap() ))) }), execute_with_parameters( @@ -776,7 +776,7 @@ fn test_principal_construct_good() { Value::Response(ResponseData { committed: true, data: Box::new(Value::Principal(PrincipalData::Standard( - StandardPrincipalData(21, transfer_buffer) + StandardPrincipalData::new(21, transfer_buffer).unwrap() ))) }), execute_with_parameters( @@ -798,7 +798,7 @@ fn test_principal_construct_good() { committed: true, data: Box::new(Value::Principal(PrincipalData::Contract( QualifiedContractIdentifier::new( - StandardPrincipalData(26, transfer_buffer), + StandardPrincipalData::new(26, transfer_buffer).unwrap(), "hello-world".into() ) ))) @@ -822,7 +822,7 @@ fn test_principal_construct_good() { committed: true, data: Box::new(Value::Principal(PrincipalData::Contract( QualifiedContractIdentifier::new( - StandardPrincipalData(21, transfer_buffer), + StandardPrincipalData::new(21, transfer_buffer).unwrap(), "hello-world".into() ) ))) @@ -853,15 +853,14 @@ fn create_principal_from_strings( if let Some(name) = name { // contract principal requested Value::Principal(PrincipalData::Contract(QualifiedContractIdentifier::new( - StandardPrincipalData(version_array[0], principal_array), + StandardPrincipalData::new(version_array[0], principal_array).unwrap(), name.into(), ))) } else { // standard principal requested - Value::Principal(PrincipalData::Standard(StandardPrincipalData( - version_array[0], - principal_array, - ))) + Value::Principal(PrincipalData::Standard( + StandardPrincipalData::new(version_array[0], principal_array).unwrap(), + )) } } diff --git a/clarity/src/vm/tests/simple_apply_eval.rs b/clarity/src/vm/tests/simple_apply_eval.rs index f6dbd87090..861cf60224 100644 --- a/clarity/src/vm/tests/simple_apply_eval.rs +++ b/clarity/src/vm/tests/simple_apply_eval.rs @@ -430,7 +430,7 @@ fn test_secp256k1() { ) .unwrap(); eprintln!("addr from privk {:?}", &addr); - let principal = addr.to_account_principal(); + let principal = addr.try_into().unwrap(); if let PrincipalData::Standard(data) = principal { eprintln!("test_secp256k1 principal {:?}", data.to_address()); } @@ -446,7 +446,7 @@ fn test_secp256k1() { ) .unwrap(); eprintln!("addr from hex {:?}", addr); - let principal = addr.to_account_principal(); + let principal: PrincipalData = addr.try_into().unwrap(); if let PrincipalData::Standard(data) = principal.clone() { eprintln!("test_secp256k1 principal {:?}", data.to_address()); } @@ -491,8 +491,9 @@ fn test_principal_of_fix() { .unwrap()], ) .unwrap() - .to_account_principal(); - let testnet_principal = StacksAddress::from_public_keys( + .try_into() + .unwrap(); + let testnet_principal: PrincipalData = StacksAddress::from_public_keys( C32_ADDRESS_VERSION_TESTNET_SINGLESIG, &AddressHashMode::SerializeP2PKH, 1, @@ -502,7 +503,8 @@ fn test_principal_of_fix() { .unwrap()], ) .unwrap() - .to_account_principal(); + .try_into() + .unwrap(); // Clarity2, mainnet, should have a mainnet principal. assert_eq!( diff --git a/clarity/src/vm/types/mod.rs b/clarity/src/vm/types/mod.rs index e789676f5c..804d5f2eb1 100644 --- a/clarity/src/vm/types/mod.rs +++ b/clarity/src/vm/types/mod.rs @@ -66,15 +66,72 @@ pub struct ListData { pub type_signature: ListTypeData, } -#[derive(Clone, Eq, PartialEq, Hash, Serialize, Deserialize, PartialOrd, Ord)] -pub struct StandardPrincipalData(pub u8, pub [u8; 20]); - -impl StandardPrincipalData { - pub fn transient() -> StandardPrincipalData { - Self( - 1, - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], - ) +pub use self::std_principals::StandardPrincipalData; + +mod std_principals { + use std::fmt; + + use stacks_common::address::c32; + + use crate::vm::errors::InterpreterError; + + #[derive(Clone, Eq, PartialEq, Hash, Serialize, Deserialize, PartialOrd, Ord)] + pub struct StandardPrincipalData(u8, pub [u8; 20]); + + impl StandardPrincipalData { + pub fn transient() -> StandardPrincipalData { + Self( + 1, + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + ) + } + } + + impl StandardPrincipalData { + pub fn new(version: u8, bytes: [u8; 20]) -> Result { + if version >= 32 { + return Err(InterpreterError::Expect("Unexpected principal data".into())); + } + Ok(Self(version, bytes)) + } + + /// NEVER, EVER use this in ANY production code. + /// `version` must NEVER be greater than 31. + #[cfg(any(test, feature = "testing"))] + pub fn new_unsafe(version: u8, bytes: [u8; 20]) -> Self { + Self(version, bytes) + } + + pub fn null_principal() -> Self { + Self::new(0, [0; 20]).unwrap() + } + + pub fn version(&self) -> u8 { + self.0 + } + + pub fn to_address(&self) -> String { + c32::c32_address(self.0, &self.1[..]).unwrap_or_else(|_| "INVALID_C32_ADD".to_string()) + } + + pub fn destruct(self) -> (u8, [u8; 20]) { + let Self(version, bytes) = self; + (version, bytes) + } + } + + impl fmt::Display for StandardPrincipalData { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + let c32_str = self.to_address(); + write!(f, "{}", c32_str) + } + } + + impl fmt::Debug for StandardPrincipalData { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + let c32_str = self.to_address(); + write!(f, "StandardPrincipalData({})", c32_str) + } } } @@ -169,7 +226,9 @@ pub trait StacksAddressExtensions { impl StacksAddressExtensions for StacksAddress { fn to_account_principal(&self) -> PrincipalData { - PrincipalData::Standard(StandardPrincipalData(self.version, *self.bytes.as_bytes())) + PrincipalData::Standard( + StandardPrincipalData::new(self.version(), *self.bytes().as_bytes()).unwrap(), + ) } } @@ -1372,11 +1431,20 @@ impl fmt::Display for Value { impl PrincipalData { pub fn version(&self) -> u8 { match self { - PrincipalData::Standard(StandardPrincipalData(version, _)) => *version, - PrincipalData::Contract(QualifiedContractIdentifier { issuer, name: _ }) => issuer.0, + PrincipalData::Standard(ref p) => p.version(), + PrincipalData::Contract(QualifiedContractIdentifier { issuer, name: _ }) => { + issuer.version() + } } } + /// A version is only valid if it fits into 5 bits. + /// This is enforced by the constructor, but it was historically possible to assemble invalid + /// addresses. This function is used to validate historic addresses. + pub fn has_valid_version(&self) -> bool { + self.version() < 32 + } + pub fn parse(literal: &str) -> Result { // be permissive about leading single-quote let literal = literal.strip_prefix('\'').unwrap_or(literal); @@ -1405,27 +1473,7 @@ impl PrincipalData { } let mut fixed_data = [0; 20]; fixed_data.copy_from_slice(&data[..20]); - Ok(StandardPrincipalData(version, fixed_data)) - } -} - -impl StandardPrincipalData { - pub fn to_address(&self) -> String { - c32::c32_address(self.0, &self.1[..]).unwrap_or_else(|_| "INVALID_C32_ADD".to_string()) - } -} - -impl fmt::Display for StandardPrincipalData { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let c32_str = self.to_address(); - write!(f, "{}", c32_str) - } -} - -impl fmt::Debug for StandardPrincipalData { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - let c32_str = self.to_address(); - write!(f, "StandardPrincipalData({})", c32_str) + Ok(StandardPrincipalData::new(version, fixed_data)?) } } @@ -1463,23 +1511,29 @@ impl fmt::Display for TraitIdentifier { } impl From for StandardPrincipalData { - fn from(addr: StacksAddress) -> StandardPrincipalData { - StandardPrincipalData(addr.version, addr.bytes.0) + fn from(addr: StacksAddress) -> Self { + let (version, bytes) = addr.destruct(); + + // should be infallible because it's impossible to construct a StacksAddress with an + // unsupported version byte + Self::new(version, bytes.0) + .expect("FATAL: could not convert StacksAddress to StandardPrincipalData") } } impl From for PrincipalData { - fn from(addr: StacksAddress) -> PrincipalData { + fn from(addr: StacksAddress) -> Self { PrincipalData::from(StandardPrincipalData::from(addr)) } } impl From for StacksAddress { fn from(o: StandardPrincipalData) -> StacksAddress { - StacksAddress { - version: o.0, - bytes: hash::Hash160(o.1), - } + // should be infallible because it's impossible to construct a StandardPrincipalData with + // an unsupported version byte + StacksAddress::new(o.version(), hash::Hash160(o.1)).unwrap_or_else(|_| { + panic!("FATAL: could not convert a StandardPrincipalData to StacksAddress") + }) } } diff --git a/clarity/src/vm/types/serialization.rs b/clarity/src/vm/types/serialization.rs index 57bce8bb6c..52ec60af2f 100644 --- a/clarity/src/vm/types/serialization.rs +++ b/clarity/src/vm/types/serialization.rs @@ -47,6 +47,7 @@ pub enum SerializationError { DeserializeExpected(TypeSignature), LeftoverBytesInDeserialization, SerializationError(String), + UnexpectedSerialization, } lazy_static! { @@ -90,6 +91,9 @@ impl std::fmt::Display for SerializationError { "Deserialization expected the type of the input to be: {}", e ), + SerializationError::UnexpectedSerialization => { + write!(f, "The serializer handled an input in an unexpected way") + } SerializationError::LeftoverBytesInDeserialization => { write!(f, "Deserialization error: bytes left over in buffer") } @@ -201,7 +205,7 @@ trait ClarityValueSerializable { impl ClarityValueSerializable for StandardPrincipalData { fn serialize_write(&self, w: &mut W) -> std::io::Result<()> { - w.write_all(&[self.0])?; + w.write_all(&[self.version()])?; w.write_all(&self.1) } @@ -210,7 +214,8 @@ impl ClarityValueSerializable for StandardPrincipalData { let mut data = [0; 20]; r.read_exact(&mut version)?; r.read_exact(&mut data)?; - Ok(StandardPrincipalData(version[0], data)) + StandardPrincipalData::new(version[0], data) + .map_err(|_| SerializationError::UnexpectedSerialization) } } @@ -2110,16 +2115,16 @@ pub mod tests { ("03", Ok(Value::Bool(true))), ("04", Ok(Value::Bool(false))), ("050011deadbeef11ababffff11deadbeef11ababffff", Ok( - StandardPrincipalData( + StandardPrincipalData::new( 0x00, [0x11, 0xde, 0xad, 0xbe, 0xef, 0x11, 0xab, 0xab, 0xff, 0xff, - 0x11, 0xde, 0xad, 0xbe, 0xef, 0x11, 0xab, 0xab, 0xff, 0xff]).into())), + 0x11, 0xde, 0xad, 0xbe, 0xef, 0x11, 0xab, 0xab, 0xff, 0xff]).unwrap().into())), ("060011deadbeef11ababffff11deadbeef11ababffff0461626364", Ok( QualifiedContractIdentifier::new( - StandardPrincipalData( + StandardPrincipalData::new( 0x00, [0x11, 0xde, 0xad, 0xbe, 0xef, 0x11, 0xab, 0xab, 0xff, 0xff, - 0x11, 0xde, 0xad, 0xbe, 0xef, 0x11, 0xab, 0xab, 0xff, 0xff]), + 0x11, 0xde, 0xad, 0xbe, 0xef, 0x11, 0xab, 0xab, 0xff, 0xff]).unwrap(), "abcd".into()).into())), ("0700ffffffffffffffffffffffffffffffff", Ok(Value::okay(Value::Int(-1)).unwrap())), ("0800ffffffffffffffffffffffffffffffff", Ok(Value::error(Value::Int(-1)).unwrap())), diff --git a/clarity/src/vm/types/signatures.rs b/clarity/src/vm/types/signatures.rs index e76c7e034d..f41b8ed1a3 100644 --- a/clarity/src/vm/types/signatures.rs +++ b/clarity/src/vm/types/signatures.rs @@ -50,7 +50,7 @@ impl AssetIdentifier { pub fn STX() -> AssetIdentifier { AssetIdentifier { contract_identifier: QualifiedContractIdentifier::new( - StandardPrincipalData(0, [0u8; 20]), + StandardPrincipalData::null_principal(), ContractName::try_from("STX".to_string()).unwrap(), ), asset_name: ClarityName::try_from("STX".to_string()).unwrap(), @@ -61,7 +61,7 @@ impl AssetIdentifier { pub fn STX_burned() -> AssetIdentifier { AssetIdentifier { contract_identifier: QualifiedContractIdentifier::new( - StandardPrincipalData(0, [0u8; 20]), + StandardPrincipalData::null_principal(), ContractName::try_from("BURNED".to_string()).unwrap(), ), asset_name: ClarityName::try_from("BURNED".to_string()).unwrap(), diff --git a/libstackerdb/src/libstackerdb.rs b/libstackerdb/src/libstackerdb.rs index 36d7dd3643..539025d197 100644 --- a/libstackerdb/src/libstackerdb.rs +++ b/libstackerdb/src/libstackerdb.rs @@ -186,7 +186,7 @@ impl SlotMetadata { .map_err(|ve| Error::VerifyingError(ve.to_string()))?; let pubkh = Hash160::from_node_public_key(&pubk); - Ok(pubkh == principal.bytes) + Ok(pubkh == *principal.bytes()) } } diff --git a/libstackerdb/src/tests/mod.rs b/libstackerdb/src/tests/mod.rs index b0135eb72d..f0e166a67b 100644 --- a/libstackerdb/src/tests/mod.rs +++ b/libstackerdb/src/tests/mod.rs @@ -32,10 +32,7 @@ fn test_stackerdb_slot_metadata_sign_verify() { &vec![StacksPublicKey::from_private(&pk)], ) .unwrap(); - let bad_addr = StacksAddress { - version: 0x01, - bytes: Hash160([0x01; 20]), - }; + let bad_addr = StacksAddress::new(0x01, Hash160([0x01; 20])).unwrap(); let chunk_data = StackerDBChunkData { slot_id: 0, diff --git a/stacks-common/src/types/chainstate.rs b/stacks-common/src/types/chainstate.rs index 630ce70c9d..59052ff3a9 100644 --- a/stacks-common/src/types/chainstate.rs +++ b/stacks-common/src/types/chainstate.rs @@ -1,3 +1,19 @@ +// Copyright (C) 2013-2020 Blockstack PBC, a public benefit corporation +// Copyright (C) 2020-2025 Stacks Open Internet Foundation +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + use std::fmt::{self, Display}; use std::io::{Read, Write}; use std::str::FromStr; @@ -9,6 +25,7 @@ use serde::ser::Error as ser_Error; use serde::Serialize; use sha2::{Digest as Sha2Digest, Sha256, Sha512_256}; +use crate::address::Error as AddressError; use crate::codec::{read_next, write_next, Error as CodecError, StacksMessageCodec}; use crate::consts::{FIRST_BURNCHAIN_CONSENSUS_HASH, FIRST_STACKS_BLOCK_HASH}; use crate::deps_common::bitcoin::util::hash::Sha256dHash; @@ -277,8 +294,48 @@ impl fmt::Display for PoxId { #[derive(Debug, Clone, PartialEq, Eq, Copy, Serialize, Deserialize, Hash)] pub struct StacksAddress { - pub version: u8, - pub bytes: Hash160, + version: u8, + bytes: Hash160, +} + +impl StacksAddress { + pub fn new(version: u8, hash: Hash160) -> Result { + if version >= 32 { + return Err(AddressError::InvalidVersion(version)); + } + + Ok(StacksAddress { + version, + bytes: hash, + }) + } + + // NEVER, EVER use this in ANY production code! + // It should never be possible to construct an address with a version greater than 31 + #[cfg(any(test, feature = "testing"))] + pub fn new_unsafe(version: u8, bytes: Hash160) -> Self { + Self { version, bytes } + } + + pub fn version(&self) -> u8 { + self.version + } + + pub fn bytes(&self) -> &Hash160 { + &self.bytes + } + + pub fn destruct(self) -> (u8, Hash160) { + (self.version, self.bytes) + } + + /// Because addresses are crockford-32 encoded, the version must be a 5-bit number. + /// Historically, it was possible to construct invalid addresses given that we use a u8 to + /// represent the version. This function is used to validate addresses before relying on their + /// version. + pub fn has_valid_version(&self) -> bool { + self.version < 32 + } } impl StacksMessageCodec for StacksAddress { @@ -290,6 +347,11 @@ impl StacksMessageCodec for StacksAddress { fn consensus_deserialize(fd: &mut R) -> Result { let version: u8 = read_next(fd)?; + if version >= 32 { + return Err(CodecError::DeserializeError( + "Address version byte must be in range 0 to 31".into(), + )); + } let hash160: Hash160 = read_next(fd)?; Ok(StacksAddress { version, diff --git a/stacks-common/src/types/mod.rs b/stacks-common/src/types/mod.rs index 07201b4888..de8db644fa 100644 --- a/stacks-common/src/types/mod.rs +++ b/stacks-common/src/types/mod.rs @@ -591,23 +591,16 @@ impl PartialOrd for StacksAddress { impl Ord for StacksAddress { fn cmp(&self, other: &StacksAddress) -> Ordering { - match self.version.cmp(&other.version) { - Ordering::Equal => self.bytes.cmp(&other.bytes), + match self.version().cmp(&other.version()) { + Ordering::Equal => self.bytes().cmp(&other.bytes()), inequality => inequality, } } } impl StacksAddress { - pub fn new(version: u8, hash: Hash160) -> StacksAddress { - StacksAddress { - version, - bytes: hash, - } - } - pub fn is_mainnet(&self) -> bool { - match self.version { + match self.version() { C32_ADDRESS_VERSION_MAINNET_MULTISIG | C32_ADDRESS_VERSION_MAINNET_SINGLESIG => true, C32_ADDRESS_VERSION_TESTNET_MULTISIG | C32_ADDRESS_VERSION_TESTNET_SINGLESIG => false, _ => false, @@ -615,14 +608,16 @@ impl StacksAddress { } pub fn burn_address(mainnet: bool) -> StacksAddress { - StacksAddress { - version: if mainnet { + Self::new( + if mainnet { C32_ADDRESS_VERSION_MAINNET_SINGLESIG } else { C32_ADDRESS_VERSION_TESTNET_SINGLESIG }, - bytes: Hash160([0u8; 20]), - } + Hash160([0u8; 20]), + ) + .unwrap_or_else(|_| panic!("FATAL: constant address versions are invalid")) + // infallible } /// Generate an address from a given address hash mode, signature threshold, and list of public @@ -663,7 +658,7 @@ impl StacksAddress { } let hash_bits = public_keys_to_address_hash(hash_mode, num_sigs, pubkeys); - Some(StacksAddress::new(version, hash_bits)) + StacksAddress::new(version, hash_bits).ok() } /// Make a P2PKH StacksAddress @@ -679,16 +674,17 @@ impl StacksAddress { } else { C32_ADDRESS_VERSION_TESTNET_SINGLESIG }; - Self { - version, - bytes: hash, - } + Self::new(version, hash) + .unwrap_or_else(|_| panic!("FATAL: constant address versions are invalid")) + // infallible } } impl std::fmt::Display for StacksAddress { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - c32_address(self.version, self.bytes.as_bytes()) + // the .unwrap_or_else() should be unreachable since StacksAddress is constructed to only + // accept a 5-bit value for its version + c32_address(self.version(), self.bytes().as_bytes()) .expect("Stacks version is not C32-encodable") .fmt(f) } @@ -696,7 +692,7 @@ impl std::fmt::Display for StacksAddress { impl Address for StacksAddress { fn to_bytes(&self) -> Vec { - self.bytes.as_bytes().to_vec() + self.bytes().as_bytes().to_vec() } fn from_string(s: &str) -> Option { @@ -708,14 +704,11 @@ impl Address for StacksAddress { let mut hash_bytes = [0u8; 20]; hash_bytes.copy_from_slice(&bytes[..]); - Some(StacksAddress { - version, - bytes: Hash160(hash_bytes), - }) + StacksAddress::new(version, Hash160(hash_bytes)).ok() } fn is_burn(&self) -> bool { - self.bytes == Hash160([0u8; 20]) + self.bytes() == &Hash160([0u8; 20]) } } diff --git a/stacks-signer/src/cli.rs b/stacks-signer/src/cli.rs index 7b666d3762..5d5b8806e7 100644 --- a/stacks-signer/src/cli.rs +++ b/stacks-signer/src/cli.rs @@ -340,14 +340,14 @@ pub fn parse_pox_addr(pox_address_literal: &str) -> Result { Ok, ); match parsed_addr { - Ok(PoxAddress::Standard(addr, None)) => match addr.version { + Ok(PoxAddress::Standard(addr, None)) => match addr.version() { C32_ADDRESS_VERSION_MAINNET_MULTISIG | C32_ADDRESS_VERSION_TESTNET_MULTISIG => Ok( PoxAddress::Standard(addr, Some(AddressHashMode::SerializeP2SH)), ), C32_ADDRESS_VERSION_MAINNET_SINGLESIG | C32_ADDRESS_VERSION_TESTNET_SINGLESIG => Ok( PoxAddress::Standard(addr, Some(AddressHashMode::SerializeP2PKH)), ), - _ => Err(format!("Invalid address version: {}", addr.version)), + _ => Err(format!("Invalid address version: {}", addr.version())), }, _ => parsed_addr, } @@ -451,7 +451,7 @@ mod tests { ); match pox_addr { PoxAddress::Standard(stacks_addr, hash_mode) => { - assert_eq!(stacks_addr.version, 22); + assert_eq!(stacks_addr.version(), 22); assert_eq!(hash_mode, Some(AddressHashMode::SerializeP2PKH)); } _ => panic!("Invalid parsed address"), @@ -467,7 +467,7 @@ mod tests { make_message_hash(&pox_addr); match pox_addr { PoxAddress::Standard(stacks_addr, hash_mode) => { - assert_eq!(stacks_addr.version, 20); + assert_eq!(stacks_addr.version(), 20); assert_eq!(hash_mode, Some(AddressHashMode::SerializeP2SH)); } _ => panic!("Invalid parsed address"), @@ -483,7 +483,7 @@ mod tests { make_message_hash(&pox_addr); match pox_addr { PoxAddress::Standard(stacks_addr, hash_mode) => { - assert_eq!(stacks_addr.version, C32_ADDRESS_VERSION_TESTNET_SINGLESIG); + assert_eq!(stacks_addr.version(), C32_ADDRESS_VERSION_TESTNET_SINGLESIG); assert_eq!(hash_mode, Some(AddressHashMode::SerializeP2PKH)); } _ => panic!("Invalid parsed address"), diff --git a/stacks-signer/src/v0/signer.rs b/stacks-signer/src/v0/signer.rs index dfd61ee35d..70253f8258 100644 --- a/stacks-signer/src/v0/signer.rs +++ b/stacks-signer/src/v0/signer.rs @@ -985,7 +985,7 @@ impl Signer { // authenticate the signature -- it must be signed by one of the stacking set let is_valid_sig = self.signer_addresses.iter().any(|addr| { // it only matters that the address hash bytes match - signer_address.bytes == addr.bytes + signer_address.bytes() == addr.bytes() }); if !is_valid_sig { @@ -1081,7 +1081,7 @@ impl Signer { let stacker_address = StacksAddress::p2pkh(self.mainnet, &public_key); // it only matters that the address hash bytes match - stacker_address.bytes == addr.bytes + stacker_address.bytes() == addr.bytes() }); if !is_valid_sig { diff --git a/stackslib/src/blockstack_cli.rs b/stackslib/src/blockstack_cli.rs index 7de42614a7..06ea43359f 100644 --- a/stackslib/src/blockstack_cli.rs +++ b/stackslib/src/blockstack_cli.rs @@ -633,7 +633,7 @@ fn get_addresses(args: &[String], version: TransactionVersion) -> Result TxOut { - let btc_version = to_b58_version_byte(addr.version) + let btc_version = to_b58_version_byte(addr.version()) .expect("BUG: failed to decode Stacks version byte to Bitcoin version byte"); let btc_addr_type = legacy_version_byte_to_address_type(btc_version) .expect("BUG: failed to decode Bitcoin version byte") .0; match btc_addr_type { LegacyBitcoinAddressType::PublicKeyHash => { - LegacyBitcoinAddress::to_p2pkh_tx_out(&addr.bytes, value) + LegacyBitcoinAddress::to_p2pkh_tx_out(addr.bytes(), value) } LegacyBitcoinAddressType::ScriptHash => { - LegacyBitcoinAddress::to_p2sh_tx_out(&addr.bytes, value) + LegacyBitcoinAddress::to_p2sh_tx_out(addr.bytes(), value) } } } @@ -1764,8 +1764,8 @@ mod tests { memo: vec![0x1f], commit_outs: vec![ - PoxAddress::Standard( StacksAddress { version: 26, bytes: Hash160::empty() }, None ), - PoxAddress::Standard( StacksAddress { version: 26, bytes: Hash160::empty() }, None ), + PoxAddress::Standard( StacksAddress::new(26, Hash160::empty()).unwrap(), None ), + PoxAddress::Standard( StacksAddress::new(26, Hash160::empty()).unwrap(), None ), ], burn_fee: 24690, @@ -3260,7 +3260,7 @@ mod tests { let anchor_block_hash = BlockHeaderHash([0xaa; 32]); fn reward_addrs(i: usize) -> PoxAddress { - let addr = StacksAddress::new(1, Hash160::from_data(&i.to_be_bytes())); + let addr = StacksAddress::new(1, Hash160::from_data(&i.to_be_bytes())).unwrap(); PoxAddress::Standard(addr, None) } let burn_addr_0 = PoxAddress::Standard(StacksAddress::burn_address(false), None); diff --git a/stackslib/src/chainstate/burn/operations/mod.rs b/stackslib/src/chainstate/burn/operations/mod.rs index 5688fa4983..3d032d4c8a 100644 --- a/stackslib/src/chainstate/burn/operations/mod.rs +++ b/stackslib/src/chainstate/burn/operations/mod.rs @@ -369,8 +369,8 @@ pub fn stacks_addr_serialize(addr: &StacksAddress) -> serde_json::Value { let addr_str = addr.to_string(); json!({ "address": addr_str, - "address_hash_bytes": format!("0x{}", addr.bytes), - "address_version": addr.version + "address_hash_bytes": format!("0x{}", addr.bytes()), + "address_version": addr.version() }) } diff --git a/stackslib/src/chainstate/burn/operations/stack_stx.rs b/stackslib/src/chainstate/burn/operations/stack_stx.rs index 05db7637ae..2ec23d89e6 100644 --- a/stackslib/src/chainstate/burn/operations/stack_stx.rs +++ b/stackslib/src/chainstate/burn/operations/stack_stx.rs @@ -507,10 +507,7 @@ mod tests { ], }; - let sender = StacksAddress { - version: 0, - bytes: Hash160([0; 20]), - }; + let sender = StacksAddress::new(0, Hash160([0; 20])).unwrap(); let op = PreStxOp::parse_from_tx( 16843022, &BurnchainHeaderHash([0; 32]), @@ -571,10 +568,7 @@ mod tests { ], }; - let sender = StacksAddress { - version: 0, - bytes: Hash160([0; 20]), - }; + let sender = StacksAddress::new(0, Hash160([0; 20])).unwrap(); // pre-2.1 this fails let op_err = PreStxOp::parse_from_tx( @@ -652,10 +646,7 @@ mod tests { ], }; - let sender = StacksAddress { - version: 0, - bytes: Hash160([0; 20]), - }; + let sender = StacksAddress::new(0, Hash160([0; 20])).unwrap(); let op = StackStxOp::parse_from_tx( 16843022, &BurnchainHeaderHash([0; 32]), @@ -726,10 +717,7 @@ mod tests { ], }; - let sender = StacksAddress { - version: 0, - bytes: Hash160([0; 20]), - }; + let sender = StacksAddress::new(0, Hash160([0; 20])).unwrap(); let op = StackStxOp::parse_from_tx( 16843022, &BurnchainHeaderHash([0; 32]), @@ -798,10 +786,7 @@ mod tests { ], }; - let sender = StacksAddress { - version: 0, - bytes: Hash160([0; 20]), - }; + let sender = StacksAddress::new(0, Hash160([0; 20])).unwrap(); // pre-2.1: this fails let op_err = StackStxOp::parse_from_tx( @@ -849,10 +834,7 @@ mod tests { let sender_addr = "ST2QKZ4FKHAH1NQKYKYAYZPY440FEPK7GZ1R5HBP2"; let sender = StacksAddress::from_string(sender_addr).unwrap(); let reward_addr = PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160([0x01; 20]), - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_SINGLESIG, Hash160([0x01; 20])).unwrap(), None, ); let op = StackStxOp { diff --git a/stackslib/src/chainstate/burn/operations/test/serialization.rs b/stackslib/src/chainstate/burn/operations/test/serialization.rs index cbc48f7e6e..b698ae4a6f 100644 --- a/stackslib/src/chainstate/burn/operations/test/serialization.rs +++ b/stackslib/src/chainstate/burn/operations/test/serialization.rs @@ -61,10 +61,7 @@ fn test_serialization_stack_stx_op() { let sender_addr = "ST2QKZ4FKHAH1NQKYKYAYZPY440FEPK7GZ1R5HBP2"; let sender = StacksAddress::from_string(sender_addr).unwrap(); let reward_addr = PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160([0x01; 20]), - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_SINGLESIG, Hash160([0x01; 20])).unwrap(), None, ); @@ -110,10 +107,7 @@ fn test_serialization_stack_stx_op_with_signer_key() { let sender_addr = "ST2QKZ4FKHAH1NQKYKYAYZPY440FEPK7GZ1R5HBP2"; let sender = StacksAddress::from_string(sender_addr).unwrap(); let reward_addr = PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160([0x01; 20]), - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_SINGLESIG, Hash160([0x01; 20])).unwrap(), None, ); @@ -191,10 +185,7 @@ fn test_serialization_delegate_stx_op() { let delegate_to_addr = "SP24ZBZ8ZE6F48JE9G3F3HRTG9FK7E2H6K2QZ3Q1K"; let delegate_to = StacksAddress::from_string(delegate_to_addr).unwrap(); let pox_addr = PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160([0x01; 20]), - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_SINGLESIG, Hash160([0x01; 20])).unwrap(), None, ); let op = DelegateStxOp { diff --git a/stackslib/src/chainstate/burn/operations/transfer_stx.rs b/stackslib/src/chainstate/burn/operations/transfer_stx.rs index b03cfe27b9..d8ff0d5da6 100644 --- a/stackslib/src/chainstate/burn/operations/transfer_stx.rs +++ b/stackslib/src/chainstate/burn/operations/transfer_stx.rs @@ -304,10 +304,7 @@ mod tests { ], }; - let sender = StacksAddress { - version: 0, - bytes: Hash160([0; 20]), - }; + let sender = StacksAddress::new(0, Hash160([0; 20])).unwrap(); let op = TransferStxOp::parse_from_tx( 16843022, &BurnchainHeaderHash([0; 32]), diff --git a/stackslib/src/chainstate/burn/operations/vote_for_aggregate_key.rs b/stackslib/src/chainstate/burn/operations/vote_for_aggregate_key.rs index 3750177a2c..7d7ec5e294 100644 --- a/stackslib/src/chainstate/burn/operations/vote_for_aggregate_key.rs +++ b/stackslib/src/chainstate/burn/operations/vote_for_aggregate_key.rs @@ -268,10 +268,7 @@ mod tests { }], }; - let sender = StacksAddress { - version: 0, - bytes: Hash160([0; 20]), - }; + let sender = StacksAddress::new(0, Hash160([0; 20])).unwrap(); let vote_op = VoteForAggregateKeyOp::parse_from_tx( 1000, &BurnchainHeaderHash([0; 32]), @@ -324,10 +321,7 @@ mod tests { }], }; - let sender = StacksAddress { - version: 0, - bytes: Hash160([0; 20]), - }; + let sender = StacksAddress::new(0, Hash160([0; 20])).unwrap(); let vote_op = VoteForAggregateKeyOp::parse_from_tx( 1000, &BurnchainHeaderHash([0; 32]), @@ -369,10 +363,7 @@ mod tests { }], }; - let sender = StacksAddress { - version: 0, - bytes: Hash160([0; 20]), - }; + let sender = StacksAddress::new(0, Hash160([0; 20])).unwrap(); let vote_op = VoteForAggregateKeyOp::parse_from_tx( 1000, &BurnchainHeaderHash([0; 32]), diff --git a/stackslib/src/chainstate/nakamoto/coordinator/tests.rs b/stackslib/src/chainstate/nakamoto/coordinator/tests.rs index e0b3375452..62ae7682b4 100644 --- a/stackslib/src/chainstate/nakamoto/coordinator/tests.rs +++ b/stackslib/src/chainstate/nakamoto/coordinator/tests.rs @@ -110,7 +110,7 @@ fn advance_to_nakamoto( ) .unwrap(); let default_pox_addr = - PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, addr.bytes.clone()); + PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, addr.bytes().clone()); let mut tip = None; for sortition_height in 0..11 { @@ -825,7 +825,8 @@ fn block_descendant() { StacksAddress::new( C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160::from_data(&index.to_be_bytes()), - ), + ) + .unwrap(), Some(AddressHashMode::SerializeP2PKH), )), }) @@ -914,7 +915,8 @@ fn block_info_tests(use_primary_testnet: bool) { StacksAddress::new( C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160::from_data(&index.to_be_bytes()), - ), + ) + .unwrap(), Some(AddressHashMode::SerializeP2PKH), )), max_amount: None, @@ -1342,7 +1344,8 @@ fn pox_treatment() { StacksAddress::new( C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160::from_data(&index.to_be_bytes()), - ), + ) + .unwrap(), Some(AddressHashMode::SerializeP2PKH), )), max_amount: None, @@ -3093,7 +3096,8 @@ fn process_next_nakamoto_block_deadlock() { StacksAddress::new( C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160::from_data(&index.to_be_bytes()), - ), + ) + .unwrap(), Some(AddressHashMode::SerializeP2PKH), )), max_amount: None, diff --git a/stackslib/src/chainstate/nakamoto/mod.rs b/stackslib/src/chainstate/nakamoto/mod.rs index 7584af67d3..e574af50c2 100644 --- a/stackslib/src/chainstate/nakamoto/mod.rs +++ b/stackslib/src/chainstate/nakamoto/mod.rs @@ -4807,10 +4807,10 @@ impl NakamotoChainState { .map(|hash160| // each miner gets two slots ( - StacksAddress { - version: 1, // NOTE: the version is ignored in stackerdb; we only care about the hashbytes - bytes: hash160 - }, + StacksAddress::new( + 1, // NOTE: the version is ignored in stackerdb; we only care about the hashbytes + hash160 + ).expect("FATAL: infallible: 1 is not a valid address version byte"), MINER_SLOT_COUNT, )) .collect(); diff --git a/stackslib/src/chainstate/nakamoto/test_signers.rs b/stackslib/src/chainstate/nakamoto/test_signers.rs index 7b5e35a0fd..4b63874aaf 100644 --- a/stackslib/src/chainstate/nakamoto/test_signers.rs +++ b/stackslib/src/chainstate/nakamoto/test_signers.rs @@ -165,10 +165,11 @@ impl TestSigners { weight: 1, }; let pox_addr = PoxAddress::Standard( - StacksAddress { - version: AddressHashMode::SerializeP2PKH.to_version_testnet(), - bytes: Hash160::from_data(&nakamoto_signer_entry.signing_key), - }, + StacksAddress::new( + AddressHashMode::SerializeP2PKH.to_version_testnet(), + Hash160::from_data(&nakamoto_signer_entry.signing_key), + ) + .expect("FATAL: constant testnet address version is not supported"), Some(AddressHashMode::SerializeP2PKH), ); signer_entries.push(nakamoto_signer_entry); diff --git a/stackslib/src/chainstate/nakamoto/tests/mod.rs b/stackslib/src/chainstate/nakamoto/tests/mod.rs index 38e7d99338..77d2e7d4af 100644 --- a/stackslib/src/chainstate/nakamoto/tests/mod.rs +++ b/stackslib/src/chainstate/nakamoto/tests/mod.rs @@ -2063,10 +2063,7 @@ fn test_make_miners_stackerdb_config() { .collect(); let miner_addrs: Vec<_> = miner_hash160s .iter() - .map(|miner_hash160| StacksAddress { - version: 1, - bytes: miner_hash160.clone(), - }) + .map(|miner_hash160| StacksAddress::new(1, miner_hash160.clone()).unwrap()) .collect(); debug!("miners = {:#?}", &miner_hash160s); @@ -2268,8 +2265,8 @@ fn test_make_miners_stackerdb_config() { .iter() .map(|config| { ( - config.signers[0].0.bytes.clone(), - config.signers[1].0.bytes.clone(), + config.signers[0].0.bytes().clone(), + config.signers[1].0.bytes().clone(), ) }) .collect(); diff --git a/stackslib/src/chainstate/nakamoto/tests/node.rs b/stackslib/src/chainstate/nakamoto/tests/node.rs index e9bdb4847b..b831cc4d61 100644 --- a/stackslib/src/chainstate/nakamoto/tests/node.rs +++ b/stackslib/src/chainstate/nakamoto/tests/node.rs @@ -149,7 +149,7 @@ impl TestStacker { let pox_key = StacksPrivateKey::from_seed(&[*key_seed, *key_seed]); let addr = StacksAddress::p2pkh(false, &StacksPublicKey::from_private(&pox_key)); let pox_addr = - PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, addr.bytes.clone()); + PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, addr.bytes().clone()); TestStacker { signer_private_key: signing_key.clone(), diff --git a/stackslib/src/chainstate/stacks/address.rs b/stackslib/src/chainstate/stacks/address.rs index c97f535e4d..6ba35d7207 100644 --- a/stackslib/src/chainstate/stacks/address.rs +++ b/stackslib/src/chainstate/stacks/address.rs @@ -131,7 +131,7 @@ impl PoxAddress { #[cfg(any(test, feature = "testing"))] pub fn hash160(&self) -> Hash160 { match *self { - PoxAddress::Standard(addr, _) => addr.bytes.clone(), + PoxAddress::Standard(addr, _) => addr.bytes().clone(), _ => panic!("Called hash160 on a non-standard PoX address"), } } @@ -140,7 +140,7 @@ impl PoxAddress { /// version. pub fn bytes(&self) -> Vec { match *self { - PoxAddress::Standard(addr, _) => addr.bytes.0.to_vec(), + PoxAddress::Standard(addr, _) => addr.bytes().0.to_vec(), PoxAddress::Addr20(_, _, bytes) => bytes.to_vec(), PoxAddress::Addr32(_, _, bytes) => bytes.to_vec(), } @@ -171,7 +171,7 @@ impl PoxAddress { }; Some(PoxAddress::Standard( - StacksAddress { version, bytes }, + StacksAddress::new(version, bytes).ok()?, Some(hashmode), )) } @@ -293,7 +293,7 @@ impl PoxAddress { pub fn to_burnchain_repr(&self) -> String { match *self { PoxAddress::Standard(ref addr, _) => { - format!("{:02x}-{}", &addr.version, &addr.bytes) + format!("{:02x}-{}", &addr.version(), &addr.bytes()) } PoxAddress::Addr20(_, ref addrtype, ref addrbytes) => { format!("{:02x}-{}", addrtype.to_u8(), to_hex(addrbytes)) @@ -328,7 +328,7 @@ impl PoxAddress { } }; let version = Value::buff_from_byte(*hm as u8); - let hashbytes = Value::buff_from(Vec::from(addr.bytes.0.clone())) + let hashbytes = Value::buff_from(Vec::from(addr.bytes().0.clone())) .expect("FATAL: hash160 does not fit into a Clarity value"); let tuple_data = TupleData::from_data(vec![ @@ -376,7 +376,7 @@ impl PoxAddress { pub fn coerce_hash_mode(self) -> PoxAddress { match self { PoxAddress::Standard(addr, _) => { - let hm = AddressHashMode::from_version(addr.version); + let hm = AddressHashMode::from_version(addr.version()); PoxAddress::Standard(addr, Some(hm)) } _ => self, @@ -429,7 +429,7 @@ impl PoxAddress { match *self { PoxAddress::Standard(addr, _) => { // legacy Bitcoin address - let btc_version = to_b58_version_byte(addr.version).expect( + let btc_version = to_b58_version_byte(addr.version()).expect( "BUG: failed to decode Stacks version byte to legacy Bitcoin version byte", ); let btc_addr_type = legacy_version_byte_to_address_type(btc_version) @@ -437,10 +437,10 @@ impl PoxAddress { .0; match btc_addr_type { LegacyBitcoinAddressType::PublicKeyHash => { - LegacyBitcoinAddress::to_p2pkh_tx_out(&addr.bytes, value) + LegacyBitcoinAddress::to_p2pkh_tx_out(addr.bytes(), value) } LegacyBitcoinAddressType::ScriptHash => { - LegacyBitcoinAddress::to_p2sh_tx_out(&addr.bytes, value) + LegacyBitcoinAddress::to_p2sh_tx_out(addr.bytes(), value) } } } @@ -500,10 +500,7 @@ impl PoxAddress { #[cfg(any(test, feature = "testing"))] pub fn from_legacy(hash_mode: AddressHashMode, hash_bytes: Hash160) -> PoxAddress { PoxAddress::Standard( - StacksAddress { - version: hash_mode.to_version_testnet(), - bytes: hash_bytes, - }, + StacksAddress::new(hash_mode.to_version_testnet(), hash_bytes).unwrap(), Some(hash_mode), ) } @@ -524,14 +521,12 @@ impl StacksAddressExtensions for StacksAddress { // should not fail by construction let version = to_c32_version_byte(btc_version) .expect("Failed to decode Bitcoin version byte to Stacks version byte"); - StacksAddress { - version, - bytes: addr.bytes.clone(), - } + StacksAddress::new(version, addr.bytes.clone()) + .expect("FATAL: failed to convert bitcoin address type to stacks address version byte") } fn to_b58(self) -> String { - let StacksAddress { version, bytes } = self; + let (version, bytes) = self.destruct(); let btc_version = to_b58_version_byte(version) // fallback to version .unwrap_or(version); @@ -556,10 +551,7 @@ mod test { #[test] fn tx_stacks_address_codec() { - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let addr_bytes = [ // version 0x01, // bytes @@ -574,7 +566,7 @@ mod test { fn tx_stacks_address_valid_p2pkh() { // p2pkh should accept compressed or uncompressed assert_eq!(StacksAddress::from_public_keys(1, &AddressHashMode::SerializeP2PKH, 1, &vec![PubKey::from_hex("04b7c7cbe36a1aed38c6324b143584a1e822bbf0c4435b102f0497ccb592baf8e964a5a270f9348285595b78855c3e33dc36708e34f9abdeeaad4d2977cb81e3a1").unwrap()]), - Some(StacksAddress { version: 1, bytes: Hash160::from_hex("560ee9d7f5694dd4dbeddf55eff16bcc05409fef").unwrap() })); + Some(StacksAddress::new(1, Hash160::from_hex("560ee9d7f5694dd4dbeddf55eff16bcc05409fef").unwrap()).unwrap())); assert_eq!( StacksAddress::from_public_keys( @@ -586,10 +578,13 @@ mod test { ) .unwrap()] ), - Some(StacksAddress { - version: 2, - bytes: Hash160::from_hex("e3771b5724d9a8daca46052bab5d0f533cd1e619").unwrap() - }) + Some( + StacksAddress::new( + 2, + Hash160::from_hex("e3771b5724d9a8daca46052bab5d0f533cd1e619").unwrap() + ) + .unwrap() + ) ); // should fail if we have too many signatures @@ -623,10 +618,13 @@ mod test { ) .unwrap()] ), - Some(StacksAddress { - version: 4, - bytes: Hash160::from_hex("384d172898686fd0337fba27843add64cbe684f1").unwrap() - }) + Some( + StacksAddress::new( + 4, + Hash160::from_hex("384d172898686fd0337fba27843add64cbe684f1").unwrap() + ) + .unwrap() + ) ); } @@ -653,16 +651,19 @@ mod test { .unwrap() ] ), - Some(StacksAddress { - version: 5, - bytes: Hash160::from_hex("b01162ecda72c57ed419f7966ec4e8dd7987c704").unwrap() - }) + Some( + StacksAddress::new( + 5, + Hash160::from_hex("b01162ecda72c57ed419f7966ec4e8dd7987c704").unwrap() + ) + .unwrap() + ) ); assert_eq!(StacksAddress::from_public_keys(6, &AddressHashMode::SerializeP2SH, 2, &vec![PubKey::from_hex("04b30fafab3a12372c5d150d567034f37d60a91168009a779498168b0e9d8ec7f259fc6bc2f317febe245344d9e11912427cee095b64418719207ac502e8cff0ce").unwrap(), PubKey::from_hex("04ce61f1d155738a5e434fc8a61c3e104f891d1ec71576e8ad85abb68b34670d35c61aec8a973b3b7d68c7325b03c1d18a82e88998b8307afeaa491c1e45e46255").unwrap(), PubKey::from_hex("04ef2340518b5867b23598a9cf74611f8b98064f7d55cdb8c107c67b5efcbc5c771f112f919b00a6c6c5f51f7c63e1762fe9fac9b66ec75a053db7f51f4a52712b").unwrap()]), - Some(StacksAddress { version: 6, bytes: Hash160::from_hex("1003ab7fc0ba18a343da2818c560109c170cdcbb").unwrap() })); + Some(StacksAddress::new(6, Hash160::from_hex("1003ab7fc0ba18a343da2818c560109c170cdcbb").unwrap()).unwrap())); } #[test] @@ -688,10 +689,13 @@ mod test { .unwrap() ] ), - Some(StacksAddress { - version: 7, - bytes: Hash160::from_hex("57130f08a480e7518c1d685e8bb88008d90a0a60").unwrap() - }) + Some( + StacksAddress::new( + 7, + Hash160::from_hex("57130f08a480e7518c1d685e8bb88008d90a0a60").unwrap() + ) + .unwrap() + ) ); assert_eq!(StacksAddress::from_public_keys(8, &AddressHashMode::SerializeP2PKH, 2, &vec![PubKey::from_hex("04b30fafab3a12372c5d150d567034f37d60a91168009a779498168b0e9d8ec7f259fc6bc2f317febe245344d9e11912427cee095b64418719207ac502e8cff0ce").unwrap(), @@ -721,10 +725,8 @@ mod test { assert_eq!( PoxAddress::try_from_pox_tuple(true, &make_pox_addr_raw(0x00, vec![0x01; 20])).unwrap(), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_SINGLESIG, Hash160([0x01; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2PKH) ) ); @@ -732,20 +734,16 @@ mod test { PoxAddress::try_from_pox_tuple(false, &make_pox_addr_raw(0x00, vec![0x02; 20])) .unwrap(), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_SINGLESIG, - bytes: Hash160([0x02; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160([0x02; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2PKH) ) ); assert_eq!( PoxAddress::try_from_pox_tuple(true, &make_pox_addr_raw(0x01, vec![0x03; 20])).unwrap(), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x03; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x03; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2SH) ) ); @@ -753,20 +751,16 @@ mod test { PoxAddress::try_from_pox_tuple(false, &make_pox_addr_raw(0x01, vec![0x04; 20])) .unwrap(), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_MULTISIG, - bytes: Hash160([0x04; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_MULTISIG, Hash160([0x04; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2SH) ) ); assert_eq!( PoxAddress::try_from_pox_tuple(true, &make_pox_addr_raw(0x02, vec![0x05; 20])).unwrap(), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x05; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x05; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2WPKH) ) ); @@ -774,20 +768,16 @@ mod test { PoxAddress::try_from_pox_tuple(false, &make_pox_addr_raw(0x02, vec![0x06; 20])) .unwrap(), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_MULTISIG, - bytes: Hash160([0x06; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_MULTISIG, Hash160([0x06; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2WPKH) ) ); assert_eq!( PoxAddress::try_from_pox_tuple(true, &make_pox_addr_raw(0x03, vec![0x07; 20])).unwrap(), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x07; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x07; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2WSH) ) ); @@ -795,10 +785,8 @@ mod test { PoxAddress::try_from_pox_tuple(false, &make_pox_addr_raw(0x03, vec![0x08; 20])) .unwrap(), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_MULTISIG, - bytes: Hash160([0x08; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_MULTISIG, Hash160([0x08; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2WSH) ) ); @@ -943,10 +931,8 @@ mod test { fn test_as_clarity_tuple() { assert_eq!( PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_SINGLESIG, Hash160([0x01; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2PKH) ) .as_clarity_tuple() @@ -957,10 +943,8 @@ mod test { ); assert_eq!( PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_SINGLESIG, - bytes: Hash160([0x02; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160([0x02; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2PKH) ) .as_clarity_tuple() @@ -970,19 +954,13 @@ mod test { .unwrap() ); assert!(PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_SINGLESIG, Hash160([0x01; 20])).unwrap(), None ) .as_clarity_tuple() .is_none()); assert!(PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_SINGLESIG, - bytes: Hash160([0x02; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160([0x02; 20])).unwrap(), None ) .as_clarity_tuple() @@ -990,10 +968,8 @@ mod test { assert_eq!( PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x01; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2SH) ) .as_clarity_tuple() @@ -1004,10 +980,8 @@ mod test { ); assert_eq!( PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_MULTISIG, - bytes: Hash160([0x02; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_MULTISIG, Hash160([0x02; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2SH) ) .as_clarity_tuple() @@ -1017,19 +991,13 @@ mod test { .unwrap() ); assert!(PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x01; 20])).unwrap(), None ) .as_clarity_tuple() .is_none()); assert!(PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_MULTISIG, - bytes: Hash160([0x02; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_MULTISIG, Hash160([0x02; 20])).unwrap(), None ) .as_clarity_tuple() @@ -1037,10 +1005,8 @@ mod test { assert_eq!( PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x01; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2WPKH) ) .as_clarity_tuple() @@ -1051,10 +1017,8 @@ mod test { ); assert_eq!( PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_MULTISIG, - bytes: Hash160([0x02; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_MULTISIG, Hash160([0x02; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2WPKH) ) .as_clarity_tuple() @@ -1064,19 +1028,13 @@ mod test { .unwrap() ); assert!(PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x01; 20])).unwrap(), None ) .as_clarity_tuple() .is_none()); assert!(PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_MULTISIG, - bytes: Hash160([0x02; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_MULTISIG, Hash160([0x02; 20])).unwrap(), None ) .as_clarity_tuple() @@ -1084,10 +1042,8 @@ mod test { assert_eq!( PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x01; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2WSH) ) .as_clarity_tuple() @@ -1098,10 +1054,8 @@ mod test { ); assert_eq!( PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_MULTISIG, - bytes: Hash160([0x02; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_MULTISIG, Hash160([0x02; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2WSH) ) .as_clarity_tuple() @@ -1111,19 +1065,13 @@ mod test { .unwrap() ); assert!(PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x01; 20])).unwrap(), None ) .as_clarity_tuple() .is_none()); assert!(PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_MULTISIG, - bytes: Hash160([0x02; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_MULTISIG, Hash160([0x02; 20])).unwrap(), None ) .as_clarity_tuple() @@ -1185,10 +1133,8 @@ mod test { fn test_to_bitcoin_tx_out() { assert_eq!( PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_SINGLESIG, Hash160([0x01; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2PKH) ) .to_bitcoin_tx_out(123) @@ -1198,10 +1144,8 @@ mod test { ); assert_eq!( PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x01; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2PKH) ) .to_bitcoin_tx_out(123) @@ -1239,10 +1183,8 @@ mod test { // representative test PoxAddresses let pox_addrs: Vec = vec![ PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160([0x01; 20]), - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_SINGLESIG, Hash160([0x01; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2PKH), ), PoxAddress::Addr20(true, PoxAddressType20::P2WPKH, [0x01; 20]), @@ -1252,31 +1194,23 @@ mod test { PoxAddress::Addr32(true, PoxAddressType32::P2TR, [0x01; 32]), PoxAddress::Addr32(false, PoxAddressType32::P2TR, [0x01; 32]), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x01; 20]), - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x01; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2SH), ), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160([0x01; 20]), - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_SINGLESIG, Hash160([0x01; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2SH), ), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x01; 20]), - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x01; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2WSH), ), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x01; 20]), - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x01; 20])) + .unwrap(), Some(AddressHashMode::SerializeP2WPKH), ), ]; @@ -1304,10 +1238,8 @@ mod test { }) .unwrap(), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_SINGLESIG, Hash160([0x01; 20])) + .unwrap(), None ) ); @@ -1322,10 +1254,8 @@ mod test { }) .unwrap(), PoxAddress::Standard( - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160([0x01; 20]) - }, + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, Hash160([0x01; 20])) + .unwrap(), None ) ); diff --git a/stackslib/src/chainstate/stacks/auth.rs b/stackslib/src/chainstate/stacks/auth.rs index 4f644bbdcc..b54d494226 100644 --- a/stackslib/src/chainstate/stacks/auth.rs +++ b/stackslib/src/chainstate/stacks/auth.rs @@ -222,17 +222,13 @@ impl MultisigSpendingCondition { } pub fn address_mainnet(&self) -> StacksAddress { - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: self.signer.clone(), - } + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, self.signer.clone()) + .expect("FATAL: infallible: constant is not a valid address byte") } pub fn address_testnet(&self) -> StacksAddress { - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_MULTISIG, - bytes: self.signer.clone(), - } + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_MULTISIG, self.signer.clone()) + .expect("FATAL: infallible: constant is not a valid address byte") } /// Authenticate a spending condition against an initial sighash. @@ -290,24 +286,21 @@ impl MultisigSpendingCondition { )); } - let addr_bytes = match StacksAddress::from_public_keys( + let addr = StacksAddress::from_public_keys( 0, &self.hash_mode.to_address_hash_mode(), self.signatures_required as usize, &pubkeys, - ) { - Some(a) => a.bytes, - None => { - return Err(net_error::VerifyingError( - "Failed to generate address from public keys".to_string(), - )); - } - }; + ) + .ok_or_else(|| { + net_error::VerifyingError("Failed to generate address from public keys".to_string()) + })?; - if addr_bytes != self.signer { + if *addr.bytes() != self.signer { return Err(net_error::VerifyingError(format!( "Signer hash does not equal hash of public key(s): {} != {}", - addr_bytes, self.signer + addr.bytes(), + self.signer ))); } @@ -419,17 +412,13 @@ impl OrderIndependentMultisigSpendingCondition { } pub fn address_mainnet(&self) -> StacksAddress { - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: self.signer.clone(), - } + StacksAddress::new(C32_ADDRESS_VERSION_MAINNET_MULTISIG, self.signer.clone()) + .expect("FATAL: infallible: constant address byte is not supported") } pub fn address_testnet(&self) -> StacksAddress { - StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_MULTISIG, - bytes: self.signer.clone(), - } + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_MULTISIG, self.signer.clone()) + .expect("FATAL: infallible: constant address byte is not supported") } /// Authenticate a spending condition against an initial sighash. @@ -486,24 +475,21 @@ impl OrderIndependentMultisigSpendingCondition { )); } - let addr_bytes = match StacksAddress::from_public_keys( + let addr = StacksAddress::from_public_keys( 0, &self.hash_mode.to_address_hash_mode(), self.signatures_required as usize, &pubkeys, - ) { - Some(a) => a.bytes, - None => { - return Err(net_error::VerifyingError( - "Failed to generate address from public keys".to_string(), - )); - } - }; + ) + .ok_or_else(|| { + net_error::VerifyingError("Failed to generate address from public keys".to_string()) + })?; - if addr_bytes != self.signer { + if *addr.bytes() != self.signer { return Err(net_error::VerifyingError(format!( "Signer hash does not equal hash of public key(s): {} != {}", - addr_bytes, self.signer + addr.bytes(), + self.signer ))); } @@ -590,10 +576,8 @@ impl SinglesigSpendingCondition { SinglesigHashMode::P2PKH => C32_ADDRESS_VERSION_MAINNET_SINGLESIG, SinglesigHashMode::P2WPKH => C32_ADDRESS_VERSION_MAINNET_MULTISIG, }; - StacksAddress { - version, - bytes: self.signer.clone(), - } + StacksAddress::new(version, self.signer.clone()) + .expect("FATAL: infallible: supported address constant is not valid") } pub fn address_testnet(&self) -> StacksAddress { @@ -601,10 +585,8 @@ impl SinglesigSpendingCondition { SinglesigHashMode::P2PKH => C32_ADDRESS_VERSION_TESTNET_SINGLESIG, SinglesigHashMode::P2WPKH => C32_ADDRESS_VERSION_TESTNET_MULTISIG, }; - StacksAddress { - version, - bytes: self.signer.clone(), - } + StacksAddress::new(version, self.signer.clone()) + .expect("FATAL: infallible: supported address constant is not valid") } /// Authenticate a spending condition against an initial sighash. @@ -624,24 +606,22 @@ impl SinglesigSpendingCondition { &self.key_encoding, &self.signature, )?; - let addr_bytes = match StacksAddress::from_public_keys( + + let addr = StacksAddress::from_public_keys( 0, &self.hash_mode.to_address_hash_mode(), 1, &vec![pubkey], - ) { - Some(a) => a.bytes, - None => { - return Err(net_error::VerifyingError( - "Failed to generate address from public key".to_string(), - )); - } - }; + ) + .ok_or_else(|| { + net_error::VerifyingError("Failed to generate address from public key".to_string()) + })?; - if addr_bytes != self.signer { + if *addr.bytes() != self.signer { return Err(net_error::VerifyingError(format!( "Signer hash does not equal hash of public key(s): {} != {}", - &addr_bytes, &self.signer + addr.bytes(), + &self.signer ))); } @@ -708,7 +688,7 @@ impl TransactionSpendingCondition { Some(TransactionSpendingCondition::Singlesig( SinglesigSpendingCondition { - signer: signer_addr.bytes, + signer: signer_addr.destruct().1, nonce: 0, tx_fee: 0, hash_mode: SinglesigHashMode::P2PKH, @@ -728,7 +708,7 @@ impl TransactionSpendingCondition { Some(TransactionSpendingCondition::Singlesig( SinglesigSpendingCondition { - signer: signer_addr.bytes, + signer: signer_addr.destruct().1, nonce: 0, tx_fee: 0, hash_mode: SinglesigHashMode::P2WPKH, @@ -751,7 +731,7 @@ impl TransactionSpendingCondition { Some(TransactionSpendingCondition::Multisig( MultisigSpendingCondition { - signer: signer_addr.bytes, + signer: signer_addr.destruct().1, nonce: 0, tx_fee: 0, hash_mode: MultisigHashMode::P2SH, @@ -774,7 +754,7 @@ impl TransactionSpendingCondition { Some(TransactionSpendingCondition::OrderIndependentMultisig( OrderIndependentMultisigSpendingCondition { - signer: signer_addr.bytes, + signer: signer_addr.destruct().1, nonce: 0, tx_fee: 0, hash_mode: OrderIndependentMultisigHashMode::P2SH, @@ -797,7 +777,7 @@ impl TransactionSpendingCondition { Some(TransactionSpendingCondition::OrderIndependentMultisig( OrderIndependentMultisigSpendingCondition { - signer: signer_addr.bytes, + signer: signer_addr.destruct().1, nonce: 0, tx_fee: 0, hash_mode: OrderIndependentMultisigHashMode::P2WSH, @@ -820,7 +800,7 @@ impl TransactionSpendingCondition { Some(TransactionSpendingCondition::Multisig( MultisigSpendingCondition { - signer: signer_addr.bytes, + signer: signer_addr.destruct().1, nonce: 0, tx_fee: 0, hash_mode: MultisigHashMode::P2WSH, diff --git a/stackslib/src/chainstate/stacks/block.rs b/stackslib/src/chainstate/stacks/block.rs index a335e21894..bbdfda122b 100644 --- a/stackslib/src/chainstate/stacks/block.rs +++ b/stackslib/src/chainstate/stacks/block.rs @@ -1466,10 +1466,7 @@ mod test { let mut tx_invalid_coinbase = tx_coinbase.clone(); tx_invalid_coinbase.anchor_mode = TransactionAnchorMode::OffChainOnly; - let stx_address = StacksAddress { - version: 0, - bytes: Hash160([0u8; 20]), - }; + let stx_address = StacksAddress::new(0, Hash160([0u8; 20])).unwrap(); let mut tx_invalid_anchor = StacksTransaction::new( TransactionVersion::Testnet, origin_auth.clone(), @@ -1594,10 +1591,7 @@ mod test { let mut tx_coinbase_offchain = tx_coinbase.clone(); tx_coinbase_offchain.anchor_mode = TransactionAnchorMode::OffChainOnly; - let stx_address = StacksAddress { - version: 0, - bytes: Hash160([0u8; 20]), - }; + let stx_address = StacksAddress::new(0, Hash160([0u8; 20])).unwrap(); let mut tx_invalid_anchor = StacksTransaction::new( TransactionVersion::Testnet, origin_auth.clone(), @@ -1803,10 +1797,7 @@ mod test { microblock_pubkey_hash: Hash160([9u8; 20]), }; - let stx_address = StacksAddress { - version: 0, - bytes: Hash160([0u8; 20]), - }; + let stx_address = StacksAddress::new(0, Hash160([0u8; 20])).unwrap(); let privk = StacksPrivateKey::from_hex( "6d430bb91222408e7706c9001cfaeb91b08c2be6d5ac95779ab52c6b431950e001", @@ -1973,10 +1964,7 @@ mod test { TransactionPayload::Coinbase(CoinbasePayload([0u8; 32]), None, Some(proof)), ); - let stx_address = StacksAddress { - version: 0, - bytes: Hash160([0u8; 20]), - }; + let stx_address = StacksAddress::new(0, Hash160([0u8; 20])).unwrap(); let tx_transfer = StacksTransaction::new( TransactionVersion::Testnet, origin_auth.clone(), diff --git a/stackslib/src/chainstate/stacks/boot/contract_tests.rs b/stackslib/src/chainstate/stacks/boot/contract_tests.rs index 2fb95a5ace..8ca8a05006 100644 --- a/stackslib/src/chainstate/stacks/boot/contract_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/contract_tests.rs @@ -1790,10 +1790,8 @@ fn test_deploy_smart_contract( fn max_stackerdb_list() { let signers_list: Vec<_> = (0..SIGNERS_MAX_LIST_SIZE) .map(|signer_ix| { - let signer_address = StacksAddress { - version: 0, - bytes: Hash160::from_data(&signer_ix.to_be_bytes()), - }; + let signer_address = + StacksAddress::new(0, Hash160::from_data(&signer_ix.to_be_bytes())).unwrap(); Value::Tuple( TupleData::from_data(vec![ ( diff --git a/stackslib/src/chainstate/stacks/boot/mod.rs b/stackslib/src/chainstate/stacks/boot/mod.rs index d4319d8a0f..20c2ae8168 100644 --- a/stackslib/src/chainstate/stacks/boot/mod.rs +++ b/stackslib/src/chainstate/stacks/boot/mod.rs @@ -2464,7 +2464,7 @@ pub mod test { make_tx(sender_key, nonce, 0, payload) } - fn make_tx( + pub fn make_tx( key: &StacksPrivateKey, nonce: u64, tx_fee: u64, @@ -3031,7 +3031,7 @@ pub mod test { ]; if tenure_id == 1 { - let alice_lockup_1 = make_pox_lockup(&alice, 0, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, key_to_stacks_addr(&alice).bytes, 1, tip.block_height); + let alice_lockup_1 = make_pox_lockup(&alice, 0, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, key_to_stacks_addr(&alice).destruct().1, 1, tip.block_height); block_txs.push(alice_lockup_1); } if tenure_id == 2 { @@ -3269,7 +3269,7 @@ pub mod test { 0, 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 12, tip.block_height, ); @@ -3409,7 +3409,7 @@ pub mod test { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1, ); assert_eq!(reward_addrs[0].1, 1024 * POX_THRESHOLD_STEPS_USTX); @@ -3485,7 +3485,7 @@ pub mod test { 0, 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(key).bytes, + key_to_stacks_addr(key).destruct().1, 12, tip.block_height, ); @@ -3653,7 +3653,7 @@ pub mod test { assert_eq!(reward_addrs.len(), 4); let mut all_addrbytes = HashSet::new(); for key in keys.iter() { - all_addrbytes.insert(key_to_stacks_addr(&key).bytes); + all_addrbytes.insert(key_to_stacks_addr(&key).destruct().1); } for key in keys.iter() { @@ -3665,8 +3665,8 @@ pub mod test { (reward_addrs[0].0).version(), AddressHashMode::SerializeP2PKH as u8 ); - assert!(all_addrbytes.contains(&key_to_stacks_addr(&key).bytes)); - all_addrbytes.remove(&key_to_stacks_addr(&key).bytes); + assert!(all_addrbytes.contains(&key_to_stacks_addr(&key).destruct().1)); + all_addrbytes.remove(&key_to_stacks_addr(&key).destruct().1); assert_eq!(reward_addrs[0].1, 1024 * POX_THRESHOLD_STEPS_USTX); // Lock-up is consistent with stacker state @@ -3746,7 +3746,7 @@ pub mod test { "do-lockup", 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 1, ); block_txs.push(alice_stack); @@ -3899,7 +3899,7 @@ pub mod test { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1, ); assert_eq!(reward_addrs[0].1, 1024 * POX_THRESHOLD_STEPS_USTX); @@ -4008,7 +4008,7 @@ pub mod test { 0, 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 12, tip.block_height, ); @@ -4020,7 +4020,7 @@ pub mod test { 0, (4 * 1024 * POX_THRESHOLD_STEPS_USTX) / 5, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, 12, tip.block_height, ); @@ -4156,7 +4156,7 @@ pub mod test { ); assert_eq!( (reward_addrs[1].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1, ); assert_eq!(reward_addrs[1].1, 1024 * POX_THRESHOLD_STEPS_USTX); @@ -4166,7 +4166,7 @@ pub mod test { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&bob).bytes + key_to_stacks_addr(&bob).destruct().1, ); assert_eq!(reward_addrs[0].1, (4 * 1024 * POX_THRESHOLD_STEPS_USTX) / 5); } else { @@ -4216,11 +4216,11 @@ pub mod test { if tenure_id == 1 { // Alice locks up exactly 12.5% of the liquid STX supply, twice. // Only the first one succeeds. - let alice_lockup_1 = make_pox_lockup(&alice, 0, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, key_to_stacks_addr(&alice).bytes, 12, tip.block_height); + let alice_lockup_1 = make_pox_lockup(&alice, 0, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, key_to_stacks_addr(&alice).destruct().1, 12, tip.block_height); block_txs.push(alice_lockup_1); // will be rejected - let alice_lockup_2 = make_pox_lockup(&alice, 1, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, key_to_stacks_addr(&alice).bytes, 12, tip.block_height); + let alice_lockup_2 = make_pox_lockup(&alice, 1, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, key_to_stacks_addr(&alice).destruct().1, 12, tip.block_height); block_txs.push(alice_lockup_2); // let's make some allowances for contract-calls through smart contracts @@ -4437,7 +4437,7 @@ pub mod test { 0, 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 1, tip.block_height, ); @@ -4570,7 +4570,7 @@ pub mod test { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1, ); assert_eq!(reward_addrs[0].1, 1024 * POX_THRESHOLD_STEPS_USTX); @@ -4686,7 +4686,7 @@ pub mod test { 0, 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 1, tip.block_height, ); @@ -4703,7 +4703,7 @@ pub mod test { "do-lockup", 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&charlie).bytes, + key_to_stacks_addr(&charlie).destruct().1, 1, ); block_txs.push(charlie_stack); @@ -4723,7 +4723,7 @@ pub mod test { 1, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 1, tip.block_height, ); @@ -4737,7 +4737,7 @@ pub mod test { "do-lockup", 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&charlie).bytes, + key_to_stacks_addr(&charlie).destruct().1, 1, ); block_txs.push(charlie_stack); @@ -4907,7 +4907,7 @@ pub mod test { ); assert_eq!( (reward_addrs[1].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1, ); assert_eq!(reward_addrs[1].1, 1024 * POX_THRESHOLD_STEPS_USTX); @@ -4917,7 +4917,7 @@ pub mod test { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&charlie).bytes + key_to_stacks_addr(&charlie).destruct().1, ); assert_eq!(reward_addrs[0].1, 1024 * POX_THRESHOLD_STEPS_USTX); @@ -5035,7 +5035,7 @@ pub mod test { ); assert_eq!( (reward_addrs[1].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1, ); assert_eq!(reward_addrs[1].1, 512 * POX_THRESHOLD_STEPS_USTX); @@ -5045,7 +5045,7 @@ pub mod test { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&charlie).bytes + key_to_stacks_addr(&charlie).destruct().1, ); assert_eq!(reward_addrs[0].1, 512 * POX_THRESHOLD_STEPS_USTX); @@ -5208,7 +5208,7 @@ pub mod test { 0, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 1, tip.block_height, ); @@ -5219,7 +5219,7 @@ pub mod test { 0, 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, 1, tip.block_height, ); @@ -5230,7 +5230,7 @@ pub mod test { 0, 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&charlie).bytes, + key_to_stacks_addr(&charlie).destruct().1, 1, tip.block_height, ); @@ -5241,7 +5241,7 @@ pub mod test { 0, 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&danielle).bytes, + key_to_stacks_addr(&danielle).destruct().1, 1, tip.block_height, ); @@ -5257,7 +5257,7 @@ pub mod test { "do-lockup", 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2SH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 1, ); block_txs.push(alice_stack); @@ -5367,23 +5367,23 @@ pub mod test { let expected_pox_addrs: Vec<(u8, Hash160)> = vec![ ( AddressHashMode::SerializeP2PKH as u8, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), ( AddressHashMode::SerializeP2PKH as u8, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), ( AddressHashMode::SerializeP2PKH as u8, - key_to_stacks_addr(&charlie).bytes, + key_to_stacks_addr(&charlie).destruct().1, ), ( AddressHashMode::SerializeP2PKH as u8, - key_to_stacks_addr(&danielle).bytes, + key_to_stacks_addr(&danielle).destruct().1, ), ( AddressHashMode::SerializeP2SH as u8, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), ]; @@ -5645,7 +5645,7 @@ pub mod test { if tenure_id == 1 { // Alice locks up exactly 25% of the liquid STX supply, so this should succeed. - let alice_lockup = make_pox_lockup(&alice, 0, 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, key_to_stacks_addr(&alice).bytes, 12, tip.block_height); + let alice_lockup = make_pox_lockup(&alice, 0, 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, key_to_stacks_addr(&alice).destruct().1, 12, tip.block_height); block_txs.push(alice_lockup); // Bob rejects with exactly 25% of the liquid STX supply (shouldn't affect @@ -5851,7 +5851,7 @@ pub mod test { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1, ); assert_eq!(reward_addrs[0].1, 1024 * POX_THRESHOLD_STEPS_USTX); } diff --git a/stackslib/src/chainstate/stacks/boot/pox_2_tests.rs b/stackslib/src/chainstate/stacks/boot/pox_2_tests.rs index 3313e80c7f..d6e6795b8b 100644 --- a/stackslib/src/chainstate/stacks/boot/pox_2_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/pox_2_tests.rs @@ -775,7 +775,7 @@ fn test_simple_pox_lockup_transition_pox_2() { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1 ); assert_eq!(reward_addrs[0].1, 1024 * POX_THRESHOLD_STEPS_USTX); } else { @@ -787,7 +787,7 @@ fn test_simple_pox_lockup_transition_pox_2() { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&bob).bytes + key_to_stacks_addr(&bob).destruct().1 ); assert_eq!(reward_addrs[0].1, 512 * POX_THRESHOLD_STEPS_USTX); @@ -797,7 +797,7 @@ fn test_simple_pox_lockup_transition_pox_2() { ); assert_eq!( (reward_addrs[1].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1 ); assert_eq!(reward_addrs[1].1, 512 * POX_THRESHOLD_STEPS_USTX); } @@ -828,7 +828,7 @@ fn test_simple_pox_lockup_transition_pox_2() { 0, 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 4, tip.block_height, ); @@ -916,7 +916,7 @@ fn test_simple_pox_lockup_transition_pox_2() { 512 * POX_THRESHOLD_STEPS_USTX, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 6, tip.block_height, @@ -939,7 +939,7 @@ fn test_simple_pox_lockup_transition_pox_2() { 1, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, 4, tip.block_height, ); @@ -971,7 +971,7 @@ fn test_simple_pox_lockup_transition_pox_2() { 512 * POX_THRESHOLD_STEPS_USTX, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 12, tip.block_height, @@ -1001,7 +1001,7 @@ fn test_simple_pox_lockup_transition_pox_2() { 2, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 12, tip.block_height, ); @@ -1210,7 +1210,7 @@ fn test_simple_pox_2_auto_unlock(alice_first: bool) { 1024 * POX_THRESHOLD_STEPS_USTX, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 6, tip.block_height, @@ -1222,7 +1222,7 @@ fn test_simple_pox_2_auto_unlock(alice_first: bool) { 1 * POX_THRESHOLD_STEPS_USTX, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 6, tip.block_height, @@ -1246,11 +1246,11 @@ fn test_simple_pox_2_auto_unlock(alice_first: bool) { assert_eq!(reward_set_entries.len(), 2); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&bob).bytes.0.to_vec() + key_to_stacks_addr(&bob).bytes().0.to_vec() ); assert_eq!( reward_set_entries[1].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); } @@ -1285,7 +1285,7 @@ fn test_simple_pox_2_auto_unlock(alice_first: bool) { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); } @@ -1486,7 +1486,7 @@ fn delegate_stack_increase() { let bob = keys.pop().unwrap(); let bob_address = key_to_stacks_addr(&bob); let bob_principal = PrincipalData::from(bob_address.clone()); - let bob_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, bob_address.bytes.clone()); + let bob_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, bob_address.bytes().clone()); let mut alice_nonce = 0; let mut bob_nonce = 0; @@ -1866,7 +1866,7 @@ fn stack_increase() { first_lockup_amt, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 6, tip.block_height, @@ -1898,7 +1898,7 @@ fn stack_increase() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, first_lockup_amt,); } @@ -1918,7 +1918,7 @@ fn stack_increase() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, first_lockup_amt,); } @@ -1963,7 +1963,7 @@ fn stack_increase() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, first_lockup_amt,); } @@ -1978,7 +1978,7 @@ fn stack_increase() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!( reward_set_entries[0].amount_stacked, @@ -2111,7 +2111,7 @@ fn test_lock_period_invariant_extend_transition() { 0, ALICE_LOCKUP, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 4, tip.block_height, ); @@ -2177,7 +2177,7 @@ fn test_lock_period_invariant_extend_transition() { 1, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 6, ); @@ -2290,7 +2290,7 @@ fn test_pox_extend_transition_pox_2() { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1, ); assert_eq!(reward_addrs[0].1, ALICE_LOCKUP); }; @@ -2326,7 +2326,7 @@ fn test_pox_extend_transition_pox_2() { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&bob).bytes + key_to_stacks_addr(&bob).destruct().1, ); assert_eq!(reward_addrs[0].1, BOB_LOCKUP); @@ -2336,7 +2336,7 @@ fn test_pox_extend_transition_pox_2() { ); assert_eq!( (reward_addrs[1].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1, ); assert_eq!(reward_addrs[1].1, ALICE_LOCKUP); }; @@ -2363,7 +2363,7 @@ fn test_pox_extend_transition_pox_2() { 0, ALICE_LOCKUP, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 4, tip.block_height, ); @@ -2431,7 +2431,7 @@ fn test_pox_extend_transition_pox_2() { BOB_LOCKUP, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 3, tip.block_height, @@ -2443,7 +2443,7 @@ fn test_pox_extend_transition_pox_2() { 1, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 6, ); @@ -2461,7 +2461,7 @@ fn test_pox_extend_transition_pox_2() { 1, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 1, ); @@ -2509,7 +2509,7 @@ fn test_pox_extend_transition_pox_2() { 2, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 12, tip.block_height, ); @@ -2727,7 +2727,7 @@ fn test_delegate_extend_transition_pox_2() { (reward_addrs[0].0).version(), AddressHashMode::SerializeP2PKH as u8 ); - assert_eq!(&(reward_addrs[0].0).hash160(), &charlie_address.bytes); + assert_eq!(&(reward_addrs[0].0).hash160(), charlie_address.bytes()); // 1 lockup was done between alice's first cycle and the start of v2 cycles assert_eq!(reward_addrs[0].1, 1 * LOCKUP_AMT); }; @@ -2761,7 +2761,7 @@ fn test_delegate_extend_transition_pox_2() { (reward_addrs[0].0).version(), AddressHashMode::SerializeP2PKH as u8 ); - assert_eq!(&(reward_addrs[0].0).hash160(), &charlie_address.bytes); + assert_eq!(&(reward_addrs[0].0).hash160(), charlie_address.bytes()); // 2 lockups were performed in v2 cycles assert_eq!(reward_addrs[0].1, 2 * LOCKUP_AMT); }; @@ -2804,7 +2804,7 @@ fn test_delegate_extend_transition_pox_2() { Value::UInt(LOCKUP_AMT), make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(tip.block_height as u128), Value::UInt(4), @@ -2819,7 +2819,7 @@ fn test_delegate_extend_transition_pox_2() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(EXPECTED_ALICE_FIRST_REWARD_CYCLE), ], @@ -2832,7 +2832,7 @@ fn test_delegate_extend_transition_pox_2() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(EXPECTED_ALICE_FIRST_REWARD_CYCLE + 1), ], @@ -2845,7 +2845,7 @@ fn test_delegate_extend_transition_pox_2() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(EXPECTED_ALICE_FIRST_REWARD_CYCLE + 2), ], @@ -2858,7 +2858,7 @@ fn test_delegate_extend_transition_pox_2() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(EXPECTED_ALICE_FIRST_REWARD_CYCLE + 3), ], @@ -2964,7 +2964,7 @@ fn test_delegate_extend_transition_pox_2() { Value::UInt(LOCKUP_AMT), make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(tip.block_height as u128), Value::UInt(3), @@ -2980,7 +2980,7 @@ fn test_delegate_extend_transition_pox_2() { PrincipalData::from(alice_address.clone()).into(), make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(6), ], @@ -2996,7 +2996,7 @@ fn test_delegate_extend_transition_pox_2() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(first_v2_cycle as u128), ], @@ -3009,7 +3009,7 @@ fn test_delegate_extend_transition_pox_2() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(first_v2_cycle as u128 + 1), ], @@ -3022,7 +3022,7 @@ fn test_delegate_extend_transition_pox_2() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(first_v2_cycle as u128 + 2), ], @@ -3089,7 +3089,7 @@ fn test_delegate_extend_transition_pox_2() { PrincipalData::from(bob_address.clone()).into(), make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(1), ], @@ -3102,7 +3102,7 @@ fn test_delegate_extend_transition_pox_2() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(first_v2_cycle as u128 + 3), ], @@ -3171,7 +3171,7 @@ fn test_delegate_extend_transition_pox_2() { PrincipalData::from(bob_address.clone()).into(), make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(1), ], @@ -3236,7 +3236,7 @@ fn test_delegate_extend_transition_pox_2() { 2, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 12, tip.block_height, ); @@ -3461,7 +3461,7 @@ fn test_pox_2_getters() { LOCKUP_AMT, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 4, tip.block_height, @@ -3490,7 +3490,7 @@ fn test_pox_2_getters() { Value::UInt(LOCKUP_AMT), make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(tip.block_height as u128), Value::UInt(4), @@ -3504,7 +3504,7 @@ fn test_pox_2_getters() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(cur_reward_cycle as u128), ], @@ -3517,7 +3517,7 @@ fn test_pox_2_getters() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(cur_reward_cycle as u128 + 1), ], @@ -3530,7 +3530,7 @@ fn test_pox_2_getters() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(cur_reward_cycle as u128 + 2), ], @@ -3578,10 +3578,10 @@ fn test_pox_2_getters() { }}", &alice_address, &bob_address, &bob_address, &format!("{}.hello-world", &charlie_address), cur_reward_cycle + 1, - &charlie_address.bytes, cur_reward_cycle + 0, &charlie_address, - &charlie_address.bytes, cur_reward_cycle + 1, &charlie_address, - &charlie_address.bytes, cur_reward_cycle + 2, &charlie_address, - &charlie_address.bytes, cur_reward_cycle + 3, &charlie_address, + charlie_address.bytes(), cur_reward_cycle + 0, &charlie_address, + charlie_address.bytes(), cur_reward_cycle + 1, &charlie_address, + charlie_address.bytes(), cur_reward_cycle + 2, &charlie_address, + charlie_address.bytes(), cur_reward_cycle + 3, &charlie_address, cur_reward_cycle, cur_reward_cycle + 1, cur_reward_cycle + 2, @@ -3769,7 +3769,10 @@ fn test_get_pox_addrs() { key, 0, 1024 * POX_THRESHOLD_STEPS_USTX, - PoxAddress::from_legacy(*hash_mode, key_to_stacks_addr(key).bytes), + PoxAddress::from_legacy( + *hash_mode, + key_to_stacks_addr(key).destruct().1, + ), 2, tip.block_height, ); @@ -4270,10 +4273,7 @@ fn test_stack_with_segwit() { PoxAddress::Addr32(false, PoxAddressType32::P2WSH, [0x02; 32]), PoxAddress::Addr32(false, PoxAddressType32::P2TR, [0x03; 32]), PoxAddress::Standard( - StacksAddress { - version: 26, - bytes: Hash160([0x04; 20]), - }, + StacksAddress::new(26, Hash160([0x04; 20])).unwrap(), Some(AddressHashMode::SerializeP2PKH), ), ]; @@ -4357,7 +4357,7 @@ fn test_pox_2_delegate_stx_addr_validation() { Value::none(), Value::some(make_pox_addr( AddressHashMode::SerializeP2PKH, - alice_address.bytes.clone(), + alice_address.bytes().clone(), )) .unwrap(), ], @@ -4372,7 +4372,7 @@ fn test_pox_2_delegate_stx_addr_validation() { ( ClarityName::try_from("hashbytes".to_owned()).unwrap(), Value::Sequence(SequenceData::Buffer(BuffData { - data: bob_address.bytes.as_bytes().to_vec(), + data: bob_address.bytes().as_bytes().to_vec(), })), ), ]) @@ -4461,7 +4461,10 @@ fn test_pox_2_delegate_stx_addr_validation() { assert_eq!( alice_pox_addr, - make_pox_addr(AddressHashMode::SerializeP2PKH, alice_address.bytes.clone(),) + make_pox_addr( + AddressHashMode::SerializeP2PKH, + alice_address.bytes().clone(), + ) ); } @@ -4521,17 +4524,17 @@ fn stack_aggregation_increase() { let bob = keys.pop().unwrap(); let bob_address = key_to_stacks_addr(&bob); let bob_principal = PrincipalData::from(bob_address.clone()); - let bob_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, bob_address.bytes.clone()); + let bob_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, bob_address.bytes().clone()); let charlie = keys.pop().unwrap(); let charlie_address = key_to_stacks_addr(&charlie); let charlie_pox_addr = make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ); let dan = keys.pop().unwrap(); let dan_address = key_to_stacks_addr(&dan); let dan_principal = PrincipalData::from(dan_address.clone()); - let dan_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, dan_address.bytes.clone()); + let dan_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, dan_address.bytes().clone()); let alice_nonce = 0; let mut bob_nonce = 0; let mut charlie_nonce = 0; @@ -4585,7 +4588,7 @@ fn stack_aggregation_increase() { &dan, dan_nonce, dan_stack_amount, - PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, dan_address.bytes.clone()), + PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, dan_address.bytes().clone()), 12, tip.block_height, ); @@ -4967,12 +4970,14 @@ fn stack_in_both_pox1_and_pox2() { let alice = keys.pop().unwrap(); let alice_address = key_to_stacks_addr(&alice); - let alice_pox_addr = - make_pox_addr(AddressHashMode::SerializeP2PKH, alice_address.bytes.clone()); + let alice_pox_addr = make_pox_addr( + AddressHashMode::SerializeP2PKH, + alice_address.bytes().clone(), + ); let bob = keys.pop().unwrap(); let bob_address = key_to_stacks_addr(&bob); - let bob_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, bob_address.bytes.clone()); + let bob_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, bob_address.bytes().clone()); let mut alice_nonce = 0; let mut bob_nonce = 0; @@ -4999,7 +5004,7 @@ fn stack_in_both_pox1_and_pox2() { alice_nonce, alice_first_lock_amount, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 12, tip.block_height, ); @@ -5033,7 +5038,7 @@ fn stack_in_both_pox1_and_pox2() { bob_nonce, bob_first_lock_amount, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, 12, tip.block_height, ); diff --git a/stackslib/src/chainstate/stacks/boot/pox_3_tests.rs b/stackslib/src/chainstate/stacks/boot/pox_3_tests.rs index 5c52297969..0447959a76 100644 --- a/stackslib/src/chainstate/stacks/boot/pox_3_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/pox_3_tests.rs @@ -238,7 +238,7 @@ fn simple_pox_lockup_transition_pox_2() { 0, 1024 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 4, tip.block_height, ); @@ -322,7 +322,7 @@ fn simple_pox_lockup_transition_pox_2() { 512 * POX_THRESHOLD_STEPS_USTX, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 6, tip.block_height, @@ -348,7 +348,7 @@ fn simple_pox_lockup_transition_pox_2() { 1, 512 * POX_THRESHOLD_STEPS_USTX, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, 4, tip.block_height, ); @@ -365,7 +365,7 @@ fn simple_pox_lockup_transition_pox_2() { 512 * POX_THRESHOLD_STEPS_USTX, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 12, tip.block_height, @@ -409,7 +409,7 @@ fn simple_pox_lockup_transition_pox_2() { 512 * POX_THRESHOLD_STEPS_USTX, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 6, tip, @@ -421,7 +421,7 @@ fn simple_pox_lockup_transition_pox_2() { 512 * POX_THRESHOLD_STEPS_USTX, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 6, tip, @@ -630,7 +630,7 @@ fn pox_auto_unlock(alice_first: bool) { 1024 * POX_THRESHOLD_STEPS_USTX, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 6, tip.block_height, @@ -642,7 +642,7 @@ fn pox_auto_unlock(alice_first: bool) { 1 * POX_THRESHOLD_STEPS_USTX, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 6, tip.block_height, @@ -663,11 +663,11 @@ fn pox_auto_unlock(alice_first: bool) { assert_eq!(reward_set_entries.len(), 2); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&bob).bytes.0.to_vec() + key_to_stacks_addr(&bob).bytes().0.to_vec() ); assert_eq!( reward_set_entries[1].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); } @@ -697,7 +697,7 @@ fn pox_auto_unlock(alice_first: bool) { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); } @@ -791,7 +791,7 @@ fn pox_auto_unlock(alice_first: bool) { 1024 * POX_THRESHOLD_STEPS_USTX, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 6, tip.block_height, @@ -803,7 +803,7 @@ fn pox_auto_unlock(alice_first: bool) { 1 * POX_THRESHOLD_STEPS_USTX, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 6, tip.block_height, @@ -824,11 +824,11 @@ fn pox_auto_unlock(alice_first: bool) { assert_eq!(reward_set_entries.len(), 2); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&bob).bytes.0.to_vec() + key_to_stacks_addr(&bob).bytes().0.to_vec() ); assert_eq!( reward_set_entries[1].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); } @@ -857,7 +857,7 @@ fn pox_auto_unlock(alice_first: bool) { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); } @@ -1045,7 +1045,7 @@ fn delegate_stack_increase() { let bob = keys.pop().unwrap(); let bob_address = key_to_stacks_addr(&bob); let bob_principal = PrincipalData::from(bob_address.clone()); - let bob_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, bob_address.bytes.clone()); + let bob_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, bob_address.bytes().clone()); let mut alice_nonce = 0; let mut bob_nonce = 0; @@ -1691,7 +1691,7 @@ fn stack_increase() { first_lockup_amt, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 6, tip.block_height, @@ -1715,7 +1715,7 @@ fn stack_increase() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, first_lockup_amt,); } @@ -1735,7 +1735,7 @@ fn stack_increase() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, first_lockup_amt,); } @@ -1773,7 +1773,7 @@ fn stack_increase() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, first_lockup_amt,); } @@ -1793,7 +1793,7 @@ fn stack_increase() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!( reward_set_entries[0].amount_stacked, @@ -1859,7 +1859,7 @@ fn stack_increase() { first_lockup_amt, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 6, tip.block_height, @@ -1882,7 +1882,7 @@ fn stack_increase() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, first_lockup_amt,); } @@ -1902,7 +1902,7 @@ fn stack_increase() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, first_lockup_amt,); } @@ -1950,7 +1950,7 @@ fn stack_increase() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, first_lockup_amt,); } @@ -1965,7 +1965,7 @@ fn stack_increase() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!( reward_set_entries[0].amount_stacked, @@ -2138,7 +2138,7 @@ fn pox_extend_transition() { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1, ); assert_eq!(reward_addrs[0].1, ALICE_LOCKUP); }; @@ -2174,7 +2174,7 @@ fn pox_extend_transition() { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&bob).bytes + key_to_stacks_addr(&bob).destruct().1, ); assert_eq!(reward_addrs[0].1, BOB_LOCKUP); @@ -2184,7 +2184,7 @@ fn pox_extend_transition() { ); assert_eq!( (reward_addrs[1].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1, ); assert_eq!(reward_addrs[1].1, ALICE_LOCKUP); }; @@ -2204,7 +2204,7 @@ fn pox_extend_transition() { 0, ALICE_LOCKUP, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 4, tip.block_height, ); @@ -2267,7 +2267,7 @@ fn pox_extend_transition() { BOB_LOCKUP, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 3, tip.block_height, @@ -2279,7 +2279,7 @@ fn pox_extend_transition() { 1, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 6, ); @@ -2293,7 +2293,7 @@ fn pox_extend_transition() { 1, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 1, ); @@ -2358,7 +2358,7 @@ fn pox_extend_transition() { ALICE_LOCKUP, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 4, tip.block_height, @@ -2377,7 +2377,7 @@ fn pox_extend_transition() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, ALICE_LOCKUP,); } @@ -2406,7 +2406,7 @@ fn pox_extend_transition() { BOB_LOCKUP, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 3, tip.block_height, @@ -2418,7 +2418,7 @@ fn pox_extend_transition() { 3, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 6, ); @@ -2436,7 +2436,7 @@ fn pox_extend_transition() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, ALICE_LOCKUP,); } @@ -2447,12 +2447,12 @@ fn pox_extend_transition() { assert_eq!(reward_set_entries.len(), 2); assert_eq!( reward_set_entries[1].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[1].amount_stacked, ALICE_LOCKUP,); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&bob).bytes.0.to_vec() + key_to_stacks_addr(&bob).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, BOB_LOCKUP,); } @@ -2463,7 +2463,7 @@ fn pox_extend_transition() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, ALICE_LOCKUP,); } @@ -2668,7 +2668,7 @@ fn delegate_extend_pox_3() { Value::UInt(LOCKUP_AMT), make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(tip.block_height as u128), Value::UInt(3), @@ -2689,7 +2689,7 @@ fn delegate_extend_pox_3() { Value::UInt(LOCKUP_AMT), make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(tip.block_height as u128), Value::UInt(6), @@ -2708,7 +2708,7 @@ fn delegate_extend_pox_3() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(first_v3_cycle as u128 + ix), ], @@ -2733,7 +2733,7 @@ fn delegate_extend_pox_3() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&charlie).bytes.0.to_vec() + key_to_stacks_addr(&charlie).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, 2 * LOCKUP_AMT); } @@ -2791,7 +2791,7 @@ fn delegate_extend_pox_3() { PrincipalData::from(bob_address.clone()).into(), make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(1), ], @@ -2808,7 +2808,7 @@ fn delegate_extend_pox_3() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(first_v3_cycle as u128 + 3), ], @@ -2860,7 +2860,7 @@ fn delegate_extend_pox_3() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&charlie).bytes.0.to_vec() + key_to_stacks_addr(&charlie).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, 2 * LOCKUP_AMT); } @@ -2884,7 +2884,7 @@ fn delegate_extend_pox_3() { PrincipalData::from(bob_address.clone()).into(), make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(3), ], @@ -3112,7 +3112,7 @@ fn pox_3_getters() { LOCKUP_AMT, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 4, tip.block_height, @@ -3141,7 +3141,7 @@ fn pox_3_getters() { Value::UInt(LOCKUP_AMT), make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(tip.block_height as u128), Value::UInt(4), @@ -3155,7 +3155,7 @@ fn pox_3_getters() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(first_v3_cycle as u128), ], @@ -3168,7 +3168,7 @@ fn pox_3_getters() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(first_v3_cycle as u128 + 1), ], @@ -3181,7 +3181,7 @@ fn pox_3_getters() { vec![ make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ), Value::UInt(first_v3_cycle as u128 + 2), ], @@ -3229,10 +3229,10 @@ fn pox_3_getters() { }}", &alice_address, &bob_address, &bob_address, &format!("{}.hello-world", &charlie_address), first_v3_cycle + 1, - &charlie_address.bytes, first_v3_cycle + 0, &charlie_address, - &charlie_address.bytes, first_v3_cycle + 1, &charlie_address, - &charlie_address.bytes, first_v3_cycle + 2, &charlie_address, - &charlie_address.bytes, first_v3_cycle + 3, &charlie_address, + charlie_address.bytes(), first_v3_cycle + 0, &charlie_address, + charlie_address.bytes(), first_v3_cycle + 1, &charlie_address, + charlie_address.bytes(), first_v3_cycle + 2, &charlie_address, + charlie_address.bytes(), first_v3_cycle + 3, &charlie_address, first_v3_cycle, first_v3_cycle + 1, first_v3_cycle + 2, @@ -3523,7 +3523,7 @@ fn get_pox_addrs() { AddressHashMode::SerializeP2WSH, ]) .map(|(key, hash_mode)| { - let pox_addr = PoxAddress::from_legacy(hash_mode, key_to_stacks_addr(key).bytes); + let pox_addr = PoxAddress::from_legacy(hash_mode, key_to_stacks_addr(key).destruct().1); txs.push(make_pox_3_lockup( key, 0, @@ -3870,17 +3870,17 @@ fn stack_aggregation_increase() { let bob = keys.pop().unwrap(); let bob_address = key_to_stacks_addr(&bob); let bob_principal = PrincipalData::from(bob_address.clone()); - let bob_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, bob_address.bytes.clone()); + let bob_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, bob_address.bytes().clone()); let charlie = keys.pop().unwrap(); let charlie_address = key_to_stacks_addr(&charlie); let charlie_pox_addr = make_pox_addr( AddressHashMode::SerializeP2PKH, - charlie_address.bytes.clone(), + charlie_address.bytes().clone(), ); let dan = keys.pop().unwrap(); let dan_address = key_to_stacks_addr(&dan); let dan_principal = PrincipalData::from(dan_address.clone()); - let dan_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, dan_address.bytes.clone()); + let dan_pox_addr = make_pox_addr(AddressHashMode::SerializeP2PKH, dan_address.bytes().clone()); let alice_nonce = 0; let mut bob_nonce = 0; let mut charlie_nonce = 0; @@ -3937,7 +3937,7 @@ fn stack_aggregation_increase() { &dan, dan_nonce, dan_stack_amount, - PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, dan_address.bytes.clone()), + PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, dan_address.bytes().clone()), 12, tip.block_height, ); @@ -4333,7 +4333,7 @@ fn pox_3_delegate_stx_addr_validation() { Value::none(), Value::some(make_pox_addr( AddressHashMode::SerializeP2PKH, - alice_address.bytes.clone(), + alice_address.bytes().clone(), )) .unwrap(), ], @@ -4348,7 +4348,7 @@ fn pox_3_delegate_stx_addr_validation() { ( ClarityName::try_from("hashbytes".to_owned()).unwrap(), Value::Sequence(SequenceData::Buffer(BuffData { - data: bob_address.bytes.as_bytes().to_vec(), + data: bob_address.bytes().as_bytes().to_vec(), })), ), ]) @@ -4437,6 +4437,9 @@ fn pox_3_delegate_stx_addr_validation() { assert_eq!( alice_pox_addr, - make_pox_addr(AddressHashMode::SerializeP2PKH, alice_address.bytes.clone(),) + make_pox_addr( + AddressHashMode::SerializeP2PKH, + alice_address.bytes().clone(), + ) ); } diff --git a/stackslib/src/chainstate/stacks/boot/pox_4_tests.rs b/stackslib/src/chainstate/stacks/boot/pox_4_tests.rs index 840e7a2c54..74a3c29cad 100644 --- a/stackslib/src/chainstate/stacks/boot/pox_4_tests.rs +++ b/stackslib/src/chainstate/stacks/boot/pox_4_tests.rs @@ -111,7 +111,7 @@ fn make_simple_pox_4_lock( lock_period: u128, ) -> StacksTransaction { let addr = key_to_stacks_addr(key); - let pox_addr = PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, addr.bytes.clone()); + let pox_addr = PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, addr.bytes().clone()); let signer_pk = StacksPublicKey::from_private(&key); let tip = get_tip(peer.sortdb.as_ref()); let next_reward_cycle = peer @@ -343,7 +343,7 @@ fn pox_extend_transition() { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1 ); assert_eq!(reward_addrs[0].1, ALICE_LOCKUP); }; @@ -379,7 +379,7 @@ fn pox_extend_transition() { ); assert_eq!( (reward_addrs[0].0).hash160(), - key_to_stacks_addr(&bob).bytes + key_to_stacks_addr(&bob).destruct().1, ); assert_eq!(reward_addrs[0].1, BOB_LOCKUP); @@ -389,7 +389,7 @@ fn pox_extend_transition() { ); assert_eq!( (reward_addrs[1].0).hash160(), - key_to_stacks_addr(&alice).bytes + key_to_stacks_addr(&alice).destruct().1, ); assert_eq!(reward_addrs[1].1, ALICE_LOCKUP); }; @@ -409,7 +409,7 @@ fn pox_extend_transition() { 0, ALICE_LOCKUP, AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, 4, tip.block_height, ); @@ -472,7 +472,7 @@ fn pox_extend_transition() { BOB_LOCKUP, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 3, tip.block_height, @@ -484,7 +484,7 @@ fn pox_extend_transition() { 1, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 6, ); @@ -498,7 +498,7 @@ fn pox_extend_transition() { 1, PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ), 1, ); @@ -564,7 +564,7 @@ fn pox_extend_transition() { let alice_pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ); let auth_id = 1; @@ -585,7 +585,7 @@ fn pox_extend_transition() { ALICE_LOCKUP, &PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&alice).bytes, + key_to_stacks_addr(&alice).destruct().1, ), 4, &alice_signer_key, @@ -614,7 +614,7 @@ fn pox_extend_transition() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, ALICE_LOCKUP,); } @@ -642,7 +642,7 @@ fn pox_extend_transition() { let bob_pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(&bob).bytes, + key_to_stacks_addr(&bob).destruct().1, ); let bob_signature = make_signer_key_signature( @@ -708,7 +708,7 @@ fn pox_extend_transition() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, ALICE_LOCKUP); } @@ -719,12 +719,12 @@ fn pox_extend_transition() { assert_eq!(reward_set_entries.len(), 2); assert_eq!( reward_set_entries[1].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[1].amount_stacked, ALICE_LOCKUP); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&bob).bytes.0.to_vec() + key_to_stacks_addr(&bob).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, BOB_LOCKUP); } @@ -736,7 +736,7 @@ fn pox_extend_transition() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - key_to_stacks_addr(&alice).bytes.0.to_vec() + key_to_stacks_addr(&alice).bytes().0.to_vec() ); assert_eq!(reward_set_entries[0].amount_stacked, ALICE_LOCKUP); } @@ -960,7 +960,7 @@ fn pox_lock_unlock() { ]) .enumerate() .map(|(ix, (key, hash_mode))| { - let pox_addr = PoxAddress::from_legacy(hash_mode, key_to_stacks_addr(key).bytes); + let pox_addr = PoxAddress::from_legacy(hash_mode, key_to_stacks_addr(key).destruct().1); let lock_period = if ix == 3 { 12 } else { lock_period }; let signer_key = key; let signature = make_signer_key_signature( @@ -1139,7 +1139,7 @@ fn pox_3_defunct() { AddressHashMode::SerializeP2WSH, ]) .map(|(key, hash_mode)| { - let pox_addr = PoxAddress::from_legacy(hash_mode, key_to_stacks_addr(key).bytes); + let pox_addr = PoxAddress::from_legacy(hash_mode, key_to_stacks_addr(key).destruct().1); txs.push(make_pox_3_lockup( key, 0, @@ -1269,7 +1269,7 @@ fn pox_3_unlocks() { AddressHashMode::SerializeP2WSH, ]) .map(|(key, hash_mode)| { - let pox_addr = PoxAddress::from_legacy(hash_mode, key_to_stacks_addr(key).bytes); + let pox_addr = PoxAddress::from_legacy(hash_mode, key_to_stacks_addr(key).destruct().1); txs.push(make_pox_3_lockup( key, 0, @@ -1417,8 +1417,10 @@ fn pox_4_check_cycle_id_range_in_print_events_pool() { let steph_key = keys.pop().unwrap(); let steph_address = key_to_stacks_addr(&steph_key); let steph_principal = PrincipalData::from(steph_address.clone()); - let steph_pox_addr_val = - make_pox_addr(AddressHashMode::SerializeP2PKH, steph_address.bytes.clone()); + let steph_pox_addr_val = make_pox_addr( + AddressHashMode::SerializeP2PKH, + steph_address.bytes().clone(), + ); let steph_pox_addr = pox_addr_from(&steph_key); let steph_signing_key = Secp256k1PublicKey::from_private(&steph_key); let steph_key_val = Value::buff_from(steph_signing_key.to_bytes_compressed()).unwrap(); @@ -1806,8 +1808,10 @@ fn pox_4_check_cycle_id_range_in_print_events_pool_in_prepare_phase() { let steph_key = keys.pop().unwrap(); let steph_address = key_to_stacks_addr(&steph_key); let steph_principal = PrincipalData::from(steph_address.clone()); - let steph_pox_addr_val = - make_pox_addr(AddressHashMode::SerializeP2PKH, steph_address.bytes.clone()); + let steph_pox_addr_val = make_pox_addr( + AddressHashMode::SerializeP2PKH, + steph_address.bytes().clone(), + ); let steph_pox_addr = pox_addr_from(&steph_key); let steph_signing_key = Secp256k1PublicKey::from_private(&steph_key); let steph_key_val = Value::buff_from(steph_signing_key.to_bytes_compressed()).unwrap(); @@ -2450,8 +2454,10 @@ fn pox_4_check_cycle_id_range_in_print_events_before_prepare_phase() { let steph_key = keys.pop().unwrap(); let steph_address = key_to_stacks_addr(&steph_key); let steph_principal = PrincipalData::from(steph_address.clone()); - let steph_pox_addr_val = - make_pox_addr(AddressHashMode::SerializeP2PKH, steph_address.bytes.clone()); + let steph_pox_addr_val = make_pox_addr( + AddressHashMode::SerializeP2PKH, + steph_address.bytes().clone(), + ); let steph_pox_addr = pox_addr_from(&steph_key); let steph_signing_key = Secp256k1PublicKey::from_private(&steph_key); let steph_key_val = Value::buff_from(steph_signing_key.to_bytes_compressed()).unwrap(); @@ -2571,8 +2577,10 @@ fn pox_4_check_cycle_id_range_in_print_events_in_prepare_phase() { let steph_key = keys.pop().unwrap(); let steph_address = key_to_stacks_addr(&steph_key); let steph_principal = PrincipalData::from(steph_address.clone()); - let steph_pox_addr_val = - make_pox_addr(AddressHashMode::SerializeP2PKH, steph_address.bytes.clone()); + let steph_pox_addr_val = make_pox_addr( + AddressHashMode::SerializeP2PKH, + steph_address.bytes().clone(), + ); let steph_pox_addr = pox_addr_from(&steph_key); let steph_signing_key = Secp256k1PublicKey::from_private(&steph_key); let steph_key_val = Value::buff_from(steph_signing_key.to_bytes_compressed()).unwrap(); @@ -2807,8 +2815,10 @@ fn pox_4_revoke_delegate_stx_events() { let steph = keys.pop().unwrap(); let steph_address = key_to_stacks_addr(&steph); let steph_principal = PrincipalData::from(steph_address.clone()); - let steph_pox_addr = - make_pox_addr(AddressHashMode::SerializeP2PKH, steph_address.bytes.clone()); + let steph_pox_addr = make_pox_addr( + AddressHashMode::SerializeP2PKH, + steph_address.bytes().clone(), + ); let steph_signing_key = Secp256k1PublicKey::from_private(&steph); let steph_key_val = Value::buff_from(steph_signing_key.to_bytes_compressed()).unwrap(); @@ -3053,9 +3063,12 @@ fn verify_signer_key_signatures() { let expected_error = Value::error(Value::Int(35)).unwrap(); - let alice_pox_addr = - PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, alice_address.bytes.clone()); - let bob_pox_addr = PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, bob_address.bytes); + let alice_pox_addr = PoxAddress::from_legacy( + AddressHashMode::SerializeP2PKH, + alice_address.bytes().clone(), + ); + let bob_pox_addr = + PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, bob_address.bytes().clone()); let period = 1_u128; @@ -3323,7 +3336,7 @@ fn stack_stx_verify_signer_sig(use_nakamoto: bool) { let second_stacker_addr = key_to_stacks_addr(second_stacker); let second_stacker_pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - second_stacker_addr.bytes.clone(), + second_stacker_addr.bytes().clone(), ); let reward_cycle = get_current_reward_cycle(&peer, &burnchain); @@ -4224,7 +4237,7 @@ impl StackerSignerInfo { let public_key = StacksPublicKey::from_private(&private_key); let address = key_to_stacks_addr(&private_key); let pox_address = - PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, address.bytes.clone()); + PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, address.bytes().clone()); let principal = PrincipalData::from(address.clone()); let nonce = 0; Self { @@ -6151,7 +6164,7 @@ fn delegate_stack_stx_extend_signer_key(use_nakamoto: bool) { let pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(bob_delegate_private_key).bytes, + key_to_stacks_addr(bob_delegate_private_key).destruct().1, ); let delegate_stx = make_pox_4_delegate_stx( @@ -6356,7 +6369,7 @@ fn stack_increase(use_nakamoto: bool) { let min_ustx = get_stacking_minimum(&mut peer, &latest_block); let pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(alice_stacking_private_key).bytes, + key_to_stacks_addr(alice_stacking_private_key).destruct().1, ); let reward_cycle = get_current_reward_cycle(&peer, &burnchain); @@ -6535,7 +6548,7 @@ fn delegate_stack_increase(use_nakamoto: bool) { let pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(bob_delegate_key).bytes, + key_to_stacks_addr(bob_delegate_key).destruct().1, ); let next_reward_cycle = 1 + burnchain @@ -7276,6 +7289,344 @@ fn test_scenario_one(use_nakamoto: bool) { assert_eq!(bob_tx_result, Value::Int(19)); } +#[test] +// In this test two solo stacker-signers Alice & Bob sign & stack +// for two reward cycles. Alice provides a signature, Bob uses +// 'set-signer-key-authorizations' to authorize. Two cycles later, +// when no longer stacked, they both try replaying their auths. +fn test_deser_abort() { + // Alice solo stacker-signer setup + let mut alice = StackerSignerInfo::new(); + // Bob solo stacker-signer setup + let mut bob = StackerSignerInfo::new(); + let default_initial_balances: u64 = 1_000_000_000_000_000_000; + let initial_balances = vec![ + (alice.principal.clone(), default_initial_balances), + (bob.principal.clone(), default_initial_balances), + ]; + + let observer = TestEventObserver::new(); + let ( + mut peer, + mut peer_nonce, + burn_block_height, + reward_cycle, + next_reward_cycle, + min_ustx, + peer_config, + mut test_signers, + ) = pox_4_scenario_test_setup("test_scenario_one", &observer, initial_balances, true); + + // Add alice and bob to test_signers + if let Some(ref mut test_signers) = test_signers.as_mut() { + test_signers + .signer_keys + .extend(vec![alice.private_key.clone(), bob.private_key.clone()]); + } + + // Alice Signatures + let amount = (default_initial_balances / 2).wrapping_sub(1000) as u128; + let lock_period = 1; + let alice_signature = make_signer_key_signature( + &alice.pox_address, + &alice.private_key, + reward_cycle, + &Pox4SignatureTopic::StackStx, + lock_period, + u128::MAX, + 1, + ); + let alice_signature_err = make_signer_key_signature( + &alice.pox_address, + &alice.private_key, + reward_cycle - 1, + &Pox4SignatureTopic::StackStx, + lock_period, + 100, + 2, + ); + + // Bob Authorizations + let bob_authorization_low = make_pox_4_set_signer_key_auth( + &bob.pox_address, + &bob.private_key, + reward_cycle, + &Pox4SignatureTopic::StackStx, + lock_period, + true, + bob.nonce, + Some(&bob.private_key), + 100, + 2, + ); + bob.nonce += 1; + let bob_authorization = make_pox_4_set_signer_key_auth( + &bob.pox_address, + &bob.private_key, + reward_cycle, + &Pox4SignatureTopic::StackStx, + lock_period, + true, + bob.nonce, + Some(&bob.private_key), + u128::MAX, + 3, + ); + bob.nonce += 1; + + // Alice stacks + let alice_err_nonce = alice.nonce; + let alice_stack_err = make_pox_4_lockup( + &alice.private_key, + alice_err_nonce, + amount, + &alice.pox_address, + lock_period, + &alice.public_key, + burn_block_height, + Some(alice_signature_err), + 100, + 1, + ); + + let alice_stack_nonce = alice_err_nonce + 1; + let alice_stack = make_pox_4_lockup( + &alice.private_key, + alice_stack_nonce, + amount, + &alice.pox_address, + lock_period, + &alice.public_key, + burn_block_height, + Some(alice_signature.clone()), + u128::MAX, + 1, + ); + alice.nonce = alice_stack_nonce + 1; + + // Bob stacks + let bob_nonce_stack_err = bob.nonce; + let bob_stack_err = make_pox_4_lockup( + &bob.private_key, + bob_nonce_stack_err, + amount, + &bob.pox_address, + lock_period, + &bob.public_key, + burn_block_height, + None, + 100, + 2, + ); + let bob_nonce_stack = bob_nonce_stack_err + 1; + let bob_stack = make_pox_4_lockup( + &bob.private_key, + bob_nonce_stack, + amount, + &bob.pox_address, + lock_period, + &bob.public_key, + burn_block_height, + None, + u128::MAX, + 3, + ); + bob.nonce = bob_nonce_stack + 1; + + let txs = vec![ + bob_authorization_low, + bob_authorization, + alice_stack_err, + alice_stack, + bob_stack_err, + bob_stack, + ]; + + // Commit tx & advance to the reward set calculation height (2nd block of the prepare phase) + let target_height = peer + .config + .burnchain + .reward_cycle_to_block_height(next_reward_cycle as u64) + .saturating_sub(peer.config.burnchain.pox_constants.prepare_length as u64) + .wrapping_add(2); + let (latest_block, tx_block, receipts) = advance_to_block_height( + &mut peer, + &observer, + &txs, + &mut peer_nonce, + target_height, + &mut test_signers, + ); + + // Verify Alice stacked + let (pox_address, first_reward_cycle, lock_period, _indices) = + get_stacker_info_pox_4(&mut peer, &alice.principal) + .expect("Failed to find alice initial stack-stx"); + assert_eq!(first_reward_cycle, next_reward_cycle); + assert_eq!(pox_address, alice.pox_address); + + // Verify Bob stacked + let (pox_address, first_reward_cycle, lock_period, _indices) = + get_stacker_info_pox_4(&mut peer, &bob.principal) + .expect("Failed to find bob initial stack-stx"); + assert_eq!(first_reward_cycle, next_reward_cycle); + assert_eq!(pox_address, bob.pox_address); + + // 1. Check bob's low authorization transaction + let bob_tx_result_low = receipts + .get(1) + .unwrap() + .result + .clone() + .expect_result_ok() + .unwrap(); + assert_eq!(bob_tx_result_low, Value::Bool(true)); + + // 2. Check bob's expected authorization transaction + let bob_tx_result_ok = receipts + .get(2) + .unwrap() + .result + .clone() + .expect_result_ok() + .unwrap(); + assert_eq!(bob_tx_result_ok, Value::Bool(true)); + + // 3. Check alice's low stack transaction + let alice_tx_result_err = receipts + .get(3) + .unwrap() + .result + .clone() + .expect_result_err() + .unwrap(); + assert_eq!(alice_tx_result_err, Value::Int(38)); + + // Get alice's expected stack transaction + let alice_tx_result_ok = receipts + .get(4) + .unwrap() + .result + .clone() + .expect_result_ok() + .unwrap() + .expect_tuple() + .unwrap(); + + // 4.1 Check amount locked + let amount_locked_expected = Value::UInt(amount); + let amount_locked_actual = alice_tx_result_ok + .data_map + .get("lock-amount") + .unwrap() + .clone(); + assert_eq!(amount_locked_actual, amount_locked_expected); + + // 4.2 Check signer key + let signer_key_expected = Value::buff_from(alice.public_key.to_bytes_compressed()).unwrap(); + let signer_key_actual = alice_tx_result_ok + .data_map + .get("signer-key") + .unwrap() + .clone(); + assert_eq!(signer_key_expected, signer_key_actual); + + // 4.3 Check unlock height + let unlock_height_expected = Value::UInt( + peer.config + .burnchain + .reward_cycle_to_block_height(next_reward_cycle as u64 + lock_period as u64) + .wrapping_sub(1) as u128, + ); + let unlock_height_actual = alice_tx_result_ok + .data_map + .get("unlock-burn-height") + .unwrap() + .clone(); + assert_eq!(unlock_height_expected, unlock_height_actual); + + // 5. Check bob's error stack transaction + let bob_tx_result_err = receipts + .get(5) + .unwrap() + .result + .clone() + .expect_result_err() + .unwrap(); + assert_eq!(bob_tx_result_err, Value::Int(38)); + + // Get bob's expected stack transaction + let bob_tx_result_ok = receipts + .get(6) + .unwrap() + .result + .clone() + .expect_result_ok() + .unwrap() + .expect_tuple() + .unwrap(); + + // 6.1 Check amount locked + let amount_locked_expected = Value::UInt(amount); + let amount_locked_actual = bob_tx_result_ok + .data_map + .get("lock-amount") + .unwrap() + .clone(); + assert_eq!(amount_locked_actual, amount_locked_expected); + + // 6.2 Check signer key + let signer_key_expected = Value::buff_from(bob.public_key.to_bytes_compressed()).unwrap(); + let signer_key_actual = bob_tx_result_ok.data_map.get("signer-key").unwrap().clone(); + assert_eq!(signer_key_expected, signer_key_actual); + + // 6.3 Check unlock height (end of cycle 7 - block 140) + let unlock_height_expected = Value::UInt( + peer.config + .burnchain + .reward_cycle_to_block_height((next_reward_cycle + lock_period) as u64) + .wrapping_sub(1) as u128, + ); + let unlock_height_actual = bob_tx_result_ok + .data_map + .get("unlock-burn-height") + .unwrap() + .clone(); + assert_eq!(unlock_height_expected, unlock_height_actual); + + // Now starting create vote txs + // Fetch signer indices in reward cycle 6 + // Alice vote + let contract = " + (define-private (sample) + (from-consensus-buff? principal 0x062011deadbeef11ababffff11deadbeef11ababffff0461626364)) + (sample) + "; + + let tx_payload = TransactionPayload::new_smart_contract( + &format!("hello-world"), + &contract.to_string(), + Some(ClarityVersion::Clarity2), + ) + .unwrap(); + + let alice_tx = super::test::make_tx(&alice.private_key, alice.nonce, 1000, tx_payload); + alice.nonce += 1; + let alice_txid = alice_tx.txid(); + let txs = vec![alice_tx]; + + info!("Submitting block with test txs"); + + let e = tenure_with_txs_fallible(&mut peer, &txs, &mut peer_nonce, &mut test_signers) + .expect_err("Should not have produced a valid block with this tx"); + match e { + ChainstateError::ProblematicTransaction(txid) => { + assert_eq!(txid, alice_txid); + } + _ => panic!("Expected a problematic transaction result"), + } +} + // In this test two solo service signers, Alice & Bob, provide auth // for Carl & Dave, solo stackers. Alice provides a signature for Carl, // Bob uses 'set-signer-key...' for Dave. @@ -8510,7 +8861,7 @@ fn delegate_stack_increase_err(use_nakamoto: bool) { let pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - key_to_stacks_addr(bob_delegate_key).bytes, + key_to_stacks_addr(bob_delegate_key).destruct().1, ); let next_reward_cycle = 1 + burnchain @@ -8901,6 +9252,60 @@ pub fn prepare_pox4_test<'a>( } } +use crate::chainstate::stacks::Error as ChainstateError; +pub fn tenure_with_txs_fallible( + peer: &mut TestPeer, + txs: &[StacksTransaction], + coinbase_nonce: &mut usize, + test_signers: &mut Option, +) -> Result { + if let Some(test_signers) = test_signers { + let (burn_ops, mut tenure_change, miner_key) = + peer.begin_nakamoto_tenure(TenureChangeCause::BlockFound); + let (_, _, consensus_hash) = peer.next_burnchain_block(burn_ops.clone()); + let vrf_proof = peer.make_nakamoto_vrf_proof(miner_key); + + tenure_change.tenure_consensus_hash = consensus_hash.clone(); + tenure_change.burn_view_consensus_hash = consensus_hash.clone(); + + let tenure_change_tx = peer + .miner + .make_nakamoto_tenure_change(tenure_change.clone()); + let coinbase_tx = peer.miner.make_nakamoto_coinbase(None, vrf_proof); + + let blocks_and_sizes = peer.make_nakamoto_tenure_and( + tenure_change_tx, + coinbase_tx, + test_signers, + |_| {}, + |_miner, _chainstate, _sort_dbconn, _blocks| { + info!("Building nakamoto block. Blocks len {}", _blocks.len()); + if _blocks.is_empty() { + txs.to_vec() + } else { + vec![] + } + }, + |_| true, + )?; + let blocks: Vec<_> = blocks_and_sizes + .into_iter() + .map(|(block, _, _)| block) + .collect(); + + let chainstate = &mut peer.stacks_node.as_mut().unwrap().chainstate; + let sort_db = peer.sortdb.as_mut().unwrap(); + let latest_block = sort_db + .index_handle_at_tip() + .get_nakamoto_tip_block_id() + .unwrap() + .unwrap(); + Ok(latest_block) + } else { + Ok(peer.tenure_with_txs(txs, coinbase_nonce)) + } +} + pub fn tenure_with_txs( peer: &mut TestPeer, txs: &[StacksTransaction], @@ -9044,11 +9449,11 @@ fn missed_slots_no_unlock() { ); assert_eq!( reward_set_entries[0].reward_address.bytes(), - bob_address.bytes.0.to_vec() + bob_address.bytes().0.to_vec() ); assert_eq!( reward_set_entries[1].reward_address.bytes(), - alice_address.bytes.0.to_vec() + alice_address.bytes().0.to_vec() ); } @@ -9076,11 +9481,11 @@ fn missed_slots_no_unlock() { assert_eq!(reward_set_entries.len(), 2); assert_eq!( reward_set_entries[0].reward_address.bytes(), - bob_address.bytes.0.to_vec() + bob_address.bytes().0.to_vec() ); assert_eq!( reward_set_entries[1].reward_address.bytes(), - alice_address.bytes.0.to_vec() + alice_address.bytes().0.to_vec() ); } @@ -9173,7 +9578,7 @@ fn missed_slots_no_unlock() { assert_eq!(rewarded_addrs.len(), 1); assert_eq!( reward_set_data.reward_set.rewarded_addresses[0].bytes(), - alice_address.bytes.0.to_vec(), + alice_address.bytes().0.to_vec(), ); reward_cycles_in_2_5 += 1; eprintln!("{:?}", b.reward_set_data) @@ -9292,7 +9697,7 @@ fn no_lockups_2_5() { ); assert_eq!( reward_set_entries[0].reward_address.bytes(), - bob_address.bytes.0.to_vec() + bob_address.bytes().0.to_vec() ); } diff --git a/stackslib/src/chainstate/stacks/db/accounts.rs b/stackslib/src/chainstate/stacks/db/accounts.rs index eeacd95303..bf00b00b54 100644 --- a/stackslib/src/chainstate/stacks/db/accounts.rs +++ b/stackslib/src/chainstate/stacks/db/accounts.rs @@ -1219,10 +1219,7 @@ mod test { // dummy reward let mut tip_reward = make_dummy_miner_payment_schedule( - &StacksAddress { - version: 0, - bytes: Hash160([0u8; 20]), - }, + &StacksAddress::new(0, Hash160([0u8; 20])).unwrap(), 0, 0, 0, @@ -1294,10 +1291,7 @@ mod test { // dummy reward let mut tip_reward = make_dummy_miner_payment_schedule( - &StacksAddress { - version: 0, - bytes: Hash160([0u8; 20]), - }, + &StacksAddress::new(0, Hash160([0u8; 20])).unwrap(), 0, 0, 0, @@ -1344,10 +1338,7 @@ mod test { // dummy reward let mut tip_reward = make_dummy_miner_payment_schedule( - &StacksAddress { - version: 0, - bytes: Hash160([0u8; 20]), - }, + &StacksAddress::new(0, Hash160([0u8; 20])).unwrap(), 0, 0, 0, diff --git a/stackslib/src/chainstate/stacks/db/blocks.rs b/stackslib/src/chainstate/stacks/db/blocks.rs index 30b38c10cc..57a8091884 100644 --- a/stackslib/src/chainstate/stacks/db/blocks.rs +++ b/stackslib/src/chainstate/stacks/db/blocks.rs @@ -6860,7 +6860,7 @@ impl StacksChainState { // version byte matches? if !StacksChainState::is_valid_address_version( chainstate_config.mainnet, - address.version, + address.version(), ) { return Err(MemPoolRejection::BadAddressVersionByte); } diff --git a/stackslib/src/chainstate/stacks/db/mod.rs b/stackslib/src/chainstate/stacks/db/mod.rs index 6853ec0ee9..ed6b0ffb13 100644 --- a/stackslib/src/chainstate/stacks/db/mod.rs +++ b/stackslib/src/chainstate/stacks/db/mod.rs @@ -1226,7 +1226,7 @@ impl StacksChainState { fn parse_genesis_address(addr: &str, mainnet: bool) -> PrincipalData { // Typical entries are BTC encoded addresses that need converted to STX - let mut stacks_address = match LegacyBitcoinAddress::from_b58(&addr) { + let stacks_address = match LegacyBitcoinAddress::from_b58(&addr) { Ok(addr) => StacksAddress::from_legacy_bitcoin_address(&addr), // A few addresses (from legacy placeholder accounts) are already STX addresses _ => match StacksAddress::from_string(addr) { @@ -1236,20 +1236,25 @@ impl StacksChainState { }; // Convert a given address to the currently running network mode (mainnet vs testnet). // All addresses from the Stacks 1.0 import data should be mainnet, but we'll handle either case. - stacks_address.version = if mainnet { - match stacks_address.version { + let converted_version = if mainnet { + match stacks_address.version() { C32_ADDRESS_VERSION_TESTNET_SINGLESIG => C32_ADDRESS_VERSION_MAINNET_SINGLESIG, C32_ADDRESS_VERSION_TESTNET_MULTISIG => C32_ADDRESS_VERSION_MAINNET_MULTISIG, - _ => stacks_address.version, + _ => stacks_address.version(), } } else { - match stacks_address.version { + match stacks_address.version() { C32_ADDRESS_VERSION_MAINNET_SINGLESIG => C32_ADDRESS_VERSION_TESTNET_SINGLESIG, C32_ADDRESS_VERSION_MAINNET_MULTISIG => C32_ADDRESS_VERSION_TESTNET_MULTISIG, - _ => stacks_address.version, + _ => stacks_address.version(), } }; - let principal: PrincipalData = stacks_address.into(); + + let (_, bytes) = stacks_address.destruct(); + let principal: PrincipalData = StandardPrincipalData::new(converted_version, bytes.0) + .expect("FATAL: infallible constant version byte is not valid") + .into(); + return principal; } diff --git a/stackslib/src/chainstate/stacks/db/transactions.rs b/stackslib/src/chainstate/stacks/db/transactions.rs index 88bbf73dfe..3758f8f4e6 100644 --- a/stackslib/src/chainstate/stacks/db/transactions.rs +++ b/stackslib/src/chainstate/stacks/db/transactions.rs @@ -1414,7 +1414,6 @@ impl StacksChainState { Ok(receipt) } TransactionPayload::Coinbase(..) => { - // no-op; not handled here // NOTE: technically, post-conditions are allowed (even if they're non-sensical). let receipt = StacksTransactionReceipt::from_coinbase(tx.clone()); @@ -1605,11 +1604,25 @@ pub mod test { epoch_id: StacksEpochId::Epoch21, ast_rules: ASTRules::PrecheckSize, }; + pub const TestBurnStateDB_25: UnitTestBurnStateDB = UnitTestBurnStateDB { + epoch_id: StacksEpochId::Epoch25, + ast_rules: ASTRules::PrecheckSize, + }; + pub const TestBurnStateDB_30: UnitTestBurnStateDB = UnitTestBurnStateDB { + epoch_id: StacksEpochId::Epoch30, + ast_rules: ASTRules::PrecheckSize, + }; + pub const TestBurnStateDB_31: UnitTestBurnStateDB = UnitTestBurnStateDB { + epoch_id: StacksEpochId::Epoch31, + ast_rules: ASTRules::PrecheckSize, + }; pub const ALL_BURN_DBS: &[&dyn BurnStateDB] = &[ &TestBurnStateDB_20 as &dyn BurnStateDB, &TestBurnStateDB_2_05 as &dyn BurnStateDB, &TestBurnStateDB_21 as &dyn BurnStateDB, + &TestBurnStateDB_30 as &dyn BurnStateDB, + &TestBurnStateDB_31 as &dyn BurnStateDB, ]; pub const PRE_21_DBS: &[&dyn BurnStateDB] = &[ @@ -1617,6 +1630,11 @@ pub mod test { &TestBurnStateDB_2_05 as &dyn BurnStateDB, ]; + pub const NAKAMOTO_DBS: &[&dyn BurnStateDB] = &[ + &TestBurnStateDB_30 as &dyn BurnStateDB, + &TestBurnStateDB_31 as &dyn BurnStateDB, + ]; + #[test] fn contract_publish_runtime_error() { let contract_id = QualifiedContractIdentifier::local("contract").unwrap(); @@ -1703,10 +1721,7 @@ pub mod test { .unwrap(); let auth = TransactionAuth::from_p2pkh(&privk).unwrap(); let addr = auth.origin().address_testnet(); - let recv_addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let recv_addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let mut tx_stx_transfer = StacksTransaction::new( TransactionVersion::Testnet, @@ -1770,11 +1785,7 @@ pub mod test { let auth = TransactionAuth::from_p2pkh(&privk).unwrap(); let recv_addr = PrincipalData::from(QualifiedContractIdentifier { - issuer: StacksAddress { - version: 1, - bytes: Hash160([0xfe; 20]), - } - .into(), + issuer: StacksAddress::new(1, Hash160([0xfe; 20])).unwrap().into(), name: "contract-hellow".into(), }); @@ -2046,10 +2057,7 @@ pub mod test { let addr = auth.origin().address_testnet(); let addr_sponsor = auth.sponsor().unwrap().address_testnet(); - let recv_addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let recv_addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let mut tx_stx_transfer = StacksTransaction::new( TransactionVersion::Testnet, @@ -2380,7 +2388,7 @@ pub mod test { // Verify that the syntax error is recorded in the receipt let expected_error = - if burn_db.get_stacks_epoch(0).unwrap().epoch_id == StacksEpochId::Epoch21 { + if burn_db.get_stacks_epoch(0).unwrap().epoch_id >= StacksEpochId::Epoch21 { expected_errors_2_1[i].to_string() } else { expected_errors[i].to_string() @@ -5046,14 +5054,8 @@ pub mod test { let auth = TransactionAuth::from_p2pkh(&privk).unwrap(); let addr = auth.origin().address_testnet(); let origin = addr.to_account_principal(); - let recv_addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; - let contract_addr = StacksAddress { - version: 1, - bytes: Hash160([0x01; 20]), - }; + let recv_addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); + let contract_addr = StacksAddress::new(1, Hash160([0x01; 20])).unwrap(); let asset_info_1 = AssetInfo { contract_address: contract_addr.clone(), @@ -6898,14 +6900,8 @@ pub mod test { let auth = TransactionAuth::from_p2pkh(&privk).unwrap(); let addr = auth.origin().address_testnet(); let origin = addr.to_account_principal(); - let _recv_addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; - let contract_addr = StacksAddress { - version: 1, - bytes: Hash160([0x01; 20]), - }; + let _recv_addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); + let contract_addr = StacksAddress::new(1, Hash160([0x01; 20])).unwrap(); let asset_info = AssetInfo { contract_address: contract_addr.clone(), @@ -7252,10 +7248,7 @@ pub mod test { let auth = TransactionAuth::from_p2pkh(&privk).unwrap(); let addr = auth.origin().address_testnet(); let origin = addr.to_account_principal(); - let _recv_addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let _recv_addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); // stx-transfer for 123 microstx let mut stx_asset_map = AssetMap::new(); @@ -8748,10 +8741,7 @@ pub mod test { .unwrap(); let auth = TransactionAuth::from_p2pkh(&privk).unwrap(); let addr = auth.origin().address_testnet(); - let recv_addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let recv_addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let smart_contract = StacksTransaction::new( TransactionVersion::Testnet, @@ -8962,10 +8952,7 @@ pub mod test { .unwrap(); let auth = TransactionAuth::from_p2pkh(&privk).unwrap(); let addr = auth.origin().address_testnet(); - let recv_addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let recv_addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let smart_contract = StacksTransaction::new( TransactionVersion::Testnet, @@ -11401,4 +11388,438 @@ pub mod test { conn.commit_block(); } + + /// Verify that transactions with bare PrincipalDatas in them cannot decode if the version byte + /// is inappropriate. + #[test] + fn test_invalid_address_prevents_tx_decode() { + // token transfer + let bad_payload_bytes = vec![ + TransactionPayloadID::TokenTransfer as u8, + // Clarity value type (StandardPrincipalData) + 0x05, + // bad address (version byte 32) + 0x20, + // address body (0x00000000000000000000) + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // amount (1 uSTX) + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x01, + // memo + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + ]; + + let mut good_payload_bytes = bad_payload_bytes.clone(); + + // only diff is the address version + good_payload_bytes[2] = 0x1f; + + let bad_payload: Result = + TransactionPayload::consensus_deserialize(&mut &bad_payload_bytes[..]); + assert!(bad_payload.is_err()); + + let _: TransactionPayload = + TransactionPayload::consensus_deserialize(&mut &good_payload_bytes[..]).unwrap(); + + // contract-call with bad contract address + let bad_payload_bytes = vec![ + TransactionPayloadID::ContractCall as u8, + // Stacks address + // bad version byte + 0x20, + // address body (0x00000000000000000000) + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // contract name ("hello") + 0x05, + 0x68, + 0x65, + 0x6c, + 0x6c, + 0x6f, + // function name ("world") + 0x05, + 0x77, + 0x6f, + 0x72, + 0x6c, + 0x64, + // arguments (good address) + // length (1) + 0x00, + 0x00, + 0x00, + 0x01, + // StandardPrincipalData + 0x05, + // address version (1) + 0x01, + // address body (0x00000000000000000000) + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + ]; + + let mut good_payload_bytes = bad_payload_bytes.clone(); + + // only diff is the address version + good_payload_bytes[1] = 0x1f; + + let bad_payload: Result = + TransactionPayload::consensus_deserialize(&mut &bad_payload_bytes[..]); + assert!(bad_payload.is_err()); + + let _: TransactionPayload = + TransactionPayload::consensus_deserialize(&mut &good_payload_bytes[..]).unwrap(); + + // contract-call with bad Principal argument + let bad_payload_bytes = vec![ + TransactionPayloadID::ContractCall as u8, + // Stacks address + 0x01, + // address body (0x00000000000000000000) + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + // contract name ("hello") + 0x05, + 0x68, + 0x65, + 0x6c, + 0x6c, + 0x6f, + // function name ("world") + 0x05, + 0x77, + 0x6f, + 0x72, + 0x6c, + 0x64, + // arguments (good address) + // length (1) + 0x00, + 0x00, + 0x00, + 0x01, + // StandardPrincipalData + 0x05, + // address version (32 -- bad) + 0x20, + // address body (0x00000000000000000000) + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + 0x00, + ]; + + let mut good_payload_bytes = bad_payload_bytes.clone(); + good_payload_bytes[39] = 0x1f; + + let bad_payload: Result = + TransactionPayload::consensus_deserialize(&mut &bad_payload_bytes[..]); + assert!(bad_payload.is_err()); + + let _: TransactionPayload = + TransactionPayload::consensus_deserialize(&mut &good_payload_bytes[..]).unwrap(); + + let bad_payload_bytes = vec![ + // payload type ID + TransactionPayloadID::NakamotoCoinbase as u8, + // buffer + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + 0x12, + // have contract recipient, so Some(..) + 0x0a, + // contract address type + 0x06, + // address (bad version) + 0x20, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + 0xff, + // name length + 0x0c, + // name ('foo-contract') + 0x66, + 0x6f, + 0x6f, + 0x2d, + 0x63, + 0x6f, + 0x6e, + 0x74, + 0x72, + 0x61, + 0x63, + 0x74, + // proof bytes + 0x92, + 0x75, + 0xdf, + 0x67, + 0xa6, + 0x8c, + 0x87, + 0x45, + 0xc0, + 0xff, + 0x97, + 0xb4, + 0x82, + 0x01, + 0xee, + 0x6d, + 0xb4, + 0x47, + 0xf7, + 0xc9, + 0x3b, + 0x23, + 0xae, + 0x24, + 0xcd, + 0xc2, + 0x40, + 0x0f, + 0x52, + 0xfd, + 0xb0, + 0x8a, + 0x1a, + 0x6a, + 0xc7, + 0xec, + 0x71, + 0xbf, + 0x9c, + 0x9c, + 0x76, + 0xe9, + 0x6e, + 0xe4, + 0x67, + 0x5e, + 0xbf, + 0xf6, + 0x06, + 0x25, + 0xaf, + 0x28, + 0x71, + 0x85, + 0x01, + 0x04, + 0x7b, + 0xfd, + 0x87, + 0xb8, + 0x10, + 0xc2, + 0xd2, + 0x13, + 0x9b, + 0x73, + 0xc2, + 0x3b, + 0xd6, + 0x9d, + 0xe6, + 0x63, + 0x60, + 0x95, + 0x3a, + 0x64, + 0x2c, + 0x2a, + 0x33, + 0x0a, + ]; + + let mut good_payload_bytes = bad_payload_bytes.clone(); + debug!( + "index is {:?}", + good_payload_bytes.iter().find(|x| **x == 0x20) + ); + good_payload_bytes[35] = 0x1f; + + let bad_payload: Result = + TransactionPayload::consensus_deserialize(&mut &bad_payload_bytes[..]); + assert!(bad_payload.is_err()); + + let _: TransactionPayload = + TransactionPayload::consensus_deserialize(&mut &good_payload_bytes[..]).unwrap(); + } } diff --git a/stackslib/src/chainstate/stacks/mod.rs b/stackslib/src/chainstate/stacks/mod.rs index 23990fe199..7afc464ebe 100644 --- a/stackslib/src/chainstate/stacks/mod.rs +++ b/stackslib/src/chainstate/stacks/mod.rs @@ -669,8 +669,7 @@ pub struct TransactionContractCall { impl TransactionContractCall { pub fn contract_identifier(&self) -> QualifiedContractIdentifier { - let standard_principal = - StandardPrincipalData(self.address.version, self.address.bytes.0.clone()); + let standard_principal = StandardPrincipalData::from(self.address.clone()); QualifiedContractIdentifier::new(standard_principal, self.contract_name.clone()) } } @@ -1126,10 +1125,7 @@ pub mod test { post_condition_mode: &TransactionPostConditionMode, epoch_id: StacksEpochId, ) -> Vec { - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let asset_name = ClarityName::try_from("hello-asset").unwrap(); let asset_value = Value::buff_from(vec![0, 1, 2, 3]).unwrap(); let contract_name = ContractName::try_from("hello-world").unwrap(); @@ -1276,15 +1272,9 @@ pub mod test { let tx_post_condition_principals = vec![ PostConditionPrincipal::Origin, - PostConditionPrincipal::Standard(StacksAddress { - version: 1, - bytes: Hash160([1u8; 20]), - }), + PostConditionPrincipal::Standard(StacksAddress::new(1, Hash160([1u8; 20])).unwrap()), PostConditionPrincipal::Contract( - StacksAddress { - version: 2, - bytes: Hash160([2u8; 20]), - }, + StacksAddress::new(2, Hash160([2u8; 20])).unwrap(), ContractName::try_from("hello-world").unwrap(), ), ]; @@ -1403,10 +1393,7 @@ pub mod test { ]); } - let stx_address = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let stx_address = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let proof_bytes = hex_bytes("9275df67a68c8745c0ff97b48201ee6db447f7c93b23ae24cdc2400f52fdb08a1a6ac7ec71bf9c9c76e96ee4675ebff60625af28718501047bfd87b810c2d2139b73c23bd69de66360953a642c2a330a").unwrap(); let proof = VRFProof::from_bytes(&proof_bytes[..].to_vec()).unwrap(); let mut tx_payloads = vec![ @@ -1424,10 +1411,7 @@ pub mod test { TokenTransferMemo([0u8; 34]), ), TransactionPayload::ContractCall(TransactionContractCall { - address: StacksAddress { - version: 4, - bytes: Hash160([0xfc; 20]), - }, + address: StacksAddress::new(4, Hash160([0xfc; 20])).unwrap(), contract_name: ContractName::try_from("hello-contract-name").unwrap(), function_name: ClarityName::try_from("hello-contract-call").unwrap(), function_args: vec![Value::Int(0)], @@ -1481,9 +1465,9 @@ pub mod test { ), TransactionPayload::Coinbase( CoinbasePayload([0x12; 32]), - Some(PrincipalData::Standard(StandardPrincipalData( - 0x01, [0x02; 20], - ))), + Some(PrincipalData::Standard( + StandardPrincipalData::new(0x01, [0x02; 20]).unwrap(), + )), Some(proof.clone()), ), ]) @@ -1499,9 +1483,9 @@ pub mod test { ), TransactionPayload::Coinbase( CoinbasePayload([0x12; 32]), - Some(PrincipalData::Standard(StandardPrincipalData( - 0x01, [0x02; 20], - ))), + Some(PrincipalData::Standard( + StandardPrincipalData::new(0x01, [0x02; 20]).unwrap(), + )), None, ), ]) @@ -1649,10 +1633,7 @@ pub mod test { ) .unwrap(); - let stx_address = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let stx_address = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let payload = TransactionPayload::TokenTransfer( stx_address.into(), 123, diff --git a/stackslib/src/chainstate/stacks/tests/chain_histories.rs b/stackslib/src/chainstate/stacks/tests/chain_histories.rs index 6d102af8ec..2409214048 100644 --- a/stackslib/src/chainstate/stacks/tests/chain_histories.rs +++ b/stackslib/src/chainstate/stacks/tests/chain_histories.rs @@ -2846,7 +2846,8 @@ pub fn mine_invalid_token_transfers_block( .try_mine_tx(clarity_tx, &tx_coinbase_signed, ASTRules::PrecheckSize) .unwrap(); - let recipient = StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160([0xff; 20])); + let recipient = + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160([0xff; 20])).unwrap(); let tx1 = make_token_transfer( miner, burnchain_height, diff --git a/stackslib/src/chainstate/stacks/transaction.rs b/stackslib/src/chainstate/stacks/transaction.rs index c0fa7f1727..44a5701012 100644 --- a/stackslib/src/chainstate/stacks/transaction.rs +++ b/stackslib/src/chainstate/stacks/transaction.rs @@ -20,7 +20,10 @@ use std::io::{Read, Write}; use clarity::vm::representations::{ClarityName, ContractName}; use clarity::vm::types::serialization::SerializationError as clarity_serialization_error; -use clarity::vm::types::{QualifiedContractIdentifier, StandardPrincipalData}; +use clarity::vm::types::{ + QualifiedContractIdentifier, SequenceData, SequencedValue, StandardPrincipalData, + MAX_TYPE_DEPTH, +}; use clarity::vm::{ClarityVersion, SymbolicExpression, SymbolicExpressionType, Value}; use stacks_common::codec::{read_next, write_next, Error as codec_error, StacksMessageCodec}; use stacks_common::types::chainstate::StacksAddress; @@ -1851,10 +1854,7 @@ mod test { ), TransactionPayload::SmartContract(..) => { TransactionPayload::ContractCall(TransactionContractCall { - address: StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }, + address: StacksAddress::new(1, Hash160([0xff; 20])).unwrap(), contract_name: ContractName::try_from("hello-world").unwrap(), function_name: ClarityName::try_from("hello-function").unwrap(), function_args: vec![Value::Int(0)], @@ -1959,10 +1959,7 @@ mod test { #[test] fn tx_stacks_transaction_payload_tokens() { - let addr = PrincipalData::from(StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }); + let addr = PrincipalData::from(StacksAddress::new(1, Hash160([0xff; 20])).unwrap()); let tt_stx = TransactionPayload::TokenTransfer(addr.clone(), 123, TokenTransferMemo([1u8; 34])); @@ -1977,11 +1974,7 @@ mod test { check_codec_and_corruption::(&tt_stx, &tt_stx_bytes); let addr = PrincipalData::from(QualifiedContractIdentifier { - issuer: StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - } - .into(), + issuer: StacksAddress::new(1, Hash160([0xff; 20])).unwrap().into(), name: "foo-contract".into(), }); @@ -2006,10 +1999,7 @@ mod test { let hello_contract_body = "hello contract code body"; let contract_call = TransactionContractCall { - address: StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }, + address: StacksAddress::new(1, Hash160([0xff; 20])).unwrap(), contract_name: ContractName::try_from(hello_contract_name).unwrap(), function_name: ClarityName::try_from(hello_function_name).unwrap(), function_args: vec![Value::Int(0)], @@ -2304,11 +2294,7 @@ mod test { let proof = VRFProof::from_bytes(&proof_bytes[..].to_vec()).unwrap(); let recipient = PrincipalData::from(QualifiedContractIdentifier { - issuer: StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - } - .into(), + issuer: StacksAddress::new(1, Hash160([0xff; 20])).unwrap().into(), name: "foo-contract".into(), }); @@ -3366,10 +3352,7 @@ mod test { let hello_function_name = "hello-function-name"; let contract_call = TransactionContractCall { - address: StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }, + address: StacksAddress::new(1, Hash160([0xff; 20])).unwrap(), contract_name: ContractName::try_from(hello_contract_name).unwrap(), function_name: ClarityName::try_from(hello_function_name).unwrap(), function_args: vec![Value::Int(0)], @@ -3408,10 +3391,7 @@ mod test { #[test] fn tx_stacks_transaction_payload_invalid_contract_name() { // test invalid contract name - let address = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let address = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let contract_name = "hello\x00contract-name"; let function_name = ClarityName::try_from("hello-function-name").unwrap(); let function_args = vec![Value::Int(0)]; @@ -3447,10 +3427,7 @@ mod test { #[test] fn tx_stacks_transaction_payload_invalid_function_name() { // test invalid contract name - let address = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let address = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let contract_name = ContractName::try_from("hello-contract-name").unwrap(); let hello_function_name = "hello\x00function-name"; let mut hello_function_name_bytes = vec![hello_function_name.len() as u8]; @@ -3484,10 +3461,7 @@ mod test { #[test] fn tx_stacks_asset() { - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let addr_bytes = [ // version 0x01, // bytes @@ -3536,24 +3510,15 @@ mod test { fn tx_stacks_postcondition() { let tx_post_condition_principals = vec![ PostConditionPrincipal::Origin, - PostConditionPrincipal::Standard(StacksAddress { - version: 1, - bytes: Hash160([1u8; 20]), - }), + PostConditionPrincipal::Standard(StacksAddress::new(1, Hash160([1u8; 20])).unwrap()), PostConditionPrincipal::Contract( - StacksAddress { - version: 2, - bytes: Hash160([2u8; 20]), - }, + StacksAddress::new(2, Hash160([2u8; 20])).unwrap(), ContractName::try_from("hello-world").unwrap(), ), ]; for tx_pcp in tx_post_condition_principals { - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let asset_name = ClarityName::try_from("hello-asset").unwrap(); let contract_name = ContractName::try_from("contract-name").unwrap(); @@ -3659,10 +3624,7 @@ mod test { #[test] fn tx_stacks_postcondition_invalid() { - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let asset_name = ClarityName::try_from("hello-asset").unwrap(); let contract_name = ContractName::try_from("hello-world").unwrap(); @@ -3892,10 +3854,7 @@ mod test { let asset_value = StacksString::from_str("asset-value").unwrap(); - let contract_addr = StacksAddress { - version: 2, - bytes: Hash160([0xfe; 20]), - }; + let contract_addr = StacksAddress::new(2, Hash160([0xfe; 20])).unwrap(); let asset_info = AssetInfo { contract_address: contract_addr.clone(), @@ -3903,10 +3862,7 @@ mod test { asset_name: asset_name.clone(), }; - let stx_address = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let stx_address = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let tx_contract_call = StacksTransaction::new( TransactionVersion::Mainnet, @@ -4191,10 +4147,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("143e543243dfcd8c02a12ad7ea371bd07bc91df9").unwrap() - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("143e543243dfcd8c02a12ad7ea371bd07bc91df9").unwrap() + ) + .unwrap(), ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -4227,7 +4184,7 @@ mod test { signed_tx.auth { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } else { panic!(); } @@ -4265,25 +4222,28 @@ mod test { let origin_address = auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("143e543243dfcd8c02a12ad7ea371bd07bc91df9").unwrap() - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("143e543243dfcd8c02a12ad7ea371bd07bc91df9").unwrap() + ) + .unwrap(), ); let sponsor_address = auth.sponsor().unwrap().address_mainnet(); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap(), ); - let diff_sponsor_address = StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("a139de6733cef9e4663c4a093c1a7390a1dcc297").unwrap(), - }; + let diff_sponsor_address = StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("a139de6733cef9e4663c4a093c1a7390a1dcc297").unwrap(), + ) + .unwrap(); let txs = tx_stacks_transaction_test_txs(&auth); @@ -4344,7 +4304,7 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } @@ -4354,7 +4314,7 @@ mod test { data.key_encoding, TransactionPublicKeyEncoding::Uncompressed ); // not what the origin would have seen - assert_eq!(data.signer, diff_sponsor_address.bytes); + assert_eq!(data.signer, *diff_sponsor_address.bytes()); // not what the origin would have seen } _ => assert!(false), @@ -4384,10 +4344,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("693cd53eb47d4749762d7cfaf46902bda5be5f97").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("693cd53eb47d4749762d7cfaf46902bda5be5f97").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -4423,7 +4384,7 @@ mod test { data.key_encoding, TransactionPublicKeyEncoding::Uncompressed ); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } else { panic!(); } @@ -4467,17 +4428,19 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("693cd53eb47d4749762d7cfaf46902bda5be5f97").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("693cd53eb47d4749762d7cfaf46902bda5be5f97").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -4529,7 +4492,7 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } @@ -4539,7 +4502,7 @@ mod test { data.key_encoding, TransactionPublicKeyEncoding::Uncompressed ); - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); } _ => assert!(false), } @@ -4582,10 +4545,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -4619,7 +4583,7 @@ mod test { if let TransactionAuth::Standard(TransactionSpendingCondition::Multisig(data)) = &signed_tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -4689,17 +4653,19 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -4753,13 +4719,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::Multisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -4817,10 +4783,11 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("73a8b4a751a678fe83e9d35ce301371bb3d397f7").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("73a8b4a751a678fe83e9d35ce301371bb3d397f7").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -4857,7 +4824,7 @@ mod test { if let TransactionAuth::Standard(TransactionSpendingCondition::Multisig(data)) = &signed_tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -4928,17 +4895,19 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("73a8b4a751a678fe83e9d35ce301371bb3d397f7").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("73a8b4a751a678fe83e9d35ce301371bb3d397f7").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -4991,13 +4960,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::Multisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -5054,10 +5023,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("2136367c9c740e7dbed8795afdf8a6d273096718").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("2136367c9c740e7dbed8795afdf8a6d273096718").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -5091,7 +5061,7 @@ mod test { if let TransactionAuth::Standard(TransactionSpendingCondition::Multisig(data)) = &signed_tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_public_key()); @@ -5162,17 +5132,19 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("2136367c9c740e7dbed8795afdf8a6d273096718").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("2136367c9c740e7dbed8795afdf8a6d273096718").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -5226,13 +5198,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::Multisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_public_key()); @@ -5275,10 +5247,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("f15fa5c59d14ffcb615fa6153851cd802bb312d2").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("f15fa5c59d14ffcb615fa6153851cd802bb312d2").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -5310,7 +5283,7 @@ mod test { if let TransactionAuth::Standard(TransactionSpendingCondition::Singlesig(data)) = &signed_tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); } else { panic!(); @@ -5354,17 +5327,19 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("f15fa5c59d14ffcb615fa6153851cd802bb312d2").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("f15fa5c59d14ffcb615fa6153851cd802bb312d2").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -5415,13 +5390,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::Singlesig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); } _ => assert!(false), @@ -5465,10 +5440,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("f5cfb61a07fb41a32197da01ce033888f0fe94a7").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("f5cfb61a07fb41a32197da01ce033888f0fe94a7").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -5503,7 +5479,7 @@ mod test { if let TransactionAuth::Standard(TransactionSpendingCondition::Multisig(data)) = &signed_tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -5574,17 +5550,19 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("f5cfb61a07fb41a32197da01ce033888f0fe94a7").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("f5cfb61a07fb41a32197da01ce033888f0fe94a7").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -5639,13 +5617,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::Multisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -5702,10 +5680,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -5736,7 +5715,7 @@ mod test { TransactionSpendingCondition::OrderIndependentMultisig(data), ) = &tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_public_key()); assert!(data.fields[1].is_signature()); @@ -5789,10 +5768,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -5826,7 +5806,7 @@ mod test { TransactionSpendingCondition::OrderIndependentMultisig(data), ) = &tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -5900,17 +5880,19 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -5972,13 +5954,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::OrderIndependentMultisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -6035,10 +6017,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("73a8b4a751a678fe83e9d35ce301371bb3d397f7").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("73a8b4a751a678fe83e9d35ce301371bb3d397f7").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -6071,7 +6054,7 @@ mod test { TransactionSpendingCondition::OrderIndependentMultisig(data), ) = &tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_public_key()); assert!(data.fields[1].is_signature()); @@ -6142,17 +6125,19 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("73a8b4a751a678fe83e9d35ce301371bb3d397f7").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("73a8b4a751a678fe83e9d35ce301371bb3d397f7").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -6214,13 +6199,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::OrderIndependentMultisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -6277,10 +6262,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -6313,7 +6299,7 @@ mod test { TransactionSpendingCondition::OrderIndependentMultisig(data), ) = &tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_public_key()); @@ -6406,10 +6392,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("315d672961ef2583faf4107ab4ec5566014c867c").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("315d672961ef2583faf4107ab4ec5566014c867c").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -6451,7 +6438,7 @@ mod test { TransactionSpendingCondition::OrderIndependentMultisig(data), ) = &tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 9); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_public_key()); @@ -6537,17 +6524,19 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -6609,13 +6598,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::OrderIndependentMultisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_public_key()); @@ -6706,17 +6695,19 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("fc29d14be615b0f72a66b920040c2b5b8124990b").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("fc29d14be615b0f72a66b920040c2b5b8124990b").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -6792,13 +6783,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::OrderIndependentMultisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 5); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -6868,10 +6859,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("f5cfb61a07fb41a32197da01ce033888f0fe94a7").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("f5cfb61a07fb41a32197da01ce033888f0fe94a7").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -6905,7 +6897,7 @@ mod test { TransactionSpendingCondition::OrderIndependentMultisig(data), ) = &tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_public_key()); @@ -6980,10 +6972,11 @@ mod test { let origin_address = origin_auth.origin().address_mainnet(); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("e2a4ae14ffb0a4a0982a06d07b97d57268d2bf94").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("e2a4ae14ffb0a4a0982a06d07b97d57268d2bf94").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -7026,7 +7019,7 @@ mod test { TransactionSpendingCondition::OrderIndependentMultisig(data), ) = &tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 6); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_public_key()); @@ -7109,17 +7102,19 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("f5cfb61a07fb41a32197da01ce033888f0fe94a7").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("f5cfb61a07fb41a32197da01ce033888f0fe94a7").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -7182,13 +7177,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::OrderIndependentMultisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_public_key()); @@ -7291,17 +7286,19 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("e3001c2b12f24ba279116d7001e3bd82b2b5eab4").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("e3001c2b12f24ba279116d7001e3bd82b2b5eab4").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -7368,13 +7365,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::OrderIndependentMultisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 7); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_public_key()); @@ -7451,10 +7448,11 @@ mod test { assert_eq!(origin_address, order_independent_origin_address); assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -7488,7 +7486,7 @@ mod test { if let TransactionAuth::Standard(TransactionSpendingCondition::Multisig(data)) = &signed_tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -7536,7 +7534,7 @@ mod test { TransactionSpendingCondition::OrderIndependentMultisig(data), ) = &order_independent_tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_public_key()); assert!(data.fields[1].is_signature()); @@ -7601,10 +7599,11 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("73a8b4a751a678fe83e9d35ce301371bb3d397f7").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("73a8b4a751a678fe83e9d35ce301371bb3d397f7").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -7644,7 +7643,7 @@ mod test { if let TransactionAuth::Standard(TransactionSpendingCondition::Multisig(data)) = &signed_tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -7694,7 +7693,7 @@ mod test { TransactionSpendingCondition::OrderIndependentMultisig(data), ) = &tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_public_key()); assert!(data.fields[1].is_signature()); @@ -7759,10 +7758,11 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("f5cfb61a07fb41a32197da01ce033888f0fe94a7").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("f5cfb61a07fb41a32197da01ce033888f0fe94a7").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&origin_auth); @@ -7798,7 +7798,7 @@ mod test { if let TransactionAuth::Standard(TransactionSpendingCondition::Multisig(data)) = &signed_tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -7849,7 +7849,7 @@ mod test { TransactionSpendingCondition::OrderIndependentMultisig(data), ) = &tx.auth { - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_public_key()); @@ -7928,18 +7928,20 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!(sponsor_address, order_independent_sponsor_address); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("a23ea89d6529ac48ac766f720e480beec7f19273").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -7994,13 +7996,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::Multisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -8086,13 +8088,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::OrderIndependentMultisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -8175,19 +8177,21 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!(sponsor_address, order_independent_sponsor_address); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("73a8b4a751a678fe83e9d35ce301371bb3d397f7").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("73a8b4a751a678fe83e9d35ce301371bb3d397f7").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -8250,13 +8254,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::OrderIndependentMultisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -8342,13 +8346,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::OrderIndependentMultisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -8431,19 +8435,21 @@ mod test { assert_eq!( origin_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_hex("3597aaa4bde720be93e3829aae24e76e7fcdfd3e").unwrap(), + ) + .unwrap() ); assert_eq!(sponsor_address, order_independent_sponsor_address); assert_eq!( sponsor_address, - StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_MULTISIG, - bytes: Hash160::from_hex("f5cfb61a07fb41a32197da01ce033888f0fe94a7").unwrap(), - } + StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_MULTISIG, + Hash160::from_hex("f5cfb61a07fb41a32197da01ce033888f0fe94a7").unwrap(), + ) + .unwrap() ); let txs = tx_stacks_transaction_test_txs(&auth); @@ -8499,13 +8505,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::Multisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_signature()); @@ -8592,13 +8598,13 @@ mod test { match origin { TransactionSpendingCondition::Singlesig(ref data) => { assert_eq!(data.key_encoding, TransactionPublicKeyEncoding::Compressed); - assert_eq!(data.signer, origin_address.bytes); + assert_eq!(data.signer, *origin_address.bytes()); } _ => assert!(false), } match sponsor { TransactionSpendingCondition::OrderIndependentMultisig(ref data) => { - assert_eq!(data.signer, sponsor_address.bytes); + assert_eq!(data.signer, *sponsor_address.bytes()); assert_eq!(data.fields.len(), 3); assert!(data.fields[0].is_signature()); assert!(data.fields[1].is_public_key()); diff --git a/stackslib/src/config/chain_data.rs b/stackslib/src/config/chain_data.rs index e4c3899511..b05871522b 100644 --- a/stackslib/src/config/chain_data.rs +++ b/stackslib/src/config/chain_data.rs @@ -794,13 +794,14 @@ EOF ] ), PoxAddress::Standard( - StacksAddress { - version: 20, - bytes: Hash160([ + StacksAddress::new( + 20, + Hash160([ 0x18, 0xc4, 0x20, 0x80, 0xa1, 0xe8, 0x7f, 0xd0, 0x2d, 0xd3, 0xfc, 0xa9, 0x4c, 0x45, 0x13, 0xf9, 0xec, 0xfe, 0x74, 0x14 ]) - }, + ) + .unwrap(), None ) ] diff --git a/stackslib/src/core/tests/mod.rs b/stackslib/src/core/tests/mod.rs index dccf7fb8c3..c7fe269d31 100644 --- a/stackslib/src/core/tests/mod.rs +++ b/stackslib/src/core/tests/mod.rs @@ -215,14 +215,9 @@ fn mempool_walk_over_fork() { let block = &blocks_to_broadcast_in[ix]; let good_tx = &txs[ix]; - let origin_address = StacksAddress { - version: 22, - bytes: Hash160::from_data(&[ix as u8; 32]), - }; - let sponsor_address = StacksAddress { - version: 22, - bytes: Hash160::from_data(&[0x80 | (ix as u8); 32]), - }; + let origin_address = StacksAddress::new(22, Hash160::from_data(&[ix as u8; 32])).unwrap(); + let sponsor_address = + StacksAddress::new(22, Hash160::from_data(&[0x80 | (ix as u8); 32])).unwrap(); let txid = good_tx.txid(); let tx_bytes = good_tx.serialize_to_vec(); @@ -469,14 +464,8 @@ fn mempool_walk_over_fork() { let mut mempool_tx = mempool.tx_begin().unwrap(); let block = &b_1; let tx = &txs[1]; - let origin_address = StacksAddress { - version: 22, - bytes: Hash160::from_data(&[1; 32]), - }; - let sponsor_address = StacksAddress { - version: 22, - bytes: Hash160::from_data(&[0x81; 32]), - }; + let origin_address = StacksAddress::new(22, Hash160::from_data(&[1; 32])).unwrap(); + let sponsor_address = StacksAddress::new(22, Hash160::from_data(&[0x81; 32])).unwrap(); let txid = tx.txid(); let tx_bytes = tx.serialize_to_vec(); @@ -523,14 +512,8 @@ fn mempool_walk_over_fork() { let mut mempool_tx = mempool.tx_begin().unwrap(); let block = &b_4; let tx = &txs[1]; - let origin_address = StacksAddress { - version: 22, - bytes: Hash160::from_data(&[0; 32]), - }; - let sponsor_address = StacksAddress { - version: 22, - bytes: Hash160::from_data(&[1; 32]), - }; + let origin_address = StacksAddress::new(22, Hash160::from_data(&[0; 32])).unwrap(); + let sponsor_address = StacksAddress::new(22, Hash160::from_data(&[1; 32])).unwrap(); let txid = tx.txid(); let tx_bytes = tx.serialize_to_vec(); @@ -1307,14 +1290,8 @@ fn mempool_do_not_replace_tx() { let mut mempool_tx = mempool.tx_begin().unwrap(); // do an initial insert - let origin_address = StacksAddress { - version: 22, - bytes: Hash160::from_data(&[0; 32]), - }; - let sponsor_address = StacksAddress { - version: 22, - bytes: Hash160::from_data(&[1; 32]), - }; + let origin_address = StacksAddress::new(22, Hash160::from_data(&[0; 32])).unwrap(); + let sponsor_address = StacksAddress::new(22, Hash160::from_data(&[1; 32])).unwrap(); tx.set_tx_fee(123); @@ -1411,14 +1388,9 @@ fn mempool_db_load_store_replace_tx(#[case] behavior: MempoolCollectionBehavior) eprintln!("add all txs"); for (i, mut tx) in txs.into_iter().enumerate() { // make sure each address is unique per tx (not the case in codec_all_transactions) - let origin_address = StacksAddress { - version: 22, - bytes: Hash160::from_data(&i.to_be_bytes()), - }; - let sponsor_address = StacksAddress { - version: 22, - bytes: Hash160::from_data(&(i + 1).to_be_bytes()), - }; + let origin_address = StacksAddress::new(22, Hash160::from_data(&i.to_be_bytes())).unwrap(); + let sponsor_address = + StacksAddress::new(22, Hash160::from_data(&(i + 1).to_be_bytes())).unwrap(); tx.set_tx_fee(123); @@ -1668,10 +1640,7 @@ fn mempool_db_test_rbf() { tx_fee: 456, signature: MessageSignature::from_raw(&[0xff; 65]), }); - let stx_address = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let stx_address = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let payload = TransactionPayload::TokenTransfer( PrincipalData::from(QualifiedContractIdentifier { issuer: stx_address.into(), @@ -1691,14 +1660,9 @@ fn mempool_db_test_rbf() { }; let i: usize = 0; - let origin_address = StacksAddress { - version: 22, - bytes: Hash160::from_data(&i.to_be_bytes()), - }; - let sponsor_address = StacksAddress { - version: 22, - bytes: Hash160::from_data(&(i + 1).to_be_bytes()), - }; + let origin_address = StacksAddress::new(22, Hash160::from_data(&i.to_be_bytes())).unwrap(); + let sponsor_address = + StacksAddress::new(22, Hash160::from_data(&(i + 1).to_be_bytes())).unwrap(); tx.set_tx_fee(123); let txid = tx.txid(); @@ -1807,10 +1771,7 @@ fn test_add_txs_bloom_filter() { let chainstate_path = chainstate_path(function_name!()); let mut mempool = MemPoolDB::open_test(false, 0x80000000, &chainstate_path).unwrap(); - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let mut all_txids: Vec> = vec![]; @@ -1916,10 +1877,7 @@ fn test_txtags() { let chainstate_path = chainstate_path(function_name!()); let mut mempool = MemPoolDB::open_test(false, 0x80000000, &chainstate_path).unwrap(); - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let mut seed = [0u8; 32]; thread_rng().fill_bytes(&mut seed); @@ -2015,10 +1973,7 @@ fn test_make_mempool_sync_data() { let chainstate_path = chainstate_path(function_name!()); let mut mempool = MemPoolDB::open_test(false, 0x80000000, &chainstate_path).unwrap(); - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let mut txids = vec![]; let mut nonrecent_fp_rates = vec![]; @@ -2192,10 +2147,7 @@ fn test_find_next_missing_transactions() { let chainstate_path = chainstate_path(function_name!()); let mut mempool = MemPoolDB::open_test(false, 0x80000000, &chainstate_path).unwrap(); - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let block_height = 10; let mut txids = vec![]; @@ -2463,10 +2415,7 @@ fn test_drop_and_blacklist_txs_by_time() { let chainstate_path = chainstate_path(function_name!()); let mut mempool = MemPoolDB::open_test(false, 0x80000000, &chainstate_path).unwrap(); - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let mut txs = vec![]; let block_height = 10; @@ -2583,10 +2532,7 @@ fn test_drop_and_blacklist_txs_by_size() { let chainstate_path = chainstate_path(function_name!()); let mut mempool = MemPoolDB::open_test(false, 0x80000000, &chainstate_path).unwrap(); - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let mut txs = vec![]; let block_height = 10; @@ -2686,10 +2632,7 @@ fn test_filter_txs_by_type() { let chainstate_path = chainstate_path(function_name!()); let mut mempool = MemPoolDB::open_test(false, 0x80000000, &chainstate_path).unwrap(); - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let mut txs = vec![]; let block_height = 10; let mut total_len = 0; diff --git a/stackslib/src/cost_estimates/tests/cost_estimators.rs b/stackslib/src/cost_estimates/tests/cost_estimators.rs index 1ed6b034e5..7b6e19c5d4 100644 --- a/stackslib/src/cost_estimates/tests/cost_estimators.rs +++ b/stackslib/src/cost_estimates/tests/cost_estimators.rs @@ -81,7 +81,7 @@ fn make_dummy_coinbase_tx() -> StacksTransactionReceipt { fn make_dummy_transfer_payload() -> TransactionPayload { TransactionPayload::TokenTransfer( - PrincipalData::Standard(StandardPrincipalData(0, [0; 20])), + PrincipalData::Standard(StandardPrincipalData::new(0, [0; 20]).unwrap()), 1, TokenTransferMemo([0; 34]), ) @@ -92,7 +92,7 @@ fn make_dummy_transfer_tx() -> StacksTransactionReceipt { TransactionVersion::Mainnet, TransactionAuth::Standard(TransactionSpendingCondition::new_initial_sighash()), TransactionPayload::TokenTransfer( - PrincipalData::Standard(StandardPrincipalData(0, [0; 20])), + PrincipalData::Standard(StandardPrincipalData::new(0, [0; 20]).unwrap()), 1, TokenTransferMemo([0; 34]), ), @@ -128,7 +128,7 @@ fn make_dummy_cc_tx( fn make_dummy_cc_payload(contract_name: &str, function_name: &str) -> TransactionPayload { TransactionPayload::ContractCall(TransactionContractCall { - address: StacksAddress::new(0, Hash160([0; 20])), + address: StacksAddress::new(0, Hash160([0; 20])).unwrap(), contract_name: contract_name.into(), function_name: function_name.into(), function_args: vec![], @@ -254,13 +254,13 @@ fn test_pessimistic_cost_estimator_declining_average() { fn pessimistic_estimator_contract_owner_separation() { let mut estimator = instantiate_test_db(); let cc_payload_0 = TransactionPayload::ContractCall(TransactionContractCall { - address: StacksAddress::new(0, Hash160([0; 20])), + address: StacksAddress::new(0, Hash160([0; 20])).unwrap(), contract_name: "contract-1".into(), function_name: "func1".into(), function_args: vec![], }); let cc_payload_1 = TransactionPayload::ContractCall(TransactionContractCall { - address: StacksAddress::new(0, Hash160([1; 20])), + address: StacksAddress::new(0, Hash160([1; 20])).unwrap(), contract_name: "contract-1".into(), function_name: "func1".into(), function_args: vec![], diff --git a/stackslib/src/cost_estimates/tests/fee_medians.rs b/stackslib/src/cost_estimates/tests/fee_medians.rs index 102140e86b..e89af4ca41 100644 --- a/stackslib/src/cost_estimates/tests/fee_medians.rs +++ b/stackslib/src/cost_estimates/tests/fee_medians.rs @@ -65,7 +65,7 @@ fn make_dummy_cc_tx(fee: u64, execution_cost: &ExecutionCost) -> StacksTransacti TransactionVersion::Mainnet, TransactionAuth::Standard(TransactionSpendingCondition::new_initial_sighash()), TransactionPayload::ContractCall(TransactionContractCall { - address: StacksAddress::new(0, Hash160([0; 20])), + address: StacksAddress::new(0, Hash160([0; 20])).unwrap(), contract_name: "cc-dummy".into(), function_name: "func-name".into(), function_args: vec![], diff --git a/stackslib/src/cost_estimates/tests/fee_scalar.rs b/stackslib/src/cost_estimates/tests/fee_scalar.rs index 3bfc4b966a..04c1fc27a7 100644 --- a/stackslib/src/cost_estimates/tests/fee_scalar.rs +++ b/stackslib/src/cost_estimates/tests/fee_scalar.rs @@ -83,7 +83,7 @@ fn make_dummy_transfer_tx(fee: u64) -> StacksTransactionReceipt { TransactionVersion::Mainnet, TransactionAuth::Standard(TransactionSpendingCondition::new_initial_sighash()), TransactionPayload::TokenTransfer( - PrincipalData::Standard(StandardPrincipalData(0, [0; 20])), + PrincipalData::Standard(StandardPrincipalData::new(0, [0; 20]).unwrap()), 1, TokenTransferMemo([0; 34]), ), @@ -103,7 +103,7 @@ fn make_dummy_cc_tx(fee: u64) -> StacksTransactionReceipt { TransactionVersion::Mainnet, TransactionAuth::Standard(TransactionSpendingCondition::new_initial_sighash()), TransactionPayload::ContractCall(TransactionContractCall { - address: StacksAddress::new(0, Hash160([0; 20])), + address: StacksAddress::new(0, Hash160([0; 20])).unwrap(), contract_name: "cc-dummy".into(), function_name: "func-name".into(), function_args: vec![], diff --git a/stackslib/src/net/api/tests/postblock_proposal.rs b/stackslib/src/net/api/tests/postblock_proposal.rs index 4d8551d375..af239ee078 100644 --- a/stackslib/src/net/api/tests/postblock_proposal.rs +++ b/stackslib/src/net/api/tests/postblock_proposal.rs @@ -260,10 +260,7 @@ fn test_try_make_response() { ) .unwrap(); - let stx_address = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let stx_address = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let payload = TransactionPayload::TokenTransfer( stx_address.into(), 123, diff --git a/stackslib/src/net/api/tests/postmempoolquery.rs b/stackslib/src/net/api/tests/postmempoolquery.rs index 8f921525a3..d07ca50b92 100644 --- a/stackslib/src/net/api/tests/postmempoolquery.rs +++ b/stackslib/src/net/api/tests/postmempoolquery.rs @@ -131,10 +131,7 @@ fn test_stream_mempool_txs() { let chainstate_path = chainstate_path(function_name!()); let mut mempool = MemPoolDB::open_test(false, 0x80000000, &chainstate_path).unwrap(); - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let mut txs = vec![]; let block_height = 10; let mut total_len = 0; @@ -351,10 +348,7 @@ fn test_stream_mempool_txs() { #[test] fn test_decode_tx_stream() { - let addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let mut txs = vec![]; for _i in 0..10 { let pk = StacksPrivateKey::new(); diff --git a/stackslib/src/net/codec.rs b/stackslib/src/net/codec.rs index 1f2efa15ac..1eeff85dec 100644 --- a/stackslib/src/net/codec.rs +++ b/stackslib/src/net/codec.rs @@ -774,7 +774,7 @@ fn contract_id_consensus_serialize( ) -> Result<(), codec_error> { let addr = &cid.issuer; let name = &cid.name; - write_next(fd, &addr.0)?; + write_next(fd, &addr.version())?; write_next(fd, &addr.1)?; write_next(fd, name)?; Ok(()) @@ -787,11 +787,13 @@ fn contract_id_consensus_deserialize( let bytes: [u8; 20] = read_next(fd)?; let name: ContractName = read_next(fd)?; let qn = QualifiedContractIdentifier::new( - StacksAddress { - version, - bytes: Hash160(bytes), - } - .into(), + StacksAddress::new(version, Hash160(bytes)) + .map_err(|_| { + codec_error::DeserializeError( + "Failed to make StacksAddress with given version".into(), + ) + })? + .into(), name, ); Ok(qn) diff --git a/stackslib/src/net/db.rs b/stackslib/src/net/db.rs index a770727315..8721802740 100644 --- a/stackslib/src/net/db.rs +++ b/stackslib/src/net/db.rs @@ -1924,11 +1924,11 @@ mod test { let mut stackerdbs = vec![ QualifiedContractIdentifier::new( - StandardPrincipalData(0x01, [0x02; 20]), + StandardPrincipalData::new(0x01, [0x02; 20]).unwrap(), "db-1".into(), ), QualifiedContractIdentifier::new( - StandardPrincipalData(0x02, [0x03; 20]), + StandardPrincipalData::new(0x02, [0x03; 20]).unwrap(), "db-2".into(), ), ]; @@ -2097,11 +2097,11 @@ mod test { // basic storage and retrieval let mut stackerdbs = vec![ QualifiedContractIdentifier::new( - StandardPrincipalData(0x01, [0x02; 20]), + StandardPrincipalData::new(0x01, [0x02; 20]).unwrap(), "db-1".into(), ), QualifiedContractIdentifier::new( - StandardPrincipalData(0x02, [0x03; 20]), + StandardPrincipalData::new(0x02, [0x03; 20]).unwrap(), "db-2".into(), ), ]; @@ -2127,11 +2127,11 @@ mod test { // adding DBs to the same slot just grows the total list let mut new_stackerdbs = vec![ QualifiedContractIdentifier::new( - StandardPrincipalData(0x03, [0x04; 20]), + StandardPrincipalData::new(0x03, [0x04; 20]).unwrap(), "db-3".into(), ), QualifiedContractIdentifier::new( - StandardPrincipalData(0x04, [0x05; 20]), + StandardPrincipalData::new(0x04, [0x05; 20]).unwrap(), "db-5".into(), ), ]; @@ -2332,11 +2332,11 @@ mod test { let mut stackerdbs = vec![ QualifiedContractIdentifier::new( - StandardPrincipalData(0x01, [0x02; 20]), + StandardPrincipalData::new(0x01, [0x02; 20]).unwrap(), "db-1".into(), ), QualifiedContractIdentifier::new( - StandardPrincipalData(0x02, [0x03; 20]), + StandardPrincipalData::new(0x02, [0x03; 20]).unwrap(), "db-2".into(), ), ]; @@ -2369,11 +2369,11 @@ mod test { // insert new stacker DBs -- keep one the same, and add a different one let mut changed_stackerdbs = vec![ QualifiedContractIdentifier::new( - StandardPrincipalData(0x01, [0x02; 20]), + StandardPrincipalData::new(0x01, [0x02; 20]).unwrap(), "db-1".into(), ), QualifiedContractIdentifier::new( - StandardPrincipalData(0x03, [0x04; 20]), + StandardPrincipalData::new(0x03, [0x04; 20]).unwrap(), "db-3".into(), ), ]; @@ -2409,11 +2409,11 @@ mod test { // add back stacker DBs let mut new_stackerdbs = vec![ QualifiedContractIdentifier::new( - StandardPrincipalData(0x04, [0x05; 20]), + StandardPrincipalData::new(0x04, [0x05; 20]).unwrap(), "db-4".into(), ), QualifiedContractIdentifier::new( - StandardPrincipalData(0x05, [0x06; 20]), + StandardPrincipalData::new(0x05, [0x06; 20]).unwrap(), "db-5".into(), ), ]; @@ -2437,11 +2437,11 @@ mod test { for _ in 0..2 { let mut replace_stackerdbs = vec![ QualifiedContractIdentifier::new( - StandardPrincipalData(0x06, [0x07; 20]), + StandardPrincipalData::new(0x06, [0x07; 20]).unwrap(), "db-6".into(), ), QualifiedContractIdentifier::new( - StandardPrincipalData(0x07, [0x08; 20]), + StandardPrincipalData::new(0x07, [0x08; 20]).unwrap(), "db-7".into(), ), ]; @@ -2533,11 +2533,11 @@ mod test { let mut stackerdbs = vec![ QualifiedContractIdentifier::new( - StandardPrincipalData(0x01, [0x02; 20]), + StandardPrincipalData::new(0x01, [0x02; 20]).unwrap(), "db-1".into(), ), QualifiedContractIdentifier::new( - StandardPrincipalData(0x02, [0x03; 20]), + StandardPrincipalData::new(0x02, [0x03; 20]).unwrap(), "db-2".into(), ), ]; @@ -2572,11 +2572,11 @@ mod test { // insert new stacker DBs -- keep one the same, and add a different one let mut changed_stackerdbs = vec![ QualifiedContractIdentifier::new( - StandardPrincipalData(0x01, [0x02; 20]), + StandardPrincipalData::new(0x01, [0x02; 20]).unwrap(), "db-1".into(), ), QualifiedContractIdentifier::new( - StandardPrincipalData(0x03, [0x04; 20]), + StandardPrincipalData::new(0x03, [0x04; 20]).unwrap(), "db-3".into(), ), ]; @@ -2666,11 +2666,11 @@ mod test { let mut replace_stackerdbs = vec![ QualifiedContractIdentifier::new( - StandardPrincipalData(0x06, [0x07; 20]), + StandardPrincipalData::new(0x06, [0x07; 20]).unwrap(), "db-6".into(), ), QualifiedContractIdentifier::new( - StandardPrincipalData(0x07, [0x08; 20]), + StandardPrincipalData::new(0x07, [0x08; 20]).unwrap(), "db-7".into(), ), ]; diff --git a/stackslib/src/net/stackerdb/tests/config.rs b/stackslib/src/net/stackerdb/tests/config.rs index cff4ca1059..7518af9b50 100644 --- a/stackslib/src/net/stackerdb/tests/config.rs +++ b/stackslib/src/net/stackerdb/tests/config.rs @@ -142,11 +142,11 @@ fn test_valid_and_invalid_stackerdb_configs() { Some(StackerDBConfig { chunk_size: 123, signers: vec![( - StacksAddress { - version: 26, - bytes: Hash160::from_hex("b4fdae98b64b9cd6c9436f3b965558966afe890b") - .unwrap(), - }, + StacksAddress::new( + 26, + Hash160::from_hex("b4fdae98b64b9cd6c9436f3b965558966afe890b").unwrap(), + ) + .unwrap(), 3, )], write_freq: 4, @@ -183,11 +183,11 @@ fn test_valid_and_invalid_stackerdb_configs() { Some(StackerDBConfig { chunk_size: 123, signers: vec![( - StacksAddress { - version: 26, - bytes: Hash160::from_hex("b4fdae98b64b9cd6c9436f3b965558966afe890b") - .unwrap(), - }, + StacksAddress::new( + 26, + Hash160::from_hex("b4fdae98b64b9cd6c9436f3b965558966afe890b").unwrap(), + ) + .unwrap(), 3, )], write_freq: 4, @@ -485,11 +485,11 @@ fn test_valid_and_invalid_stackerdb_configs() { Some(StackerDBConfig { chunk_size: 123, signers: vec![( - StacksAddress { - version: 26, - bytes: Hash160::from_hex("b4fdae98b64b9cd6c9436f3b965558966afe890b") - .unwrap(), - }, + StacksAddress::new( + 26, + Hash160::from_hex("b4fdae98b64b9cd6c9436f3b965558966afe890b").unwrap(), + ) + .unwrap(), 3, )], write_freq: 4, @@ -634,10 +634,11 @@ fn test_hint_replicas_override() { let expected_config = StackerDBConfig { chunk_size: 123, signers: vec![( - StacksAddress { - version: 26, - bytes: Hash160::from_hex("b4fdae98b64b9cd6c9436f3b965558966afe890b").unwrap(), - }, + StacksAddress::new( + 26, + Hash160::from_hex("b4fdae98b64b9cd6c9436f3b965558966afe890b").unwrap(), + ) + .unwrap(), 3, )], write_freq: 4, diff --git a/stackslib/src/net/stackerdb/tests/db.rs b/stackslib/src/net/stackerdb/tests/db.rs index 9bcf800529..41e2e3a324 100644 --- a/stackslib/src/net/stackerdb/tests/db.rs +++ b/stackslib/src/net/stackerdb/tests/db.rs @@ -62,67 +62,37 @@ fn test_stackerdb_create_list_delete() { let mut db = StackerDBs::connect(path, true).unwrap(); let tx = db.tx_begin(StackerDBConfig::noop()).unwrap(); - let slots = [( - StacksAddress { - version: 0x02, - bytes: Hash160([0x02; 20]), - }, - 1, - )]; + let slots = [(StacksAddress::new(0x02, Hash160([0x02; 20])).unwrap(), 1)]; // databases with one chunk tx.create_stackerdb( &QualifiedContractIdentifier::new( - StacksAddress { - version: 0x01, - bytes: Hash160([0x01; 20]), - } - .into(), + StacksAddress::new(0x01, Hash160([0x01; 20])) + .unwrap() + .into(), ContractName::try_from("db1").unwrap(), ), - &[( - StacksAddress { - version: 0x01, - bytes: Hash160([0x01; 20]), - }, - 1, - )], + &[(StacksAddress::new(0x01, Hash160([0x01; 20])).unwrap(), 1)], ) .unwrap(); tx.create_stackerdb( &QualifiedContractIdentifier::new( - StacksAddress { - version: 0x02, - bytes: Hash160([0x02; 20]), - } - .into(), + StacksAddress::new(0x02, Hash160([0x02; 20])) + .unwrap() + .into(), ContractName::try_from("db2").unwrap(), ), - &[( - StacksAddress { - version: 0x02, - bytes: Hash160([0x02; 20]), - }, - 1, - )], + &[(StacksAddress::new(0x02, Hash160([0x02; 20])).unwrap(), 1)], ) .unwrap(); tx.create_stackerdb( &QualifiedContractIdentifier::new( - StacksAddress { - version: 0x03, - bytes: Hash160([0x03; 20]), - } - .into(), + StacksAddress::new(0x03, Hash160([0x03; 20])) + .unwrap() + .into(), ContractName::try_from("db3").unwrap(), ), - &[( - StacksAddress { - version: 0x03, - bytes: Hash160([0x03; 20]), - }, - 1, - )], + &[(StacksAddress::new(0x03, Hash160([0x03; 20])).unwrap(), 1)], ) .unwrap(); @@ -135,27 +105,21 @@ fn test_stackerdb_create_list_delete() { dbs, vec![ QualifiedContractIdentifier::new( - StacksAddress { - version: 0x01, - bytes: Hash160([0x01; 20]) - } - .into(), + StacksAddress::new(0x01, Hash160([0x01; 20])) + .unwrap() + .into(), ContractName::try_from("db1").unwrap() ), QualifiedContractIdentifier::new( - StacksAddress { - version: 0x02, - bytes: Hash160([0x02; 20]) - } - .into(), + StacksAddress::new(0x02, Hash160([0x02; 20])) + .unwrap() + .into(), ContractName::try_from("db2").unwrap() ), QualifiedContractIdentifier::new( - StacksAddress { - version: 0x03, - bytes: Hash160([0x03; 20]) - } - .into(), + StacksAddress::new(0x03, Hash160([0x03; 20])) + .unwrap() + .into(), ContractName::try_from("db3").unwrap() ), ] @@ -166,11 +130,9 @@ fn test_stackerdb_create_list_delete() { if let net_error::StackerDBExists(..) = tx .create_stackerdb( &QualifiedContractIdentifier::new( - StacksAddress { - version: 0x01, - bytes: Hash160([0x01; 20]), - } - .into(), + StacksAddress::new(0x01, Hash160([0x01; 20])) + .unwrap() + .into(), ContractName::try_from("db1").unwrap(), ), &[], @@ -189,27 +151,21 @@ fn test_stackerdb_create_list_delete() { dbs, vec![ QualifiedContractIdentifier::new( - StacksAddress { - version: 0x01, - bytes: Hash160([0x01; 20]) - } - .into(), + StacksAddress::new(0x01, Hash160([0x01; 20])) + .unwrap() + .into(), ContractName::try_from("db1").unwrap() ), QualifiedContractIdentifier::new( - StacksAddress { - version: 0x02, - bytes: Hash160([0x02; 20]) - } - .into(), + StacksAddress::new(0x02, Hash160([0x02; 20])) + .unwrap() + .into(), ContractName::try_from("db2").unwrap() ), QualifiedContractIdentifier::new( - StacksAddress { - version: 0x03, - bytes: Hash160([0x03; 20]) - } - .into(), + StacksAddress::new(0x03, Hash160([0x03; 20])) + .unwrap() + .into(), ContractName::try_from("db3").unwrap() ), ] @@ -223,11 +179,9 @@ fn test_stackerdb_create_list_delete() { // remove a db let tx = db.tx_begin(StackerDBConfig::noop()).unwrap(); tx.delete_stackerdb(&QualifiedContractIdentifier::new( - StacksAddress { - version: 0x01, - bytes: Hash160([0x01; 20]), - } - .into(), + StacksAddress::new(0x01, Hash160([0x01; 20])) + .unwrap() + .into(), ContractName::try_from("db1").unwrap(), )) .unwrap(); @@ -240,19 +194,15 @@ fn test_stackerdb_create_list_delete() { dbs, vec![ QualifiedContractIdentifier::new( - StacksAddress { - version: 0x02, - bytes: Hash160([0x02; 20]) - } - .into(), + StacksAddress::new(0x02, Hash160([0x02; 20])) + .unwrap() + .into(), ContractName::try_from("db2").unwrap() ), QualifiedContractIdentifier::new( - StacksAddress { - version: 0x03, - bytes: Hash160([0x03; 20]) - } - .into(), + StacksAddress::new(0x03, Hash160([0x03; 20])) + .unwrap() + .into(), ContractName::try_from("db3").unwrap() ), ] @@ -266,11 +216,9 @@ fn test_stackerdb_create_list_delete() { // deletion is idempotent let tx = db.tx_begin(StackerDBConfig::noop()).unwrap(); tx.delete_stackerdb(&QualifiedContractIdentifier::new( - StacksAddress { - version: 0x01, - bytes: Hash160([0x01; 20]), - } - .into(), + StacksAddress::new(0x01, Hash160([0x01; 20])) + .unwrap() + .into(), ContractName::try_from("db1").unwrap(), )) .unwrap(); @@ -283,19 +231,15 @@ fn test_stackerdb_create_list_delete() { dbs, vec![ QualifiedContractIdentifier::new( - StacksAddress { - version: 0x02, - bytes: Hash160([0x02; 20]) - } - .into(), + StacksAddress::new(0x02, Hash160([0x02; 20])) + .unwrap() + .into(), ContractName::try_from("db2").unwrap() ), QualifiedContractIdentifier::new( - StacksAddress { - version: 0x03, - bytes: Hash160([0x03; 20]) - } - .into(), + StacksAddress::new(0x03, Hash160([0x03; 20])) + .unwrap() + .into(), ContractName::try_from("db3").unwrap() ), ] @@ -313,11 +257,9 @@ fn test_stackerdb_prepare_clear_slots() { setup_test_path(path); let sc = QualifiedContractIdentifier::new( - StacksAddress { - version: 0x01, - bytes: Hash160([0x01; 20]), - } - .into(), + StacksAddress::new(0x01, Hash160([0x01; 20])) + .unwrap() + .into(), ContractName::try_from("db1").unwrap(), ); @@ -327,27 +269,9 @@ fn test_stackerdb_prepare_clear_slots() { tx.create_stackerdb( &sc, &[ - ( - StacksAddress { - version: 0x02, - bytes: Hash160([0x02; 20]), - }, - 2, - ), - ( - StacksAddress { - version: 0x03, - bytes: Hash160([0x03; 20]), - }, - 3, - ), - ( - StacksAddress { - version: 0x04, - bytes: Hash160([0x04; 20]), - }, - 4, - ), + (StacksAddress::new(0x02, Hash160([0x02; 20])).unwrap(), 2), + (StacksAddress::new(0x03, Hash160([0x03; 20])).unwrap(), 3), + (StacksAddress::new(0x04, Hash160([0x04; 20])).unwrap(), 4), ], ) .unwrap(); @@ -363,28 +287,19 @@ fn test_stackerdb_prepare_clear_slots() { // belongs to 0x02 assert_eq!( slot_validation.signer, - StacksAddress { - version: 0x02, - bytes: Hash160([0x02; 20]) - } + StacksAddress::new(0x02, Hash160([0x02; 20])).unwrap() ); } else if slot_id >= 2 && slot_id < 2 + 3 { // belongs to 0x03 assert_eq!( slot_validation.signer, - StacksAddress { - version: 0x03, - bytes: Hash160([0x03; 20]) - } + StacksAddress::new(0x03, Hash160([0x03; 20])).unwrap() ); } else if slot_id >= 2 + 3 && slot_id < 2 + 3 + 4 { // belongs to 0x03 assert_eq!( slot_validation.signer, - StacksAddress { - version: 0x04, - bytes: Hash160([0x04; 20]) - } + StacksAddress::new(0x04, Hash160([0x04; 20])).unwrap() ); } else { unreachable!() @@ -424,11 +339,9 @@ fn test_stackerdb_insert_query_chunks() { setup_test_path(path); let sc = QualifiedContractIdentifier::new( - StacksAddress { - version: 0x01, - bytes: Hash160([0x01; 20]), - } - .into(), + StacksAddress::new(0x01, Hash160([0x01; 20])) + .unwrap() + .into(), ContractName::try_from("db1").unwrap(), ); @@ -579,11 +492,9 @@ fn test_reconfigure_stackerdb() { setup_test_path(path); let sc = QualifiedContractIdentifier::new( - StacksAddress { - version: 0x01, - bytes: Hash160([0x01; 20]), - } - .into(), + StacksAddress::new(0x01, Hash160([0x01; 20])) + .unwrap() + .into(), ContractName::try_from("db1").unwrap(), ); diff --git a/stackslib/src/net/stackerdb/tests/sync.rs b/stackslib/src/net/stackerdb/tests/sync.rs index 627bac1abc..d4660803d2 100644 --- a/stackslib/src/net/stackerdb/tests/sync.rs +++ b/stackslib/src/net/stackerdb/tests/sync.rs @@ -69,10 +69,11 @@ impl StackerDBConfig { /// `setup_stackerdb()` fn add_stackerdb(config: &mut TestPeerConfig, stackerdb_config: Option) -> usize { let name = ContractName::try_from(format!("db-{}", config.stacker_dbs.len())).unwrap(); - let addr = StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_data(&config.stacker_dbs.len().to_be_bytes()), - }; + let addr = StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_data(&config.stacker_dbs.len().to_be_bytes()), + ) + .unwrap(); let stackerdb_config = stackerdb_config.unwrap_or(StackerDBConfig::noop()); @@ -110,10 +111,11 @@ fn setup_stackerdb(peer: &mut TestPeer, idx: usize, fill: bool, num_slots: usize } }; let pubk = StacksPublicKey::from_private(&pk); - let addr = StacksAddress { - version: C32_ADDRESS_VERSION_MAINNET_SINGLESIG, - bytes: Hash160::from_node_public_key(&pubk), - }; + let addr = StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + Hash160::from_node_public_key(&pubk), + ) + .unwrap(); pks.push(pk); slots.push((addr, 1u32)); diff --git a/stackslib/src/net/tests/convergence.rs b/stackslib/src/net/tests/convergence.rs index be35c4e1f1..c9d1fd97f3 100644 --- a/stackslib/src/net/tests/convergence.rs +++ b/stackslib/src/net/tests/convergence.rs @@ -39,7 +39,7 @@ fn setup_rlimit_nofiles() { fn stacker_db_id(i: usize) -> QualifiedContractIdentifier { QualifiedContractIdentifier::new( - StandardPrincipalData(0x01, [i as u8; 20]), + StandardPrincipalData::new(0x01, [i as u8; 20]).unwrap(), format!("db-{}", i).as_str().into(), ) } diff --git a/stackslib/src/net/tests/httpcore.rs b/stackslib/src/net/tests/httpcore.rs index 8372398533..0fd8b796ce 100644 --- a/stackslib/src/net/tests/httpcore.rs +++ b/stackslib/src/net/tests/httpcore.rs @@ -151,10 +151,7 @@ fn make_test_transaction() -> StacksTransaction { .unwrap(); let auth = TransactionAuth::from_p2pkh(&privk).unwrap(); let addr = auth.origin().address_testnet(); - let recv_addr = StacksAddress { - version: 1, - bytes: Hash160([0xff; 20]), - }; + let recv_addr = StacksAddress::new(1, Hash160([0xff; 20])).unwrap(); let mut tx_stx_transfer = StacksTransaction::new( TransactionVersion::Testnet, diff --git a/stackslib/src/net/tests/mempool/mod.rs b/stackslib/src/net/tests/mempool/mod.rs index e1430454e8..922acbcd2c 100644 --- a/stackslib/src/net/tests/mempool/mod.rs +++ b/stackslib/src/net/tests/mempool/mod.rs @@ -86,10 +86,8 @@ fn test_mempool_sync_2_peers() { peer_2.process_stacks_epoch_at_tip(&stacks_block, µblocks); } - let addr = StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_SINGLESIG, - bytes: Hash160([0xff; 20]), - }; + let addr = + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160([0xff; 20])).unwrap(); let stacks_tip_ch = peer_1.network.stacks_tip.consensus_hash.clone(); let stacks_tip_bhh = peer_1.network.stacks_tip.block_hash.clone(); @@ -354,10 +352,8 @@ fn test_mempool_sync_2_peers_paginated() { peer_2.process_stacks_epoch_at_tip(&stacks_block, µblocks); } - let addr = StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_SINGLESIG, - bytes: Hash160([0xff; 20]), - }; + let addr = + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160([0xff; 20])).unwrap(); let stacks_tip_ch = peer_1.network.stacks_tip.consensus_hash.clone(); let stacks_tip_bhh = peer_1.network.stacks_tip.block_hash.clone(); @@ -545,10 +541,8 @@ fn test_mempool_sync_2_peers_blacklisted() { peer_2.process_stacks_epoch_at_tip(&stacks_block, µblocks); } - let addr = StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_SINGLESIG, - bytes: Hash160([0xff; 20]), - }; + let addr = + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160([0xff; 20])).unwrap(); let stacks_tip_ch = peer_1.network.stacks_tip.consensus_hash.clone(); let stacks_tip_bhh = peer_1.network.stacks_tip.block_hash.clone(); @@ -756,10 +750,8 @@ fn test_mempool_sync_2_peers_problematic() { peer_2.process_stacks_epoch_at_tip(&stacks_block, µblocks); } - let addr = StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_SINGLESIG, - bytes: Hash160([0xff; 20]), - }; + let addr = + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160([0xff; 20])).unwrap(); let stacks_tip_ch = peer_1.network.stacks_tip.consensus_hash.clone(); let stacks_tip_bhh = peer_1.network.stacks_tip.block_hash.clone(); @@ -1143,10 +1135,8 @@ fn test_mempool_sync_2_peers_nakamoto_paginated() { debug!("Peers are connected"); - let addr = StacksAddress { - version: C32_ADDRESS_VERSION_TESTNET_SINGLESIG, - bytes: Hash160([0xff; 20]), - }; + let addr = + StacksAddress::new(C32_ADDRESS_VERSION_TESTNET_SINGLESIG, Hash160([0xff; 20])).unwrap(); let stacks_tip_ch = peer_1.network.stacks_tip.consensus_hash.clone(); let stacks_tip_bhh = peer_1.network.stacks_tip.block_hash.clone(); diff --git a/stackslib/src/net/tests/mod.rs b/stackslib/src/net/tests/mod.rs index ba2cb2d44a..ad5b82513d 100644 --- a/stackslib/src/net/tests/mod.rs +++ b/stackslib/src/net/tests/mod.rs @@ -443,7 +443,7 @@ impl NakamotoBootPlan { let mut other_peer_nonces = vec![0; other_peers.len()]; let addr = StacksAddress::p2pkh(false, &StacksPublicKey::from_private(&self.private_key)); let default_pox_addr = - PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, addr.bytes.clone()); + PoxAddress::from_legacy(AddressHashMode::SerializeP2PKH, addr.bytes().clone()); let mut sortition_height = peer.get_burn_block_height(); debug!("\n\n======================"); diff --git a/stackslib/src/util_lib/boot.rs b/stackslib/src/util_lib/boot.rs index 95cfca9c41..1ebf6e2af9 100644 --- a/stackslib/src/util_lib/boot.rs +++ b/stackslib/src/util_lib/boot.rs @@ -25,7 +25,7 @@ pub fn boot_code_addr(mainnet: bool) -> StacksAddress { pub fn boot_code_tx_auth(boot_code_address: StacksAddress) -> TransactionAuth { TransactionAuth::Standard(TransactionSpendingCondition::Singlesig( SinglesigSpendingCondition { - signer: boot_code_address.bytes.clone(), + signer: boot_code_address.bytes().clone(), hash_mode: SinglesigHashMode::P2PKH, key_encoding: TransactionPublicKeyEncoding::Uncompressed, nonce: 0, diff --git a/stackslib/src/util_lib/signed_structured_data.rs b/stackslib/src/util_lib/signed_structured_data.rs index 14882c2fb9..dbc279fbce 100644 --- a/stackslib/src/util_lib/signed_structured_data.rs +++ b/stackslib/src/util_lib/signed_structured_data.rs @@ -300,7 +300,9 @@ pub mod pox4 { // Test 2: invalid pox address let other_pox_address = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - StacksAddress::p2pkh(false, &Secp256k1PublicKey::new()).bytes, + StacksAddress::p2pkh(false, &Secp256k1PublicKey::new()) + .destruct() + .1, ); let result = call_get_signer_message_hash( &mut sim, diff --git a/testnet/stacks-node/src/tests/epoch_21.rs b/testnet/stacks-node/src/tests/epoch_21.rs index d50cac0117..474139f2a2 100644 --- a/testnet/stacks-node/src/tests/epoch_21.rs +++ b/testnet/stacks-node/src/tests/epoch_21.rs @@ -546,7 +546,7 @@ fn transition_fixes_bitcoin_rigidity() { let _spender_btc_addr = BitcoinAddress::from_bytes_legacy( BitcoinNetworkType::Regtest, LegacyBitcoinAddressType::PublicKeyHash, - &spender_stx_addr.bytes.0, + &spender_stx_addr.bytes().0, ) .unwrap(); diff --git a/testnet/stacks-node/src/tests/epoch_22.rs b/testnet/stacks-node/src/tests/epoch_22.rs index 493fb36fcd..2703746424 100644 --- a/testnet/stacks-node/src/tests/epoch_22.rs +++ b/testnet/stacks-node/src/tests/epoch_22.rs @@ -444,22 +444,23 @@ fn disable_pox() { let reward_cycle_max = *reward_cycle_pox_addrs.keys().max().unwrap(); let pox_addr_1 = PoxAddress::Standard( - StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_1).unwrap()), + StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_1).unwrap()).unwrap(), Some(AddressHashMode::SerializeP2PKH), ); let pox_addr_2 = PoxAddress::Standard( - StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_2).unwrap()), + StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_2).unwrap()).unwrap(), Some(AddressHashMode::SerializeP2PKH), ); let pox_addr_3 = PoxAddress::Standard( - StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_3).unwrap()), + StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_3).unwrap()).unwrap(), Some(AddressHashMode::SerializeP2PKH), ); let burn_pox_addr = PoxAddress::Standard( StacksAddress::new( 26, Hash160::from_hex("0000000000000000000000000000000000000000").unwrap(), - ), + ) + .unwrap(), Some(AddressHashMode::SerializeP2PKH), ); @@ -1110,22 +1111,23 @@ fn pox_2_unlock_all() { let reward_cycle_max = *reward_cycle_pox_addrs.keys().max().unwrap(); let pox_addr_1 = PoxAddress::Standard( - StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_1).unwrap()), + StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_1).unwrap()).unwrap(), Some(AddressHashMode::SerializeP2PKH), ); let pox_addr_2 = PoxAddress::Standard( - StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_2).unwrap()), + StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_2).unwrap()).unwrap(), Some(AddressHashMode::SerializeP2PKH), ); let pox_addr_3 = PoxAddress::Standard( - StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_3).unwrap()), + StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_3).unwrap()).unwrap(), Some(AddressHashMode::SerializeP2PKH), ); let burn_pox_addr = PoxAddress::Standard( StacksAddress::new( 26, Hash160::from_hex("0000000000000000000000000000000000000000").unwrap(), - ), + ) + .unwrap(), Some(AddressHashMode::SerializeP2PKH), ); diff --git a/testnet/stacks-node/src/tests/epoch_24.rs b/testnet/stacks-node/src/tests/epoch_24.rs index 8780d08012..c36079029c 100644 --- a/testnet/stacks-node/src/tests/epoch_24.rs +++ b/testnet/stacks-node/src/tests/epoch_24.rs @@ -540,22 +540,23 @@ fn fix_to_pox_contract() { let reward_cycle_max = *reward_cycle_pox_addrs.keys().max().unwrap(); let pox_addr_1 = PoxAddress::Standard( - StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_1).unwrap()), + StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_1).unwrap()).unwrap(), Some(AddressHashMode::SerializeP2PKH), ); let pox_addr_2 = PoxAddress::Standard( - StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_2).unwrap()), + StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_2).unwrap()).unwrap(), Some(AddressHashMode::SerializeP2PKH), ); let pox_addr_3 = PoxAddress::Standard( - StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_3).unwrap()), + StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_3).unwrap()).unwrap(), Some(AddressHashMode::SerializeP2PKH), ); let burn_pox_addr = PoxAddress::Standard( StacksAddress::new( 26, Hash160::from_hex("0000000000000000000000000000000000000000").unwrap(), - ), + ) + .unwrap(), Some(AddressHashMode::SerializeP2PKH), ); @@ -1088,7 +1089,7 @@ fn verify_auto_unlock_behavior() { info!("reward set entries: {reward_set_entries:?}"); assert_eq!( reward_set_entries[0].reward_address.bytes(), - pox_pubkey_2_stx_addr.bytes.0.to_vec() + pox_pubkey_2_stx_addr.bytes().0 ); assert_eq!( reward_set_entries[0].amount_stacked, @@ -1096,7 +1097,7 @@ fn verify_auto_unlock_behavior() { ); assert_eq!( reward_set_entries[1].reward_address.bytes(), - pox_pubkey_3_stx_addr.bytes.0.to_vec() + pox_pubkey_3_stx_addr.bytes().0 ); assert_eq!(reward_set_entries[1].amount_stacked, small_stacked as u128); } @@ -1165,7 +1166,7 @@ fn verify_auto_unlock_behavior() { assert_eq!(reward_set_entries.len(), 1); assert_eq!( reward_set_entries[0].reward_address.bytes(), - pox_pubkey_2_stx_addr.bytes.0.to_vec() + pox_pubkey_2_stx_addr.bytes().0 ); assert_eq!( reward_set_entries[0].amount_stacked, @@ -1244,22 +1245,23 @@ fn verify_auto_unlock_behavior() { let reward_cycle_max = *reward_cycle_pox_addrs.keys().max().unwrap(); let pox_addr_1 = PoxAddress::Standard( - StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_1).unwrap()), + StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_1).unwrap()).unwrap(), Some(AddressHashMode::SerializeP2PKH), ); let pox_addr_2 = PoxAddress::Standard( - StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_2).unwrap()), + StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_2).unwrap()).unwrap(), Some(AddressHashMode::SerializeP2PKH), ); let pox_addr_3 = PoxAddress::Standard( - StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_3).unwrap()), + StacksAddress::new(26, Hash160::from_hex(&pox_pubkey_hash_3).unwrap()).unwrap(), Some(AddressHashMode::SerializeP2PKH), ); let burn_pox_addr = PoxAddress::Standard( StacksAddress::new( 26, Hash160::from_hex("0000000000000000000000000000000000000000").unwrap(), - ), + ) + .unwrap(), Some(AddressHashMode::SerializeP2PKH), ); diff --git a/testnet/stacks-node/src/tests/mempool.rs b/testnet/stacks-node/src/tests/mempool.rs index 58a526ba30..e7141e8025 100644 --- a/testnet/stacks-node/src/tests/mempool.rs +++ b/testnet/stacks-node/src/tests/mempool.rs @@ -328,7 +328,7 @@ fn mempool_setup_chainstate() { // mismatched network on contract-call! let bad_addr = StacksAddress::from_public_keys( - 88, + 18, &AddressHashMode::SerializeP2PKH, 1, &vec![StacksPublicKey::from_private(&other_sk)], @@ -470,8 +470,12 @@ fn mempool_setup_chainstate() { }); // recipient must be testnet - let mut mainnet_recipient = to_addr(&other_sk); - mainnet_recipient.version = C32_ADDRESS_VERSION_MAINNET_SINGLESIG; + let testnet_recipient = to_addr(&other_sk); + let mainnet_recipient = StacksAddress::new( + C32_ADDRESS_VERSION_MAINNET_SINGLESIG, + testnet_recipient.destruct().1, + ) + .unwrap(); let mainnet_princ = mainnet_recipient.into(); let tx_bytes = make_stacks_transfer( &contract_sk, diff --git a/testnet/stacks-node/src/tests/nakamoto_integrations.rs b/testnet/stacks-node/src/tests/nakamoto_integrations.rs index 001f552f5f..13c8a93b39 100644 --- a/testnet/stacks-node/src/tests/nakamoto_integrations.rs +++ b/testnet/stacks-node/src/tests/nakamoto_integrations.rs @@ -488,10 +488,11 @@ pub fn get_latest_block_proposal( ) .map_err(|e| e.to_string())?; let miner_signed_addr = StacksAddress::p2pkh(false, &pubkey); - if miner_signed_addr.bytes != miner_addr.bytes { + if miner_signed_addr.bytes() != miner_addr.bytes() { return Err(format!( "Invalid miner signature on proposal. Found {}, expected {}", - miner_signed_addr.bytes, miner_addr.bytes + miner_signed_addr.bytes(), + miner_addr.bytes() )); } @@ -911,7 +912,7 @@ pub fn boot_to_epoch_3( for (stacker_sk, signer_sk) in stacker_sks.iter().zip(signer_sks.iter()) { let pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - tests::to_addr(stacker_sk).bytes, + tests::to_addr(stacker_sk).bytes().clone(), ); let pox_addr_tuple: clarity::vm::Value = pox_addr.clone().as_clarity_tuple().unwrap().into(); @@ -1073,7 +1074,7 @@ pub fn boot_to_pre_epoch_3_boundary( for (stacker_sk, signer_sk) in stacker_sks.iter().zip(signer_sks.iter()) { let pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - tests::to_addr(stacker_sk).bytes, + tests::to_addr(stacker_sk).bytes().clone(), ); let pox_addr_tuple: clarity::vm::Value = pox_addr.clone().as_clarity_tuple().unwrap().into(); @@ -1312,7 +1313,7 @@ pub fn setup_epoch_3_reward_set( for (stacker_sk, signer_sk) in stacker_sks.iter().zip(signer_sks.iter()) { let pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - tests::to_addr(stacker_sk).bytes, + tests::to_addr(stacker_sk).bytes().clone(), ); let pox_addr_tuple: clarity::vm::Value = pox_addr.clone().as_clarity_tuple().unwrap().into(); @@ -2559,7 +2560,7 @@ fn correct_burn_outs() { let pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - tests::to_addr(account.0).bytes, + tests::to_addr(account.0).bytes().clone(), ); let pox_addr_tuple: clarity::vm::Value = pox_addr.clone().as_clarity_tuple().unwrap().into(); @@ -11123,3 +11124,119 @@ fn test_tenure_extend_from_flashblocks() { follower_thread.join().unwrap(); } + +/// Mine a smart contract transaction with a call to `from-consensus-buff?` that would decode to an +/// invalid Principal. Verify that this transaction is dropped from the mempool. +#[test] +#[ignore] +fn mine_invalid_principal_from_consensus_buff() { + if env::var("BITCOIND_TEST") != Ok("1".into()) { + return; + } + + let (mut conf, _miner_account) = naka_neon_integration_conf(None); + let password = "12345".to_string(); + let http_origin = format!("http://{}", &conf.node.rpc_bind); + conf.connection_options.auth_token = Some(password.clone()); + conf.miner.wait_on_interim_blocks = Duration::from_secs(1); + let stacker_sk = setup_stacker(&mut conf); + let signer_sk = Secp256k1PrivateKey::new(); + let signer_addr = tests::to_addr(&signer_sk); + let sender_sk = Secp256k1PrivateKey::new(); + // setup sender + recipient for some test stx transfers + // these are necessary for the interim blocks to get mined at all + let sender_addr = tests::to_addr(&sender_sk); + conf.add_initial_balance(PrincipalData::from(sender_addr).to_string(), 1000000); + conf.add_initial_balance(PrincipalData::from(signer_addr).to_string(), 100000); + + test_observer::spawn(); + test_observer::register(&mut conf, &[EventKeyType::AnyEvent]); + + let mut btcd_controller = BitcoinCoreController::new(conf.clone()); + btcd_controller + .start_bitcoind() + .expect("Failed starting bitcoind"); + let mut btc_regtest_controller = BitcoinRegtestController::new(conf.clone(), None); + btc_regtest_controller.bootstrap_chain(201); + + let mut run_loop = boot_nakamoto::BootRunLoop::new(conf.clone()).unwrap(); + let run_loop_stopper = run_loop.get_termination_switch(); + let Counters { + blocks_processed, + naka_submitted_commits: commits_submitted, + naka_proposed_blocks: proposals_submitted, + naka_mined_blocks: mined_blocks, + .. + } = run_loop.counters(); + + let coord_channel = run_loop.coordinator_channels(); + + let run_loop_thread = thread::spawn(move || run_loop.start(None, 0)); + let mut signers = TestSigners::new(vec![signer_sk]); + wait_for_runloop(&blocks_processed); + boot_to_epoch_3( + &conf, + &blocks_processed, + &[stacker_sk], + &[signer_sk], + &mut Some(&mut signers), + &mut btc_regtest_controller, + ); + + info!("------------------------- Reached Epoch 3.0 -------------------------"); + + blind_signer(&conf, &signers, proposals_submitted); + + wait_for_first_naka_block_commit(60, &commits_submitted); + + // submit faulty contract + let contract = "(print (from-consensus-buff? principal 0x062011deadbeef11ababffff11deadbeef11ababffff0461626364))"; + + let contract_tx_bytes = make_contract_publish( + &sender_sk, + 0, + 1024, + conf.burnchain.chain_id, + "contract", + &contract, + ); + submit_tx(&http_origin, &contract_tx_bytes); + + let contract_tx = + StacksTransaction::consensus_deserialize(&mut &contract_tx_bytes[..]).unwrap(); + + // mine one more block + let blocks_before = mined_blocks.load(Ordering::SeqCst); + let blocks_processed_before = coord_channel + .lock() + .expect("Mutex poisoned") + .get_stacks_blocks_processed(); + let commits_before = commits_submitted.load(Ordering::SeqCst); + next_block_and(&mut btc_regtest_controller, 60, || { + let blocks_count = mined_blocks.load(Ordering::SeqCst); + let blocks_processed = coord_channel + .lock() + .expect("Mutex poisoned") + .get_stacks_blocks_processed(); + Ok(blocks_count > blocks_before + && blocks_processed > blocks_processed_before + && commits_submitted.load(Ordering::SeqCst) > commits_before) + }) + .unwrap(); + + let dropped_txs = test_observer::get_memtx_drops(); + + // we identified and dropped the offending tx as problematic + debug!("dropped_txs: {:?}", &dropped_txs); + assert_eq!(dropped_txs.len(), 1); + assert_eq!(dropped_txs[0].0, format!("0x{}", &contract_tx.txid())); + assert_eq!(dropped_txs[0].1.as_str(), "Problematic"); + + coord_channel + .lock() + .expect("Mutex poisoned") + .stop_chains_coordinator(); + run_loop_stopper.store(false, Ordering::SeqCst); + + run_loop_thread.join().unwrap(); +} diff --git a/testnet/stacks-node/src/tests/neon_integrations.rs b/testnet/stacks-node/src/tests/neon_integrations.rs index 9be9658f89..4c02071ddd 100644 --- a/testnet/stacks-node/src/tests/neon_integrations.rs +++ b/testnet/stacks-node/src/tests/neon_integrations.rs @@ -1909,7 +1909,7 @@ fn stx_transfer_btc_integration_test() { let _spender_btc_addr = BitcoinAddress::from_bytes_legacy( BitcoinNetworkType::Regtest, LegacyBitcoinAddressType::PublicKeyHash, - &spender_stx_addr.bytes.0, + &spender_stx_addr.bytes().0, ) .unwrap(); diff --git a/testnet/stacks-node/src/tests/signer/v0.rs b/testnet/stacks-node/src/tests/signer/v0.rs index 922bfa66c9..06c984467a 100644 --- a/testnet/stacks-node/src/tests/signer/v0.rs +++ b/testnet/stacks-node/src/tests/signer/v0.rs @@ -128,7 +128,7 @@ impl SignerTest { for stacker_sk in self.signer_stacks_private_keys.iter() { let pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - tests::to_addr(stacker_sk).bytes, + tests::to_addr(stacker_sk).bytes().clone(), ); let pox_addr_tuple: clarity::vm::Value = pox_addr.clone().as_clarity_tuple().unwrap().into(); @@ -4193,7 +4193,7 @@ fn signer_set_rollover() { for stacker_sk in new_signer_private_keys.iter() { let pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - tests::to_addr(stacker_sk).bytes, + tests::to_addr(stacker_sk).bytes().clone(), ); let pox_addr_tuple: clarity::vm::Value = pox_addr.clone().as_clarity_tuple().unwrap().into(); @@ -10923,7 +10923,7 @@ fn injected_signatures_are_ignored_across_boundaries() { // Stack the new signer let pox_addr = PoxAddress::from_legacy( AddressHashMode::SerializeP2PKH, - tests::to_addr(&new_signer_private_key).bytes, + tests::to_addr(&new_signer_private_key).bytes().clone(), ); let pox_addr_tuple: clarity::vm::Value = pox_addr.clone().as_clarity_tuple().unwrap().into(); let signature = make_pox_4_signer_key_signature( From cd8f5ff9f7179f536860cb23af766860a06d0b12 Mon Sep 17 00:00:00 2001 From: Jude Nelson Date: Thu, 23 Jan 2025 13:05:32 -0500 Subject: [PATCH 20/21] chore: bump changelog version --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 141ecec71f..d9631ccf65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to the versioning scheme outlined in the [README.md](README.md). -## [Unreleased] +## [3.1.0.0.4] ### Added From 15026de2ad9fcf5ecb7d89e468344233b9534e6f Mon Sep 17 00:00:00 2001 From: Jude Nelson Date: Thu, 23 Jan 2025 13:06:43 -0500 Subject: [PATCH 21/21] chore: bump signer changelog --- stacks-signer/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stacks-signer/CHANGELOG.md b/stacks-signer/CHANGELOG.md index 5b69d090ac..2697d93508 100644 --- a/stacks-signer/CHANGELOG.md +++ b/stacks-signer/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to the versioning scheme outlined in the [README.md](README.md). -## [Unreleased] +## [3.1.0.0.4.0] ## Added