diff --git a/src/contract/consensus/src/client/proposal_v1.rs b/src/contract/consensus/src/client/proposal_v1.rs index 419537f34..0b1a3cbb4 100644 --- a/src/contract/consensus/src/client/proposal_v1.rs +++ b/src/contract/consensus/src/client/proposal_v1.rs @@ -280,9 +280,9 @@ pub fn create_proposal_proof( let seed = poseidon_hash([SEED_PREFIX, input.note.serial]); // NOTE: slot checkpoint eta to be renamed to previous_eta, // corresponding to previous block eta. - let mut vrf_input = [0u8; 64]; - vrf_input[..32].copy_from_slice(&slot_checkpoint.eta.to_repr()); - vrf_input[32..].copy_from_slice(&slot_pallas.to_repr()); + let mut vrf_input = Vec::with_capacity(32 + 32); + vrf_input.extend_from_slice(&slot_checkpoint.eta.to_repr()); + vrf_input.extend_from_slice(&slot_pallas.to_repr()); let vrf_proof = VrfProof::prove(input.secret, &vrf_input, &mut OsRng); let mut eta = [0u8; 64]; eta[..blake3::OUT_LEN].copy_from_slice(vrf_proof.hash_output().as_bytes()); diff --git a/src/contract/consensus/src/entrypoint/proposal_v1.rs b/src/contract/consensus/src/entrypoint/proposal_v1.rs index c456a12a5..e61d375be 100644 --- a/src/contract/consensus/src/entrypoint/proposal_v1.rs +++ b/src/contract/consensus/src/entrypoint/proposal_v1.rs @@ -99,9 +99,9 @@ pub(crate) fn consensus_proposal_get_metadata_v1( let slot_pallas = pallas::Base::from(slot_checkpoint.slot); // NOTE: slot checkpoint eta to be renamed to previous_eta, // corresponding to previous block eta. - let mut vrf_input = [0u8; 64]; - vrf_input[..32].copy_from_slice(&slot_checkpoint.eta.to_repr()); - vrf_input[32..].copy_from_slice(&slot_pallas.to_repr()); + let mut vrf_input = Vec::with_capacity(32 + 32); + vrf_input.extend_from_slice(&slot_checkpoint.eta.to_repr()); + vrf_input.extend_from_slice(&slot_pallas.to_repr()); let vrf_proof = ¶ms.vrf_proof; if !vrf_proof.verify(params.input.signature_public, &vrf_input) { msg!("[ConsensusProposalV1] Error: eta VRF proof couldn't be verified");