Skip to content

Commit 4722b2a

Browse files
Rename ExecutionFailureStatus to ExecutionErrorKind (#25710)
## Description Describe the changes or additions included in this PR. - Uses ExecutionErrorKind in favor of ExecutionFailureStatus - All uses of ExecutionFailureStatus are changed to ExecutionErrorKind - Type alias ExecutionFailureStatus -> ExecutionErrorKind to keep CI happy and give some time to to fully switch over ## Test plan Existing tests. --- ## Release notes Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required. For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates. - [ ] Protocol: - [ ] Nodes (Validators and Full nodes): - [ ] gRPC: - [ ] JSON-RPC: - [ ] GraphQL: - [ ] CLI: - [ ] Rust SDK: - [ ] Indexing Framework:
1 parent c49568b commit 4722b2a

File tree

94 files changed

+374
-373
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+374
-373
lines changed

crates/sui-benchmark/src/lib.rs

Lines changed: 27 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ use sui_types::{
5555
};
5656
use sui_types::{
5757
effects::{TransactionEffectsAPI, TransactionEvents},
58-
execution_status::{ExecutionFailure, ExecutionFailureStatus, ExecutionStatus},
58+
execution_status::{ExecutionErrorKind, ExecutionFailure, ExecutionStatus},
5959
};
6060
use sui_types::{gas_coin::GAS, sui_system_state::sui_system_state_summary::SuiSystemStateSummary};
6161
use tokio::time::sleep;
@@ -184,9 +184,7 @@ impl ExecutionEffects {
184184
ExecutionStatus::Success => false,
185185
ExecutionStatus::Failure(ExecutionFailure {
186186
error:
187-
ExecutionFailureStatus::ExecutionCancelledDueToSharedObjectCongestion {
188-
..
189-
},
187+
ExecutionErrorKind::ExecutionCancelledDueToSharedObjectCongestion { .. },
190188
..
191189
}) => true,
192190
_ => false,
@@ -195,8 +193,7 @@ impl ExecutionEffects {
195193
ExecutionEffects::ExecutedTransaction(txn) => match txn.effects.status() {
196194
ExecutionStatus::Success => false,
197195
ExecutionStatus::Failure(ExecutionFailure {
198-
error:
199-
ExecutionFailureStatus::ExecutionCancelledDueToSharedObjectCongestion { .. },
196+
error: ExecutionErrorKind::ExecutionCancelledDueToSharedObjectCongestion { .. },
200197
..
201198
}) => true,
202199
_ => false,
@@ -210,7 +207,7 @@ impl ExecutionEffects {
210207
match effects.data().status() {
211208
ExecutionStatus::Success => false,
212209
ExecutionStatus::Failure(ExecutionFailure {
213-
error: ExecutionFailureStatus::InsufficientFundsForWithdraw,
210+
error: ExecutionErrorKind::InsufficientFundsForWithdraw,
214211
..
215212
}) => true,
216213
_ => false,
@@ -219,7 +216,7 @@ impl ExecutionEffects {
219216
ExecutionEffects::ExecutedTransaction(txn) => match txn.effects.status() {
220217
ExecutionStatus::Success => false,
221218
ExecutionStatus::Failure(ExecutionFailure {
222-
error: ExecutionFailureStatus::InsufficientFundsForWithdraw,
219+
error: ExecutionErrorKind::InsufficientFundsForWithdraw,
223220
..
224221
}) => true,
225222
_ => false,
@@ -234,17 +231,17 @@ impl ExecutionEffects {
234231
ExecutionStatus::Failure(ExecutionFailure { error, .. }) => {
235232
matches!(
236233
error,
237-
ExecutionFailureStatus::VMVerificationOrDeserializationError
238-
| ExecutionFailureStatus::VMInvariantViolation
239-
| ExecutionFailureStatus::FunctionNotFound
240-
| ExecutionFailureStatus::ArityMismatch
241-
| ExecutionFailureStatus::TypeArityMismatch
242-
| ExecutionFailureStatus::NonEntryFunctionInvoked
243-
| ExecutionFailureStatus::CommandArgumentError { .. }
244-
| ExecutionFailureStatus::TypeArgumentError { .. }
245-
| ExecutionFailureStatus::UnusedValueWithoutDrop { .. }
246-
| ExecutionFailureStatus::InvalidPublicFunctionReturnType { .. }
247-
| ExecutionFailureStatus::InvalidTransferObject
234+
ExecutionErrorKind::VMVerificationOrDeserializationError
235+
| ExecutionErrorKind::VMInvariantViolation
236+
| ExecutionErrorKind::FunctionNotFound
237+
| ExecutionErrorKind::ArityMismatch
238+
| ExecutionErrorKind::TypeArityMismatch
239+
| ExecutionErrorKind::NonEntryFunctionInvoked
240+
| ExecutionErrorKind::CommandArgumentError { .. }
241+
| ExecutionErrorKind::TypeArgumentError { .. }
242+
| ExecutionErrorKind::UnusedValueWithoutDrop { .. }
243+
| ExecutionErrorKind::InvalidPublicFunctionReturnType { .. }
244+
| ExecutionErrorKind::InvalidTransferObject
248245
)
249246
}
250247
_ => false,
@@ -254,17 +251,17 @@ impl ExecutionEffects {
254251
ExecutionStatus::Failure(ExecutionFailure { error, .. }) => {
255252
matches!(
256253
error,
257-
ExecutionFailureStatus::VMVerificationOrDeserializationError
258-
| ExecutionFailureStatus::VMInvariantViolation
259-
| ExecutionFailureStatus::FunctionNotFound
260-
| ExecutionFailureStatus::ArityMismatch
261-
| ExecutionFailureStatus::TypeArityMismatch
262-
| ExecutionFailureStatus::NonEntryFunctionInvoked
263-
| ExecutionFailureStatus::CommandArgumentError { .. }
264-
| ExecutionFailureStatus::TypeArgumentError { .. }
265-
| ExecutionFailureStatus::UnusedValueWithoutDrop { .. }
266-
| ExecutionFailureStatus::InvalidPublicFunctionReturnType { .. }
267-
| ExecutionFailureStatus::InvalidTransferObject
254+
ExecutionErrorKind::VMVerificationOrDeserializationError
255+
| ExecutionErrorKind::VMInvariantViolation
256+
| ExecutionErrorKind::FunctionNotFound
257+
| ExecutionErrorKind::ArityMismatch
258+
| ExecutionErrorKind::TypeArityMismatch
259+
| ExecutionErrorKind::NonEntryFunctionInvoked
260+
| ExecutionErrorKind::CommandArgumentError { .. }
261+
| ExecutionErrorKind::TypeArgumentError { .. }
262+
| ExecutionErrorKind::UnusedValueWithoutDrop { .. }
263+
| ExecutionErrorKind::InvalidPublicFunctionReturnType { .. }
264+
| ExecutionErrorKind::InvalidTransferObject
268265
)
269266
}
270267
_ => false,

crates/sui-core/src/accumulators/object_funds_checker/integration_tests.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use sui_types::{
1717
effects::TransactionEffectsAPI,
1818
executable_transaction::VerifiedExecutableTransaction,
1919
execution::ExecutionOutput,
20-
execution_status::{ExecutionFailure, ExecutionFailureStatus, ExecutionStatus},
20+
execution_status::{ExecutionErrorKind, ExecutionFailure, ExecutionStatus},
2121
gas_coin::GAS,
2222
object::Object,
2323
};
@@ -275,7 +275,7 @@ async fn test_object_withdraw_multiple_withdraws() {
275275
assert!(matches!(
276276
effects.status(),
277277
ExecutionStatus::Failure(ExecutionFailure {
278-
error: ExecutionFailureStatus::InsufficientFundsForWithdraw,
278+
error: ExecutionErrorKind::InsufficientFundsForWithdraw,
279279
..
280280
})
281281
));
@@ -331,7 +331,7 @@ async fn test_object_withdraw_and_deposit_same_transaction() {
331331
assert!(matches!(
332332
effects.status(),
333333
ExecutionStatus::Failure(ExecutionFailure {
334-
error: ExecutionFailureStatus::InsufficientFundsForWithdraw,
334+
error: ExecutionErrorKind::InsufficientFundsForWithdraw,
335335
..
336336
})
337337
));
@@ -392,7 +392,7 @@ async fn test_object_withdraw_and_deposit_same_transaction() {
392392
assert!(matches!(
393393
effects.status(),
394394
ExecutionStatus::Failure(ExecutionFailure {
395-
error: ExecutionFailureStatus::InsufficientFundsForWithdraw,
395+
error: ExecutionErrorKind::InsufficientFundsForWithdraw,
396396
..
397397
})
398398
));

crates/sui-core/src/accumulators/object_funds_checker/unit_tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use sui_types::{
1212
crypto::get_account_key_pair,
1313
executable_transaction::VerifiedExecutableTransaction,
1414
execution_params::FundsWithdrawStatus,
15-
execution_status::{ExecutionFailureStatus, ExecutionStatus},
15+
execution_status::{ExecutionErrorKind, ExecutionStatus},
1616
};
1717

1818
use crate::{
@@ -381,7 +381,7 @@ async fn test_should_commit_early_exits() {
381381
// Failed execution should always commit.
382382
assert!(checker.should_commit_object_funds_withdraws(
383383
&tx,
384-
&ExecutionStatus::new_failure(ExecutionFailureStatus::FunctionNotFound, None,),
384+
&ExecutionStatus::new_failure(ExecutionErrorKind::FunctionNotFound, None,),
385385
&withdraws,
386386
&ExecutionEnv::new().with_assigned_versions(AssignedVersions::new(
387387
vec![],

crates/sui-core/src/authority.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,10 @@ use sui_types::effects::{
132132
InputConsensusObject, SignedTransactionEffects, TransactionEffects, TransactionEffectsAPI,
133133
TransactionEvents, VerifiedSignedTransactionEffects,
134134
};
135-
use sui_types::error::{ExecutionError, ExecutionErrorKind, SuiErrorKind, UserInputError};
135+
use sui_types::error::{ExecutionError, SuiErrorKind, UserInputError};
136136
use sui_types::event::{Event, EventID};
137137
use sui_types::executable_transaction::VerifiedExecutableTransaction;
138+
use sui_types::execution_status::ExecutionErrorKind;
138139
use sui_types::gas::{GasCostSummary, SuiGasStatus};
139140
use sui_types::inner_temporary_store::{
140141
InnerTemporaryStore, ObjectMap, TemporaryModuleResolver, TxCoins, WrittenObjects,

crates/sui-core/src/checkpoints/checkpoint_executor/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use sui_config::node::{CheckpointExecutorConfig, RunWithRange};
3333
use sui_macros::fail_point;
3434
use sui_types::effects::{TransactionEffects, TransactionEffectsAPI};
3535
use sui_types::executable_transaction::VerifiedExecutableTransaction;
36-
use sui_types::execution_status::{ExecutionFailure, ExecutionFailureStatus, ExecutionStatus};
36+
use sui_types::execution_status::{ExecutionErrorKind, ExecutionFailure, ExecutionStatus};
3737
use sui_types::full_checkpoint_content::Checkpoint;
3838
use sui_types::global_state_hash::GlobalStateHash;
3939
use sui_types::message_envelope::Message;
@@ -911,7 +911,7 @@ impl CheckpointExecutor {
911911

912912
// Check if the expected effects indicate insufficient balance
913913
if let &ExecutionStatus::Failure(ExecutionFailure {
914-
error: ExecutionFailureStatus::InsufficientFundsForWithdraw,
914+
error: ExecutionErrorKind::InsufficientFundsForWithdraw,
915915
..
916916
}) = effects.status()
917917
{

crates/sui-core/src/generate_format.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use sui_types::effects::{AccumulatorOperation, AccumulatorValue, TransactionEven
2323
use sui_types::event::Event;
2424
use sui_types::execution::ExecutionTimeObservationKey;
2525
use sui_types::execution_status::{
26-
CommandArgumentError, ExecutionFailureStatus, ExecutionStatus, PackageUpgradeError,
26+
CommandArgumentError, ExecutionErrorKind, ExecutionStatus, PackageUpgradeError,
2727
TypeArgumentError,
2828
};
2929
use sui_types::full_checkpoint_content::{CheckpointData, CheckpointTransaction};
@@ -198,7 +198,7 @@ fn get_registry() -> Result<Registry> {
198198
tracer.trace_type::<Owner>(&samples).unwrap();
199199
tracer.trace_type::<ExecutionStatus>(&samples).unwrap();
200200
tracer
201-
.trace_type::<ExecutionFailureStatus>(&samples)
201+
.trace_type::<ExecutionErrorKind>(&samples)
202202
.unwrap();
203203
tracer.trace_type::<Reservation>(&samples).unwrap();
204204
tracer.trace_type::<WithdrawFrom>(&samples).unwrap();

crates/sui-core/src/unit_tests/authority_tests.rs

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ use sui_types::effects::TransactionEffects;
3737
use sui_types::epoch_data::EpochData;
3838
use sui_types::error::UserInputError;
3939
use sui_types::execution::SharedInput;
40-
use sui_types::execution_status::{ExecutionFailure, ExecutionFailureStatus, ExecutionStatus};
40+
use sui_types::execution_status::{ExecutionErrorKind, ExecutionFailure, ExecutionStatus};
4141
use sui_types::gas_coin::GasCoin;
4242
use sui_types::messages_consensus::{
4343
AuthorityCapabilitiesV2, ConsensusDeterminedVersionAssignments,
@@ -771,7 +771,7 @@ async fn test_dev_inspect_return_values() {
771771
assert_eq!(
772772
effects.status(),
773773
&ExecutionStatus::Failure(ExecutionFailure {
774-
error: ExecutionFailureStatus::UnusedValueWithoutDrop {
774+
error: ExecutionErrorKind::UnusedValueWithoutDrop {
775775
result_idx: 0,
776776
secondary_idx: 0,
777777
},
@@ -1865,7 +1865,7 @@ async fn test_package_size_limit() {
18651865
};
18661866
assert!(matches!(
18671867
error,
1868-
ExecutionFailureStatus::MovePackageTooBig { .. }
1868+
ExecutionErrorKind::MovePackageTooBig { .. }
18691869
));
18701870
}
18711871

@@ -1909,7 +1909,7 @@ async fn test_publish_module_with_unpublishable_magic() {
19091909
};
19101910
assert!(matches!(
19111911
error,
1912-
ExecutionFailureStatus::VMVerificationOrDeserializationError
1912+
ExecutionErrorKind::VMVerificationOrDeserializationError
19131913
));
19141914
}
19151915

@@ -2046,7 +2046,7 @@ async fn test_handle_transfer_sui_with_amount_insufficient_gas() {
20462046
panic!("expected transaction to fail")
20472047
};
20482048
assert_eq!(command, &Some(0));
2049-
assert_eq!(error, &ExecutionFailureStatus::InsufficientCoinBalance)
2049+
assert_eq!(error, &ExecutionErrorKind::InsufficientCoinBalance)
20502050
}
20512051

20522052
#[tokio::test]
@@ -5713,10 +5713,7 @@ async fn test_publish_missing_dependency() {
57135713
.into_status()
57145714
.unwrap_err();
57155715

5716-
assert_eq!(
5717-
ExecutionFailureStatus::PublishUpgradeMissingDependency,
5718-
failure,
5719-
);
5716+
assert_eq!(ExecutionErrorKind::PublishUpgradeMissingDependency, failure,);
57205717
}
57215718

57225719
#[tokio::test]
@@ -5760,10 +5757,7 @@ async fn test_publish_missing_transitive_dependency() {
57605757
.into_status()
57615758
.unwrap_err();
57625759

5763-
assert_eq!(
5764-
ExecutionFailureStatus::PublishUpgradeMissingDependency,
5765-
failure,
5766-
);
5760+
assert_eq!(ExecutionErrorKind::PublishUpgradeMissingDependency, failure,);
57675761
}
57685762

57695763
#[tokio::test]
@@ -6558,13 +6552,13 @@ async fn test_insufficient_balance_for_withdraw_early_error() {
65586552
let error = execution_error.unwrap();
65596553
assert_eq!(
65606554
error.kind(),
6561-
&ExecutionFailureStatus::InsufficientFundsForWithdraw
6555+
&ExecutionErrorKind::InsufficientFundsForWithdraw
65626556
);
65636557

65646558
// Check that the transaction status shows failure
65656559
assert!(effects.status().is_err());
65666560
if let ExecutionStatus::Failure(ExecutionFailure { error, .. }) = effects.status() {
6567-
assert_eq!(error, &ExecutionFailureStatus::InsufficientFundsForWithdraw);
6561+
assert_eq!(error, &ExecutionErrorKind::InsufficientFundsForWithdraw);
65686562
} else {
65696563
panic!("Expected execution status to be Failure");
65706564
}

crates/sui-core/src/unit_tests/congestion_control_tests.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ use sui_types::transaction::{ObjectArg, SharedObjectMutability};
3232
use sui_types::{
3333
base_types::{ObjectID, ObjectRef, SequenceNumber, SuiAddress},
3434
crypto::{AccountKeyPair, get_key_pair},
35-
execution_status::{CongestedObjects, ExecutionFailureStatus},
35+
execution_status::{CongestedObjects, ExecutionErrorKind},
3636
object::Object,
3737
programmable_transaction_builder::ProgrammableTransactionBuilder,
3838
};
@@ -362,7 +362,7 @@ async fn test_congestion_control_execution_cancellation() {
362362
assert!(execution_error.is_some());
363363
assert_eq!(
364364
execution_error.unwrap().to_execution_status().0,
365-
ExecutionFailureStatus::ExecutionCancelledDueToSharedObjectCongestion {
365+
ExecutionErrorKind::ExecutionCancelledDueToSharedObjectCongestion {
366366
congested_objects: CongestedObjects(vec![shared_object_1.0]),
367367
}
368368
);
@@ -398,7 +398,7 @@ async fn test_congestion_control_execution_cancellation() {
398398
// Should result in the same cancellation.
399399
assert_eq!(
400400
execution_error.unwrap().to_execution_status().0,
401-
ExecutionFailureStatus::ExecutionCancelledDueToSharedObjectCongestion {
401+
ExecutionErrorKind::ExecutionCancelledDueToSharedObjectCongestion {
402402
congested_objects: CongestedObjects(vec![shared_object_1.0]),
403403
}
404404
);

crates/sui-core/src/unit_tests/gas_tests.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use once_cell::sync::Lazy;
1313
use sui_protocol_config::ProtocolConfig;
1414
use sui_types::crypto::AccountKeyPair;
1515
use sui_types::effects::SignedTransactionEffects;
16-
use sui_types::execution_status::{ExecutionFailureStatus, ExecutionStatus};
16+
use sui_types::execution_status::{ExecutionErrorKind, ExecutionStatus};
1717
use sui_types::gas_coin::GasCoin;
1818
use sui_types::object::GAS_VALUE_FOR_TESTING;
1919
use sui_types::programmable_transaction_builder::ProgrammableTransactionBuilder;
@@ -219,7 +219,7 @@ where
219219
// check effects
220220
assert_eq!(
221221
effects.status().clone().unwrap_err().0,
222-
ExecutionFailureStatus::InsufficientGas
222+
ExecutionErrorKind::InsufficientGas
223223
);
224224
// gas object in effects is first coin in vector of coins
225225
assert_eq!(gas_coin_ids[0], effects.gas_object().0.0);
@@ -582,7 +582,7 @@ async fn test_transfer_sui_insufficient_gas() {
582582
// We expect this to fail due to insufficient gas.
583583
assert_eq!(
584584
*effects.status(),
585-
ExecutionStatus::new_failure(ExecutionFailureStatus::InsufficientGas, None)
585+
ExecutionStatus::new_failure(ExecutionErrorKind::InsufficientGas, None)
586586
);
587587
// Ensure that the owner of the object did not change if the transfer failed.
588588
assert_eq!(
@@ -711,7 +711,7 @@ async fn test_native_transfer_insufficient_gas_reading_objects() {
711711
let effects = result.response.unwrap().unwrap().into_data();
712712
assert_eq!(
713713
effects.into_status().unwrap_err().0,
714-
ExecutionFailureStatus::InsufficientGas
714+
ExecutionErrorKind::InsufficientGas
715715
);
716716
}
717717

@@ -749,7 +749,7 @@ async fn test_native_transfer_insufficient_gas_execution() {
749749

750750
assert_eq!(
751751
effects.into_status().unwrap_err().0,
752-
ExecutionFailureStatus::InsufficientGas,
752+
ExecutionErrorKind::InsufficientGas,
753753
);
754754
}
755755

@@ -810,7 +810,7 @@ async fn test_publish_gas() -> anyhow::Result<()> {
810810
let gas_cost = effects.gas_cost_summary().clone();
811811
let err = effects.into_status().unwrap_err().0;
812812

813-
assert_eq!(err, ExecutionFailureStatus::InsufficientGas);
813+
assert_eq!(err, ExecutionErrorKind::InsufficientGas);
814814

815815
assert!(gas_cost.gas_used() > 0);
816816

@@ -1123,7 +1123,7 @@ async fn test_gas_price_capping_for_aborted_transactions() {
11231123
// check effects
11241124
assert!(matches!(
11251125
effects.status().clone().unwrap_err().0,
1126-
ExecutionFailureStatus::MoveAbort(_, 42)
1126+
ExecutionErrorKind::MoveAbort(_, 42)
11271127
));
11281128

11291129
// Check that the gas cost is capped

0 commit comments

Comments
 (0)