Jarred Nicholls cabd851904 Avoid entropy sources when constructing a solana_program::message::Message.
The solana-program crate can be used in certain embedded environments (HSMs) where
the source of entropy, whether used for cryptographic purposes or not, is tightly
controlled. In these cases, using the default OS source of entrophy is not always
acceptable. Thus, using the default Rust stdlib entropy source for seeding its
default hasher, is prohibited. This means any use of HashMap/HashSet must be able
to be constructed and used with a custom hasher implementation.

This commit removes the use of Itertools::unique() to dedupe Instructions that are
being compiled into a new Message, which uses a default-configured HashMap
under-the-hood. Instead, we use a BTreeSet which does not invoke any entropy
source in order to seed a hash implementation.

(cherry picked from commit 4da435f2a031423d2c1194b90070edad63945cf2)
2021-12-07 22:36:21 -08:00
..

Solana

Solana Program

Use the Solana Program Crate to write on-chain programs in Rust. If writing client-side applications, use the Solana SDK Crate instead.

More information about Solana is available in the Solana documentation.

Helloworld and the Solana Program Library provide examples of how to use this crate.

Still have questions? Ask us on Discord