From a41564257d4062a2a4ad28c4b0530e1c5b523c27 Mon Sep 17 00:00:00 2001 From: Francesco Leacche Date: Fri, 14 Nov 2025 15:35:45 +0000 Subject: [PATCH 1/2] add third set of consensus tests for CheckErrorKind --- ...ts__static_check_error_bad_token_name.snap | 126 ++++++++++++ ...check_error_contract_call_expect_name.snap | 126 ++++++++++++ ..._check_error_default_types_must_match.snap | 126 ++++++++++++ ..._check_error_define_nft_bad_signature.snap | 126 ++++++++++++ ..._check_error_empty_tuples_not_allowed.snap | 126 ++++++++++++ ...ic_check_error_expected_callable_type.snap | 126 ++++++++++++ ...check_error_expected_list_application.snap | 126 ++++++++++++ ...static_check_error_if_arms_must_match.snap | 126 ++++++++++++ ...__static_check_error_no_such_contract.snap | 126 ++++++++++++ ...tic_check_error_no_such_data_variable.snap | 126 ++++++++++++ ..._tests__static_check_error_no_such_ft.snap | 126 ++++++++++++ ...tests__static_check_error_no_such_nft.snap | 126 ++++++++++++ ...c_check_error_no_such_public_function.snap | 126 ++++++++++++ ..._check_error_non_function_application.snap | 126 ++++++++++++ ...rror_unchecked_intermediary_responses.snap | 126 ++++++++++++ .../chainstate/tests/static_analysis_tests.rs | 179 ++++++++++++++++++ 16 files changed, 2069 insertions(+) create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_bad_token_name.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_contract_call_expect_name.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_default_types_must_match.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_define_nft_bad_signature.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_empty_tuples_not_allowed.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_callable_type.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_list_application.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_if_arms_must_match.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_contract.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_data_variable.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_ft.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_nft.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_public_function.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_non_function_application.snap create mode 100644 stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_unchecked_intermediary_responses.snap diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_bad_token_name.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_bad_token_name.snap new file mode 100644 index 0000000000..9c0e1ec472 --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_bad_token_name.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "6fc50cfef3fc12b015d46fd7e8e08f2b5ec36418616ce137615896202a16472f", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: bad-token-name-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: expecting an token name as an argument) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1120, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1120, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "f967e774dba2864cf5b8b132f72ebb031634348f49a5fce507fa29f09e45fbc1", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: bad-token-name-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: expecting an token name as an argument) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1120, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1120, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "2e09cea6000f3fa0890a38d01875a530eb2bb645f7c8a668934f57fe9d18c450", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: bad-token-name-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: expecting an token name as an argument) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1120, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1120, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "5c8b9bd5cfc33aa33fe2f4a8995280bbd9e2198e79c158e3d1025d919815b9c8", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: bad-token-name-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: expecting an token name as an argument) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1120, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1120, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_contract_call_expect_name.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_contract_call_expect_name.snap new file mode 100644 index 0000000000..6d635cce2f --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_contract_call_expect_name.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "885ef373bdf13ef6bc97b86a00a378342c3622a453e17aa71d57c6d874dd1b96", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: ccall-expect-name-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: missing contract name for call) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2151, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2151, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "44f77962d4e9b472f7ed6131ff9ebd0d23f2f8107b69521a9b4d15d747416f72", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: ccall-expect-name-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: missing contract name for call) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2151, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2151, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "20c4cc17b045db03947256ffea28cd8e71a6724968602f9cb952f642f1925a18", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: ccall-expect-name-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: missing contract name for call) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2151, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2151, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "29477dd85a14fc7056a6e26038cfe7d691ff0dcc5e16cbca7773b78278d15e1f", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: ccall-expect-name-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: missing contract name for call) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2151, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2151, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_default_types_must_match.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_default_types_must_match.snap new file mode 100644 index 0000000000..633dd3c71a --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_default_types_must_match.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "41a1a3db6f67286dfe3551ae85817504c3286f3fbff065a70d5ebb1c211dba84", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: default-types-must-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: expression types passed in \'default-to\' must match (got \'bool\' and \'int\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 28, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 4991, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 28, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 4991, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "cc43c0912c6c1a4c74592a91efb26f35550761e8c84450715073f37d49949a3e", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: default-types-must-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: expression types passed in \'default-to\' must match (got \'bool\' and \'int\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 28, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 4991, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 28, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 4991, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "bbde490b266a95e346363a2db524dd3693aa5074e21e4b39f0f561b2701ede72", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: default-types-must-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: expression types passed in \'default-to\' must match (got \'bool\' and \'int\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 28, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 4991, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 28, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 4991, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "23d2b1311e898373526ce625610a4dfc45efde282fd7345a2fbc851de476a2c3", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: default-types-must-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: expression types passed in \'default-to\' must match (got \'bool\' and \'int\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 28, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 4991, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 28, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 4991, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_define_nft_bad_signature.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_define_nft_bad_signature.snap new file mode 100644 index 0000000000..ff86ab181e --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_define_nft_bad_signature.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "97bdd398cc2e587a4a544054de83f26b716c28ba576ce0b73baf59227bf34f95", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: nft-bad-signature-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: (define-asset ...) expects an asset name and an asset identifier type signature as arguments) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1497, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1497, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "385fb89e1cdbf1bb403c45851dd43c4081799ae73e5b74937615d228cbc44235", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: nft-bad-signature-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: (define-asset ...) expects an asset name and an asset identifier type signature as arguments) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1497, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1497, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "64cece5f238a1f8ee27ba484701592096af5f63c24765f249b4b37c22e125bce", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: nft-bad-signature-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: (define-asset ...) expects an asset name and an asset identifier type signature as arguments) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1497, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1497, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "0c220e278d9d1c7240bda8d85bbc0cd49716a74d0dfce0844799b232f2011a90", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: nft-bad-signature-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: (define-asset ...) expects an asset name and an asset identifier type signature as arguments) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1497, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1497, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_empty_tuples_not_allowed.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_empty_tuples_not_allowed.snap new file mode 100644 index 0000000000..3dff4b81d0 --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_empty_tuples_not_allowed.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "ad20ffbe94eddcdefafdd80b658e31e93e0314f7062cc84bcb93bab7df84c933", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: empty-tuples-not-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: tuple types may not be empty) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 10, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2425, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 10, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2425, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "7fe981a0b7f707732af6cdf37e92bd8da93a2ccd4fa220525d3777b57fed484d", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: empty-tuples-not-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: tuple types may not be empty) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 10, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2425, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 10, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2425, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "912d9a4bbc2483506c979e8806031046e9f88fdb043ece8c9f30a5ca28f613ae", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: empty-tuples-not-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: tuple types may not be empty) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 10, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2425, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 10, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2425, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "17550097ae5cd0b7ba72a8448fae1f6f1b172bbba194865f1d12d26c43f506f5", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: empty-tuples-not-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: tuple types may not be empty) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 10, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2425, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 10, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2425, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_callable_type.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_callable_type.snap new file mode 100644 index 0000000000..45938257c4 --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_callable_type.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "9d0c1846eaa8e36cd81e1486c300b40a4562dc1f31500ce84c3bc467632494b5", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: exp-callable-type-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: use of undeclared trait ) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 9, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2927, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 9, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2927, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "1057324662e0f464a09c4c12abe918441013fe6884f43020096902b56577bad7", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: exp-callable-type-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: expected a callable contract, found uint) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 9, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2927, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 9, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2927, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "d218007d6218005013e33597d7878d986e09cbc38816174d9920a142e116eb18", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: exp-callable-type-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: expected a callable contract, found uint) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 9, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2927, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 9, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2927, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "ad247afe1e7ef9cbdbee3a552b46dc1e2ed7ba4f45f28186e3dc07c9a8f960a8", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: exp-callable-type-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: expected a callable contract, found uint) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 9, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2927, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 9, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2927, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_list_application.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_list_application.snap new file mode 100644 index 0000000000..0fdb531625 --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_list_application.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "3ec1a588162ba6d1f5dff66293892c47e4fee8042ffa965d81620ce8e81dc43a", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: expected-list-appl-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: expecting expression of type list) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 605, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 605, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "8b1f6d74289defee9cdc7d654c72e2c3eaf34978aebe647c6fad06a8eb320dfa", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: expected-list-appl-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: expecting expression of type list) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 605, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 605, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "fbde759d0b337e2b88faa76428aaa049529cb95c15a8953c45c85c4abddd40fe", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: expected-list-appl-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: expecting expression of type list) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 605, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 605, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "fa8676dc6cf429ec0186a31d5b6d54de3c5df2511ef29e852307da9b3ec56edd", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: expected-list-appl-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: expecting expression of type list) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 605, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 605, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_if_arms_must_match.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_if_arms_must_match.snap new file mode 100644 index 0000000000..7bcaf8cdf5 --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_if_arms_must_match.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "959b74fa7723534df5d5822bfc6a4b65f94aecff60da6ee5fd2fe9e565266fd1", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: if-arms-must-match-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: expression types returned by the arms of \'if\' must match (got \'bool\' and \'int\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 6, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 981, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 6, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 981, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "f25cf84e764734d97abda85e3358055e2831b4dc532ad059687b440539a027c7", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: if-arms-must-match-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: expression types returned by the arms of \'if\' must match (got \'bool\' and \'int\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 6, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 980, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 6, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 980, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "249c76c6a665f2782ce4825db716141caf9f28a2ddab0581095fa2c1bb759951", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: if-arms-must-match-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: expression types returned by the arms of \'if\' must match (got \'bool\' and \'int\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 6, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 980, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 6, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 980, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "8355bf1c30274109ebd01d92e5cce0cd70eb93eae2e31992b2c6c318a62af7b9", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: if-arms-must-match-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: expression types returned by the arms of \'if\' must match (got \'bool\' and \'int\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 6, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 980, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 6, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 980, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_contract.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_contract.snap new file mode 100644 index 0000000000..d223a55106 --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_contract.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "ad20ffbe94eddcdefafdd80b658e31e93e0314f7062cc84bcb93bab7df84c933", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-contract-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: use of unresolved contract \'S1G2081040G2081040G2081040G208105NK8PE5.contract-name\') [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2313, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2313, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "479789e6a7469b862c830ed7c6e5205495e9efbfa4214748c3800b1977a0fecd", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-contract-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: use of unresolved contract \'S1G2081040G2081040G2081040G208105NK8PE5.contract-name\') [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2313, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2313, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "58baa97a27a2299f98d103c264d451c2ef63395891c1772b5c7abf21cd2e7b99", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-contract-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: use of unresolved contract \'S1G2081040G2081040G2081040G208105NK8PE5.contract-name\') [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2313, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2313, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "15e929ccd58437813650b09eaa40c5b06043ed84712be41e43dbb5837601994c", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-contract-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: use of unresolved contract \'S1G2081040G2081040G2081040G208105NK8PE5.contract-name\') [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2313, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 2313, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_data_variable.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_data_variable.snap new file mode 100644 index 0000000000..154a1ccdc7 --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_data_variable.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "89a2466377702f837fc64c085df66eba661492eab616e4f4e20015d969b376a5", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-data-var-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: use of unresolved persisted variable \'cursor\') [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 11, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2510, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 11, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2510, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "06606348669526e2db379d56574e1747a763b5a7ba9edfb793d3a21e6b9d80d3", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-data-var-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: use of unresolved persisted variable \'cursor\') [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 11, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2510, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 11, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2510, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "ac90adbb2e0441c9b4fb1e35263d4b55456e78fdecde8bcc01b37c56a8b37bd2", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-data-var-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: use of unresolved persisted variable \'cursor\') [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 11, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2510, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 11, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2510, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "bc174e4840108c03123e9e79d7cd9e12c732b31fcd0942abeb681a8bd5bcc6f8", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-data-var-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: use of unresolved persisted variable \'cursor\') [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 11, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2510, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 11, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2510, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_ft.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_ft.snap new file mode 100644 index 0000000000..9408d0cb65 --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_ft.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "0b7ad43ce5bf830f058036bb6086ca6f74a201d679705b56795f7eb69809f818", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-ft-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: tried to use token function with a undefined token (\'stackoos\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1201, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1201, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "f25609bfe7cc498597a4acf324d33ef2118554c25b65af2c497ff281064322cf", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-ft-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: tried to use token function with a undefined token (\'stackoos\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1201, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1201, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "19140edb49a19ade70b7cc4012b6320a6248e973414b2500ee15854e281d5fee", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-ft-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: tried to use token function with a undefined token (\'stackoos\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1201, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1201, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "9a5dbed94f6721f1d5873852c6d96570e85640d9d6dcfd5bb0cd96fd179ff963", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-ft-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: tried to use token function with a undefined token (\'stackoos\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1201, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1201, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_nft.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_nft.snap new file mode 100644 index 0000000000..f5e90d516b --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_nft.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "41257b14ba9d02ff86ff22be41fa5460dfd8071d60c167e9419df23fe97dec1b", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-nft-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: tried to use asset function with a undefined asset (\'stackoos\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1093, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1093, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "5ff15cd53712c90e79e296cd27811cbc5969ad0fe27d86e0b0371b5d534b3d18", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-nft-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: tried to use asset function with a undefined asset (\'stackoos\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1093, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1093, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "6c5ad49de671fbebd8387b5c7e7c1458f73bb0a2ac318b788ae59129918662f4", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-nft-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: tried to use asset function with a undefined asset (\'stackoos\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1093, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1093, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "76f3c47840ad328480e75a5744bba2e03179459129f4121e5857129b7d105d7f", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-nft-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: tried to use asset function with a undefined asset (\'stackoos\')) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1093, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 1093, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_public_function.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_public_function.snap new file mode 100644 index 0000000000..5991cf3994 --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_public_function.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "56c84c4dd86c9d8cc34a5af9d3f8db1096cbd2dd259a286f9b70b010b5f814e6", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-pub-func-lit-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: contract \'ST000000000000000000002AMW42H.pox-4\' has no public function \'missing-func\') [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2038, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2038, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "8bde3e0ab96f56f44665283cc256831f8755f6e54fd9167ee70d38f3b68dafdd", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-pub-func-lit-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: contract \'ST000000000000000000002AMW42H.pox-4\' has no public function \'missing-func\') [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2038, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2038, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "a5ea3c27ae27386fd0539fc9c06c175fb39cb21581d80480ae5cd8998eb205b0", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-pub-func-lit-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: contract \'ST000000000000000000002AMW42H.pox-4\' has no public function \'missing-func\') [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2038, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2038, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "b73ba5d9a9405240180da5a238d8f675ca89c3ab4678f6a35ed1d58b1fb93716", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: no-such-pub-func-lit-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: contract \'ST000000000000000000002AMW42H.pox-4\' has no public function \'missing-func\') [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2038, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 5, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 2038, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_non_function_application.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_non_function_application.snap new file mode 100644 index 0000000000..e0ae1a74c1 --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_non_function_application.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "a78f8b097673c6e4caf19547688c1fb1a8d8ea4bf67c6d4d5e596747de8ff3fb", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: non-function-appl-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: expecting expression of type function) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 747, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 747, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "e8aa3d0e16ca34ded03681089c0c15ab1aff0b3982a4fb6a0f0f875cedf1127e", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: non-function-appl-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: expecting expression of type function) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 747, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 747, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "56cc76a5087f262cd1721f240a61445b0e3eba8e5d5d8642f2e883cb0a74b93d", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: non-function-appl-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: expecting expression of type function) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 747, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 747, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "c911fa1b8335d04dc83c7b0b667140c64a49d9fafa7e5c4d0c9083073ccfa5fb", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: non-function-appl-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: expecting expression of type function) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 747, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 0, + write_count: 0, + read_length: 0, + read_count: 0, + runtime: 747, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_unchecked_intermediary_responses.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_unchecked_intermediary_responses.snap new file mode 100644 index 0000000000..7bd428ef98 --- /dev/null +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_unchecked_intermediary_responses.snap @@ -0,0 +1,126 @@ +--- +source: stackslib/src/chainstate/tests/static_analysis_tests.rs +expression: result +--- +[ + Success(ExpectedBlockOutput( + marf_hash: "af2babb480a29a7a27411c6d7eab6701bba4118653a6c5e671bbcbeab8e41c30", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: unchecked-resp-Epoch3_3-Clarity1, code_body: [..], clarity_version: Some(Clarity1))", + vm_error: "Some(:0:0: intermediary responses in consecutive statements must be checked) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 13, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 3222, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 13, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 3222, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "99ce283786172a6120196d348f280b05f272592e6868253b9aebba8eaf1cb8c3", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: unchecked-resp-Epoch3_3-Clarity2, code_body: [..], clarity_version: Some(Clarity2))", + vm_error: "Some(:0:0: intermediary responses in consecutive statements must be checked) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 13, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 3222, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 13, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 3222, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "e641d01dd3308bb0a0130b9031f71d1867bc06edb51814984046f02ab9397231", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: unchecked-resp-Epoch3_3-Clarity3, code_body: [..], clarity_version: Some(Clarity3))", + vm_error: "Some(:0:0: intermediary responses in consecutive statements must be checked) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 13, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 3222, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 13, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 3222, + ), + )), + Success(ExpectedBlockOutput( + marf_hash: "f16744ff5043ca968d177d3c47b3040e80b1b8a158bb3a57a39cd04e46d077ce", + evaluated_epoch: Epoch33, + transactions: [ + ExpectedTransactionOutput( + tx: "SmartContract(name: unchecked-resp-Epoch3_3-Clarity4, code_body: [..], clarity_version: Some(Clarity4))", + vm_error: "Some(:0:0: intermediary responses in consecutive statements must be checked) [NON-CONSENSUS BREAKING]", + return_type: Response(ResponseData( + committed: false, + data: Optional(OptionalData( + data: None, + )), + )), + cost: ExecutionCost( + write_length: 13, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 3222, + ), + ), + ], + total_block_cost: ExecutionCost( + write_length: 13, + write_count: 1, + read_length: 1, + read_count: 1, + runtime: 3222, + ), + )), +] diff --git a/stackslib/src/chainstate/tests/static_analysis_tests.rs b/stackslib/src/chainstate/tests/static_analysis_tests.rs index f12c556d30..804ac90025 100644 --- a/stackslib/src/chainstate/tests/static_analysis_tests.rs +++ b/stackslib/src/chainstate/tests/static_analysis_tests.rs @@ -413,3 +413,182 @@ fn static_check_error_could_not_determine_serialization_type() { (ok (to-consensus-buff? (list first second))))", ); } + +/// CheckErrorKind: [`CheckErrorKind::UncheckedIntermediaryResponses`] +/// Caused by: Intermediate `(ok ...)` expressions inside a `begin` block that are not unwrapped. +/// Outcome: block accepted. +#[test] +fn static_check_error_unchecked_intermediary_responses() { + contract_deploy_consensus_test!( + contract_name: "unchecked-resp", + contract_code: " + (define-public (trigger) + (begin + (ok true) + (ok true)))", + ); +} + +/// CheckErrorKind: [`CheckErrorKind::NoSuchFT`] +/// Caused by: calling `ft-get-balance` with a non-existent FT name. +/// Outcome: block accepted. +#[test] +fn static_check_error_no_such_ft() { + contract_deploy_consensus_test!( + contract_name: "no-such-ft", + contract_code: "(ft-get-balance stackoos tx-sender)", + ); +} + +/// CheckErrorKind: [`CheckErrorKind::NoSuchNFT`] +/// Caused by: calling `nft-get-owner?` with a non-existent NFT name. +/// Outcome: block accepted. +#[test] +fn static_check_error_no_such_nft() { + contract_deploy_consensus_test!( + contract_name: "no-such-nft", + contract_code: r#"(nft-get-owner? stackoos "abc")"#, + ); +} + +/// CheckErrorKind: [`CheckErrorKind::DefineNFTBadSignature`] +/// Caused by: malformed signature in a `(define-non-fungible-token ...)` expression +/// Outcome: block accepted. +#[test] +fn static_check_error_define_nft_bad_signature() { + contract_deploy_consensus_test!( + contract_name: "nft-bad-signature", + contract_code: "(define-non-fungible-token stackaroos integer)", + ); +} + +/// CheckErrorKind: [`CheckErrorKind::BadTokenName`] +/// Caused by: calling `ft-get-balance` with a non-valid token name. +/// Outcome: block accepted. +#[test] +fn static_check_error_bad_token_name() { + contract_deploy_consensus_test!( + contract_name: "bad-token-name", + contract_code: "(ft-get-balance u1234 tx-sender)", + ); +} + +/// CheckErrorKind: [`CheckErrorKind::EmptyTuplesNotAllowed`] +/// Caused by: calling `set-cursor` with an empty tuple. +/// Outcome: block accepted. +#[test] +fn static_check_error_empty_tuples_not_allowed() { + contract_deploy_consensus_test!( + contract_name: "empty-tuples-not", + contract_code: " + (define-private (set-cursor (value (tuple))) + value)", + ); +} + +/// CheckErrorKind: [`CheckErrorKind::NoSuchDataVariable`] +/// Caused by: calling var-get with a non-existent variable. +/// Outcome: block accepted. +#[test] +fn static_check_error_no_such_data_variable() { + contract_deploy_consensus_test!( + contract_name: "no-such-data-var", + contract_code: " + (define-private (get-cursor) + (unwrap! (var-get cursor) 0))", + ); +} + +/// CheckErrorKind: [`CheckErrorKind::NonFunctionApplication`] +/// Caused by: attempt to apply a non-function value as a function. +/// Outcome: block accepted. +#[test] +fn static_check_error_non_function_application() { + contract_deploy_consensus_test!( + contract_name: "non-function-appl", + contract_code: "((lambda (x y) 1) 2 1)", + ); +} + +/// CheckErrorKind: [`CheckErrorKind::ExpectedListApplication`] +/// Caused by: calling append with lhs that is not a list. +/// Outcome: block accepted. +#[test] +fn static_check_error_expected_list_application() { + contract_deploy_consensus_test!( + contract_name: "expected-list-appl", + contract_code: "(append 2 3)", + ); +} + +/// CheckErrorKind: [`CheckErrorKind::NoSuchContract`] +/// Caused by: calling contract-call? with a non-existent contract name. +/// Outcome: block accepted. +#[test] +fn static_check_error_no_such_contract() { + contract_deploy_consensus_test!( + contract_name: "no-such-contract", + contract_code: "(contract-call? 'S1G2081040G2081040G2081040G208105NK8PE5.contract-name test! u1)", + ); +} + +/// CheckErrorKind: [`CheckErrorKind::ContractCallExpectName`] +/// Caused by: calling contract-call? without a contract function name. +/// Outcome: block accepted. +#[test] +fn static_check_error_contract_call_expect_name() { + contract_deploy_consensus_test!( + contract_name: "ccall-expect-name", + contract_code: "(contract-call? 'S1G2081040G2081040G2081040G208105NK8PE5.contract-name u1)", + ); +} + +/// CheckErrorKind: [`CheckErrorKind::ExpectedCallableType`] +/// Caused by: passing a non-callable constant as the contract principal in `contract-call?`. +/// Outcome: block accepted. +/// Note: This error was added in Clarity 2. Clarity 1 will trigger a [`CheckErrorKind::TraitReferenceUnknown`] +#[test] +fn static_check_error_expected_callable_type() { + contract_deploy_consensus_test!( + contract_name: "exp-callable-type", + contract_code: " + (define-constant bad-contract u1) + (contract-call? bad-contract call-me)", + ); +} + +/// CheckErrorKind: [`CheckErrorKind::NoSuchPublicFunction`] +/// Caused by: calling a non-existent public or read-only function on a contract literal. +/// Outcome: block accepted. +#[test] +fn static_check_error_no_such_public_function() { + contract_deploy_consensus_test!( + contract_name: "no-such-pub-func-lit", + // using the pox-4 contract as we know it exists! + contract_code: &format!("(contract-call? '{}.pox-4 missing-func)", boot_code_test_addr()), + ); +} + +/// CheckErrorKind: [`CheckErrorKind::DefaultTypesMustMatch`] +/// Caused by: calling `default-to` with a default value that does not match the expected type. +/// Outcome: block accepted. +#[test] +fn static_check_error_default_types_must_match() { + contract_deploy_consensus_test!( + contract_name: "default-types-must", + contract_code: " + (define-map tokens { id: int } { balance: int }) + (default-to false (get balance (map-get? tokens (tuple (id 0)))))", + ); +} + +/// CheckErrorKind: [`CheckErrorKind::IfArmsMustMatch`] +/// Caused by: calling `if` with arms that do not match the same type. +/// Outcome: block accepted. +#[test] +fn static_check_error_if_arms_must_match() { + contract_deploy_consensus_test!( + contract_name: "if-arms-must-match", + contract_code: "(if true true 1)", + ); +} From 7d8bfb078eac2d2143f483d633856793328f80e7 Mon Sep 17 00:00:00 2001 From: Francesco Leacche Date: Thu, 20 Nov 2025 09:26:37 +0000 Subject: [PATCH 2/2] update snapshots --- ...analysis_tests__static_check_error_bad_token_name.snap | 8 ++++---- ...sts__static_check_error_contract_call_expect_name.snap | 8 ++++---- ...ests__static_check_error_default_types_must_match.snap | 8 ++++---- ...ests__static_check_error_define_nft_bad_signature.snap | 8 ++++---- ...ests__static_check_error_empty_tuples_not_allowed.snap | 8 ++++---- ..._tests__static_check_error_expected_callable_type.snap | 8 ++++---- ...sts__static_check_error_expected_list_application.snap | 8 ++++---- ...ysis_tests__static_check_error_if_arms_must_match.snap | 8 ++++---- ...alysis_tests__static_check_error_no_such_contract.snap | 8 ++++---- ...s_tests__static_check_error_no_such_data_variable.snap | 8 ++++---- ...tic_analysis_tests__static_check_error_no_such_ft.snap | 8 ++++---- ...ic_analysis_tests__static_check_error_no_such_nft.snap | 8 ++++---- ...tests__static_check_error_no_such_public_function.snap | 8 ++++---- ...ests__static_check_error_non_function_application.snap | 8 ++++---- ...atic_check_error_unchecked_intermediary_responses.snap | 8 ++++---- 15 files changed, 60 insertions(+), 60 deletions(-) diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_bad_token_name.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_bad_token_name.snap index 9c0e1ec472..c7786bc487 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_bad_token_name.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_bad_token_name.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "6fc50cfef3fc12b015d46fd7e8e08f2b5ec36418616ce137615896202a16472f", + marf_hash: "3390089ac0826e8e5677d5093fa3d0db6081e88e6a1763017efc763d3cb96b16", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "f967e774dba2864cf5b8b132f72ebb031634348f49a5fce507fa29f09e45fbc1", + marf_hash: "e5cab45ec9a8034bc8deefb862099bc775bad5bfca6bbe8896c5d4b69bd58773", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "2e09cea6000f3fa0890a38d01875a530eb2bb645f7c8a668934f57fe9d18c450", + marf_hash: "dd195890bfe644b746de8f2d27e986a2cc8407929d3e7ca32ce18f1460a40348", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "5c8b9bd5cfc33aa33fe2f4a8995280bbd9e2198e79c158e3d1025d919815b9c8", + marf_hash: "bcc6deb5971a412ffbbf92f64405124ca3e0e0c1408e1da9d3da08d239e003a6", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_contract_call_expect_name.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_contract_call_expect_name.snap index 6d635cce2f..5834dd54aa 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_contract_call_expect_name.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_contract_call_expect_name.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "885ef373bdf13ef6bc97b86a00a378342c3622a453e17aa71d57c6d874dd1b96", + marf_hash: "0baa8536816ea19016addf5641e710546c1337086d00ae90446b95d3cc4fab61", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "44f77962d4e9b472f7ed6131ff9ebd0d23f2f8107b69521a9b4d15d747416f72", + marf_hash: "2ed7c0c0aabed9df7b3fb279db73498156a063af779e047537f15f7d1a4fca97", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "20c4cc17b045db03947256ffea28cd8e71a6724968602f9cb952f642f1925a18", + marf_hash: "8f4226f89fa28f6cac5946c87e70301055d7bd8daf6e32545b99b6437a377940", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "29477dd85a14fc7056a6e26038cfe7d691ff0dcc5e16cbca7773b78278d15e1f", + marf_hash: "e294d7a75b14cf11124d8f842923b3e332b40c3fead74a57e2a224853c7d013b", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_default_types_must_match.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_default_types_must_match.snap index 633dd3c71a..c7807a20c5 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_default_types_must_match.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_default_types_must_match.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "41a1a3db6f67286dfe3551ae85817504c3286f3fbff065a70d5ebb1c211dba84", + marf_hash: "30261957397a00a1facce85f43fffe82dbd7cd0d962c822b904bec0ba1c73af3", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "cc43c0912c6c1a4c74592a91efb26f35550761e8c84450715073f37d49949a3e", + marf_hash: "3fab0f7cac72ffbd9fc0411401bdd99354e87f293ccfcfbe09bfbc9f2d8595a5", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "bbde490b266a95e346363a2db524dd3693aa5074e21e4b39f0f561b2701ede72", + marf_hash: "bdc2a354a99671fecc71486e56ce504660026e6c0b978621499dde9853d21b6b", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "23d2b1311e898373526ce625610a4dfc45efde282fd7345a2fbc851de476a2c3", + marf_hash: "7afcd0b4ec3fe54ff6b1f8d32e9c474a8221b0f26b0d9ffb166e9cfeec30c566", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_define_nft_bad_signature.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_define_nft_bad_signature.snap index ff86ab181e..12e3d493c6 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_define_nft_bad_signature.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_define_nft_bad_signature.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "97bdd398cc2e587a4a544054de83f26b716c28ba576ce0b73baf59227bf34f95", + marf_hash: "9bd61674813ec48aadc6a7e6d0e019dda68271947d89e128ef15fcf0734bc3de", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "385fb89e1cdbf1bb403c45851dd43c4081799ae73e5b74937615d228cbc44235", + marf_hash: "669e41818c99b7f54bf3acc1458387cd2c18ca67ab8830bd32e369f0c08b46ba", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "64cece5f238a1f8ee27ba484701592096af5f63c24765f249b4b37c22e125bce", + marf_hash: "cf975aa3e10d06b9d5870c7fb31b38986d2b4ee0924e03dc0667911cf0e321c5", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "0c220e278d9d1c7240bda8d85bbc0cd49716a74d0dfce0844799b232f2011a90", + marf_hash: "232e11cd51e7cbc9cb6e2990de3a6e4fb8851413ca076c8e7dbf7d08555c4833", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_empty_tuples_not_allowed.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_empty_tuples_not_allowed.snap index 3dff4b81d0..5ce3110c8e 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_empty_tuples_not_allowed.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_empty_tuples_not_allowed.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "ad20ffbe94eddcdefafdd80b658e31e93e0314f7062cc84bcb93bab7df84c933", + marf_hash: "cb65c4db199772d38250885573213cd047ab5a6005280da51ec86ec999d84665", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "7fe981a0b7f707732af6cdf37e92bd8da93a2ccd4fa220525d3777b57fed484d", + marf_hash: "6a06f69ebd26658d76381d2846c87075953cbb1c7ddcdfd335d37d259366d8c9", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "912d9a4bbc2483506c979e8806031046e9f88fdb043ece8c9f30a5ca28f613ae", + marf_hash: "ebf27f692de59977c4e1fac03fef7b137e36686f23efe5be1af381d2e313e607", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "17550097ae5cd0b7ba72a8448fae1f6f1b172bbba194865f1d12d26c43f506f5", + marf_hash: "af00aacdc7c28122ae86a882ff02d4bd78ccad0c58a01a981b223f254dc11dce", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_callable_type.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_callable_type.snap index 45938257c4..81cd43e0d5 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_callable_type.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_callable_type.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "9d0c1846eaa8e36cd81e1486c300b40a4562dc1f31500ce84c3bc467632494b5", + marf_hash: "a15389f8ccd87bba99abda67472f4f01d4d9dc022ed837d0cacaa2c90c4f0c9d", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "1057324662e0f464a09c4c12abe918441013fe6884f43020096902b56577bad7", + marf_hash: "79d2ba599e11ab67599d5e12ff0f1ce97d2fe8dba27e491af1312df9bdc641ed", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "d218007d6218005013e33597d7878d986e09cbc38816174d9920a142e116eb18", + marf_hash: "8f9bef44af35bf3e640ef14cb9a74bd5647541cd288689dcd293f2af4d3a8a34", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "ad247afe1e7ef9cbdbee3a552b46dc1e2ed7ba4f45f28186e3dc07c9a8f960a8", + marf_hash: "3dbb2b083e8b7c6599811b917c06df49a8c9620d1a2dcb9fc9aee8cf2b33e18e", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_list_application.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_list_application.snap index 0fdb531625..c508c19b98 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_list_application.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_expected_list_application.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "3ec1a588162ba6d1f5dff66293892c47e4fee8042ffa965d81620ce8e81dc43a", + marf_hash: "26a7cf9478898f9b24f8aca56188ac912a1e505770bf0c0f15f8a1deeab06c54", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "8b1f6d74289defee9cdc7d654c72e2c3eaf34978aebe647c6fad06a8eb320dfa", + marf_hash: "49c6a767e73a9f036b33fe9846f9c4165f935f3ff66a363488909366eb95bc55", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "fbde759d0b337e2b88faa76428aaa049529cb95c15a8953c45c85c4abddd40fe", + marf_hash: "c3a681a97a0bb1d153d09e92133d4a65d9f2815f447d0a2a13f5a61538d34024", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "fa8676dc6cf429ec0186a31d5b6d54de3c5df2511ef29e852307da9b3ec56edd", + marf_hash: "93519863161a77d5ec36ea36e644215fee98a27813f181c8834b8cf0abd16b97", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_if_arms_must_match.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_if_arms_must_match.snap index 7bcaf8cdf5..16b8efb718 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_if_arms_must_match.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_if_arms_must_match.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "959b74fa7723534df5d5822bfc6a4b65f94aecff60da6ee5fd2fe9e565266fd1", + marf_hash: "68e84be6abc605f8b749ffddc651ac1638855423b92fafc696e2838da89dcf88", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "f25cf84e764734d97abda85e3358055e2831b4dc532ad059687b440539a027c7", + marf_hash: "17d67b2dc90b68061c646dd066a4715e2f94f5f680462d91b38fc0ce1c62aff5", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "249c76c6a665f2782ce4825db716141caf9f28a2ddab0581095fa2c1bb759951", + marf_hash: "1bfef61e9b94cf689c03cea835d26f747d6bb009923a1d6648747f69bc24fb5a", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "8355bf1c30274109ebd01d92e5cce0cd70eb93eae2e31992b2c6c318a62af7b9", + marf_hash: "974ef8d241da5da9690a045ee8c8584f1977711c3f6a9b28ac27e2f0304fc451", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_contract.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_contract.snap index d223a55106..7095eed2ff 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_contract.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_contract.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "ad20ffbe94eddcdefafdd80b658e31e93e0314f7062cc84bcb93bab7df84c933", + marf_hash: "cb65c4db199772d38250885573213cd047ab5a6005280da51ec86ec999d84665", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "479789e6a7469b862c830ed7c6e5205495e9efbfa4214748c3800b1977a0fecd", + marf_hash: "f7316094315e5d5ac178cc4fbf95341c5881e8c61edb52f645dbf7cdd67feb18", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "58baa97a27a2299f98d103c264d451c2ef63395891c1772b5c7abf21cd2e7b99", + marf_hash: "fd98f918d2b6d52ef0aea257587312a017f213dce48a4bf091571535020c5004", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "15e929ccd58437813650b09eaa40c5b06043ed84712be41e43dbb5837601994c", + marf_hash: "3bde921adb5ec8f2bc5923735cfbba7a51199a2326bd36274088d7e3c85a61e8", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_data_variable.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_data_variable.snap index 154a1ccdc7..a79095c6fd 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_data_variable.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_data_variable.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "89a2466377702f837fc64c085df66eba661492eab616e4f4e20015d969b376a5", + marf_hash: "8d004a3557c0396f4fc38d9ce6bf700be2d07f6afab03f03ff4e97ab98fe0f01", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "06606348669526e2db379d56574e1747a763b5a7ba9edfb793d3a21e6b9d80d3", + marf_hash: "b2566dfa83802a5f0ceb47dd31cc69cfbac9066e5727b47b83480ba4efed56dd", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "ac90adbb2e0441c9b4fb1e35263d4b55456e78fdecde8bcc01b37c56a8b37bd2", + marf_hash: "8c609a64eaa93fbf5e7a54b4874deb11c4b1d14c5b86ff131e8a27eb979197d3", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "bc174e4840108c03123e9e79d7cd9e12c732b31fcd0942abeb681a8bd5bcc6f8", + marf_hash: "391d634f78731f647f3b224224b5a2934778aaf0a2330453469f91c951c4abe2", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_ft.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_ft.snap index 9408d0cb65..66a74dafeb 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_ft.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_ft.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "0b7ad43ce5bf830f058036bb6086ca6f74a201d679705b56795f7eb69809f818", + marf_hash: "ffa3b803b8f265d11fba465d54eccf469db85763d8f9158d759d670d18eb876a", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "f25609bfe7cc498597a4acf324d33ef2118554c25b65af2c497ff281064322cf", + marf_hash: "2a8ef23dd15fa90350e9435cc60f2eb1b638cc22e6465301ae951fae64fad714", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "19140edb49a19ade70b7cc4012b6320a6248e973414b2500ee15854e281d5fee", + marf_hash: "55d35c7909bcbb26fef287cdb3a6a370d6d835d898dbffd3161145cff2cfb0a3", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "9a5dbed94f6721f1d5873852c6d96570e85640d9d6dcfd5bb0cd96fd179ff963", + marf_hash: "68dfd25e2274ddc5a37d8df70aff670b46cf18c51870521cacc1375b9f904ea0", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_nft.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_nft.snap index f5e90d516b..537d945bd8 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_nft.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_nft.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "41257b14ba9d02ff86ff22be41fa5460dfd8071d60c167e9419df23fe97dec1b", + marf_hash: "56fa04cf02387fdc8e68b68ad163927126a2928ac81eb1bb1605a3399017304d", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "5ff15cd53712c90e79e296cd27811cbc5969ad0fe27d86e0b0371b5d534b3d18", + marf_hash: "86b2d758ddee687dc42948d4dfd0ed94a5c109831e5383b28708f3c196b2f4b0", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "6c5ad49de671fbebd8387b5c7e7c1458f73bb0a2ac318b788ae59129918662f4", + marf_hash: "fc7ff58c3d0860ee7a0b3e223c5e39924eb53180f8be38ee64f733dc1648d256", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "76f3c47840ad328480e75a5744bba2e03179459129f4121e5857129b7d105d7f", + marf_hash: "56c0870f17b38ae5fc0c0c1c6f4fa8176bf487be70f393ceb92199e9ee898b2e", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_public_function.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_public_function.snap index 5991cf3994..d0c4a8eae2 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_public_function.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_no_such_public_function.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "56c84c4dd86c9d8cc34a5af9d3f8db1096cbd2dd259a286f9b70b010b5f814e6", + marf_hash: "ef8ca5e533b17f2746804c4ead9de18b1a04cb18dabe4c1c8d309a19628912e4", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "8bde3e0ab96f56f44665283cc256831f8755f6e54fd9167ee70d38f3b68dafdd", + marf_hash: "1478b5991938a292f48ad6c99d4c73c249fcb6d204bd8767f24ec6552706d872", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "a5ea3c27ae27386fd0539fc9c06c175fb39cb21581d80480ae5cd8998eb205b0", + marf_hash: "8b43ac26e0f5478ea5eee07b9ba210b5612a44b9790bc78e41c04d218df02e09", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "b73ba5d9a9405240180da5a238d8f675ca89c3ab4678f6a35ed1d58b1fb93716", + marf_hash: "fc35fc956ded04bc69eeed04007653a9f1bad12a06a9a86c5149e7454639e8a8", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_non_function_application.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_non_function_application.snap index e0ae1a74c1..da45c82d90 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_non_function_application.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_non_function_application.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "a78f8b097673c6e4caf19547688c1fb1a8d8ea4bf67c6d4d5e596747de8ff3fb", + marf_hash: "a1ba1c6711af9225754f4503aaa15ea11c8b043513b5630c32582be50ebf43a3", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "e8aa3d0e16ca34ded03681089c0c15ab1aff0b3982a4fb6a0f0f875cedf1127e", + marf_hash: "5e191be88410092614da6257b0ba35c94719661e187b6b4be0afa3ed6a56e729", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "56cc76a5087f262cd1721f240a61445b0e3eba8e5d5d8642f2e883cb0a74b93d", + marf_hash: "52f92f4990c2752eb3131f983126a2697b432f47c51876376b92c7e996c10d3b", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "c911fa1b8335d04dc83c7b0b667140c64a49d9fafa7e5c4d0c9083073ccfa5fb", + marf_hash: "ea5433d4326b513d4b121aa290241c3bc36f3aa889e6f872244a118b49b29bfd", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( diff --git a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_unchecked_intermediary_responses.snap b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_unchecked_intermediary_responses.snap index 7bd428ef98..225c1d5e12 100644 --- a/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_unchecked_intermediary_responses.snap +++ b/stackslib/src/chainstate/tests/snapshots/blockstack_lib__chainstate__tests__static_analysis_tests__static_check_error_unchecked_intermediary_responses.snap @@ -4,7 +4,7 @@ expression: result --- [ Success(ExpectedBlockOutput( - marf_hash: "af2babb480a29a7a27411c6d7eab6701bba4118653a6c5e671bbcbeab8e41c30", + marf_hash: "44404afb73f927ad02e570b5189847084801458e4a8b68eb1a92273c0e13794d", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -34,7 +34,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "99ce283786172a6120196d348f280b05f272592e6868253b9aebba8eaf1cb8c3", + marf_hash: "53ee0e161ae3c99502b61b1cbc75b70a26a85fc67cb805285de2deedd4a0632b", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -64,7 +64,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "e641d01dd3308bb0a0130b9031f71d1867bc06edb51814984046f02ab9397231", + marf_hash: "60a072c35aa07afd9656cd0d3413cf1e16996dd2dea5fd36fb6ea92aee76772e", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput( @@ -94,7 +94,7 @@ expression: result ), )), Success(ExpectedBlockOutput( - marf_hash: "f16744ff5043ca968d177d3c47b3040e80b1b8a158bb3a57a39cd04e46d077ce", + marf_hash: "264a55159341b88b30fa5c70c3cc965bc92e237fdefbadd1a788a7d51ca49787", evaluated_epoch: Epoch33, transactions: [ ExpectedTransactionOutput(