(cherry picked from commit f641429056
)
Co-authored-by: Justin Starry <justin@solana.com>
This commit is contained in:
@ -17,7 +17,7 @@ codecov = { repository = "solana-labs/solana", branch = "master", service = "git
|
||||
ahash = "0.6.1"
|
||||
base64 = "0.12.3"
|
||||
bincode = "1.3.1"
|
||||
blake3 = "0.3.6"
|
||||
blake3 = "0.3.7"
|
||||
bv = { version = "0.11.1", features = ["serde"] }
|
||||
bs58 = "0.3.1"
|
||||
byteorder = "1.3.4"
|
||||
|
@ -12,7 +12,7 @@ edition = "2018"
|
||||
[dependencies]
|
||||
arrayref = "0.3.6"
|
||||
bincode = "1.3.1"
|
||||
blake3 = "0.3.6"
|
||||
blake3 = "0.3.7"
|
||||
bv = { version = "0.11.1", features = ["serde"] }
|
||||
byteorder = "1.3.4"
|
||||
bzip2 = "0.3.3"
|
||||
|
@ -11,7 +11,6 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
bincode = "1.3.1"
|
||||
blake3 = "0.3.7"
|
||||
borsh = "0.8.1"
|
||||
borsh-derive = "0.8.1"
|
||||
bs58 = "0.3.1"
|
||||
@ -33,7 +32,7 @@ solana-sdk-macro = { path = "../macro", version = "=1.5.19" }
|
||||
thiserror = "1.0"
|
||||
|
||||
[target.'cfg(not(target_arch = "bpf"))'.dependencies]
|
||||
blake3 = "0.3.6"
|
||||
blake3 = "0.3.7"
|
||||
curve25519-dalek = "2.1.0"
|
||||
rand = "0.7.0"
|
||||
solana-logger = { path = "../../logger", version = "=1.5.19" }
|
||||
|
@ -5,12 +5,11 @@ use crate::serialize_utils::{
|
||||
append_slice, append_u16, append_u8, read_pubkey, read_slice, read_u16, read_u8,
|
||||
};
|
||||
use crate::{
|
||||
hash::{Hash, HASH_BYTES},
|
||||
hash::Hash,
|
||||
instruction::{AccountMeta, CompiledInstruction, Instruction},
|
||||
pubkey::Pubkey,
|
||||
short_vec, system_instruction,
|
||||
};
|
||||
use blake3::traits::digest::Digest;
|
||||
use itertools::Itertools;
|
||||
use std::convert::TryFrom;
|
||||
|
||||
@ -274,17 +273,20 @@ impl Message {
|
||||
}
|
||||
|
||||
/// Compute the blake3 hash of this transaction's message
|
||||
#[cfg(not(target_arch = "bpf"))]
|
||||
pub fn hash(&self) -> Hash {
|
||||
let message_bytes = self.serialize();
|
||||
Self::hash_raw_message(&message_bytes)
|
||||
}
|
||||
|
||||
/// Compute the blake3 hash of a raw transaction message
|
||||
#[cfg(not(target_arch = "bpf"))]
|
||||
pub fn hash_raw_message(message_bytes: &[u8]) -> Hash {
|
||||
use blake3::traits::digest::Digest;
|
||||
let mut hasher = blake3::Hasher::new();
|
||||
hasher.update(b"solana-tx-message-v1");
|
||||
hasher.update(message_bytes);
|
||||
Hash(<[u8; HASH_BYTES]>::try_from(hasher.finalize().as_slice()).unwrap())
|
||||
Hash(<[u8; crate::hash::HASH_BYTES]>::try_from(hasher.finalize().as_slice()).unwrap())
|
||||
}
|
||||
|
||||
pub fn compile_instruction(&self, ix: &Instruction) -> CompiledInstruction {
|
||||
|
Reference in New Issue
Block a user