Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,4 @@ task 4, lines 51-54:
//> 1: MakeMoveVec<test::m::Obj>([NestedResult(0,0), NestedResult(0,1), NestedResult(0,2), NestedResult(0,3), NestedResult(0,4), NestedResult(0,5), NestedResult(0,6), NestedResult(0,7), NestedResult(0,8), NestedResult(0,9), NestedResult(0,10), NestedResult(0,11), NestedResult(0,12), NestedResult(0,13), NestedResult(0,14), NestedResult(0,15), NestedResult(0,16), NestedResult(0,17), NestedResult(0,18), NestedResult(0,19), NestedResult(0,20), NestedResult(0,21), NestedResult(0,22), NestedResult(0,23), NestedResult(0,24), NestedResult(0,25), NestedResult(0,26), NestedResult(0,27), NestedResult(0,28), NestedResult(0,29), NestedResult(0,30), NestedResult(0,31), NestedResult(0,32), NestedResult(0,33), NestedResult(0,34), NestedResult(0,35), NestedResult(0,36), NestedResult(0,37), NestedResult(0,38), NestedResult(0,39), NestedResult(0,40), NestedResult(0,41), NestedResult(0,42), NestedResult(0,43), NestedResult(0,44), NestedResult(0,45), NestedResult(0,46), NestedResult(0,47), NestedResult(0,48), NestedResult(0,49), NestedResult(0,50), NestedResult(0,51), NestedResult(0,52), NestedResult(0,53), NestedResult(0,54), NestedResult(0,55), NestedResult(0,56), NestedResult(0,57), NestedResult(0,58), NestedResult(0,59), NestedResult(0,60), NestedResult(0,61), NestedResult(0,62), NestedResult(0,63), NestedResult(0,64), NestedResult(0,65), NestedResult(0,66), NestedResult(0,67), NestedResult(0,68), NestedResult(0,69), NestedResult(0,70), NestedResult(0,71), NestedResult(0,72), NestedResult(0,73), NestedResult(0,74), NestedResult(0,75), NestedResult(0,76), NestedResult(0,77), NestedResult(0,78), NestedResult(0,79), NestedResult(0,80), NestedResult(0,81), NestedResult(0,82), NestedResult(0,83), NestedResult(0,84), NestedResult(0,85), NestedResult(0,86), NestedResult(0,87), NestedResult(0,88), NestedResult(0,89), NestedResult(0,90), NestedResult(0,91), NestedResult(0,92), NestedResult(0,93), NestedResult(0,94), NestedResult(0,95), NestedResult(0,96), NestedResult(0,97), NestedResult(0,98), NestedResult(0,99), NestedResult(0,100), NestedResult(0,101), NestedResult(0,102), NestedResult(0,103), NestedResult(0,104), NestedResult(0,105), NestedResult(0,106), NestedResult(0,107), NestedResult(0,108), NestedResult(0,109), NestedResult(0,110), NestedResult(0,111), NestedResult(0,112), NestedResult(0,113), NestedResult(0,114), NestedResult(0,115), NestedResult(0,116), NestedResult(0,117), NestedResult(0,118), NestedResult(0,119), NestedResult(0,120), NestedResult(0,121), NestedResult(0,122), NestedResult(0,123), NestedResult(0,124), NestedResult(0,125), NestedResult(0,126), NestedResult(0,127), NestedResult(0,128), NestedResult(0,129), NestedResult(0,130), NestedResult(0,131), NestedResult(0,132), NestedResult(0,133), NestedResult(0,134), NestedResult(0,135), NestedResult(0,136), NestedResult(0,137), NestedResult(0,138), NestedResult(0,139), NestedResult(0,140), NestedResult(0,141), NestedResult(0,142), NestedResult(0,143), NestedResult(0,144), NestedResult(0,145), NestedResult(0,146), NestedResult(0,147), NestedResult(0,148), NestedResult(0,149), NestedResult(0,150), NestedResult(0,151), NestedResult(0,152), NestedResult(0,153), NestedResult(0,154), NestedResult(0,155), NestedResult(0,156), NestedResult(0,157), NestedResult(0,158), NestedResult(0,159), NestedResult(0,160), NestedResult(0,161), NestedResult(0,162), NestedResult(0,163), NestedResult(0,164), NestedResult(0,165), NestedResult(0,166), NestedResult(0,167), NestedResult(0,168), NestedResult(0,169), NestedResult(0,170), NestedResult(0,171), NestedResult(0,172), NestedResult(0,173), NestedResult(0,174), NestedResult(0,175), NestedResult(0,176), NestedResult(0,177), NestedResult(0,178), NestedResult(0,179), NestedResult(0,180), NestedResult(0,181), NestedResult(0,182), NestedResult(0,183), NestedResult(0,184), NestedResult(0,185), NestedResult(0,186), NestedResult(0,187), NestedResult(0,188), NestedResult(0,189), NestedResult(0,190), NestedResult(0,191), NestedResult(0,192), NestedResult(0,193), NestedResult(0,194), NestedResult(0,195), NestedResult(0,196), NestedResult(0,197), NestedResult(0,198), NestedResult(0,199), NestedResult(0,200), NestedResult(0,201), NestedResult(0,202), NestedResult(0,203), NestedResult(0,204), NestedResult(0,205), NestedResult(0,206), NestedResult(0,207), NestedResult(0,208), NestedResult(0,209), NestedResult(0,210), NestedResult(0,211), NestedResult(0,212), NestedResult(0,213), NestedResult(0,214), NestedResult(0,215), NestedResult(0,216), NestedResult(0,217), NestedResult(0,218), NestedResult(0,219), NestedResult(0,220), NestedResult(0,221), NestedResult(0,222), NestedResult(0,223), NestedResult(0,224), NestedResult(0,225), NestedResult(0,226), NestedResult(0,227), NestedResult(0,228), NestedResult(0,229), NestedResult(0,230), NestedResult(0,231), NestedResult(0,232), NestedResult(0,233), NestedResult(0,234), NestedResult(0,235), NestedResult(0,236), NestedResult(0,237), NestedResult(0,238), NestedResult(0,239), NestedResult(0,240), NestedResult(0,241), NestedResult(0,242), NestedResult(0,243), NestedResult(0,244), NestedResult(0,245), NestedResult(0,246), NestedResult(0,247), NestedResult(0,248), NestedResult(0,249), NestedResult(0,250), NestedResult(0,251), NestedResult(0,252), NestedResult(0,253), NestedResult(0,254)]);
//> 2: test::m::delete_objs(Result(1));
mutated: object(0,1)
gas summary: computation_cost: 2643000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
gas summary: computation_cost: 2171000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 9
task 4, lines 39-41:
//# run Test::M1::delete_n_ids --args 2048 --gas-budget 100000000000000
mutated: object(0,0)
gas summary: computation_cost: 14000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
gas summary: computation_cost: 13000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880

