@layerzerolabs/protocol-stellar-v2 0.2.121 → 0.2.123
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/Cargo.toml +22 -37
- package/{contracts/endpoint-v2 → endpoint-v2}/Cargo.toml +3 -2
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/pay_messaging_fees.rs +7 -1
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/quote.rs +2 -2
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/ttl_config.rs +4 -1
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/verifiable.rs +0 -1
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +9 -3
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/require_send_lib_for_eid.rs +6 -2
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/require_supported_eid.rs +6 -2
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/clear_payload.rs +1 -4
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/inbound.rs +1 -4
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/nilify.rs +3 -12
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/pending_inbound_nonces.rs +0 -1
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_composer/lz_compose_alert.rs +1 -0
- package/{contracts/layerzero-views → layerzero-views}/Cargo.toml +1 -6
- package/{contracts/message-libs → message-libs}/blocked-message-lib/Cargo.toml +0 -1
- package/{contracts/message-libs → message-libs}/message-lib-common/Cargo.toml +2 -2
- package/{contracts/message-libs → message-libs}/simple-message-lib/Cargo.toml +1 -2
- package/{contracts/message-libs → message-libs}/treasury/Cargo.toml +1 -2
- package/{contracts/message-libs → message-libs}/uln-302/Cargo.toml +3 -2
- package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/send.rs +20 -4
- package/{contracts/message-libs → message-libs}/uln-302/src/tests/uln302/get_app_receive_uln_config.rs +2 -2
- package/package.json +32 -15
- package/rustfmt.toml +8 -13
- package/{contracts/upgrader → upgrader}/Cargo.toml +0 -1
- package/upgrader/src/tests/mod.rs +1 -0
- package/{contracts/workers → workers}/dvn/Cargo.toml +1 -2
- package/{contracts/workers → workers}/dvn/src/tests/auth.rs +12 -60
- package/{contracts/workers → workers}/dvn-fee-lib/Cargo.toml +1 -2
- package/{contracts/workers → workers}/executor/Cargo.toml +3 -2
- package/{contracts/workers → workers}/executor/src/auth.rs +3 -8
- package/{contracts/workers → workers}/executor/src/storage.rs +1 -1
- package/{contracts/workers → workers}/executor/src/tests/auth.rs +6 -1
- package/{contracts/workers → workers}/executor/src/tests/executor.rs +5 -5
- package/{contracts/workers → workers}/executor/src/tests/setup.rs +1 -2
- package/{contracts/workers → workers}/executor-fee-lib/Cargo.toml +1 -2
- package/{contracts/workers → workers}/executor-fee-lib/src/tests/executor_fee_lib.rs +5 -5
- package/{contracts/workers → workers}/executor-fee-lib/src/tests/executor_option.rs +2 -2
- package/{contracts/workers → workers}/executor-helper/Cargo.toml +0 -1
- package/{contracts/workers → workers}/executor-helper/src/executor_helper.rs +0 -1
- package/{contracts/workers → workers}/executor-helper/src/tests/executor_helper.rs +0 -1
- package/{contracts/workers → workers}/fee-lib-interfaces/Cargo.toml +0 -1
- package/{contracts/workers → workers}/price-feed/Cargo.toml +1 -2
- package/{contracts/workers → workers}/price-feed/src/tests/price_feed.rs +11 -11
- package/{contracts/workers → workers}/worker/Cargo.toml +0 -1
- package/{contracts/workers → workers}/worker/src/tests/worker.rs +27 -27
- package/.turbo/turbo-build.log +0 -1363
- package/.turbo/turbo-lint.log +0 -401
- package/.turbo/turbo-test.log +0 -1952
- package/Cargo.lock +0 -2357
- package/contracts/common-macros/Cargo.toml +0 -20
- package/contracts/common-macros/src/auth.rs +0 -95
- package/contracts/common-macros/src/contract_ttl.rs +0 -92
- package/contracts/common-macros/src/error.rs +0 -43
- package/contracts/common-macros/src/lib.rs +0 -585
- package/contracts/common-macros/src/lz_contract.rs +0 -105
- package/contracts/common-macros/src/rbac.rs +0 -90
- package/contracts/common-macros/src/storage.rs +0 -522
- package/contracts/common-macros/src/tests/auth.rs +0 -230
- package/contracts/common-macros/src/tests/contract_ttl.rs +0 -695
- package/contracts/common-macros/src/tests/error.rs +0 -156
- package/contracts/common-macros/src/tests/lz_contract.rs +0 -87
- package/contracts/common-macros/src/tests/mod.rs +0 -11
- package/contracts/common-macros/src/tests/rbac.rs +0 -523
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +0 -31
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +0 -39
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_only_auth_preserves_function_signature.snap +0 -19
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +0 -77
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +0 -46
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__error__snapshot_generated_contract_error_code.snap +0 -20
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__lz_contract__snapshot_generated_lz_contract_code.snap +0 -51
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__rbac__snapshot_authorizer_role.snap +0 -21
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__rbac__snapshot_preserve_function_signature.snap +0 -21
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +0 -10
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_extendable__snapshot_generated_ttl_extendable_code.snap +0 -8
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +0 -28
- package/contracts/common-macros/src/tests/storage/extract_fields.rs +0 -87
- package/contracts/common-macros/src/tests/storage/gen_accessor_methods.rs +0 -223
- package/contracts/common-macros/src/tests/storage/gen_args.rs +0 -65
- package/contracts/common-macros/src/tests/storage/gen_enum_variant.rs +0 -78
- package/contracts/common-macros/src/tests/storage/gen_key.rs +0 -108
- package/contracts/common-macros/src/tests/storage/gen_params.rs +0 -105
- package/contracts/common-macros/src/tests/storage/generate_storage.rs +0 -410
- package/contracts/common-macros/src/tests/storage/is_primitive_type.rs +0 -48
- package/contracts/common-macros/src/tests/storage/mod.rs +0 -16
- package/contracts/common-macros/src/tests/storage/parse_default.rs +0 -164
- package/contracts/common-macros/src/tests/storage/parse_name.rs +0 -158
- package/contracts/common-macros/src/tests/storage/parse_no_ttl_extension.rs +0 -124
- package/contracts/common-macros/src/tests/storage/parse_storage_type.rs +0 -174
- package/contracts/common-macros/src/tests/storage/snapshots/common_macros__tests__storage__generate_storage__snapshot_generated_storage_code.snap +0 -412
- package/contracts/common-macros/src/tests/storage/storage_kind.rs +0 -39
- package/contracts/common-macros/src/tests/storage/test_setup.rs +0 -25
- package/contracts/common-macros/src/tests/storage/validate_attrs.rs +0 -138
- package/contracts/common-macros/src/tests/storage/variant_config.rs +0 -226
- package/contracts/common-macros/src/tests/test_helpers.rs +0 -87
- package/contracts/common-macros/src/tests/ttl_configurable.rs +0 -34
- package/contracts/common-macros/src/tests/ttl_extendable.rs +0 -32
- package/contracts/common-macros/src/tests/upgradeable.rs +0 -169
- package/contracts/common-macros/src/tests/utils.rs +0 -267
- package/contracts/common-macros/src/ttl_configurable.rs +0 -24
- package/contracts/common-macros/src/ttl_extendable.rs +0 -28
- package/contracts/common-macros/src/upgradeable.rs +0 -136
- package/contracts/common-macros/src/utils.rs +0 -56
- package/contracts/macro-integration-tests/Cargo.toml +0 -20
- package/contracts/macro-integration-tests/src/lib.rs +0 -1
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/constructor.rs +0 -61
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_impl_ttl_extension.rs +0 -97
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_trait_ttl_extension.rs +0 -99
- package/contracts/macro-integration-tests/tests/runtime/contract_ttl/mod.rs +0 -3
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/mod.rs +0 -5
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_default.rs +0 -86
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig.rs +0 -47
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig_upgradeable.rs +0 -77
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable.rs +0 -114
- package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable_no_migration.rs +0 -105
- package/contracts/macro-integration-tests/tests/runtime/multisig/admin_entrypoints.rs +0 -242
- package/contracts/macro-integration-tests/tests/runtime/multisig/mod.rs +0 -9
- package/contracts/macro-integration-tests/tests/runtime/multisig/self_auth.rs +0 -54
- package/contracts/macro-integration-tests/tests/runtime/oapp/mod.rs +0 -46
- package/contracts/macro-integration-tests/tests/runtime/oapp/oapp_core.rs +0 -170
- package/contracts/macro-integration-tests/tests/runtime/oapp/options_type3.rs +0 -154
- package/contracts/macro-integration-tests/tests/runtime/oapp/receiver.rs +0 -338
- package/contracts/macro-integration-tests/tests/runtime/oapp/sender.rs +0 -437
- package/contracts/macro-integration-tests/tests/runtime/ownable/initialization.rs +0 -78
- package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +0 -23
- package/contracts/macro-integration-tests/tests/runtime/ownable/only_auth_guard.rs +0 -97
- package/contracts/macro-integration-tests/tests/runtime/ownable/ownership_transfer.rs +0 -170
- package/contracts/macro-integration-tests/tests/runtime/ownable/two_step_transfer.rs +0 -221
- package/contracts/macro-integration-tests/tests/runtime/rbac/guard_behavior.rs +0 -91
- package/contracts/macro-integration-tests/tests/runtime/rbac/mod.rs +0 -30
- package/contracts/macro-integration-tests/tests/runtime/storage/keyed_roundtrip.rs +0 -266
- package/contracts/macro-integration-tests/tests/runtime/storage/mod.rs +0 -4
- package/contracts/macro-integration-tests/tests/runtime/storage/name_override_runtime.rs +0 -52
- package/contracts/macro-integration-tests/tests/runtime/storage/ttl_extension.rs +0 -293
- package/contracts/macro-integration-tests/tests/runtime/storage/unkeyed_roundtrip.rs +0 -147
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +0 -206
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +0 -143
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/mod.rs +0 -2
- package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/extend_instance_ttl.rs +0 -64
- package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/mod.rs +0 -16
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/migrate_guard_and_state.rs +0 -243
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/mod.rs +0 -3
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/no_migration.rs +0 -59
- package/contracts/macro-integration-tests/tests/runtime/upgradeable/upgrade_then_migrate.rs +0 -88
- package/contracts/macro-integration-tests/tests/runtime.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.rs +0 -6
- package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/contract_impl/pass/basic.rs +0 -102
- package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.rs +0 -6
- package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/contract_trait/pass/basic.rs +0 -83
- package/contracts/macro-integration-tests/tests/ui/error/fail/decreasing_discriminant.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui/error/fail/decreasing_discriminant.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_int_discriminant.rs +0 -21
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_int_discriminant.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_unit_variant.rs +0 -13
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_unit_variant.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/error/pass/basic.rs +0 -22
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.rs +0 -6
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.rs +0 -20
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.stderr +0 -20
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.rs +0 -8
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.rs +0 -10
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.stderr +0 -30
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.rs +0 -20
- package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.stderr +0 -56
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/basic.rs +0 -45
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig.rs +0 -34
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig_upgradeable.rs +0 -30
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable.rs +0 -39
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_no_migration.rs +0 -28
- package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_rbac.rs +0 -44
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.rs +0 -8
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.rs +0 -20
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.stderr +0 -12
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.rs +0 -20
- package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.stderr +0 -5
- package/contracts/macro-integration-tests/tests/ui/multisig/pass/basic.rs +0 -49
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.rs +0 -8
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_auth_trait.rs +0 -28
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_auth_trait.stderr +0 -397
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.rs +0 -9
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.stderr +0 -71
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.rs +0 -10
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.rs +0 -8
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.rs +0 -8
- package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_all.rs +0 -42
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_single_trait.rs +0 -103
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/minimal_contract.rs +0 -65
- package/contracts/macro-integration-tests/tests/ui/oapp/pass/struct_with_fields.rs +0 -48
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.rs +0 -8
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.rs +0 -19
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.stderr +0 -12
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.rs +0 -22
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +0 -16
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/basic.rs +0 -39
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +0 -52
- package/contracts/macro-integration-tests/tests/ui/rbac/fail/missing_env.rs +0 -18
- package/contracts/macro-integration-tests/tests/ui/rbac/fail/missing_env.stderr +0 -16
- package/contracts/macro-integration-tests/tests/ui/rbac/fail/param_not_address.rs +0 -18
- package/contracts/macro-integration-tests/tests/ui/rbac/fail/param_not_address.stderr +0 -24
- package/contracts/macro-integration-tests/tests/ui/rbac/fail/param_not_found.rs +0 -18
- package/contracts/macro-integration-tests/tests/ui/rbac/fail/param_not_found.stderr +0 -24
- package/contracts/macro-integration-tests/tests/ui/rbac/pass/basic.rs +0 -80
- package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.rs +0 -13
- package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.rs +0 -13
- package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_storage_kinds.rs +0 -10
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_storage_kinds.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_on_non_persistent.rs +0 -10
- package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_on_non_persistent.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.rs +0 -13
- package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/fail/non_enum_input.rs +0 -10
- package/contracts/macro-integration-tests/tests/ui/storage/fail/non_enum_input.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/fail/tuple_variant_rejected.rs +0 -13
- package/contracts/macro-integration-tests/tests/ui/storage/fail/tuple_variant_rejected.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/fail/unknown_variant_attr.rs +0 -13
- package/contracts/macro-integration-tests/tests/ui/storage/fail/unknown_variant_attr.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/storage/pass/api_surface.rs +0 -102
- package/contracts/macro-integration-tests/tests/ui/storage/pass/basic.rs +0 -43
- package/contracts/macro-integration-tests/tests/ui/storage/pass/multi_key.rs +0 -38
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.rs +0 -14
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.stderr +0 -71
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.rs +0 -8
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/basic.rs +0 -46
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/multisig_contract.rs +0 -28
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/ownable_contract.rs +0 -32
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.rs +0 -8
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/basic.rs +0 -23
- package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/no_user_contractimpl.rs +0 -21
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.stderr +0 -29
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.rs +0 -20
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.stderr +0 -41
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.rs +0 -10
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.stderr +0 -49
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.rs +0 -8
- package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.stderr +0 -7
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/basic.rs +0 -41
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/multisig_contract.rs +0 -33
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_migration.rs +0 -28
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_user_contractimpl.rs +0 -27
- package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/rbac.rs +0 -44
- package/contracts/macro-integration-tests/tests/ui_contract_impl.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui_contract_trait.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui_error.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui_lz_contract.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui_multisig.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui_oapp.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui_ownable.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui_rbac.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui_storage.rs +0 -11
- package/contracts/macro-integration-tests/tests/ui_ttl_configurable.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui_ttl_extendable.rs +0 -12
- package/contracts/macro-integration-tests/tests/ui_upgradeable.rs +0 -11
- package/contracts/message-libs/Cargo.toml +0 -12
- package/contracts/message-libs/lib.rs +0 -2
- package/contracts/oapps/Cargo.toml +0 -12
- package/contracts/oapps/counter/Cargo.toml +0 -39
- package/contracts/oapps/counter/integration_tests/mod.rs +0 -7
- package/contracts/oapps/counter/integration_tests/setup_sml.rs +0 -171
- package/contracts/oapps/counter/integration_tests/setup_uln.rs +0 -1019
- package/contracts/oapps/counter/integration_tests/signing.rs +0 -62
- package/contracts/oapps/counter/integration_tests/test_with_blocked.rs +0 -67
- package/contracts/oapps/counter/integration_tests/test_with_sml.rs +0 -135
- package/contracts/oapps/counter/integration_tests/test_with_uln.rs +0 -314
- package/contracts/oapps/counter/integration_tests/utils.rs +0 -294
- package/contracts/oapps/counter/src/codec.rs +0 -62
- package/contracts/oapps/counter/src/counter.rs +0 -274
- package/contracts/oapps/counter/src/errors.rs +0 -9
- package/contracts/oapps/counter/src/lib.rs +0 -16
- package/contracts/oapps/counter/src/options.rs +0 -30
- package/contracts/oapps/counter/src/storage.rs +0 -32
- package/contracts/oapps/counter/src/tests/mod.rs +0 -24
- package/contracts/oapps/counter/src/tests/test_codec.rs +0 -64
- package/contracts/oapps/counter/src/tests/test_counter.rs +0 -387
- package/contracts/oapps/counter/src/tests/test_u256_ext.rs +0 -48
- package/contracts/oapps/counter/src/u256_ext.rs +0 -21
- package/contracts/oapps/lib.rs +0 -2
- package/contracts/oapps/oapp/Cargo.toml +0 -22
- package/contracts/oapps/oapp/src/errors.rs +0 -13
- package/contracts/oapps/oapp/src/interfaces/mod.rs +0 -3
- package/contracts/oapps/oapp/src/interfaces/oapp_msg_inspector.rs +0 -70
- package/contracts/oapps/oapp/src/lib.rs +0 -15
- package/contracts/oapps/oapp/src/oapp_core.rs +0 -143
- package/contracts/oapps/oapp/src/oapp_options_type3.rs +0 -133
- package/contracts/oapps/oapp/src/oapp_receiver.rs +0 -195
- package/contracts/oapps/oapp/src/oapp_sender.rs +0 -152
- package/contracts/oapps/oapp/src/tests/mod.rs +0 -5
- package/contracts/oapps/oapp/src/tests/oapp_core.rs +0 -225
- package/contracts/oapps/oapp/src/tests/oapp_options_type3.rs +0 -246
- package/contracts/oapps/oapp/src/tests/oapp_receiver.rs +0 -383
- package/contracts/oapps/oapp/src/tests/oapp_sender.rs +0 -570
- package/contracts/oapps/oapp/src/tests/test_macros.rs +0 -434
- package/contracts/oapps/oapp-macros/Cargo.toml +0 -18
- package/contracts/oapps/oapp-macros/src/generators.rs +0 -147
- package/contracts/oapps/oapp-macros/src/lib.rs +0 -166
- package/contracts/oapps/oapp-macros/src/tests/mod.rs +0 -2
- package/contracts/oapps/oapp-macros/src/tests/oapp.rs +0 -74
- package/contracts/oapps/oapp-macros/src/tests/parse_custom_impls.rs +0 -90
- package/contracts/oapps/oapp-macros/src/tests/snapshots/oapp_macros__tests__oapp__snapshot_generate_oapp.snap +0 -111
- package/contracts/oapps/oft/Cargo.toml +0 -30
- package/contracts/oapps/oft/integration-tests/extensions/mod.rs +0 -3
- package/contracts/oapps/oft/integration-tests/extensions/test_oft_fee.rs +0 -172
- package/contracts/oapps/oft/integration-tests/extensions/test_pausable.rs +0 -161
- package/contracts/oapps/oft/integration-tests/extensions/test_rate_limiter.rs +0 -336
- package/contracts/oapps/oft/integration-tests/mod.rs +0 -3
- package/contracts/oapps/oft/integration-tests/setup.rs +0 -306
- package/contracts/oapps/oft/integration-tests/utils.rs +0 -609
- package/contracts/oapps/oft/src/extensions/mod.rs +0 -3
- package/contracts/oapps/oft/src/extensions/oft_fee.rs +0 -281
- package/contracts/oapps/oft/src/extensions/pausable.rs +0 -119
- package/contracts/oapps/oft/src/extensions/rate_limiter.rs +0 -286
- package/contracts/oapps/oft/src/interfaces/mintable.rs +0 -14
- package/contracts/oapps/oft/src/interfaces/mod.rs +0 -3
- package/contracts/oapps/oft/src/lib.rs +0 -24
- package/contracts/oapps/oft/src/oft.rs +0 -176
- package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +0 -50
- package/contracts/oapps/oft/src/oft_types/mint_burn.rs +0 -51
- package/contracts/oapps/oft/src/oft_types/mod.rs +0 -24
- package/contracts/oapps/oft/src/tests/extensions/mod.rs +0 -3
- package/contracts/oapps/oft/src/tests/extensions/oft_fee.rs +0 -260
- package/contracts/oapps/oft/src/tests/extensions/pausable.rs +0 -155
- package/contracts/oapps/oft/src/tests/extensions/rate_limiter.rs +0 -601
- package/contracts/oapps/oft/src/tests/mod.rs +0 -2
- package/contracts/oapps/oft/src/tests/oft_types/lock_unlock.rs +0 -185
- package/contracts/oapps/oft/src/tests/oft_types/mod.rs +0 -1
- package/contracts/oapps/oft-core/Cargo.toml +0 -24
- package/contracts/oapps/oft-core/integration-tests/mod.rs +0 -3
- package/contracts/oapps/oft-core/integration-tests/setup.rs +0 -346
- package/contracts/oapps/oft-core/integration-tests/test_with_sml.rs +0 -156
- package/contracts/oapps/oft-core/integration-tests/utils.rs +0 -220
- package/contracts/oapps/oft-core/src/codec/mod.rs +0 -2
- package/contracts/oapps/oft-core/src/codec/oft_compose_msg_codec.rs +0 -55
- package/contracts/oapps/oft-core/src/codec/oft_msg_codec.rs +0 -58
- package/contracts/oapps/oft-core/src/errors.rs +0 -15
- package/contracts/oapps/oft-core/src/events.rs +0 -32
- package/contracts/oapps/oft-core/src/lib.rs +0 -22
- package/contracts/oapps/oft-core/src/oft_core.rs +0 -594
- package/contracts/oapps/oft-core/src/storage.rs +0 -19
- package/contracts/oapps/oft-core/src/tests/mod.rs +0 -14
- package/contracts/oapps/oft-core/src/tests/test_decimals.rs +0 -124
- package/contracts/oapps/oft-core/src/tests/test_lz_receive.rs +0 -282
- package/contracts/oapps/oft-core/src/tests/test_msg_inspector.rs +0 -324
- package/contracts/oapps/oft-core/src/tests/test_oft_compose_msg_codec.rs +0 -68
- package/contracts/oapps/oft-core/src/tests/test_oft_msg_codec.rs +0 -64
- package/contracts/oapps/oft-core/src/tests/test_oft_version_and_approval.rs +0 -22
- package/contracts/oapps/oft-core/src/tests/test_quote_oft.rs +0 -159
- package/contracts/oapps/oft-core/src/tests/test_quote_send.rs +0 -195
- package/contracts/oapps/oft-core/src/tests/test_resolve_address.rs +0 -37
- package/contracts/oapps/oft-core/src/tests/test_send.rs +0 -915
- package/contracts/oapps/oft-core/src/tests/test_token.rs +0 -47
- package/contracts/oapps/oft-core/src/tests/test_utils.rs +0 -870
- package/contracts/oapps/oft-core/src/types.rs +0 -58
- package/contracts/oapps/oft-core/src/utils.rs +0 -71
- package/contracts/oapps/sac-manager/Cargo.toml +0 -24
- package/contracts/oapps/sac-manager/src/interfaces/mod.rs +0 -3
- package/contracts/oapps/sac-manager/src/interfaces/sac_admin_wrapper.rs +0 -49
- package/contracts/oapps/sac-manager/src/lib.rs +0 -19
- package/contracts/oapps/sac-manager/src/sac_manager.rs +0 -95
- package/contracts/oapps/sac-manager/src/storage.rs +0 -13
- package/contracts/oapps/sac-manager/src/tests/mod.rs +0 -10
- package/contracts/oapps/sac-manager/src/tests/sac_manager/clawback.rs +0 -84
- package/contracts/oapps/sac-manager/src/tests/sac_manager/mint.rs +0 -53
- package/contracts/oapps/sac-manager/src/tests/sac_manager/mod.rs +0 -6
- package/contracts/oapps/sac-manager/src/tests/sac_manager/set_admin.rs +0 -46
- package/contracts/oapps/sac-manager/src/tests/sac_manager/set_authorized.rs +0 -53
- package/contracts/oapps/sac-manager/src/tests/sac_manager/test_helper.rs +0 -35
- package/contracts/oapps/sac-manager/src/tests/sac_manager/view_functions.rs +0 -13
- package/contracts/oapps/sac-manager/src/tests/test_helper.rs +0 -138
- package/contracts/upgrader/src/tests/mod.rs +0 -1
- package/contracts/utils/Cargo.toml +0 -20
- package/contracts/utils/src/auth.rs +0 -48
- package/contracts/utils/src/buffer_reader.rs +0 -194
- package/contracts/utils/src/buffer_writer.rs +0 -138
- package/contracts/utils/src/bytes_ext.rs +0 -18
- package/contracts/utils/src/errors.rs +0 -82
- package/contracts/utils/src/lib.rs +0 -20
- package/contracts/utils/src/multisig.rs +0 -247
- package/contracts/utils/src/option_ext.rs +0 -38
- package/contracts/utils/src/ownable.rs +0 -227
- package/contracts/utils/src/rbac.rs +0 -438
- package/contracts/utils/src/testing_utils.rs +0 -180
- package/contracts/utils/src/tests/auth.rs +0 -179
- package/contracts/utils/src/tests/buffer_reader.rs +0 -969
- package/contracts/utils/src/tests/buffer_writer.rs +0 -689
- package/contracts/utils/src/tests/bytes_ext.rs +0 -160
- package/contracts/utils/src/tests/mod.rs +0 -13
- package/contracts/utils/src/tests/multisig.rs +0 -760
- package/contracts/utils/src/tests/option_ext.rs +0 -18
- package/contracts/utils/src/tests/ownable.rs +0 -822
- package/contracts/utils/src/tests/rbac.rs +0 -559
- package/contracts/utils/src/tests/test_helper.rs +0 -67
- package/contracts/utils/src/tests/testing_utils.rs +0 -522
- package/contracts/utils/src/tests/ttl_configurable.rs +0 -586
- package/contracts/utils/src/tests/ttl_extendable.rs +0 -64
- package/contracts/utils/src/tests/upgradeable.rs +0 -529
- package/contracts/utils/src/ttl_configurable.rs +0 -169
- package/contracts/utils/src/ttl_extendable.rs +0 -25
- package/contracts/utils/src/upgradeable.rs +0 -103
- package/contracts/workers/Cargo.toml +0 -13
- package/contracts/workers/lib.rs +0 -2
- package/docs/error-spec.md +0 -55
- package/docs/layerzero-v2-on-stellar.md +0 -509
- package/docs/oapp-guide.md +0 -405
- package/docs/oft-guide.md +0 -404
- package/sdk/.turbo/turbo-build.log +0 -5
- package/sdk/.turbo/turbo-test.log +0 -1507
- package/sdk/LICENSE +0 -23
- package/sdk/dist/generated/bml.d.ts +0 -670
- package/sdk/dist/generated/bml.d.ts.map +0 -1
- package/sdk/dist/generated/bml.js +0 -292
- package/sdk/dist/generated/bml.js.map +0 -1
- package/sdk/dist/generated/counter.d.ts +0 -1253
- package/sdk/dist/generated/counter.d.ts.map +0 -1
- package/sdk/dist/generated/counter.js +0 -391
- package/sdk/dist/generated/counter.js.map +0 -1
- package/sdk/dist/generated/dvn.d.ts +0 -1569
- package/sdk/dist/generated/dvn.d.ts.map +0 -1
- package/sdk/dist/generated/dvn.js +0 -459
- package/sdk/dist/generated/dvn.js.map +0 -1
- package/sdk/dist/generated/dvn_fee_lib.d.ts +0 -587
- package/sdk/dist/generated/dvn_fee_lib.d.ts.map +0 -1
- package/sdk/dist/generated/dvn_fee_lib.js +0 -186
- package/sdk/dist/generated/dvn_fee_lib.js.map +0 -1
- package/sdk/dist/generated/endpoint.d.ts +0 -1304
- package/sdk/dist/generated/endpoint.d.ts.map +0 -1
- package/sdk/dist/generated/endpoint.js +0 -396
- package/sdk/dist/generated/endpoint.js.map +0 -1
- package/sdk/dist/generated/executor.d.ts +0 -1554
- package/sdk/dist/generated/executor.d.ts.map +0 -1
- package/sdk/dist/generated/executor.js +0 -447
- package/sdk/dist/generated/executor.js.map +0 -1
- package/sdk/dist/generated/executor_fee_lib.d.ts +0 -1037
- package/sdk/dist/generated/executor_fee_lib.d.ts.map +0 -1
- package/sdk/dist/generated/executor_fee_lib.js +0 -351
- package/sdk/dist/generated/executor_fee_lib.js.map +0 -1
- package/sdk/dist/generated/executor_helper.d.ts +0 -883
- package/sdk/dist/generated/executor_helper.d.ts.map +0 -1
- package/sdk/dist/generated/executor_helper.js +0 -354
- package/sdk/dist/generated/executor_helper.js.map +0 -1
- package/sdk/dist/generated/layerzero_view.d.ts +0 -1153
- package/sdk/dist/generated/layerzero_view.d.ts.map +0 -1
- package/sdk/dist/generated/layerzero_view.js +0 -457
- package/sdk/dist/generated/layerzero_view.js.map +0 -1
- package/sdk/dist/generated/oft.d.ts +0 -1638
- package/sdk/dist/generated/oft.d.ts.map +0 -1
- package/sdk/dist/generated/oft.js +0 -463
- package/sdk/dist/generated/oft.js.map +0 -1
- package/sdk/dist/generated/price_feed.d.ts +0 -787
- package/sdk/dist/generated/price_feed.d.ts.map +0 -1
- package/sdk/dist/generated/price_feed.js +0 -231
- package/sdk/dist/generated/price_feed.js.map +0 -1
- package/sdk/dist/generated/sac_manager.d.ts +0 -567
- package/sdk/dist/generated/sac_manager.d.ts.map +0 -1
- package/sdk/dist/generated/sac_manager.js +0 -198
- package/sdk/dist/generated/sac_manager.js.map +0 -1
- package/sdk/dist/generated/sml.d.ts +0 -934
- package/sdk/dist/generated/sml.d.ts.map +0 -1
- package/sdk/dist/generated/sml.js +0 -366
- package/sdk/dist/generated/sml.js.map +0 -1
- package/sdk/dist/generated/treasury.d.ts +0 -892
- package/sdk/dist/generated/treasury.d.ts.map +0 -1
- package/sdk/dist/generated/treasury.js +0 -352
- package/sdk/dist/generated/treasury.js.map +0 -1
- package/sdk/dist/generated/uln302.d.ts +0 -1268
- package/sdk/dist/generated/uln302.d.ts.map +0 -1
- package/sdk/dist/generated/uln302.js +0 -477
- package/sdk/dist/generated/uln302.js.map +0 -1
- package/sdk/dist/generated/upgrader.d.ts +0 -292
- package/sdk/dist/generated/upgrader.d.ts.map +0 -1
- package/sdk/dist/generated/upgrader.js +0 -144
- package/sdk/dist/generated/upgrader.js.map +0 -1
- package/sdk/dist/index.d.ts +0 -17
- package/sdk/dist/index.d.ts.map +0 -1
- package/sdk/dist/index.js +0 -21
- package/sdk/dist/index.js.map +0 -1
- package/sdk/node_modules/.bin/tsc +0 -21
- package/sdk/node_modules/.bin/tsserver +0 -21
- package/sdk/node_modules/.bin/vitest +0 -21
- package/sdk/package.json +0 -50
- package/sdk/src/index.ts +0 -23
- package/sdk/test/counter-sml.test.ts +0 -480
- package/sdk/test/counter-uln.test.ts +0 -584
- package/sdk/test/oft-sml.test.ts +0 -750
- package/sdk/test/sac-manager.test.ts +0 -464
- package/sdk/test/secp256k1.ts +0 -59
- package/sdk/test/suites/constants.ts +0 -51
- package/sdk/test/suites/deploy.ts +0 -312
- package/sdk/test/suites/dummyContractClient.ts +0 -168
- package/sdk/test/suites/globalSetup.ts +0 -604
- package/sdk/test/suites/localnet.ts +0 -192
- package/sdk/test/suites/scan.ts +0 -202
- package/sdk/test/test_data/test_upgradeable_dvn.wasm +0 -0
- package/sdk/test/upgrader.test.ts +0 -194
- package/sdk/test/utils.ts +0 -671
- package/sdk/tsconfig.json +0 -21
- package/sdk/tsconfig.test.json +0 -10
- package/sdk/turbo.json +0 -15
- package/sdk/vitest.config.ts +0 -21
- package/ts-bindings-gen.toml +0 -67
- package/turbo-snapshot.lock.json +0 -194
- package/turbo.json +0 -26
- package/{contracts/endpoint-v2 → endpoint-v2}/src/endpoint_v2.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/errors.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/events.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/layerzero_composer.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/layerzero_endpoint_v2.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/layerzero_receiver.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/message_lib.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/message_lib_manager.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/messaging_channel.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/messaging_composer.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/mod.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/send_lib.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/lib.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/message_lib_manager.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/messaging_channel.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/messaging_composer.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/storage.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_setup.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/build_outbound_packet.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/clear.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/delegate.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/initializable.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/lz_receive_alert.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/mod.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/native_token.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/owner.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/recover_token.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/require_oapp_auth.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/send.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/set_delegate.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/set_zro.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/transfer_ownership.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/verify.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/zro.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/default_receive_library.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/default_receive_library_timeout.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/default_send_library.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/get_config.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/get_library_index.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/get_receive_library.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/get_registered_libraries.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/get_send_library.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/is_registered_library.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/is_supported_eid.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/is_valid_receive_library.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/mod.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/receive_library_timeout.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/register_library.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/registered_libraries_count.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/require_registered.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_config.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_default_receive_library.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_default_send_library.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_receive_library.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_receive_library_timeout.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_send_library.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/timeout.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/burn.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/inbound_nonce.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/inbound_payload_hash.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/insert_and_drain_pending_nonces.rs +0 -0
- package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/mod.rs +1 -1
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/next_guid.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/outbound.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/outbound_nonce.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/skip.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_composer/clear_compose.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_composer/compose_queue.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_composer/mod.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_composer/send_compose.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/mock.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/mod.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/util/build_payload.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/util/compute_guid.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/util/keccak256.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/util/mod.rs +0 -0
- /package/{contracts/endpoint-v2 → endpoint-v2}/src/util.rs +0 -0
- /package/{contracts/layerzero-views → layerzero-views}/src/errors.rs +0 -0
- /package/{contracts/layerzero-views → layerzero-views}/src/layerzero_view.rs +0 -0
- /package/{contracts/layerzero-views → layerzero-views}/src/lib.rs +0 -0
- /package/{contracts/layerzero-views → layerzero-views}/src/storage.rs +0 -0
- /package/{contracts/layerzero-views → layerzero-views}/src/tests/layerzero_view_tests.rs +0 -0
- /package/{contracts/layerzero-views → layerzero-views}/src/tests/mod.rs +0 -0
- /package/{contracts/layerzero-views → layerzero-views}/src/tests/setup.rs +0 -0
- /package/{contracts/layerzero-views → layerzero-views}/src/tests/types_tests.rs +0 -0
- /package/{contracts/layerzero-views → layerzero-views}/src/types.rs +0 -0
- /package/{contracts/message-libs → message-libs}/blocked-message-lib/src/lib.rs +0 -0
- /package/{contracts/message-libs → message-libs}/blocked-message-lib/src/tests/blocked_message_lib_tests.rs +0 -0
- /package/{contracts/message-libs → message-libs}/blocked-message-lib/src/tests/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/blocked-message-lib/src/tests/setup.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/errors.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/interfaces/dvn.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/interfaces/executor.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/interfaces/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/interfaces/treasury.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/lib.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/packet_codec_v1.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/testing_utils.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/decode_packet_header.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/encode_packet.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/encode_packet_header.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/payload.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/payload_hash.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/test_helper.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/append_dvn_option.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/append_lz_receive_option.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/append_native_drop_option.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/convert_legacy_options.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/extract_type_3_options.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/left_pad_to_bytes32.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/split_worker_options.rs +0 -0
- /package/{contracts/message-libs → message-libs}/message-lib-common/src/worker_options.rs +0 -0
- /package/{contracts/message-libs → message-libs}/simple-message-lib/src/errors.rs +0 -0
- /package/{contracts/message-libs → message-libs}/simple-message-lib/src/lib.rs +0 -0
- /package/{contracts/message-libs → message-libs}/simple-message-lib/src/simple_message_lib.rs +0 -0
- /package/{contracts/message-libs → message-libs}/simple-message-lib/src/storage.rs +0 -0
- /package/{contracts/message-libs → message-libs}/simple-message-lib/src/tests/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/simple-message-lib/src/tests/setup.rs +0 -0
- /package/{contracts/message-libs → message-libs}/simple-message-lib/src/tests/simple_message_lib_tests.rs +0 -0
- /package/{contracts/message-libs → message-libs}/treasury/src/errors.rs +0 -0
- /package/{contracts/message-libs → message-libs}/treasury/src/events.rs +0 -0
- /package/{contracts/message-libs → message-libs}/treasury/src/interfaces/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/treasury/src/interfaces/zro_fee_lib.rs +0 -0
- /package/{contracts/message-libs → message-libs}/treasury/src/lib.rs +0 -0
- /package/{contracts/message-libs → message-libs}/treasury/src/storage.rs +0 -0
- /package/{contracts/message-libs → message-libs}/treasury/src/tests/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/treasury/src/tests/setup.rs +0 -0
- /package/{contracts/message-libs → message-libs}/treasury/src/tests/treasury_tests.rs +0 -0
- /package/{contracts/message-libs → message-libs}/treasury/src/treasury.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/errors.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/events.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/interfaces/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/interfaces/receive_uln.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/interfaces/send_uln.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/lib.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/receive_uln.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/send_uln.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/storage.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/config/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/config/oapp_uln_config.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/config/uln_config.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/commit_verification.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/confirmations.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/verifiable.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/verify.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/effective_executor_config.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/quote.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/setup.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/testing_utils.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/uln302/get_app_send_uln_config.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/uln302/get_config.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/uln302/get_oapp_executor_config.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/uln302/mod.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/tests/uln302/set_config.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/types.rs +0 -0
- /package/{contracts/message-libs → message-libs}/uln-302/src/uln302.rs +0 -0
- /package/{contracts/upgrader → upgrader}/src/lib.rs +0 -0
- /package/{contracts/upgrader → upgrader}/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
- /package/{contracts/upgrader → upgrader}/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
- /package/{contracts/upgrader → upgrader}/src/tests/test_data/test_upgradeable_contract3.wasm +0 -0
- /package/{contracts/upgrader → upgrader}/src/tests/test_data/test_upgradeable_contract4.wasm +0 -0
- /package/{contracts/upgrader → upgrader}/src/tests/test_upgrader.rs +0 -0
- /package/{contracts/workers → workers}/dvn/src/auth.rs +0 -0
- /package/{contracts/workers → workers}/dvn/src/dvn.rs +0 -0
- /package/{contracts/workers → workers}/dvn/src/errors.rs +0 -0
- /package/{contracts/workers → workers}/dvn/src/events.rs +0 -0
- /package/{contracts/workers → workers}/dvn/src/interfaces/dvn.rs +0 -0
- /package/{contracts/workers → workers}/dvn/src/interfaces/mod.rs +0 -0
- /package/{contracts/workers → workers}/dvn/src/lib.rs +0 -0
- /package/{contracts/workers → workers}/dvn/src/storage.rs +0 -0
- /package/{contracts/workers → workers}/dvn/src/tests/dvn.rs +0 -0
- /package/{contracts/workers → workers}/dvn/src/tests/key_pair.rs +0 -0
- /package/{contracts/workers → workers}/dvn/src/tests/mod.rs +0 -0
- /package/{contracts/workers → workers}/dvn/src/tests/setup.rs +0 -0
- /package/{contracts/workers → workers}/dvn-fee-lib/src/dvn_fee_lib.rs +0 -0
- /package/{contracts/workers → workers}/dvn-fee-lib/src/errors.rs +0 -0
- /package/{contracts/workers → workers}/dvn-fee-lib/src/lib.rs +0 -0
- /package/{contracts/workers → workers}/dvn-fee-lib/src/tests/dvn_fee_lib.rs +0 -0
- /package/{contracts/workers → workers}/dvn-fee-lib/src/tests/mod.rs +0 -0
- /package/{contracts/workers → workers}/executor/src/errors.rs +0 -0
- /package/{contracts/workers → workers}/executor/src/events.rs +0 -0
- /package/{contracts/workers → workers}/executor/src/executor.rs +0 -0
- /package/{contracts/workers → workers}/executor/src/interfaces/executor.rs +0 -0
- /package/{contracts/workers → workers}/executor/src/interfaces/mod.rs +0 -0
- /package/{contracts/workers → workers}/executor/src/lib.rs +0 -0
- /package/{contracts/workers → workers}/executor/src/tests/mod.rs +0 -0
- /package/{contracts/workers → workers}/executor-fee-lib/src/errors.rs +0 -0
- /package/{contracts/workers → workers}/executor-fee-lib/src/executor_fee_lib.rs +0 -0
- /package/{contracts/workers → workers}/executor-fee-lib/src/executor_option.rs +0 -0
- /package/{contracts/workers → workers}/executor-fee-lib/src/lib.rs +0 -0
- /package/{contracts/workers → workers}/executor-fee-lib/src/tests/mod.rs +0 -0
- /package/{contracts/workers → workers}/executor-fee-lib/src/tests/setup.rs +0 -0
- /package/{contracts/workers → workers}/executor-helper/src/lib.rs +0 -0
- /package/{contracts/workers → workers}/executor-helper/src/tests/mod.rs +0 -0
- /package/{contracts/workers → workers}/executor-helper/src/tests/setup.rs +0 -0
- /package/{contracts/workers → workers}/fee-lib-interfaces/src/dvn_fee_lib.rs +0 -0
- /package/{contracts/workers → workers}/fee-lib-interfaces/src/executor_fee_lib.rs +0 -0
- /package/{contracts/workers → workers}/fee-lib-interfaces/src/lib.rs +0 -0
- /package/{contracts/workers → workers}/fee-lib-interfaces/src/price_feed.rs +0 -0
- /package/{contracts/workers → workers}/price-feed/src/errors.rs +0 -0
- /package/{contracts/workers → workers}/price-feed/src/events.rs +0 -0
- /package/{contracts/workers → workers}/price-feed/src/lib.rs +0 -0
- /package/{contracts/workers → workers}/price-feed/src/price_feed.rs +0 -0
- /package/{contracts/workers → workers}/price-feed/src/storage.rs +0 -0
- /package/{contracts/workers → workers}/price-feed/src/tests/mod.rs +0 -0
- /package/{contracts/workers → workers}/price-feed/src/tests/setup.rs +0 -0
- /package/{contracts/workers → workers}/price-feed/src/types.rs +0 -0
- /package/{contracts/workers → workers}/worker/src/errors.rs +0 -0
- /package/{contracts/workers → workers}/worker/src/events.rs +0 -0
- /package/{contracts/workers → workers}/worker/src/lib.rs +0 -0
- /package/{contracts/workers → workers}/worker/src/storage.rs +0 -0
- /package/{contracts/workers → workers}/worker/src/tests/mod.rs +0 -0
- /package/{contracts/workers → workers}/worker/src/tests/setup.rs +0 -0
- /package/{contracts/workers → workers}/worker/src/worker.rs +0 -0
|
@@ -1,585 +0,0 @@
|
|
|
1
|
-
//! Common procedural macros for Stellar smart contracts.
|
|
2
|
-
//!
|
|
3
|
-
//! # Quick Links
|
|
4
|
-
//! - [`contract_error`] - Error enum generation macro
|
|
5
|
-
//! - [`contract_impl`] - Contract impl with automatic instance TTL extension
|
|
6
|
-
//! - [`contract_trait`] - Contract trait with automatic instance TTL extension
|
|
7
|
-
//! - [`lz_contract`] - Wrapper macro combining common LayerZero contract attributes
|
|
8
|
-
//! - [`multisig`] - MultiSig trait implementation macro
|
|
9
|
-
//! - [`only_auth`] - Auth-based access control attribute macro
|
|
10
|
-
//! - [`only_role`] - RBAC role check with auth attribute macro
|
|
11
|
-
//! - [`has_role`] - RBAC role check attribute macro
|
|
12
|
-
//! - [`ownable`] - Ownable trait implementation macro
|
|
13
|
-
//! - [`storage`] - Storage enum to API macro
|
|
14
|
-
//! - [`ttl_configurable`] - TTL configuration with freeze support
|
|
15
|
-
//! - [`ttl_extendable`] - Manual instance TTL extension
|
|
16
|
-
//! - [`upgradeable`] - Upgradeable trait implementation macro
|
|
17
|
-
//!
|
|
18
|
-
|
|
19
|
-
use proc_macro::TokenStream;
|
|
20
|
-
|
|
21
|
-
mod auth;
|
|
22
|
-
mod contract_ttl;
|
|
23
|
-
mod error;
|
|
24
|
-
mod lz_contract;
|
|
25
|
-
mod rbac;
|
|
26
|
-
mod storage;
|
|
27
|
-
mod ttl_configurable;
|
|
28
|
-
mod ttl_extendable;
|
|
29
|
-
mod upgradeable;
|
|
30
|
-
mod utils;
|
|
31
|
-
|
|
32
|
-
#[cfg(test)]
|
|
33
|
-
mod tests;
|
|
34
|
-
|
|
35
|
-
// ============================================================================
|
|
36
|
-
// Storage Macro
|
|
37
|
-
// ============================================================================
|
|
38
|
-
|
|
39
|
-
/// Generates strongly-typed storage API from enum variants.
|
|
40
|
-
///
|
|
41
|
-
/// Transforms a storage enum into getter/setter/remove/set_or_remove/has/extend_ttl methods.
|
|
42
|
-
/// TTL extension is automatic for persistent storage on get/set/has operations.
|
|
43
|
-
///
|
|
44
|
-
/// # Example
|
|
45
|
-
/// ```ignore
|
|
46
|
-
/// #[storage]
|
|
47
|
-
/// pub enum DataKey {
|
|
48
|
-
/// #[instance(u32)]
|
|
49
|
-
/// Counter,
|
|
50
|
-
///
|
|
51
|
-
/// #[persistent(Address)]
|
|
52
|
-
/// #[default(Address::default())]
|
|
53
|
-
/// Owner,
|
|
54
|
-
///
|
|
55
|
-
/// #[persistent(u64)]
|
|
56
|
-
/// Nonce { user: Address },
|
|
57
|
-
///
|
|
58
|
-
/// #[persistent(BytesN<32>)]
|
|
59
|
-
/// #[no_ttl_extension] // opt-out of automatic TTL extension
|
|
60
|
-
/// CacheData,
|
|
61
|
-
///
|
|
62
|
-
/// #[temporary(BytesN<32>)]
|
|
63
|
-
/// TempData,
|
|
64
|
-
/// }
|
|
65
|
-
///
|
|
66
|
-
/// // Generated API for instance storage (no extend_ttl method):
|
|
67
|
-
/// DataKey::counter(&env) // -> Option<u32>
|
|
68
|
-
/// DataKey::set_counter(&env, &value) // set value
|
|
69
|
-
/// DataKey::has_counter(&env) // -> bool
|
|
70
|
-
/// DataKey::remove_counter(&env) // remove entry
|
|
71
|
-
/// DataKey::set_or_remove_counter(&env, &opt) // set if Some, remove if None
|
|
72
|
-
///
|
|
73
|
-
/// // Generated API for persistent/temporary storage (includes extend_ttl):
|
|
74
|
-
/// DataKey::nonce(&env, &user) // -> Option<u64>
|
|
75
|
-
/// DataKey::set_nonce(&env, &user, &value)
|
|
76
|
-
/// DataKey::has_nonce(&env, &user) // -> bool
|
|
77
|
-
/// DataKey::remove_nonce(&env, &user)
|
|
78
|
-
/// DataKey::set_or_remove_nonce(&env, &user, &opt)
|
|
79
|
-
/// DataKey::extend_nonce_ttl(&env, &user, threshold, extend_to) // manual TTL extension
|
|
80
|
-
/// ```
|
|
81
|
-
///
|
|
82
|
-
/// # Storage Types (required, exactly one per variant)
|
|
83
|
-
/// - `#[instance(Type)]` - Stored with contract instance (no extend_ttl method generated)
|
|
84
|
-
/// - `#[persistent(Type)]` - Durable ledger entries (TTL auto-extended on get/set/has)
|
|
85
|
-
/// - `#[temporary(Type)]` - Short-lived entries
|
|
86
|
-
///
|
|
87
|
-
/// # Variant Attributes (optional)
|
|
88
|
-
/// - `#[default(expr)]` - Default value; changes getter return from `Option<T>` to `T`
|
|
89
|
-
/// - `#[name("custom")]` - Override the generated function name base
|
|
90
|
-
/// - `#[no_ttl_extension]` - Disable automatic TTL extension for this persistent variant
|
|
91
|
-
#[proc_macro_attribute]
|
|
92
|
-
pub fn storage(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
93
|
-
storage::generate_storage(item.into()).into()
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// ============================================================================
|
|
97
|
-
// Error Macro
|
|
98
|
-
// ============================================================================
|
|
99
|
-
|
|
100
|
-
/// Generates a Soroban contract error enum with all required attributes and derives.
|
|
101
|
-
///
|
|
102
|
-
/// This macro simplifies error enum definitions by automatically adding:
|
|
103
|
-
/// - `#[contracterror]` from soroban-sdk for Soroban compatibility
|
|
104
|
-
/// - `#[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)]` for standard error traits
|
|
105
|
-
/// - `#[repr(u32)]` for stable ABI representation
|
|
106
|
-
///
|
|
107
|
-
/// # Discriminant Assignment
|
|
108
|
-
///
|
|
109
|
-
/// Variants without explicit discriminants are automatically assigned sequential values
|
|
110
|
-
/// starting at 1. Explicit discriminants must be strictly increasing.
|
|
111
|
-
///
|
|
112
|
-
/// # Constraints
|
|
113
|
-
///
|
|
114
|
-
/// - All variants must be unit variants (no fields)
|
|
115
|
-
/// - Explicit discriminants must be valid `u32` integer literals
|
|
116
|
-
/// - Each discriminant must be greater than the previous one
|
|
117
|
-
///
|
|
118
|
-
/// # Examples
|
|
119
|
-
///
|
|
120
|
-
/// Basic usage with auto-assigned discriminants:
|
|
121
|
-
///
|
|
122
|
-
/// ```ignore
|
|
123
|
-
/// #[contract_error]
|
|
124
|
-
/// pub enum MyError {
|
|
125
|
-
/// InvalidInput, // = 1
|
|
126
|
-
/// Unauthorized, // = 2
|
|
127
|
-
/// NotFound, // = 3
|
|
128
|
-
/// }
|
|
129
|
-
/// ```
|
|
130
|
-
///
|
|
131
|
-
/// Mixed explicit and auto-assigned discriminants:
|
|
132
|
-
///
|
|
133
|
-
/// ```ignore
|
|
134
|
-
/// #[contract_error]
|
|
135
|
-
/// pub enum MyError {
|
|
136
|
-
/// InvalidInput, // = 1
|
|
137
|
-
/// Unauthorized, // = 2
|
|
138
|
-
/// NotFound = 10, // = 10 (explicit)
|
|
139
|
-
/// Expired, // = 11
|
|
140
|
-
/// }
|
|
141
|
-
/// ```
|
|
142
|
-
#[proc_macro_attribute]
|
|
143
|
-
pub fn contract_error(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
144
|
-
error::generate_error(item.into()).into()
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// ============================================================================
|
|
148
|
-
// Ownable Macro
|
|
149
|
-
// ============================================================================
|
|
150
|
-
|
|
151
|
-
/// Generates ownable implementation with owner-based access control.
|
|
152
|
-
///
|
|
153
|
-
/// Implements the `Ownable` trait and provides owner initialization and
|
|
154
|
-
/// ownership transfer functionality.
|
|
155
|
-
///
|
|
156
|
-
/// # Example
|
|
157
|
-
/// ```ignore
|
|
158
|
-
/// #[ownable]
|
|
159
|
-
/// pub struct MyContract;
|
|
160
|
-
/// ```
|
|
161
|
-
///
|
|
162
|
-
/// Generated code includes:
|
|
163
|
-
/// - `OwnableInitializer` trait impl - Use `<Self as OwnableInitializer>::init_owner(env, owner)` to initialize
|
|
164
|
-
/// - `Auth` trait impl - `authorizer(env)` returns the stored owner address
|
|
165
|
-
/// - `Ownable` trait impl
|
|
166
|
-
#[proc_macro_attribute]
|
|
167
|
-
pub fn ownable(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
168
|
-
auth::generate_ownable_impl(item.into()).into()
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// ============================================================================
|
|
172
|
-
// MultiSig Macro
|
|
173
|
-
// ============================================================================
|
|
174
|
-
|
|
175
|
-
/// Generates multisig implementation with self-owning access control.
|
|
176
|
-
///
|
|
177
|
-
/// Implements the `MultiSig` trait and the `Auth` trait with self-owning pattern,
|
|
178
|
-
/// where the contract's own address is the authorizer. This allows multisig
|
|
179
|
-
/// quorum approval to serve as the authorizer for owner-protected operations
|
|
180
|
-
/// like TTL configuration and upgrades.
|
|
181
|
-
///
|
|
182
|
-
/// # Example
|
|
183
|
-
/// ```ignore
|
|
184
|
-
/// #[multisig]
|
|
185
|
-
/// pub struct MyContract;
|
|
186
|
-
/// ```
|
|
187
|
-
///
|
|
188
|
-
/// Generated code includes:
|
|
189
|
-
/// - `Auth` trait impl - `authorizer(env)` returns `env.current_contract_address()`
|
|
190
|
-
/// - `MultiSig` trait impl
|
|
191
|
-
#[proc_macro_attribute]
|
|
192
|
-
pub fn multisig(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
193
|
-
auth::generate_multisig_impl(item.into()).into()
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// ============================================================================
|
|
197
|
-
// Only Auth Macro
|
|
198
|
-
// ============================================================================
|
|
199
|
-
|
|
200
|
-
/// Restricts function access to the contract authorizer only.
|
|
201
|
-
///
|
|
202
|
-
/// This attribute macro injects an auth check at the beginning of the function
|
|
203
|
-
/// using the `Auth` trait. The function will panic if called without authorization.
|
|
204
|
-
///
|
|
205
|
-
/// Works with any contract that implements `Auth`, including both `Ownable` and
|
|
206
|
-
/// `MultiSig` contracts.
|
|
207
|
-
///
|
|
208
|
-
/// # Requirements
|
|
209
|
-
/// - The function must have an `Env` parameter (by value or reference)
|
|
210
|
-
/// - The containing contract must implement the `Auth` trait
|
|
211
|
-
///
|
|
212
|
-
/// # Example
|
|
213
|
-
/// ```ignore
|
|
214
|
-
/// #[ownable] // or implement `#[multisig]`
|
|
215
|
-
/// pub struct MyContract;
|
|
216
|
-
///
|
|
217
|
-
/// #[soroban_sdk::contractimpl]
|
|
218
|
-
/// impl MyContract {
|
|
219
|
-
/// #[only_auth]
|
|
220
|
-
/// pub fn protected_action(env: Env) {
|
|
221
|
-
/// // Only the authorizer can execute this
|
|
222
|
-
/// }
|
|
223
|
-
/// }
|
|
224
|
-
/// ```
|
|
225
|
-
///
|
|
226
|
-
/// Generated code (conceptual):
|
|
227
|
-
/// ```ignore
|
|
228
|
-
/// pub fn protected_action(env: Env) {
|
|
229
|
-
/// utils::auth::require_auth::<Self>(&env);
|
|
230
|
-
/// // Original function body
|
|
231
|
-
/// }
|
|
232
|
-
/// ```
|
|
233
|
-
#[proc_macro_attribute]
|
|
234
|
-
pub fn only_auth(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
235
|
-
auth::prepend_only_auth_check(item.into()).into()
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
// ============================================================================
|
|
239
|
-
// RBAC Macros
|
|
240
|
-
// ============================================================================
|
|
241
|
-
|
|
242
|
-
/// Checks that the given account has the specified role.
|
|
243
|
-
///
|
|
244
|
-
/// Injects a role check at the start of the function. Panics with
|
|
245
|
-
/// `RbacError::Unauthorized` if the account does not have the role (aligns with OpenZeppelin).
|
|
246
|
-
///
|
|
247
|
-
/// # Security Warning
|
|
248
|
-
///
|
|
249
|
-
/// **IMPORTANT**: This macro checks role membership but does NOT call
|
|
250
|
-
/// `require_auth()`. Use this macro when:
|
|
251
|
-
///
|
|
252
|
-
/// 1. Your function already contains a `require_auth()` call for the account
|
|
253
|
-
/// 2. You need role-based access control without authorization enforcement
|
|
254
|
-
///
|
|
255
|
-
/// If you need both role checking AND authorization, use `#[only_role]` instead.
|
|
256
|
-
///
|
|
257
|
-
/// # Requirements
|
|
258
|
-
/// - The function must have an `Env` parameter
|
|
259
|
-
/// - The function must have a parameter matching the first macro arg (of type `Address` or `&Address`)
|
|
260
|
-
/// - The contract must implement `RoleBasedAccessControl` (which extends `Auth`)
|
|
261
|
-
///
|
|
262
|
-
/// # Example
|
|
263
|
-
/// ```ignore
|
|
264
|
-
/// #[has_role(caller, "minter")]
|
|
265
|
-
/// pub fn mint(env: Env, caller: Address, amount: i128) { ... }
|
|
266
|
-
///
|
|
267
|
-
/// // Or with a &str constant:
|
|
268
|
-
/// const MINTER_ROLE: &str = "minter";
|
|
269
|
-
/// #[has_role(caller, MINTER_ROLE)]
|
|
270
|
-
/// pub fn mint(env: Env, caller: Address, amount: i128) { ... }
|
|
271
|
-
/// ```
|
|
272
|
-
///
|
|
273
|
-
/// # Generated code
|
|
274
|
-
/// ```ignore
|
|
275
|
-
/// pub fn mint(env: Env, caller: Address, amount: i128) {
|
|
276
|
-
/// utils::rbac::ensure_role::<Self>(&env, &soroban_sdk::Symbol::new(&env, "minter"), &caller);
|
|
277
|
-
/// // Original function body (no require_auth)
|
|
278
|
-
/// }
|
|
279
|
-
/// ```
|
|
280
|
-
#[proc_macro_attribute]
|
|
281
|
-
pub fn has_role(attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
282
|
-
rbac::generate_role_check(attr.into(), item.into(), false).into()
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
/// Checks that the given account has the specified role and requires auth.
|
|
286
|
-
///
|
|
287
|
-
/// Same as `#[has_role]` but also calls `account.require_auth()` to ensure
|
|
288
|
-
/// the caller has authorized the transaction.
|
|
289
|
-
///
|
|
290
|
-
/// **IMPORTANT**: This macro both checks role membership AND enforces
|
|
291
|
-
/// authorization. In Stellar contracts, duplicate `require_auth()` calls for
|
|
292
|
-
/// the same account will cause panics. If your function already contains a
|
|
293
|
-
/// `require_auth()` call for the same account, use `#[has_role]` instead to
|
|
294
|
-
/// avoid duplicate authorization checks.
|
|
295
|
-
///
|
|
296
|
-
/// # Requirements
|
|
297
|
-
/// Same as `#[has_role]`.
|
|
298
|
-
///
|
|
299
|
-
/// # Example
|
|
300
|
-
/// ```ignore
|
|
301
|
-
/// #[only_role(caller, "minter")]
|
|
302
|
-
/// pub fn mint(env: Env, caller: Address, amount: i128) { ... }
|
|
303
|
-
///
|
|
304
|
-
/// // Or with a &str constant: #[only_role(caller, MINTER_ROLE)]
|
|
305
|
-
/// ```
|
|
306
|
-
///
|
|
307
|
-
/// # Generated code
|
|
308
|
-
/// ```ignore
|
|
309
|
-
/// pub fn mint(env: Env, caller: Address, amount: i128) {
|
|
310
|
-
/// utils::rbac::ensure_role::<Self>(&env, &soroban_sdk::Symbol::new(&env, "minter"), &caller);
|
|
311
|
-
/// caller.require_auth();
|
|
312
|
-
/// // Original function body
|
|
313
|
-
/// }
|
|
314
|
-
/// ```
|
|
315
|
-
#[proc_macro_attribute]
|
|
316
|
-
pub fn only_role(attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
317
|
-
rbac::generate_role_check(attr.into(), item.into(), true).into()
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
// ============================================================================
|
|
321
|
-
// TTL Configuration Macro
|
|
322
|
-
// ============================================================================
|
|
323
|
-
|
|
324
|
-
/// Generates TtlConfigurable trait implementation.
|
|
325
|
-
///
|
|
326
|
-
/// This macro implements the `TtlConfigurable` trait for a contract struct,
|
|
327
|
-
/// providing TTL configuration management with auth-based access control.
|
|
328
|
-
///
|
|
329
|
-
/// # Requirements
|
|
330
|
-
/// The contract must implement the `Auth` trait (typically via `#[ownable]` or `#[multisig]`).
|
|
331
|
-
///
|
|
332
|
-
/// # Example
|
|
333
|
-
/// ```ignore
|
|
334
|
-
/// #[ownable] // or `#[multisig]` for self-owning contracts
|
|
335
|
-
/// #[ttl_configurable]
|
|
336
|
-
/// pub struct MyContract;
|
|
337
|
-
/// ```
|
|
338
|
-
///
|
|
339
|
-
/// Generated code includes:
|
|
340
|
-
/// - `set_ttl_configs(env, instance, persistent)` - Set TTL configs (auth required)
|
|
341
|
-
/// - `ttl_configs(env)` - Get current TTL configs (instance, persistent)
|
|
342
|
-
/// - `freeze_ttl_configs(env)` - Permanently freeze TTL configs (auth required)
|
|
343
|
-
/// - `is_ttl_configs_frozen(env)` - Check if TTL configs are frozen
|
|
344
|
-
#[proc_macro_attribute]
|
|
345
|
-
pub fn ttl_configurable(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
346
|
-
ttl_configurable::generate_ttl_configurable_impl(item.into()).into()
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
// ============================================================================
|
|
350
|
-
// TTL Extendable Macro
|
|
351
|
-
// ============================================================================
|
|
352
|
-
|
|
353
|
-
/// Generates TtlExtendable trait implementation for manual instance TTL extension.
|
|
354
|
-
///
|
|
355
|
-
/// This macro implements the `TtlExtendable` trait, providing a public
|
|
356
|
-
/// `extend_instance_ttl` function that allows external callers to extend
|
|
357
|
-
/// the contract's instance storage TTL.
|
|
358
|
-
///
|
|
359
|
-
/// # Example
|
|
360
|
-
/// ```ignore
|
|
361
|
-
/// #[contract]
|
|
362
|
-
/// #[ttl_extendable]
|
|
363
|
-
/// pub struct MyContract;
|
|
364
|
-
/// ```
|
|
365
|
-
///
|
|
366
|
-
/// Generated code includes:
|
|
367
|
-
/// - `extend_instance_ttl(env, threshold, extend_to)` - Extends instance TTL
|
|
368
|
-
#[proc_macro_attribute]
|
|
369
|
-
pub fn ttl_extendable(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
370
|
-
ttl_extendable::generate_ttl_extendable_impl(item.into()).into()
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
// ============================================================================
|
|
374
|
-
// Contract Impl Macro
|
|
375
|
-
// ============================================================================
|
|
376
|
-
|
|
377
|
-
/// Wraps `#[soroban_sdk::contractimpl]` with automatic instance TTL extension.
|
|
378
|
-
///
|
|
379
|
-
/// This macro applies `#[soroban_sdk::contractimpl]` and injects TTL extension logic
|
|
380
|
-
/// at the beginning of each contract entry function to keep the contract instance alive.
|
|
381
|
-
///
|
|
382
|
-
/// # Requirements
|
|
383
|
-
/// - The contract struct must have `#[ttl_configurable]` applied to provide `ttl_configs()`
|
|
384
|
-
/// - Methods must have an `Env` parameter to receive TTL extension
|
|
385
|
-
///
|
|
386
|
-
/// # Behavior
|
|
387
|
-
/// - **Inherent impls** (`impl MyContract`): Only public methods receive TTL extension
|
|
388
|
-
/// - **Trait impls** (`impl SomeTrait for MyContract`): All methods receive TTL extension
|
|
389
|
-
/// - Methods without an `Env` parameter are skipped
|
|
390
|
-
///
|
|
391
|
-
/// # Example
|
|
392
|
-
/// ```ignore
|
|
393
|
-
/// #[contract]
|
|
394
|
-
/// #[ttl_configurable]
|
|
395
|
-
/// pub struct MyContract;
|
|
396
|
-
///
|
|
397
|
-
/// #[contract_impl]
|
|
398
|
-
/// impl MyContract {
|
|
399
|
-
/// pub fn my_method(env: &Env) {
|
|
400
|
-
/// // TTL extension is automatically injected here
|
|
401
|
-
/// // ... your code
|
|
402
|
-
/// }
|
|
403
|
-
/// }
|
|
404
|
-
/// ```
|
|
405
|
-
///
|
|
406
|
-
/// Generated code (conceptual):
|
|
407
|
-
/// ```ignore
|
|
408
|
-
/// #[soroban_sdk::contractimpl]
|
|
409
|
-
/// impl MyContract {
|
|
410
|
-
/// pub fn my_method(env: &Env) {
|
|
411
|
-
/// utils::ttl_configurable::extend_instance_ttl(env);
|
|
412
|
-
/// // ... your code
|
|
413
|
-
/// }
|
|
414
|
-
/// }
|
|
415
|
-
/// ```
|
|
416
|
-
#[proc_macro_attribute]
|
|
417
|
-
pub fn contract_impl(attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
418
|
-
contract_ttl::contractimpl_with_ttl(attr.into(), item.into()).into()
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
// ============================================================================
|
|
422
|
-
// Contract Trait Macro
|
|
423
|
-
// ============================================================================
|
|
424
|
-
|
|
425
|
-
/// Wraps `#[soroban_sdk::contracttrait]` with automatic instance TTL extension.
|
|
426
|
-
///
|
|
427
|
-
/// This macro applies `#[soroban_sdk::contracttrait]` and injects TTL extension logic
|
|
428
|
-
/// at the beginning of each default trait method to keep the contract instance alive.
|
|
429
|
-
///
|
|
430
|
-
/// # Requirements
|
|
431
|
-
/// - The implementing contract must have `#[ttl_configurable]` applied
|
|
432
|
-
/// - Methods must have an `Env` parameter to receive TTL extension
|
|
433
|
-
/// - Only methods with default implementations are processed
|
|
434
|
-
///
|
|
435
|
-
/// # Behavior
|
|
436
|
-
/// - All default methods with an `Env` parameter receive TTL extension
|
|
437
|
-
/// - Methods without a body (abstract methods) are not modified
|
|
438
|
-
/// - Methods without an `Env` parameter are skipped
|
|
439
|
-
///
|
|
440
|
-
/// # Example
|
|
441
|
-
/// ```ignore
|
|
442
|
-
/// #[contract_trait]
|
|
443
|
-
/// pub trait MyTrait {
|
|
444
|
-
/// /// This method will have TTL extension injected
|
|
445
|
-
/// fn my_method(env: &Env) {
|
|
446
|
-
/// // TTL extension is automatically injected here
|
|
447
|
-
/// // ... your code
|
|
448
|
-
/// }
|
|
449
|
-
///
|
|
450
|
-
/// /// Abstract methods are not modified
|
|
451
|
-
/// fn abstract_method(env: &Env) -> u32;
|
|
452
|
-
/// }
|
|
453
|
-
/// ```
|
|
454
|
-
///
|
|
455
|
-
/// Generated code (conceptual):
|
|
456
|
-
/// ```ignore
|
|
457
|
-
/// #[soroban_sdk::contracttrait]
|
|
458
|
-
/// pub trait MyTrait {
|
|
459
|
-
/// fn my_method(env: &Env) {
|
|
460
|
-
/// utils::ttl_configurable::extend_instance_ttl(env);
|
|
461
|
-
/// // ... your code
|
|
462
|
-
/// }
|
|
463
|
-
///
|
|
464
|
-
/// fn abstract_method(env: &Env) -> u32;
|
|
465
|
-
/// }
|
|
466
|
-
/// ```
|
|
467
|
-
#[proc_macro_attribute]
|
|
468
|
-
pub fn contract_trait(attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
469
|
-
contract_ttl::contracttrait_with_ttl(attr.into(), item.into()).into()
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
// ============================================================================
|
|
473
|
-
// Upgradeable Macro
|
|
474
|
-
// ============================================================================
|
|
475
|
-
|
|
476
|
-
/// Generates upgradeable implementation using `Upgradeable` or `UpgradeableRbac` traits.
|
|
477
|
-
///
|
|
478
|
-
/// `Upgradeable` uses Auth directly; `UpgradeableRbac` layers RoleBased
|
|
479
|
-
/// access control on top of Auth.
|
|
480
|
-
///
|
|
481
|
-
/// # Requirements
|
|
482
|
-
/// - `Upgradeable` (default): contract must implement `Auth` (via `#[ownable]` or `#[multisig]`)
|
|
483
|
-
/// - `UpgradeableRbac` (with `rbac`): contract must implement both `Auth` and `RoleBasedAccessControl` (e.g. from OApp)
|
|
484
|
-
/// - By default, requires manual `UpgradeableInternal` implementation
|
|
485
|
-
/// - With `no_migration` flag, auto-generates a no-op `UpgradeableInternal` impl
|
|
486
|
-
///
|
|
487
|
-
/// # Options
|
|
488
|
-
/// - `#[upgradeable]` - Implements Upgradeable, requires manual `UpgradeableInternal` (safety by default)
|
|
489
|
-
/// - `#[upgradeable(no_migration)]` - Implements Upgradeable, auto-generates no-op `UpgradeableInternal`
|
|
490
|
-
/// - `#[upgradeable(rbac)]` - Implements UpgradeableRbac, requires manual `UpgradeableInternal`
|
|
491
|
-
/// - `#[upgradeable(rbac, no_migration)]` - Implements UpgradeableRbac, auto-generates no-op `UpgradeableInternal`
|
|
492
|
-
///
|
|
493
|
-
/// # Example
|
|
494
|
-
/// ```ignore
|
|
495
|
-
/// // Implements Upgradeable (default)
|
|
496
|
-
/// #[ownable]
|
|
497
|
-
/// #[upgradeable]
|
|
498
|
-
/// pub struct MyContract;
|
|
499
|
-
///
|
|
500
|
-
/// impl utils::upgradeable::UpgradeableInternal for MyContract {
|
|
501
|
-
/// type MigrationData = MyMigrationParams;
|
|
502
|
-
///
|
|
503
|
-
/// fn __migrate(env: &Env, migration_data: &Self::MigrationData) {
|
|
504
|
-
/// // Custom migration logic here
|
|
505
|
-
/// }
|
|
506
|
-
/// }
|
|
507
|
-
///
|
|
508
|
-
/// // Implements Upgradeable (no migration)
|
|
509
|
-
/// #[ownable]
|
|
510
|
-
/// #[upgradeable(no_migration)]
|
|
511
|
-
/// pub struct SimpleContract;
|
|
512
|
-
///
|
|
513
|
-
/// // Implements UpgradeableRbac (layered)
|
|
514
|
-
/// #[ownable]
|
|
515
|
-
/// #[upgradeable(rbac)]
|
|
516
|
-
/// pub struct RbacContract;
|
|
517
|
-
///
|
|
518
|
-
/// impl utils::upgradeable::UpgradeableInternal for RbacContract {
|
|
519
|
-
/// type MigrationData = MyMigrationParams;
|
|
520
|
-
///
|
|
521
|
-
/// fn __migrate(env: &Env, migration_data: &Self::MigrationData) {
|
|
522
|
-
/// // Custom migration logic here
|
|
523
|
-
/// }
|
|
524
|
-
/// }
|
|
525
|
-
///
|
|
526
|
-
/// // Implements UpgradeableRbac (no migration)
|
|
527
|
-
/// #[ownable]
|
|
528
|
-
/// #[upgradeable(rbac, no_migration)]
|
|
529
|
-
/// pub struct SimpleRbacContract;
|
|
530
|
-
/// ```
|
|
531
|
-
///
|
|
532
|
-
/// Generated code includes:
|
|
533
|
-
/// - `upgrade` / `migrate` - Auth-based or Auth + RoleBased depending on options
|
|
534
|
-
/// - `contractmeta!` with `binver` set to the Cargo package version (if not 0.0.0)
|
|
535
|
-
#[proc_macro_attribute]
|
|
536
|
-
pub fn upgradeable(attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
537
|
-
upgradeable::generate_upgradeable_impl(attr.into(), item.into()).into()
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
// ============================================================================
|
|
541
|
-
// LZ Contract Wrapper Macro
|
|
542
|
-
// ============================================================================
|
|
543
|
-
|
|
544
|
-
/// Wrapper macro that combines common LayerZero contract attributes.
|
|
545
|
-
///
|
|
546
|
-
/// This macro simplifies contract declarations by combining multiple commonly
|
|
547
|
-
/// used macros into a single attribute.
|
|
548
|
-
///
|
|
549
|
-
/// # Default (no options)
|
|
550
|
-
/// `#[lz_contract]` generates:
|
|
551
|
-
/// - `#[contract]` - Soroban contract
|
|
552
|
-
/// - `#[ttl_configurable]` - TTL configuration with auth
|
|
553
|
-
/// - `#[ttl_extendable]` - Manual TTL extension
|
|
554
|
-
/// - `#[ownable]` - Single-owner access control
|
|
555
|
-
///
|
|
556
|
-
/// # Options
|
|
557
|
-
/// - `upgradeable(...)` - Adds `#[upgradeable(...)]`; content is passed verbatim to the upgradeable macro
|
|
558
|
-
/// - `multisig` - Uses `#[multisig]` instead of `#[ownable]`
|
|
559
|
-
///
|
|
560
|
-
/// # Examples
|
|
561
|
-
/// ```ignore
|
|
562
|
-
/// // Basic contract with ownable auth
|
|
563
|
-
/// #[lz_contract]
|
|
564
|
-
/// pub struct EndpointV2;
|
|
565
|
-
///
|
|
566
|
-
/// // Contract with upgrade support (requires manual UpgradeableInternal)
|
|
567
|
-
/// #[lz_contract(upgradeable)]
|
|
568
|
-
/// pub struct DVNFeeLib;
|
|
569
|
-
///
|
|
570
|
-
/// // Contract with upgrade support and no migration (auto no-op impl)
|
|
571
|
-
/// #[lz_contract(upgradeable(no_migration))]
|
|
572
|
-
/// pub struct DVNFeeLib;
|
|
573
|
-
///
|
|
574
|
-
/// // Contract with RBAC-based upgrade support
|
|
575
|
-
/// #[lz_contract(upgradeable(rbac))]
|
|
576
|
-
/// pub struct RbacOft;
|
|
577
|
-
///
|
|
578
|
-
/// // Contract with multisig auth and upgrade support (no migration)
|
|
579
|
-
/// #[lz_contract(multisig, upgradeable(no_migration))]
|
|
580
|
-
/// pub struct DVN;
|
|
581
|
-
/// ```
|
|
582
|
-
#[proc_macro_attribute]
|
|
583
|
-
pub fn lz_contract(attr: TokenStream, item: TokenStream) -> TokenStream {
|
|
584
|
-
lz_contract::generate_lz_contract(attr.into(), item.into()).into()
|
|
585
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
//! LzContract wrapper macro for Stellar smart contracts.
|
|
2
|
-
//!
|
|
3
|
-
//! This module provides the `#[lz_contract]` macro which combines commonly used
|
|
4
|
-
//! LayerZero contract attributes into a single macro invocation.
|
|
5
|
-
|
|
6
|
-
use proc_macro2::TokenStream;
|
|
7
|
-
use quote::quote;
|
|
8
|
-
use syn::{
|
|
9
|
-
parenthesized,
|
|
10
|
-
parse::{Parse, ParseStream},
|
|
11
|
-
Error, Ident, ItemStruct, Token,
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
/// Configuration options for the `#[lz_contract]` macro.
|
|
15
|
-
#[derive(Debug, Default)]
|
|
16
|
-
pub struct LzContractConfig {
|
|
17
|
-
/// If true, adds `#[upgradeable]` for contract upgrade support.
|
|
18
|
-
pub upgradeable: bool,
|
|
19
|
-
/// Raw tokens inside `upgradeable(...)`, passed verbatim to the upgradeable macro.
|
|
20
|
-
/// Empty when `upgradeable` has no parentheses.
|
|
21
|
-
pub upgradeable_attr: TokenStream,
|
|
22
|
-
/// If true, uses `#[multisig]` instead of `#[ownable]` for auth.
|
|
23
|
-
pub multisig: bool,
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
impl Parse for LzContractConfig {
|
|
27
|
-
fn parse(input: ParseStream) -> syn::Result<Self> {
|
|
28
|
-
let mut config = Self::default();
|
|
29
|
-
if input.is_empty() {
|
|
30
|
-
return Ok(config);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Parse comma-separated items, handling nested parentheses for upgradeable(no_migration)
|
|
34
|
-
while !input.is_empty() {
|
|
35
|
-
let ident: Ident = input.parse()?;
|
|
36
|
-
|
|
37
|
-
match ident.to_string().as_str() {
|
|
38
|
-
"upgradeable" => {
|
|
39
|
-
config.upgradeable = true;
|
|
40
|
-
// Pass through optional (...) content verbatim to the upgradeable macro
|
|
41
|
-
if input.peek(syn::token::Paren) {
|
|
42
|
-
let content;
|
|
43
|
-
parenthesized!(content in input);
|
|
44
|
-
config.upgradeable_attr = content.parse()?;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
"multisig" => config.multisig = true,
|
|
48
|
-
_ => {
|
|
49
|
-
return Err(Error::new(ident.span(), "expected one of `upgradeable`, `multisig`"));
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// Consume optional trailing comma
|
|
54
|
-
if input.peek(Token![,]) {
|
|
55
|
-
let _: Token![,] = input.parse()?;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
Ok(config)
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/// Generates a complete LayerZero contract with common macro attributes.
|
|
64
|
-
///
|
|
65
|
-
/// # Default (no options)
|
|
66
|
-
/// Generates:
|
|
67
|
-
/// - `#[soroban_sdk::contract]` - Soroban contract
|
|
68
|
-
/// - `#[common_macros::ttl_configurable]` - TTL configuration with auth
|
|
69
|
-
/// - `#[common_macros::ttl_extendable]` - Manual TTL extension
|
|
70
|
-
/// - `#[common_macros::ownable]` - Single-owner access control
|
|
71
|
-
///
|
|
72
|
-
/// # Options
|
|
73
|
-
/// - `upgradeable(...)` - Adds `#[upgradeable(...)]`; content is passed verbatim to the upgradeable macro
|
|
74
|
-
/// - `multisig` - Uses `#[multisig]` instead of `#[ownable]`
|
|
75
|
-
pub fn generate_lz_contract(attr: TokenStream, input: TokenStream) -> TokenStream {
|
|
76
|
-
let config: LzContractConfig =
|
|
77
|
-
syn::parse2(attr).unwrap_or_else(|e| panic!("failed to parse lz_contract config: {}", e));
|
|
78
|
-
let item: ItemStruct = syn::parse2(input).unwrap_or_else(|e| panic!("failed to parse struct: {}", e));
|
|
79
|
-
|
|
80
|
-
let auth = if config.multisig {
|
|
81
|
-
quote! { #[common_macros::multisig] }
|
|
82
|
-
} else {
|
|
83
|
-
quote! { #[common_macros::ownable] }
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
let upgrade = if config.upgradeable {
|
|
87
|
-
if config.upgradeable_attr.is_empty() {
|
|
88
|
-
quote! { #[common_macros::upgradeable] }
|
|
89
|
-
} else {
|
|
90
|
-
let upgradeable_attr = &config.upgradeable_attr;
|
|
91
|
-
quote! { #[common_macros::upgradeable(#upgradeable_attr)] }
|
|
92
|
-
}
|
|
93
|
-
} else {
|
|
94
|
-
quote! {}
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
quote! {
|
|
98
|
-
#[soroban_sdk::contract]
|
|
99
|
-
#[common_macros::ttl_configurable]
|
|
100
|
-
#[common_macros::ttl_extendable]
|
|
101
|
-
#auth
|
|
102
|
-
#upgrade
|
|
103
|
-
#item
|
|
104
|
-
}
|
|
105
|
-
}
|