@layerzerolabs/protocol-stellar-v2 0.2.21 → 0.2.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +347 -271
- package/.turbo/turbo-lint.log +277 -208
- package/.turbo/turbo-test.log +1700 -1370
- package/Cargo.lock +22 -51
- package/Cargo.toml +6 -1
- package/contracts/common-macros/src/auth.rs +10 -9
- package/contracts/common-macros/src/contract_ttl.rs +1 -4
- package/contracts/common-macros/src/error.rs +1 -3
- package/contracts/common-macros/src/lib.rs +65 -61
- package/contracts/common-macros/src/storage.rs +212 -65
- package/contracts/common-macros/src/tests/auth.rs +75 -6
- package/contracts/common-macros/src/tests/contract_ttl.rs +383 -350
- package/contracts/common-macros/src/tests/error.rs +9 -21
- package/contracts/common-macros/src/tests/lz_contract.rs +80 -0
- package/contracts/common-macros/src/tests/mod.rs +2 -0
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +20 -3
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +28 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +8 -43
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +6 -29
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__lz_contract__snapshot_generated_lz_contract_code.snap +31 -0
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_extendable__snapshot_generated_ttl_extendable_code.snap +8 -0
- package/contracts/common-macros/src/tests/storage/extract_fields.rs +87 -0
- package/contracts/common-macros/src/tests/storage/gen_accessor_methods.rs +223 -0
- package/contracts/common-macros/src/tests/storage/gen_args.rs +65 -0
- package/contracts/common-macros/src/tests/storage/gen_enum_variant.rs +78 -0
- package/contracts/common-macros/src/tests/storage/gen_key.rs +108 -0
- package/contracts/common-macros/src/tests/storage/gen_params.rs +105 -0
- package/contracts/common-macros/src/tests/{storage.rs → storage/generate_storage.rs} +54 -129
- package/contracts/common-macros/src/tests/storage/is_primitive_type.rs +48 -0
- package/contracts/common-macros/src/tests/storage/mod.rs +16 -0
- package/contracts/common-macros/src/tests/storage/parse_default.rs +164 -0
- package/contracts/common-macros/src/tests/storage/parse_name.rs +159 -0
- package/contracts/common-macros/src/tests/storage/parse_no_ttl_extension.rs +124 -0
- package/contracts/common-macros/src/tests/storage/parse_storage_type.rs +174 -0
- package/contracts/common-macros/src/tests/storage/snapshots/common_macros__tests__storage__generate_storage__snapshot_generated_storage_code.snap +412 -0
- package/contracts/common-macros/src/tests/storage/storage_kind.rs +39 -0
- package/contracts/common-macros/src/tests/storage/test_setup.rs +25 -0
- package/contracts/common-macros/src/tests/storage/validate_attrs.rs +138 -0
- package/contracts/common-macros/src/tests/storage/variant_config.rs +226 -0
- package/contracts/common-macros/src/tests/test_helpers.rs +4 -10
- package/contracts/common-macros/src/tests/ttl_configurable.rs +2 -2
- package/contracts/common-macros/src/tests/ttl_extendable.rs +32 -0
- package/contracts/common-macros/src/tests/upgradeable.rs +118 -2
- package/contracts/common-macros/src/ttl_configurable.rs +1 -4
- package/contracts/common-macros/src/upgradeable.rs +21 -3
- package/contracts/endpoint-v2/Cargo.toml +0 -4
- package/contracts/endpoint-v2/src/endpoint_v2.rs +37 -17
- package/contracts/endpoint-v2/src/errors.rs +26 -1
- package/contracts/endpoint-v2/src/interfaces/layerzero_endpoint_v2.rs +1 -1
- package/contracts/endpoint-v2/src/interfaces/message_lib_manager.rs +4 -4
- package/contracts/endpoint-v2/src/interfaces/messaging_composer.rs +2 -2
- package/contracts/endpoint-v2/src/lib.rs +0 -1
- package/contracts/endpoint-v2/src/message_lib_manager.rs +39 -8
- package/contracts/endpoint-v2/src/messaging_channel.rs +36 -4
- package/contracts/endpoint-v2/src/messaging_composer.rs +18 -4
- package/contracts/endpoint-v2/src/storage.rs +9 -1
- package/contracts/endpoint-v2/src/tests/endpoint_setup.rs +2 -2
- package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +1 -1
- package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +3 -3
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +5 -5
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +2 -2
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +5 -5
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +3 -3
- package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +1 -1
- package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +4 -3
- package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +7 -2
- package/contracts/endpoint-v2/src/tests/messaging_composer/mod.rs +4 -0
- package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +7 -2
- package/contracts/layerzero-views/src/layerzero_view.rs +0 -1
- package/contracts/layerzero-views/src/tests/mod.rs +1 -0
- package/contracts/layerzero-views/src/tests/types_tests.rs +31 -0
- package/contracts/layerzero-views/src/types.rs +2 -3
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/constructor.rs +61 -0
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_impl_ttl_extension.rs +97 -0
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_trait_ttl_extension.rs +99 -0
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/mod.rs +3 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/mod.rs +5 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_default.rs +86 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig.rs +47 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig_upgradeable.rs +77 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable.rs +114 -0
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable_no_migration.rs +105 -0
- package/contracts/macro-integration-tests/tests/runtime/multisig/admin_entrypoints.rs +242 -0
- package/contracts/macro-integration-tests/tests/runtime/multisig/mod.rs +9 -0
- package/contracts/macro-integration-tests/tests/runtime/multisig/self_auth.rs +54 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/initialization.rs +13 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +1 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/ownership_transfer.rs +70 -1
- package/contracts/macro-integration-tests/tests/runtime/ownable/two_step_transfer.rs +219 -0
- package/contracts/macro-integration-tests/tests/runtime/storage/keyed_roundtrip.rs +41 -0
- package/contracts/macro-integration-tests/tests/runtime/storage/ttl_extension.rs +48 -16
- package/contracts/macro-integration-tests/tests/runtime/storage/unkeyed_roundtrip.rs +10 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +96 -3
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +4 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/extend_instance_ttl.rs +64 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/mod.rs +16 -0
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/migrate_guard_and_state.rs +305 -0
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/mod.rs +3 -0
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/no_migration.rs +59 -0
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/upgrade_then_migrate.rs +88 -0
- package/contracts/macro-integration-tests/tests/runtime.rs +5 -0
- package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.rs +6 -0
- package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/contract_impl/pass/basic.rs +102 -0
- package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.rs +6 -0
- package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/contract_trait/pass/basic.rs +83 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/error/pass/basic.rs +22 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.rs +6 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.stderr +20 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.stderr +86 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/basic.rs +45 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig.rs +34 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig_upgradeable.rs +30 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable.rs +39 -0
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_no_migration.rs +28 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.stderr +12 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.stderr +5 -0
- package/contracts/macro-integration-tests/tests/ui/multisig/pass/basic.rs +49 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.rs +19 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.stderr +12 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.rs +1 -1
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +0 -8
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/basic.rs +39 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +7 -1
- package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.stderr +1 -1
- package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.stderr +1 -1
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.stderr +1 -1
- package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.rs +13 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/api_surface.rs +102 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/basic.rs +43 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/multi_key.rs +38 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.rs +14 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.stderr +71 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/{minimal_contract.rs → basic.rs} +2 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/multisig_contract.rs +28 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/ownable_contract.rs +32 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/basic.rs +23 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/no_user_contractimpl.rs +21 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.stderr +29 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.stderr +71 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.stderr +79 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.rs +8 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/basic.rs +43 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/multisig_contract.rs +35 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_migration.rs +30 -0
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_user_contractimpl.rs +29 -0
- package/contracts/macro-integration-tests/tests/ui_contract_impl.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui_contract_trait.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui_lz_contract.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui_multisig.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui_ttl_extendable.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui_upgradeable.rs +11 -0
- package/contracts/message-libs/blocked-message-lib/Cargo.toml +1 -1
- package/contracts/message-libs/blocked-message-lib/src/lib.rs +4 -1
- package/contracts/message-libs/blocked-message-lib/src/tests/blocked_message_lib_tests.rs +108 -0
- package/contracts/message-libs/blocked-message-lib/src/tests/mod.rs +4 -0
- package/contracts/message-libs/blocked-message-lib/src/tests/setup.rs +40 -0
- package/contracts/message-libs/simple-message-lib/src/lib.rs +1 -1
- package/contracts/message-libs/simple-message-lib/src/tests/mod.rs +2 -0
- package/contracts/message-libs/simple-message-lib/src/tests/setup.rs +124 -0
- package/contracts/message-libs/simple-message-lib/src/tests/simple_message_lib_tests.rs +309 -0
- package/contracts/message-libs/uln-302/src/errors.rs +21 -0
- package/contracts/message-libs/uln-302/src/interfaces/receive_uln.rs +1 -1
- package/contracts/message-libs/uln-302/src/receive_uln.rs +6 -4
- package/contracts/message-libs/uln-302/src/send_uln.rs +15 -6
- package/contracts/message-libs/uln-302/src/storage.rs +5 -5
- package/contracts/message-libs/uln-302/src/tests/uln302/get_config.rs +71 -0
- package/contracts/message-libs/uln-302/src/tests/uln302/mod.rs +1 -0
- package/contracts/message-libs/uln-302/src/uln302.rs +3 -0
- package/contracts/oapps/counter/Cargo.toml +2 -0
- package/contracts/oapps/counter/integration_tests/mod.rs +1 -0
- package/contracts/oapps/counter/integration_tests/setup_sml.rs +6 -4
- package/contracts/oapps/counter/integration_tests/setup_uln.rs +12 -5
- package/contracts/oapps/counter/integration_tests/test_with_blocked.rs +67 -0
- package/contracts/oapps/counter/src/tests/mod.rs +1 -0
- package/contracts/oapps/counter/src/tests/test_u256_ext.rs +48 -0
- package/contracts/oapps/oapp/src/lib.rs +0 -3
- package/contracts/oapps/oapp/src/tests/mod.rs +1 -0
- package/contracts/oapps/oft/integration-tests/setup.rs +2 -3
- package/contracts/oapps/oft/src/lib.rs +3 -0
- package/contracts/oapps/oft/src/tests/extensions/mod.rs +3 -0
- package/contracts/oapps/oft/src/tests/extensions/oft_fee.rs +240 -0
- package/contracts/oapps/oft/src/tests/extensions/pausable.rs +141 -0
- package/contracts/oapps/oft/src/tests/extensions/rate_limiter.rs +447 -0
- package/contracts/oapps/oft/src/tests/mod.rs +2 -0
- package/contracts/oapps/oft/src/tests/oft_types/lock_unlock.rs +180 -0
- package/contracts/oapps/oft/src/tests/oft_types/mod.rs +1 -0
- package/contracts/oapps/oft-core/integration-tests/setup.rs +2 -3
- package/contracts/oapps/oft-core/src/lib.rs +2 -2
- package/contracts/oapps/oft-core/src/tests/mod.rs +1 -1
- package/contracts/oapps/oft-core/src/tests/{test_oft_version.rs → test_oft_version_and_approval.rs} +9 -0
- package/contracts/oapps/oft-core/src/tests/test_utils.rs +0 -43
- package/contracts/upgrader/src/tests/test_upgrader.rs +18 -0
- package/contracts/utils/src/auth.rs +2 -2
- package/contracts/utils/src/buffer_reader.rs +61 -10
- package/contracts/utils/src/buffer_writer.rs +35 -20
- package/contracts/utils/src/bytes_ext.rs +1 -2
- package/contracts/utils/src/errors.rs +5 -3
- package/contracts/utils/src/multisig.rs +59 -36
- package/contracts/utils/src/option_ext.rs +3 -3
- package/contracts/utils/src/ownable.rs +12 -6
- package/contracts/utils/src/tests/auth.rs +179 -0
- package/contracts/utils/src/tests/buffer_reader.rs +203 -1
- package/contracts/utils/src/tests/buffer_writer.rs +176 -5
- package/contracts/utils/src/tests/mod.rs +2 -0
- package/contracts/utils/src/tests/multisig.rs +170 -141
- package/contracts/utils/src/tests/option_ext.rs +1 -1
- package/contracts/utils/src/tests/ownable.rs +156 -161
- package/contracts/utils/src/tests/test_helper.rs +21 -1
- package/contracts/utils/src/tests/testing_utils.rs +84 -2
- package/contracts/utils/src/tests/ttl_configurable.rs +66 -86
- package/contracts/utils/src/tests/ttl_extendable.rs +64 -0
- package/contracts/utils/src/tests/upgradeable.rs +115 -6
- package/contracts/utils/src/ttl_configurable.rs +22 -12
- package/contracts/utils/src/ttl_extendable.rs +1 -3
- package/contracts/utils/src/upgradeable.rs +21 -24
- package/contracts/workers/dvn/src/auth.rs +1 -1
- package/contracts/workers/dvn/src/interfaces/dvn.rs +2 -2
- package/contracts/workers/dvn/src/storage.rs +1 -1
- package/contracts/workers/dvn/src/tests/auth.rs +136 -3
- package/contracts/workers/dvn/src/tests/mod.rs +0 -1
- package/contracts/workers/dvn/src/tests/setup.rs +4 -10
- package/contracts/workers/executor-helper/src/tests/executor_helper.rs +279 -0
- package/contracts/workers/executor-helper/src/tests/setup.rs +106 -1
- package/contracts/workers/worker/src/worker.rs +1 -1
- package/docs/oft-guide.md +5 -5
- package/package.json +5 -7
- package/sdk/.turbo/turbo-test.log +662 -466
- package/sdk/LICENSE +23 -0
- package/sdk/dist/generated/bml.d.ts +101 -106
- package/sdk/dist/generated/bml.js +108 -26
- package/sdk/dist/generated/counter.d.ts +123 -484
- package/sdk/dist/generated/counter.js +103 -25
- package/sdk/dist/generated/dvn.d.ts +141 -699
- package/sdk/dist/generated/dvn.js +106 -28
- package/sdk/dist/generated/dvn_fee_lib.d.ts +31 -248
- package/sdk/dist/generated/dvn_fee_lib.js +27 -24
- package/sdk/dist/generated/endpoint.d.ts +158 -836
- package/sdk/dist/generated/endpoint.js +107 -29
- package/sdk/dist/generated/executor.d.ts +139 -671
- package/sdk/dist/generated/executor.js +106 -28
- package/sdk/dist/generated/executor_fee_lib.d.ts +109 -264
- package/sdk/dist/generated/executor_fee_lib.js +106 -28
- package/sdk/dist/generated/executor_helper.d.ts +95 -92
- package/sdk/dist/generated/executor_helper.js +103 -25
- package/sdk/dist/generated/layerzero_view.d.ts +178 -335
- package/sdk/dist/generated/layerzero_view.js +172 -33
- package/sdk/dist/generated/oft.d.ts +137 -680
- package/sdk/dist/generated/oft.js +103 -25
- package/sdk/dist/generated/price_feed.d.ts +45 -444
- package/sdk/dist/generated/price_feed.js +27 -24
- package/sdk/dist/generated/sml.d.ts +119 -428
- package/sdk/dist/generated/sml.js +103 -25
- package/sdk/dist/generated/treasury.d.ts +109 -288
- package/sdk/dist/generated/treasury.js +103 -25
- package/sdk/dist/generated/uln302.d.ts +190 -527
- package/sdk/dist/generated/uln302.js +170 -31
- package/sdk/dist/generated/upgrader.d.ts +14 -34
- package/sdk/dist/generated/upgrader.js +24 -21
- package/sdk/package.json +3 -4
- package/sdk/test/counter-sml.test.ts +218 -142
- package/sdk/test/counter-uln.test.ts +189 -145
- package/sdk/test/oft-sml.test.ts +173 -156
- package/sdk/test/suites/constants.ts +7 -1
- package/sdk/test/suites/globalSetup.ts +140 -74
- package/sdk/turbo.json +1 -1
- package/tools/ts-bindings-gen/Cargo.toml +4 -4
- package/tools/ts-bindings-gen/src/main.rs +4 -0
- package/turbo.json +3 -0
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__storage__snapshot_generated_storage_code.snap +0 -1072
- package/contracts/endpoint-v2/src/constants.rs +0 -52
- package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/error/pass/attr_on_variant_allowed.rs +0 -20
- package/contracts/macro-integration-tests/tests/ui/error/pass/basic_auto_discriminants.rs +0 -15
- package/contracts/macro-integration-tests/tests/ui/error/pass/mixed_discriminants.rs +0 -16
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/minimal_contract.rs +0 -26
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +0 -21
- package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/pass/default_value_on_variant.rs +0 -14
- package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_instance_unit_basic.rs +0 -14
- package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_persistent_named_fields_keyed.rs +0 -16
- package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_temporary_unit_option.rs +0 -15
- package/contracts/macro-integration-tests/tests/ui/storage/pass/name_override.rs +0 -14
- package/contracts/macro-integration-tests/tests/ui/storage/pass/no_auto_ttl_extension.rs +0 -19
- package/contracts/macro-integration-tests/tests/ui/storage/pass/ttl_provider_basic.rs +0 -15
- package/contracts/message-libs/simple-message-lib/src/test.rs +0 -280
- package/contracts/oapps/oapp/src/macro_tests/mod.rs +0 -1
- package/contracts/workers/dvn/src/tests/multisig/mod.rs +0 -3
- package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +0 -132
- package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +0 -109
- package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +0 -106
- /package/contracts/oapps/oapp/src/{macro_tests → tests}/test_macros.rs +0 -0
|
@@ -27,7 +27,13 @@ export const DVN_SIGNER = new Secp256k1KeyPair(
|
|
|
27
27
|
// DVN configuration
|
|
28
28
|
export const DVN_VID = 1;
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
// Two-chain EIDs for cross-chain testing
|
|
31
|
+
export const EID_A = 30401; // Chain A
|
|
32
|
+
export const EID_B = 30402; // Chain B
|
|
33
|
+
|
|
34
|
+
// Legacy single EID (kept for backwards compatibility)
|
|
35
|
+
export const EID = EID_A;
|
|
36
|
+
|
|
31
37
|
export const NATIVE_TOKEN_ADDRESS = Asset.native().contractId(NETWORK_PASSPHRASE);
|
|
32
38
|
export const ZRO_ASSET = new Asset('ZRO', DEFAULT_DEPLOYER.publicKey());
|
|
33
39
|
export const ZRO_TOKEN_ADDRESS = ZRO_ASSET.contractId(NETWORK_PASSPHRASE);
|
|
@@ -17,7 +17,8 @@ import {
|
|
|
17
17
|
DEFAULT_DEPLOYER,
|
|
18
18
|
DVN_SIGNER,
|
|
19
19
|
DVN_VID,
|
|
20
|
-
|
|
20
|
+
EID_A,
|
|
21
|
+
EID_B,
|
|
21
22
|
EXECUTOR_ADMIN,
|
|
22
23
|
NATIVE_TOKEN_ADDRESS,
|
|
23
24
|
ZRO_TOKEN_ADDRESS,
|
|
@@ -25,7 +26,11 @@ import {
|
|
|
25
26
|
import { deployContract } from './deploy';
|
|
26
27
|
import { startStellarLocalnet, stopStellarLocalnet } from './localnet';
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Addresses for a single chain's protocol contracts
|
|
31
|
+
*/
|
|
32
|
+
export interface ChainAddresses {
|
|
33
|
+
eid: number;
|
|
29
34
|
endpointV2: string;
|
|
30
35
|
uln302: string;
|
|
31
36
|
sml: string;
|
|
@@ -38,7 +43,10 @@ export interface ProtocolAddresses {
|
|
|
38
43
|
dvn: string;
|
|
39
44
|
}
|
|
40
45
|
|
|
41
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Clients for a single chain's protocol contracts
|
|
48
|
+
*/
|
|
49
|
+
interface ChainClients {
|
|
42
50
|
endpointClient: EndpointClient;
|
|
43
51
|
uln302Client: Uln302Client;
|
|
44
52
|
smlClient: SMLClient;
|
|
@@ -51,21 +59,26 @@ export interface ProtocolClients {
|
|
|
51
59
|
dvnClient: DvnClient;
|
|
52
60
|
}
|
|
53
61
|
|
|
62
|
+
/**
|
|
63
|
+
* Complete chain setup with addresses and clients
|
|
64
|
+
*/
|
|
65
|
+
interface ChainSetup {
|
|
66
|
+
addresses: ChainAddresses;
|
|
67
|
+
clients: ChainClients;
|
|
68
|
+
}
|
|
69
|
+
|
|
54
70
|
// Declare the injection key type for vitest
|
|
55
71
|
declare module 'vitest' {
|
|
56
72
|
export interface ProvidedContext {
|
|
57
|
-
|
|
73
|
+
chainA: ChainAddresses;
|
|
74
|
+
chainB: ChainAddresses;
|
|
58
75
|
}
|
|
59
76
|
}
|
|
60
77
|
|
|
61
78
|
/**
|
|
62
|
-
* Deploy all protocol contracts
|
|
63
|
-
* Returns the deployed contract addresses
|
|
79
|
+
* Deploy all protocol contracts for a single chain
|
|
64
80
|
*/
|
|
65
|
-
async function
|
|
66
|
-
addresses: ProtocolAddresses;
|
|
67
|
-
clients: ProtocolClients;
|
|
68
|
-
}> {
|
|
81
|
+
async function deployChainContracts(eid: number, chainLabel: string): Promise<ChainSetup> {
|
|
69
82
|
const repoRoot = await getFullyQualifiedRepoRootPath();
|
|
70
83
|
const wasmDir = path.join(
|
|
71
84
|
repoRoot,
|
|
@@ -77,7 +90,8 @@ async function deployProtocolContracts(): Promise<{
|
|
|
77
90
|
'release',
|
|
78
91
|
);
|
|
79
92
|
|
|
80
|
-
const addresses:
|
|
93
|
+
const addresses: ChainAddresses = {
|
|
94
|
+
eid,
|
|
81
95
|
endpointV2: '',
|
|
82
96
|
uln302: '',
|
|
83
97
|
sml: '',
|
|
@@ -91,22 +105,22 @@ async function deployProtocolContracts(): Promise<{
|
|
|
91
105
|
};
|
|
92
106
|
|
|
93
107
|
// 1. Deploy Endpoint
|
|
94
|
-
console.log(
|
|
108
|
+
console.log(`🚀 [${chainLabel}] Deploying Endpoint (EID: ${eid})...`);
|
|
95
109
|
const endpointClient = await deployContract<EndpointClient>(
|
|
96
110
|
EndpointClient,
|
|
97
111
|
path.join(wasmDir, 'endpoint_v2.wasm'),
|
|
98
112
|
{
|
|
99
|
-
eid:
|
|
113
|
+
eid: eid,
|
|
100
114
|
owner: DEFAULT_DEPLOYER.publicKey(),
|
|
101
115
|
native_token: NATIVE_TOKEN_ADDRESS,
|
|
102
116
|
},
|
|
103
117
|
DEFAULT_DEPLOYER,
|
|
104
118
|
);
|
|
105
119
|
addresses.endpointV2 = endpointClient.options.contractId;
|
|
106
|
-
console.log(
|
|
120
|
+
console.log(`✅ [${chainLabel}] Endpoint deployed:`, addresses.endpointV2);
|
|
107
121
|
|
|
108
122
|
// 2. Deploy Treasury
|
|
109
|
-
console.log(
|
|
123
|
+
console.log(`🚀 [${chainLabel}] Deploying Treasury...`);
|
|
110
124
|
const treasuryClient = await deployContract<TreasuryClient>(
|
|
111
125
|
TreasuryClient,
|
|
112
126
|
path.join(wasmDir, 'treasury.wasm'),
|
|
@@ -114,10 +128,10 @@ async function deployProtocolContracts(): Promise<{
|
|
|
114
128
|
DEFAULT_DEPLOYER,
|
|
115
129
|
);
|
|
116
130
|
addresses.treasury = treasuryClient.options.contractId;
|
|
117
|
-
console.log(
|
|
131
|
+
console.log(`✅ [${chainLabel}] Treasury deployed:`, addresses.treasury);
|
|
118
132
|
|
|
119
133
|
// 3. Deploy ULN302
|
|
120
|
-
console.log(
|
|
134
|
+
console.log(`🚀 [${chainLabel}] Deploying ULN302...`);
|
|
121
135
|
const uln302Client = await deployContract<Uln302Client>(
|
|
122
136
|
Uln302Client,
|
|
123
137
|
path.join(wasmDir, 'uln302.wasm'),
|
|
@@ -129,10 +143,10 @@ async function deployProtocolContracts(): Promise<{
|
|
|
129
143
|
DEFAULT_DEPLOYER,
|
|
130
144
|
);
|
|
131
145
|
addresses.uln302 = uln302Client.options.contractId;
|
|
132
|
-
console.log(
|
|
146
|
+
console.log(`✅ [${chainLabel}] ULN302 deployed:`, addresses.uln302);
|
|
133
147
|
|
|
134
148
|
// 4. Deploy SML (SimpleMessageLib)
|
|
135
|
-
console.log(
|
|
149
|
+
console.log(`🚀 [${chainLabel}] Deploying SimpleMessageLib...`);
|
|
136
150
|
const smlClient = await deployContract<SMLClient>(
|
|
137
151
|
SMLClient,
|
|
138
152
|
path.join(wasmDir, 'simple_message_lib.wasm'),
|
|
@@ -144,10 +158,10 @@ async function deployProtocolContracts(): Promise<{
|
|
|
144
158
|
DEFAULT_DEPLOYER,
|
|
145
159
|
);
|
|
146
160
|
addresses.sml = smlClient.options.contractId;
|
|
147
|
-
console.log(
|
|
161
|
+
console.log(`✅ [${chainLabel}] SimpleMessageLib deployed:`, addresses.sml);
|
|
148
162
|
|
|
149
163
|
// 5. Deploy Price Feed
|
|
150
|
-
console.log(
|
|
164
|
+
console.log(`🚀 [${chainLabel}] Deploying Price Feed...`);
|
|
151
165
|
const priceFeedClient = await deployContract<PriceFeedClient>(
|
|
152
166
|
PriceFeedClient,
|
|
153
167
|
path.join(wasmDir, 'price_feed.wasm'),
|
|
@@ -158,10 +172,10 @@ async function deployProtocolContracts(): Promise<{
|
|
|
158
172
|
DEFAULT_DEPLOYER,
|
|
159
173
|
);
|
|
160
174
|
addresses.priceFeed = priceFeedClient.options.contractId;
|
|
161
|
-
console.log(
|
|
175
|
+
console.log(`✅ [${chainLabel}] Price Feed deployed:`, addresses.priceFeed);
|
|
162
176
|
|
|
163
177
|
// 6. Deploy Executor Fee Lib
|
|
164
|
-
console.log(
|
|
178
|
+
console.log(`🚀 [${chainLabel}] Deploying Executor Fee Lib...`);
|
|
165
179
|
const executorFeeLibClient = await deployContract<ExecutorFeeLibClient>(
|
|
166
180
|
ExecutorFeeLibClient,
|
|
167
181
|
path.join(wasmDir, 'executor_fee_lib.wasm'),
|
|
@@ -169,10 +183,10 @@ async function deployProtocolContracts(): Promise<{
|
|
|
169
183
|
DEFAULT_DEPLOYER,
|
|
170
184
|
);
|
|
171
185
|
addresses.executorFeeLib = executorFeeLibClient.options.contractId;
|
|
172
|
-
console.log(
|
|
186
|
+
console.log(`✅ [${chainLabel}] Executor Fee Lib deployed:`, addresses.executorFeeLib);
|
|
173
187
|
|
|
174
188
|
// 7. Deploy DVN Fee Lib
|
|
175
|
-
console.log(
|
|
189
|
+
console.log(`🚀 [${chainLabel}] Deploying DVN Fee Lib...`);
|
|
176
190
|
const dvnFeeLibClient = await deployContract<DvnFeeLibClient>(
|
|
177
191
|
DvnFeeLibClient,
|
|
178
192
|
path.join(wasmDir, 'dvn_fee_lib.wasm'),
|
|
@@ -180,10 +194,10 @@ async function deployProtocolContracts(): Promise<{
|
|
|
180
194
|
DEFAULT_DEPLOYER,
|
|
181
195
|
);
|
|
182
196
|
addresses.dvnFeeLib = dvnFeeLibClient.options.contractId;
|
|
183
|
-
console.log(
|
|
197
|
+
console.log(`✅ [${chainLabel}] DVN Fee Lib deployed:`, addresses.dvnFeeLib);
|
|
184
198
|
|
|
185
|
-
// 8. Deploy DVN
|
|
186
|
-
console.log(
|
|
199
|
+
// 8. Deploy DVN (same signer for both chains)
|
|
200
|
+
console.log(`🚀 [${chainLabel}] Deploying DVN...`);
|
|
187
201
|
const dvnClient = await deployContract<DvnClient>(
|
|
188
202
|
DvnClient,
|
|
189
203
|
path.join(wasmDir, 'dvn.wasm'),
|
|
@@ -201,10 +215,10 @@ async function deployProtocolContracts(): Promise<{
|
|
|
201
215
|
DEFAULT_DEPLOYER,
|
|
202
216
|
);
|
|
203
217
|
addresses.dvn = dvnClient.options.contractId;
|
|
204
|
-
console.log(
|
|
218
|
+
console.log(`✅ [${chainLabel}] DVN deployed:`, addresses.dvn);
|
|
205
219
|
|
|
206
220
|
// 9. Deploy Executor Helper
|
|
207
|
-
console.log(
|
|
221
|
+
console.log(`🚀 [${chainLabel}] Deploying Executor Helper...`);
|
|
208
222
|
const executorHelperClient = await deployContract<ExecutorHelperClient>(
|
|
209
223
|
ExecutorHelperClient,
|
|
210
224
|
path.join(wasmDir, 'executor_helper.wasm'),
|
|
@@ -212,10 +226,10 @@ async function deployProtocolContracts(): Promise<{
|
|
|
212
226
|
DEFAULT_DEPLOYER,
|
|
213
227
|
);
|
|
214
228
|
addresses.executorHelper = executorHelperClient.options.contractId;
|
|
215
|
-
console.log(
|
|
229
|
+
console.log(`✅ [${chainLabel}] Executor Helper deployed:`, addresses.executorHelper);
|
|
216
230
|
|
|
217
231
|
// 10. Deploy Executor (supports both ULN302 and SML)
|
|
218
|
-
console.log(
|
|
232
|
+
console.log(`🚀 [${chainLabel}] Deploying Executor...`);
|
|
219
233
|
const whitelist = [
|
|
220
234
|
[addresses.executorHelper, 'native_drop_and_execute'],
|
|
221
235
|
[addresses.executorHelper, 'execute'],
|
|
@@ -238,9 +252,9 @@ async function deployProtocolContracts(): Promise<{
|
|
|
238
252
|
DEFAULT_DEPLOYER,
|
|
239
253
|
);
|
|
240
254
|
addresses.executor = executorClient.options.contractId;
|
|
241
|
-
console.log(
|
|
255
|
+
console.log(`✅ [${chainLabel}] Executor deployed:`, addresses.executor);
|
|
242
256
|
|
|
243
|
-
const clients:
|
|
257
|
+
const clients: ChainClients = {
|
|
244
258
|
endpointClient,
|
|
245
259
|
uln302Client,
|
|
246
260
|
smlClient,
|
|
@@ -257,47 +271,63 @@ async function deployProtocolContracts(): Promise<{
|
|
|
257
271
|
}
|
|
258
272
|
|
|
259
273
|
/**
|
|
260
|
-
* Wire
|
|
274
|
+
* Wire a single chain's protocol contracts for cross-chain communication
|
|
275
|
+
*
|
|
276
|
+
* @param chain - The chain to wire (this chain)
|
|
277
|
+
* @param otherChain - The other chain (for cross-references)
|
|
278
|
+
* @param chainLabel - Label for logging
|
|
261
279
|
*/
|
|
262
|
-
async function
|
|
263
|
-
|
|
264
|
-
|
|
280
|
+
async function wireChainContracts(
|
|
281
|
+
chain: ChainSetup,
|
|
282
|
+
otherChain: ChainSetup,
|
|
283
|
+
chainLabel: string,
|
|
265
284
|
): Promise<void> {
|
|
285
|
+
const { addresses, clients } = chain;
|
|
266
286
|
const { endpointClient, uln302Client, priceFeedClient, executorClient, dvnClient } = clients;
|
|
267
287
|
|
|
268
|
-
|
|
288
|
+
const thisEid = addresses.eid;
|
|
289
|
+
const otherEid = otherChain.addresses.eid;
|
|
290
|
+
|
|
291
|
+
console.log(
|
|
292
|
+
`\n🔗 [${chainLabel}] Wiring protocol contracts (EID: ${thisEid} ↔ ${otherEid})...`,
|
|
293
|
+
);
|
|
269
294
|
|
|
270
295
|
// Register libraries
|
|
271
296
|
await (await endpointClient.register_library({ new_lib: addresses.uln302 })).signAndSend();
|
|
272
297
|
await (await endpointClient.register_library({ new_lib: addresses.sml })).signAndSend();
|
|
273
|
-
console.log(
|
|
298
|
+
console.log(`✅ [${chainLabel}] Libraries registered (ULN302 + SML)`);
|
|
274
299
|
|
|
275
300
|
// Set ZRO token
|
|
276
301
|
await (await endpointClient.set_zro({ zro: ZRO_TOKEN_ADDRESS })).signAndSend();
|
|
277
|
-
console.log(
|
|
302
|
+
console.log(`✅ [${chainLabel}] ZRO token set`);
|
|
303
|
+
|
|
304
|
+
// ========================================================================
|
|
305
|
+
// Configure for SENDING to the other chain (dst_eid = otherEid)
|
|
306
|
+
// ========================================================================
|
|
278
307
|
|
|
279
|
-
//
|
|
308
|
+
// ULN302 executor config for sending to other chain
|
|
280
309
|
await (
|
|
281
310
|
await uln302Client.set_default_executor_configs({
|
|
282
311
|
params: [
|
|
283
312
|
{
|
|
284
|
-
dst_eid:
|
|
313
|
+
dst_eid: otherEid,
|
|
285
314
|
config: { executor: addresses.executor, max_message_size: 10000 },
|
|
286
315
|
},
|
|
287
316
|
],
|
|
288
317
|
})
|
|
289
318
|
).signAndSend();
|
|
290
|
-
console.log(
|
|
319
|
+
console.log(`✅ [${chainLabel}] ULN302 executor config set for dst_eid=${otherEid}`);
|
|
291
320
|
|
|
292
|
-
//
|
|
321
|
+
// ULN302 send config: when sending to otherEid, use THIS chain's DVN for fee quoting
|
|
322
|
+
// (The DVN needs dst_config for the destination EID to calculate fees)
|
|
293
323
|
await (
|
|
294
324
|
await uln302Client.set_default_send_uln_configs({
|
|
295
325
|
params: [
|
|
296
326
|
{
|
|
297
|
-
eid:
|
|
327
|
+
eid: otherEid,
|
|
298
328
|
config: {
|
|
299
329
|
confirmations: 1n,
|
|
300
|
-
required_dvns: [addresses.dvn],
|
|
330
|
+
required_dvns: [addresses.dvn], // THIS chain's DVN (has dst_config for otherEid)
|
|
301
331
|
optional_dvns: [],
|
|
302
332
|
optional_dvn_threshold: 0,
|
|
303
333
|
},
|
|
@@ -305,15 +335,23 @@ async function wireProtocolContracts(
|
|
|
305
335
|
],
|
|
306
336
|
})
|
|
307
337
|
).signAndSend();
|
|
338
|
+
console.log(
|
|
339
|
+
`✅ [${chainLabel}] ULN302 send config set for eid=${otherEid} (DVN: ${addresses.dvn})`,
|
|
340
|
+
);
|
|
341
|
+
|
|
342
|
+
// ========================================================================
|
|
343
|
+
// Configure for RECEIVING from the other chain (src_eid = otherEid)
|
|
344
|
+
// ========================================================================
|
|
308
345
|
|
|
346
|
+
// ULN302 receive config: when receiving from otherEid, THIS chain's DVN verifies
|
|
309
347
|
await (
|
|
310
348
|
await uln302Client.set_default_receive_uln_configs({
|
|
311
349
|
params: [
|
|
312
350
|
{
|
|
313
|
-
eid:
|
|
351
|
+
eid: otherEid,
|
|
314
352
|
config: {
|
|
315
353
|
confirmations: 1n,
|
|
316
|
-
required_dvns: [addresses.dvn],
|
|
354
|
+
required_dvns: [addresses.dvn], // THIS chain's DVN verifies incoming
|
|
317
355
|
optional_dvns: [],
|
|
318
356
|
optional_dvn_threshold: 0,
|
|
319
357
|
},
|
|
@@ -321,22 +359,30 @@ async function wireProtocolContracts(
|
|
|
321
359
|
],
|
|
322
360
|
})
|
|
323
361
|
).signAndSend();
|
|
324
|
-
console.log(
|
|
362
|
+
console.log(
|
|
363
|
+
`✅ [${chainLabel}] ULN302 receive config set for eid=${otherEid} (DVN: ${addresses.dvn})`,
|
|
364
|
+
);
|
|
325
365
|
|
|
326
|
-
//
|
|
366
|
+
// Set default send/receive libraries for the other chain
|
|
327
367
|
await (
|
|
328
|
-
await endpointClient.set_default_send_library({
|
|
368
|
+
await endpointClient.set_default_send_library({
|
|
369
|
+
dst_eid: otherEid,
|
|
370
|
+
new_lib: addresses.uln302,
|
|
371
|
+
})
|
|
329
372
|
).signAndSend();
|
|
330
373
|
await (
|
|
331
374
|
await endpointClient.set_default_receive_library({
|
|
332
|
-
src_eid:
|
|
375
|
+
src_eid: otherEid,
|
|
333
376
|
new_lib: addresses.uln302,
|
|
334
377
|
grace_period: 0n,
|
|
335
378
|
})
|
|
336
379
|
).signAndSend();
|
|
337
|
-
console.log(
|
|
380
|
+
console.log(`✅ [${chainLabel}] Default libraries set to ULN302 for eid=${otherEid}`);
|
|
381
|
+
|
|
382
|
+
// ========================================================================
|
|
383
|
+
// Configure Price Feed for both chains
|
|
384
|
+
// ========================================================================
|
|
338
385
|
|
|
339
|
-
// Configure Price Feed
|
|
340
386
|
await (
|
|
341
387
|
await priceFeedClient.set_price_ratio_denominator({ denominator: 100000000000000000000n })
|
|
342
388
|
).signAndSend();
|
|
@@ -347,13 +393,14 @@ async function wireProtocolContracts(
|
|
|
347
393
|
})
|
|
348
394
|
).signAndSend();
|
|
349
395
|
|
|
350
|
-
|
|
396
|
+
// Set prices for the other chain
|
|
397
|
+
const NORMALIZED_OTHER_EID = otherEid % 30000;
|
|
351
398
|
await (
|
|
352
399
|
await priceFeedClient.set_price({
|
|
353
400
|
price_updater: DEFAULT_DEPLOYER.publicKey(),
|
|
354
401
|
prices: [
|
|
355
402
|
{
|
|
356
|
-
eid:
|
|
403
|
+
eid: NORMALIZED_OTHER_EID,
|
|
357
404
|
price: {
|
|
358
405
|
gas_per_byte: 1,
|
|
359
406
|
gas_price_in_unit: 1n,
|
|
@@ -363,15 +410,18 @@ async function wireProtocolContracts(
|
|
|
363
410
|
],
|
|
364
411
|
})
|
|
365
412
|
).signAndSend();
|
|
366
|
-
console.log(
|
|
413
|
+
console.log(`✅ [${chainLabel}] Price Feed configured for eid=${otherEid}`);
|
|
414
|
+
|
|
415
|
+
// ========================================================================
|
|
416
|
+
// Configure Executor for sending to other chain
|
|
417
|
+
// ========================================================================
|
|
367
418
|
|
|
368
|
-
// Configure Executor
|
|
369
419
|
await (
|
|
370
420
|
await executorClient.set_dst_config({
|
|
371
421
|
admin: DEFAULT_DEPLOYER.publicKey(),
|
|
372
422
|
params: [
|
|
373
423
|
{
|
|
374
|
-
dst_eid:
|
|
424
|
+
dst_eid: otherEid,
|
|
375
425
|
dst_config: {
|
|
376
426
|
floor_margin_usd: 0n,
|
|
377
427
|
lz_compose_base_gas: 50000n,
|
|
@@ -383,15 +433,18 @@ async function wireProtocolContracts(
|
|
|
383
433
|
],
|
|
384
434
|
})
|
|
385
435
|
).signAndSend();
|
|
386
|
-
console.log(
|
|
436
|
+
console.log(`✅ [${chainLabel}] Executor configured for dst_eid=${otherEid}`);
|
|
437
|
+
|
|
438
|
+
// ========================================================================
|
|
439
|
+
// Configure DVN for verifying packets going to other chain
|
|
440
|
+
// ========================================================================
|
|
387
441
|
|
|
388
|
-
// Configure DVN
|
|
389
442
|
await (
|
|
390
443
|
await dvnClient.set_dst_config({
|
|
391
444
|
admin: DEFAULT_DEPLOYER.publicKey(),
|
|
392
445
|
params: [
|
|
393
446
|
{
|
|
394
|
-
dst_eid:
|
|
447
|
+
dst_eid: otherEid,
|
|
395
448
|
config: {
|
|
396
449
|
floor_margin_usd: 0n,
|
|
397
450
|
gas: 100000n,
|
|
@@ -401,14 +454,14 @@ async function wireProtocolContracts(
|
|
|
401
454
|
],
|
|
402
455
|
})
|
|
403
456
|
).signAndSend();
|
|
404
|
-
console.log(
|
|
457
|
+
console.log(`✅ [${chainLabel}] DVN configured for dst_eid=${otherEid}`);
|
|
405
458
|
|
|
406
|
-
console.log(
|
|
459
|
+
console.log(`🎉 [${chainLabel}] Protocol wiring complete!`);
|
|
407
460
|
}
|
|
408
461
|
|
|
409
462
|
/**
|
|
410
463
|
* Vitest Global Setup - runs ONCE before all test files
|
|
411
|
-
*
|
|
464
|
+
* Deploys two complete protocol stacks (Chain A and Chain B) for cross-chain testing
|
|
412
465
|
*/
|
|
413
466
|
export default async function globalSetup({
|
|
414
467
|
provide,
|
|
@@ -420,23 +473,36 @@ export default async function globalSetup({
|
|
|
420
473
|
await startStellarLocalnet();
|
|
421
474
|
|
|
422
475
|
console.log('\n========================================');
|
|
423
|
-
console.log('📦 GLOBAL SETUP: Deploying Protocol Contracts');
|
|
476
|
+
console.log('📦 GLOBAL SETUP: Deploying Protocol Contracts (Two Chains)');
|
|
424
477
|
console.log('========================================\n');
|
|
425
478
|
|
|
426
|
-
|
|
479
|
+
// Deploy Chain A
|
|
480
|
+
console.log('\n--- CHAIN A (EID: ' + EID_A + ') ---');
|
|
481
|
+
const chainA = await deployChainContracts(EID_A, 'Chain A');
|
|
482
|
+
|
|
483
|
+
// Deploy Chain B
|
|
484
|
+
console.log('\n--- CHAIN B (EID: ' + EID_B + ') ---');
|
|
485
|
+
const chainB = await deployChainContracts(EID_B, 'Chain B');
|
|
427
486
|
|
|
428
487
|
console.log('\n========================================');
|
|
429
|
-
console.log('🔗 GLOBAL SETUP: Wiring Protocol Contracts');
|
|
488
|
+
console.log('🔗 GLOBAL SETUP: Wiring Protocol Contracts (Cross-Chain)');
|
|
430
489
|
console.log('========================================\n');
|
|
431
490
|
|
|
432
|
-
|
|
491
|
+
// Wire Chain A to communicate with Chain B
|
|
492
|
+
await wireChainContracts(chainA, chainB, 'Chain A');
|
|
493
|
+
|
|
494
|
+
// Wire Chain B to communicate with Chain A
|
|
495
|
+
await wireChainContracts(chainB, chainA, 'Chain B');
|
|
433
496
|
|
|
434
|
-
// Provide addresses
|
|
435
|
-
provide('
|
|
436
|
-
|
|
497
|
+
// Provide addresses for both chains to tests
|
|
498
|
+
provide('chainA', chainA.addresses);
|
|
499
|
+
provide('chainB', chainB.addresses);
|
|
500
|
+
console.log('\n✅ Chain addresses provided to tests (in-memory)');
|
|
501
|
+
console.log(' Chain A (EID ' + EID_A + '):', chainA.addresses.endpointV2);
|
|
502
|
+
console.log(' Chain B (EID ' + EID_B + '):', chainB.addresses.endpointV2);
|
|
437
503
|
|
|
438
504
|
console.log('\n========================================');
|
|
439
|
-
console.log('✅ GLOBAL SETUP COMPLETE');
|
|
505
|
+
console.log('✅ GLOBAL SETUP COMPLETE (Two-Chain Cross-Chain Ready)');
|
|
440
506
|
console.log('========================================\n');
|
|
441
507
|
|
|
442
508
|
// Return teardown function
|
package/sdk/turbo.json
CHANGED
|
@@ -9,8 +9,8 @@ name = "ts-bindings-gen"
|
|
|
9
9
|
path = "src/main.rs"
|
|
10
10
|
|
|
11
11
|
[dependencies]
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
sha2 =
|
|
15
|
-
base64 =
|
|
12
|
+
soroban-spec-typescript = { workspace = true }
|
|
13
|
+
anyhow = { workspace = true }
|
|
14
|
+
sha2 = { workspace = true }
|
|
15
|
+
base64 = { workspace = true }
|
|
16
16
|
|
|
@@ -180,6 +180,10 @@ fn main() -> Result<()> {
|
|
|
180
180
|
}"#,
|
|
181
181
|
);
|
|
182
182
|
|
|
183
|
+
// Also replace 'options?: MethodOptions' with 'txnOptions?: MethodOptions' for the same reason
|
|
184
|
+
// This handles functions that use the MethodOptions type alias instead of inline options
|
|
185
|
+
let ts_code = ts_code.replace(", options?: MethodOptions)", ", txnOptions?: MethodOptions)");
|
|
186
|
+
|
|
183
187
|
// Combine imports header + embedded WASM + generated code
|
|
184
188
|
let complete_code = format!("{}{}{}", generate_imports_header(), wasm_embed, ts_code);
|
|
185
189
|
|