diff --git a/crates/uplc/src/machine/runtime.rs b/crates/uplc/src/machine/runtime.rs index bb4f44c4..124212a8 100644 --- a/crates/uplc/src/machine/runtime.rs +++ b/crates/uplc/src/machine/runtime.rs @@ -33,12 +33,6 @@ const BLST_P2_COMPRESSED_SIZE: usize = 96; pub const INTEGER_TO_BYTE_STRING_MAXIMUM_OUTPUT_LENGTH: i64 = 8192; -//#[derive(std::cmp::PartialEq)] -//pub enum EvalMode { -// Immediate, -// Deferred, -//} - pub enum BuiltinSemantics { V1, V2, @@ -1384,17 +1378,12 @@ impl DefaultFunction { let size = args[1].unwrap_integer()?; let input = args[2].unwrap_integer()?; - // Since this is checked at cost time it is no longer needed - // if size.is_negative() { - // return Err(Error::IntegerToByteStringNegativeSize(size.clone())); - // } - - // if size > &INTEGER_TO_BYTE_STRING_MAXIMUM_OUTPUT_LENGTH.into() { - // return Err(Error::IntegerToByteStringSizeTooBig( - // size.clone(), - // INTEGER_TO_BYTE_STRING_MAXIMUM_OUTPUT_LENGTH, - // )); - // } + // NOTE: + // We ought to also check for negative size and too large sizes. These checks + // however happens prior to calling the builtin as part of the costing step. So by + // the time we reach this builtin call, the size can be assumed to be + // + // >= 0 && < INTEGER_TO_BYTE_STRING_MAXIMUM_OUTPUT_LENGTH if size.is_zero() && integer_log2(input.clone())