Skip to content

Bump to P27, CAP-0071 XDR, and add feature for xdr#1678

Merged
sisuresh merged 4 commits intomainfrom
cap71-xdr-test
Apr 11, 2026
Merged

Bump to P27, CAP-0071 XDR, and add feature for xdr#1678
sisuresh merged 4 commits intomainfrom
cap71-xdr-test

Conversation

@sisuresh
Copy link
Copy Markdown
Contributor

@sisuresh sisuresh commented Apr 8, 2026

What

This PR bumps env to p27, and adapts to the new xdr framework with ifdefs (https://github.com/stellar/pod-fsr/issues/12). It doesn't actually implement CAP-0071.

@socket-security
Copy link
Copy Markdown

socket-security bot commented Apr 8, 2026

No dependency changes detected. Learn more about Socket for GitHub.

👍 No dependency changes detected in pull request

@sisuresh
Copy link
Copy Markdown
Contributor Author

Not sure why, but CodeQL is failing on existing test code.

@sisuresh sisuresh marked this pull request as ready for review April 10, 2026 16:43
@sisuresh sisuresh requested review from dmkozh and graydon as code owners April 10, 2026 16:43
Copilot AI review requested due to automatic review settings April 10, 2026 16:43
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Updates the Soroban environment to protocol 27/28 metadata and aligns the codebase with the newer stellar-xdr framework, adding feature flags needed for CAP-0071/XDR-related experimentation and refreshing golden “observation” fixtures.

Changes:

  • Add numerous protocol-27 observation JSON fixtures for dispatch/crypto/address/bytes/budget tests.
  • Adjust env metadata protocol versions (curr → 27, next → 28) and update the xdr re-export approach.
  • Add cap_0071 / test_feature feature plumbing and switch stellar-xdr workspace dependency to a pinned git revision.

Reviewed changes

Copilot reviewed 192 out of 856 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_obj_to_u128_lo64_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_obj_to_u128_hi64_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_obj_to_i64_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_obj_to_i256_lo_lo_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_obj_to_i256_lo_hi_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_obj_to_i256_hi_lo_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_obj_to_i256_hi_hi_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_obj_to_i128_lo64_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_obj_to_i128_hi64_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_map_values_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_map_val_by_pos_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_map_put_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_map_len_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_map_keys_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_map_key_by_pos_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_map_has_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_map_get_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_map_del_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_i256_val_from_be_bytes_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_get_id_from_muxed_address_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_get_contract_id_arg_1.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_get_contract_id_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_get_asset_contract_id_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_get_address_executable_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_duration_obj_to_u64_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_deserialize_from_bytes_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_create_contract_arg_2.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_create_contract_arg_1.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_create_contract_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_create_asset_contract_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_contract_event_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_compute_hash_sha256_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_compute_hash_keccak256_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_call_arg_2.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_call_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_to_string_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_slice_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_put_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_push_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_pop_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_len_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_insert_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_get_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_front_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_del_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_copy_to_linear_memory_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_back_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_append_arg_1.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bytes_append_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bn254_g1_mul_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bn254_g1_msm_arg_1.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bn254_g1_is_on_curve_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bn254_g1_add_arg_1.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bn254_g1_add_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_bls12_381_g2_is_on_curve_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_authorize_as_curr_contract_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__invalid_object_handle_address_to_strkey_arg_0.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__dispatch__dispatch_with_wrong_arg_type_obj_cmp.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__depth_limit__deep_scval_to_host_val.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__depth_limit__deep_host_obj_clone.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__crypto__sha256_test.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__crypto__recover_ecdsa_secp256k1_key_test.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__crypto__keccak256_test.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bytes__test_malformed_xdr_decoding.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bytes__instantiate_oversized_bytes_from_slice.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bytes__bytes_slice_start_greater_than_len.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bytes__bytes_slice_start_greater_than_end.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bytes__bytes_slice_start_equal_len.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bytes__bytes_put_out_of_bound.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__budget_metering__xdr_object_conversion.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bn254__test_bn254_g2_deserialize_rejects_y_sign_bit.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bn254__test_bn254_g2_deserialize_rejects_infinity_bit.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bn254__test_bn254_g1_deserialize_rejects_infinity_bit.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bn254__hardcoded_serialization.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bn254__g1_pairing_hardcoded.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bn254__g1_add_mul_hardcoded.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bls12_381__g2_mul.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__bls12_381__g1_mul.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__basic__u64_roundtrip.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__basic__u32_as_seen_by_host.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__basic__tuple_roundtrip.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__basic__i64_roundtrip.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__basic__i32_as_seen_by_host.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__basic__f32_does_not_work.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__address__test_muxed_address_to_components_conversion.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__address__test_muxed_address_strkey_conversions.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__address__test_invalid_muxed_address_object_conversions.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__address__test_invalid_address_object_conversions.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__address__test_contract_address_conversions_with_muxed_address.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__address__test_contract_address_conversions.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__address__test_account_address_conversions_with_muxed_address.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__address__test_account_address_conversions.json Add/update protocol-27 observation fixture
soroban-env-host/observations/27/test__address__invalid_muxed_address_to_strkey_conversion.json Add/update protocol-27 observation fixture
soroban-env-host/Cargo.toml Add feature flags to thread CAP-0071/XDR feature toggles
soroban-env-common/src/meta.rs Bump protocol version constants for curr/next
soroban-env-common/src/lib.rs Change how stellar_xdr is re-exported as xdr
soroban-env-common/Cargo.toml Add feature flags mapping to stellar-xdr features
Cargo.toml Switch workspace stellar-xdr dependency to git+rev

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@sisuresh sisuresh requested a review from dmkozh April 10, 2026 21:55
@sisuresh sisuresh added this pull request to the merge queue Apr 11, 2026
Merged via the queue into main with commit 6f5f001 Apr 11, 2026
20 checks passed
@sisuresh sisuresh deleted the cap71-xdr-test branch April 11, 2026 00:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants