SchnorrAccountContract

Struct SchnorrAccountContract 

Source
pub struct SchnorrAccountContract { /* private fields */ }
Expand description

A Schnorr-based account contract.

This is the primary account contract implementation, equivalent to the TS SchnorrAccountContract. It uses a Grumpkin signing key for Schnorr signatures and routes transactions through the DefaultAccountEntrypoint.

§Example

use aztec_rs::account::{AccountManager, SchnorrAccountContract};
use aztec_rs::types::Fr;
use aztec_rs::wallet::{ChainInfo, MockWallet};

let wallet = MockWallet::new(ChainInfo {
    chain_id: Fr::from(31337u64),
    version: Fr::from(1u64),
});
let secret_key = Fr::from(12345u64);
let contract = SchnorrAccountContract::new(secret_key);
let manager = AccountManager::create(wallet, secret_key, Box::new(contract), None::<Fr>).await?;

Implementations§

Source§

impl SchnorrAccountContract

Source

pub fn new(secret_key: Fr) -> Self

Create a new Schnorr account contract from a secret key.

Derives the signing key pair from the secret key using the standard Aztec key derivation.

Source

pub fn new_with_signing_key(secret_key: Fr, signing_key: GrumpkinScalar) -> Self

Create a new Schnorr account contract with an explicit signing key.

Unlike new, this does not derive the signing key from the secret key. This is the Rust equivalent of the TS new SchnorrAccountContract(signingKey) + getSchnorrAccountContractAddress(secret, salt, signingKey).

Use this when multiple accounts share the same encryption key (secret) but have different signing keys.

Source

pub fn signing_public_key(&self) -> &Point

Returns the Schnorr signing public key.

Source

pub fn secret_key(&self) -> Fr

Returns the secret key used for key derivation.

Trait Implementations§

Source§

impl AccountContract for SchnorrAccountContract

Source§

fn contract_artifact<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<ContractArtifact, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get the contract artifact for this account type.
Source§

fn initialization_function_and_args<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Option<InitializationSpec>, Error>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get the initialization function name and arguments, if any.
Source§

fn account(&self, address: CompleteAddress) -> Box<dyn Account>

Create an Account instance for the given address.
Source§

fn auth_witness_provider( &self, _address: CompleteAddress, ) -> Box<dyn AuthorizationProvider>

Create an AuthorizationProvider for the given address.

Auto Trait Implementations§

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more