@layerzerolabs/protocol-stellar-v2 0.2.22 → 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
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
//! Network-specific constants for the LayerZero Endpoint V2.
|
|
2
|
-
//!
|
|
3
|
-
//! This module contains configuration constants that vary by deployment environment.
|
|
4
|
-
//! Constants are selected at compile time based on Cargo features.
|
|
5
|
-
|
|
6
|
-
cfg_if::cfg_if! {
|
|
7
|
-
if #[cfg(any(test, feature = "testutils"))] {
|
|
8
|
-
/// Stellar Endpoint ID for unit test environment.
|
|
9
|
-
/// TODO: This is a placeholder value for testing purposes.
|
|
10
|
-
pub const STELLAR_EID: u32 = 30400;
|
|
11
|
-
|
|
12
|
-
/// Native token address for unit test environment.
|
|
13
|
-
pub const NATIVE_TOKEN: &str = "CBEPDNVYXQGWB5YUBXKJWYJA7OXTZW5LFLNO5JRRGE6Z6C5OSUZPCCEL";
|
|
14
|
-
|
|
15
|
-
} else if #[cfg(feature = "testnet")] {
|
|
16
|
-
/// Stellar Endpoint ID for testnet environment.
|
|
17
|
-
/// TODO: Confirm this EID value with LayerZero before testnet deployment.
|
|
18
|
-
pub const STELLAR_EID: u32 = 20400;
|
|
19
|
-
|
|
20
|
-
/// Native token address for testnet (Stellar testnet XLM wrapper).
|
|
21
|
-
pub const NATIVE_TOKEN: &str = "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC";
|
|
22
|
-
|
|
23
|
-
} else if #[cfg(feature = "sandbox")] {
|
|
24
|
-
/// Stellar Endpoint ID for sandbox environment.
|
|
25
|
-
/// TODO: Confirm this EID value with LayerZero before sandbox deployment.
|
|
26
|
-
pub const STELLAR_EID: u32 = 30400;
|
|
27
|
-
|
|
28
|
-
/// Native token address for sandbox environment.
|
|
29
|
-
pub const NATIVE_TOKEN: &str = "CDMLFMKMMD7MWZP3FKUBZPVHTUEDLSX4BYGYKH4GCESXYHS3IHQ4EIG4";
|
|
30
|
-
|
|
31
|
-
} else {
|
|
32
|
-
/// Stellar Endpoint ID for mainnet environment.
|
|
33
|
-
/// TODO: Confirm this EID value with LayerZero before mainnet deployment.
|
|
34
|
-
pub const STELLAR_EID: u32 = 30400;
|
|
35
|
-
|
|
36
|
-
/// Native token address for mainnet (Stellar mainnet XLM wrapper).
|
|
37
|
-
pub const NATIVE_TOKEN: &str = "CAS3J7GYLGXMF6TDJBBYYSE3HQ6BBSMLNUQ34T6TZMYMW2EVH34XOWMA";
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/// Represents a received message hash marker (equivalent to bytes32(uint256(1)) in Solidity )
|
|
42
|
-
pub const RECEIVED_MESSAGE_HASH_BYTES: [u8; 32] =
|
|
43
|
-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1];
|
|
44
|
-
|
|
45
|
-
/// Represents an empty payload hash (equivalent to bytes32(uint256(0)) in Solidity )
|
|
46
|
-
pub const EMPTY_PAYLOAD_HASH_BYTES: [u8; 32] = [0u8; 32];
|
|
47
|
-
|
|
48
|
-
/// Represents a nilified payload hash (equivalent to bytes32(type(uint256).max) in Solidity )
|
|
49
|
-
pub const NIL_PAYLOAD_HASH_BYTES: [u8; 32] = [0xffu8; 32];
|
|
50
|
-
|
|
51
|
-
/// Represents the maximum compose index (equivalent to uint16.max in Solidity )
|
|
52
|
-
pub const MAX_COMPOSE_INDEX: u32 = u16::MAX as u32;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) negative test: `#[contract_error]` does not accept arguments.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Ensures passing arguments to the attribute causes a compile-time failure.
|
|
5
|
-
// - The macro asserts the attribute token stream is empty.
|
|
6
|
-
|
|
7
|
-
#[common_macros::contract_error(foo)]
|
|
8
|
-
pub enum MyError {
|
|
9
|
-
A,
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
fn main() {}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) test: variant attributes are preserved/allowed.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Ensures attributes on variants (e.g., doc strings) do not break macro processing.
|
|
5
|
-
// - The macro implementation forwards variant attributes; this test catches regressions.
|
|
6
|
-
// - Avoids attributes that may introduce warnings (e.g., `#[deprecated]`) to keep CI output clean.
|
|
7
|
-
|
|
8
|
-
#[common_macros::contract_error]
|
|
9
|
-
pub enum MyError {
|
|
10
|
-
#[doc = "A documented error variant."]
|
|
11
|
-
A,
|
|
12
|
-
|
|
13
|
-
#[doc = "Another documented error variant (used to ensure multiple attrs are handled)."]
|
|
14
|
-
B,
|
|
15
|
-
|
|
16
|
-
#[doc = "A third documented error variant."]
|
|
17
|
-
C,
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
fn main() {}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) test: `#[contract_error]` on a unit-only enum without explicit discriminants compiles.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Covers the happy path where all variants are unit variants.
|
|
5
|
-
// - Ensures the macro auto-assigns monotonically increasing integer discriminants starting at 1.
|
|
6
|
-
// - Avoids snapshotting token output; compilation success is sufficient for this integration contract.
|
|
7
|
-
|
|
8
|
-
#[common_macros::contract_error]
|
|
9
|
-
pub enum MyError {
|
|
10
|
-
A,
|
|
11
|
-
B,
|
|
12
|
-
C,
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
fn main() {}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) test: `#[contract_error]` supports a mix of explicit and implicit discriminants.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Ensures explicit integer discriminants are accepted.
|
|
5
|
-
// - Ensures subsequent variants without discriminants are auto-assigned based on the last explicit value.
|
|
6
|
-
// - Example shape: A=10, B(implicit), C=20, D(implicit).
|
|
7
|
-
|
|
8
|
-
#[common_macros::contract_error]
|
|
9
|
-
pub enum MyError {
|
|
10
|
-
A = 10,
|
|
11
|
-
B,
|
|
12
|
-
C = 20,
|
|
13
|
-
D,
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
fn main() {}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) test: minimal ownable usage compiles.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Verifies `#[common_macros::ownable]` can be applied on a contract struct.
|
|
5
|
-
// - Verifies macro-generated items exist and are type-checkable from downstream code:
|
|
6
|
-
// - `Self::init_owner(&Env, &Address)` helper
|
|
7
|
-
// - `utils::ownable::Ownable` trait impl for the contract
|
|
8
|
-
|
|
9
|
-
use soroban_sdk::{contract, contractimpl, Address, Env};
|
|
10
|
-
|
|
11
|
-
#[contract]
|
|
12
|
-
#[common_macros::ownable]
|
|
13
|
-
pub struct MyContract;
|
|
14
|
-
|
|
15
|
-
#[contractimpl]
|
|
16
|
-
impl MyContract {
|
|
17
|
-
pub fn init(env: Env, owner: Address) {
|
|
18
|
-
// `init_owner` is generated by `#[ownable]` as a helper on the contract type.
|
|
19
|
-
Self::init_owner(&env, &owner);
|
|
20
|
-
|
|
21
|
-
// Ensure the trait impl exists (type-check only).
|
|
22
|
-
let _ = <Self as utils::ownable::Ownable>::owner(&env);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
fn main() {}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) test: macro expansion works with fully-qualified trait paths.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Ensures a downstream crate can use the generated `Ownable` trait impl via a fully-qualified path
|
|
5
|
-
// without importing `utils::ownable::Ownable` into scope.
|
|
6
|
-
|
|
7
|
-
use soroban_sdk::{contract, contractimpl, Env};
|
|
8
|
-
|
|
9
|
-
#[contract]
|
|
10
|
-
#[common_macros::ownable]
|
|
11
|
-
pub struct MyContract;
|
|
12
|
-
|
|
13
|
-
#[contractimpl]
|
|
14
|
-
impl MyContract {
|
|
15
|
-
pub fn foo(env: Env) {
|
|
16
|
-
// Call using the fully-qualified trait path without importing the trait.
|
|
17
|
-
let _ = <Self as utils::ownable::Ownable>::owner(&env);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
fn main() {}
|
package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.rs
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) negative test: `#[storage(...)]` does not accept arguments.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Ensures the `#[common_macros::storage]` attribute is argument-less; passing any tokens should fail.
|
|
5
|
-
|
|
6
|
-
#[common_macros::storage("not_a_path")]
|
|
7
|
-
pub enum StorageKey {
|
|
8
|
-
#[instance(u32)]
|
|
9
|
-
A,
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
fn main() {}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) test: default value attribute on a variant compiles.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Ensures `#[default(...)]` is accepted and parsed.
|
|
5
|
-
// - Avoids asserting runtime semantics here (handled by runtime tests); this is compile-time contract only.
|
|
6
|
-
|
|
7
|
-
#[common_macros::storage]
|
|
8
|
-
pub enum StorageKey {
|
|
9
|
-
#[instance(u32)]
|
|
10
|
-
#[default(0)]
|
|
11
|
-
Counter,
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
fn main() {}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) test: basic instance storage on a unit variant compiles.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Ensures `#[common_macros::storage]` works on enums (enum-only contract).
|
|
5
|
-
// - Ensures unit variants are supported.
|
|
6
|
-
// - Ensures `#[instance(T)]` accepts exactly one type parameter.
|
|
7
|
-
|
|
8
|
-
#[common_macros::storage]
|
|
9
|
-
pub enum StorageKey {
|
|
10
|
-
#[instance(u32)]
|
|
11
|
-
Counter,
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
fn main() {}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) test: persistent storage on a named-fields (keyed) variant compiles.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Ensures named-fields variants are supported (keyed patterns).
|
|
5
|
-
// - Ensures `#[persistent(T)]` accepts exactly one type parameter.
|
|
6
|
-
// - Uses a Soroban type as key to reflect realistic usage.
|
|
7
|
-
|
|
8
|
-
use soroban_sdk::BytesN;
|
|
9
|
-
|
|
10
|
-
#[common_macros::storage]
|
|
11
|
-
pub enum StorageKey {
|
|
12
|
-
#[persistent(i128)]
|
|
13
|
-
Balance { key: BytesN<32> },
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
fn main() {}
|
package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_temporary_unit_option.rs
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) test: temporary storage with Option value type compiles.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Ensures `#[temporary(T)]` works with `Option<...>` value types.
|
|
5
|
-
// - Covers the "temporary + option value type" parsing path.
|
|
6
|
-
|
|
7
|
-
use soroban_sdk::Address;
|
|
8
|
-
|
|
9
|
-
#[common_macros::storage]
|
|
10
|
-
pub enum StorageKey {
|
|
11
|
-
#[temporary(Option<Address>)]
|
|
12
|
-
MaybeOwner,
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
fn main() {}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) test: name override attribute compiles.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Ensures `#[name("...")]` is accepted and parsed.
|
|
5
|
-
// - Locks down compile-time contract for custom key naming.
|
|
6
|
-
|
|
7
|
-
#[common_macros::storage]
|
|
8
|
-
pub enum StorageKey {
|
|
9
|
-
#[instance(bool)]
|
|
10
|
-
#[name("custom_flag")]
|
|
11
|
-
Flag,
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
fn main() {}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) test: `#[no_ttl_extension]` compiles.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Ensures `#[no_ttl_extension]` is accepted on variants.
|
|
5
|
-
// - Does NOT assert runtime TTL extension behavior (covered by runtime tests).
|
|
6
|
-
|
|
7
|
-
use soroban_sdk::BytesN;
|
|
8
|
-
|
|
9
|
-
#[common_macros::storage]
|
|
10
|
-
pub enum StorageKey {
|
|
11
|
-
#[persistent(i128)]
|
|
12
|
-
#[no_ttl_extension]
|
|
13
|
-
Balance { key: BytesN<32> },
|
|
14
|
-
|
|
15
|
-
#[persistent(i128)]
|
|
16
|
-
Balance2 { key: BytesN<32> },
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
fn main() {}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// UI (trybuild) test: storage macro compiles.
|
|
2
|
-
//
|
|
3
|
-
// Purpose:
|
|
4
|
-
// - Ensures `#[common_macros::storage]` compiles in a downstream crate.
|
|
5
|
-
// - Does NOT assert runtime TTL extension semantics (covered by runtime tests).
|
|
6
|
-
|
|
7
|
-
use soroban_sdk::BytesN;
|
|
8
|
-
|
|
9
|
-
#[common_macros::storage]
|
|
10
|
-
pub enum StorageKey {
|
|
11
|
-
#[persistent(i128)]
|
|
12
|
-
Balance { key: BytesN<32> },
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
fn main() {}
|
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
use endpoint_v2::{LayerZeroEndpointV2Client, OutboundPacket};
|
|
2
|
-
use message_lib_common::packet_codec_v1;
|
|
3
|
-
use soroban_sdk::{
|
|
4
|
-
contract, contractimpl, symbol_short,
|
|
5
|
-
testutils::{Address as _, MockAuth, MockAuthInvoke},
|
|
6
|
-
Address, Bytes, Env, IntoVal,
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
use crate::simple_message_lib::{SimpleMessageLib, SimpleMessageLibClient};
|
|
10
|
-
|
|
11
|
-
#[contract]
|
|
12
|
-
pub struct MockEndpoint;
|
|
13
|
-
|
|
14
|
-
#[contractimpl]
|
|
15
|
-
impl MockEndpoint {
|
|
16
|
-
pub fn __constructor(env: Env, native_token: Address) {
|
|
17
|
-
env.storage().instance().set(&symbol_short!("ntk"), &native_token);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
pub fn eid(_env: Env) -> u32 {
|
|
21
|
-
1
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
pub fn native_token(env: Env) -> Address {
|
|
25
|
-
env.storage().instance().get(&symbol_short!("ntk")).unwrap()
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
pub fn zro(env: Env) -> Option<Address> {
|
|
29
|
-
env.storage().instance().get(&symbol_short!("zro")).unwrap_or(None)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
pub fn set_zro(env: Env, zro: Address) {
|
|
33
|
-
env.storage().instance().set(&symbol_short!("zro"), &zro);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
struct TestSetup<'a> {
|
|
38
|
-
env: Env,
|
|
39
|
-
owner: Address,
|
|
40
|
-
fee_recipient: Address,
|
|
41
|
-
endpoint: LayerZeroEndpointV2Client<'a>,
|
|
42
|
-
sml: SimpleMessageLibClient<'a>,
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
fn setup<'a>() -> TestSetup<'a> {
|
|
46
|
-
let env = Env::default();
|
|
47
|
-
let owner = Address::generate(&env);
|
|
48
|
-
let fee_recipient = Address::generate(&env);
|
|
49
|
-
|
|
50
|
-
let native_token = env.register_stellar_asset_contract_v2(owner.clone());
|
|
51
|
-
|
|
52
|
-
let endpoint = env.register(MockEndpoint, (&native_token.address(),));
|
|
53
|
-
let endpoint_client = LayerZeroEndpointV2Client::new(&env, &endpoint);
|
|
54
|
-
let sml_address = env.register(SimpleMessageLib, (&owner, &endpoint, &fee_recipient));
|
|
55
|
-
let sml = SimpleMessageLibClient::new(&env, &sml_address);
|
|
56
|
-
TestSetup { env, owner, fee_recipient, endpoint: endpoint_client, sml }
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
fn create_packet(env: &Env) -> OutboundPacket {
|
|
60
|
-
OutboundPacket {
|
|
61
|
-
nonce: 1,
|
|
62
|
-
src_eid: 2,
|
|
63
|
-
sender: Address::generate(env),
|
|
64
|
-
dst_eid: 3,
|
|
65
|
-
receiver: soroban_sdk::BytesN::from_array(env, &[0u8; 32]),
|
|
66
|
-
guid: soroban_sdk::BytesN::from_array(env, &[0u8; 32]),
|
|
67
|
-
message: soroban_sdk::Bytes::from_array(env, b"test"),
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
#[test]
|
|
72
|
-
fn test_quote() {
|
|
73
|
-
let TestSetup { env, sml, endpoint, .. } = setup();
|
|
74
|
-
|
|
75
|
-
let packet = OutboundPacket {
|
|
76
|
-
nonce: 1,
|
|
77
|
-
src_eid: 2,
|
|
78
|
-
sender: Address::generate(&env),
|
|
79
|
-
dst_eid: 3,
|
|
80
|
-
receiver: soroban_sdk::BytesN::from_array(&env, &[0u8; 32]),
|
|
81
|
-
guid: soroban_sdk::BytesN::from_array(&env, &[0u8; 32]),
|
|
82
|
-
message: soroban_sdk::Bytes::from_array(&env, b"test"),
|
|
83
|
-
};
|
|
84
|
-
let options = soroban_sdk::Bytes::new(&env);
|
|
85
|
-
let pay_in_zro = false;
|
|
86
|
-
|
|
87
|
-
env.mock_auths(&[MockAuth {
|
|
88
|
-
address: &endpoint.address,
|
|
89
|
-
invoke: &MockAuthInvoke {
|
|
90
|
-
contract: &sml.address,
|
|
91
|
-
fn_name: "quote",
|
|
92
|
-
args: (&packet, &options, &pay_in_zro).into_val(&env),
|
|
93
|
-
sub_invokes: &[],
|
|
94
|
-
},
|
|
95
|
-
}]);
|
|
96
|
-
|
|
97
|
-
let fee = sml.quote(&packet, &options, &pay_in_zro);
|
|
98
|
-
assert_eq!(fee.native_fee, 100);
|
|
99
|
-
assert_eq!(fee.zro_fee, 0);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
#[test]
|
|
103
|
-
fn test_send() {
|
|
104
|
-
let TestSetup { env, sml, endpoint, .. } = setup();
|
|
105
|
-
|
|
106
|
-
let packet = OutboundPacket {
|
|
107
|
-
nonce: 1,
|
|
108
|
-
src_eid: 2,
|
|
109
|
-
sender: Address::generate(&env),
|
|
110
|
-
dst_eid: 3,
|
|
111
|
-
receiver: soroban_sdk::BytesN::from_array(&env, &[0u8; 32]),
|
|
112
|
-
guid: soroban_sdk::BytesN::from_array(&env, &[0u8; 32]),
|
|
113
|
-
message: soroban_sdk::Bytes::from_array(&env, b"test"),
|
|
114
|
-
};
|
|
115
|
-
let options = soroban_sdk::Bytes::new(&env);
|
|
116
|
-
let pay_in_zro = false;
|
|
117
|
-
|
|
118
|
-
env.mock_auths(&[MockAuth {
|
|
119
|
-
address: &endpoint.address,
|
|
120
|
-
invoke: &MockAuthInvoke {
|
|
121
|
-
contract: &sml.address,
|
|
122
|
-
fn_name: "send",
|
|
123
|
-
args: (&packet, &options, &pay_in_zro).into_val(&env),
|
|
124
|
-
sub_invokes: &[],
|
|
125
|
-
},
|
|
126
|
-
}]);
|
|
127
|
-
|
|
128
|
-
let send_result = sml.send(&packet, &options, &pay_in_zro);
|
|
129
|
-
assert_eq!(send_result.native_fee_recipients.len(), 1);
|
|
130
|
-
assert_eq!(send_result.native_fee_recipients.get(0).unwrap().amount, 100);
|
|
131
|
-
assert_eq!(send_result.zro_fee_recipients.len(), 0);
|
|
132
|
-
assert_eq!(send_result.encoded_packet, packet_codec_v1::encode_packet(&env, &packet));
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
#[test]
|
|
136
|
-
fn test_fee_recipient() {
|
|
137
|
-
let TestSetup { sml, fee_recipient, .. } = setup();
|
|
138
|
-
|
|
139
|
-
// Verify fee recipient is set correctly from constructor
|
|
140
|
-
let recipient = sml.fee_recipient();
|
|
141
|
-
assert_eq!(recipient, fee_recipient);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
#[test]
|
|
145
|
-
fn test_send_returns_native_fee_recipient() {
|
|
146
|
-
let TestSetup { env, sml, endpoint, fee_recipient, .. } = setup();
|
|
147
|
-
|
|
148
|
-
let packet = create_packet(&env);
|
|
149
|
-
let options = Bytes::new(&env);
|
|
150
|
-
let pay_in_zro = false;
|
|
151
|
-
|
|
152
|
-
env.mock_auths(&[MockAuth {
|
|
153
|
-
address: &endpoint.address,
|
|
154
|
-
invoke: &MockAuthInvoke {
|
|
155
|
-
contract: &sml.address,
|
|
156
|
-
fn_name: "send",
|
|
157
|
-
args: (&packet, &options, &pay_in_zro).into_val(&env),
|
|
158
|
-
sub_invokes: &[],
|
|
159
|
-
},
|
|
160
|
-
}]);
|
|
161
|
-
|
|
162
|
-
let send_result = sml.send(&packet, &options, &pay_in_zro);
|
|
163
|
-
|
|
164
|
-
// Should only have native fee recipient
|
|
165
|
-
assert_eq!(send_result.native_fee_recipients.len(), 1);
|
|
166
|
-
assert_eq!(send_result.zro_fee_recipients.len(), 0);
|
|
167
|
-
|
|
168
|
-
let native_recipient = send_result.native_fee_recipients.get(0).unwrap();
|
|
169
|
-
assert_eq!(native_recipient.to, fee_recipient);
|
|
170
|
-
assert_eq!(native_recipient.amount, 100); // native_fee from setup
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
#[test]
|
|
174
|
-
fn test_send_returns_both_fee_recipients_with_zro() {
|
|
175
|
-
let TestSetup { env, sml, endpoint, owner, fee_recipient } = setup();
|
|
176
|
-
|
|
177
|
-
// Set up ZRO token
|
|
178
|
-
let zro = env.register_stellar_asset_contract_v2(owner.clone());
|
|
179
|
-
let zro_address = zro.address();
|
|
180
|
-
env.mock_auths(&[MockAuth {
|
|
181
|
-
address: &owner,
|
|
182
|
-
invoke: &MockAuthInvoke {
|
|
183
|
-
contract: &endpoint.address,
|
|
184
|
-
fn_name: "set_zro",
|
|
185
|
-
args: (&zro_address,).into_val(&env),
|
|
186
|
-
sub_invokes: &[],
|
|
187
|
-
},
|
|
188
|
-
}]);
|
|
189
|
-
endpoint.set_zro(&zro_address);
|
|
190
|
-
|
|
191
|
-
let packet = create_packet(&env);
|
|
192
|
-
let options = Bytes::new(&env);
|
|
193
|
-
let pay_in_zro = true;
|
|
194
|
-
|
|
195
|
-
env.mock_auths(&[MockAuth {
|
|
196
|
-
address: &endpoint.address,
|
|
197
|
-
invoke: &MockAuthInvoke {
|
|
198
|
-
contract: &sml.address,
|
|
199
|
-
fn_name: "send",
|
|
200
|
-
args: (&packet, &options, &pay_in_zro).into_val(&env),
|
|
201
|
-
sub_invokes: &[],
|
|
202
|
-
},
|
|
203
|
-
}]);
|
|
204
|
-
|
|
205
|
-
let send_result = sml.send(&packet, &options, &pay_in_zro);
|
|
206
|
-
|
|
207
|
-
// Should have both native and ZRO fee recipients
|
|
208
|
-
assert_eq!(send_result.native_fee_recipients.len(), 1);
|
|
209
|
-
assert_eq!(send_result.zro_fee_recipients.len(), 1);
|
|
210
|
-
|
|
211
|
-
let native_recipient = send_result.native_fee_recipients.get(0).unwrap();
|
|
212
|
-
assert_eq!(native_recipient.to, fee_recipient);
|
|
213
|
-
assert_eq!(native_recipient.amount, 100); // native_fee
|
|
214
|
-
|
|
215
|
-
let zro_recipient = send_result.zro_fee_recipients.get(0).unwrap();
|
|
216
|
-
assert_eq!(zro_recipient.to, fee_recipient);
|
|
217
|
-
assert_eq!(zro_recipient.amount, 99); // zro_fee from setup
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
#[test]
|
|
221
|
-
fn test_native_fee() {
|
|
222
|
-
let TestSetup { sml, .. } = setup();
|
|
223
|
-
|
|
224
|
-
let native_fee = sml.native_fee();
|
|
225
|
-
assert_eq!(native_fee, 100);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
#[test]
|
|
229
|
-
fn test_zro_fee() {
|
|
230
|
-
let TestSetup { sml, .. } = setup();
|
|
231
|
-
|
|
232
|
-
let zro_fee = sml.zro_fee();
|
|
233
|
-
assert_eq!(zro_fee, 99);
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
#[test]
|
|
237
|
-
fn test_quote_with_native_fee_only() {
|
|
238
|
-
let TestSetup { env, sml, endpoint, .. } = setup();
|
|
239
|
-
|
|
240
|
-
let packet = create_packet(&env);
|
|
241
|
-
let options = Bytes::new(&env);
|
|
242
|
-
let pay_in_zro = false;
|
|
243
|
-
|
|
244
|
-
env.mock_auths(&[MockAuth {
|
|
245
|
-
address: &endpoint.address,
|
|
246
|
-
invoke: &MockAuthInvoke {
|
|
247
|
-
contract: &sml.address,
|
|
248
|
-
fn_name: "quote",
|
|
249
|
-
args: (&packet, &options, &pay_in_zro).into_val(&env),
|
|
250
|
-
sub_invokes: &[],
|
|
251
|
-
},
|
|
252
|
-
}]);
|
|
253
|
-
|
|
254
|
-
let fee = sml.quote(&packet, &options, &pay_in_zro);
|
|
255
|
-
assert_eq!(fee.native_fee, 100);
|
|
256
|
-
assert_eq!(fee.zro_fee, 0);
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
#[test]
|
|
260
|
-
fn test_quote_with_zro_fee() {
|
|
261
|
-
let TestSetup { env, sml, endpoint, .. } = setup();
|
|
262
|
-
|
|
263
|
-
let packet = create_packet(&env);
|
|
264
|
-
let options = Bytes::new(&env);
|
|
265
|
-
let pay_in_zro = true;
|
|
266
|
-
|
|
267
|
-
env.mock_auths(&[MockAuth {
|
|
268
|
-
address: &endpoint.address,
|
|
269
|
-
invoke: &MockAuthInvoke {
|
|
270
|
-
contract: &sml.address,
|
|
271
|
-
fn_name: "quote",
|
|
272
|
-
args: (&packet, &options, &pay_in_zro).into_val(&env),
|
|
273
|
-
sub_invokes: &[],
|
|
274
|
-
},
|
|
275
|
-
}]);
|
|
276
|
-
|
|
277
|
-
let fee = sml.quote(&packet, &options, &pay_in_zro);
|
|
278
|
-
assert_eq!(fee.native_fee, 100);
|
|
279
|
-
assert_eq!(fee.zro_fee, 99);
|
|
280
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
pub mod test_macros;
|