pub fn finish(
protocol_config: &ProtocolConfig,
state_view: &dyn ExecutionState,
gas_charger: &mut GasCharger,
tx_context: &TxContext,
by_value_shared_objects: &BTreeSet<ObjectID>,
consensus_owner_objects: &BTreeMap<ObjectID, Owner>,
loaded_runtime_objects: BTreeMap<ObjectID, LoadedRuntimeObject>,
written_objects: BTreeMap<ObjectID, Object>,
created_object_ids: IndexSet<ObjectID>,
deleted_object_ids: IndexSet<ObjectID>,
user_events: Vec<(ModuleId, StructTag, Vec<u8>)>,
accumulator_events: Vec<MoveAccumulatorEvent>,
) -> Result<ExecutionResults, ExecutionError>