From 72d90245ae6728e71920d988d53c92b9afa5cdcb Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Wed, 15 Jun 2022 13:35:44 -0700 Subject: [PATCH] error: further simplify the execution failure status that is committed to chain --- .../tests/children/child_of_shared_object.exp | 2 +- .../tests/entry_points/wrong_visibility.exp | 6 +- .../tests/publish/init_param.exp | 2 +- .../tests/publish/init_public.exp | 2 +- .../tests/publish/init_ret.exp | 2 +- .../tests/sui/freeze.exp | 4 +- .../sui/move_call_args_type_mismatch.exp | 4 +- .../sui/move_call_incorrect_function.exp | 4 +- .../sui/publish_module_non_zero_address.exp | 2 +- crates/sui-core/src/generate_format.rs | 9 +- crates/sui-core/src/unit_tests/gas_tests.rs | 13 ++- .../src/unit_tests/move_integration_tests.rs | 3 +- crates/sui-core/tests/staged/sui.yaml | 59 +++++-------- .../src/test_adapter.rs | 10 +-- crates/sui-types/src/error.rs | 87 +++++++++++++++++-- crates/sui-types/src/messages.rs | 27 ++++-- .../entry_points/generic_with_key_invalid.exp | 4 +- .../tests/entry_points/non_key_struct.exp | 2 +- .../entry_points/non_key_struct_generic.exp | 4 +- .../entry_points/non_key_struct_vector.exp | 2 +- .../tests/entry_points/return_values.exp | 8 +- .../tests/global_storage_access/all.exp | 2 +- .../global_storage_access/borrow_global.exp | 4 +- .../borrow_global_mut.exp | 4 +- .../tests/global_storage_access/exists.exp | 4 +- .../tests/global_storage_access/move_from.exp | 4 +- .../tests/global_storage_access/move_to.exp | 4 +- ...mut_borrow_generic_key_struct_id_field.exp | 2 +- .../mut_borrow_key_struct_id_field.exp | 2 +- .../id_leak/direct_leak_through_call.exp | 2 +- .../id_leak/indirect_leak_through_call.exp | 2 +- .../tests/id_leak/through_direct_return.exp | 2 +- .../tests/id_leak/through_indirect_return.exp | 2 +- .../tests/id_leak/through_reference.exp | 2 +- .../tests/id_leak/through_vector.exp | 2 +- .../tests/init/cannot_call_init.exp | 2 +- .../tests/init/must_have_txn_context.exp | 4 +- .../tests/init/not_generic.exp | 2 +- .../tests/init/not_private.exp | 6 +- .../tests/init/not_txn_context.exp | 8 +- .../tests/init/return_values.exp | 2 +- .../key_struct_first_field_not_id.exp | 2 +- ...ruct_id_field_incorrect_struct_address.exp | 2 +- ..._struct_id_field_incorrect_struct_name.exp | 2 +- .../key_struct_id_field_incorrect_type.exp | 2 +- .../key_struct_second_field_id.exp | 2 +- .../struct_with_key/key_struct_with_drop.exp | 2 +- 47 files changed, 199 insertions(+), 131 deletions(-) diff --git a/crates/sui-adapter-transactional-tests/tests/children/child_of_shared_object.exp b/crates/sui-adapter-transactional-tests/tests/children/child_of_shared_object.exp index 0167a8461d7e6..d03c4aec75521 100644 --- a/crates/sui-adapter-transactional-tests/tests/children/child_of_shared_object.exp +++ b/crates/sui-adapter-transactional-tests/tests/children/child_of_shared_object.exp @@ -24,7 +24,7 @@ task 6 'run'. lines 86-88: written: object(109), object(111), object(112) task 7 'run'. lines 89-89: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: InvalidSharedChildUse, source: None } } +Error: MiscellaneousError task 8 'run'. lines 91-91: written: object(109), object(111), object(114) diff --git a/crates/sui-adapter-transactional-tests/tests/entry_points/wrong_visibility.exp b/crates/sui-adapter-transactional-tests/tests/entry_points/wrong_visibility.exp index a3f29e2530ae0..7eedb854fa7b6 100644 --- a/crates/sui-adapter-transactional-tests/tests/entry_points/wrong_visibility.exp +++ b/crates/sui-adapter-transactional-tests/tests/entry_points/wrong_visibility.exp @@ -5,10 +5,10 @@ created: object(103) written: object(102) task 2 'run'. lines 26-26: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: InvalidNonEntryFunction, source: None } } +Error: MiscellaneousError task 3 'run'. lines 28-28: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: InvalidNonEntryFunction, source: None } } +Error: MiscellaneousError task 4 'run'. lines 30-30: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: InvalidNonEntryFunction, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-adapter-transactional-tests/tests/publish/init_param.exp b/crates/sui-adapter-transactional-tests/tests/publish/init_param.exp index c4bf0147545d9..7b22629aacbc7 100644 --- a/crates/sui-adapter-transactional-tests/tests/publish/init_param.exp +++ b/crates/sui-adapter-transactional-tests/tests/publish/init_param.exp @@ -1,4 +1,4 @@ processed 2 tasks task 1 'publish'. lines 5-24: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-adapter-transactional-tests/tests/publish/init_public.exp b/crates/sui-adapter-transactional-tests/tests/publish/init_public.exp index 09dfc6ec8a8cf..105ce71c40a88 100644 --- a/crates/sui-adapter-transactional-tests/tests/publish/init_public.exp +++ b/crates/sui-adapter-transactional-tests/tests/publish/init_public.exp @@ -1,4 +1,4 @@ processed 2 tasks task 1 'publish'. lines 5-25: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-adapter-transactional-tests/tests/publish/init_ret.exp b/crates/sui-adapter-transactional-tests/tests/publish/init_ret.exp index 3528b6d44ed13..5aa6c520f0e1a 100644 --- a/crates/sui-adapter-transactional-tests/tests/publish/init_ret.exp +++ b/crates/sui-adapter-transactional-tests/tests/publish/init_ret.exp @@ -1,4 +1,4 @@ processed 2 tasks task 1 'publish'. lines 5-26: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-adapter-transactional-tests/tests/sui/freeze.exp b/crates/sui-adapter-transactional-tests/tests/sui/freeze.exp index c2c5452b61009..5cacb6d868e29 100644 --- a/crates/sui-adapter-transactional-tests/tests/sui/freeze.exp +++ b/crates/sui-adapter-transactional-tests/tests/sui/freeze.exp @@ -11,7 +11,7 @@ task 2 'run'. lines 10-10: written: object(104), object(105) task 3 'run'. lines 12-12: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: TypeError, source: None } } +Error: MiscellaneousError task 4 'run'. lines 14-14: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: TypeError, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-adapter-transactional-tests/tests/sui/move_call_args_type_mismatch.exp b/crates/sui-adapter-transactional-tests/tests/sui/move_call_args_type_mismatch.exp index 58e4e5181e68e..1f3e8f270541d 100644 --- a/crates/sui-adapter-transactional-tests/tests/sui/move_call_args_type_mismatch.exp +++ b/crates/sui-adapter-transactional-tests/tests/sui/move_call_args_type_mismatch.exp @@ -5,7 +5,7 @@ created: object(103) written: object(102) task 2 'run'. lines 14-16: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: InvalidFunctionSignature, source: None } } +Error: MiscellaneousError task 3 'run'. lines 17-17: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: VmError, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-adapter-transactional-tests/tests/sui/move_call_incorrect_function.exp b/crates/sui-adapter-transactional-tests/tests/sui/move_call_incorrect_function.exp index 44c901713a7c7..1ce52608ec050 100644 --- a/crates/sui-adapter-transactional-tests/tests/sui/move_call_incorrect_function.exp +++ b/crates/sui-adapter-transactional-tests/tests/sui/move_call_incorrect_function.exp @@ -1,7 +1,7 @@ processed 2 tasks task 0 'run'. lines 7-9: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: VmError, source: None } } +Error: MiscellaneousError task 1 'run'. lines 10-10: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: FunctionNotFound, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-adapter-transactional-tests/tests/sui/publish_module_non_zero_address.exp b/crates/sui-adapter-transactional-tests/tests/sui/publish_module_non_zero_address.exp index 21102ed651d46..f0cb963ad1cfe 100644 --- a/crates/sui-adapter-transactional-tests/tests/sui/publish_module_non_zero_address.exp +++ b/crates/sui-adapter-transactional-tests/tests/sui/publish_module_non_zero_address.exp @@ -1,4 +1,4 @@ processed 2 tasks task 1 'publish'. lines 8-10: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModulePublishFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-core/src/generate_format.rs b/crates/sui-core/src/generate_format.rs index 778468be05691..467fb63dc35db 100644 --- a/crates/sui-core/src/generate_format.rs +++ b/crates/sui-core/src/generate_format.rs @@ -5,6 +5,7 @@ use clap::*; use move_core_types::{ language_storage::TypeTag, value::{MoveStructLayout, MoveTypeLayout}, + vm_status::AbortLocation, }; use pretty_assertions::assert_str_eq; use serde_reflection::{Registry, Result, Samples, Tracer, TracerConfig}; @@ -14,9 +15,9 @@ use sui_types::{ base_types::{self, ObjectDigest, ObjectID, TransactionDigest, TransactionEffectsDigest}, batch::UpdateItem, crypto::{get_key_pair, AuthoritySignature, Signature}, - error::ExecutionErrorKind, messages::{ - CallArg, ExecutionStatus, ObjectInfoRequestKind, SingleTransactionKind, TransactionKind, + CallArg, ExecutionFailureStatus, ExecutionStatus, ObjectInfoRequestKind, + SingleTransactionKind, TransactionKind, }, object::{Data, Owner}, }; @@ -58,10 +59,10 @@ fn get_registry() -> Result { tracer.trace_value(&mut samples, &teff)?; // 2. Trace the main entry point(s) + every enum separately. - // tracer.trace_type::(&samples)?; - tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; + tracer.trace_type::(&samples)?; + tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; tracer.trace_type::(&samples)?; diff --git a/crates/sui-core/src/unit_tests/gas_tests.rs b/crates/sui-core/src/unit_tests/gas_tests.rs index ab81672aff7bd..3a970175d4e36 100644 --- a/crates/sui-core/src/unit_tests/gas_tests.rs +++ b/crates/sui-core/src/unit_tests/gas_tests.rs @@ -8,7 +8,6 @@ use super::move_integration_tests::build_and_try_publish_test_package; use move_core_types::account_address::AccountAddress; use move_core_types::ident_str; use sui_adapter::genesis; -use sui_types::error::ExecutionErrorKind; use sui_types::gas_coin::GasCoin; use sui_types::object::GAS_VALUE_FOR_TESTING; use sui_types::{ @@ -167,7 +166,7 @@ async fn test_native_transfer_insufficient_gas_reading_objects() { let effects = result.response.unwrap().signed_effects.unwrap().effects; assert_eq!( effects.status.unwrap_err(), - ExecutionErrorKind::InsufficientGas + ExecutionFailureStatus::InsufficientGas ); } @@ -207,12 +206,12 @@ async fn test_native_transfer_insufficient_gas_execution() { assert_eq!( effects.status.unwrap_err(), - ExecutionErrorKind::InsufficientGas, + ExecutionFailureStatus::InsufficientGas, ); } #[tokio::test] -async fn test_publish_gas() -> SuiResult { +async fn test_publish_gas() -> anyhow::Result<()> { let (sender, sender_key) = get_key_pair(); let gas_object_id = ObjectID::random(); let authority_state = init_state_with_ids(vec![(sender, gas_object_id)]).await; @@ -296,7 +295,7 @@ async fn test_publish_gas() -> SuiResult { let gas_cost = effects.gas_used; let err = effects.status.unwrap_err(); - assert_eq!(err, ExecutionErrorKind::InsufficientGas); + assert_eq!(err, ExecutionFailureStatus::InsufficientGas); // Make sure that we are not charging storage cost at failure. assert_eq!(gas_cost.storage_cost, 0); @@ -326,7 +325,7 @@ async fn test_publish_gas() -> SuiResult { let effects = response.signed_effects.unwrap().effects; let gas_cost = effects.gas_used; let err = effects.status.unwrap_err(); - assert_eq!(err, ExecutionErrorKind::InsufficientGas,); + assert_eq!(err, ExecutionFailureStatus::InsufficientGas); assert_eq!(gas_cost.storage_cost, 0); assert_eq!(gas_cost.storage_rebate, 0); Ok(()) @@ -449,7 +448,7 @@ async fn test_move_call_gas() -> SuiResult { let gas_cost = effects.gas_used; let err = effects.status.unwrap_err(); // We will run out of gas during VM execution. - assert!(matches!(err, ExecutionErrorKind::VmError)); + assert!(matches!(err, ExecutionFailureStatus::InsufficientGas)); let gas_object = authority_state.get_object(&gas_object_id).await?.unwrap(); let expected_gas_balance = expected_gas_balance - gas_cost.gas_used() + gas_cost.storage_rebate; assert_eq!( diff --git a/crates/sui-core/src/unit_tests/move_integration_tests.rs b/crates/sui-core/src/unit_tests/move_integration_tests.rs index 6a71b8999de72..585556a9c4672 100644 --- a/crates/sui-core/src/unit_tests/move_integration_tests.rs +++ b/crates/sui-core/src/unit_tests/move_integration_tests.rs @@ -11,7 +11,6 @@ use move_package::BuildConfig; use sui_types::{ crypto::KeyPair, crypto::{get_key_pair, Signature}, - error::ExecutionErrorKind, event::{Event, EventType, TransferType}, messages::ExecutionStatus, object::OBJECT_START_VERSION, @@ -405,7 +404,7 @@ async fn test_object_owning_another_object() { // we expect this to be and error due to Deleting an Object Owned Object assert!(matches!( effects.status.unwrap_err(), - ExecutionErrorKind::DeleteObjectOwnedObject + ExecutionFailureStatus::MiscellaneousError, )); // Remove the child from the parent. diff --git a/crates/sui-core/tests/staged/sui.yaml b/crates/sui-core/tests/staged/sui.yaml index b7591159e6b9b..f82204bd7daba 100644 --- a/crates/sui-core/tests/staged/sui.yaml +++ b/crates/sui-core/tests/staged/sui.yaml @@ -1,4 +1,12 @@ --- +AbortLocation: + ENUM: + 0: + Module: + NEWTYPE: + TYPENAME: ModuleId + 1: + Script: UNIT AccountAddress: NEWTYPESTRUCT: TUPLEARRAY: @@ -61,48 +69,17 @@ ExecutionDigests: TYPENAME: TransactionDigest - effects: TYPENAME: TransactionEffectsDigest -ExecutionErrorKind: +ExecutionFailureStatus: ENUM: 0: InsufficientGas: UNIT 1: - TransferUnowned: UNIT + MoveAbort: + TUPLE: + - TYPENAME: AbortLocation + - U64 2: - TransferNonCoin: UNIT - 3: - TransferInsufficientBalance: UNIT - 4: - InvalidTransactionUpdate: UNIT - 5: - ObjectNotFound: UNIT - 6: - DeleteObjectOwnedObject: UNIT - 7: - FunctionNotFound: UNIT - 8: - ModuleNotFound: UNIT - 9: - InvalidFunctionSignature: UNIT - 10: - InvalidFunctionVisibility: UNIT - 11: - InvalidNonEntryFunction: UNIT - 12: - ExecutionInvariantViolation: UNIT - 13: - TypeError: UNIT - 14: - CircularObjectOwnership: UNIT - 15: - MissingObjectOwner: UNIT - 16: - InvalidSharedChildUse: UNIT - 17: - ModulePublishFailure: UNIT - 18: - ModuleVerificationFailure: UNIT - 19: - VmError: UNIT + MiscellaneousError: UNIT ExecutionStatus: ENUM: 0: @@ -111,9 +88,15 @@ ExecutionStatus: Failure: STRUCT: - error: - TYPENAME: ExecutionErrorKind + TYPENAME: ExecutionFailureStatus Identifier: NEWTYPESTRUCT: STR +ModuleId: + STRUCT: + - address: + TYPENAME: AccountAddress + - name: + TYPENAME: Identifier MoveCall: STRUCT: - package: diff --git a/crates/sui-transactional-test-runner/src/test_adapter.rs b/crates/sui-transactional-test-runner/src/test_adapter.rs index d2be1ffdc89fc..6a5891566daaf 100644 --- a/crates/sui-transactional-test-runner/src/test_adapter.rs +++ b/crates/sui-transactional-test-runner/src/test_adapter.rs @@ -4,7 +4,7 @@ //! This module contains the transactional test runner instantiation for the Sui adapter use crate::{args::*, in_memory_storage::InMemoryStorage}; -use anyhow::{anyhow, bail}; +use anyhow::bail; use bimap::btree::BiBTreeMap; use move_binary_format::{file_format::CompiledScript, CompiledModule}; use move_bytecode_utils::module_cache::GetModule; @@ -46,7 +46,6 @@ use sui_types::{ SUI_ADDRESS_LENGTH, }, crypto::{get_key_pair_from_rng, KeyPair, Signature}, - error::SuiError, event::Event, gas, messages::{ExecutionStatus, Transaction, TransactionData, TransactionEffects}, @@ -505,7 +504,7 @@ impl<'a> SuiTestAdapter<'a> { deleted: deleted_ids, events, }), - ExecutionStatus::Failure { error, .. } => Err(self.render_sui_error(error.into())), + ExecutionStatus::Failure { error, .. } => Err(error.into()), } } @@ -600,11 +599,6 @@ impl<'a> SuiTestAdapter<'a> { .join(", ") } - fn render_sui_error(&self, sui_error: SuiError) -> anyhow::Error { - let error_string: String = format!("{}", sui_error); - anyhow!(self.stabilize_str(&error_string)) - } - fn stabilize_str(&self, input: impl AsRef) -> String { fn candidate_is_hex(s: &str) -> bool { const HEX_STR_LENGTH: usize = SUI_ADDRESS_LENGTH * 2; diff --git a/crates/sui-types/src/error.rs b/crates/sui-types/src/error.rs index b05d6a89c0c39..4f9dbba3bd0bc 100644 --- a/crates/sui-types/src/error.rs +++ b/crates/sui-types/src/error.rs @@ -2,11 +2,12 @@ // Copyright (c) 2022, Mysten Labs, Inc. // SPDX-License-Identifier: Apache-2.0 -use crate::{base_types::*, committee::EpochId, messages::ExecutionStatus}; -use move_binary_format::errors::{PartialVMError, VMError}; +use crate::{base_types::*, committee::EpochId, messages::ExecutionFailureStatus}; +use move_binary_format::errors::{Location, PartialVMError, VMError}; +use move_core_types::vm_status::{AbortLocation, StatusCode}; use narwhal_executor::{ExecutionStateError, SubscriberError}; use serde::{Deserialize, Serialize}; -use std::fmt::Debug; +use std::{error::Error, fmt::Debug}; use thiserror::Error; use typed_store::rocks::TypedStoreError; @@ -512,8 +513,84 @@ impl ExecutionError { &self.inner.kind } - pub fn to_execution_status(&self) -> ExecutionStatus { - todo!() + pub fn to_execution_status(&self) -> ExecutionFailureStatus { + match self.kind() { + ExecutionErrorKind::InsufficientGas => ExecutionFailureStatus::InsufficientGas, + ExecutionErrorKind::TransferUnowned + | ExecutionErrorKind::TransferNonCoin + | ExecutionErrorKind::TransferInsufficientBalance + | ExecutionErrorKind::InvalidTransactionUpdate + | ExecutionErrorKind::ObjectNotFound + | ExecutionErrorKind::DeleteObjectOwnedObject + | ExecutionErrorKind::FunctionNotFound + | ExecutionErrorKind::ModuleNotFound + | ExecutionErrorKind::InvalidFunctionSignature + | ExecutionErrorKind::InvalidFunctionVisibility + | ExecutionErrorKind::InvalidNonEntryFunction + | ExecutionErrorKind::ExecutionInvariantViolation + | ExecutionErrorKind::TypeError + | ExecutionErrorKind::CircularObjectOwnership + | ExecutionErrorKind::MissingObjectOwner + | ExecutionErrorKind::InvalidSharedChildUse + | ExecutionErrorKind::ModulePublishFailure + | ExecutionErrorKind::ModuleVerificationFailure => { + ExecutionFailureStatus::MiscellaneousError + } + ExecutionErrorKind::VmError => { + let source = if let Some(source) = self.source() { + source + } else { + return ExecutionFailureStatus::MiscellaneousError; + }; + + if let Some(vmerror) = source.downcast_ref::() { + match ( + vmerror.major_status(), + vmerror.sub_status(), + vmerror.location(), + ) { + (StatusCode::EXECUTED, _, _) => { + // If we have an error the status probably shouldn't ever be Executed + debug_assert!( + false, + "VmError shouldn't ever report successful execution" + ); + } + (StatusCode::ABORTED, Some(code), Location::Script) => { + return ExecutionFailureStatus::MoveAbort(AbortLocation::Script, code); + } + (StatusCode::ABORTED, Some(code), Location::Module(id)) => { + return ExecutionFailureStatus::MoveAbort( + AbortLocation::Module(id.to_owned()), + code, + ); + } + (StatusCode::OUT_OF_GAS, _, _) => { + return ExecutionFailureStatus::InsufficientGas; + } + _ => return ExecutionFailureStatus::MiscellaneousError, + } + } + + if let Some(partial_vmerror) = source.downcast_ref::() { + match partial_vmerror.major_status() { + StatusCode::EXECUTED => { + // If we have an error the status probably shouldn't ever be Executed + debug_assert!( + false, + "VmError shouldn't ever report successful execution" + ); + } + StatusCode::OUT_OF_GAS => { + return ExecutionFailureStatus::InsufficientGas; + } + _ => return ExecutionFailureStatus::MiscellaneousError, + } + } + + ExecutionFailureStatus::MiscellaneousError + } + } } } diff --git a/crates/sui-types/src/messages.rs b/crates/sui-types/src/messages.rs index 10242252806d0..ecffe2ecf1076 100644 --- a/crates/sui-types/src/messages.rs +++ b/crates/sui-types/src/messages.rs @@ -16,6 +16,7 @@ use base64ct::Encoding; use itertools::Either; use move_binary_format::access::ModuleAccess; use move_binary_format::CompiledModule; +use move_core_types::vm_status::AbortLocation; use move_core_types::{ account_address::AccountAddress, identifier::Identifier, language_storage::TypeTag, value::MoveStructLayout, @@ -899,16 +900,30 @@ pub enum CallResult { pub enum ExecutionStatus { Success, // Gas used in the failed case, and the error. - Failure { error: ExecutionErrorKind }, - // OutOfGas, - // MoveAbort(AbortLocation, /* code */ u64), - // MiscError + Failure { error: ExecutionFailureStatus }, } +#[derive(Eq, PartialEq, Clone, Debug, Serialize, Deserialize)] +pub enum ExecutionFailureStatus { + InsufficientGas, + /// Indicates and `abort` from inside Move code. Contains the location of the abort and the + /// abort code + MoveAbort(AbortLocation, u64), + MiscellaneousError, +} + +impl std::fmt::Display for ExecutionFailureStatus { + fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { + write!(f, "{:?}", self) + } +} + +impl std::error::Error for ExecutionFailureStatus {} + impl ExecutionStatus { pub fn new_failure(error: ExecutionError) -> ExecutionStatus { ExecutionStatus::Failure { - error: *error.kind(), + error: error.to_execution_status(), } } @@ -929,7 +944,7 @@ impl ExecutionStatus { } } - pub fn unwrap_err(self) -> ExecutionErrorKind { + pub fn unwrap_err(self) -> ExecutionFailureStatus { match self { ExecutionStatus::Success { .. } => { panic!("Unable to unwrap() on {:?}", self); diff --git a/crates/sui-verifier-transactional-tests/tests/entry_points/generic_with_key_invalid.exp b/crates/sui-verifier-transactional-tests/tests/entry_points/generic_with_key_invalid.exp index 0ebd3ef14f100..9109c5367b61a 100644 --- a/crates/sui-verifier-transactional-tests/tests/entry_points/generic_with_key_invalid.exp +++ b/crates/sui-verifier-transactional-tests/tests/entry_points/generic_with_key_invalid.exp @@ -1,7 +1,7 @@ processed 2 tasks task 0 'publish'. lines 6-16: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 1 'publish'. lines 18-28: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/entry_points/non_key_struct.exp b/crates/sui-verifier-transactional-tests/tests/entry_points/non_key_struct.exp index 0caa0f3ccfaee..0e1f1be278eac 100644 --- a/crates/sui-verifier-transactional-tests/tests/entry_points/non_key_struct.exp +++ b/crates/sui-verifier-transactional-tests/tests/entry_points/non_key_struct.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 6-17: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/entry_points/non_key_struct_generic.exp b/crates/sui-verifier-transactional-tests/tests/entry_points/non_key_struct_generic.exp index f21bf890764d1..2f95910818be5 100644 --- a/crates/sui-verifier-transactional-tests/tests/entry_points/non_key_struct_generic.exp +++ b/crates/sui-verifier-transactional-tests/tests/entry_points/non_key_struct_generic.exp @@ -1,7 +1,7 @@ processed 2 tasks task 0 'publish'. lines 6-21: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 1 'publish'. lines 23-35: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/entry_points/non_key_struct_vector.exp b/crates/sui-verifier-transactional-tests/tests/entry_points/non_key_struct_vector.exp index 0caa0f3ccfaee..0e1f1be278eac 100644 --- a/crates/sui-verifier-transactional-tests/tests/entry_points/non_key_struct_vector.exp +++ b/crates/sui-verifier-transactional-tests/tests/entry_points/non_key_struct_vector.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 6-17: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/entry_points/return_values.exp b/crates/sui-verifier-transactional-tests/tests/entry_points/return_values.exp index e751cbdf8e3aa..0a85027f36913 100644 --- a/crates/sui-verifier-transactional-tests/tests/entry_points/return_values.exp +++ b/crates/sui-verifier-transactional-tests/tests/entry_points/return_values.exp @@ -1,13 +1,13 @@ processed 4 tasks task 0 'publish'. lines 4-11: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 1 'publish'. lines 13-20: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 2 'publish'. lines 22-29: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 3 'publish'. lines 32-39: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/global_storage_access/all.exp b/crates/sui-verifier-transactional-tests/tests/global_storage_access/all.exp index 34a69f8979aad..7f58be9c4d03a 100644 --- a/crates/sui-verifier-transactional-tests/tests/global_storage_access/all.exp +++ b/crates/sui-verifier-transactional-tests/tests/global_storage_access/all.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-31: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/global_storage_access/borrow_global.exp b/crates/sui-verifier-transactional-tests/tests/global_storage_access/borrow_global.exp index b8c2b336efc51..6722b64b5eef9 100644 --- a/crates/sui-verifier-transactional-tests/tests/global_storage_access/borrow_global.exp +++ b/crates/sui-verifier-transactional-tests/tests/global_storage_access/borrow_global.exp @@ -1,7 +1,7 @@ processed 2 tasks task 0 'publish'. lines 4-15: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 1 'publish'. lines 17-27: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/global_storage_access/borrow_global_mut.exp b/crates/sui-verifier-transactional-tests/tests/global_storage_access/borrow_global_mut.exp index b8c2b336efc51..6722b64b5eef9 100644 --- a/crates/sui-verifier-transactional-tests/tests/global_storage_access/borrow_global_mut.exp +++ b/crates/sui-verifier-transactional-tests/tests/global_storage_access/borrow_global_mut.exp @@ -1,7 +1,7 @@ processed 2 tasks task 0 'publish'. lines 4-15: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 1 'publish'. lines 17-27: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/global_storage_access/exists.exp b/crates/sui-verifier-transactional-tests/tests/global_storage_access/exists.exp index f86992e586cb2..117124ecd05fd 100644 --- a/crates/sui-verifier-transactional-tests/tests/global_storage_access/exists.exp +++ b/crates/sui-verifier-transactional-tests/tests/global_storage_access/exists.exp @@ -1,7 +1,7 @@ processed 2 tasks task 0 'publish'. lines 4-14: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 1 'publish'. lines 16-25: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/global_storage_access/move_from.exp b/crates/sui-verifier-transactional-tests/tests/global_storage_access/move_from.exp index 39a015117aa71..46fb3862f6231 100644 --- a/crates/sui-verifier-transactional-tests/tests/global_storage_access/move_from.exp +++ b/crates/sui-verifier-transactional-tests/tests/global_storage_access/move_from.exp @@ -1,7 +1,7 @@ processed 2 tasks task 0 'publish'. lines 4-20: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 1 'publish'. lines 22-38: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/global_storage_access/move_to.exp b/crates/sui-verifier-transactional-tests/tests/global_storage_access/move_to.exp index b8c2b336efc51..6722b64b5eef9 100644 --- a/crates/sui-verifier-transactional-tests/tests/global_storage_access/move_to.exp +++ b/crates/sui-verifier-transactional-tests/tests/global_storage_access/move_to.exp @@ -1,7 +1,7 @@ processed 2 tasks task 0 'publish'. lines 4-15: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 1 'publish'. lines 17-27: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/id_immutable/mut_borrow_generic_key_struct_id_field.exp b/crates/sui-verifier-transactional-tests/tests/id_immutable/mut_borrow_generic_key_struct_id_field.exp index 43081216c3a78..5cf3822b98a1d 100644 --- a/crates/sui-verifier-transactional-tests/tests/id_immutable/mut_borrow_generic_key_struct_id_field.exp +++ b/crates/sui-verifier-transactional-tests/tests/id_immutable/mut_borrow_generic_key_struct_id_field.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-18: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/id_immutable/mut_borrow_key_struct_id_field.exp b/crates/sui-verifier-transactional-tests/tests/id_immutable/mut_borrow_key_struct_id_field.exp index 43081216c3a78..5cf3822b98a1d 100644 --- a/crates/sui-verifier-transactional-tests/tests/id_immutable/mut_borrow_key_struct_id_field.exp +++ b/crates/sui-verifier-transactional-tests/tests/id_immutable/mut_borrow_key_struct_id_field.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-18: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/id_leak/direct_leak_through_call.exp b/crates/sui-verifier-transactional-tests/tests/id_leak/direct_leak_through_call.exp index 8fb271dde693e..64f927b810e08 100644 --- a/crates/sui-verifier-transactional-tests/tests/id_leak/direct_leak_through_call.exp +++ b/crates/sui-verifier-transactional-tests/tests/id_leak/direct_leak_through_call.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-25: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/id_leak/indirect_leak_through_call.exp b/crates/sui-verifier-transactional-tests/tests/id_leak/indirect_leak_through_call.exp index 8fb271dde693e..64f927b810e08 100644 --- a/crates/sui-verifier-transactional-tests/tests/id_leak/indirect_leak_through_call.exp +++ b/crates/sui-verifier-transactional-tests/tests/id_leak/indirect_leak_through_call.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-25: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/id_leak/through_direct_return.exp b/crates/sui-verifier-transactional-tests/tests/id_leak/through_direct_return.exp index 41fc5cbb8ae5d..83894131bab78 100644 --- a/crates/sui-verifier-transactional-tests/tests/id_leak/through_direct_return.exp +++ b/crates/sui-verifier-transactional-tests/tests/id_leak/through_direct_return.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-19: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/id_leak/through_indirect_return.exp b/crates/sui-verifier-transactional-tests/tests/id_leak/through_indirect_return.exp index 41fc5cbb8ae5d..83894131bab78 100644 --- a/crates/sui-verifier-transactional-tests/tests/id_leak/through_indirect_return.exp +++ b/crates/sui-verifier-transactional-tests/tests/id_leak/through_indirect_return.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-19: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/id_leak/through_reference.exp b/crates/sui-verifier-transactional-tests/tests/id_leak/through_reference.exp index 0d387b41f73eb..2f43f00b588eb 100644 --- a/crates/sui-verifier-transactional-tests/tests/id_leak/through_reference.exp +++ b/crates/sui-verifier-transactional-tests/tests/id_leak/through_reference.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-20: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: VmError, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/id_leak/through_vector.exp b/crates/sui-verifier-transactional-tests/tests/id_leak/through_vector.exp index b6961481f86e0..2f43f00b588eb 100644 --- a/crates/sui-verifier-transactional-tests/tests/id_leak/through_vector.exp +++ b/crates/sui-verifier-transactional-tests/tests/id_leak/through_vector.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-20: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/init/cannot_call_init.exp b/crates/sui-verifier-transactional-tests/tests/init/cannot_call_init.exp index 9f7e8c7aea6fc..29ef18ae48c3a 100644 --- a/crates/sui-verifier-transactional-tests/tests/init/cannot_call_init.exp +++ b/crates/sui-verifier-transactional-tests/tests/init/cannot_call_init.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-17: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/init/must_have_txn_context.exp b/crates/sui-verifier-transactional-tests/tests/init/must_have_txn_context.exp index aaec2e1a6ca93..1f25cf1f209c1 100644 --- a/crates/sui-verifier-transactional-tests/tests/init/must_have_txn_context.exp +++ b/crates/sui-verifier-transactional-tests/tests/init/must_have_txn_context.exp @@ -1,7 +1,7 @@ processed 2 tasks task 0 'publish'. lines 4-11: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 1 'publish'. lines 14-21: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/init/not_generic.exp b/crates/sui-verifier-transactional-tests/tests/init/not_generic.exp index bceaf8f495153..7f2ba62f147c2 100644 --- a/crates/sui-verifier-transactional-tests/tests/init/not_generic.exp +++ b/crates/sui-verifier-transactional-tests/tests/init/not_generic.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-11: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/init/not_private.exp b/crates/sui-verifier-transactional-tests/tests/init/not_private.exp index d5b0aed082743..664ba4fe3ecb4 100644 --- a/crates/sui-verifier-transactional-tests/tests/init/not_private.exp +++ b/crates/sui-verifier-transactional-tests/tests/init/not_private.exp @@ -1,10 +1,10 @@ processed 3 tasks task 0 'publish'. lines 4-11: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 1 'publish'. lines 13-20: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 2 'publish'. lines 22-29: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/init/not_txn_context.exp b/crates/sui-verifier-transactional-tests/tests/init/not_txn_context.exp index e751cbdf8e3aa..0a85027f36913 100644 --- a/crates/sui-verifier-transactional-tests/tests/init/not_txn_context.exp +++ b/crates/sui-verifier-transactional-tests/tests/init/not_txn_context.exp @@ -1,13 +1,13 @@ processed 4 tasks task 0 'publish'. lines 4-11: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 1 'publish'. lines 13-20: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 2 'publish'. lines 22-29: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError task 3 'publish'. lines 32-39: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/init/return_values.exp b/crates/sui-verifier-transactional-tests/tests/init/return_values.exp index bceaf8f495153..7f2ba62f147c2 100644 --- a/crates/sui-verifier-transactional-tests/tests/init/return_values.exp +++ b/crates/sui-verifier-transactional-tests/tests/init/return_values.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-11: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_first_field_not_id.exp b/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_first_field_not_id.exp index 8d2fa13b1f646..cc6a4d6bc622f 100644 --- a/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_first_field_not_id.exp +++ b/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_first_field_not_id.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-10: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_id_field_incorrect_struct_address.exp b/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_id_field_incorrect_struct_address.exp index bceaf8f495153..7f2ba62f147c2 100644 --- a/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_id_field_incorrect_struct_address.exp +++ b/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_id_field_incorrect_struct_address.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-11: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_id_field_incorrect_struct_name.exp b/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_id_field_incorrect_struct_name.exp index 8d2fa13b1f646..cc6a4d6bc622f 100644 --- a/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_id_field_incorrect_struct_name.exp +++ b/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_id_field_incorrect_struct_name.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-10: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_id_field_incorrect_type.exp b/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_id_field_incorrect_type.exp index 8d2fa13b1f646..cc6a4d6bc622f 100644 --- a/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_id_field_incorrect_type.exp +++ b/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_id_field_incorrect_type.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-10: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_second_field_id.exp b/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_second_field_id.exp index bceaf8f495153..7f2ba62f147c2 100644 --- a/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_second_field_id.exp +++ b/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_second_field_id.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-11: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError diff --git a/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_with_drop.exp b/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_with_drop.exp index 8d2fa13b1f646..cc6a4d6bc622f 100644 --- a/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_with_drop.exp +++ b/crates/sui-verifier-transactional-tests/tests/struct_with_key/key_struct_with_drop.exp @@ -1,4 +1,4 @@ processed 1 task task 0 'publish'. lines 4-10: -Error: Error executing ExecutionError: ExecutionError { inner: ExecutionErrorInner { kind: ModuleVerificationFailure, source: None } } +Error: MiscellaneousError