task 5, lines 42-44:
//# run Test::M1::delete_n_ids --args 2049 --gas-budget 100000000000000
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ task 3, lines 59-61:
//# run Test::M1::emit_n_small_events --args 1024 --gas-budget 100000000000000 --summarize
events: 50
mutated: 1
gas summary: computation_cost: 53000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
gas summary: computation_cost: 54000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880

task 4, lines 62-64:
//# run Test::M1::emit_n_small_events --args 1025 --gas-budget 100000000000000
Expand All @@ -35,20 +35,19 @@ task 6, lines 68-70:
//# run Test::M1::emit_event_with_size --args 200000 --gas-budget 100000000000000 --summarize
events: 1
mutated: 1
gas summary: computation_cost: 1394000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
gas summary: computation_cost: 1194000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880

task 7, lines 71-73:
//# run Test::M1::emit_event_with_size --args 256000 --gas-budget 100000000000000 --summarize
events: 1
mutated: 1
gas summary: computation_cost: 1815000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
Error: Transaction Effects Status: Move Primitive Runtime Error. Location: sui::event::emit (function index 0) at offset 0. Arithmetic error, stack overflow, max value depth, etc.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MovePrimitiveRuntimeError(MoveLocationOpt(Some(MoveLocation { module: ModuleId { address: sui, name: Identifier("event") }, function: 0, instruction: 0, function_name: Some("emit") }))), source: Some(VMError { major_status: MEMORY_LIMIT_EXCEEDED, sub_status: Some(1), message: Some("Emitting event of size 256002 bytes. Limit is 256000 bytes."), exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("event") }), indices: [], offsets: [(FunctionDefinitionIndex(0), 0)] }), command: Some(0) } }

