feat: eval should take initial budget

This commit is contained in:
rvcas 2022-12-08 10:55:27 -05:00
parent 4cdb5d8d02
commit f250d3df84
No known key found for this signature in database
GPG Key ID: C09B64E263F7D68C
3 changed files with 9 additions and 7 deletions

View File

@ -61,7 +61,9 @@ pub fn exec(
program = program.apply_term(&term); program = program.apply_term(&term);
} }
let (term, cost, logs) = program.eval(); let budget = ExBudget::default();
let (term, cost, logs) = program.eval(budget);
match term { match term {
Ok(term) => { Ok(term) => {
@ -74,8 +76,6 @@ pub fn exec(
} }
} }
let budget = ExBudget::default();
println!( println!(
"\nCosts\n-----\ncpu: {}\nmemory: {}", "\nCosts\n-----\ncpu: {}\nmemory: {}",
budget.cpu - cost.cpu, budget.cpu - cost.cpu,

View File

@ -495,6 +495,7 @@ impl From<Term<FakeNamedDeBruijn>> for Term<NamedDeBruijn> {
impl Program<NamedDeBruijn> { impl Program<NamedDeBruijn> {
pub fn eval( pub fn eval(
&self, &self,
initial_budget: ExBudget,
) -> ( ) -> (
Result<Term<NamedDeBruijn>, crate::machine::Error>, Result<Term<NamedDeBruijn>, crate::machine::Error>,
ExBudget, ExBudget,
@ -503,7 +504,7 @@ impl Program<NamedDeBruijn> {
let mut machine = Machine::new( let mut machine = Machine::new(
Language::PlutusV2, Language::PlutusV2,
CostModel::default(), CostModel::default(),
ExBudget::default(), initial_budget,
200, 200,
); );
@ -558,6 +559,7 @@ impl Program<NamedDeBruijn> {
impl Program<DeBruijn> { impl Program<DeBruijn> {
pub fn eval( pub fn eval(
&self, &self,
initial_budget: ExBudget,
) -> ( ) -> (
Result<Term<NamedDeBruijn>, crate::machine::Error>, Result<Term<NamedDeBruijn>, crate::machine::Error>,
ExBudget, ExBudget,
@ -565,7 +567,7 @@ impl Program<DeBruijn> {
) { ) {
let program: Program<NamedDeBruijn> = self.clone().into(); let program: Program<NamedDeBruijn> = self.clone().into();
program.eval() program.eval(initial_budget)
} }
} }

View File

@ -786,7 +786,7 @@ pub fn eval_redeemer(
program.eval_as(&Language::PlutusV2, costs, initial_budget) program.eval_as(&Language::PlutusV2, costs, initial_budget)
} else { } else {
program.eval() program.eval(ExBudget::default())
}; };
match result { match result {
@ -889,7 +889,7 @@ pub fn eval_redeemer(
program.eval_as(&Language::PlutusV2, costs, initial_budget) program.eval_as(&Language::PlutusV2, costs, initial_budget)
} else { } else {
program.eval() program.eval(ExBudget::default())
}; };
match result { match result {