pub struct TestCryptoPrimitives { /* private fields */ }
Expand description

A HasCryptoPrimitives implementation used for unit testing smart contracts.

You can test smart contracts that use the cryptographic primitives in two different ways:

  1. By setting up mock responses for the functions you need, for example with the setup_hash_sha_256_mock method.
  2. Or, by using the actual implementations. For this, you need to enable the “crypto-primitives” feature.

Implementations§

source§

impl TestCryptoPrimitives

source

pub fn new() -> Self

Create a new TestCryptoPrimitives, for which no mocks has been set up.

source

pub fn setup_verify_ed25519_signature_mock<F>(&self, mock: F)where F: FnMut(PublicKeyEd25519, SignatureEd25519, &[u8]) -> bool + 'static,

Set up a mock for verify_ed25519_signature.

This is not available if the “crypto-primitives” feature is enabled. For more information on why, see the documentation of TestCryptoPrimitives.

source

pub fn setup_verify_ecdsa_secp256k1_signature_mock<F>(&self, mock: F)where F: FnMut(PublicKeyEcdsaSecp256k1, SignatureEcdsaSecp256k1, [u8; 32]) -> bool + 'static,

Set up a mock for verify_ecdsa_secp256k1_signature.

This is not available if the “crypto-primitives” feature is enabled. For more information on why, see the documentation of TestCryptoPrimitives.

source

pub fn setup_hash_sha2_256_mock<F>(&self, mock: F)where F: FnMut(&[u8]) -> HashSha2256 + 'static,

Set up a mock for hash_sha2_256.

This is not available if the “crypto-primitives” feature is enabled. For more information on why, see the documentation of TestCryptoPrimitives.

source

pub fn setup_hash_sha3_256_mock<F>(&self, mock: F)where F: FnMut(&[u8]) -> HashSha3256 + 'static,

Set up a mock for hash_sha3_256.

This is not available if the “crypto-primitives” feature is enabled. For more information on why, see the documentation of TestCryptoPrimitives.

source

pub fn setup_hash_keccak_256_mock<F>(&self, mock: F)where F: FnMut(&[u8]) -> HashKeccak256 + 'static,

Set up a mock for hash_keccak_256.

This is not available if the “crypto-primitives” feature is enabled. For more information on why, see the documentation of TestCryptoPrimitives.

Trait Implementations§

source§

impl Default for TestCryptoPrimitives

Create a new TestCryptoPrimitives, for which no mocks has been set up.

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl HasCryptoPrimitives for TestCryptoPrimitives

source§

fn verify_ed25519_signature( &self, public_key: PublicKeyEd25519, signature: SignatureEd25519, message: &[u8] ) -> bool

Verify an ed25519 signature.
source§

fn verify_ecdsa_secp256k1_signature( &self, public_key: PublicKeyEcdsaSecp256k1, signature: SignatureEcdsaSecp256k1, message_hash: [u8; 32] ) -> bool

Verify an ecdsa signature over secp256k1 with the bitcoin-core implementation.
source§

fn hash_sha2_256(&self, data: &[u8]) -> HashSha2256

Hash the data using the SHA2-256 algorithm.
source§

fn hash_sha3_256(&self, data: &[u8]) -> HashSha3256

Hash the data using the SHA3-256 algorithm.
source§

fn hash_keccak_256(&self, data: &[u8]) -> HashKeccak256

Hash the data using the Keccak-256 algorithm.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.