task 8, lines 74-76:
//# run Test::M1::emit_event_with_size --args 256001 --gas-budget 100000000000000 --summarize
Error: Transaction Effects Status: Move Primitive Runtime Error. Location: sui::event::emit (function index 0) at offset 0. Arithmetic error, stack overflow, max value depth, etc.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MovePrimitiveRuntimeError(MoveLocationOpt(Some(MoveLocation { module: ModuleId { address: sui, name: Identifier("event") }, function: 0, instruction: 0, function_name: Some("emit") }))), source: Some(VMError { major_status: MEMORY_LIMIT_EXCEEDED, sub_status: Some(1), message: Some("Emitting event of size 256001 bytes. Limit is 256000 bytes."), exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("event") }), indices: [], offsets: [(FunctionDefinitionIndex(0), 0)] }), command: Some(0) } }
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MovePrimitiveRuntimeError(MoveLocationOpt(Some(MoveLocation { module: ModuleId { address: sui, name: Identifier("event") }, function: 0, instruction: 0, function_name: Some("emit") }))), source: Some(VMError { major_status: MEMORY_LIMIT_EXCEEDED, sub_status: Some(1), message: Some("Emitting event of size 256003 bytes. Limit is 256000 bytes."), exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("event") }), indices: [], offsets: [(FunctionDefinitionIndex(0), 0)] }), command: Some(0) } }

task 9, line 77:
//# run Test::M1::emit_event_with_size --args 259000 --gas-budget 100000000000000
Error: Transaction Effects Status: Move Primitive Runtime Error. Location: sui::event::emit (function index 0) at offset 0. Arithmetic error, stack overflow, max value depth, etc.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MovePrimitiveRuntimeError(MoveLocationOpt(Some(MoveLocation { module: ModuleId { address: sui, name: Identifier("event") }, function: 0, instruction: 0, function_name: Some("emit") }))), source: Some(VMError { major_status: MEMORY_LIMIT_EXCEEDED, sub_status: Some(1), message: Some("Emitting event of size 259000 bytes. Limit is 256000 bytes."), exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("event") }), indices: [], offsets: [(FunctionDefinitionIndex(0), 0)] }), command: Some(0) } }
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: MovePrimitiveRuntimeError(MoveLocationOpt(Some(MoveLocation { module: ModuleId { address: sui, name: Identifier("event") }, function: 0, instruction: 0, function_name: Some("emit") }))), source: Some(VMError { major_status: MEMORY_LIMIT_EXCEEDED, sub_status: Some(1), message: Some("Emitting event of size 259002 bytes. Limit is 256000 bytes."), exec_state: None, location: Module(ModuleId { address: sui, name: Identifier("event") }), indices: [], offsets: [(FunctionDefinitionIndex(0), 0)] }), command: Some(0) } }
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { k
task 4, lines 73-75:
//# run Test::M1::emit_event_with_size --args 259000 --gas-budget 1000000000
Error: Transaction Effects Status: Insufficient Gas.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: InsufficientGas, source: Some(VMError { major_status: OUT_OF_GAS, sub_status: None, message: None, exec_state: None, location: Module(ModuleId { address: Test, name: Identifier("M1") }), indices: [], offsets: [(FunctionDefinitionIndex(0), 27)] }), command: Some(0) } }
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: InsufficientGas, source: Some(VMError { major_status: OUT_OF_GAS, sub_status: None, message: None, exec_state: None, location: Module(ModuleId { address: Test, name: Identifier("M1") }), indices: [], offsets: [(FunctionDefinitionIndex(0), 26)] }), command: Some(0) } }

task 5, line 76:
//# run Test::M1::emit_n_events_with_size --args 3 256000 --gas-budget 1000000000 --summarize
Error: Transaction Effects Status: Insufficient Gas.
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: InsufficientGas, source: Some(VMError { major_status: OUT_OF_GAS, sub_status: None, message: None, exec_state: None, location: Module(ModuleId { address: Test, name: Identifier("M1") }), indices: [], offsets: [(FunctionDefinitionIndex(0), 27)] }), command: Some(0) } }
Execution Error: ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: InsufficientGas, source: Some(VMError { major_status: OUT_OF_GAS, sub_status: None, message: None, exec_state: None, location: Module(ModuleId { address: Test, name: Identifier("M1") }), indices: [], offsets: [(FunctionDefinitionIndex(0), 35)] }), command: Some(0) } }
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ task 3, lines 82-84:
//# run Test::M1::transfer_object_with_size --args 255999 --sender A --gas-budget 100000000000000
created: object(3,0)
mutated: object(0,0)
gas summary: computation_cost: 1864000000, storage_cost: 1947553200, storage_rebate: 978120, non_refundable_storage_fee: 9880
gas summary: computation_cost: 1582000000, storage_cost: 1947553200, storage_rebate: 978120, non_refundable_storage_fee: 9880

