pub trait StackProgram<N: Network> {
    // Required methods
    fn program(&self) -> &Program<N>;
    fn program_id(&self) -> &ProgramID<N>;
    fn contains_external_record(&self, locator: &Locator<N>) -> bool;
    fn get_external_stack(
        &self,
        program_id: &ProgramID<N>
    ) -> Result<&Arc<Self>>;
    fn get_external_program(
        &self,
        program_id: &ProgramID<N>
    ) -> Result<&Program<N>>;
    fn get_external_record(
        &self,
        locator: &Locator<N>
    ) -> Result<&RecordType<N>>;
    fn get_function(&self, function_name: &Identifier<N>) -> Result<Function<N>>;
    fn get_function_ref(
        &self,
        function_name: &Identifier<N>
    ) -> Result<&Function<N>>;
    fn get_number_of_calls(
        &self,
        function_name: &Identifier<N>
    ) -> Result<usize>;
    fn sample_value<R: Rng + CryptoRng>(
        &self,
        burner_address: &Address<N>,
        value_type: &ValueType<N>,
        rng: &mut R
    ) -> Result<Value<N>>;
    fn sample_record<R: Rng + CryptoRng>(
        &self,
        burner_address: &Address<N>,
        record_name: &Identifier<N>,
        record_nonce: Group<N>,
        rng: &mut R
    ) -> Result<Record<N, Plaintext<N>>>;
}

Required Methods§

source

fn program(&self) -> &Program<N>

Returns the program.

source

fn program_id(&self) -> &ProgramID<N>

Returns the program ID.

source

fn contains_external_record(&self, locator: &Locator<N>) -> bool

Returns true if the stack contains the external record.

source

fn get_external_stack(&self, program_id: &ProgramID<N>) -> Result<&Arc<Self>>

Returns the external stack for the given program ID.

source

fn get_external_program(&self, program_id: &ProgramID<N>) -> Result<&Program<N>>

Returns the external program for the given program ID.

source

fn get_external_record(&self, locator: &Locator<N>) -> Result<&RecordType<N>>

Returns true if the stack contains the external record.

source

fn get_function(&self, function_name: &Identifier<N>) -> Result<Function<N>>

Returns the function with the given function name.

source

fn get_function_ref( &self, function_name: &Identifier<N> ) -> Result<&Function<N>>

Returns a reference to the function with the given function name.

source

fn get_number_of_calls(&self, function_name: &Identifier<N>) -> Result<usize>

Returns the expected number of calls for the given function name.

source

fn sample_value<R: Rng + CryptoRng>( &self, burner_address: &Address<N>, value_type: &ValueType<N>, rng: &mut R ) -> Result<Value<N>>

Samples a value for the given value_type.

source

fn sample_record<R: Rng + CryptoRng>( &self, burner_address: &Address<N>, record_name: &Identifier<N>, record_nonce: Group<N>, rng: &mut R ) -> Result<Record<N, Plaintext<N>>>

Returns a record for the given record name, with the given burner address and nonce.

Object Safety§

This trait is not object safe.

Implementors§