mirror of
https://github.com/logos-blockchain/logos-execution-zone.git
synced 2026-05-13 11:39:38 +00:00
feat: inject self_program_id in write_inputs and execute
This commit is contained in:
parent
27299e75cc
commit
d5cb3e0454
@ -158,7 +158,7 @@ fn execute_and_prove_program(
|
|||||||
) -> Result<Receipt, NssaError> {
|
) -> Result<Receipt, NssaError> {
|
||||||
// Write inputs to the program
|
// Write inputs to the program
|
||||||
let mut env_builder = ExecutorEnv::builder();
|
let mut env_builder = ExecutorEnv::builder();
|
||||||
Program::write_inputs(pre_states, instruction_data, &mut env_builder)?;
|
Program::write_inputs(program.id(), pre_states, instruction_data, &mut env_builder)?;
|
||||||
let env = env_builder.build().unwrap();
|
let env = env_builder.build().unwrap();
|
||||||
|
|
||||||
// Prove the program
|
// Prove the program
|
||||||
|
|||||||
@ -58,7 +58,7 @@ impl Program {
|
|||||||
// Write inputs to the program
|
// Write inputs to the program
|
||||||
let mut env_builder = ExecutorEnv::builder();
|
let mut env_builder = ExecutorEnv::builder();
|
||||||
env_builder.session_limit(Some(MAX_NUM_CYCLES_PUBLIC_EXECUTION));
|
env_builder.session_limit(Some(MAX_NUM_CYCLES_PUBLIC_EXECUTION));
|
||||||
Self::write_inputs(pre_states, instruction_data, &mut env_builder)?;
|
Self::write_inputs(self.id, pre_states, instruction_data, &mut env_builder)?;
|
||||||
let env = env_builder.build().unwrap();
|
let env = env_builder.build().unwrap();
|
||||||
|
|
||||||
// Execute the program (without proving)
|
// Execute the program (without proving)
|
||||||
@ -78,10 +78,14 @@ impl Program {
|
|||||||
|
|
||||||
/// Writes inputs to `env_builder` in the order expected by the programs.
|
/// Writes inputs to `env_builder` in the order expected by the programs.
|
||||||
pub(crate) fn write_inputs(
|
pub(crate) fn write_inputs(
|
||||||
|
program_id: ProgramId,
|
||||||
pre_states: &[AccountWithMetadata],
|
pre_states: &[AccountWithMetadata],
|
||||||
instruction_data: &[u32],
|
instruction_data: &[u32],
|
||||||
env_builder: &mut ExecutorEnvBuilder,
|
env_builder: &mut ExecutorEnvBuilder,
|
||||||
) -> Result<(), NssaError> {
|
) -> Result<(), NssaError> {
|
||||||
|
env_builder
|
||||||
|
.write(&program_id)
|
||||||
|
.map_err(|e| NssaError::ProgramWriteInputFailed(e.to_string()))?;
|
||||||
let pre_states = pre_states.to_vec();
|
let pre_states = pre_states.to_vec();
|
||||||
env_builder
|
env_builder
|
||||||
.write(&(pre_states, instruction_data))
|
.write(&(pre_states, instruction_data))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user