task 4, line 85:
//# run Test::M1::transfer_object_with_size --args 256000 --sender A --gas-budget 100000000000000
created: object(4,0)
mutated: object(0,0)
gas summary: computation_cost: 1864000000, storage_cost: 1947560800, storage_rebate: 978120, non_refundable_storage_fee: 9880
gas summary: computation_cost: 1582000000, storage_cost: 1947560800, storage_rebate: 978120, non_refundable_storage_fee: 9880
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 9
task 4, lines 40-42:
//# run Test::M1::create_n_ids --args 2048 --gas-budget 100000000000000
mutated: object(0,0)
gas summary: computation_cost: 14000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
gas summary: computation_cost: 13000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880

task 5, lines 43-45:
//# run Test::M1::create_n_ids --args 2049 --gas-budget 100000000000000
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ task 3, line 30:
//# run a::m::add_n_items --sender A --args 1000 --gas-budget 1000000000000 --summarize
created: 2000
mutated: 1
gas summary: computation_cost: 201000000, storage_cost: 2691388000, storage_rebate: 978120, non_refundable_storage_fee: 9880
gas summary: computation_cost: 182000000, storage_cost: 2691388000, storage_rebate: 978120, non_refundable_storage_fee: 9880

task 4, line 32:
//# run a::m::add_n_items --sender A --args 1025 --gas-budget 1000000000000
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ gas summary: computation_cost: 1000000, storage_cost: 988000, storage_rebate: 9
task 4, lines 38-40:
//# run Test::M1::push_n_items --args 262144 --gas-budget 100000000000000
mutated: object(0,0)
gas summary: computation_cost: 4088000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
gas summary: computation_cost: 3669000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880

task 5, line 41:
//# run Test::M1::push_n_items --args 262145 --gas-budget 100000000000000
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ gas summary: computation_cost: 3000000, storage_cost: 988000, storage_rebate: 0
task 6, line 177:
//# run A2::m::generic_cases --args @A0 @A1
mutated: object(0,1)
gas summary: computation_cost: 246000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
gas summary: computation_cost: 196000000, storage_cost: 988000, storage_rebate: 978120, non_refundable_storage_fee: 9880
24 changes: 23 additions & 1 deletion crates/sui-protocol-config/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2259,7 +2259,21 @@ impl ProtocolConfig {
}

pub fn enable_ptb_execution_v2(&self) -> bool {
self.feature_flags.enable_ptb_execution_v2
let enabled = self.feature_flags.enable_ptb_execution_v2;
// PTB execution v2 requires gas model version > 10 and the translation charges to be set.
if enabled {
debug_assert!(self.translation_per_command_base_charge.is_some());
debug_assert!(self.translation_per_input_base_charge.is_some());
debug_assert!(self.translation_pure_input_per_byte_charge.is_some());
debug_assert!(self.translation_per_type_node_charge.is_some());
debug_assert!(self.translation_per_reference_node_charge.is_some());
debug_assert!(self.translation_metering_step_resolution.is_some());
debug_assert!(self.translation_per_linkage_entry_charge.is_some());
debug_assert!(self.feature_flags.abstract_size_in_object_runtime);
debug_assert!(self.feature_flags.object_runtime_charge_cache_load_gas);
debug_assert!(self.gas_model_version.is_some_and(|version| version > 10));
}
enabled
}

pub fn better_adapter_type_resolution_errors(&self) -> bool {
Expand Down Expand Up @@ -4436,6 +4450,9 @@ impl ProtocolConfig {
self.feature_flags.consensus_batched_block_sync = val;
}

/// NB: We are setting a number of feature flags and protocol config fields here to to
/// facilitate testing of PTB execution v2. These feature flags and config fields should be set
/// with or before enabling PTB execution v2 in a real protocol upgrade.
pub fn set_enable_ptb_execution_v2_for_testing(&mut self, val: bool) {
self.feature_flags.enable_ptb_execution_v2 = val;
// Remove this and set these fields when we move this to be set for a specific protocol
Expand All @@ -4448,6 +4465,11 @@ impl ProtocolConfig {
self.translation_per_reference_node_charge = Some(1);
self.translation_metering_step_resolution = Some(1000);
self.translation_per_linkage_entry_charge = Some(10);
if self.gas_model_version.is_some_and(|version| version <= 10) {
self.gas_model_version = Some(11);
}
self.feature_flags.abstract_size_in_object_runtime = true;
self.feature_flags.object_runtime_charge_cache_load_gas = true;
}
}

Expand Down
Loading