@layerzerolabs/protocol-stellar-v2 0.2.13 → 0.2.15
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 +384 -278
- package/.turbo/turbo-lint.log +110 -78
- package/.turbo/turbo-test.log +1248 -1014
- package/Cargo.lock +130 -3
- package/Cargo.toml +2 -1
- package/contracts/common-macros/src/contract_impl.rs +6 -1
- package/contracts/common-macros/src/lib.rs +47 -8
- package/contracts/common-macros/src/ownable.rs +7 -25
- package/contracts/common-macros/src/storage.rs +1 -1
- package/contracts/common-macros/src/tests/contract_impl.rs +5 -0
- package/contracts/common-macros/src/tests/mod.rs +1 -0
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_impl__snapshot_generated_contract_impl_code.snap +23 -7
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ownable__snapshot_generated_ownable_code.snap +5 -25
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__storage__snapshot_generated_storage_code.snap +48 -48
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +5 -25
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +21 -0
- package/contracts/common-macros/src/tests/upgradeable.rs +31 -0
- package/contracts/common-macros/src/ttl_configurable.rs +14 -44
- package/contracts/common-macros/src/upgradeable.rs +76 -0
- package/contracts/endpoint-v2/src/endpoint_v2.rs +25 -1
- package/contracts/endpoint-v2/src/tests/endpoint_setup.rs +175 -8
- package/contracts/endpoint-v2/src/tests/endpoint_v2/build_outbound_packet.rs +76 -0
- package/contracts/endpoint-v2/src/tests/endpoint_v2/clear.rs +342 -159
- package/contracts/endpoint-v2/src/tests/endpoint_v2/delegate.rs +3 -15
- package/contracts/endpoint-v2/src/tests/endpoint_v2/initializable.rs +20 -31
- package/contracts/endpoint-v2/src/tests/endpoint_v2/lz_receive_alert.rs +126 -164
- package/contracts/endpoint-v2/src/tests/endpoint_v2/mod.rs +1 -0
- package/contracts/endpoint-v2/src/tests/endpoint_v2/native_token.rs +0 -1
- package/contracts/endpoint-v2/src/tests/endpoint_v2/owner.rs +0 -1
- package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +311 -304
- package/contracts/endpoint-v2/src/tests/endpoint_v2/quote.rs +423 -96
- package/contracts/endpoint-v2/src/tests/endpoint_v2/recover_token.rs +1 -1
- package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +47 -20
- package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +373 -403
- package/contracts/endpoint-v2/src/tests/endpoint_v2/set_delegate.rs +96 -22
- package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +61 -9
- package/contracts/endpoint-v2/src/tests/endpoint_v2/transfer_ownership.rs +4 -4
- package/contracts/endpoint-v2/src/tests/endpoint_v2/ttl_config.rs +8 -11
- package/contracts/endpoint-v2/src/tests/endpoint_v2/verifiable.rs +81 -30
- package/contracts/endpoint-v2/src/tests/endpoint_v2/verify.rs +209 -76
- package/contracts/endpoint-v2/src/tests/endpoint_v2/zro.rs +0 -1
- package/contracts/endpoint-v2/src/tests/message_lib_manager/default_receive_library.rs +24 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/default_receive_library_timeout.rs +40 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/default_send_library.rs +24 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/get_config.rs +108 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/get_library_index.rs +52 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/get_receive_library.rs +92 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/get_registered_libraries.rs +74 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/get_send_library.rs +83 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/is_registered_library.rs +32 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/is_supported_eid.rs +28 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/is_valid_receive_library.rs +261 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/mod.rs +16 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/receive_library_timeout.rs +62 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +65 -43
- package/contracts/endpoint-v2/src/tests/message_lib_manager/registered_libraries_count.rs +42 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +61 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +3 -5
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +59 -0
- package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +15 -1
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_config.rs +155 -51
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +114 -92
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_library.rs +235 -132
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_send_library.rs +93 -87
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library.rs +346 -245
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library_timeout.rs +406 -60
- package/contracts/endpoint-v2/src/tests/message_lib_manager/set_send_library.rs +252 -78
- package/contracts/endpoint-v2/src/tests/message_lib_manager/timeout.rs +102 -0
- package/contracts/endpoint-v2/src/tests/messaging_channel/burn.rs +212 -273
- package/contracts/endpoint-v2/src/tests/messaging_channel/clear_payload.rs +203 -0
- package/contracts/endpoint-v2/src/tests/messaging_channel/inbound.rs +94 -0
- package/contracts/endpoint-v2/src/tests/messaging_channel/inbound_nonce.rs +78 -248
- package/contracts/endpoint-v2/src/tests/messaging_channel/inbound_payload_hash.rs +7 -282
- package/contracts/endpoint-v2/src/tests/messaging_channel/lazy_inbound_nonce.rs +6 -274
- package/contracts/endpoint-v2/src/tests/messaging_channel/mod.rs +3 -2
- package/contracts/endpoint-v2/src/tests/messaging_channel/next_guid.rs +86 -178
- package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +328 -212
- package/contracts/endpoint-v2/src/tests/messaging_channel/outbound.rs +68 -0
- package/contracts/endpoint-v2/src/tests/messaging_channel/outbound_nonce.rs +6 -209
- package/contracts/endpoint-v2/src/tests/messaging_channel/skip.rs +207 -159
- package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +142 -153
- package/contracts/endpoint-v2/src/tests/messaging_composer/compose_queue.rs +6 -179
- package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +163 -221
- package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +90 -121
- package/contracts/endpoint-v2/src/tests/mock.rs +18 -4
- package/contracts/endpoint-v2/src/tests/util/build_payload.rs +4 -70
- package/contracts/endpoint-v2/src/tests/util/compute_guid.rs +2 -1
- package/contracts/endpoint-v2/src/tests/util/keccak256.rs +17 -106
- package/contracts/layerzero-views/Cargo.toml +35 -0
- package/contracts/layerzero-views/src/errors.rs +10 -0
- package/contracts/layerzero-views/src/layerzero_view.rs +229 -0
- package/contracts/layerzero-views/src/lib.rs +38 -0
- package/contracts/layerzero-views/src/storage.rs +18 -0
- package/contracts/layerzero-views/src/tests/layerzero_view_tests.rs +423 -0
- package/contracts/layerzero-views/src/tests/mod.rs +4 -0
- package/contracts/layerzero-views/src/tests/setup.rs +377 -0
- package/contracts/layerzero-views/src/types.rs +50 -0
- package/contracts/macro-integration-tests/Cargo.toml +30 -0
- package/contracts/macro-integration-tests/src/lib.rs +1 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/initialization.rs +62 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +22 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/only_owner_guard.rs +97 -0
- package/contracts/macro-integration-tests/tests/runtime/ownable/ownership_transfer.rs +101 -0
- package/contracts/macro-integration-tests/tests/runtime/storage/keyed_roundtrip.rs +225 -0
- package/contracts/macro-integration-tests/tests/runtime/storage/mod.rs +4 -0
- package/contracts/macro-integration-tests/tests/runtime/storage/name_override_runtime.rs +52 -0
- package/contracts/macro-integration-tests/tests/runtime/storage/ttl_extension.rs +261 -0
- package/contracts/macro-integration-tests/tests/runtime/storage/unkeyed_roundtrip.rs +137 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +113 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/extend_instance_ttl.rs +50 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +139 -0
- package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/mod.rs +3 -0
- package/contracts/macro-integration-tests/tests/runtime.rs +5 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/decreasing_discriminant.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/decreasing_discriminant.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_int_discriminant.rs +21 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_int_discriminant.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_unit_variant.rs +13 -0
- package/contracts/macro-integration-tests/tests/ui/error/fail/non_unit_variant.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/error/pass/attr_on_variant_allowed.rs +20 -0
- package/contracts/macro-integration-tests/tests/ui/error/pass/basic_auto_discriminants.rs +15 -0
- package/contracts/macro-integration-tests/tests/ui/error/pass/mixed_discriminants.rs +16 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_owner_missing_env.rs +22 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_owner_missing_env.stderr +16 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/minimal_contract.rs +26 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +22 -0
- package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_owner_env_param_variants.rs +46 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.rs +13 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.rs +13 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_storage_kinds.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_storage_kinds.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_on_non_persistent.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_on_non_persistent.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/non_enum_input.rs +10 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/non_enum_input.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.rs +12 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/tuple_variant_rejected.rs +13 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/tuple_variant_rejected.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/unknown_variant_attr.rs +13 -0
- package/contracts/macro-integration-tests/tests/ui/storage/fail/unknown_variant_attr.stderr +7 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/default_value_on_variant.rs +14 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_instance_unit_basic.rs +14 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_persistent_named_fields_keyed.rs +16 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_temporary_unit_option.rs +15 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/name_override.rs +14 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/no_auto_ttl_extension.rs +19 -0
- package/contracts/macro-integration-tests/tests/ui/storage/pass/ttl_provider_basic.rs +15 -0
- package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/minimal_contract.rs +44 -0
- package/contracts/macro-integration-tests/tests/ui_error.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui_ownable.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui_storage.rs +11 -0
- package/contracts/macro-integration-tests/tests/ui_ttl_configurable.rs +12 -0
- package/contracts/message-libs/blocked-message-lib/src/lib.rs +17 -17
- package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/decode_packet_header.rs +64 -0
- package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/encode_packet.rs +58 -0
- package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/encode_packet_header.rs +138 -0
- package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/mod.rs +6 -0
- package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/payload.rs +30 -0
- package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/payload_hash.rs +15 -0
- package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/test_helper.rs +39 -0
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_dvn_option.rs +57 -0
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_lz_receive_option.rs +50 -0
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_native_drop_option.rs +74 -0
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/convert_legacy_options.rs +280 -0
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/extract_type_3_options.rs +126 -0
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/left_pad_to_bytes32.rs +48 -0
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/mod.rs +7 -0
- package/contracts/message-libs/message-lib-common/src/tests/worker_options/split_worker_options.rs +139 -0
- package/contracts/message-libs/message-lib-common/src/worker_options.rs +31 -1
- package/contracts/message-libs/simple-message-lib/src/simple_message_lib.rs +2 -2
- package/contracts/message-libs/treasury/src/errors.rs +0 -1
- package/contracts/message-libs/treasury/src/lib.rs +3 -3
- package/contracts/message-libs/treasury/src/storage.rs +2 -0
- package/contracts/message-libs/treasury/src/treasury.rs +12 -13
- package/contracts/message-libs/uln-302/Cargo.toml +1 -1
- package/contracts/message-libs/uln-302/src/errors.rs +0 -5
- package/contracts/message-libs/uln-302/src/events.rs +5 -6
- package/contracts/message-libs/uln-302/src/receive_uln.rs +24 -54
- package/contracts/message-libs/uln-302/src/send_uln.rs +89 -135
- package/contracts/message-libs/uln-302/src/storage.rs +5 -5
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +5 -7
- package/contracts/message-libs/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +3 -3
- package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +6 -9
- package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +2 -2
- package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +3 -3
- package/contracts/message-libs/uln-302/src/tests/setup.rs +9 -0
- package/contracts/message-libs/uln-302/src/tests/testing_utils.rs +5 -0
- package/contracts/message-libs/uln-302/src/tests/uln302/get_app_receive_uln_config.rs +1 -2
- package/contracts/message-libs/uln-302/src/tests/uln302/get_app_send_uln_config.rs +1 -2
- package/contracts/message-libs/uln-302/src/tests/uln302/set_config.rs +37 -55
- package/contracts/message-libs/uln-302/src/uln302.rs +8 -5
- package/contracts/oapps/counter/src/counter.rs +0 -1
- package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +306 -224
- package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +0 -1
- package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +0 -1
- package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +0 -1
- package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +0 -1
- package/contracts/{oapp-macros → oapps/oapp-macros}/src/oapp_core.rs +1 -0
- package/contracts/oapps/oft/integration-tests/setup.rs +10 -3
- package/contracts/oapps/oft/integration-tests/utils.rs +1 -1
- package/contracts/oapps/oft/src/default_oft_impl.rs +9 -3
- package/contracts/oapps/oft/src/extensions/oft_fee.rs +5 -5
- package/contracts/oapps/oft/src/extensions/pausable.rs +1 -1
- package/contracts/oapps/oft/src/extensions/rate_limiter.rs +18 -18
- package/contracts/oapps/oft/src/oft.rs +9 -9
- package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +1 -1
- package/contracts/oapps/oft/src/tests/extensions/setup.rs +26 -11
- package/contracts/oapps/oft/src/tests/extensions/test_rate_limiter.rs +1 -1
- package/contracts/oapps/oft/src/tests/test_send.rs +4 -4
- package/contracts/oapps/oft/src/tests/test_utils.rs +93 -74
- package/contracts/oapps/oft-std/Cargo.toml +6 -0
- package/contracts/oapps/oft-std/integration-tests/extensions/mod.rs +3 -0
- package/contracts/oapps/oft-std/integration-tests/extensions/test_oft_fee.rs +157 -0
- package/contracts/oapps/oft-std/integration-tests/extensions/test_pausable.rs +162 -0
- package/contracts/oapps/oft-std/integration-tests/extensions/test_rate_limiter.rs +186 -0
- package/contracts/oapps/oft-std/integration-tests/mod.rs +3 -0
- package/contracts/oapps/oft-std/integration-tests/setup.rs +245 -0
- package/contracts/oapps/oft-std/integration-tests/utils.rs +427 -0
- package/contracts/oapps/oft-std/src/lib.rs +12 -1
- package/contracts/oapps/oft-std/src/oft.rs +122 -25
- package/contracts/upgrader/Cargo.toml +19 -0
- package/contracts/upgrader/src/lib.rs +96 -0
- package/contracts/upgrader/src/tests/mod.rs +1 -0
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
- package/contracts/upgrader/src/tests/test_upgrader.rs +120 -0
- package/contracts/utils/src/errors.rs +6 -1
- package/contracts/utils/src/lib.rs +2 -1
- package/contracts/utils/src/ownable.rs +49 -61
- package/contracts/utils/src/tests/mod.rs +3 -1
- package/contracts/utils/src/tests/option_ext.rs +21 -0
- package/contracts/utils/src/tests/ownable.rs +10 -69
- package/contracts/utils/src/tests/ttl_configurable.rs +596 -0
- package/contracts/utils/src/tests/upgradeable.rs +288 -0
- package/contracts/utils/src/{ttl.rs → ttl_configurable.rs} +67 -52
- package/contracts/utils/src/upgradeable.rs +54 -0
- package/contracts/workers/dvn/Cargo.toml +1 -1
- package/contracts/workers/dvn/src/auth.rs +21 -32
- package/contracts/workers/dvn/src/dvn.rs +40 -3
- package/contracts/workers/dvn/src/errors.rs +1 -0
- package/contracts/workers/dvn/src/multisig.rs +10 -6
- package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -2
- package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +4 -4
- package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -2
- package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +46 -14
- package/contracts/workers/dvn-fee-lib/src/errors.rs +3 -2
- package/contracts/workers/dvn-fee-lib/src/lib.rs +5 -11
- package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +30 -16
- package/contracts/workers/executor/src/executor.rs +16 -2
- package/contracts/workers/executor-fee-lib/src/errors.rs +9 -7
- package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +154 -119
- package/contracts/workers/executor-helper/Cargo.toml +0 -5
- package/contracts/workers/executor-helper/src/lib.rs +1 -7
- package/contracts/workers/price-feed/Cargo.toml +0 -1
- package/contracts/workers/price-feed/src/errors.rs +3 -2
- package/contracts/workers/price-feed/src/lib.rs +5 -6
- package/contracts/workers/price-feed/src/price_feed.rs +39 -17
- package/contracts/workers/worker/Cargo.toml +4 -0
- package/contracts/workers/worker/src/interfaces/price_feed.rs +3 -3
- package/contracts/workers/worker/src/lib.rs +2 -2
- package/contracts/workers/worker/src/tests/mod.rs +4 -0
- package/contracts/workers/worker/src/tests/setup.rs +147 -0
- package/contracts/workers/worker/src/tests/worker.rs +501 -0
- package/contracts/workers/worker/src/worker.rs +10 -16
- package/package.json +3 -3
- package/sdk/dist/generated/bml.d.ts +40 -30
- package/sdk/dist/generated/bml.js +16 -11
- package/sdk/dist/generated/counter.d.ts +168 -134
- package/sdk/dist/generated/counter.js +26 -21
- package/sdk/dist/generated/dvn.d.ts +1932 -0
- package/sdk/dist/generated/dvn.js +288 -0
- package/sdk/dist/generated/dvn_fee_lib.d.ts +615 -0
- package/sdk/dist/generated/dvn_fee_lib.js +123 -0
- package/sdk/dist/generated/endpoint.d.ts +75 -41
- package/sdk/dist/generated/endpoint.js +22 -17
- package/sdk/dist/generated/executor.d.ts +1809 -0
- package/sdk/dist/generated/executor.js +269 -0
- package/sdk/dist/generated/executor_fee_lib.d.ts +999 -0
- package/sdk/dist/generated/executor_fee_lib.js +208 -0
- package/sdk/dist/generated/executor_helper.d.ts +869 -0
- package/sdk/dist/generated/executor_helper.js +187 -0
- package/sdk/dist/generated/oft_std.d.ts +1544 -0
- package/sdk/dist/generated/oft_std.js +271 -0
- package/sdk/dist/generated/price_feed.d.ts +1002 -0
- package/sdk/dist/generated/price_feed.js +170 -0
- package/sdk/dist/generated/sml.d.ts +75 -41
- package/sdk/dist/generated/sml.js +22 -17
- package/sdk/dist/generated/uln302.d.ts +79 -60
- package/sdk/dist/generated/uln302.js +37 -37
- package/sdk/dist/generated/upgrader.d.ts +70 -0
- package/sdk/dist/generated/upgrader.js +19 -0
- package/sdk/dist/index.d.ts +8 -0
- package/sdk/dist/index.js +11 -0
- package/sdk/package.json +4 -3
- package/sdk/src/index.ts +13 -0
- package/sdk/test/index.test.ts +0 -1
- package/sdk/test/oft.test.ts +12 -23
- package/sdk/test/suites/testUpgradeable.ts +169 -0
- package/sdk/test/upgrader.test.ts +309 -0
- package/tools/ts-bindings-gen/src/main.rs +11 -1
- package/contracts/endpoint-v2/src/tests/messaging_channel/clear.rs +0 -316
- package/contracts/endpoint-v2/src/tests/messaging_channel/internal.rs +0 -388
- package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1.rs +0 -162
- package/contracts/message-libs/message-lib-common/src/tests/worker_options.rs +0 -319
- package/contracts/utils/src/tests/ttl.rs +0 -421
- /package/contracts/{oapp-macros → oapps/oapp-macros}/Cargo.toml +0 -0
- /package/contracts/{oapp-macros → oapps/oapp-macros}/src/lib.rs +0 -0
- /package/contracts/{oapp-macros → oapps/oapp-macros}/src/oapp_full.rs +0 -0
- /package/contracts/{oapp-macros → oapps/oapp-macros}/src/oapp_options_type3.rs +0 -0
- /package/contracts/{oapp-macros → oapps/oapp-macros}/src/oapp_receiver.rs +0 -0
- /package/contracts/{oapp-macros → oapps/oapp-macros}/src/oapp_sender.rs +0 -0
- /package/contracts/{oapp-macros → oapps/oapp-macros}/src/util.rs +0 -0
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
#![no_std]
|
|
2
2
|
|
|
3
|
+
mod errors;
|
|
4
|
+
pub mod events;
|
|
3
5
|
mod interfaces;
|
|
4
6
|
|
|
7
|
+
pub use errors::*;
|
|
5
8
|
pub use interfaces::*;
|
|
6
9
|
|
|
7
10
|
cfg_if::cfg_if! {
|
|
8
11
|
// Include implementation when NOT in library mode, OR when testutils is enabled (for tests)
|
|
9
12
|
if #[cfg(any(not(feature = "library"), feature = "testutils"))] {
|
|
10
|
-
mod errors;
|
|
11
|
-
mod events;
|
|
12
13
|
mod storage;
|
|
13
14
|
mod treasury;
|
|
14
|
-
|
|
15
15
|
pub use treasury::{Treasury, TreasuryClient};
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -5,10 +5,12 @@ use soroban_sdk::Address;
|
|
|
5
5
|
pub enum TreasuryStorage {
|
|
6
6
|
/// Native fee in basis points (0-10000, where 10000 = 100%)
|
|
7
7
|
#[instance(u32)]
|
|
8
|
+
#[default(0)]
|
|
8
9
|
NativeFeeBp,
|
|
9
10
|
|
|
10
11
|
/// Global toggle for all fee collection
|
|
11
12
|
#[instance(bool)]
|
|
13
|
+
#[default(false)]
|
|
12
14
|
FeeEnabled,
|
|
13
15
|
|
|
14
16
|
/// Address of the ZRO token fee library contract for custom fee calculations
|
|
@@ -4,7 +4,7 @@ use crate::{
|
|
|
4
4
|
interfaces::ZROFeeLibClient,
|
|
5
5
|
storage::TreasuryStorage,
|
|
6
6
|
};
|
|
7
|
-
use common_macros::{contract_impl, only_owner, ttl_configurable};
|
|
7
|
+
use common_macros::{contract_impl, only_owner, ownable, ttl_configurable};
|
|
8
8
|
use message_lib_common::interfaces::ILayerZeroTreasury;
|
|
9
9
|
use soroban_sdk::{assert_with_error, contract, token::Client, Address, Env};
|
|
10
10
|
use utils::option_ext::OptionExt;
|
|
@@ -14,6 +14,7 @@ const BPS_DENOMINATOR: u32 = 10000;
|
|
|
14
14
|
|
|
15
15
|
#[contract]
|
|
16
16
|
#[ttl_configurable]
|
|
17
|
+
#[ownable]
|
|
17
18
|
pub struct Treasury;
|
|
18
19
|
|
|
19
20
|
#[contract_impl]
|
|
@@ -67,9 +68,7 @@ impl Treasury {
|
|
|
67
68
|
/// * `amount` - The amount to withdraw (must be positive)
|
|
68
69
|
#[only_owner]
|
|
69
70
|
pub fn withdraw_token(env: &Env, token: &Address, to: &Address, amount: i128) {
|
|
70
|
-
|
|
71
|
-
token_client.transfer(&env.current_contract_address(), to, &amount);
|
|
72
|
-
|
|
71
|
+
Client::new(env, token).transfer(&env.current_contract_address(), to, &amount);
|
|
73
72
|
TokenWithdrawn { token: token.clone(), to: to.clone(), amount }.publish(env);
|
|
74
73
|
}
|
|
75
74
|
|
|
@@ -79,12 +78,12 @@ impl Treasury {
|
|
|
79
78
|
|
|
80
79
|
/// Returns the native fee percentage in basis points.
|
|
81
80
|
pub fn native_fee_bp(env: &Env) -> u32 {
|
|
82
|
-
TreasuryStorage::native_fee_bp(env)
|
|
81
|
+
TreasuryStorage::native_fee_bp(env)
|
|
83
82
|
}
|
|
84
83
|
|
|
85
84
|
/// Returns whether fee collection is enabled.
|
|
86
85
|
pub fn fee_enabled(env: &Env) -> bool {
|
|
87
|
-
TreasuryStorage::fee_enabled(env)
|
|
86
|
+
TreasuryStorage::fee_enabled(env)
|
|
88
87
|
}
|
|
89
88
|
|
|
90
89
|
/// Returns the ZRO fee library address if set.
|
|
@@ -125,13 +124,13 @@ impl ILayerZeroTreasury for Treasury {
|
|
|
125
124
|
}
|
|
126
125
|
|
|
127
126
|
let native_treasury_fee = Self::calculate_native_fee(env, total_native_fee);
|
|
128
|
-
if pay_in_zro {
|
|
129
|
-
|
|
130
|
-
Self::expect_zro_fee_lib_client(env).get_fee(sender, &dst_eid, &total_native_fee, &native_treasury_fee);
|
|
131
|
-
assert_with_error!(env, zro_fee >= 0, TreasuryError::InvalidZROFee);
|
|
132
|
-
zro_fee
|
|
133
|
-
} else {
|
|
134
|
-
native_treasury_fee
|
|
127
|
+
if !pay_in_zro {
|
|
128
|
+
return native_treasury_fee;
|
|
135
129
|
}
|
|
130
|
+
|
|
131
|
+
let zro_fee =
|
|
132
|
+
Self::expect_zro_fee_lib_client(env).get_fee(sender, &dst_eid, &total_native_fee, &native_treasury_fee);
|
|
133
|
+
assert_with_error!(env, zro_fee >= 0, TreasuryError::InvalidZROFee);
|
|
134
|
+
zro_fee
|
|
136
135
|
}
|
|
137
136
|
}
|
|
@@ -15,13 +15,8 @@ pub enum Uln302Error {
|
|
|
15
15
|
InvalidOptionalDVNCount,
|
|
16
16
|
InvalidOptionalDVNs,
|
|
17
17
|
InvalidOptionalDVNThreshold,
|
|
18
|
-
InvalidPacketHeader,
|
|
19
18
|
InvalidRequiredDVNCount,
|
|
20
19
|
InvalidRequiredDVNs,
|
|
21
|
-
OAppExecutorConfigNotFound,
|
|
22
|
-
OAppReceiveUlnConfigNotFound,
|
|
23
|
-
OAppSendUlnConfigNotFound,
|
|
24
|
-
OnlyEndpoint,
|
|
25
20
|
UlnAtLeastOneDVN,
|
|
26
21
|
UnsupportedEid,
|
|
27
22
|
Verifying,
|
|
@@ -17,7 +17,7 @@ pub struct ExecutorConfigSet {
|
|
|
17
17
|
|
|
18
18
|
#[contractevent]
|
|
19
19
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
20
|
-
pub struct
|
|
20
|
+
pub struct SendUlnConfigSet {
|
|
21
21
|
#[topic]
|
|
22
22
|
pub sender: Address,
|
|
23
23
|
#[topic]
|
|
@@ -27,7 +27,7 @@ pub struct UlnSendConfigSet {
|
|
|
27
27
|
|
|
28
28
|
#[contractevent]
|
|
29
29
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
30
|
-
pub struct
|
|
30
|
+
pub struct ReceiveUlnConfigSet {
|
|
31
31
|
#[topic]
|
|
32
32
|
pub receiver: Address,
|
|
33
33
|
#[topic]
|
|
@@ -37,19 +37,19 @@ pub struct UlnReceiveConfigSet {
|
|
|
37
37
|
|
|
38
38
|
#[contractevent]
|
|
39
39
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
40
|
-
pub struct
|
|
40
|
+
pub struct DefaultExecutorConfigsSet {
|
|
41
41
|
pub params: Vec<SetDefaultExecutorConfigParam>,
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
#[contractevent]
|
|
45
45
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
46
|
-
pub struct
|
|
46
|
+
pub struct DefaultSendUlnConfigsSet {
|
|
47
47
|
pub params: Vec<SetDefaultUlnConfigParam>,
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
#[contractevent]
|
|
51
51
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
52
|
-
pub struct
|
|
52
|
+
pub struct DefaultReceiveUlnConfigsSet {
|
|
53
53
|
pub params: Vec<SetDefaultUlnConfigParam>,
|
|
54
54
|
}
|
|
55
55
|
|
|
@@ -64,7 +64,6 @@ pub struct ExecutorFeePaid {
|
|
|
64
64
|
#[contractevent]
|
|
65
65
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
66
66
|
pub struct DVNFeePaid {
|
|
67
|
-
#[topic]
|
|
68
67
|
pub dvns: Vec<Address>,
|
|
69
68
|
pub fees: Vec<FeeRecipient>,
|
|
70
69
|
}
|
|
@@ -30,7 +30,8 @@ impl IReceiveUln302 for Uln302 {
|
|
|
30
30
|
/// (all required DVNs + optional DVN threshold). Once verified, cleans up DVN confirmation
|
|
31
31
|
/// storage and calls the endpoint to mark the message as verified and executable.
|
|
32
32
|
fn commit_verification(env: &Env, packet_header: &Bytes, payload_hash: &BytesN<32>) {
|
|
33
|
-
let (header,
|
|
33
|
+
let (header, uln_config) = Self::decode_packet_header_with_config(env, packet_header);
|
|
34
|
+
let header_hash = util::keccak256(env, packet_header);
|
|
34
35
|
|
|
35
36
|
// check if the message is verifiable
|
|
36
37
|
assert_with_error!(
|
|
@@ -45,10 +46,12 @@ impl IReceiveUln302 for Uln302 {
|
|
|
45
46
|
});
|
|
46
47
|
|
|
47
48
|
// commit verification to the endpoint
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
LayerZeroEndpointV2Client::new(env, &Self::endpoint(env)).verify(
|
|
50
|
+
&env.current_contract_address(),
|
|
51
|
+
&Origin { src_eid: header.src_eid, sender: header.sender, nonce: header.nonce },
|
|
52
|
+
&Address::from_payload(env, AddressPayload::ContractIdHash(header.receiver)),
|
|
53
|
+
payload_hash,
|
|
54
|
+
);
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
// ============================================================================================
|
|
@@ -64,8 +67,7 @@ impl IReceiveUln302 for Uln302 {
|
|
|
64
67
|
param.config.validate_default_config(env);
|
|
65
68
|
UlnStorage::set_default_receive_uln_configs(env, param.eid, ¶m.config);
|
|
66
69
|
}
|
|
67
|
-
|
|
68
|
-
DefaultUlnReceiveConfigSet { params: params.clone() }.publish(env);
|
|
70
|
+
DefaultReceiveUlnConfigsSet { params: params.clone() }.publish(env);
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
// ============================================================================================
|
|
@@ -79,8 +81,8 @@ impl IReceiveUln302 for Uln302 {
|
|
|
79
81
|
|
|
80
82
|
/// Checks if a message has been sufficiently verified by DVNs and is ready to commit.
|
|
81
83
|
fn verifiable(env: &Env, packet_header: &Bytes, payload_hash: &BytesN<32>) -> bool {
|
|
82
|
-
let (_,
|
|
83
|
-
Self::verifiable_internal(env, &uln_config, &
|
|
84
|
+
let (_, uln_config) = Self::decode_packet_header_with_config(env, packet_header);
|
|
85
|
+
Self::verifiable_internal(env, &uln_config, &util::keccak256(env, packet_header), payload_hash)
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
/// Returns the default receive ULN configuration for a source endpoint.
|
|
@@ -95,13 +97,14 @@ impl IReceiveUln302 for Uln302 {
|
|
|
95
97
|
|
|
96
98
|
/// Returns the effective receive ULN configuration by merging OApp config with defaults.
|
|
97
99
|
fn effective_receive_uln_config(env: &Env, receiver: &Address, src_eid: u32) -> UlnConfig {
|
|
98
|
-
let default_config = Self::
|
|
100
|
+
let default_config = Self::default_receive_uln_config(env, src_eid)
|
|
101
|
+
.unwrap_or_panic(env, Uln302Error::DefaultReceiveUlnConfigNotFound);
|
|
99
102
|
let oapp_config = Self::oapp_receive_uln_config(env, receiver, src_eid).unwrap_or(OAppUlnConfig::default(env));
|
|
100
103
|
|
|
101
|
-
let
|
|
102
|
-
|
|
104
|
+
let effective_config = oapp_config.apply_default_config(&default_config);
|
|
105
|
+
effective_config.validate_at_least_one_dvn(env); // validate the final config
|
|
103
106
|
|
|
104
|
-
|
|
107
|
+
effective_config
|
|
105
108
|
}
|
|
106
109
|
}
|
|
107
110
|
|
|
@@ -112,12 +115,6 @@ impl IReceiveUln302 for Uln302 {
|
|
|
112
115
|
impl Uln302 {
|
|
113
116
|
/// Sets OApp-specific receive ULN config.
|
|
114
117
|
///
|
|
115
|
-
/// # Arguments
|
|
116
|
-
/// * `receiver` - The receiver OApp address
|
|
117
|
-
/// * `src_eid` - The source endpoint ID
|
|
118
|
-
/// * `config` - The OApp-specific receive ULN configuration
|
|
119
|
-
///
|
|
120
|
-
/// # Panics
|
|
121
118
|
/// Panics if the final effective config is invalid.
|
|
122
119
|
pub(super) fn set_receive_uln_config(env: &Env, receiver: &Address, src_eid: u32, config: &OAppUlnConfig) {
|
|
123
120
|
config.validate_oapp_config(env);
|
|
@@ -126,15 +123,15 @@ impl Uln302 {
|
|
|
126
123
|
// validate the config by getting the effective config
|
|
127
124
|
let _ = Self::effective_receive_uln_config(env, receiver, src_eid);
|
|
128
125
|
|
|
129
|
-
|
|
126
|
+
ReceiveUlnConfigSet { receiver: receiver.clone(), src_eid, config: config.clone() }.publish(env);
|
|
130
127
|
}
|
|
131
128
|
|
|
132
129
|
// ============================================================================================
|
|
133
130
|
// Verification Helpers Functions
|
|
134
131
|
// ============================================================================================
|
|
135
132
|
|
|
136
|
-
///
|
|
137
|
-
fn
|
|
133
|
+
/// Decodes packet header and returns header and effective ULN config.
|
|
134
|
+
fn decode_packet_header_with_config(env: &Env, packet_header: &Bytes) -> (PacketHeader, UlnConfig) {
|
|
138
135
|
let header = packet_codec_v1::decode_packet_header(env, packet_header);
|
|
139
136
|
assert_with_error!(
|
|
140
137
|
env,
|
|
@@ -142,25 +139,15 @@ impl Uln302 {
|
|
|
142
139
|
Uln302Error::InvalidEID
|
|
143
140
|
);
|
|
144
141
|
|
|
145
|
-
let
|
|
146
|
-
let uln_config = Self::effective_receive_uln_config(
|
|
147
|
-
env,
|
|
148
|
-
&Address::from_payload(env, AddressPayload::ContractIdHash(header.receiver.clone())),
|
|
149
|
-
header.src_eid,
|
|
150
|
-
);
|
|
142
|
+
let receiver = Address::from_payload(env, AddressPayload::ContractIdHash(header.receiver.clone()));
|
|
143
|
+
let uln_config = Self::effective_receive_uln_config(env, &receiver, header.src_eid);
|
|
151
144
|
|
|
152
|
-
(header,
|
|
145
|
+
(header, uln_config)
|
|
153
146
|
}
|
|
154
147
|
|
|
155
148
|
/// Checks if all required DVNs verified and optional DVN threshold is met.
|
|
156
149
|
///
|
|
157
|
-
///
|
|
158
|
-
/// * `uln_config` - The effective ULN configuration
|
|
159
|
-
/// * `header_hash` - The hash of the packet header
|
|
160
|
-
/// * `payload_hash` - The hash of the message payload
|
|
161
|
-
///
|
|
162
|
-
/// # Returns
|
|
163
|
-
/// True if the message has been verified by enough DVNs to be committed, false otherwise
|
|
150
|
+
/// Returns true if the message has been verified by enough DVNs to be committed, false otherwise
|
|
164
151
|
fn verifiable_internal(
|
|
165
152
|
env: &Env,
|
|
166
153
|
uln_config: &UlnConfig,
|
|
@@ -177,14 +164,7 @@ impl Uln302 {
|
|
|
177
164
|
|
|
178
165
|
/// Checks if a DVN has submitted enough confirmations for the message.
|
|
179
166
|
///
|
|
180
|
-
///
|
|
181
|
-
/// * `dvn` - The DVN address
|
|
182
|
-
/// * `header_hash` - The hash of the packet header
|
|
183
|
-
/// * `payload_hash` - The hash of the message payload
|
|
184
|
-
/// * `confirmations` - The number of block confirmations the DVN has observed
|
|
185
|
-
///
|
|
186
|
-
/// # Returns
|
|
187
|
-
/// True if the DVN has submitted enough confirmations for the message, false otherwise
|
|
167
|
+
/// Returns true if the DVN has submitted enough confirmations for the message, false otherwise
|
|
188
168
|
fn verified(
|
|
189
169
|
env: &Env,
|
|
190
170
|
dvn: &Address,
|
|
@@ -194,14 +174,4 @@ impl Uln302 {
|
|
|
194
174
|
) -> bool {
|
|
195
175
|
Self::confirmations(env, dvn, header_hash, payload_hash).map(|c| c >= confirmations).unwrap_or(false)
|
|
196
176
|
}
|
|
197
|
-
|
|
198
|
-
// ============================================================================================
|
|
199
|
-
// Helper Functions
|
|
200
|
-
// ============================================================================================
|
|
201
|
-
|
|
202
|
-
/// Returns default receive ULN config or panics if not found.
|
|
203
|
-
fn expect_default_receive_uln_config(env: &Env, src_eid: u32) -> UlnConfig {
|
|
204
|
-
Self::default_receive_uln_config(env, src_eid)
|
|
205
|
-
.unwrap_or_panic(env, Uln302Error::DefaultReceiveUlnConfigNotFound)
|
|
206
|
-
}
|
|
207
177
|
}
|