multiversx_sc::contract_base

Struct CryptoWrapper

Source
pub struct CryptoWrapper<A>
where A: CryptoApi,
{ /* private fields */ }

Implementations§

Source§

impl<A> CryptoWrapper<A>
where A: CryptoApi,

Source

pub fn new() -> Self

Source

pub fn sha256<B: Borrow<ManagedBuffer<A>>>( &self, data: B, ) -> ManagedByteArray<A, SHA256_RESULT_LEN>

Source

pub fn keccak256<B: Borrow<ManagedBuffer<A>>>( &self, data: B, ) -> ManagedByteArray<A, KECCAK256_RESULT_LEN>

Source

pub fn ripemd160<B: Borrow<ManagedBuffer<A>>>( &self, data: B, ) -> ManagedByteArray<A, { crate::api::RIPEMD_RESULT_LEN }>

Source

pub fn verify_bls( &self, key: &ManagedBuffer<A>, message: &ManagedBuffer<A>, signature: &ManagedBuffer<A>, )

Source

pub fn verify_ed25519( &self, key: &ManagedBuffer<A>, message: &ManagedBuffer<A>, signature: &ManagedBuffer<A>, )

Calls the Vm to verify ed25519 signature.

Does not return result, will fail tx directly!

The error comes straight form the VM, the message is “invalid signature”.

Source

pub fn verify_secp256k1( &self, key: &ManagedBuffer<A>, message: &ManagedBuffer<A>, signature: &ManagedBuffer<A>, ) -> bool

Note: the signature is minimum 2 bytes in length, the second byte encodes the length of the remaining signature bytes.

Source

pub fn verify_custom_secp256k1( &self, key: &ManagedBuffer<A>, message: &ManagedBuffer<A>, signature: &ManagedBuffer<A>, hash_type: MessageHashType, ) -> bool

Source

pub fn encode_secp256k1_der_signature( &self, r: &ManagedBuffer<A>, s: &ManagedBuffer<A>, ) -> ManagedBuffer<A>

Source

pub fn verify_secp256r1( &self, key: &ManagedBuffer<A>, message: &ManagedBuffer<A>, signature: &ManagedBuffer<A>, )

Calls the Vm to verify secp256r1 signature.

Does not return result, will fail tx directly!

Source

pub fn verify_bls_signature_share( &self, key: &ManagedBuffer<A>, message: &ManagedBuffer<A>, signature: &ManagedBuffer<A>, )

Calls the Vm to verify BLS signature share.

Does not return result, will fail tx directly!

Source

pub fn verify_bls_aggregated_signature( &self, keys: &ManagedVec<A, ManagedBuffer<A>>, message: &ManagedBuffer<A>, signature: &ManagedBuffer<A>, )

Calls the Vm to verify BLS aggregated signature.

Does not return result, will fail tx directly!

Trait Implementations§

Source§

impl<A> Default for CryptoWrapper<A>
where A: CryptoApi + Default,

Source§

fn default() -> CryptoWrapper<A>

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

Auto Trait Implementations§

§

impl<A> Freeze for CryptoWrapper<A>

§

impl<A> RefUnwindSafe for CryptoWrapper<A>
where A: RefUnwindSafe,

§

impl<A> Send for CryptoWrapper<A>
where A: Send,

§

impl<A> Sync for CryptoWrapper<A>
where A: Sync,

§

impl<A> Unpin for CryptoWrapper<A>
where A: Unpin,

§

impl<A> UnwindSafe for CryptoWrapper<A>
where A: UnwindSafe,

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

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 T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.