├── .devcontainer └── devcontainer.json ├── .github ├── dependabot.yml └── workflows │ └── lint-build-test.yaml ├── .gitignore ├── .gitmodules ├── .prettierrc.js ├── .solhintrc.js ├── .yarn └── releases │ └── yarn-4.0.2.cjs ├── .yarnrc.yml ├── LICENSE-LZBL-1.2 ├── LICENSE-MIT ├── README.md ├── funding.json ├── package.json ├── packages └── layerzero-v2 │ ├── aptos │ └── contracts │ │ ├── deployer │ │ ├── Move.toml │ │ └── sources │ │ │ └── object_code_deployment.move │ │ ├── endpoint_v2 │ │ ├── Move.toml │ │ ├── sources │ │ │ ├── admin.move │ │ │ ├── endpoint.move │ │ │ └── internal │ │ │ │ ├── channels.move │ │ │ │ ├── messaging_composer.move │ │ │ │ ├── messaging_receipt.move │ │ │ │ ├── msglib_manager.move │ │ │ │ ├── registration.move │ │ │ │ ├── store.move │ │ │ │ └── timeout.move │ │ └── tests │ │ │ ├── endpoint_tests.move │ │ │ ├── internal │ │ │ ├── channels_tests.move │ │ │ ├── messaging_composer_tests.move │ │ │ ├── messaging_receipt_tests.move │ │ │ ├── msglib_manager_tests.move │ │ │ ├── registration_tests.move │ │ │ └── timeout_test_helpers.move │ │ │ └── test_helpers.move │ │ ├── endpoint_v2_common │ │ ├── Move.toml │ │ ├── sources │ │ │ ├── assert_no_duplicates.move │ │ │ ├── bytes32.move │ │ │ ├── contract_identity.move │ │ │ ├── guid.move │ │ │ ├── native_token.move │ │ │ ├── native_token_fa.move │ │ │ ├── packet_raw.move │ │ │ ├── packet_v1_codec.move │ │ │ ├── send_packet.move │ │ │ ├── serde.move │ │ │ └── universal_config.move │ │ └── tests │ │ │ ├── assert_no_duplicates_tests.move │ │ │ ├── bytes_32_tests.move │ │ │ ├── contract_identity_tests.move │ │ │ ├── native_token_test_helpers.move │ │ │ ├── packet_tests.move │ │ │ ├── packet_v1_codec_tests.move │ │ │ ├── serde_tests.move │ │ │ ├── universal_config_tests.move │ │ │ └── zro_test_helpers.move │ │ ├── layerzero_views │ │ ├── Move.toml │ │ ├── sources │ │ │ ├── endpoint_views.move │ │ │ └── uln_302.move │ │ └── tests │ │ │ ├── layerzero_views_tests.move │ │ │ └── uln_302_tests.move │ │ ├── msglib │ │ ├── libs │ │ │ ├── blocked_msglib │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ │ └── router_calls.move │ │ │ ├── simple_msglib │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ │ ├── msglib.move │ │ │ │ │ └── router_calls.move │ │ │ └── uln_302 │ │ │ │ ├── Move.toml │ │ │ │ ├── sources │ │ │ │ ├── admin.move │ │ │ │ ├── internal │ │ │ │ │ ├── assert_valid_default_uln_config.move │ │ │ │ │ ├── assert_valid_uln_config.move │ │ │ │ │ ├── configuration.move │ │ │ │ │ ├── for_each_dvn.move │ │ │ │ │ ├── sending.move │ │ │ │ │ ├── uln_302_store.move │ │ │ │ │ └── verification.move │ │ │ │ ├── msglib.move │ │ │ │ └── router_calls.move │ │ │ │ └── tests │ │ │ │ └── internal │ │ │ │ ├── assert_valid_default_uln_config_tests.move │ │ │ │ ├── assert_valid_oapp_uln_config_tests.move │ │ │ │ ├── configuration_tests.move │ │ │ │ ├── for_each_dvn_tests.move │ │ │ │ ├── msglib_tests.move │ │ │ │ ├── sending_tests.move │ │ │ │ └── verification_tests.move │ │ ├── msglib_types │ │ │ ├── Move.toml │ │ │ ├── sources │ │ │ │ ├── configs_executor.move │ │ │ │ ├── configs_uln.move │ │ │ │ ├── dvn_verify_params.move │ │ │ │ └── worker_options.move │ │ │ └── tests │ │ │ │ ├── test_dvn_verify_params.move │ │ │ │ └── worker_options_tests.move │ │ └── routers │ │ │ ├── router_node_0 │ │ │ ├── Move.toml │ │ │ └── sources │ │ │ │ └── router_node.move │ │ │ └── router_node_1_placeholder │ │ │ ├── Move.toml │ │ │ └── sources │ │ │ └── router_node.move │ │ ├── oapps │ │ └── oft_common │ │ │ ├── Move.toml │ │ │ ├── sources │ │ │ ├── oft_compose_msg_codec.move │ │ │ ├── oft_fee_detail.move │ │ │ ├── oft_limit.move │ │ │ ├── oft_msg_codec.move │ │ │ └── oft_v1_msg_codec.move │ │ │ └── tests │ │ │ ├── oft_compose_codec_tests.move │ │ │ ├── oft_msg_codec_tests.move │ │ │ └── oft_v1_msg_codec_tests.move │ │ ├── run_tests.sh │ │ ├── treasury │ │ ├── Move.toml │ │ ├── sources │ │ │ └── treasury.move │ │ └── tests │ │ │ └── treasury_tests.move │ │ ├── worker_peripherals │ │ ├── fee_lib_routers │ │ │ ├── dvn_fee_lib_router_0 │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ │ └── dvn_fee_lib_router.move │ │ │ ├── dvn_fee_lib_router_1_placeholder │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ │ └── dvn_fee_lib_router.move │ │ │ ├── executor_fee_lib_router_0 │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ │ └── executor_fee_lib_router.move │ │ │ └── executor_fee_lib_router_1_placeholder │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ └── executor_fee_lib_router.move │ │ ├── fee_libs │ │ │ ├── dvn_fee_lib_0 │ │ │ │ ├── Move.toml │ │ │ │ ├── sources │ │ │ │ │ └── dvn_fee_lib.move │ │ │ │ └── tests │ │ │ │ │ └── dvn_fee_lib_tests.move │ │ │ └── executor_fee_lib_0 │ │ │ │ ├── Move.toml │ │ │ │ ├── sources │ │ │ │ ├── executor_fee_lib.move │ │ │ │ └── types │ │ │ │ │ └── executor_option.move │ │ │ │ └── tests │ │ │ │ ├── executor_fee_lib_tests.move │ │ │ │ └── types │ │ │ │ └── executor_option_tests.move │ │ ├── price_feed_modules │ │ │ └── price_feed_module_0 │ │ │ │ ├── Move.toml │ │ │ │ ├── sources │ │ │ │ ├── feeds.move │ │ │ │ └── types │ │ │ │ │ ├── eid_model_pair.move │ │ │ │ │ └── price.move │ │ │ │ └── tests │ │ │ │ ├── feeds_tests.move │ │ │ │ └── types │ │ │ │ ├── eid_model_pair_tests.move │ │ │ │ └── price_tests.move │ │ ├── price_feed_routers │ │ │ ├── price_feed_router_0 │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ │ └── router.move │ │ │ └── price_feed_router_1_placeholder │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ └── router.move │ │ └── worker_common │ │ │ ├── Move.toml │ │ │ ├── sources │ │ │ ├── internal │ │ │ │ ├── multisig_store.move │ │ │ │ └── worker_config_store.move │ │ │ ├── multisig.move │ │ │ └── worker_config.move │ │ │ └── tests │ │ │ ├── internal │ │ │ ├── signing_store_tests.move │ │ │ └── worker_config_store_tests.move │ │ │ ├── multisig_tests.move │ │ │ └── worker_config_tests.move │ │ └── workers │ │ ├── dvn │ │ ├── Move.toml │ │ ├── sources │ │ │ ├── dvn.move │ │ │ └── hashes.move │ │ └── tests │ │ │ ├── dvn_tests.move │ │ │ └── hashes_test.move │ │ ├── executor │ │ ├── Move.toml │ │ ├── sources │ │ │ ├── executor.move │ │ │ └── types │ │ │ │ └── native_drop_params.move │ │ └── tests │ │ │ └── executor_tests.move │ │ └── worker_publishers │ │ ├── Move.toml │ │ ├── script_generation │ │ └── worker_initialization_scripts.ts │ │ ├── scripts │ │ ├── initialize_dvn.move │ │ └── initialize_executor.move │ │ └── sources │ │ └── .gitkeep │ ├── evm │ ├── messagelib │ │ ├── .gitignore │ │ ├── contracts │ │ │ ├── Executor.sol │ │ │ ├── ExecutorFeeLib.sol │ │ │ ├── MessageLibBase.sol │ │ │ ├── PriceFeed.sol │ │ │ ├── ReceiveLibBaseE2.sol │ │ │ ├── SendLibBase.sol │ │ │ ├── SendLibBaseE2.sol │ │ │ ├── SimpleReadExecutor.sol │ │ │ ├── Treasury.sol │ │ │ ├── Worker.sol │ │ │ ├── interfaces │ │ │ │ ├── IExecutor.sol │ │ │ │ ├── IExecutorFeeLib.sol │ │ │ │ ├── ILayerZeroExecutor.sol │ │ │ │ ├── ILayerZeroPriceFeed.sol │ │ │ │ ├── ILayerZeroReadExecutor.sol │ │ │ │ ├── ILayerZeroTreasury.sol │ │ │ │ └── IWorker.sol │ │ │ ├── libs │ │ │ │ ├── ExecutorOptions.sol │ │ │ │ └── SafeCall.sol │ │ │ ├── uln │ │ │ │ ├── LzExecutor.sol │ │ │ │ ├── ReceiveUlnBase.sol │ │ │ │ ├── SendUlnBase.sol │ │ │ │ ├── UlnBase.sol │ │ │ │ ├── dvn │ │ │ │ │ ├── DVN.sol │ │ │ │ │ ├── DVNFeeLib.sol │ │ │ │ │ ├── MultiSig.sol │ │ │ │ │ ├── SimpleReadDVN.sol │ │ │ │ │ └── adapters │ │ │ │ │ │ ├── CCIP │ │ │ │ │ │ ├── CCIPDVNAdapter.sol │ │ │ │ │ │ └── CCIPDVNAdapterFeeLib.sol │ │ │ │ │ │ ├── DVNAdapterBase.sol │ │ │ │ │ │ ├── axelar │ │ │ │ │ │ ├── AxelarDVNAdapter.sol │ │ │ │ │ │ └── AxelarDVNAdapterFeeLib.sol │ │ │ │ │ │ └── libs │ │ │ │ │ │ └── DVNAdapterMessageCodec.sol │ │ │ │ ├── interfaces │ │ │ │ │ ├── IDVN.sol │ │ │ │ │ ├── IDVNFeeLib.sol │ │ │ │ │ ├── ILayerZeroDVN.sol │ │ │ │ │ ├── ILayerZeroReadDVN.sol │ │ │ │ │ ├── IReceiveUlnE2.sol │ │ │ │ │ └── adapters │ │ │ │ │ │ ├── IAxelarDVNAdapter.sol │ │ │ │ │ │ ├── IAxelarDVNAdapterFeeLib.sol │ │ │ │ │ │ ├── ICCIPDVNAdapter.sol │ │ │ │ │ │ └── ICCIPDVNAdapterFeeLib.sol │ │ │ │ ├── libs │ │ │ │ │ ├── DVNOptions.sol │ │ │ │ │ ├── ReadCmdCodecV1.sol │ │ │ │ │ ├── SupportedCmdTypes.sol │ │ │ │ │ └── UlnOptions.sol │ │ │ │ ├── readlib │ │ │ │ │ ├── ReadLib1002.sol │ │ │ │ │ ├── ReadLib1002View.sol │ │ │ │ │ └── ReadLibBase.sol │ │ │ │ ├── uln301 │ │ │ │ │ ├── AddressSizeConfig.sol │ │ │ │ │ ├── ReceiveLibBaseE1.sol │ │ │ │ │ ├── ReceiveUln301.sol │ │ │ │ │ ├── ReceiveUln301View.sol │ │ │ │ │ ├── SendLibBaseE1.sol │ │ │ │ │ ├── SendUln301.sol │ │ │ │ │ ├── TreasuryFeeHandler.sol │ │ │ │ │ ├── interfaces │ │ │ │ │ │ ├── IMessageLibE1.sol │ │ │ │ │ │ ├── INonceContract.sol │ │ │ │ │ │ ├── ITreasuryFeeHandler.sol │ │ │ │ │ │ └── IUltraLightNode301.sol │ │ │ │ │ └── mocks │ │ │ │ │ │ └── NonceContractMock.sol │ │ │ │ └── uln302 │ │ │ │ │ ├── ReceiveUln302.sol │ │ │ │ │ ├── ReceiveUln302View.sol │ │ │ │ │ └── SendUln302.sol │ │ │ └── upgradeable │ │ │ │ ├── WorkerUpgradeable.sol │ │ │ │ └── proxy │ │ │ │ ├── ProxyAdmin.sol │ │ │ │ └── TransparentUpgradeableProxy.sol │ │ ├── foundry.toml │ │ ├── package.json │ │ └── test │ │ │ ├── AddressSizeConfig.t.sol │ │ │ ├── DVN.t.sol │ │ │ ├── DVNFeeLib.t.sol │ │ │ ├── ExecutorFeeLib.t.sol │ │ │ ├── LzExecutor.t.sol │ │ │ ├── MultiSig.t.sol │ │ │ ├── PriceFeed.t.sol │ │ │ ├── ReceiveBaseE1.t.sol │ │ │ ├── ReceiveUln301.t.sol │ │ │ ├── ReceiveUln301View.t.sol │ │ │ ├── ReceiveUln302.t.sol │ │ │ ├── ReceiveUln302View.t.sol │ │ │ ├── ReceiveUlnBase.t.sol │ │ │ ├── SendLibBase.t.sol │ │ │ ├── SendLibBaseE1.t.sol │ │ │ ├── SendLibBaseE2.t.sol │ │ │ ├── SendUln301.t.sol │ │ │ ├── SendUln302.t.sol │ │ │ ├── SendUlnBase.t.sol │ │ │ ├── TreasuryFeeHandler.t.sol │ │ │ ├── UlnBase.t.sol │ │ │ ├── Worker.t.sol │ │ │ ├── libtests │ │ │ ├── DVNOptions.t.sol │ │ │ ├── ExecutorOptions.t.sol │ │ │ ├── ReadCmdCodecV1.t.sol │ │ │ └── UlnOptions.t.sol │ │ │ ├── mocks │ │ │ ├── EndpointV1.sol │ │ │ ├── PriceFeedMock.sol │ │ │ ├── ReceiveLibMock.sol │ │ │ ├── SendLibMock.sol │ │ │ └── TokenMock.sol │ │ │ ├── readlib │ │ │ ├── ReadLib102.E2E.t.sol │ │ │ ├── ReadLib102.Treasury.t.sol │ │ │ ├── ReadLib102.t.sol │ │ │ └── ReadLibBase.t.sol │ │ │ └── util │ │ │ ├── CmdUtil.sol │ │ │ ├── Constant.sol │ │ │ ├── OptionsUtil.sol │ │ │ ├── Packet.sol │ │ │ ├── Setup.sol │ │ │ └── SetupRead.sol │ ├── oapp │ │ ├── README.md │ │ ├── contracts │ │ │ ├── oapp │ │ │ │ ├── OApp.sol │ │ │ │ ├── OAppCore.sol │ │ │ │ ├── OAppRead.sol │ │ │ │ ├── OAppReceiver.sol │ │ │ │ ├── OAppSender.sol │ │ │ │ ├── examples │ │ │ │ │ ├── CmdCodecV1Mock.sol │ │ │ │ │ ├── LzReadCounter.sol │ │ │ │ │ ├── OmniCounter.sol │ │ │ │ │ ├── OmniCounterAbstract.sol │ │ │ │ │ └── OmniCounterPreCrime.sol │ │ │ │ ├── interfaces │ │ │ │ │ ├── IOAppComposer.sol │ │ │ │ │ ├── IOAppComputer.sol │ │ │ │ │ ├── IOAppComputerMap.sol │ │ │ │ │ ├── IOAppComputerReduce.sol │ │ │ │ │ ├── IOAppCore.sol │ │ │ │ │ ├── IOAppMsgInspector.sol │ │ │ │ │ ├── IOAppOptionsType3.sol │ │ │ │ │ └── IOAppReceiver.sol │ │ │ │ ├── libs │ │ │ │ │ ├── OAppOptionsType3.sol │ │ │ │ │ ├── OptionsBuilder.sol │ │ │ │ │ └── ReadCmdCodecV1.sol │ │ │ │ └── utils │ │ │ │ │ └── RateLimiter.sol │ │ │ ├── oft │ │ │ │ ├── OFT.sol │ │ │ │ ├── OFTAdapter.sol │ │ │ │ ├── OFTCore.sol │ │ │ │ ├── interfaces │ │ │ │ │ └── IOFT.sol │ │ │ │ └── libs │ │ │ │ │ ├── OFTComposeMsgCodec.sol │ │ │ │ │ └── OFTMsgCodec.sol │ │ │ └── precrime │ │ │ │ ├── OAppPreCrimeSimulator.sol │ │ │ │ ├── PreCrime.sol │ │ │ │ ├── extensions │ │ │ │ └── PreCrimeE1.sol │ │ │ │ ├── interfaces │ │ │ │ ├── IOAppPreCrimeSimulator.sol │ │ │ │ └── IPreCrime.sol │ │ │ │ └── libs │ │ │ │ └── Packet.sol │ │ ├── foundry.toml │ │ ├── package.json │ │ └── test │ │ │ ├── OFT.t.sol │ │ │ ├── OmniCounter.t.sol │ │ │ ├── OptionsHelper.sol │ │ │ ├── PreCrimeV2.t.sol │ │ │ ├── RateLimiter.t.sol │ │ │ ├── TestHelper.sol │ │ │ ├── hardhat-demo.test.ts │ │ │ ├── lib │ │ │ ├── CmdCodecV1.t.sol │ │ │ ├── OAppOptionsType3.t.sol │ │ │ └── mock │ │ │ │ └── OptionsType3Mock.sol │ │ │ └── mocks │ │ │ ├── ERC20Mock.sol │ │ │ ├── ExecutorFeeLibMock.sol │ │ │ ├── OFTAdapterMock.sol │ │ │ ├── OFTComposerMock.sol │ │ │ ├── OFTInspectorMock.sol │ │ │ ├── OFTMock.sol │ │ │ ├── PreCrimeV2Mock.sol │ │ │ ├── PreCrimeV2SimulatorMock.sol │ │ │ ├── SendUln302Mock.sol │ │ │ └── SimpleMessageLibMock.sol │ └── protocol │ │ ├── .gitignore │ │ ├── contracts │ │ ├── EndpointV2.sol │ │ ├── EndpointV2Alt.sol │ │ ├── EndpointV2View.sol │ │ ├── EndpointV2ViewUpgradeable.sol │ │ ├── MessageLibManager.sol │ │ ├── MessagingChannel.sol │ │ ├── MessagingComposer.sol │ │ ├── MessagingContext.sol │ │ ├── interfaces │ │ │ ├── ILayerZeroComposer.sol │ │ │ ├── ILayerZeroEndpointV2.sol │ │ │ ├── ILayerZeroReceiver.sol │ │ │ ├── IMessageLib.sol │ │ │ ├── IMessageLibManager.sol │ │ │ ├── IMessagingChannel.sol │ │ │ ├── IMessagingComposer.sol │ │ │ ├── IMessagingContext.sol │ │ │ └── ISendLib.sol │ │ ├── libs │ │ │ ├── AddressCast.sol │ │ │ ├── CalldataBytesLib.sol │ │ │ ├── Errors.sol │ │ │ ├── GUID.sol │ │ │ └── Transfer.sol │ │ └── messagelib │ │ │ ├── BlockedMessageLib.sol │ │ │ ├── SimpleMessageLib.sol │ │ │ └── libs │ │ │ ├── BitMaps.sol │ │ │ ├── ExecutorOptions.sol │ │ │ └── PacketV1Codec.sol │ │ ├── foundry.toml │ │ ├── package.json │ │ └── test │ │ ├── BlockedMessageLib.t.sol │ │ ├── EndpointV2.t.sol │ │ ├── EndpointV2Alt.t.sol │ │ ├── EndpointV2View.t.sol │ │ ├── MessageLibManager.t.sol │ │ ├── MessagingChannel.t.sol │ │ ├── MessagingComposer.t.sol │ │ ├── MessagingContext.t.sol │ │ ├── libtests │ │ ├── AddressCast.t.sol │ │ ├── BitMaps.t.sol │ │ ├── CalldataBytesLib.t.sol │ │ ├── ExecutorOptions.t.sol │ │ └── PacketV1Codec.t.sol │ │ ├── mocks │ │ ├── AppMock.sol │ │ ├── MessageLibMock.sol │ │ ├── TokenMock.sol │ │ └── TreasuryMock.sol │ │ └── utils │ │ └── LayerZeroTest.sol │ ├── initia │ └── contracts │ │ ├── endpoint_v2 │ │ ├── Move.toml │ │ ├── sources │ │ │ ├── admin.move │ │ │ ├── endpoint.move │ │ │ └── internal │ │ │ │ ├── channels.move │ │ │ │ ├── messaging_composer.move │ │ │ │ ├── messaging_receipt.move │ │ │ │ ├── msglib_manager.move │ │ │ │ ├── registration.move │ │ │ │ ├── store.move │ │ │ │ └── timeout.move │ │ └── tests │ │ │ ├── endpoint_tests.move │ │ │ ├── internal │ │ │ ├── channels_tests.move │ │ │ ├── messaging_composer_tests.move │ │ │ ├── messaging_receipt_tests.move │ │ │ ├── msglib_manager_tests.move │ │ │ ├── registration_tests.move │ │ │ └── timeout_test_helpers.move │ │ │ └── test_helpers.move │ │ ├── endpoint_v2_common │ │ ├── Move.toml │ │ ├── sources │ │ │ ├── assert_no_duplicates.move │ │ │ ├── bytes32.move │ │ │ ├── contract_identity.move │ │ │ ├── guid.move │ │ │ ├── native_token.move │ │ │ ├── packet_raw.move │ │ │ ├── packet_v1_codec.move │ │ │ ├── send_packet.move │ │ │ ├── serde.move │ │ │ └── universal_config.move │ │ └── tests │ │ │ ├── assert_no_duplicates_tests.move │ │ │ ├── bytes_32_tests.move │ │ │ ├── contract_identity_tests.move │ │ │ ├── native_token_test_helpers.move │ │ │ ├── packet_tests.move │ │ │ ├── packet_v1_codec_tests.move │ │ │ ├── serde_tests.move │ │ │ ├── universal_config_tests.move │ │ │ └── zro_test_helpers.move │ │ ├── layerzero_views │ │ ├── Move.toml │ │ ├── sources │ │ │ ├── endpoint_views.move │ │ │ └── uln_302.move │ │ └── tests │ │ │ ├── layerzero_views_tests.move │ │ │ └── uln_302_tests.move │ │ ├── msglib │ │ ├── libs │ │ │ ├── blocked_msglib │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ │ └── router_calls.move │ │ │ ├── simple_msglib │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ │ ├── msglib.move │ │ │ │ │ └── router_calls.move │ │ │ └── uln_302 │ │ │ │ ├── Move.toml │ │ │ │ ├── sources │ │ │ │ ├── admin.move │ │ │ │ ├── internal │ │ │ │ │ ├── assert_valid_default_uln_config.move │ │ │ │ │ ├── assert_valid_uln_config.move │ │ │ │ │ ├── configuration.move │ │ │ │ │ ├── for_each_dvn.move │ │ │ │ │ ├── sending.move │ │ │ │ │ ├── uln_302_store.move │ │ │ │ │ └── verification.move │ │ │ │ ├── msglib.move │ │ │ │ └── router_calls.move │ │ │ │ └── tests │ │ │ │ └── internal │ │ │ │ ├── assert_valid_default_uln_config_tests.move │ │ │ │ ├── assert_valid_oapp_uln_config_tests.move │ │ │ │ ├── configuration_tests.move │ │ │ │ ├── for_each_dvn_tests.move │ │ │ │ ├── msglib_tests.move │ │ │ │ ├── sending_tests.move │ │ │ │ └── verification_tests.move │ │ ├── msglib_types │ │ │ ├── Move.toml │ │ │ ├── sources │ │ │ │ ├── configs_executor.move │ │ │ │ ├── configs_uln.move │ │ │ │ ├── dvn_verify_params.move │ │ │ │ └── worker_options.move │ │ │ └── tests │ │ │ │ ├── test_dvn_verify_params.move │ │ │ │ └── worker_options_tests.move │ │ └── routers │ │ │ ├── router_node_0 │ │ │ ├── Move.toml │ │ │ └── sources │ │ │ │ └── router_node.move │ │ │ └── router_node_1_placeholder │ │ │ ├── Move.toml │ │ │ └── sources │ │ │ └── router_node.move │ │ ├── oapps │ │ └── oft_common │ │ │ ├── Move.toml │ │ │ ├── sources │ │ │ ├── oft_compose_msg_codec.move │ │ │ ├── oft_fee_detail.move │ │ │ ├── oft_limit.move │ │ │ ├── oft_msg_codec.move │ │ │ └── oft_v1_msg_codec.move │ │ │ └── tests │ │ │ ├── oft_compose_codec_tests.move │ │ │ ├── oft_msg_codec_tests.move │ │ │ └── oft_v1_msg_codec_tests.move │ │ ├── run_tests.sh │ │ ├── treasury │ │ ├── Move.toml │ │ ├── sources │ │ │ └── treasury.move │ │ └── tests │ │ │ └── treasury_tests.move │ │ ├── worker_peripherals │ │ ├── fee_lib_routers │ │ │ ├── dvn_fee_lib_router_0 │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ │ └── dvn_fee_lib_router.move │ │ │ ├── dvn_fee_lib_router_1_placeholder │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ │ └── dvn_fee_lib_router.move │ │ │ ├── executor_fee_lib_router_0 │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ │ └── executor_fee_lib_router.move │ │ │ └── executor_fee_lib_router_1_placeholder │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ └── executor_fee_lib_router.move │ │ ├── fee_libs │ │ │ ├── dvn_fee_lib_0 │ │ │ │ ├── Move.toml │ │ │ │ ├── sources │ │ │ │ │ └── dvn_fee_lib.move │ │ │ │ └── tests │ │ │ │ │ └── dvn_fee_lib_tests.move │ │ │ └── executor_fee_lib_0 │ │ │ │ ├── Move.toml │ │ │ │ ├── sources │ │ │ │ ├── executor_fee_lib.move │ │ │ │ └── types │ │ │ │ │ └── executor_option.move │ │ │ │ └── tests │ │ │ │ ├── executor_fee_lib_tests.move │ │ │ │ └── types │ │ │ │ └── executor_option_tests.move │ │ ├── price_feed_modules │ │ │ └── price_feed_module_0 │ │ │ │ ├── Move.toml │ │ │ │ ├── sources │ │ │ │ ├── feeds.move │ │ │ │ └── types │ │ │ │ │ ├── eid_model_pair.move │ │ │ │ │ └── price.move │ │ │ │ └── tests │ │ │ │ ├── feeds_tests.move │ │ │ │ └── types │ │ │ │ ├── eid_model_pair_tests.move │ │ │ │ └── price_tests.move │ │ ├── price_feed_routers │ │ │ ├── price_feed_router_0 │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ │ └── router.move │ │ │ └── price_feed_router_1_placeholder │ │ │ │ ├── Move.toml │ │ │ │ └── sources │ │ │ │ └── router.move │ │ └── worker_common │ │ │ ├── Move.toml │ │ │ ├── sources │ │ │ ├── internal │ │ │ │ ├── multisig_store.move │ │ │ │ └── worker_config_store.move │ │ │ ├── multisig.move │ │ │ └── worker_config.move │ │ │ └── tests │ │ │ ├── internal │ │ │ ├── signing_store_tests.move │ │ │ └── worker_config_store_tests.move │ │ │ ├── multisig_tests.move │ │ │ └── worker_config_tests.move │ │ └── workers │ │ ├── dvn │ │ ├── Move.toml │ │ ├── sources │ │ │ ├── dvn.move │ │ │ └── hashes.move │ │ └── tests │ │ │ ├── dvn_tests.move │ │ │ └── hashes_test.move │ │ └── executor │ │ ├── Move.toml │ │ ├── sources │ │ ├── executor.move │ │ └── types │ │ │ └── native_drop_params.move │ │ └── tests │ │ └── executor_tests.move │ ├── solana │ └── programs │ │ ├── .gitignore │ │ ├── Anchor.toml │ │ ├── Cargo.lock │ │ ├── Cargo.toml │ │ ├── README.md │ │ ├── libs │ │ ├── cpi-helper │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ └── lib.rs │ │ ├── messagelib-helper │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ │ ├── endpoint_verify.rs │ │ │ │ ├── lib.rs │ │ │ │ └── packet_v1_codec.rs │ │ ├── oapp │ │ │ ├── Cargo.toml │ │ │ ├── src │ │ │ │ ├── endpoint_cpi.rs │ │ │ │ ├── lib.rs │ │ │ │ └── options.rs │ │ │ └── tests │ │ │ │ └── enforced_options.rs │ │ └── utils │ │ │ ├── Cargo.toml │ │ │ └── src │ │ │ ├── bytes_lib.rs │ │ │ ├── lib.rs │ │ │ ├── macros.rs │ │ │ └── sorted_list_helper.rs │ │ ├── package.json │ │ ├── programs │ │ ├── blocked-messagelib │ │ │ ├── Cargo.toml │ │ │ ├── Xargo.toml │ │ │ ├── build.rs │ │ │ └── src │ │ │ │ └── lib.rs │ │ ├── dvn │ │ │ ├── Cargo.toml │ │ │ ├── Xargo.toml │ │ │ ├── build.rs │ │ │ ├── src │ │ │ │ ├── errors.rs │ │ │ │ ├── events.rs │ │ │ │ ├── instructions │ │ │ │ │ ├── admin │ │ │ │ │ │ ├── close_execute.rs │ │ │ │ │ │ ├── extend_dvn_config.rs │ │ │ │ │ │ ├── invoke.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── set_config.rs │ │ │ │ │ │ └── withdraw_fee.rs │ │ │ │ │ ├── init_dvn.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── quote.rs │ │ │ │ │ └── verifiable.rs │ │ │ │ ├── lib.rs │ │ │ │ └── state │ │ │ │ │ ├── dvn_config.rs │ │ │ │ │ ├── execute_hash.rs │ │ │ │ │ └── mod.rs │ │ │ └── tests │ │ │ │ └── dvn_config.rs │ │ ├── endpoint │ │ │ ├── Cargo.toml │ │ │ ├── Xargo.toml │ │ │ ├── build.rs │ │ │ └── src │ │ │ │ ├── errors.rs │ │ │ │ ├── events.rs │ │ │ │ ├── instructions │ │ │ │ ├── admin │ │ │ │ │ ├── init_default_receive_library.rs │ │ │ │ │ ├── init_default_send_library.rs │ │ │ │ │ ├── init_endpoint.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── register_library.rs │ │ │ │ │ ├── set_default_receive_library.rs │ │ │ │ │ ├── set_default_receive_library_timeout.rs │ │ │ │ │ ├── set_default_send_library.rs │ │ │ │ │ ├── set_lz_token.rs │ │ │ │ │ ├── transfer_admin.rs │ │ │ │ │ └── withdraw_rent.rs │ │ │ │ ├── init_verify.rs │ │ │ │ ├── lz_compose_alert.rs │ │ │ │ ├── lz_receive_alert.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── oapp │ │ │ │ │ ├── burn.rs │ │ │ │ │ ├── clear.rs │ │ │ │ │ ├── clear_compose.rs │ │ │ │ │ ├── init_config.rs │ │ │ │ │ ├── init_nonce.rs │ │ │ │ │ ├── init_receive_library.rs │ │ │ │ │ ├── init_send_library.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── nilify.rs │ │ │ │ │ ├── quote.rs │ │ │ │ │ ├── register_oapp.rs │ │ │ │ │ ├── send.rs │ │ │ │ │ ├── send_compose.rs │ │ │ │ │ ├── set_config.rs │ │ │ │ │ ├── set_delegate.rs │ │ │ │ │ ├── set_receive_library.rs │ │ │ │ │ ├── set_receive_library_timeout.rs │ │ │ │ │ ├── set_send_library.rs │ │ │ │ │ └── skip.rs │ │ │ │ └── verify.rs │ │ │ │ ├── lib.rs │ │ │ │ └── state │ │ │ │ ├── compose_message.rs │ │ │ │ ├── endpoint.rs │ │ │ │ ├── message_lib.rs │ │ │ │ ├── messaging_channel.rs │ │ │ │ └── mod.rs │ │ ├── executor │ │ │ ├── Cargo.toml │ │ │ ├── Xargo.toml │ │ │ ├── build.rs │ │ │ └── src │ │ │ │ ├── errors.rs │ │ │ │ ├── events.rs │ │ │ │ ├── instructions │ │ │ │ ├── admin_set_config.rs │ │ │ │ ├── compose.rs │ │ │ │ ├── executable.rs │ │ │ │ ├── execute.rs │ │ │ │ ├── init_executor.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── native_drop.rs │ │ │ │ ├── owner_set_config.rs │ │ │ │ └── quote.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── options_codec.rs │ │ │ │ └── state │ │ │ │ ├── executor_config.rs │ │ │ │ └── mod.rs │ │ ├── messagelib-interface │ │ │ ├── Cargo.toml │ │ │ ├── Xargo.toml │ │ │ └── src │ │ │ │ └── lib.rs │ │ ├── oft │ │ │ ├── Cargo.toml │ │ │ ├── README.md │ │ │ ├── Xargo.toml │ │ │ ├── build.rs │ │ │ ├── src │ │ │ │ ├── compose_msg_codec.rs │ │ │ │ ├── errors.rs │ │ │ │ ├── events.rs │ │ │ │ ├── instructions │ │ │ │ │ ├── init_adapter_oft.rs │ │ │ │ │ ├── init_oft.rs │ │ │ │ │ ├── lz_receive.rs │ │ │ │ │ ├── lz_receive_types.rs │ │ │ │ │ ├── mint_to.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── quote.rs │ │ │ │ │ ├── quote_oft.rs │ │ │ │ │ ├── send.rs │ │ │ │ │ ├── set_delegate.rs │ │ │ │ │ ├── set_enforced_options.rs │ │ │ │ │ ├── set_mint_authority.rs │ │ │ │ │ ├── set_peer.rs │ │ │ │ │ ├── set_rate_limit.rs │ │ │ │ │ └── transfer_admin.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── msg_codec.rs │ │ │ │ └── state │ │ │ │ │ ├── enforced_options.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── oft.rs │ │ │ │ │ └── peer.rs │ │ │ └── tests │ │ │ │ └── msg_codec.rs │ │ ├── pricefeed │ │ │ ├── Cargo.toml │ │ │ ├── Xargo.toml │ │ │ ├── build.rs │ │ │ └── src │ │ │ │ ├── errors.rs │ │ │ │ ├── instructions │ │ │ │ ├── admin │ │ │ │ │ ├── extend_price_feed.rs │ │ │ │ │ ├── init_price_feed.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── set_price_feed.rs │ │ │ │ │ └── transfer_admin.rs │ │ │ │ ├── get_fee.rs │ │ │ │ ├── mod.rs │ │ │ │ └── updater │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── set_price.rs │ │ │ │ │ └── set_sol_price.rs │ │ │ │ ├── lib.rs │ │ │ │ └── state │ │ │ │ ├── mod.rs │ │ │ │ └── price.rs │ │ ├── simple-messagelib │ │ │ ├── Cargo.toml │ │ │ ├── Xargo.toml │ │ │ ├── build.rs │ │ │ └── src │ │ │ │ ├── errors.rs │ │ │ │ ├── instructions │ │ │ │ ├── admin │ │ │ │ │ ├── init_default_config.rs │ │ │ │ │ ├── init_message_lib.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── set_default_config.rs │ │ │ │ │ ├── set_fee.rs │ │ │ │ │ ├── set_wl_caller.rs │ │ │ │ │ ├── transfer_admin.rs │ │ │ │ │ └── withdraw_fees.rs │ │ │ │ ├── endpoint │ │ │ │ │ ├── init_config.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── quote.rs │ │ │ │ │ ├── send.rs │ │ │ │ │ ├── send_with_lz_token.rs │ │ │ │ │ └── set_config.rs │ │ │ │ ├── mod.rs │ │ │ │ └── validate_packet.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── revert_call_test.rs │ │ │ │ └── state │ │ │ │ ├── message_lib.rs │ │ │ │ └── mod.rs │ │ ├── uln │ │ │ ├── Cargo.lock │ │ │ ├── Cargo.toml │ │ │ ├── Xargo.toml │ │ │ ├── build.rs │ │ │ ├── src │ │ │ │ ├── errors.rs │ │ │ │ ├── events.rs │ │ │ │ ├── instructions │ │ │ │ │ ├── admin │ │ │ │ │ │ ├── init_default_config.rs │ │ │ │ │ │ ├── init_uln.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── set_default_config.rs │ │ │ │ │ │ ├── set_treasury.rs │ │ │ │ │ │ ├── transfer_admin.rs │ │ │ │ │ │ └── withdraw_rent.rs │ │ │ │ │ ├── dvn │ │ │ │ │ │ ├── close_verify.rs │ │ │ │ │ │ ├── commit_verification.rs │ │ │ │ │ │ ├── init_verify.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ └── verify.rs │ │ │ │ │ ├── endpoint │ │ │ │ │ │ ├── init_config.rs │ │ │ │ │ │ ├── mod.rs │ │ │ │ │ │ ├── quote.rs │ │ │ │ │ │ ├── send.rs │ │ │ │ │ │ ├── send_with_lz_token.rs │ │ │ │ │ │ └── set_config.rs │ │ │ │ │ └── mod.rs │ │ │ │ ├── lib.rs │ │ │ │ ├── options_codec.rs │ │ │ │ └── state │ │ │ │ │ ├── confirmations.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── uln.rs │ │ │ └── tests │ │ │ │ ├── options_codec.rs │ │ │ │ └── utils │ │ │ │ ├── mod.rs │ │ │ │ └── options_util.rs │ │ └── worker-interface │ │ │ ├── Cargo.toml │ │ │ ├── Xargo.toml │ │ │ └── src │ │ │ ├── lib.rs │ │ │ └── worker_utils.rs │ │ ├── rust-toolchain.toml │ │ ├── rustfmt.toml │ │ ├── turbo.json │ │ └── verify-contracts.md │ └── ton │ ├── .gitignore │ ├── jest.config.js │ ├── package.json │ ├── src │ ├── apps │ │ ├── allStorages │ │ │ ├── class_autoload.fc │ │ │ ├── main.fc │ │ │ └── tests │ │ │ │ └── main.fc │ │ ├── baseOApp │ │ │ ├── handler.fc │ │ │ ├── interface.fc │ │ │ ├── oAppMain.fc │ │ │ └── storage.fc │ │ └── counter │ │ │ ├── autoload.fc │ │ │ ├── handler.fc │ │ │ ├── interface.fc │ │ │ ├── main.fc │ │ │ ├── storage.fc │ │ │ └── tests │ │ │ ├── main.fc │ │ │ ├── permissions.fc │ │ │ └── setters.fc │ ├── classes │ │ ├── lz │ │ │ ├── Config.fc │ │ │ ├── EpConfig.fc │ │ │ ├── MsglibInfo.fc │ │ │ ├── Packet.fc │ │ │ ├── Path.fc │ │ │ ├── ReceiveEpConfig.fc │ │ │ ├── SendEpConfig.fc │ │ │ ├── SmlJobAssigned.fc │ │ │ └── tests │ │ │ │ ├── UlnReceiveConfig.fc │ │ │ │ ├── UlnSendConfig.fc │ │ │ │ ├── main.fc │ │ │ │ └── serde.fc │ │ └── msgdata │ │ │ ├── AddMsglib.fc │ │ │ ├── Bool.fc │ │ │ ├── ChannelNonceInfo.fc │ │ │ ├── CoinsAmount.fc │ │ │ ├── CounterIncrement.fc │ │ │ ├── Deploy.fc │ │ │ ├── ExtendedMd.fc │ │ │ ├── GetMsglibCallback.fc │ │ │ ├── InitEndpoint.fc │ │ │ ├── InitSmlConnection.fc │ │ │ ├── LzReceivePrepare.fc │ │ │ ├── LzReceiveStatus.fc │ │ │ ├── LzSend.fc │ │ │ ├── MdAddress.fc │ │ │ ├── MdEid.fc │ │ │ ├── MdObj.fc │ │ │ ├── MessagingReceipt.fc │ │ │ ├── MsglibSendCallback.fc │ │ │ ├── Nonce.fc │ │ │ ├── OptionsExtended.fc │ │ │ ├── OptionsV1.fc │ │ │ ├── OptionsV2.fc │ │ │ ├── PacketId.fc │ │ │ ├── PacketSent.fc │ │ │ ├── SetAddress.fc │ │ │ ├── SetEpConfig.fc │ │ │ ├── SetPeer.fc │ │ │ ├── SetSmlManagerConfig.fc │ │ │ └── tests │ │ │ ├── main.fc │ │ │ └── serde.fc │ ├── funC++ │ │ ├── abstract │ │ │ ├── contractMainAbstract.fc │ │ │ └── handlerAbstract.fc │ │ ├── actions │ │ │ ├── RawCall.fc │ │ │ ├── call.fc │ │ │ ├── deploy.fc │ │ │ ├── dispatch.fc │ │ │ ├── event.fc │ │ │ ├── payment.fc │ │ │ ├── sendJettons.fc │ │ │ └── utils.fc │ │ ├── baseInterface.fc │ │ ├── classlib.fc │ │ ├── constants.fc │ │ ├── contractMain.fc │ │ ├── dataStructures │ │ │ ├── AddressList.fc │ │ │ ├── DeterministicInsertionCircularQueue.fc │ │ │ └── PipelinedOutOfOrder.fc │ │ ├── handlerCore.fc │ │ ├── stdlib.fc │ │ ├── stringlib.fc │ │ ├── tests │ │ │ ├── POOO │ │ │ │ ├── main.fc │ │ │ │ └── serde.fc │ │ │ ├── actions │ │ │ │ └── serde.fc │ │ │ ├── baseContract │ │ │ │ ├── autoload.fc │ │ │ │ ├── handler.fc │ │ │ │ ├── main.fc │ │ │ │ └── storage.fc │ │ │ ├── classlib │ │ │ │ └── main.fc │ │ │ ├── txnContext │ │ │ │ └── main.fc │ │ │ └── util │ │ │ │ └── main.fc │ │ ├── testutils.fc │ │ ├── txnContext.fc │ │ └── utils.fc │ ├── jettons │ │ └── zro │ │ │ ├── meta.json │ │ │ ├── minter.fc │ │ │ ├── op-codes.fc │ │ │ ├── params.fc │ │ │ ├── utils.fc │ │ │ └── wallet.fc │ ├── multisig │ │ ├── auto │ │ │ └── order_code.func │ │ ├── bocs │ │ │ ├── MultiSig.compiled.json │ │ │ └── MultiSigOrder.compiled.json │ │ ├── errors.func │ │ ├── imports │ │ │ └── stdlib.fc │ │ ├── messages.func │ │ ├── multisig.func │ │ ├── op-codes.func │ │ ├── order.func │ │ ├── order_helpers.func │ │ └── types.func │ ├── protocol │ │ ├── channel │ │ │ ├── callbackOpcodes.fc │ │ │ ├── handler.fc │ │ │ ├── interface.fc │ │ │ ├── main.fc │ │ │ ├── storage.fc │ │ │ └── tests │ │ │ │ ├── channelBurn.fc │ │ │ │ ├── channelBurnDefaultConfig.fc │ │ │ │ ├── channelCommitPacket.fc │ │ │ │ ├── channelConfig.fc │ │ │ │ ├── channelInitialize.fc │ │ │ │ ├── channelMsglibIntegration.fc │ │ │ │ ├── channelMsglibSendCallback.fc │ │ │ │ ├── channelNilify.fc │ │ │ │ ├── channelNilifyDefaultConfig.fc │ │ │ │ ├── channelReceive.fc │ │ │ │ ├── channelReceiveCallback.fc │ │ │ │ ├── channelReceiveUtils.fc │ │ │ │ ├── channelReceiveView.fc │ │ │ │ ├── channelSend.fc │ │ │ │ ├── channelSerde.fc │ │ │ │ └── permissions.fc │ │ ├── controller │ │ │ ├── handler.fc │ │ │ ├── interface.fc │ │ │ ├── main.fc │ │ │ ├── storage.fc │ │ │ └── tests │ │ │ │ ├── assertions.fc │ │ │ │ ├── main.fc │ │ │ │ └── permissions.fc │ │ ├── core │ │ │ ├── abstract │ │ │ │ ├── protocolHandler.fc │ │ │ │ └── protocolMain.fc │ │ │ └── baseStorage.fc │ │ ├── endpoint │ │ │ ├── handler.fc │ │ │ ├── interface.fc │ │ │ ├── main.fc │ │ │ ├── storage.fc │ │ │ └── tests │ │ │ │ ├── endpointSetEpConfigDefaults.fc │ │ │ │ ├── main.fc │ │ │ │ ├── permissions.fc │ │ │ │ └── serde.fc │ │ ├── interfaces.fc │ │ └── msglibs │ │ │ ├── BytesDecoder.fc │ │ │ ├── BytesEncoder.fc │ │ │ ├── interface.fc │ │ │ ├── simpleMsglib │ │ │ ├── smlConnection │ │ │ │ ├── handler.fc │ │ │ │ ├── interface.fc │ │ │ │ ├── main.fc │ │ │ │ ├── storage.fc │ │ │ │ └── tests │ │ │ │ │ ├── main.fc │ │ │ │ │ └── permissions.fc │ │ │ └── smlManager │ │ │ │ ├── handler.fc │ │ │ │ ├── interface.fc │ │ │ │ ├── main.fc │ │ │ │ ├── storage.fc │ │ │ │ └── tests │ │ │ │ ├── main.fc │ │ │ │ └── permissions.fc │ │ │ ├── tests │ │ │ └── msglibPacketCodec.fc │ │ │ └── ultralightnode │ │ │ ├── callbackOpcodes.fc │ │ │ ├── feeLibInterface.fc │ │ │ ├── feeLibUtils.fc │ │ │ ├── msgdata │ │ │ ├── Attestation.fc │ │ │ ├── DvnFeesPaidEvent.fc │ │ │ ├── ExecutorFeePaidEvent.fc │ │ │ ├── InitUln.fc │ │ │ ├── InitUlnConnection.fc │ │ │ ├── InitUlnManager.fc │ │ │ ├── RentRefill.fc │ │ │ ├── SetAdminWorkerAddresses.fc │ │ │ ├── TreasuryFeeBps.fc │ │ │ ├── UlnEvents.fc │ │ │ ├── UlnReceiveConfig.fc │ │ │ ├── UlnSend.fc │ │ │ ├── UlnSendConfig.fc │ │ │ ├── UlnVerification.fc │ │ │ ├── UlnWorkerFeelibBytecode.fc │ │ │ ├── UlnWorkerFeelibEvents.fc │ │ │ ├── UlnWorkerFeelibInfo.fc │ │ │ ├── VerificationStatus.fc │ │ │ └── tests │ │ │ │ └── serde.fc │ │ │ ├── uln │ │ │ ├── handler.fc │ │ │ ├── interface.fc │ │ │ ├── main.fc │ │ │ ├── storage.fc │ │ │ └── tests │ │ │ │ ├── badFeeLib │ │ │ │ ├── badFeeLib1.fc │ │ │ │ ├── badFeeLib10.fc │ │ │ │ ├── badFeeLib11.fc │ │ │ │ ├── badFeeLib12.fc │ │ │ │ ├── badFeeLib2.fc │ │ │ │ ├── badFeeLib3.fc │ │ │ │ ├── badFeeLib4.fc │ │ │ │ ├── badFeeLib5.fc │ │ │ │ ├── badFeeLib6.fc │ │ │ │ ├── badFeeLib7.fc │ │ │ │ ├── badFeeLib8.fc │ │ │ │ └── badFeeLib9.fc │ │ │ │ ├── computeSizeGasTest │ │ │ │ ├── computeSizeGasTest.fc │ │ │ │ └── storage.fc │ │ │ │ ├── main.fc │ │ │ │ ├── management.fc │ │ │ │ ├── mockWorker.fc │ │ │ │ ├── permissions.fc │ │ │ │ ├── serde.fc │ │ │ │ ├── testutil.fc │ │ │ │ ├── ulnSend.fc │ │ │ │ ├── ulnSendWithArbDvnFeeLib.fc │ │ │ │ ├── ulnSendWithArbExecFeeLib.fc │ │ │ │ ├── ulnSendWithDefaultDvnFeeLib.fc │ │ │ │ ├── ulnSendWithDefaultExecFeeLib.fc │ │ │ │ ├── ulnSendWithOpDvnFeeLib.fc │ │ │ │ ├── ulnSendWithOpExecFeeLib.fc │ │ │ │ └── util.fc │ │ │ ├── ulnConnection │ │ │ ├── handler.fc │ │ │ ├── interface.fc │ │ │ ├── main.fc │ │ │ ├── storage.fc │ │ │ ├── tests │ │ │ │ ├── main.fc │ │ │ │ ├── permissions.fc │ │ │ │ └── serde.fc │ │ │ └── utils.fc │ │ │ ├── ulnManager │ │ │ ├── handler.fc │ │ │ ├── interface.fc │ │ │ ├── main.fc │ │ │ ├── storage.fc │ │ │ └── tests │ │ │ │ ├── main.fc │ │ │ │ ├── permissions.fc │ │ │ │ └── util.fc │ │ │ └── workerFeeLibs │ │ │ ├── common.fc │ │ │ ├── dvnFeeLib │ │ │ ├── handler.fc │ │ │ ├── main.fc │ │ │ ├── storage.fc │ │ │ └── tests │ │ │ │ └── serde.fc │ │ │ ├── executorFeeLib │ │ │ ├── handler.fc │ │ │ ├── main.fc │ │ │ ├── storage.fc │ │ │ └── tests │ │ │ │ └── serde.fc │ │ │ ├── main.fc │ │ │ ├── maliciousFeeLib │ │ │ ├── handler.fc │ │ │ └── main.fc │ │ │ ├── priceFeedFeeLib │ │ │ ├── arbitrum │ │ │ │ ├── handler.fc │ │ │ │ ├── main.fc │ │ │ │ └── tests │ │ │ │ │ └── main.fc │ │ │ ├── default │ │ │ │ ├── handler.fc │ │ │ │ ├── main.fc │ │ │ │ └── tests │ │ │ │ │ └── main.fc │ │ │ ├── extensions │ │ │ │ └── ArbitrumPriceFeedExtension.fc │ │ │ ├── interface.fc │ │ │ ├── optimism │ │ │ │ ├── handler.fc │ │ │ │ ├── main.fc │ │ │ │ └── tests │ │ │ │ │ └── main.fc │ │ │ ├── storage.fc │ │ │ └── tests │ │ │ │ └── serde.fc │ │ │ ├── tests │ │ │ └── main.fc │ │ │ └── ulnSendWorkerV1.fc │ └── workers │ │ ├── core │ │ ├── abstract │ │ │ └── workerHandler.fc │ │ ├── interface.fc │ │ ├── tests │ │ │ ├── dummyHandler.fc │ │ │ ├── main.fc │ │ │ ├── serde.fc │ │ │ └── workerStorageTestUtils.fc │ │ └── workerCoreStorage.fc │ │ ├── dvn │ │ ├── handler.fc │ │ ├── interface.fc │ │ ├── main.fc │ │ ├── storage.fc │ │ └── tests │ │ │ ├── main.fc │ │ │ ├── permissions.fc │ │ │ └── serde.fc │ │ ├── executor │ │ ├── handler.fc │ │ ├── interface.fc │ │ ├── main.fc │ │ ├── storage.fc │ │ └── tests │ │ │ ├── main.fc │ │ │ ├── permissions.fc │ │ │ └── serde.fc │ │ ├── msgdata │ │ ├── ClaimTon.fc │ │ ├── ExecuteParams.fc │ │ ├── NativeDrop.fc │ │ ├── SetDict.fc │ │ ├── SetQuorum.fc │ │ ├── SignedRequest.fc │ │ └── tests │ │ │ └── serde.fc │ │ ├── priceFeedCache │ │ ├── handler.fc │ │ ├── interface.fc │ │ ├── main.fc │ │ ├── storage.fc │ │ └── tests │ │ │ ├── main.fc │ │ │ ├── permissions.fc │ │ │ └── serde.fc │ │ └── proxy │ │ ├── handler.fc │ │ ├── interface.fc │ │ ├── main.fc │ │ ├── storage.fc │ │ └── tests │ │ ├── main.fc │ │ └── permissions.fc │ ├── tests │ ├── UnitTest.ts │ ├── baseContractTest.fc │ ├── baseSerdeTest.fc │ ├── consts.fc │ ├── globalTestResults.ts │ ├── mocks.fc │ ├── protocolStorageTestUtils.fc │ ├── testInitTxnContextMain.fc │ ├── testMain.fc │ └── unittest.spec.ts │ ├── tsconfig.json │ └── wrappers │ ├── ActionsSerde.test.compile.ts │ ├── AllStorages.compile.ts │ ├── AllStorages.test.compile.ts │ ├── BaseContract.test.compile.ts │ ├── Channel.compile.ts │ ├── Channel.permissions.test.compile.ts │ ├── ChannelBurn.test.compile.ts │ ├── ChannelBurnDefaultConfig.test.compile.ts │ ├── ChannelCommitPacket.test.compile.ts │ ├── ChannelConfig.test.compile.ts │ ├── ChannelInitialize.test.compile.ts │ ├── ChannelMsglibIntegration.test.compile.ts │ ├── ChannelMsglibSendCallback.test.compile.ts │ ├── ChannelNilify.test.compile.ts │ ├── ChannelNilifyDefaultConfig.test.compile.ts │ ├── ChannelReceive.test.compile.ts │ ├── ChannelReceiveCallback.test.compile.ts │ ├── ChannelReceiveView.test.compile.ts │ ├── ChannelSend.test.compile.ts │ ├── ChannelSerde.test.compile.ts │ ├── Classlib.test.compile.ts │ ├── ComputeDataSizeGas.test.compile.ts │ ├── Connection.compile.ts │ ├── Controller.assertions.test.compile.ts │ ├── Controller.compile.ts │ ├── Controller.permissions.test.compile.ts │ ├── Controller.test.compile.ts │ ├── Counter.compile.ts │ ├── Counter.permissions.test.compile.ts │ ├── Counter.setters.test.compile.ts │ ├── Counter.test.compile.ts │ ├── Dvn.compile.ts │ ├── Dvn.test.compile.ts │ ├── DvnFeeLib.compile.ts │ ├── DvnFeeLibSerde.test.compile.ts │ ├── DvnPermissions.test.compile.ts │ ├── DvnSerde.test.compile.ts │ ├── Endpoint.compile.ts │ ├── Endpoint.permissions.test.compile.ts │ ├── Endpoint.test.compile.ts │ ├── EndpointSerde.test.compile.ts │ ├── EndpointSetEpConfigDefaults.test.compile.ts │ ├── Executor.compile.ts │ ├── Executor.test.compile.ts │ ├── ExecutorFeeLib.compile.ts │ ├── ExecutorFeeLibSerde.test.compile.ts │ ├── ExecutorPermissions.test.compile.ts │ ├── ExecutorSerde.test.compile.ts │ ├── LzClasses.test.compile.ts │ ├── LzClassesSerde.test.compile.ts │ ├── LzUtil.test.compile.ts │ ├── MaliciousFeeLib.compile.ts │ ├── MsgData.test.compile.ts │ ├── MsgDataSerde.test.compile.ts │ ├── MsglibPacketCodec.test.compile.ts │ ├── MultiSig.compile.ts │ ├── MultiSigOrder.compile.ts │ ├── PipelinedOutOfOrder.test.compile.ts │ ├── PipelinedOutOfOrderSerde.test.compile.ts │ ├── PriceFeedCache.compile.ts │ ├── PriceFeedCache.test.compile.ts │ ├── PriceFeedCache.test.permissions.compile.ts │ ├── PriceFeedCacheSerde.test.compile.ts │ ├── PriceFeedFeeLibArbitrum.compile.ts │ ├── PriceFeedFeeLibArbitrum.test.compile.ts │ ├── PriceFeedFeeLibDefault.compile.ts │ ├── PriceFeedFeeLibDefault.test.compile.ts │ ├── PriceFeedFeeLibOptimism.compile.ts │ ├── PriceFeedFeeLibOptimism.test.compile.ts │ ├── PriceFeedFeeLibSerde.test.compile.ts │ ├── Proxy.compile.ts │ ├── Proxy.permissions.test.compile.ts │ ├── Proxy.test.compile.ts │ ├── SmlConnection.compile.ts │ ├── SmlConnection.permissions.test.compile.ts │ ├── SmlConnection.test.compile.ts │ ├── SmlManager.compile.ts │ ├── SmlManager.permissions.test.compile.ts │ ├── SmlManager.test.compile.ts │ ├── TxnContext.test.compile.ts │ ├── Uln.compile.ts │ ├── Uln.test.compile.ts │ ├── UlnConnection.compile.ts │ ├── UlnConnection.test.compile.ts │ ├── UlnConnectionPermissions.test.compile.ts │ ├── UlnConnectionSerde.test.compile.ts │ ├── UlnManagement.test.compile.ts │ ├── UlnManager.compile.ts │ ├── UlnManager.test.compile.ts │ ├── UlnManagerPermissions.test.compile.ts │ ├── UlnManagerUtil.test.compile.ts │ ├── UlnMsgDataSerde.test.compile.ts │ ├── UlnPermissions.test.compile.ts │ ├── UlnReceiveConfig.test.compile.ts │ ├── UlnSend.test.compile.ts │ ├── UlnSendConfig.test.compile.ts │ ├── UlnSendWithArbDvnFeeLib.test.compile.ts │ ├── UlnSendWithArbExecFeeLib.test.compile.ts │ ├── UlnSendWithDefaultDvnFeeLib.test.compile.ts │ ├── UlnSendWithDefaultExecFeeLib.test.compile.ts │ ├── UlnSendWithOpDvnFeeLib.test.compile.ts │ ├── UlnSendWithOpExecFeeLib.test.compile.ts │ ├── UlnSendWorkerFactory.test.compile.ts │ ├── UlnSerde.test.compile.ts │ ├── UlnUtil.test.compile.ts │ ├── WorkerCore.test.compile.ts │ ├── WorkerCoreMsgDataSerde.test.compile.ts │ ├── WorkerCoreSerde.test.compile.ts │ ├── ZroMinter.compile.ts │ ├── ZroWallet.compile.ts │ ├── badFeeLib1.test.compile.ts │ ├── badFeeLib10.test.compile.ts │ ├── badFeeLib11.test.compile.ts │ ├── badFeeLib12.test.compile.ts │ ├── badFeeLib2.test.compile.ts │ ├── badFeeLib3.test.compile.ts │ ├── badFeeLib4.test.compile.ts │ ├── badFeeLib5.test.compile.ts │ ├── badFeeLib6.test.compile.ts │ ├── badFeeLib7.test.compile.ts │ ├── badFeeLib8.test.compile.ts │ └── badFeeLib9.test.compile.ts └── yarn.lock /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for more information: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | # https://containers.dev/guide/dependabot 6 | 7 | version: 2 8 | updates: 9 | - package-ecosystem: "devcontainers" 10 | directory: "/" 11 | schedule: 12 | interval: weekly 13 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "lib/forge-std"] 2 | path = lib/forge-std 3 | url = https://github.com/foundry-rs/forge-std 4 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | ...require('@layerzerolabs/prettier-config-next'), 3 | }; 4 | -------------------------------------------------------------------------------- /.solhintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['solhint:recommended', require.resolve('@layerzerolabs/solhint-config')], 3 | }; 4 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | compressionLevel: mixed 2 | 3 | enableGlobalCache: true 4 | globalFolder: .yarn/berry 5 | 6 | nodeLinker: pnpm 7 | 8 | unsafeHttpWhitelist: 9 | - localhost 10 | 11 | npmRegistries: 12 | "//localhost:4873": 13 | npmAuthToken: "${LOCAL_NPM_TOKEN-}" 14 | //registry.npmjs.org: 15 | npmAuthToken: "${NPM_TOKEN-}" 16 | 17 | npmScopes: 18 | layerzerolabs: 19 | npmAlwaysAuth: true 20 | npmPublishRegistry: "${NPM_REGISTRY-https://registry.npmjs.org}" 21 | npmRegistryServer: "${NPM_REGISTRY-https://registry.npmjs.org}" 22 | 23 | packageExtensions: 24 | hardhat-deploy@*: 25 | dependencies: 26 | hardhat: ^2.9.0 27 | 28 | yarnPath: .yarn/releases/yarn-4.0.2.cjs 29 | -------------------------------------------------------------------------------- /funding.json: -------------------------------------------------------------------------------- 1 | { 2 | "opRetro": { 3 | "projectId": "0x3230536d9c471231698a0fe66daeeda963282f2b594ce5a47d3dbfa53ac9d4a5" 4 | } 5 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/deployer/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "deployer" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | deployer = "_" 8 | 9 | [dev-addresses] 10 | deployer = "0x90909090" 11 | 12 | [dependencies.AptosFramework] 13 | git = "https://github.com/aptos-labs/aptos-framework.git" 14 | rev = "mainnet" 15 | subdir = "aptos-framework" 16 | 17 | [dev-dependencies] 18 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/endpoint_v2/tests/internal/timeout_test_helpers.move: -------------------------------------------------------------------------------- 1 | #[test_only] 2 | module endpoint_v2::timeout_test_helpers { 3 | #[test_only] 4 | public fun setup_for_timeouts() { 5 | let std = &std::account::create_account_for_test(@std); 6 | std::block::initialize_for_test(std, 1_000_000); 7 | std::reconfiguration::initialize_for_test(std); 8 | let vm = &std::account::create_account_for_test(@0x0); 9 | // genesis block 10 | std::block::emit_writeset_block_event(vm, @1234); 11 | } 12 | 13 | 14 | #[test_only] 15 | public fun set_block_height(target_height: u64) { 16 | let vm = &std::account::create_signer_for_test(@0x0); 17 | let start_height = std::block::get_current_block_height(); 18 | for (i in start_height..target_height) { 19 | std::block::emit_writeset_block_event(vm, @1234); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/endpoint_v2_common/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "endpoint_v2_common" 3 | version = "1.0.0" 4 | 5 | [addresses] 6 | endpoint_v2_common = "_" 7 | endpoint_v2 = "_" 8 | layerzero_admin = "_" 9 | layerzero_treasury_admin = "_" 10 | native_token_metadata_address = "0xa" 11 | 12 | [dev-addresses] 13 | endpoint_v2_common = "0x9098" 14 | endpoint_v2 = "0x12345678" 15 | layerzero_admin = "0x18943124" 16 | layerzero_treasury_admin = "0x123456231423" 17 | 18 | [dependencies.AptosFramework] 19 | git = "https://github.com/aptos-labs/aptos-framework.git" 20 | rev = "mainnet" 21 | subdir = "aptos-framework" 22 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/endpoint_v2_common/sources/assert_no_duplicates.move: -------------------------------------------------------------------------------- 1 | module endpoint_v2_common::assert_no_duplicates { 2 | use std::vector; 3 | 4 | /// Assert that there are no duplicate addresses in the given vector. 5 | public fun assert_no_duplicates(items: &vector) { 6 | for (i in 0..vector::length(items)) { 7 | for (j in 0..i) { 8 | if (vector::borrow(items, i) == vector::borrow(items, j)) { 9 | abort EDUPLICATE_ITEM 10 | } 11 | } 12 | } 13 | } 14 | 15 | 16 | // ================================================== Error Codes ================================================= 17 | 18 | const EDUPLICATE_ITEM: u64 = 1; 19 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/endpoint_v2_common/sources/guid.move: -------------------------------------------------------------------------------- 1 | /// This module provides the function to compute the GUID for a message 2 | module endpoint_v2_common::guid { 3 | use endpoint_v2_common::bytes32::{Self, Bytes32}; 4 | use endpoint_v2_common::serde; 5 | 6 | public fun compute_guid(nonce: u64, src_eid: u32, sender: Bytes32, dst_eid: u32, receiver: Bytes32): Bytes32 { 7 | let guid_bytes = vector[]; 8 | serde::append_u64(&mut guid_bytes, nonce); 9 | serde::append_u32(&mut guid_bytes, src_eid); 10 | serde::append_bytes32(&mut guid_bytes, sender); 11 | serde::append_u32(&mut guid_bytes, dst_eid); 12 | serde::append_bytes32(&mut guid_bytes, receiver); 13 | bytes32::keccak256(guid_bytes) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/endpoint_v2_common/tests/assert_no_duplicates_tests.move: -------------------------------------------------------------------------------- 1 | #[test_only] 2 | module endpoint_v2_common::assert_no_duplicates_tests { 3 | use endpoint_v2_common::assert_no_duplicates::assert_no_duplicates; 4 | 5 | #[test] 6 | fun does_not_abort_if_no_duplicate_addresses() { 7 | let addresses = vector
[@1, @2, @3, @4]; 8 | assert_no_duplicates(&addresses); 9 | } 10 | 11 | #[test] 12 | #[expected_failure(abort_code = endpoint_v2_common::assert_no_duplicates::EDUPLICATE_ITEM)] 13 | fun aborts_if_duplicate_addresses() { 14 | let addresses = vector
[@1, @2, @3, @1, @5, @6]; 15 | assert_no_duplicates(&addresses); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/endpoint_v2_common/tests/native_token_test_helpers.move: -------------------------------------------------------------------------------- 1 | #[test_only] 2 | module endpoint_v2_common::native_token_test_helpers { 3 | use std::aptos_coin; 4 | use std::fungible_asset; 5 | use std::fungible_asset::FungibleAsset; 6 | use std::primary_fungible_store::ensure_primary_store_exists; 7 | 8 | public fun initialize_native_token_for_test() { 9 | let fa = aptos_coin::mint_apt_fa_for_test(0); 10 | fungible_asset::destroy_zero(fa); 11 | } 12 | 13 | public fun mint_native_token_for_test(amount: u64): FungibleAsset { 14 | aptos_coin::mint_apt_fa_for_test(amount) 15 | } 16 | 17 | public fun burn_token_for_test(token: FungibleAsset) { 18 | let metadata = fungible_asset::asset_metadata(&token); 19 | let burn_loc = ensure_primary_store_exists(@0x0, metadata); 20 | fungible_asset::deposit(burn_loc, token); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/msglib/libs/blocked_msglib/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "blocked_msglib" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | blocked_msglib = "_" 8 | endpoint_v2 = "_" 9 | layerzero_treasury_admin = "_" 10 | endpoint_v2_common = "_" 11 | layerzero_admin = "_" 12 | 13 | [dev-addresses] 14 | blocked_msglib = "0x9003" 15 | endpoint_v2 = "0x12345678" 16 | layerzero_treasury_admin = "0x1894312499" 17 | endpoint_v2_common = "0x94535243" 18 | layerzero_admin = "0x18943124" 19 | 20 | [dependencies] 21 | endpoint_v2_common = { local = "../../../endpoint_v2_common" } 22 | 23 | [dev-dependencies] 24 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/msglib/libs/simple_msglib/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "simple_msglib" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | simple_msglib = "_" 8 | endpoint_v2 = "_" 9 | layerzero_treasury_admin = "_" 10 | endpoint_v2_common = "_" 11 | layerzero_admin = "_" 12 | 13 | [dev-addresses] 14 | simple_msglib = "0x9002" 15 | endpoint_v2 = "0x12345678" 16 | layerzero_treasury_admin = "0x1894312499" 17 | endpoint_v2_common = "0x9098" 18 | layerzero_admin = "0x18943124" 19 | 20 | [dependencies.AptosFramework] 21 | git = "https://github.com/aptos-labs/aptos-framework.git" 22 | rev = "mainnet" 23 | subdir = "aptos-framework" 24 | 25 | [dependencies] 26 | endpoint_v2_common = { local = "../../../endpoint_v2_common" } -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/msglib/libs/uln_302/tests/internal/for_each_dvn_tests.move: -------------------------------------------------------------------------------- 1 | #[test_only] 2 | module uln_302::for_each_dvn_tests { 3 | use std::vector; 4 | 5 | use uln_302::for_each_dvn::for_each_dvn; 6 | 7 | #[test] 8 | fun test_for_each_dvn() { 9 | let required_dvns = vector[@1, @2, @3]; 10 | let optional_dvns = vector[@4, @5, @6]; 11 | let expected_dvns = vector[@1, @2, @3, @4, @5, @6]; 12 | 13 | for_each_dvn(&required_dvns, &optional_dvns, |dvn, idx| { 14 | let expected_dvn = *vector::borrow(&expected_dvns, idx); 15 | assert!(dvn == expected_dvn, 1); 16 | }); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/msglib/msglib_types/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "msglib_types" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | msglib_types = "_" 8 | endpoint_v2_common = "_" 9 | endpoint_v2 = "_" 10 | layerzero_admin = "_" 11 | layerzero_treasury_admin = "_" 12 | 13 | [dev-addresses] 14 | msglib_types = "0x97324123" 15 | endpoint_v2_common = "0x9098" 16 | endpoint_v2 = "0x12345678" 17 | layerzero_admin = "0x18943124" 18 | layerzero_treasury_admin = "0x1894312499" 19 | 20 | [dependencies.AptosFramework] 21 | git = "https://github.com/aptos-labs/aptos-framework.git" 22 | rev = "mainnet" 23 | subdir = "aptos-framework" 24 | 25 | [dependencies] 26 | endpoint_v2_common = { local = "../../endpoint_v2_common" } 27 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/msglib/routers/router_node_1_placeholder/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "router_node_1" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | router_node_1 = "_" 8 | endpoint_v2_common = "_" 9 | endpoint_v2 = "_" 10 | layerzero_admin = "_" 11 | layerzero_treasury_admin = "_" 12 | msglib_types = "_" 13 | worker_common = "_" 14 | 15 | [dev-addresses] 16 | router_node_1 = "0x9007" 17 | endpoint_v2_common = "0x9098" 18 | endpoint_v2 = "0x12345678" 19 | layerzero_admin = "0x18943124" 20 | layerzero_treasury_admin = "0x1894312499" 21 | msglib_types = "0x521234" 22 | worker_common = "0x3204817234" 23 | 24 | [dependencies] 25 | msglib_types = { local = "../../msglib_types" } 26 | endpoint_v2_common = { local = "../../../endpoint_v2_common" } 27 | worker_common = { local = "../../../worker_peripherals/worker_common" } -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/oapps/oft_common/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "oft_common" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | oft_common = "_" 8 | endpoint_v2_common = "_" 9 | endpoint_v2 = "_" 10 | layerzero_admin = "_" 11 | layerzero_treasury_admin = "_" 12 | 13 | [dev-addresses] 14 | oft_common = "0x302814823" 15 | endpoint_v2_common = "0x9098" 16 | endpoint_v2 = "0x12345678" 17 | layerzero_admin = "0x18943124" 18 | layerzero_treasury_admin = "0x123456231423" 19 | 20 | [dependencies.AptosFramework] 21 | git = "https://github.com/aptos-labs/aptos-framework.git" 22 | rev = "mainnet" 23 | subdir = "aptos-framework" 24 | 25 | [dependencies] 26 | endpoint_v2_common = { local = "../../endpoint_v2_common" } 27 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/run_tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Find all directories containing Move.toml and run the command 4 | find . -name 'Move.toml' -execdir sh -c 'echo "Running tests in $(pwd)" && aptos move test --dev' \; 5 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/treasury/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "treasury" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | treasury = "_" 8 | endpoint_v2_common = "_" 9 | endpoint_v2 = "_" 10 | layerzero_admin = "_" 11 | layerzero_treasury_admin = "_" 12 | native_token_metadata_address = "0xa" 13 | 14 | [dev-addresses] 15 | treasury = "0x123432432" 16 | endpoint_v2_common = "0x9098" 17 | endpoint_v2 = "0x12345678" 18 | layerzero_admin = "0x18943124" 19 | layerzero_treasury_admin = "0x1894312499" 20 | 21 | [dependencies.AptosFramework] 22 | git = "https://github.com/aptos-labs/aptos-framework.git" 23 | rev = "mainnet" 24 | subdir = "aptos-framework" 25 | 26 | [dependencies] 27 | endpoint_v2_common = { local = "../endpoint_v2_common" } 28 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/worker_peripherals/fee_lib_routers/dvn_fee_lib_router_1_placeholder/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "dvn_fee_lib_router_1" 3 | version = "1.0.0" 4 | 5 | [addresses] 6 | dvn_fee_lib_router_1 = "_" 7 | 8 | [dev-addresses] 9 | dvn_fee_lib_router_1 = "0x3294873" 10 | 11 | [dependencies.AptosFramework] 12 | git = "https://github.com/aptos-labs/aptos-framework.git" 13 | rev = "mainnet" 14 | subdir = "aptos-framework" 15 | 16 | [dev-dependencies] 17 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/worker_peripherals/fee_lib_routers/dvn_fee_lib_router_1_placeholder/sources/dvn_fee_lib_router.move: -------------------------------------------------------------------------------- 1 | module dvn_fee_lib_router_1::dvn_fee_lib_router { 2 | const ENOT_IMPLEMENTED: u64 = 1; 3 | 4 | public fun get_dvn_fee( 5 | _msglib: address, 6 | _fee_lib: address, 7 | _worker: address, 8 | _dst_eid: u32, 9 | _sender: address, 10 | _packet_header: vector, 11 | _payload_hash: vector, 12 | _confirmations: u64, 13 | _options: vector, 14 | ): (u64, address) { 15 | abort ENOT_IMPLEMENTED 16 | } 17 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/worker_peripherals/fee_lib_routers/executor_fee_lib_router_1_placeholder/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "executor_fee_lib_router_1" 3 | version = "1.0.0" 4 | 5 | [addresses] 6 | executor_fee_lib_router_1 = "_" 7 | 8 | [dev-addresses] 9 | executor_fee_lib_router_1 = "0x93270987" 10 | 11 | [dependencies.AptosFramework] 12 | git = "https://github.com/aptos-labs/aptos-framework.git" 13 | rev = "mainnet" 14 | subdir = "aptos-framework" 15 | 16 | [dev-dependencies] 17 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/worker_peripherals/fee_lib_routers/executor_fee_lib_router_1_placeholder/sources/executor_fee_lib_router.move: -------------------------------------------------------------------------------- 1 | module executor_fee_lib_router_1::executor_fee_lib_router { 2 | const ENOT_IMPLEMENTED: u64 = 1; 3 | 4 | public fun get_executor_fee( 5 | _msglib: address, 6 | _fee_lib: address, 7 | _worker: address, 8 | _dst_eid: u32, 9 | _sender: address, 10 | _message_size: u64, 11 | _options: vector, 12 | ): (u64, address) { 13 | abort ENOT_IMPLEMENTED 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "price_feed_module_0" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | endpoint_v2 = "_" 8 | price_feed_module_0 = "_" 9 | endpoint_v2_common = "_" 10 | layerzero_admin = "_" 11 | layerzero_treasury_admin = "_" 12 | 13 | [dev-addresses] 14 | endpoint_v2 = "0x12345678" 15 | price_feed_module_0 = "0x65DD71" 16 | endpoint_v2_common = "0x9098" 17 | layerzero_admin = "0x18943124" 18 | layerzero_treasury_admin = "0x1894312499" 19 | 20 | [dependencies.AptosFramework] 21 | git = "https://github.com/aptos-labs/aptos-framework.git" 22 | rev = "mainnet" 23 | subdir = "aptos-framework" 24 | 25 | [dependencies] 26 | endpoint_v2_common = { local = "../../../endpoint_v2_common" } 27 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/worker_peripherals/price_feed_routers/price_feed_router_0/sources/router.move: -------------------------------------------------------------------------------- 1 | module price_feed_router_0::router { 2 | public fun estimate_fee_on_send( 3 | price_feed: address, 4 | feed_address: address, 5 | dst_eid: u32, 6 | call_data_size: u64, 7 | gas: u128, 8 | ): (u128, u128, u128, u128) { 9 | if (price_feed == @price_feed_module_0) { 10 | price_feed_module_0::feeds::estimate_fee_on_send(feed_address, dst_eid, call_data_size, gas) 11 | } else { 12 | price_feed_router_1::router::estimate_fee_on_send( 13 | price_feed, 14 | feed_address, 15 | dst_eid, 16 | call_data_size, 17 | gas, 18 | ) 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/worker_peripherals/price_feed_routers/price_feed_router_1_placeholder/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "price_feed_router_1" 3 | version = "1.0.0" 4 | 5 | [addresses] 6 | price_feed_router_1 = "_" 7 | 8 | [dev-addresses] 9 | price_feed_router_1 = "0x2142134" 10 | 11 | [dependencies.AptosFramework] 12 | git = "https://github.com/aptos-labs/aptos-framework.git" 13 | rev = "mainnet" 14 | subdir = "aptos-framework" 15 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/worker_peripherals/price_feed_routers/price_feed_router_1_placeholder/sources/router.move: -------------------------------------------------------------------------------- 1 | module price_feed_router_1::router { 2 | public fun estimate_fee_on_send( 3 | _price_feed: address, 4 | _feed_address: address, 5 | _dst_eid: u32, 6 | _call_data_size: u64, 7 | _gas: u128, 8 | ): (u128, u128, u128, u128) { 9 | abort EUNKNOWN_PRICE_FEED 10 | } 11 | 12 | // ================================================== Error Codes ================================================= 13 | 14 | const EUNKNOWN_PRICE_FEED: u64 = 1; 15 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/worker_peripherals/worker_common/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "worker_common" 3 | version = "1.0.0" 4 | 5 | [addresses] 6 | endpoint_v2 = "_" 7 | endpoint_v2_common = "_" 8 | layerzero_admin = "_" 9 | layerzero_treasury_admin = "_" 10 | worker_common = "_" 11 | native_token_metadata_address = "0xa" 12 | 13 | [dev-addresses] 14 | endpoint_v2 = "0x13241234" 15 | endpoint_v2_common = "0x9098" 16 | layerzero_admin = "0x18943124" 17 | layerzero_treasury_admin = "0x1894312499" 18 | worker_common = "0x3999" 19 | 20 | [dependencies.AptosFramework] 21 | git = "https://github.com/aptos-labs/aptos-framework.git" 22 | rev = "mainnet" 23 | subdir = "aptos-framework" 24 | 25 | [dependencies] 26 | endpoint_v2_common = { local = "../../endpoint_v2_common" } -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/workers/executor/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "executor" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | executor = "_" 8 | endpoint_v2 = "_" 9 | endpoint_v2_common = "_" 10 | layerzero_admin = "_" 11 | layerzero_treasury_admin = "_" 12 | worker_common = "_" 13 | native_token_metadata_address = "0xa" 14 | 15 | [dev-addresses] 16 | executor = "0x6001" 17 | endpoint_v2 = "0x13241234" 18 | endpoint_v2_common = "0x9098" 19 | layerzero_admin = "0x18943124" 20 | layerzero_treasury_admin = "0x1894312499" 21 | worker_common = "0x3999" 22 | 23 | [dependencies] 24 | endpoint_v2_common = { local = "../../endpoint_v2_common" } 25 | worker_common = { local = "../../worker_peripherals/worker_common" } 26 | -------------------------------------------------------------------------------- /packages/layerzero-v2/aptos/contracts/workers/worker_publishers/sources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LayerZero-Labs/LayerZero-v2/88428755be6caa71cb1d2926141d73c8989296b5/packages/layerzero-v2/aptos/contracts/workers/worker_publishers/sources/.gitkeep -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/messagelib/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiler files 2 | cache/ 3 | out/ 4 | 5 | # Dotenv file 6 | .env 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/messagelib/contracts/MessageLibBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LZBL-1.2 2 | 3 | pragma solidity ^0.8.20; 4 | 5 | /// @dev simply a container of endpoint address and local eid 6 | abstract contract MessageLibBase { 7 | address internal immutable endpoint; 8 | uint32 internal immutable localEid; 9 | 10 | error LZ_MessageLib_OnlyEndpoint(); 11 | 12 | modifier onlyEndpoint() { 13 | if (endpoint != msg.sender) revert LZ_MessageLib_OnlyEndpoint(); 14 | _; 15 | } 16 | 17 | constructor(address _endpoint, uint32 _localEid) { 18 | endpoint = _endpoint; 19 | localEid = _localEid; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/messagelib/contracts/interfaces/ILayerZeroTreasury.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity >=0.8.0; 4 | 5 | interface ILayerZeroTreasury { 6 | function getFee( 7 | address _sender, 8 | uint32 _dstEid, 9 | uint256 _totalNativeFee, 10 | bool _payInLzToken 11 | ) external view returns (uint256 fee); 12 | 13 | function payFee( 14 | address _sender, 15 | uint32 _dstEid, 16 | uint256 _totalNativeFee, 17 | bool _payInLzToken 18 | ) external payable returns (uint256 fee); 19 | } 20 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/messagelib/contracts/uln/interfaces/IDVN.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity >=0.8.0; 4 | 5 | import { IWorker } from "../../interfaces/IWorker.sol"; 6 | import { ILayerZeroDVN } from "./ILayerZeroDVN.sol"; 7 | import { ILayerZeroReadDVN } from "./ILayerZeroReadDVN.sol"; 8 | 9 | interface IDVN is IWorker, ILayerZeroDVN, ILayerZeroReadDVN { 10 | struct DstConfigParam { 11 | uint32 dstEid; 12 | uint64 gas; 13 | uint16 multiplierBps; 14 | uint128 floorMarginUSD; 15 | } 16 | 17 | struct DstConfig { 18 | uint64 gas; 19 | uint16 multiplierBps; 20 | uint128 floorMarginUSD; // uses priceFeed PRICE_RATIO_DENOMINATOR 21 | } 22 | 23 | event SetDstConfig(DstConfigParam[] params); 24 | 25 | function dstConfig(uint32 _dstEid) external view returns (uint64, uint16, uint128); 26 | } 27 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/messagelib/contracts/uln/interfaces/IReceiveUlnE2.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity >=0.8.0; 4 | 5 | /// @dev should be implemented by the ReceiveUln302 contract and future ReceiveUln contracts on EndpointV2 6 | interface IReceiveUlnE2 { 7 | /// @notice for each dvn to verify the payload 8 | /// @dev this function signature 0x0223536e 9 | function verify(bytes calldata _packetHeader, bytes32 _payloadHash, uint64 _confirmations) external; 10 | 11 | /// @notice verify the payload at endpoint, will check if all DVNs verified 12 | function commitVerification(bytes calldata _packetHeader, bytes32 _payloadHash) external; 13 | } 14 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/messagelib/contracts/uln/uln301/interfaces/INonceContract.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity >=0.8.0; 4 | 5 | interface INonceContract { 6 | function increment(uint16 _chainId, address _ua, bytes calldata _path) external returns (uint64); 7 | } 8 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/messagelib/contracts/uln/uln301/interfaces/ITreasuryFeeHandler.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity >=0.8.0; 4 | 5 | interface ITreasuryFeeHandler { 6 | function payFee( 7 | address _lzToken, 8 | address _sender, 9 | uint256 _required, 10 | uint256 _supplied, 11 | address _treasury 12 | ) external; 13 | } 14 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/messagelib/contracts/uln/uln301/interfaces/IUltraLightNode301.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity >=0.8.0; 4 | 5 | interface IUltraLightNode301 { 6 | function commitVerification(bytes calldata _packet, uint256 _gasLimit) external; 7 | } 8 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/messagelib/contracts/uln/uln301/mocks/NonceContractMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.19; 4 | 5 | import { ILayerZeroEndpoint } from "@layerzerolabs/lz-evm-v1-0.7/contracts/interfaces/ILayerZeroEndpoint.sol"; 6 | 7 | contract NonceContractMock { 8 | error OnlySendLibrary(); 9 | 10 | ILayerZeroEndpoint public immutable endpoint; 11 | mapping(uint16 dstEid => mapping(bytes path => uint64 nonce)) public outboundNonce; 12 | 13 | constructor(address _endpoint) { 14 | endpoint = ILayerZeroEndpoint(_endpoint); 15 | } 16 | 17 | function increment(uint16 _chainId, address _ua, bytes calldata _path) external returns (uint64) { 18 | if (msg.sender != endpoint.getSendLibraryAddress(_ua)) { 19 | revert OnlySendLibrary(); 20 | } 21 | return ++outboundNonce[_chainId][_path]; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/messagelib/test/AddressSizeConfig.t.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import { Test } from "forge-std/Test.sol"; 6 | 7 | import { AddressSizeConfig } from "../contracts/uln/uln301/AddressSizeConfig.sol"; 8 | 9 | contract AddressSizeConfigTest is AddressSizeConfig, Test { 10 | function test_setAddressSize() public { 11 | vm.startPrank(owner()); 12 | 13 | // can not set address size more than 32 14 | vm.expectRevert(AddressSizeConfig_InvalidAddressSize.selector); 15 | this.setAddressSize(1, 33); 16 | 17 | this.setAddressSize(1, 32); 18 | assertEq(addressSizes[1], 32); 19 | 20 | // can not set address size twice 21 | vm.expectRevert(AddressSizeConfig_AddressSizeAlreadySet.selector); 22 | this.setAddressSize(1, 31); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/messagelib/test/mocks/TokenMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; 6 | 7 | contract TokenMock is ERC20 { 8 | constructor() ERC20("Token", "TKN") { 9 | _mint(msg.sender, 1000000000 * 10 ** 18); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/messagelib/test/util/Constant.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | library Constant { 6 | // uln301 lib version 7 | uint16 internal constant MSG_VERSION = 1; 8 | 9 | uint16 internal constant EID_ETHEREUM = 101; 10 | uint16 internal constant EID_BSC = 102; 11 | 12 | uint256 internal constant TREASURY_GAS_CAP = 100000; 13 | uint256 internal constant TREASURY_GAS_FOR_FEE_CAP = 100000; 14 | 15 | uint32 internal constant CONFIG_TYPE_EXECUTOR = 1; 16 | uint32 internal constant CONFIG_TYPE_ULN = 2; 17 | uint32 internal constant CONFIG_TYPE_UNKNOWN = 11111; 18 | 19 | uint8 internal constant NIL_DVN_COUNT = type(uint8).max; 20 | uint64 internal constant NIL_CONFIRMATIONS = type(uint64).max; 21 | } 22 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/README.md: -------------------------------------------------------------------------------- 1 | # EVM OApp 2 | 3 | The EVM OApp reference implementation has moved! 4 | 5 | [oapp-evm](https://github.com/LayerZero-Labs/devtools/tree/main/packages/oapp-evm) 6 | 7 | [oft-evm](https://github.com/LayerZero-Labs/devtools/tree/main/packages/oft-evm) 8 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/contracts/oapp/OAppRead.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.20; 4 | 5 | import { AddressCast } from "@layerzerolabs/lz-evm-protocol-v2/contracts/libs/AddressCast.sol"; 6 | 7 | import { OApp } from "./OApp.sol"; 8 | 9 | abstract contract OAppRead is OApp { 10 | 11 | constructor(address _endpoint, address _delegate) OApp(_endpoint, _delegate) {} 12 | 13 | // ------------------------------- 14 | // Only Owner 15 | function setReadChannel(uint32 _channelId, bool _active) public virtual onlyOwner { 16 | _setPeer(_channelId, _active ? AddressCast.toBytes32(address(this)) : bytes32(0)); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/contracts/oapp/examples/OmniCounter.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | pragma solidity ^0.8.20; 3 | 4 | // @dev Oz5 implementation 5 | // import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; 6 | 7 | import { OmniCounterAbstract, MsgCodec } from "./OmniCounterAbstract.sol"; 8 | 9 | contract OmniCounter is OmniCounterAbstract { 10 | // @dev Oz4 implementation 11 | constructor(address _endpoint, address _delegate) OmniCounterAbstract(_endpoint, _delegate) {} 12 | 13 | // @dev Oz5 implementation 14 | // constructor(address _endpoint, address _delegate) OmniCounterAbstract(_endpoint, _delegate) Ownable(_delegate) {} 15 | } 16 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/contracts/oapp/interfaces/IOAppComposer.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.20; 4 | 5 | import { ILayerZeroComposer } from "@layerzerolabs/lz-evm-protocol-v2/contracts/interfaces/ILayerZeroComposer.sol"; 6 | 7 | /** 8 | * @title IOAppComposer 9 | * @dev This interface defines the OApp Composer, allowing developers to inherit only the OApp package without the protocol. 10 | */ 11 | // solhint-disable-next-line no-empty-blocks 12 | interface IOAppComposer is ILayerZeroComposer {} 13 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/contracts/oapp/interfaces/IOAppComputer.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.20; 4 | 5 | import { IOAppComputerReduce } from "./IOAppComputerReduce.sol"; 6 | import { IOAppComputerMap } from "./IOAppComputerMap.sol"; 7 | 8 | interface IOAppComputer is IOAppComputerMap, IOAppComputerReduce {} 9 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/contracts/oapp/interfaces/IOAppComputerMap.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.20; 4 | 5 | interface IOAppComputerMap { 6 | function lzMap(bytes calldata _request, bytes calldata _response) external view returns (bytes memory); 7 | } 8 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/contracts/oapp/interfaces/IOAppComputerReduce.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity ^0.8.20; 4 | 5 | interface IOAppComputerReduce { 6 | function lzReduce(bytes calldata _cmd, bytes[] calldata _responses) external view returns (bytes memory); 7 | } 8 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@layerzerolabs/lz-evm-oapp-v2", 3 | "private": true, 4 | "license": "MIT", 5 | "scripts": { 6 | "clean": "rimraf cache out", 7 | "build": "forge build", 8 | "test": "forge test" 9 | }, 10 | "dependencies": { 11 | "@layerzerolabs/lz-evm-messagelib-v2": "workspace:^", 12 | "@layerzerolabs/lz-evm-protocol-v2": "workspace:^", 13 | "@layerzerolabs/lz-evm-v1-0.7": "^2.0.1" 14 | }, 15 | "devDependencies": { 16 | "@openzeppelin/contracts": "^4.8.1", 17 | "@openzeppelin/contracts-upgradeable": "^4.8.1", 18 | "hardhat-deploy": "^0.11.44", 19 | "rimraf": "^5.0.5", 20 | "solidity-bytes-utils": "^0.8.0" 21 | }, 22 | "peerDependencies": { 23 | "solidity-bytes-utils": "^0.8.0" 24 | }, 25 | "publishConfig": { 26 | "access": "restricted" 27 | }, 28 | "lzVersions": { 29 | "default": [ 30 | "v2" 31 | ] 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/test/hardhat-demo.test.ts: -------------------------------------------------------------------------------- 1 | import { expect } from 'chai' 2 | 3 | describe('Hardhat UnitTest Demo', function () { 4 | it('should pass', async function () { 5 | expect(true).equal(true) 6 | }) 7 | }) 8 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/test/lib/mock/OptionsType3Mock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | 3 | pragma solidity ^0.8.22; 4 | 5 | import { OAppOptionsType3 } from "../../../contracts/oapp/libs/OAppOptionsType3.sol"; 6 | import { EnforcedOptionParam } from "../../../contracts/oapp/interfaces/IOAppOptionsType3.sol"; 7 | 8 | contract OptionsType3Mock is OAppOptionsType3 { 9 | constructor(bytes memory options, bool applyEnforcedOptions) { 10 | if (applyEnforcedOptions) { 11 | EnforcedOptionParam[] memory params = new EnforcedOptionParam[](1); 12 | params[0] = EnforcedOptionParam(1, 1, options); 13 | _setEnforcedOptions(params); // ensure enforced options can be set in the constructor 14 | } 15 | } 16 | 17 | function assertOptionsType3(bytes calldata options) public pure { 18 | _assertOptionsType3(options); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/test/mocks/ERC20Mock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | pragma solidity ^0.8.20; 3 | 4 | import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; 5 | 6 | contract ERC20Mock is ERC20 { 7 | constructor(string memory _name, string memory _symbol) ERC20(_name, _symbol) {} 8 | 9 | function mint(address _to, uint256 _amount) public { 10 | _mint(_to, _amount); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/test/mocks/ExecutorFeeLibMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | 3 | pragma solidity ^0.8.20; 4 | 5 | import { ExecutorFeeLib } from "@layerzerolabs/lz-evm-messagelib-v2/contracts/ExecutorFeeLib.sol"; 6 | 7 | contract ExecutorFeeLibMock is ExecutorFeeLib { 8 | constructor(uint32 _localEid) ExecutorFeeLib(_localEid, 1e18) {} 9 | 10 | function _isV1Eid(uint32 /*_eid*/) internal pure override returns (bool) { 11 | return false; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/test/mocks/OFTComposerMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | pragma solidity ^0.8.0; 3 | 4 | import { IOAppComposer } from "../../contracts/oapp/interfaces/IOAppComposer.sol"; 5 | 6 | contract OFTComposerMock is IOAppComposer { 7 | // default empty values for testing a lzCompose received message 8 | address public from; 9 | bytes32 public guid; 10 | bytes public message; 11 | address public executor; 12 | bytes public extraData; 13 | 14 | function lzCompose( 15 | address _from, 16 | bytes32 _guid, 17 | bytes calldata _message, 18 | address _executor, 19 | bytes calldata /*_extraData*/ 20 | ) external payable { 21 | from = _from; 22 | guid = _guid; 23 | message = _message; 24 | executor = _executor; 25 | extraData = _message; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/test/mocks/OFTInspectorMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | pragma solidity ^0.8.0; 3 | 4 | import { IOAppMsgInspector } from "../../contracts/oapp/interfaces/IOAppMsgInspector.sol"; 5 | 6 | contract OFTInspectorMock is IOAppMsgInspector { 7 | function inspect(bytes calldata _message, bytes calldata _options) external pure returns (bool) { 8 | revert InspectionFailed(_message, _options); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/oapp/test/mocks/SimpleMessageLibMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | pragma solidity ^0.8.0; 3 | 4 | import { SimpleMessageLib } from "@layerzerolabs/lz-evm-protocol-v2/contracts/messagelib/SimpleMessageLib.sol"; 5 | 6 | import { TestHelper } from "../TestHelper.sol"; 7 | 8 | contract SimpleMessageLibMock is SimpleMessageLib { 9 | // offchain packets schedule 10 | TestHelper public testHelper; 11 | 12 | constructor(address payable _verifyHelper, address _endpoint) SimpleMessageLib(_endpoint, address(0x0)) { 13 | testHelper = TestHelper(_verifyHelper); 14 | } 15 | 16 | function _handleMessagingParamsHook(bytes memory _encodedPacket, bytes memory _options) internal override { 17 | testHelper.schedulePacket(_encodedPacket, _options); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/protocol/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiler files 2 | cache/ 3 | out/ 4 | 5 | # Dotenv file 6 | .env 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/protocol/contracts/EndpointV2View.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LZBL-1.2 2 | 3 | pragma solidity ^0.8.20; 4 | 5 | import { Proxied } from "hardhat-deploy/solc_0.8/proxy/Proxied.sol"; 6 | import "./EndpointV2ViewUpgradeable.sol"; 7 | 8 | contract EndpointV2View is EndpointV2ViewUpgradeable, Proxied { 9 | function initialize(address _endpoint) external proxied initializer { 10 | __EndpointV2View_init(_endpoint); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/protocol/contracts/interfaces/ILayerZeroReceiver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity >=0.8.0; 4 | 5 | import { Origin } from "./ILayerZeroEndpointV2.sol"; 6 | 7 | interface ILayerZeroReceiver { 8 | function allowInitializePath(Origin calldata _origin) external view returns (bool); 9 | 10 | function nextNonce(uint32 _eid, bytes32 _sender) external view returns (uint64); 11 | 12 | function lzReceive( 13 | Origin calldata _origin, 14 | bytes32 _guid, 15 | bytes calldata _message, 16 | address _executor, 17 | bytes calldata _extraData 18 | ) external payable; 19 | } 20 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/protocol/contracts/interfaces/IMessagingContext.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity >=0.8.0; 4 | 5 | interface IMessagingContext { 6 | function isSendingMessage() external view returns (bool); 7 | 8 | function getSendContext() external view returns (uint32 dstEid, address sender); 9 | } 10 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/protocol/contracts/libs/GUID.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: LZBL-1.2 2 | 3 | pragma solidity ^0.8.20; 4 | 5 | import { AddressCast } from "./AddressCast.sol"; 6 | 7 | library GUID { 8 | using AddressCast for address; 9 | 10 | function generate( 11 | uint64 _nonce, 12 | uint32 _srcEid, 13 | address _sender, 14 | uint32 _dstEid, 15 | bytes32 _receiver 16 | ) internal pure returns (bytes32) { 17 | return keccak256(abi.encodePacked(_nonce, _srcEid, _sender.toBytes32(), _dstEid, _receiver)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/protocol/contracts/messagelib/libs/BitMaps.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | // modified from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/BitMaps.sol 4 | pragma solidity ^0.8.20; 5 | 6 | type BitMap256 is uint256; 7 | 8 | using BitMaps for BitMap256 global; 9 | 10 | library BitMaps { 11 | /** 12 | * @dev Returns whether the bit at `index` is set. 13 | */ 14 | function get(BitMap256 bitmap, uint8 index) internal pure returns (bool) { 15 | uint256 mask = 1 << index; 16 | return BitMap256.unwrap(bitmap) & mask != 0; 17 | } 18 | 19 | /** 20 | * @dev Sets the bit at `index`. 21 | */ 22 | function set(BitMap256 bitmap, uint8 index) internal pure returns (BitMap256) { 23 | uint256 mask = 1 << index; 24 | return BitMap256.wrap(BitMap256.unwrap(bitmap) | mask); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/protocol/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@layerzerolabs/lz-evm-protocol-v2", 3 | "private": true, 4 | "license": "LZBL-1.2", 5 | "scripts": { 6 | "clean": "rimraf cache out", 7 | "build": "forge build", 8 | "test": "forge test" 9 | }, 10 | "dependencies": { 11 | "@openzeppelin/contracts": "^4.8.1", 12 | "@openzeppelin/contracts-upgradeable": "^4.8.1", 13 | "solidity-bytes-utils": "^0.8.0" 14 | }, 15 | "devDependencies": { 16 | "hardhat-deploy": "^0.11.44", 17 | "rimraf": "^5.0.5" 18 | }, 19 | "publishConfig": { 20 | "access": "restricted" 21 | }, 22 | "lzVersions": { 23 | "default": [ 24 | "v2" 25 | ] 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/protocol/test/mocks/MessageLibMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import { ERC165 } from "@openzeppelin/contracts/utils/introspection/ERC165.sol"; 6 | 7 | import { MessageLibType } from "../../contracts/interfaces/IMessageLib.sol"; 8 | 9 | contract MessageLibMock is ERC165 { 10 | bool internal isSupported; 11 | 12 | constructor(bool _isSupported) { 13 | isSupported = _isSupported; 14 | } 15 | 16 | function supportsInterface(bytes4) public view override returns (bool) { 17 | return isSupported; 18 | } 19 | 20 | function isSupportedEid(uint32 _eid) external pure returns (bool) { 21 | return _eid != type(uint32).max; 22 | } 23 | 24 | function messageLibType() external pure returns (MessageLibType) { 25 | return MessageLibType.SendAndReceive; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/protocol/test/mocks/TokenMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; 6 | 7 | contract TokenMock is ERC20 { 8 | constructor(uint256 amount) ERC20("token", "tkn") { 9 | _mint(msg.sender, amount); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/layerzero-v2/evm/protocol/test/mocks/TreasuryMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: UNLICENSED 2 | 3 | pragma solidity ^0.8.0; 4 | 5 | import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; 6 | 7 | contract TreasuryMock is Ownable { 8 | function withdraw() external onlyOwner { 9 | //withdraw 10 | } 11 | 12 | function withdrawAlt() external onlyOwner { 13 | //withdraw token 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/endpoint_v2/tests/internal/timeout_test_helpers.move: -------------------------------------------------------------------------------- 1 | #[test_only] 2 | module endpoint_v2::timeout_test_helpers { 3 | #[test_only] 4 | public fun setup_for_timeouts() { 5 | let std = &std::account::create_account_for_test(@std); 6 | std::block::initialize_for_test(std, 1_000_000); 7 | std::reconfiguration::initialize_for_test(std); 8 | let vm = &std::account::create_account_for_test(@0x0); 9 | // genesis block 10 | std::block::emit_writeset_block_event(vm, @1234); 11 | } 12 | 13 | 14 | #[test_only] 15 | public fun set_block_height(target_height: u64) { 16 | let vm = &std::account::create_signer_for_test(@0x0); 17 | let start_height = std::block::get_current_block_height(); 18 | for (i in start_height..target_height) { 19 | std::block::emit_writeset_block_event(vm, @1234); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/endpoint_v2_common/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "endpoint_v2_common" 3 | version = "1.0.0" 4 | 5 | [addresses] 6 | endpoint_v2_common = "_" 7 | endpoint_v2 = "_" 8 | layerzero_admin = "_" 9 | layerzero_treasury_admin = "_" 10 | native_token_metadata_address = "0x8e4733bdabcf7d4afc3d14f0dd46c9bf52fb0fce9e4b996c939e195b8bc891d9" 11 | 12 | [dev-addresses] 13 | endpoint_v2_common = "0x9098" 14 | endpoint_v2 = "0x12345678" 15 | layerzero_admin = "0x18943124" 16 | layerzero_treasury_admin = "0x123456231423" 17 | 18 | [dependencies.InitiaStdlib] 19 | git = "https://github.com/initia-labs/move-natives.git" 20 | rev = "77d5f3e140143bdaa41f850115b3035c134193e3" 21 | subdir = "initia_stdlib" 22 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/endpoint_v2_common/sources/assert_no_duplicates.move: -------------------------------------------------------------------------------- 1 | module endpoint_v2_common::assert_no_duplicates { 2 | use std::vector; 3 | 4 | /// Assert that there are no duplicate addresses in the given vector. 5 | public fun assert_no_duplicates(items: &vector) { 6 | for (i in 0..vector::length(items)) { 7 | for (j in 0..i) { 8 | if (vector::borrow(items, i) == vector::borrow(items, j)) { 9 | abort EDUPLICATE_ITEM 10 | } 11 | } 12 | } 13 | } 14 | 15 | 16 | // ================================================== Error Codes ================================================= 17 | 18 | const EDUPLICATE_ITEM: u64 = 1; 19 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/endpoint_v2_common/sources/guid.move: -------------------------------------------------------------------------------- 1 | /// This module provides the function to compute the GUID for a message 2 | module endpoint_v2_common::guid { 3 | use endpoint_v2_common::bytes32::{Self, Bytes32}; 4 | use endpoint_v2_common::serde; 5 | 6 | public fun compute_guid(nonce: u64, src_eid: u32, sender: Bytes32, dst_eid: u32, receiver: Bytes32): Bytes32 { 7 | let guid_bytes = vector[]; 8 | serde::append_u64(&mut guid_bytes, nonce); 9 | serde::append_u32(&mut guid_bytes, src_eid); 10 | serde::append_bytes32(&mut guid_bytes, sender); 11 | serde::append_u32(&mut guid_bytes, dst_eid); 12 | serde::append_bytes32(&mut guid_bytes, receiver); 13 | bytes32::keccak256(guid_bytes) 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/endpoint_v2_common/tests/assert_no_duplicates_tests.move: -------------------------------------------------------------------------------- 1 | #[test_only] 2 | module endpoint_v2_common::assert_no_duplicates_tests { 3 | use endpoint_v2_common::assert_no_duplicates::assert_no_duplicates; 4 | 5 | #[test] 6 | fun does_not_abort_if_no_duplicate_addresses() { 7 | let addresses = vector
[@1, @2, @3, @4]; 8 | assert_no_duplicates(&addresses); 9 | } 10 | 11 | #[test] 12 | #[expected_failure(abort_code = endpoint_v2_common::assert_no_duplicates::EDUPLICATE_ITEM)] 13 | fun aborts_if_duplicate_addresses() { 14 | let addresses = vector
[@1, @2, @3, @1, @5, @6]; 15 | assert_no_duplicates(&addresses); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/endpoint_v2_common/tests/native_token_test_helpers.move: -------------------------------------------------------------------------------- 1 | #[test_only] 2 | module endpoint_v2_common::native_token_test_helpers { 3 | use std::aptos_coin; 4 | use std::fungible_asset; 5 | use std::fungible_asset::FungibleAsset; 6 | use std::primary_fungible_store::ensure_primary_store_exists; 7 | 8 | public fun initialize_native_token_for_test() { 9 | let fa = aptos_coin::mint_apt_fa_for_test(0); 10 | fungible_asset::destroy_zero(fa); 11 | } 12 | 13 | public fun mint_native_token_for_test(amount: u64): FungibleAsset { 14 | aptos_coin::mint_apt_fa_for_test(amount) 15 | } 16 | 17 | public fun burn_token_for_test(token: FungibleAsset) { 18 | let metadata = fungible_asset::asset_metadata(&token); 19 | let burn_loc = ensure_primary_store_exists(@0x0, metadata); 20 | fungible_asset::deposit(burn_loc, token); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/msglib/libs/blocked_msglib/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "blocked_msglib" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | blocked_msglib = "_" 8 | endpoint_v2 = "_" 9 | layerzero_treasury_admin = "_" 10 | endpoint_v2_common = "_" 11 | layerzero_admin = "_" 12 | 13 | [dev-addresses] 14 | blocked_msglib = "0x9003" 15 | endpoint_v2 = "0x12345678" 16 | layerzero_treasury_admin = "0x1894312499" 17 | endpoint_v2_common = "0x94535243" 18 | layerzero_admin = "0x18943124" 19 | 20 | [dependencies] 21 | endpoint_v2_common = { local = "../../../endpoint_v2_common" } 22 | 23 | [dev-dependencies] 24 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/msglib/libs/simple_msglib/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "simple_msglib" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | simple_msglib = "_" 8 | endpoint_v2 = "_" 9 | layerzero_treasury_admin = "_" 10 | endpoint_v2_common = "_" 11 | layerzero_admin = "_" 12 | 13 | [dev-addresses] 14 | simple_msglib = "0x9002" 15 | endpoint_v2 = "0x12345678" 16 | layerzero_treasury_admin = "0x1894312499" 17 | endpoint_v2_common = "0x9098" 18 | layerzero_admin = "0x18943124" 19 | 20 | [dependencies.InitiaStdlib] 21 | git = "https://github.com/initia-labs/move-natives.git" 22 | rev = "77d5f3e140143bdaa41f850115b3035c134193e3" 23 | subdir = "initia_stdlib" 24 | 25 | [dependencies] 26 | endpoint_v2_common = { local = "../../../endpoint_v2_common" } -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/msglib/libs/uln_302/tests/internal/for_each_dvn_tests.move: -------------------------------------------------------------------------------- 1 | #[test_only] 2 | module uln_302::for_each_dvn_tests { 3 | use std::vector; 4 | 5 | use uln_302::for_each_dvn::for_each_dvn; 6 | 7 | #[test] 8 | fun test_for_each_dvn() { 9 | let required_dvns = vector[@1, @2, @3]; 10 | let optional_dvns = vector[@4, @5, @6]; 11 | let expected_dvns = vector[@1, @2, @3, @4, @5, @6]; 12 | 13 | for_each_dvn(&required_dvns, &optional_dvns, |dvn, idx| { 14 | let expected_dvn = *vector::borrow(&expected_dvns, idx); 15 | assert!(dvn == expected_dvn, 1); 16 | }); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/msglib/msglib_types/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "msglib_types" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | msglib_types = "_" 8 | endpoint_v2_common = "_" 9 | endpoint_v2 = "_" 10 | layerzero_admin = "_" 11 | layerzero_treasury_admin = "_" 12 | 13 | [dev-addresses] 14 | msglib_types = "0x97324123" 15 | endpoint_v2_common = "0x9098" 16 | endpoint_v2 = "0x12345678" 17 | layerzero_admin = "0x18943124" 18 | layerzero_treasury_admin = "0x1894312499" 19 | 20 | [dependencies.InitiaStdlib] 21 | git = "https://github.com/initia-labs/move-natives.git" 22 | rev = "77d5f3e140143bdaa41f850115b3035c134193e3" 23 | subdir = "initia_stdlib" 24 | 25 | [dependencies] 26 | endpoint_v2_common = { local = "../../endpoint_v2_common" } 27 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/msglib/routers/router_node_1_placeholder/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "router_node_1" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | router_node_1 = "_" 8 | endpoint_v2_common = "_" 9 | endpoint_v2 = "_" 10 | layerzero_admin = "_" 11 | layerzero_treasury_admin = "_" 12 | msglib_types = "_" 13 | worker_common = "_" 14 | 15 | [dev-addresses] 16 | router_node_1 = "0x9007" 17 | endpoint_v2_common = "0x9098" 18 | endpoint_v2 = "0x12345678" 19 | layerzero_admin = "0x18943124" 20 | layerzero_treasury_admin = "0x1894312499" 21 | msglib_types = "0x521234" 22 | worker_common = "0x3204817234" 23 | 24 | [dependencies] 25 | msglib_types = { local = "../../msglib_types" } 26 | endpoint_v2_common = { local = "../../../endpoint_v2_common" } 27 | worker_common = { local = "../../../worker_peripherals/worker_common" } -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/oapps/oft_common/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "oft_common" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | oft_common = "_" 8 | endpoint_v2_common = "_" 9 | endpoint_v2 = "_" 10 | layerzero_admin = "_" 11 | layerzero_treasury_admin = "_" 12 | 13 | [dev-addresses] 14 | oft_common = "0x302814823" 15 | endpoint_v2_common = "0x9098" 16 | endpoint_v2 = "0x12345678" 17 | layerzero_admin = "0x18943124" 18 | layerzero_treasury_admin = "0x123456231423" 19 | 20 | [dependencies.InitiaStdlib] 21 | git = "https://github.com/initia-labs/move-natives.git" 22 | rev = "77d5f3e140143bdaa41f850115b3035c134193e3" 23 | subdir = "initia_stdlib" 24 | 25 | [dependencies] 26 | endpoint_v2_common = { local = "../../endpoint_v2_common" } 27 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/run_tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Find all directories containing Move.toml and run the command 4 | find . -name 'Move.toml' -execdir sh -c 'echo "Running tests in $(pwd)" && initiad move test --dev' \; 5 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/treasury/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "treasury" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | treasury = "_" 8 | endpoint_v2_common = "_" 9 | endpoint_v2 = "_" 10 | layerzero_admin = "_" 11 | layerzero_treasury_admin = "_" 12 | native_token_metadata_address = "0x8e4733bdabcf7d4afc3d14f0dd46c9bf52fb0fce9e4b996c939e195b8bc891d9" 13 | 14 | [dev-addresses] 15 | treasury = "0x123432432" 16 | endpoint_v2_common = "0x9098" 17 | endpoint_v2 = "0x12345678" 18 | layerzero_admin = "0x18943124" 19 | layerzero_treasury_admin = "0x1894312499" 20 | 21 | [dependencies.InitiaStdlib] 22 | git = "https://github.com/initia-labs/move-natives.git" 23 | rev = "77d5f3e140143bdaa41f850115b3035c134193e3" 24 | subdir = "initia_stdlib" 25 | 26 | [dependencies] 27 | endpoint_v2_common = { local = "../endpoint_v2_common" } 28 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/fee_lib_routers/dvn_fee_lib_router_0/sources/dvn_fee_lib_router.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/fee_lib_routers/dvn_fee_lib_router_0/sources/dvn_fee_lib_router.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/fee_lib_routers/dvn_fee_lib_router_1_placeholder/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "dvn_fee_lib_router_1" 3 | version = "1.0.0" 4 | 5 | [addresses] 6 | dvn_fee_lib_router_1 = "_" 7 | 8 | [dev-addresses] 9 | dvn_fee_lib_router_1 = "0x3294873" 10 | 11 | [dependencies.InitiaStdlib] 12 | git = "https://github.com/initia-labs/move-natives.git" 13 | rev = "77d5f3e140143bdaa41f850115b3035c134193e3" 14 | subdir = "initia_stdlib" 15 | 16 | [dev-dependencies] 17 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/fee_lib_routers/dvn_fee_lib_router_1_placeholder/sources/dvn_fee_lib_router.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/fee_lib_routers/dvn_fee_lib_router_1_placeholder/sources/dvn_fee_lib_router.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/fee_lib_routers/executor_fee_lib_router_0/sources/executor_fee_lib_router.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/fee_lib_routers/executor_fee_lib_router_0/sources/executor_fee_lib_router.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/fee_lib_routers/executor_fee_lib_router_1_placeholder/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "executor_fee_lib_router_1" 3 | version = "1.0.0" 4 | 5 | [addresses] 6 | executor_fee_lib_router_1 = "_" 7 | 8 | [dev-addresses] 9 | executor_fee_lib_router_1 = "0x93270987" 10 | 11 | [dependencies.InitiaStdlib] 12 | git = "https://github.com/initia-labs/move-natives.git" 13 | rev = "77d5f3e140143bdaa41f850115b3035c134193e3" 14 | subdir = "initia_stdlib" 15 | 16 | [dev-dependencies] 17 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/fee_lib_routers/executor_fee_lib_router_1_placeholder/sources/executor_fee_lib_router.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/fee_lib_routers/executor_fee_lib_router_1_placeholder/sources/executor_fee_lib_router.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/fee_libs/dvn_fee_lib_0/sources/dvn_fee_lib.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/fee_libs/dvn_fee_lib_0/sources/dvn_fee_lib.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/fee_libs/dvn_fee_lib_0/tests/dvn_fee_lib_tests.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/fee_libs/dvn_fee_lib_0/tests/dvn_fee_lib_tests.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/fee_libs/executor_fee_lib_0/sources/executor_fee_lib.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/fee_libs/executor_fee_lib_0/sources/executor_fee_lib.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/fee_libs/executor_fee_lib_0/sources/types/executor_option.move: -------------------------------------------------------------------------------- 1 | ../../../../../../../aptos/contracts/worker_peripherals/fee_libs/executor_fee_lib_0/sources/types/executor_option.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/fee_libs/executor_fee_lib_0/tests/executor_fee_lib_tests.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/fee_libs/executor_fee_lib_0/tests/executor_fee_lib_tests.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/fee_libs/executor_fee_lib_0/tests/types/executor_option_tests.move: -------------------------------------------------------------------------------- 1 | ../../../../../../../aptos/contracts/worker_peripherals/fee_libs/executor_fee_lib_0/tests/types/executor_option_tests.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "price_feed_module_0" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | endpoint_v2 = "_" 8 | price_feed_module_0 = "_" 9 | endpoint_v2_common = "_" 10 | layerzero_admin = "_" 11 | layerzero_treasury_admin = "_" 12 | 13 | [dev-addresses] 14 | endpoint_v2 = "0x12345678" 15 | price_feed_module_0 = "0x65DD71" 16 | endpoint_v2_common = "0x9098" 17 | layerzero_admin = "0x18943124" 18 | layerzero_treasury_admin = "0x1894312499" 19 | 20 | [dependencies.InitiaStdlib] 21 | git = "https://github.com/initia-labs/move-natives.git" 22 | rev = "77d5f3e140143bdaa41f850115b3035c134193e3" 23 | subdir = "initia_stdlib" 24 | 25 | [dependencies] 26 | endpoint_v2_common = { local = "../../../endpoint_v2_common" } 27 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/sources/feeds.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/sources/feeds.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/sources/types/eid_model_pair.move: -------------------------------------------------------------------------------- 1 | ../../../../../../../aptos/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/sources/types/eid_model_pair.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/sources/types/price.move: -------------------------------------------------------------------------------- 1 | ../../../../../../../aptos/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/sources/types/price.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/tests/feeds_tests.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/tests/feeds_tests.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/tests/types/eid_model_pair_tests.move: -------------------------------------------------------------------------------- 1 | ../../../../../../../aptos/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/tests/types/eid_model_pair_tests.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/tests/types/price_tests.move: -------------------------------------------------------------------------------- 1 | ../../../../../../../aptos/contracts/worker_peripherals/price_feed_modules/price_feed_module_0/tests/types/price_tests.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/price_feed_routers/price_feed_router_0/sources/router.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/price_feed_routers/price_feed_router_0/sources/router.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/price_feed_routers/price_feed_router_1_placeholder/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "price_feed_router_1" 3 | version = "1.0.0" 4 | 5 | [addresses] 6 | price_feed_router_1 = "_" 7 | 8 | [dev-addresses] 9 | price_feed_router_1 = "0x2142134" 10 | 11 | [dependencies.InitiaStdlib] 12 | git = "https://github.com/initia-labs/move-natives.git" 13 | rev = "77d5f3e140143bdaa41f850115b3035c134193e3" 14 | subdir = "initia_stdlib" 15 | -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/price_feed_routers/price_feed_router_1_placeholder/sources/router.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/price_feed_routers/price_feed_router_1_placeholder/sources/router.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/worker_common/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "worker_common" 3 | version = "1.0.0" 4 | 5 | [addresses] 6 | endpoint_v2 = "_" 7 | endpoint_v2_common = "_" 8 | layerzero_admin = "_" 9 | layerzero_treasury_admin = "_" 10 | worker_common = "_" 11 | native_token_metadata_address = "0x8e4733bdabcf7d4afc3d14f0dd46c9bf52fb0fce9e4b996c939e195b8bc891d9" 12 | # For Initia: "0x8e4733bdabcf7d4afc3d14f0dd46c9bf52fb0fce9e4b996c939e195b8bc891d9" 13 | 14 | [dev-addresses] 15 | endpoint_v2 = "0x13241234" 16 | endpoint_v2_common = "0x9098" 17 | layerzero_admin = "0x18943124" 18 | layerzero_treasury_admin = "0x1894312499" 19 | worker_common = "0x3999" 20 | 21 | [dependencies.InitiaStdlib] 22 | git = "https://github.com/initia-labs/move-natives.git" 23 | rev = "77d5f3e140143bdaa41f850115b3035c134193e3" 24 | subdir = "initia_stdlib" 25 | 26 | [dependencies] 27 | endpoint_v2_common = { local = "../../endpoint_v2_common" } -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/worker_common/sources/internal/multisig_store.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/worker_common/sources/internal/multisig_store.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/worker_common/sources/internal/worker_config_store.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/worker_common/sources/internal/worker_config_store.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/worker_common/sources/multisig.move: -------------------------------------------------------------------------------- 1 | ../../../../../aptos/contracts/worker_peripherals/worker_common/sources/multisig.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/worker_common/sources/worker_config.move: -------------------------------------------------------------------------------- 1 | ../../../../../aptos/contracts/worker_peripherals/worker_common/sources/worker_config.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/worker_common/tests/internal/signing_store_tests.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/worker_common/tests/internal/signing_store_tests.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/worker_common/tests/internal/worker_config_store_tests.move: -------------------------------------------------------------------------------- 1 | ../../../../../../aptos/contracts/worker_peripherals/worker_common/tests/internal/worker_config_store_tests.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/worker_common/tests/multisig_tests.move: -------------------------------------------------------------------------------- 1 | ../../../../../aptos/contracts/worker_peripherals/worker_common/tests/multisig_tests.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/worker_peripherals/worker_common/tests/worker_config_tests.move: -------------------------------------------------------------------------------- 1 | ../../../../../aptos/contracts/worker_peripherals/worker_common/tests/worker_config_tests.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/workers/dvn/sources/dvn.move: -------------------------------------------------------------------------------- 1 | ../../../../../aptos/contracts/workers/dvn/sources/dvn.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/workers/dvn/sources/hashes.move: -------------------------------------------------------------------------------- 1 | ../../../../../aptos/contracts/workers/dvn/sources/hashes.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/workers/dvn/tests/dvn_tests.move: -------------------------------------------------------------------------------- 1 | ../../../../../aptos/contracts/workers/dvn/tests/dvn_tests.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/workers/dvn/tests/hashes_test.move: -------------------------------------------------------------------------------- 1 | ../../../../../aptos/contracts/workers/dvn/tests/hashes_test.move -------------------------------------------------------------------------------- /packages/layerzero-v2/initia/contracts/workers/executor/Move.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "executor" 3 | version = "1.0.0" 4 | authors = [] 5 | 6 | [addresses] 7 | executor = "_" 8 | endpoint_v2 = "_" 9 | endpoint_v2_common = "_" 10 | layerzero_admin = "_" 11 | layerzero_treasury_admin = "_" 12 | worker_common = "_" 13 | native_token_metadata_address = "0x8e4733bdabcf7d4afc3d14f0dd46c9bf52fb0fce9e4b996c939e195b8bc891d9" 14 | 15 | [dev-addresses] 16 | executor = "0x6001" 17 | endpoint_v2 = "0x13241234" 18 | endpoint_v2_common = "0x9098" 19 | layerzero_admin = "0x18943124" 20 | layerzero_treasury_admin = "0x1894312499" 21 | worker_common = "0x3999" 22 | 23 | [dependencies] 24 | endpoint_v2_common = { local = "../../endpoint_v2_common" } 25 | worker_common = { local = "../../worker_peripherals/worker_common" } 26 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | !target/deploy/ 3 | !target/idl/ 4 | .anchor 5 | test-ledger -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | members = [ 3 | "programs/*", 4 | "libs/*", 5 | ] 6 | resolver = "2" 7 | 8 | [profile.release] 9 | overflow-checks = true 10 | lto = "fat" 11 | codegen-units = 20 12 | [profile.release.build-override] 13 | opt-level = 0 14 | incremental = false 15 | codegen-units = 20 16 | 17 | 18 | [profile.fast] 19 | codegen-units = 20 20 | inherits = "release" 21 | [profile.fast.build-override] 22 | opt-level = 0 23 | codegen-units = 20 24 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/libs/cpi-helper/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "cpi-helper" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [lib] 9 | proc_macro = true 10 | 11 | [dependencies] 12 | syn = "1.0.77" 13 | quote = "1.0.26" 14 | bs58 = "0.5.1" 15 | proc-macro2 = "1.0.54" 16 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/libs/messagelib-helper/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "messagelib-helper" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | [features] 8 | default = [] 9 | idl-build = ["messagelib-interface/idl-build"] 10 | 11 | [dependencies] 12 | anchor-lang = "0.29.0" 13 | endpoint = { path = "../../programs/endpoint", features = ["cpi"] } 14 | messagelib-interface = { path = "../../programs/messagelib-interface" } 15 | utils = { path = "../utils" } -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/libs/messagelib-helper/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod endpoint_verify; 2 | pub mod packet_v1_codec; 3 | 4 | pub use endpoint; 5 | pub use messagelib_interface; 6 | pub use utils; 7 | 8 | pub const MESSAGE_LIB_SEED: &[u8] = endpoint::MESSAGE_LIB_SEED; 9 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/libs/oapp/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "oapp" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [features] 7 | idl-build = ["anchor-lang/idl-build", 'endpoint/idl-build'] 8 | 9 | [dependencies] 10 | anchor-lang = "0.29.0" 11 | endpoint = { path = "../../programs/endpoint", features = ["cpi"]} -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/libs/oapp/src/lib.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | 3 | pub mod endpoint_cpi; 4 | pub mod options; 5 | 6 | pub use endpoint; 7 | 8 | pub const LZ_RECEIVE_TYPES_SEED: &[u8] = b"LzReceiveTypes"; 9 | 10 | #[derive(Clone, AnchorSerialize, AnchorDeserialize)] 11 | pub struct LzReceiveParams { 12 | pub src_eid: u32, 13 | pub sender: [u8; 32], 14 | pub nonce: u64, 15 | pub guid: [u8; 32], 16 | pub message: Vec, 17 | pub extra_data: Vec, 18 | } 19 | 20 | #[derive(Clone, AnchorSerialize, AnchorDeserialize)] 21 | pub struct LzComposeParams { 22 | pub from: Pubkey, 23 | pub to: Pubkey, 24 | pub guid: [u8; 32], 25 | pub index: u16, 26 | pub message: Vec, 27 | pub extra_data: Vec, 28 | } 29 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/libs/utils/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "utils" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | anchor-lang = "0.29.0" 10 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/libs/utils/src/lib.rs: -------------------------------------------------------------------------------- 1 | pub mod bytes_lib; 2 | pub mod macros; 3 | pub mod sorted_list_helper; 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/libs/utils/src/macros.rs: -------------------------------------------------------------------------------- 1 | #[macro_export] 2 | macro_rules! generate_account_size_test { 3 | ($name:ident, $test_case:ident) => { 4 | #[cfg(test)] 5 | mod $test_case { 6 | use super::*; 7 | #[test] 8 | fn $test_case() { 9 | const MAX_INNER_INSTRUCTION_REALLOCATION_SIZE: usize = 1024 * 10; // 10 KB 10 | assert!( 11 | 8 + super::$name::INIT_SPACE <= MAX_INNER_INSTRUCTION_REALLOCATION_SIZE, 12 | "Size too large: {}", 13 | 8 + super::$name::INIT_SPACE 14 | ); 15 | } 16 | } 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@layerzerolabs/layerzero-v2-solana", 3 | "private": true, 4 | "license": "BUSL-1.1", 5 | "files": [ 6 | "target/deploy", 7 | "target/idl" 8 | ], 9 | "scripts": { 10 | "build": "$npm_execpath clean-prebuild && anchor build", 11 | "clean-prebuild": "rimraf target", 12 | "test": "cargo-test-sbf" 13 | }, 14 | "devDependencies": { 15 | "rimraf": "^5.0.5" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/blocked-messagelib/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "blocked-messagelib" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "blocked_messagelib" 10 | 11 | [features] 12 | no-entrypoint = [] 13 | no-idl = [] 14 | no-log-ix-name = [] 15 | cpi = ["no-entrypoint"] 16 | default = [] 17 | 18 | [dependencies] 19 | anchor-lang = "0.29.0" 20 | solana-helper = "0.1.0" 21 | messagelib-helper = { path = "../../libs/messagelib-helper" } 22 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/blocked-messagelib/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/blocked-messagelib/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("cargo:rerun-if-env-changed=BLOCKED_MESSAGELIB_ID"); 3 | } 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/blocked-messagelib/src/lib.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::*; 2 | use messagelib_helper::messagelib_interface::Version; 3 | use solana_helper::program_id_from_env; 4 | 5 | declare_id!(Pubkey::new_from_array(program_id_from_env!( 6 | "BLOCKED_MESSAGELIB_ID", 7 | "2XrYqmhBMPJgDsb4SVbjV1PnJBprurd5bzRCkHwiFCJB" 8 | ))); 9 | 10 | #[program] 11 | pub mod blocked_messagelib { 12 | use super::*; 13 | 14 | pub fn version(_ctx: Context) -> Result { 15 | Ok(Version { major: u64::MAX, minor: u8::MAX, endpoint_version: 2 }) 16 | } 17 | } 18 | 19 | #[derive(Accounts)] 20 | pub struct GetVersion {} 21 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/dvn/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "dvn" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "dvn" 10 | 11 | [features] 12 | no-entrypoint = [] 13 | no-idl = [] 14 | no-log-ix-name = [] 15 | cpi = ["no-entrypoint"] 16 | default = [] 17 | idl-build = ["anchor-lang/idl-build", "uln/idl-build"] 18 | 19 | [dependencies] 20 | anchor-lang = { version = "0.29.0", features = ["event-cpi"] } 21 | worker-interface = { path = "../worker-interface", features = ["no-entrypoint"] } 22 | pricefeed = { path = "../pricefeed", features = ["cpi"] } 23 | utils = { path = "../../libs/utils" } 24 | messagelib-helper = { path = "../../libs/messagelib-helper" } 25 | uln = { path = "../uln", features = ["no-entrypoint"] } 26 | solana-helper = "0.1.0" 27 | 28 | [dev-dependencies] 29 | secp256k1 = { version = "0.29.0", features = ["rand", "recovery"] } -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/dvn/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/dvn/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("cargo:rerun-if-env-changed=DVN_ID"); 3 | } 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/dvn/src/errors.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::error_code; 2 | 3 | #[error_code] 4 | pub enum DvnError { 5 | InvalidSignatureLen, 6 | NotAdmin, 7 | MsgLibNotAllowed, 8 | InvalidQuorum, 9 | InvalidSignersLen, 10 | UniqueOwners, 11 | SignatureError, 12 | SignerNotInCommittee, 13 | TooManyAdmins, 14 | TooManyOptionTypes, 15 | DuplicateSignature, 16 | Expired, 17 | InvalidVid, 18 | Paused, 19 | UnexpiredExecuteHash, 20 | InvalidAmount, 21 | EidNotSupported, 22 | } 23 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/dvn/src/events.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[event] 4 | pub struct AdminConfigSetEvent { 5 | pub config: AdminConfig, 6 | } 7 | 8 | #[event] 9 | pub struct MultisigConfigSetEvent { 10 | pub config: MultisigConfig, 11 | } 12 | 13 | #[event] 14 | pub struct FeeWithdrawnEvent { 15 | pub receiver: Pubkey, 16 | pub amount: u64, 17 | } 18 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/dvn/src/instructions/admin/extend_dvn_config.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[derive(Accounts)] 4 | pub struct ExtendDVNConfig<'info> { 5 | #[account(mut)] 6 | pub admin: Signer<'info>, 7 | #[account( 8 | mut, 9 | seeds = [DVN_CONFIG_SEED], 10 | bump = config.bump, 11 | realloc = 8 + DvnConfig::INIT_SPACE + DstConfig::INIT_SPACE * (DST_CONFIG_MAX_LEN - DST_CONFIG_DEFAULT_LEN), 12 | realloc::payer = admin, 13 | realloc::zero = false, 14 | constraint = config.admins.contains(admin.key) @DvnError::NotAdmin 15 | )] 16 | pub config: Account<'info, DvnConfig>, 17 | pub system_program: Program<'info, System>, 18 | } 19 | 20 | impl ExtendDVNConfig<'_> { 21 | pub fn apply(_ctx: &mut Context) -> Result<()> { 22 | Ok(()) 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/dvn/src/instructions/admin/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod close_execute; 2 | pub mod extend_dvn_config; 3 | pub mod invoke; 4 | pub mod set_config; 5 | pub mod withdraw_fee; 6 | 7 | pub use close_execute::*; 8 | pub use extend_dvn_config::*; 9 | pub use invoke::*; 10 | pub use set_config::*; 11 | pub use withdraw_fee::*; 12 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/dvn/src/instructions/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod admin; 2 | pub mod init_dvn; 3 | pub mod quote; 4 | pub mod verifiable; 5 | 6 | pub use admin::*; 7 | pub use init_dvn::*; 8 | pub use quote::*; 9 | pub use verifiable::*; 10 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/dvn/src/state/execute_hash.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[account] 4 | #[derive(InitSpace)] 5 | pub struct ExecuteHash { 6 | pub expiration: i64, 7 | pub bump: u8, 8 | } 9 | 10 | utils::generate_account_size_test!(ExecuteHash, execute_hash_test); 11 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/dvn/src/state/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod dvn_config; 2 | pub mod execute_hash; 3 | 4 | pub use dvn_config::*; 5 | pub use execute_hash::*; 6 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/endpoint/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "endpoint" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "endpoint" 10 | 11 | [features] 12 | no-entrypoint = [] 13 | no-idl = [] 14 | no-log-ix-name = [] 15 | cpi = ["no-entrypoint"] 16 | default = [] 17 | idl-build = ["anchor-lang/idl-build", "messagelib-interface/idl-build"] 18 | 19 | [dependencies] 20 | anchor-lang = { version = "0.29.0", features = ["event-cpi"] } 21 | solana-program = "=1.17.31" 22 | solana-helper = "0.1.0" 23 | cpi-helper = { path = "../../libs/cpi-helper" } 24 | messagelib-interface = { path = "../messagelib-interface", features = ["cpi"] } 25 | utils = { path = "../../libs/utils" } -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/endpoint/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/endpoint/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("cargo:rerun-if-env-changed=ENDPOINT_ID"); 3 | } 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/endpoint/src/errors.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::error_code; 2 | 3 | #[error_code] 4 | pub enum LayerZeroError { 5 | InvalidSendLibrary, 6 | InvalidReceiveLibrary, 7 | SameValue, 8 | AccountNotFound, 9 | OnlySendLib, 10 | OnlyReceiveLib, 11 | InvalidExpiry, 12 | OnlyNonDefaultLib, 13 | InvalidAmount, 14 | InvalidNonce, 15 | Unauthorized, 16 | PayloadHashNotFound, 17 | ComposeNotFound, 18 | InvalidPayloadHash, 19 | LzTokenUnavailable, 20 | ReadOnlyAccount, 21 | InvalidMessageLib, 22 | WritableAccountNotAllowed, 23 | } 24 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/endpoint/src/instructions/admin/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod init_default_receive_library; 2 | pub mod init_default_send_library; 3 | pub mod init_endpoint; 4 | pub mod register_library; 5 | pub mod set_default_receive_library; 6 | pub mod set_default_receive_library_timeout; 7 | pub mod set_default_send_library; 8 | pub mod set_lz_token; 9 | pub mod transfer_admin; 10 | pub mod withdraw_rent; 11 | 12 | pub use init_default_receive_library::*; 13 | pub use init_default_send_library::*; 14 | pub use init_endpoint::*; 15 | pub use register_library::*; 16 | pub use set_default_receive_library::*; 17 | pub use set_default_receive_library_timeout::*; 18 | pub use set_default_send_library::*; 19 | pub use set_lz_token::*; 20 | pub use transfer_admin::*; 21 | pub use withdraw_rent::*; 22 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/endpoint/src/instructions/admin/set_lz_token.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[event_cpi] 4 | #[derive(Accounts)] 5 | pub struct SetLzToken<'info> { 6 | pub admin: Signer<'info>, 7 | #[account(mut, has_one = admin, seeds = [ENDPOINT_SEED], bump = endpoint.bump)] 8 | pub endpoint: Account<'info, EndpointSettings>, 9 | } 10 | 11 | impl SetLzToken<'_> { 12 | pub fn apply(ctx: &mut Context, params: &SetLzTokenParams) -> Result<()> { 13 | ctx.accounts.endpoint.lz_token_mint = params.lz_token; 14 | emit_cpi!(LzTokenSetEvent { token: params.lz_token }); 15 | Ok(()) 16 | } 17 | } 18 | 19 | #[derive(Clone, AnchorSerialize, AnchorDeserialize)] 20 | pub struct SetLzTokenParams { 21 | pub lz_token: Option, 22 | } 23 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/endpoint/src/instructions/admin/transfer_admin.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[event_cpi] 4 | #[derive(Accounts)] 5 | pub struct TransferAdmin<'info> { 6 | pub admin: Signer<'info>, 7 | #[account(mut, has_one = admin, seeds = [ENDPOINT_SEED], bump = endpoint.bump)] 8 | pub endpoint: Account<'info, EndpointSettings>, 9 | } 10 | 11 | impl TransferAdmin<'_> { 12 | pub fn apply(ctx: &mut Context, params: &TransferAdminParams) -> Result<()> { 13 | ctx.accounts.endpoint.admin = params.admin; 14 | emit_cpi!(AdminTransferredEvent { new_admin: params.admin }); 15 | Ok(()) 16 | } 17 | } 18 | 19 | #[derive(Clone, AnchorSerialize, AnchorDeserialize)] 20 | pub struct TransferAdminParams { 21 | pub admin: Pubkey, 22 | } 23 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/endpoint/src/instructions/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod admin; 2 | pub mod init_verify; 3 | pub mod lz_compose_alert; 4 | pub mod lz_receive_alert; 5 | pub mod oapp; 6 | pub mod verify; 7 | 8 | pub use admin::*; 9 | pub use init_verify::*; 10 | pub use lz_compose_alert::*; 11 | pub use lz_receive_alert::*; 12 | pub use oapp::*; 13 | pub use verify::*; 14 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/endpoint/src/state/compose_message.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[account] 4 | #[derive(InitSpace)] 5 | pub struct ComposeMessageState { 6 | pub received: bool, 7 | pub bump: u8, 8 | } 9 | 10 | utils::generate_account_size_test!(ComposeMessageState, compose_message_state_test); 11 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/endpoint/src/state/endpoint.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[account] 4 | #[derive(InitSpace)] 5 | pub struct EndpointSettings { 6 | // immutable 7 | pub eid: u32, 8 | pub bump: u8, 9 | // configurable 10 | pub admin: Pubkey, 11 | pub lz_token_mint: Option, 12 | } 13 | 14 | #[account] 15 | #[derive(InitSpace)] 16 | pub struct OAppRegistry { 17 | pub delegate: Pubkey, 18 | pub bump: u8, 19 | } 20 | 21 | #[derive(Clone, AnchorSerialize, AnchorDeserialize, InitSpace)] 22 | pub struct SendContext { 23 | pub dst_eid: u32, 24 | pub sender: Pubkey, 25 | } 26 | 27 | utils::generate_account_size_test!(EndpointSettings, endpoint_settings_test); 28 | utils::generate_account_size_test!(OAppRegistry, oapp_registry_test); 29 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/endpoint/src/state/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod compose_message; 2 | pub mod endpoint; 3 | pub mod message_lib; 4 | pub mod messaging_channel; 5 | 6 | pub use compose_message::*; 7 | pub use endpoint::*; 8 | pub use message_lib::*; 9 | pub use messaging_channel::*; 10 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/executor/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "executor" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "executor" 10 | 11 | [features] 12 | no-entrypoint = [] 13 | no-idl = [] 14 | no-log-ix-name = [] 15 | cpi = ["no-entrypoint"] 16 | default = [] 17 | idl-build = ["anchor-lang/idl-build", "worker-interface/idl-build", "pricefeed/idl-build"] 18 | 19 | [dependencies] 20 | anchor-lang = { version = "0.29.0", features = ["event-cpi"] } 21 | solana-helper = "0.1.0" 22 | worker-interface = { path = "../worker-interface", features = ["no-entrypoint"] } 23 | pricefeed = { path = "../pricefeed", features = ["cpi"] } 24 | utils = { path = "../../libs/utils" } 25 | oapp = { path = "../../libs/oapp" } -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/executor/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/executor/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("cargo:rerun-if-env-changed=EXECUTOR_ID"); 3 | } 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/executor/src/errors.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::error_code; 2 | 3 | #[error_code] 4 | pub enum ExecutorError { 5 | InvalidSize, 6 | Paused, 7 | UnsupportedOptionType, 8 | ZeroLzComposeGasProvided, 9 | ZeroLzReceiveGasProvided, 10 | NativeAmountExceedsCap, 11 | NotAdmin, 12 | NotExecutor, 13 | MsgLibNotAllowed, 14 | TooManyAdmins, 15 | TooManyExecutors, 16 | TooManyOptionTypes, 17 | InvalidNativeDropRequestsLength, 18 | InvalidNativeDropReceiver, 19 | InsufficientBalance, 20 | EidNotSupported, 21 | ExecutorIsAdmin, 22 | InvalidOwner, 23 | } 24 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/executor/src/events.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[event] 4 | pub struct NativeDropAppliedEvent { 5 | pub src_eid: u32, 6 | pub sender: [u8; 32], 7 | pub nonce: u64, 8 | pub dst_eid: u32, 9 | pub oapp: Pubkey, 10 | pub native_drop_requests: Vec, 11 | pub successes: Vec, 12 | } 13 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/executor/src/instructions/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod admin_set_config; 2 | pub mod compose; 3 | pub mod executable; 4 | pub mod execute; 5 | pub mod init_executor; 6 | pub mod native_drop; 7 | pub mod owner_set_config; 8 | pub mod quote; 9 | 10 | pub use admin_set_config::*; 11 | pub use compose::*; 12 | pub use executable::*; 13 | pub use execute::*; 14 | pub use init_executor::*; 15 | pub use native_drop::*; 16 | pub use owner_set_config::*; 17 | pub use quote::*; 18 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/executor/src/state/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod executor_config; 2 | 3 | pub use executor_config::*; 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/messagelib-interface/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "messagelib-interface" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "messagelib_interface" 10 | 11 | [features] 12 | no-entrypoint = [] 13 | no-idl = [] 14 | no-log-ix-name = [] 15 | cpi = ["no-entrypoint"] 16 | default = [] 17 | idl-build = ["anchor-lang/idl-build"] 18 | 19 | [dependencies] 20 | anchor-lang = "0.29.0" 21 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/messagelib-interface/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/oft/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "oft" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "oft" 10 | 11 | [features] 12 | no-entrypoint = [] 13 | no-idl = [] 14 | no-log-ix-name = [] 15 | cpi = ["no-entrypoint"] 16 | default = [] 17 | idl-build = ["anchor-lang/idl-build", "anchor-spl/idl-build", "oapp/idl-build"] 18 | 19 | [dependencies] 20 | anchor-lang = { version = "0.29.0", features = ["init-if-needed"] } 21 | anchor-spl = "0.29.0" 22 | oapp = { path = "../../libs/oapp" } 23 | utils = { path = "../../libs/utils" } 24 | solana-helper = "0.1.0" -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/oft/README.md: -------------------------------------------------------------------------------- 1 | # OFT v1 2 | 3 | This version of the OFT is no longer actively maintained. Instead, use the new 4 | [oft-solana example](https://github.com/LayerZero-Labs/devtools/tree/main/examples/oft-solana). 5 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/oft/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/oft/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("cargo:rerun-if-env-changed=OFT_ID"); 3 | } 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/oft/src/errors.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::error_code; 2 | 3 | #[error_code] 4 | pub enum OftError { 5 | Unauthorized, 6 | InvalidSender, 7 | InvalidDecimals, 8 | SlippageExceeded, 9 | InvalidTokenMint, 10 | InvalidTokenEscrow, 11 | InvalidTokenDest, 12 | InvalidOptions, 13 | InvalidEndpointProgram, 14 | RateLimitExceeded, 15 | } 16 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/oft/src/events.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[event] 4 | pub struct OFTSent { 5 | pub guid: [u8; 32], 6 | pub dst_eid: u32, 7 | pub from: Pubkey, 8 | pub amount_sent_ld: u64, 9 | pub amount_received_ld: u64, 10 | } 11 | 12 | #[event] 13 | pub struct OFTReceived { 14 | pub guid: [u8; 32], 15 | pub src_eid: u32, 16 | pub to: Pubkey, 17 | pub amount_received_ld: u64, 18 | } 19 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/oft/src/instructions/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod init_adapter_oft; 2 | pub mod init_oft; 3 | pub mod lz_receive; 4 | pub mod lz_receive_types; 5 | pub mod mint_to; 6 | pub mod quote; 7 | pub mod quote_oft; 8 | pub mod send; 9 | pub mod set_delegate; 10 | pub mod set_enforced_options; 11 | pub mod set_mint_authority; 12 | pub mod set_peer; 13 | pub mod set_rate_limit; 14 | pub mod transfer_admin; 15 | 16 | pub use init_adapter_oft::*; 17 | pub use init_oft::*; 18 | pub use lz_receive::*; 19 | pub use lz_receive_types::*; 20 | pub use mint_to::*; 21 | pub use quote::*; 22 | pub use quote_oft::*; 23 | pub use send::*; 24 | pub use set_delegate::*; 25 | pub use set_enforced_options::*; 26 | pub use set_mint_authority::*; 27 | pub use set_peer::*; 28 | pub use set_rate_limit::*; 29 | pub use transfer_admin::*; 30 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/oft/src/instructions/transfer_admin.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[derive(Accounts)] 4 | pub struct TransferAdmin<'info> { 5 | pub admin: Signer<'info>, 6 | #[account( 7 | mut, 8 | seeds = [OFT_SEED, &get_oft_config_seed(&oft_config).to_bytes()], 9 | bump = oft_config.bump, 10 | has_one = admin @OftError::Unauthorized 11 | )] 12 | pub oft_config: Account<'info, OftConfig>, 13 | } 14 | 15 | impl TransferAdmin<'_> { 16 | pub fn apply(ctx: &mut Context, params: &TransferAdminParams) -> Result<()> { 17 | ctx.accounts.oft_config.admin = params.admin; 18 | Ok(()) 19 | } 20 | } 21 | 22 | #[derive(Clone, AnchorSerialize, AnchorDeserialize)] 23 | pub struct TransferAdminParams { 24 | pub admin: Pubkey, 25 | } 26 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/oft/src/state/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod enforced_options; 2 | pub mod oft; 3 | pub mod peer; 4 | 5 | pub use enforced_options::*; 6 | pub use oft::*; 7 | pub use peer::*; 8 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/pricefeed/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "pricefeed" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "pricefeed" 10 | 11 | [features] 12 | no-entrypoint = [] 13 | no-idl = [] 14 | no-log-ix-name = [] 15 | cpi = ["no-entrypoint"] 16 | default = [] 17 | idl-build = ["anchor-lang/idl-build"] 18 | 19 | [dependencies] 20 | anchor-lang = "0.29.0" 21 | solana-helper = "0.1.0" 22 | utils = { path = "../../libs/utils" } -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/pricefeed/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/pricefeed/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("cargo:rerun-if-env-changed=PRICEFEED_ID"); 3 | } 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/pricefeed/src/errors.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::error_code; 2 | 3 | #[error_code] 4 | pub enum PriceFeedError { 5 | TooManyUpdaters, 6 | InvalidUpdater, 7 | NotFound, 8 | InvalidSize, 9 | } 10 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/pricefeed/src/instructions/admin/extend_price_feed.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[derive(Accounts)] 4 | pub struct ExtendPriceFeed<'info> { 5 | #[account(mut)] 6 | pub admin: Signer<'info>, 7 | #[account( 8 | mut, 9 | realloc = 8 + PriceFeed::INIT_SPACE + Price::INIT_SPACE * (PRICES_MAX_LEN - PRICES_DEFAULT_LEN), 10 | realloc::payer = admin, 11 | realloc::zero = false, 12 | has_one = admin, 13 | )] 14 | pub price_feed: Account<'info, PriceFeed>, 15 | pub system_program: Program<'info, System>, 16 | } 17 | 18 | impl ExtendPriceFeed<'_> { 19 | pub fn apply(_ctx: &mut Context) -> Result<()> { 20 | Ok(()) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/pricefeed/src/instructions/admin/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod extend_price_feed; 2 | pub mod init_price_feed; 3 | pub mod set_price_feed; 4 | pub mod transfer_admin; 5 | 6 | pub use extend_price_feed::*; 7 | pub use init_price_feed::*; 8 | pub use set_price_feed::*; 9 | pub use transfer_admin::*; 10 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/pricefeed/src/instructions/admin/transfer_admin.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[derive(Accounts)] 4 | #[instruction(params: TransferAdminParams)] 5 | pub struct TransferAdmin<'info> { 6 | pub admin: Signer<'info>, 7 | #[account( 8 | mut, 9 | seeds = [PRICE_FEED_SEED], 10 | bump = price_feed.bump, 11 | has_one = admin, 12 | )] 13 | pub price_feed: Account<'info, PriceFeed>, 14 | } 15 | 16 | impl TransferAdmin<'_> { 17 | pub fn apply(ctx: &mut Context, params: &TransferAdminParams) -> Result<()> { 18 | let price_feed = &mut ctx.accounts.price_feed; 19 | price_feed.admin = params.admin; 20 | Ok(()) 21 | } 22 | } 23 | 24 | #[derive(Clone, AnchorSerialize, AnchorDeserialize)] 25 | pub struct TransferAdminParams { 26 | pub admin: Pubkey, 27 | } 28 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/pricefeed/src/instructions/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod admin; 2 | pub mod get_fee; 3 | pub mod updater; 4 | 5 | pub use admin::*; 6 | pub use get_fee::*; 7 | pub use updater::*; 8 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/pricefeed/src/instructions/updater/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod set_price; 2 | pub mod set_sol_price; 3 | 4 | pub use set_price::*; 5 | pub use set_sol_price::*; 6 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/pricefeed/src/instructions/updater/set_sol_price.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[derive(Accounts)] 4 | pub struct SetSolPrice<'info> { 5 | pub updater: Signer<'info>, 6 | #[account( 7 | mut, 8 | seeds = [PRICE_FEED_SEED], 9 | bump = price_feed.bump, 10 | constraint = price_feed.updaters.contains(&updater.key()) @PriceFeedError::InvalidUpdater 11 | )] 12 | pub price_feed: Account<'info, PriceFeed>, 13 | } 14 | 15 | impl SetSolPrice<'_> { 16 | pub fn apply(ctx: &mut Context, params: SetSolPriceParams) -> Result<()> { 17 | let price = &mut ctx.accounts.price_feed; 18 | price.native_token_price_usd = params.native_token_price_usd; 19 | Ok(()) 20 | } 21 | } 22 | 23 | #[derive(Clone, AnchorSerialize, AnchorDeserialize)] 24 | pub struct SetSolPriceParams { 25 | pub native_token_price_usd: Option, 26 | } 27 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/pricefeed/src/state/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod price; 2 | 3 | pub use price::*; 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "simple-messagelib" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "simple_messagelib" 10 | 11 | [features] 12 | no-entrypoint = [] 13 | no-idl = [] 14 | no-log-ix-name = [] 15 | cpi = ["no-entrypoint"] 16 | default = [] 17 | idl-build = ["anchor-lang/idl-build", "anchor-spl/idl-build", "messagelib-helper/idl-build"] 18 | 19 | [dependencies] 20 | anchor-lang = "0.29.0" 21 | anchor-spl = "0.29.0" 22 | solana-helper = "0.1.0" 23 | messagelib-helper = { path = "../../libs/messagelib-helper" } 24 | utils = { path = "../../libs/utils" } -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("cargo:rerun-if-env-changed=SIMPLE_MESSAGELIB_ID"); 3 | } 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/src/errors.rs: -------------------------------------------------------------------------------- 1 | use anchor_lang::prelude::error_code; 2 | 3 | #[error_code] 4 | pub enum SimpleMessageLibError { 5 | OnlyWhitelistedCaller, 6 | InsufficientFee, 7 | InvalidAmount, 8 | InvalidConfigType, 9 | InvalidLzTokenMint, 10 | LzTokenUnavailable, 11 | SendReentrancy, 12 | OnlyRevert, 13 | } 14 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/src/instructions/admin/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod init_default_config; 2 | pub mod init_message_lib; 3 | pub mod set_default_config; 4 | pub mod set_fee; 5 | pub mod set_wl_caller; 6 | pub mod transfer_admin; 7 | pub mod withdraw_fees; 8 | 9 | pub use init_default_config::*; 10 | pub use init_message_lib::*; 11 | pub use set_default_config::*; 12 | pub use set_fee::*; 13 | pub use set_wl_caller::*; 14 | pub use transfer_admin::*; 15 | pub use withdraw_fees::*; 16 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/src/instructions/admin/set_fee.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[derive(Accounts)] 4 | pub struct SetFee<'info> { 5 | pub admin: Signer<'info>, 6 | #[account( 7 | mut, 8 | has_one = admin, 9 | seeds = [MESSAGE_LIB_SEED], 10 | bump = message_lib.bump 11 | )] 12 | pub message_lib: Account<'info, MessageLib>, 13 | } 14 | 15 | impl SetFee<'_> { 16 | pub fn apply(ctx: &mut Context, params: &SetFeeParams) -> Result<()> { 17 | ctx.accounts.message_lib.fee = params.fee; 18 | ctx.accounts.message_lib.lz_token_fee = params.lz_token_fee; 19 | Ok(()) 20 | } 21 | } 22 | 23 | #[derive(Clone, AnchorSerialize, AnchorDeserialize)] 24 | pub struct SetFeeParams { 25 | pub fee: u64, 26 | pub lz_token_fee: u64, 27 | } 28 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/src/instructions/admin/set_wl_caller.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[derive(Accounts)] 4 | pub struct SetWlCaller<'info> { 5 | pub admin: Signer<'info>, 6 | #[account( 7 | mut, 8 | has_one = admin, 9 | seeds = [MESSAGE_LIB_SEED], 10 | bump = message_lib.bump 11 | )] 12 | pub message_lib: Account<'info, MessageLib>, 13 | } 14 | 15 | impl SetWlCaller<'_> { 16 | pub fn apply(ctx: &mut Context, params: &SetWlCallerParams) -> Result<()> { 17 | ctx.accounts.message_lib.wl_caller = params.new_caller; 18 | Ok(()) 19 | } 20 | } 21 | 22 | #[derive(Clone, AnchorSerialize, AnchorDeserialize)] 23 | pub struct SetWlCallerParams { 24 | pub new_caller: Pubkey, 25 | } 26 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/src/instructions/admin/transfer_admin.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[derive(Accounts)] 4 | pub struct TransferAdmin<'info> { 5 | pub admin: Signer<'info>, 6 | #[account( 7 | mut, 8 | has_one = admin, 9 | seeds = [MESSAGE_LIB_SEED], 10 | bump = message_lib.bump 11 | )] 12 | pub message_lib: Account<'info, MessageLib>, 13 | } 14 | 15 | impl TransferAdmin<'_> { 16 | pub fn apply(ctx: &mut Context, params: &TransferAdminParams) -> Result<()> { 17 | ctx.accounts.message_lib.admin = params.admin; 18 | Ok(()) 19 | } 20 | } 21 | 22 | #[derive(Clone, AnchorSerialize, AnchorDeserialize)] 23 | pub struct TransferAdminParams { 24 | pub admin: Pubkey, 25 | } 26 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/src/instructions/endpoint/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod init_config; 2 | pub mod quote; 3 | pub mod send; 4 | pub mod send_with_lz_token; 5 | pub mod set_config; 6 | 7 | pub use init_config::*; 8 | pub use quote::*; 9 | pub use send::*; 10 | pub use send_with_lz_token::*; 11 | pub use set_config::*; 12 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/src/instructions/endpoint/quote.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[derive(Accounts)] 4 | pub struct Quote<'info> { 5 | /// The message lib authority of the endpoint 6 | pub endpoint: Signer<'info>, 7 | #[account( 8 | seeds = [MESSAGE_LIB_SEED], 9 | has_one = endpoint, 10 | bump = message_lib.bump, 11 | )] 12 | pub message_lib: Account<'info, MessageLib>, 13 | } 14 | 15 | impl Quote<'_> { 16 | pub fn apply(ctx: &Context, params: &QuoteParams) -> Result { 17 | let lz_token_fee = 18 | if params.pay_in_lz_token { ctx.accounts.message_lib.lz_token_fee } else { 0 }; 19 | Ok(MessagingFee { native_fee: ctx.accounts.message_lib.fee, lz_token_fee }) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/src/instructions/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod admin; 2 | pub mod endpoint; 3 | 4 | pub mod validate_packet; 5 | 6 | pub use admin::*; 7 | pub use endpoint::*; 8 | pub use validate_packet::*; 9 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/src/revert_call_test.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | /// RevertCall is a test endpoint that always reverts. only used for testing. 4 | #[derive(Accounts)] 5 | pub struct RevertCall {} 6 | 7 | impl RevertCall { 8 | pub fn apply(_ctx: &mut Context) -> Result<()> { 9 | Err(SimpleMessageLibError::OnlyRevert.into()) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/simple-messagelib/src/state/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod message_lib; 2 | pub use message_lib::*; 3 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/uln/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "uln" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "uln" 10 | 11 | [features] 12 | no-entrypoint = [] 13 | no-idl = [] 14 | no-log-ix-name = [] 15 | cpi = ["no-entrypoint"] 16 | default = [] 17 | idl-build = ["anchor-spl/idl-build", "messagelib-helper/idl-build", "worker-interface/idl-build"] 18 | 19 | [dependencies] 20 | anchor-lang = "0.29.0" 21 | anchor-spl = "0.29.0" 22 | primitive-types = { version = "0.12.1", default-features = false } 23 | solana-helper = "0.1.0" 24 | messagelib-helper = { path = "../../libs/messagelib-helper" } 25 | worker-interface = { path = "../worker-interface", features = ["cpi"] } 26 | utils = { path = "../../libs/utils" } 27 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/uln/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/uln/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("cargo:rerun-if-env-changed=MESSAGELIB_ID"); 3 | } 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/uln/src/instructions/admin/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod init_default_config; 2 | pub mod init_uln; 3 | pub mod set_default_config; 4 | pub mod set_treasury; 5 | pub mod transfer_admin; 6 | pub mod withdraw_rent; 7 | 8 | pub use init_default_config::*; 9 | pub use init_uln::*; 10 | pub use set_default_config::*; 11 | pub use set_treasury::*; 12 | pub use transfer_admin::*; 13 | pub use withdraw_rent::*; 14 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/uln/src/instructions/admin/transfer_admin.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[event_cpi] 4 | #[derive(Accounts)] 5 | pub struct TransferAdmin<'info> { 6 | pub admin: Signer<'info>, 7 | #[account(mut, has_one = admin, seeds = [ULN_SEED], bump = uln.bump)] 8 | pub uln: Account<'info, UlnSettings>, 9 | } 10 | 11 | impl TransferAdmin<'_> { 12 | pub fn apply(ctx: &mut Context, params: &TransferAdminParams) -> Result<()> { 13 | ctx.accounts.uln.admin = params.admin; 14 | emit_cpi!(AdminTransferredEvent { new_admin: params.admin }); 15 | Ok(()) 16 | } 17 | } 18 | 19 | #[derive(Clone, AnchorSerialize, AnchorDeserialize)] 20 | pub struct TransferAdminParams { 21 | pub admin: Pubkey, 22 | } 23 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/uln/src/instructions/dvn/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod close_verify; 2 | pub mod commit_verification; 3 | pub mod init_verify; 4 | pub mod verify; 5 | 6 | pub use close_verify::*; 7 | pub use commit_verification::*; 8 | pub use init_verify::*; 9 | pub use verify::*; 10 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/uln/src/instructions/endpoint/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod init_config; 2 | pub mod quote; 3 | pub mod send; 4 | pub mod send_with_lz_token; 5 | pub mod set_config; 6 | 7 | pub use init_config::*; 8 | pub use quote::*; 9 | pub use send::*; 10 | pub use send_with_lz_token::*; 11 | pub use set_config::*; 12 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/uln/src/instructions/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod admin; 2 | pub mod dvn; 3 | pub mod endpoint; 4 | 5 | pub use admin::*; 6 | pub use dvn::*; 7 | pub use endpoint::*; 8 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/uln/src/state/confirmations.rs: -------------------------------------------------------------------------------- 1 | use crate::*; 2 | 3 | #[account] 4 | #[derive(InitSpace)] 5 | pub struct Confirmations { 6 | pub value: Option, 7 | pub bump: u8, 8 | } 9 | 10 | utils::generate_account_size_test!(Confirmations, confirmations_test); 11 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/uln/src/state/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod confirmations; 2 | pub mod uln; 3 | 4 | pub use confirmations::*; 5 | pub use uln::*; 6 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/uln/tests/utils/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod options_util; 2 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/worker-interface/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "worker-interface" 3 | version = "0.1.0" 4 | description = "Created with Anchor" 5 | edition = "2021" 6 | 7 | [lib] 8 | crate-type = ["cdylib", "lib"] 9 | name = "worker_interface" 10 | 11 | [features] 12 | no-entrypoint = [] 13 | no-idl = [] 14 | no-log-ix-name = [] 15 | cpi = ["no-entrypoint"] 16 | default = [] 17 | idl-build = ["anchor-lang/idl-build"] 18 | 19 | [dependencies] 20 | anchor-lang = "0.29.0" 21 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/programs/worker-interface/Xargo.toml: -------------------------------------------------------------------------------- 1 | [target.bpfel-unknown-unknown.dependencies.std] 2 | features = [] 3 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/rust-toolchain.toml: -------------------------------------------------------------------------------- 1 | [toolchain] 2 | channel = "1.75.0" 3 | # rustup install nightly 4 | # channel = "nightly-2024-02-04" # if you want to expand the macro, you need to use nightly version 5 | components = ["rustfmt", "clippy"] 6 | -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/rustfmt.toml: -------------------------------------------------------------------------------- 1 | # Basic 2 | hard_tabs = false 3 | max_width = 100 4 | use_small_heuristics = "Max" 5 | # Imports 6 | imports_granularity = "Preserve" 7 | reorder_imports = true 8 | # Consistency 9 | newline_style = "Unix" 10 | # Format comments 11 | comment_width = 100 12 | wrap_comments = true 13 | # Misc 14 | chain_width = 80 15 | spaces_around_ranges = false 16 | binop_separator = "Front" 17 | reorder_impl_items = false 18 | match_arm_leading_pipes = "Preserve" 19 | match_arm_blocks = true 20 | match_block_trailing_comma = true 21 | trailing_comma = "Vertical" 22 | trailing_semicolon = true 23 | use_field_init_shorthand = true -------------------------------------------------------------------------------- /packages/layerzero-v2/solana/programs/turbo.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["//"], 3 | "pipeline": { 4 | "build": { 5 | "inputs": ["libs/**/*", "programs/**/*"], 6 | "outputs": ["target/deploy/**", "target/idl/**"] 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/.gitignore: -------------------------------------------------------------------------------- 1 | *.fif 2 | *.boc 3 | build/ -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/jest.config.js: -------------------------------------------------------------------------------- 1 | // jest.config.js (after) 2 | /** @type {import('jest').Config} */ 3 | module.exports = { 4 | preset: 'ts-jest', 5 | testEnvironment: 'node', 6 | testPathIgnorePatterns: ['/node_modules/', '/dist/'], 7 | testTimeout: 600 * 1000, 8 | }; 9 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@layerzerolabs/layerzero-v2-ton", 3 | "private": true, 4 | "license": "LZBL-1.2", 5 | "scripts": { 6 | "build": "$npm_execpath clean-prebuild && $npm_execpath blueprint build --all", 7 | "clean-prebuild": "rimraf target", 8 | "test": "$npm_execpath jest --verbose" 9 | }, 10 | "devDependencies": { 11 | "@jest/globals": "^29.7.0", 12 | "@ston-fi/funcbox": "^0.1.1", 13 | "@ton/blueprint": "0.25.0-beta.1", 14 | "@ton/core": "^0.59.0", 15 | "@ton/crypto": "^3.3.0", 16 | "@ton/sandbox": "^0.22.0", 17 | "@ton/test-utils": "^0.4.2", 18 | "@ton/ton": "15.1.0", 19 | "@types/jest": "^29.5.10", 20 | "@types/node": "^20.10.5", 21 | "jest": "^29.7.0", 22 | "rimraf": "^5.0.5", 23 | "ts-jest": "^29.1.1", 24 | "ts-node": "^10.9.1", 25 | "typescript": "~5.2.2" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/apps/allStorages/tests/main.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../tests/testMain.fc"; 2 | 3 | slice _testName() { return "allStorages"; } 4 | 5 | const int max_lz_message_cells = 100; 6 | 7 | cell baseTest::prepare(tuple args) impure { 8 | return cl::nullObject(); 9 | } 10 | 11 | tuple baseTest::getTests() impure { 12 | return empty_tuple(); 13 | } 14 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/apps/counter/autoload.fc: -------------------------------------------------------------------------------- 1 | #include "handler.fc"; 2 | #include "interface.fc"; 3 | #include "storage.fc"; 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/apps/counter/interface.fc: -------------------------------------------------------------------------------- 1 | #include "../baseOApp/interface.fc"; 2 | #include "storage.fc"; 3 | 4 | ;; Operation codes 5 | const int Counter::OP::INCREMENT = "Counter::OP::INCREMENT"c; 6 | const int Counter::OP::FAIL_NEXT_LZ_RECEIVE = "Counter::OP::FAIL_NEXT_LZ_RECEIVE"c; 7 | 8 | ;; Increment modes 9 | const int Counter::increment::ab = 1; 10 | const int Counter::increment::aba = 2; 11 | 12 | const int Counter::ERROR::invalidIncrementType = "invalidIncrementType"c & ERRORCODE_MASK; 13 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/classes/lz/SmlJobAssigned.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int lz::SmlJobAssigned::NAME = "SmlJobAssg"u; 5 | 6 | ;; field names 7 | const int lz::SmlJobAssigned::executorAddress = 0; 8 | const int lz::SmlJobAssigned::fee = 1; 9 | 10 | const int lz::SmlJobAssigned::SmlExecutorAddress = 0xdeadbeef; 11 | 12 | cell lz::SmlJobAssigned::New(int fee) inline method_id { 13 | return cl::declare( 14 | lz::SmlJobAssigned::NAME, 15 | unsafeTuple([ 16 | [cl::t::address, lz::SmlJobAssigned::SmlExecutorAddress], ;; lz::SmlJobAssigned::executorAddress 17 | [cl::t::coins, fee] ;; lz::SmlJobAssigned::fee 18 | ]) 19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/classes/msgdata/Bool.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::Bool::NAME = "Bool"u; 5 | 6 | ;; field names 7 | const int md::Bool::bool = 0; 8 | 9 | cell md::Bool::New(int boolean) impure inline method_id { 10 | return cl::declare( 11 | md::Bool::NAME, 12 | unsafeTuple([ 13 | [cl::t::bool, boolean] ;; md::Bool::success 14 | ]) 15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/classes/msgdata/CoinsAmount.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::CoinsAmount::NAME = "coinsAmt"u; 5 | 6 | ;; field names 7 | const int md::CoinsAmount::amount = 0; 8 | 9 | cell md::CoinsAmount::New(int amount) impure inline method_id { 10 | return cl::declare( 11 | md::CoinsAmount::NAME, 12 | unsafeTuple([ 13 | [cl::t::coins, amount] ;; md::CoinsAmount::amount 14 | ]) 15 | ); 16 | } 17 | 18 | ;; ========================== Sanitize ========================== 19 | 20 | cell md::CoinsAmount::sanitize(cell $self) impure { 21 | int amount = $self.cl::get(md::CoinsAmount::amount); 22 | 23 | return md::CoinsAmount::New(amount); 24 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/classes/msgdata/GetMsglibCallback.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::getMsglibInfoCallback::NAME = "getMsgLbCb"u; 5 | 6 | ;; field names 7 | const int md::getMsglibInfoCallback::msglibAddress = 0; 8 | const int md::getMsglibInfoCallback::connectionCode = 1; 9 | 10 | cell md::getMsglibInfoCallback::New(int msglibAddress, cell connectionCode) impure inline method_id { 11 | return cl::declare( 12 | md::getMsglibInfoCallback::NAME, 13 | unsafeTuple([ 14 | [cl::t::address, msglibAddress], ;; md::getMsglibInfoCallback::msglibAddress 15 | [cl::t::cellRef, connectionCode] ;; md::getMsglibInfoCallback::connectionCode 16 | ]) 17 | ); 18 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/classes/msgdata/InitEndpoint.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required md name 4 | const int md::InitEndpoint::NAME = "initEp"u; 5 | 6 | ;; field names 7 | const int md::InitEndpoint::channelCode = 0; 8 | 9 | cell md::InitEndpoint::New(cell channelCode) impure inline method_id { 10 | return cl::declare( 11 | md::InitEndpoint::NAME, 12 | unsafeTuple([ 13 | [cl::t::cellRef, channelCode] ;; md::InitEndpoint::channelCode 14 | ]) 15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/classes/msgdata/InitSmlConnection.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::InitSmlConnection::NAME = "initSmlCon"u; 5 | 6 | ;; field names 7 | const int md::InitSmlConnection::channelAddress = 0; 8 | 9 | cell md::InitSmlConnection::New(int channelAddress) inline method_id { 10 | return cl::declare( 11 | md::InitSmlConnection::NAME, 12 | unsafeTuple([ 13 | [cl::t::address, channelAddress] ;; md::InitSmlConnection::channelAddress 14 | ]) 15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/classes/msgdata/MdEid.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::MdEid::NAME = "MdEid"u; 5 | 6 | ;; field names 7 | const int md::MdEid::md = 0; 8 | const int md::MdEid::eid = 1; 9 | 10 | cell md::MdEid::New(cell $md, int eid) impure inline method_id { 11 | return cl::declare( 12 | md::MdEid::NAME, 13 | unsafeTuple([ 14 | [cl::t::objRef, $md], ;; md::MdEid::md 15 | [cl::t::uint32, eid] ;; md::MdEid::eid 16 | ]) 17 | ); 18 | } 19 | 20 | 21 | cell md::MdEid::sanitize(cell $mdEid) impure inline_ref { 22 | cell $md = $mdEid.cl::get(md::MdEid::md); 23 | int eid = $mdEid.cl::get(md::MdEid::eid); 24 | 25 | return md::MdEid::New($md, eid); 26 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/classes/msgdata/SetAddress.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::SetAddress::NAME = "setAddress"u; 5 | 6 | ;; field names 7 | const int md::SetAddress::address = 0; 8 | 9 | cell md::SetAddress::New(int address) impure inline method_id { 10 | return cl::declare( 11 | md::SetAddress::NAME, 12 | unsafeTuple([ 13 | [cl::t::address, address] ;; md::SetAddress::owner 14 | ]) 15 | ); 16 | } 17 | 18 | ;; Ensure SetAddress doesn't have garbage bits that would cause undefined behaviors in the protocol 19 | cell md::SetAddress::sanitize(cell $setAddress) impure { 20 | return md::SetAddress::New( 21 | $setAddress.cl::get
(md::SetAddress::address) 22 | ); 23 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/classes/msgdata/SetPeer.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::SetPeer::NAME = "setPeer"u; 5 | 6 | ;; field names 7 | const int md::SetPeer::eid = 0; 8 | const int md::SetPeer::peer = 1; 9 | 10 | cell md::SetPeer::New(int eid, int peer) impure inline method_id { 11 | return cl::declare( 12 | md::SetPeer::NAME, 13 | unsafeTuple([ 14 | [cl::t::uint32, eid], ;; md::SetPeer::eid 15 | [cl::t::uint256, peer] ;; md::SetPeer::peer 16 | ]) 17 | ); 18 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/classes/msgdata/SetSmlManagerConfig.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::SetSmlManagerConfig::NAME = "setSmlCfg"u; 5 | 6 | ;; field names 7 | const int md::SetSmlManagerConfig::nativeFee = 0; 8 | const int md::SetSmlManagerConfig::zroFee = 1; 9 | 10 | cell md::SetSmlManagerConfig::New(int nativeFee, int zroFee) inline method_id { 11 | return cl::declare( 12 | md::SetSmlManagerConfig::NAME, 13 | unsafeTuple([ 14 | [cl::t::coins, nativeFee], ;; md::SetSmlManagerConfig::nativeFee 15 | [cl::t::coins, zroFee] ;; md::SetSmlManagerConfig::zroFee 16 | ]) 17 | ); 18 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/funC++/abstract/contractMainAbstract.fc: -------------------------------------------------------------------------------- 1 | ;; _executeOpcode is executed at the start of contractMain, after checking permissions. 2 | ;; Each contract implements a list of opcodes, which calls a handler as the entry point 3 | ;; of that opcode. The contract must be initialized in order to start executing opcodes. 4 | ;; @in the opcode to execute 5 | ;; @in the message data extracted from txnContext 6 | ;; @out tuple of resultant actions 7 | tuple _executeOpcode(int op, cell $md) impure inline; 8 | 9 | ;; Actions are executed after the opcode is executed. Each opcode must emit a tuple 10 | ;; of actions, where each action is executed after the opcode is executed in order. 11 | ;; @in the action to execute 12 | ;; @in the value of the action 13 | ;; @out a bool that determines if excess balance is to be sent back to the origin. 14 | int _executeAction(int actionType, tuple action) impure inline; 15 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/funC++/abstract/handlerAbstract.fc: -------------------------------------------------------------------------------- 1 | ;; Assert that the owner has sent an INITIALIZE opcode to this contract 2 | () assertInitialized() impure inline; 3 | 4 | ;; Assert the identity of the caller for a given opcode 5 | () checkPermissions(int op, cell $md) impure inline; 6 | 7 | ;; Initialize this contract 8 | tuple initialize(cell $md) impure inline; 9 | 10 | ;; Authentication = the owner has deployed and sent at least one transaction to this contract 11 | ;; unauthenticated contracts cannot perform any actions. 12 | ;; Authentication enables sharded contracts to trust the identity and intention of other shards 13 | () authenticateIfNecessary() impure inline; 14 | 15 | ;; Assert the caller is the owner of this contract 16 | () assertOwner() impure inline; 17 | 18 | ;; Asserts permissions of caller for permissioned opcodes before executing opcode 19 | ;; @see contractMainAbstract.fc 20 | () _checkPermissions(int op, cell $md) impure inline; -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/funC++/baseInterface.fc: -------------------------------------------------------------------------------- 1 | const int BaseInterface::event::AUTHENTICATED = "AUTHENTICATED"u; 2 | const int BaseInterface::event::INITIALIZED = "INITIALIZED"u; 3 | 4 | const int BaseInterface::ERROR::notAuthenticated = 257; 5 | const int BaseInterface::ERROR::onlyOwner = 258; 6 | const int BaseInterface::ERROR::notInitialized = 259; 7 | const int BaseInterface::ERROR::alreadyInitialized = 260; 8 | const int BaseInterface::ERROR::invalidOpcode = 261; 9 | const int BaseInterface::ERROR::eventEmitted = 262; 10 | const int BaseInterface::ERROR::invalidActionType = 263; 11 | const int BaseInterface::ERROR::invalidEventSource = 264; 12 | 13 | const int BaseInterface::OP::INITIALIZE = "BaseInterface::OP::INITIALIZE"c; 14 | const int BaseInterface::OP::EMPTY = 0; 15 | const int BaseInterface::OP::EVENT = "BaseInterface::OP::EVENT"c; -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/funC++/handlerCore.fc: -------------------------------------------------------------------------------- 1 | ;;; ========================================== 2 | ;; This file contains the utility functions for all handler functions that follow 3 | ;; LayerZero Labs handler convention. 4 | ;;; ========================================== 5 | #include "abstract/handlerAbstract.fc"; 6 | 7 | #include "actions/utils.fc"; 8 | 9 | #include "baseInterface.fc"; 10 | 11 | ;;; ===================REQUIRED VIRTUAL FUNCTIONS======================= 12 | 13 | (cell, tuple) preamble() impure inline { 14 | return (getContractStorage(), emptyActions()); 15 | } 16 | 17 | () checkPermissions(int op, cell $md) impure inline { 18 | if (op == BaseInterface::OP::EVENT) { 19 | return (); 20 | } elseif (op == BaseInterface::OP::INITIALIZE) { 21 | assertOwner(); 22 | } elseif (op == BaseInterface::OP::EMPTY) { 23 | return (); 24 | } else { 25 | _checkPermissions(op, $md); 26 | } 27 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/funC++/tests/actions/serde.fc: -------------------------------------------------------------------------------- 1 | #include "../../actions/event.fc"; 2 | #include "../../../../tests/baseSerdeTest.fc"; 3 | 4 | int _getEventSink() impure inline { 5 | return 0; 6 | } 7 | 8 | tuple _newAction(int topic, cell $body) impure inline { 9 | return action::event::create(topic, $body, empty_cell()); 10 | } 11 | 12 | ;;; ===============================INTERFACE FUNCTIONS=========================== 13 | 14 | slice _testName() { return "Actions serde"; } 15 | 16 | ;; Event 17 | (int, slice) Serde::action::event::build(cell $unused) impure inline { 18 | return test::build::equal( 19 | action::event::New(456, getContractStorage(), empty_cell()), 20 | action::event::build(456, getContractStorage(), empty_cell()) 21 | ); 22 | } 23 | 24 | tuple baseTest::getTests() impure { 25 | return empty_tuple() 26 | .tpush([Serde::action::event::build, "Serde::action::event::build"]) 27 | ; 28 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/funC++/tests/baseContract/autoload.fc: -------------------------------------------------------------------------------- 1 | #include "handler.fc"; 2 | #include "storage.fc"; 3 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/funC++/tests/baseContract/handler.fc: -------------------------------------------------------------------------------- 1 | #include "../../../protocol/core/abstract/protocolHandler.fc"; 2 | 3 | #include "storage.fc"; 4 | 5 | (cell, tuple) _initialize(cell $md) impure inline { 6 | return preamble(); 7 | } 8 | 9 | () _checkPermissions(int op, cell $md) impure inline { 10 | return (); 11 | } 12 | 13 | int _getEventSink() impure inline { 14 | return getContractAddress(); 15 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/funC++/tests/baseContract/storage.fc: -------------------------------------------------------------------------------- 1 | #include "../../../funC++/classlib.fc"; 2 | #include "../../../protocol/core/baseStorage.fc"; 3 | 4 | const int baseContract::NAME = "baseCntrct"u; 5 | 6 | const int baseContract::baseStorage = 0; 7 | 8 | cell baseContract::New(int owner) impure inline { 9 | return cl::declare( 10 | baseContract::NAME, 11 | unsafeTuple([ 12 | [cl::t::objRef, BaseStorage::New(owner)] 13 | ]) 14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/jettons/zro/meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Token", 3 | "description": "token", 4 | "symbol": "TOKEN", 5 | "decimals": 6, 6 | "image": "" 7 | } 8 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/jettons/zro/op-codes.fc: -------------------------------------------------------------------------------- 1 | int op::transfer() asm "0xf8a7ea5 PUSHINT"; 2 | int op::transfer_notification() asm "0x7362d09c PUSHINT"; 3 | int op::internal_transfer() asm "0x178d4519 PUSHINT"; 4 | ;; this is "copied" because it's already imported in funcbox 5 | int op::excesses_copy() asm "0xd53276db PUSHINT"; 6 | int op::burn() asm "0x595f07bc PUSHINT"; 7 | int op::burn_notification() asm "0x7bdd97de PUSHINT"; 8 | 9 | ;; Minter 10 | int op::mint() asm "0x642b7d07 PUSHINT"; 11 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/jettons/zro/params.fc: -------------------------------------------------------------------------------- 1 | #include "../../../node_modules/@ston-fi/funcbox/autoload.fc"; 2 | 3 | int workchain() asm "0 PUSHINT"; 4 | 5 | ;; () force_chain(slice addr) impure { 6 | ;; (int wc, _) = parse_std_addr(addr); 7 | ;; throw_unless(333, wc == workchain()); 8 | ;; } 9 | 10 | (int) get_workchain(slice address) inline { 11 | (int wc, _) = parse_std_addr(address); 12 | return wc; 13 | } 14 | 15 | () force_chain(int workchain, slice address, int error_code) impure inline { 16 | (int wc) = get_workchain(address); 17 | throw_unless(error_code, wc == workchain); 18 | } 19 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/multisig/auto/order_code.func: -------------------------------------------------------------------------------- 1 | 2 | ;; https://docs.ton.org/tvm.pdf, page 30 3 | ;; Library reference cell — Always has level 0, and contains 8+256 data bits, including its 8-bit type integer 2 4 | ;; and the representation hash Hash(c) of the library cell being referred to. When loaded, a library 5 | ;; reference cell may be transparently replaced by the cell it refers to, if found in the current library context. 6 | 7 | cell order_code() asm "spec PUSHREF"; -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/multisig/errors.func: -------------------------------------------------------------------------------- 1 | const int error::unauthorized_new_order = 1007; 2 | const int error::invalid_new_order = 1008; 3 | const int error::not_enough_ton = 100; 4 | const int error::unauthorized_execute = 101; 5 | const int error::singers_outdated = 102; 6 | const int error::invalid_dictionary_sequence = 103; 7 | const int error::unauthorized_init = 104; 8 | const int error::already_inited = 105; 9 | const int error::unauthorized_sign = 106; 10 | const int error::already_approved = 107; 11 | const int error::inconsistent_data = 108; 12 | const int error::invalid_threshold = 109; 13 | const int error::invalid_signers = 110; 14 | const int error::expired = 111; 15 | const int error::already_executed = 112; 16 | 17 | const int error::unknown_op = 0xffff; 18 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/multisig/op-codes.func: -------------------------------------------------------------------------------- 1 | const int op::new_order = 0xf718510f; 2 | const int op::execute = 0x75097f5d; 3 | const int op::execute_internal = 0xa32c59bf; 4 | 5 | const int op::init = 0x9c73fba2; 6 | const int op::approve = 0xa762230f; 7 | const int op::approve_accepted = 0x82609bf6; 8 | const int op::approve_rejected = 0xafaf283e; 9 | 10 | const int actions::send_message = 0xf1381e5b; 11 | const int actions::update_multisig_params = 0x1d0cfbd3; 12 | 13 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/channel/callbackOpcodes.fc: -------------------------------------------------------------------------------- 1 | ;; Send flow 2 | const int Layerzero::OP::CHANNEL_SEND_CALLBACK = "Layerzero::OP::CHANNEL_SEND_CALLBACK"c; 3 | 4 | ;; Receive flow 5 | const int Layerzero::OP::LZ_RECEIVE_PREPARE = "Layerzero::OP::LZ_RECEIVE_PREPARE"c; 6 | const int Layerzero::OP::LZ_RECEIVE_EXECUTE = "Layerzero::OP::LZ_RECEIVE_EXECUTE"c; 7 | 8 | ;; Receive flow management 9 | const int Layerzero::OP::BURN_CALLBACK = "Layerzero::OP::BURN_CALLBACK"c; 10 | const int Layerzero::OP::NILIFY_CALLBACK = "Layerzero::OP::NILIFY_CALLBACK"c; -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/endpoint/main.fc: -------------------------------------------------------------------------------- 1 | #include "../core/abstract/protocolMain.fc"; 2 | 3 | #include "handler.fc"; 4 | #include "interface.fc"; 5 | 6 | tuple _executeOpcode(int op, cell $md) impure inline { 7 | if (op == Endpoint::OP::ENDPOINT_SEND) { 8 | return endpointSend($md); 9 | } elseif (op == Endpoint::OP::ENDPOINT_COMMIT_PACKET) { 10 | return endpointCommitPacket($md); 11 | } elseif (op == Endpoint::OP::SET_EP_CONFIG_DEFAULTS) { 12 | return setEpConfigDefaults($md); 13 | } elseif (op == Endpoint::OP::SET_EP_CONFIG_OAPP) { 14 | return setEpConfigOApp($md); 15 | } elseif (op == Endpoint::OP::ADD_MSGLIB) { 16 | return addMsglib($md); 17 | } elseif (op == Endpoint::OP::GET_MSGLIB_INFO_CALLBACK) { 18 | return getMsglibInfoCallback($md); 19 | } 20 | throw(BaseInterface::ERROR::invalidOpcode); 21 | return empty_tuple(); 22 | } 23 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/interfaces.fc: -------------------------------------------------------------------------------- 1 | #include "channel/interface.fc"; 2 | #include "controller/interface.fc"; 3 | #include "endpoint/interface.fc"; 4 | #include "msglibs/interface.fc"; -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/simpleMsglib/smlConnection/interface.fc: -------------------------------------------------------------------------------- 1 | #include "storage.fc"; 2 | 3 | const int SmlConnection::OP::SML_CONNECTION_COMMIT_PACKET = "SmlConnection::OP::SML_CONNECTION_COMMIT_PACKET"c; 4 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/simpleMsglib/smlConnection/main.fc: -------------------------------------------------------------------------------- 1 | #include "../../../core/abstract/protocolMain.fc"; 2 | #include "../../interface.fc"; 3 | 4 | #include "handler.fc"; 5 | #include "interface.fc"; 6 | 7 | tuple _executeOpcode(int op, cell $md) impure inline { 8 | if (op == MsglibConnection::OP::MSGLIB_CONNECTION_SEND) { 9 | return msglibConnectionSend($md); 10 | } elseif (op == SmlConnection::OP::SML_CONNECTION_COMMIT_PACKET) { 11 | return smlConnectionCommitPacket($md); 12 | } elseif (op == MsglibConnection::OP::MSGLIB_CONNECTION_COMMIT_PACKET_CALLBACK) { 13 | return msglibConnectionCommitPacketCallback($md); 14 | } elseif (op == MsglibConnection::OP::MSGLIB_CONNECTION_SYNC_CHANNEL_STATE) { 15 | return syncChannelState($md); 16 | } 17 | throw(BaseInterface::ERROR::invalidOpcode); 18 | return empty_tuple(); 19 | } 20 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/simpleMsglib/smlConnection/storage.fc: -------------------------------------------------------------------------------- 1 | #include "../../../core/baseStorage.fc"; 2 | #include "../../../../funC++/classlib.fc"; 3 | 4 | const int SmlConnection::NAME = "smlConn"u; 5 | 6 | const int SmlConnection::baseStorage = 0; 7 | const int SmlConnection::path = 1; 8 | const int SmlConnection::channelAddress = 2; 9 | 10 | ;; @owner LayerZero admin EOA 11 | cell SmlConnection::New(int owner, cell $path) method_id { 12 | return cl::declare( 13 | SmlConnection::NAME, 14 | unsafeTuple([ 15 | [cl::t::objRef, BaseStorage::New(owner)], ;; SmlConnection::baseStorage 16 | [cl::t::objRef, $path], ;; SmlConnection::path 17 | [cl::t::address, NULLADDRESS] ;; SmlConnection::channelAddress 18 | ]) 19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/simpleMsglib/smlManager/interface.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../funC++/constants.fc"; 2 | 3 | const int SmlManager::OP::SET_MSGLIB_CONFIG = "SmlManager::OP::SET_MSGLIB_CONFIG"c; 4 | const int SmlManager::OP::SML_MANAGER_COMMIT_PACKET_CALLBACK = "SmlManager::OP::SML_MANAGER_COMMIT_PACKET_CALLBACK"c; 5 | const int SmlManager::OP::SML_MANAGER_COMMIT_PACKET = "SmlManager::OP::SML_MANAGER_COMMIT_PACKET"c; 6 | 7 | const int SmlManager::OP::SML_MANAGER_SEND = "SmlManager::OP::SML_MANAGER_SEND"c; 8 | 9 | ;; EVENTS 10 | const int SmlManager::event::SET_MSGLIB_CONFIG = "SET_MSGLIB_CONFIG"u; 11 | 12 | const int SmlManager::ERROR::packetHeaderNotFound = "packetHeaderNotFound"c & ERRORCODE_MASK; 13 | const int SmlManager::ERROR::optionsNotEmpty = "optionsNotEmpty"c & ERRORCODE_MASK; 14 | const int SmlManager::ERROR::onlyConnection = "onlyConnection"c & ERRORCODE_MASK; 15 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/callbackOpcodes.fc: -------------------------------------------------------------------------------- 1 | const int UltraLightNode::OP::ULN_CONNECTION_VERIFY_CALLBACK = "UltraLightNode::OP::ULN_CONNECTION_VERIFY_CALLBACK"c; 2 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/feeLibInterface.fc: -------------------------------------------------------------------------------- 1 | ;; these numbers *MUST* be updated every time the interface function names change 2 | ;; nativeFee, event 3 | ;; (int, tuple) ulnWorker::quote(cell $storage, cell $borrowedStorage, cell $lzSend) method_id; 4 | const int UlnWorkerInterface::quote = 107686; ;; ulnWorker::quote 5 | 6 | ;; tuple ulnWorker::setConfig(cell $storage, cell $md) method_id; 7 | const int UlnWorkerInterface::setConfig = 95983; ;; ulnWorker::setConfig 8 | 9 | const int UlnWorkerInterface::ERROR::UNKNOWN_OPTIONS = 2100; 10 | const int UlnWorkerInterface::ERROR::ZERO_LZ_COMPOSE_GAS_PROVIDED = 2101; 11 | const int UlnWorkerInterface::ERROR::INVALID_OPTIONS = 2102; 12 | const int UlnWorkerInterface::ERROR::NATIVE_CAP_EXCEEDED = 2103; 13 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/msgdata/InitUlnManager.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../funC++/classlib.fc"; 2 | 3 | ;; required md name 4 | const int md::InitUlnManager::NAME = "InitUlnMgr"u; 5 | 6 | ;; field names 7 | const int md::InitUlnManager::endpointCode = 0; 8 | const int md::InitUlnManager::channelCode = 1; 9 | 10 | cell md::InitUlnManager::New(cell endpointCode, cell channelCode) impure inline method_id { 11 | return cl::declare( 12 | md::InitUlnManager::NAME, 13 | unsafeTuple([ 14 | [cl::t::cellRef, endpointCode], ;; md::InitUlnManager::endpointCode 15 | [cl::t::cellRef, channelCode] ;; md::InitUlnManager::channelCode 16 | ]) 17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/msgdata/RentRefill.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../funC++/classlib.fc"; 2 | 3 | ;; required md name 4 | const int md::RentRefill::NAME = "RentRefill"u; 5 | 6 | ;; field names 7 | const int md::RentRefill::address = 0; 8 | const int md::RentRefill::amount = 1; 9 | 10 | cell md::RentRefill::New(int address, int amount) impure inline method_id { 11 | return cl::declare( 12 | md::RentRefill::NAME, 13 | unsafeTuple([ 14 | [cl::t::address, address], ;; md::RentRefill::address 15 | [cl::t::coins, amount] ;; md::RentRefill::amount 16 | ]) 17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/msgdata/SetAdminWorkerAddresses.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../funC++/classlib.fc"; 2 | 3 | ;; required md name 4 | const int md::SetAdminWorkerAddresses::NAME = "adminwork"u; 5 | 6 | ;; field names 7 | 8 | ;; AddressList 9 | const int md::SetAdminWorkerAddresses::adminWorkers = 0; 10 | 11 | cell md::SetAdminWorkerAddresses::New(cell adminWorkers) impure inline method_id { 12 | return cl::declare( 13 | md::SetAdminWorkerAddresses::NAME, 14 | unsafeTuple([ 15 | [cl::t::addressList, adminWorkers] ;; md::SetAdminWorkerAddresses::adminWorkers 16 | ]) 17 | ); 18 | } 19 | 20 | cell md::SetAdminWorkerAddresses::sanitize(cell $setAdminWorkerAddresses) impure inline_ref { 21 | cell adminWorkers = $setAdminWorkerAddresses.cl::get(md::SetAdminWorkerAddresses::adminWorkers); 22 | 23 | return md::SetAdminWorkerAddresses::New(adminWorkers); 24 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/msgdata/TreasuryFeeBps.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../funC++/classlib.fc"; 2 | 3 | ;; required md name 4 | const int md::TreasuryFeeBps::NAME = "tfeebps"u; 5 | 6 | ;; field names 7 | const int md::TreasuryFeeBps::treasuryFeeBps = 0; 8 | 9 | cell md::TreasuryFeeBps::New(int treasuryFeeBps) impure inline method_id { 10 | return cl::declare( 11 | md::TreasuryFeeBps::NAME, 12 | unsafeTuple([ 13 | [cl::t::uint16, treasuryFeeBps] ;; md::TreasuryFeeBps::treasuryFeeBps 14 | ]) 15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/msgdata/UlnWorkerFeelibBytecode.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::UlnWorkerFeelibBytecode::NAME = "Ulnbytecod"u; 5 | 6 | ;; field names 7 | const int md::UlnWorkerFeelibBytecode::bytecode = 0; ;; cellRef 8 | 9 | cell md::UlnWorkerFeelibBytecode::New(cell bytecode) impure inline method_id { 10 | return cl::declare( 11 | md::UlnWorkerFeelibBytecode::NAME, 12 | unsafeTuple([ 13 | [cl::t::cellRef, bytecode] ;; md::UlnWorkerFeelibBytecode::nonce 14 | ]) 15 | ); 16 | } 17 | 18 | cell md::UlnWorkerFeelibBytecode::sanitize(cell $ulnWorkerFeelibBytecode) impure inline_ref { 19 | cell bytecode = $ulnWorkerFeelibBytecode.cl::get(md::UlnWorkerFeelibBytecode::bytecode); 20 | 21 | return md::UlnWorkerFeelibBytecode::New(bytecode); 22 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/uln/tests/computeSizeGasTest/storage.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../../core/baseStorage.fc"; 2 | 3 | ;; required object name 4 | const int ComputeSizeGasTest::NAME = "cmptGas"u; 5 | 6 | ;; field names 7 | const int ComputeSizeGasTest::baseStorage = 0; 8 | const int ComputeSizeGasTest::mockDict = 1; 9 | 10 | ;; @owner manager 11 | cell ComputeSizeGasTest::New(int owner) method_id { 12 | return cl::declare( 13 | ComputeSizeGasTest::NAME, 14 | unsafeTuple([ 15 | [cl::t::objRef, BaseStorage::New(owner)], ;; ComputeSizeGasTest::baseStorage 16 | [cl::t::dict256, cl::dict256::New()] ;; ComputeSizeGasTest::mockDict 17 | ]) 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/uln/tests/mockWorker.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../../funC++/classlib.fc"; 2 | #include "../../../../../funC++/stdlib.fc"; 3 | #include "../../../../../funC++/utils.fc"; 4 | #include "../../../../../../tests/consts.fc"; 5 | #include "../../../../../../tests/mocks.fc"; 6 | #include "../../../../../classes/msgdata/LzSend.fc"; 7 | 8 | tuple ulnWorker::quote(tuple inputs) impure method_id(107686) { 9 | return unsafeTuple( 10 | [NATIVE_FEE, MOCK_ULN_WORKER_EVENT()] 11 | ); 12 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/workerFeeLibs/dvnFeeLib/main.fc: -------------------------------------------------------------------------------- 1 | #include "storage.fc"; 2 | #include "handler.fc"; 3 | 4 | () main() { } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/workerFeeLibs/executorFeeLib/main.fc: -------------------------------------------------------------------------------- 1 | #include "storage.fc"; 2 | #include "handler.fc"; 3 | 4 | () main() { } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/workerFeeLibs/main.fc: -------------------------------------------------------------------------------- 1 | #include "ulnSendWorkerV1.fc"; 2 | 3 | () main() { } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/workerFeeLibs/maliciousFeeLib/handler.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../../funC++/utils.fc"; 2 | 3 | tuple ulnWorker::quote(tuple inputs) impure method_id { 4 | int x = 0; 5 | while (true) { 6 | x += 1; 7 | } 8 | return unsafeTuple([x]); 9 | } 10 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/workerFeeLibs/maliciousFeeLib/main.fc: -------------------------------------------------------------------------------- 1 | #include "handler.fc"; 2 | 3 | () main() { } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/arbitrum/main.fc: -------------------------------------------------------------------------------- 1 | #include "handler.fc"; 2 | () main() { } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/arbitrum/tests/main.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../../../../../tests/testMain.fc"; 2 | #include "../../../../../../../../tests/mocks.fc"; 3 | #include "../../../../../../../funC++/classlib.fc"; 4 | 5 | ;;; ===============================INTERFACE FUNCTIONS=========================== 6 | 7 | slice _testName() { return "Pricefeed Arbitrum Feelib"; } 8 | 9 | cell baseTest::prepare(tuple args) impure { 10 | return cl::nullObject(); 11 | } 12 | ;;; ===============================TESTS========================================= 13 | 14 | tuple baseTest::getTests() impure { 15 | return empty_tuple(); 16 | } 17 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/default/main.fc: -------------------------------------------------------------------------------- 1 | #include "handler.fc"; 2 | () main() { } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/default/tests/main.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../../../../../tests/testMain.fc"; 2 | #include "../../../../../../../../tests/mocks.fc"; 3 | #include "../../../../../../../funC++/classlib.fc"; 4 | 5 | ;;; ===============================INTERFACE FUNCTIONS=========================== 6 | 7 | slice _testName() { return "Pricefeed Default Feelib"; } 8 | 9 | cell baseTest::prepare(tuple args) impure { 10 | return cl::nullObject(); 11 | } 12 | ;;; ===============================TESTS========================================= 13 | 14 | tuple baseTest::getTests() impure { 15 | return empty_tuple(); 16 | } 17 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/interface.fc: -------------------------------------------------------------------------------- 1 | const int PriceFeedFeeLib::method_id::estimateFee = 11111; -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/optimism/main.fc: -------------------------------------------------------------------------------- 1 | #include "handler.fc"; 2 | () main() { } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/optimism/tests/main.fc: -------------------------------------------------------------------------------- 1 | #include "../../../../../../../../tests/testMain.fc"; 2 | #include "../../../../../../../../tests/mocks.fc"; 3 | #include "../../../../../../../funC++/classlib.fc"; 4 | 5 | ;;; ===============================INTERFACE FUNCTIONS=========================== 6 | 7 | slice _testName() { return "Pricefeed Optimism Feelib"; } 8 | 9 | cell baseTest::prepare(tuple args) impure { 10 | return cl::nullObject(); 11 | } 12 | ;;; ===============================TESTS========================================= 13 | 14 | tuple baseTest::getTests() impure { 15 | return empty_tuple(); 16 | } 17 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/workers/core/tests/workerStorageTestUtils.fc: -------------------------------------------------------------------------------- 1 | #include "../workerCoreStorage.fc"; 2 | #include "../../../funC++/stringlib.fc"; 3 | #include "../../../funC++/classlib.fc"; 4 | 5 | () forceAuthenticate(int base_storage_idx) impure { } 6 | 7 | cell createContractStorage() impure; 8 | 9 | cell createInitializedStorage() impure { 10 | return createContractStorage(); 11 | } 12 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/workers/msgdata/ClaimTon.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::ClaimTon::NAME = "claimTon"u; 5 | 6 | ;; field names 7 | const int md::ClaimTon::amount = 0; 8 | const int md::ClaimTon::target = 1; 9 | 10 | cell md::ClaimTon::New(int amount, int target) impure inline method_id { 11 | return cl::declare( 12 | md::ClaimTon::NAME, 13 | unsafeTuple([ 14 | [cl::t::coins, amount], ;; md::ClaimTon::amount 15 | [cl::t::address, target] ;; md::ClaimTon::target 16 | ]) 17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/workers/msgdata/NativeDrop.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::NativeDrop::NAME = "NativeDrop"u; 5 | 6 | ;; field names 7 | const int md::NativeDrop::payees = 0; 8 | const int md::NativeDrop::packetId = 1; 9 | const int md::NativeDrop::msglib = 2; 10 | 11 | cell md::NativeDrop::New(cell payees, cell $packetId, int msglib) impure inline method_id { 12 | return cl::declare( 13 | md::NativeDrop::NAME, 14 | unsafeTuple([ 15 | [cl::t::cellRef, payees], ;; md::NativeDrop::payees 16 | [cl::t::objRef, $packetId], ;; md::NativeDrop::packetId 17 | [cl::t::address, msglib] ;; md::NativeDrop::msgLib 18 | ]) 19 | ); 20 | } 21 | 22 | cell md::NativeDrop::getPayees(cell $self) impure inline { 23 | return $self.cellPreloadRefAt(0); 24 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/workers/msgdata/SetDict.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::SetDict::NAME = "setDct"u; 5 | 6 | ;; field names 7 | const int md::SetDict::nonce = 0; 8 | const int md::SetDict::opcode = 1; 9 | const int md::SetDict::dict = 2; 10 | const int md::SetDict::target = 3; 11 | 12 | cell md::SetDict::New(int nonce, int opcode, cell _dict, int target) impure inline method_id { 13 | return cl::declare( 14 | md::SetDict::NAME, 15 | unsafeTuple([ 16 | [cl::t::uint64, nonce], ;; md::SetDict::nonce 17 | [cl::t::uint64, opcode], ;; md::SetDict::opcode 18 | [cl::t::dict256, _dict], ;; md::SetDict::dict 19 | [cl::t::address, target] ;; md::SetDict::target 20 | ]) 21 | ); 22 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/workers/msgdata/SetQuorum.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::SetQuorum::NAME = "setQuorum"u; 5 | 6 | ;; field names 7 | const int md::SetQuorum::nonce = 0; 8 | const int md::SetQuorum::opcode = 1; 9 | const int md::SetQuorum::quorum = 2; 10 | const int md::SetQuorum::target = 3; 11 | 12 | cell md::SetQuorum::New(int nonce, int opcode, int quorum, int target) impure inline method_id { 13 | return cl::declare( 14 | md::SetQuorum::NAME, 15 | unsafeTuple([ 16 | [cl::t::uint64, nonce], ;; md::SetQuorum::nonce 17 | [cl::t::uint64, opcode], ;; md::SetQuorum::opcode 18 | [cl::t::uint64, quorum], ;; md::SetQuorum::quorum 19 | [cl::t::address, target] ;; md::SetQuorum::target 20 | ]) 21 | ); 22 | } -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/workers/msgdata/SignedRequest.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | ;; required storage name 4 | const int md::SignedRequest::NAME = "sgndReq"u; 5 | 6 | ;; field names 7 | const int md::SignedRequest::request = 0; 8 | const int md::SignedRequest::signatures = 1; 9 | 10 | cell md::SignedRequest::New(cell $request, cell signatures) impure inline method_id { 11 | return cl::declare( 12 | md::SignedRequest::NAME, 13 | unsafeTuple([ 14 | [cl::t::objRef, $request], ;; md::SignedRequest::request 15 | [cl::t::dict256, signatures] ;; md::SignedRequest::signaturesk 16 | ]) 17 | ); 18 | } 19 | 20 | cell md::SignedRequest::getRequest(cell $self) impure inline { 21 | return $self.begin_parse().preload_ref_at(0); 22 | } 23 | 24 | cell md::SignedRequest::getSignatures(cell $self) impure inline { 25 | return $self.begin_parse().preload_ref_at(1); 26 | } 27 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/workers/priceFeedCache/interface.fc: -------------------------------------------------------------------------------- 1 | ;;; ==========================OPCODES===================================== 2 | 3 | const int PriceFeedCache::OP::UPDATE_PRICE = "PriceFeedCache::OP::UPDATE_PRICE"c; 4 | const int PriceFeedCache::OP::UPDATE_NATIVE_PRICE = "PriceFeedCache::OP::UPDATE_NATIVE_PRICE"c; 5 | const int PriceFeedCache::OP::UPDATE_OP_PRICES = "PriceFeedCache::OP::UPDATE_OP_PRICES"c; 6 | const int PriceFeedCache::OP::UPDATE_OP_NATIVE_PRICES = "PriceFeedCache::OP::UPDATE_OP_NATIVE_PRICES"c; 7 | const int PriceFeedCache::OP::UPDATE_ARB_EXTENSION = "PriceFeedCache::OP::UPDATE_ARB_EXTENSION"c; 8 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/workers/proxy/interface.fc: -------------------------------------------------------------------------------- 1 | ;;; ==========================OPCODES===================================== 2 | const int Proxy::OP::CALL_CONTRACT = "Proxy::OP::CALL_CONTRACT"c; 3 | const int Proxy::OP::EMIT_EVENT = "Proxy::OP::EMIT_EVENT"c; 4 | 5 | ;; this is the opcode that we will "send out" of proxy to specify the callback 6 | ;; note that every other opcode that's namespaced by some contract is handled by the contract itself 7 | ;; but in this case, this opcode is handled by the target contract 8 | const int Proxy::OP::HANDLE_CALLBACK = "Proxy::OP::HANDLE_CALLBACK"c; 9 | 10 | const int Proxy::OP::TOGGLE_CALLBACK = "Proxy::OP::TOGGLE_CALLBACK"c; 11 | 12 | const int Proxy::ERROR::NOT_LATEST_ADMIN = 1919; 13 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/workers/proxy/main.fc: -------------------------------------------------------------------------------- 1 | #include "../../protocol/core/abstract/protocolMain.fc"; 2 | 3 | #include "handler.fc"; 4 | #include "interface.fc"; 5 | 6 | tuple _executeOpcode(int op, cell $md) impure inline { 7 | if (op == Worker::OP::SET_ADMINS) { 8 | return setAdmins($md); 9 | } elseif (op == Worker::OP::CLAIM_TON) { 10 | return claimTon($md); 11 | } elseif (op == Proxy::OP::CALL_CONTRACT) { 12 | return callContract($md); 13 | } elseif (op == Proxy::OP::TOGGLE_CALLBACK) { 14 | return toggleCallback($md); 15 | } elseif (op == Proxy::OP::EMIT_EVENT) { 16 | return emitEvent($md); 17 | } 18 | return callback($md); 19 | } 20 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/src/workers/proxy/storage.fc: -------------------------------------------------------------------------------- 1 | #include "../../funC++/classlib.fc"; 2 | 3 | #include "../core/workerCoreStorage.fc"; 4 | 5 | ;; required object name 6 | const int Proxy::NAME = "pfProxy"u; 7 | 8 | ;; field names 9 | const int Proxy::workerCoreStorage = 0; ;; = WORKER_CORE_STORAGE_IDX 10 | const int Proxy::callbackEnabled = 1; 11 | 12 | ;; @owner manager 13 | cell Proxy::New(cell admins, int version) impure inline method_id { 14 | return cl::declare( 15 | Proxy::NAME, 16 | unsafeTuple([ 17 | [cl::t::objRef, WorkerCoreStorage::New(admins, NULLADDRESS, version)], ;; Proxy::workerCoreStorage 18 | [cl::t::bool, false] ;; Proxy::callbackEnabled 19 | ]) 20 | ); 21 | } 22 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/tests/globalTestResults.ts: -------------------------------------------------------------------------------- 1 | export const globalTestResults: { [testName: string]: { [key: string]: boolean } } = {} 2 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/tests/protocolStorageTestUtils.fc: -------------------------------------------------------------------------------- 1 | #include "../src/funC++/classlib.fc"; 2 | 3 | #include "../src/protocol/core/baseStorage.fc"; 4 | 5 | () _createInitializedStorage() impure; 6 | 7 | () forceAuthenticate(int base_storage_idx) impure { 8 | cell $storage = getContractStorage(); 9 | $storage = $storage.cl::set( 10 | base_storage_idx, 11 | $storage.cl::get(base_storage_idx) 12 | .cl::set(BaseStorage::initialStorage, getContractStorage()) 13 | .cl::set(BaseStorage::authenticated, true) 14 | ); 15 | setContractStorage($storage); 16 | } 17 | 18 | cell createContractStorage() impure; 19 | 20 | cell createInitializedStorage() impure { 21 | if (get_data().begin_parse().slice_bits() < _NAME_WIDTH) { 22 | createContractStorage(); 23 | forceAuthenticate(BASE_STORAGE_INDEX); 24 | _createInitializedStorage(); 25 | } 26 | return getContractStorage(); 27 | } 28 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "outDir": "dist", 5 | "module": "commonjs", 6 | "declaration": true, 7 | "esModuleInterop": true, 8 | "forceConsistentCasingInFileNames": true, 9 | "strict": true, 10 | "skipLibCheck": true 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ActionsSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/funC++/tests/actions/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/AllStorages.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/apps/allStorages/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/AllStorages.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/apps/allStorages/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/BaseContract.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/funC++/tests/baseContract/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Channel.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Channel.permissions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelBurn.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelBurn.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelBurnDefaultConfig.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelBurnDefaultConfig.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelCommitPacket.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelCommitPacket.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelConfig.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelConfig.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelInitialize.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelInitialize.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelMsglibIntegration.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelMsglibIntegration.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelMsglibSendCallback.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelMsglibSendCallback.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelNilify.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelNilify.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelNilifyDefaultConfig.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelNilifyDefaultConfig.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelReceive.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelReceive.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelReceiveCallback.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelReceiveCallback.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelReceiveView.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelReceiveView.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelSend.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelSend.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ChannelSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/channel/tests/channelSerde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Classlib.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/funC++/tests/classlib/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ComputeDataSizeGas.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/computeSizeGasTest/computeSizeGasTest.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Connection.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/ulnConnection/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Controller.assertions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/controller/tests/assertions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Controller.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/controller/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Controller.permissions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/controller/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Controller.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/controller/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Counter.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/apps/counter/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Counter.permissions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/apps/counter/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Counter.setters.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/apps/counter/tests/setters.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Counter.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/apps/counter/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Dvn.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/dvn/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Dvn.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/dvn/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/DvnFeeLib.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/dvnFeeLib/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/DvnFeeLibSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/dvnFeeLib/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/DvnPermissions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/dvn/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/DvnSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/dvn/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Endpoint.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/endpoint/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Endpoint.permissions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/endpoint/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Endpoint.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/endpoint/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/EndpointSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/endpoint/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/EndpointSetEpConfigDefaults.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/endpoint/tests/endpointSetEpConfigDefaults.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Executor.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/executor/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Executor.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/executor/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ExecutorFeeLib.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/executorFeeLib/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ExecutorFeeLibSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/executorFeeLib/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ExecutorPermissions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/executor/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ExecutorSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/executor/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/LzClasses.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/classes/lz/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/LzClassesSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/classes/lz/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/LzUtil.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/funC++/tests/util/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/MaliciousFeeLib.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/maliciousFeeLib/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/MsgData.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/classes/msgdata/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/MsgDataSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/classes/msgdata/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/MsglibPacketCodec.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/tests/msglibPacketCodec.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/MultiSig.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/multisig/multisig.func'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/MultiSigOrder.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/multisig/order.func'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PipelinedOutOfOrder.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/funC++/tests/POOO/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PipelinedOutOfOrderSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/funC++/tests/POOO/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PriceFeedCache.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/priceFeedCache/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PriceFeedCache.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/priceFeedCache/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PriceFeedCache.test.permissions.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/priceFeedCache/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PriceFeedCacheSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/priceFeedCache/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PriceFeedFeeLibArbitrum.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/arbitrum/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PriceFeedFeeLibArbitrum.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/arbitrum/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PriceFeedFeeLibDefault.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/default/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PriceFeedFeeLibDefault.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/default/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PriceFeedFeeLibOptimism.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/optimism/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PriceFeedFeeLibOptimism.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/optimism/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/PriceFeedFeeLibSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/priceFeedFeeLib/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Proxy.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/proxy/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Proxy.permissions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/proxy/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Proxy.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/proxy/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/SmlConnection.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/simpleMsglib/smlConnection/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/SmlConnection.permissions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/simpleMsglib/smlConnection/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/SmlConnection.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/simpleMsglib/smlConnection/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/SmlManager.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/simpleMsglib/smlManager/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/SmlManager.permissions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/simpleMsglib/smlManager/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/SmlManager.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/simpleMsglib/smlManager/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/TxnContext.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/funC++/tests/txnContext/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Uln.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/Uln.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnConnection.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/ulnConnection/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnConnection.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/ulnConnection/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnConnectionPermissions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/ulnConnection/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnConnectionSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/ulnConnection/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnManagement.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/management.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnManager.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/ulnManager/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnManager.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/ulnManager/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnManagerPermissions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/ulnManager/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnManagerUtil.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/ulnManager/tests/util.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnMsgDataSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/msgdata/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnPermissions.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/permissions.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnReceiveConfig.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/classes/lz/tests/UlnReceiveConfig.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnSend.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/ulnSend.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnSendConfig.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/classes/lz/tests/UlnSendConfig.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnSendWithArbDvnFeeLib.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/ulnSendWithArbDvnFeeLib.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnSendWithArbExecFeeLib.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/ulnSendWithArbExecFeeLib.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnSendWithDefaultDvnFeeLib.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/ulnSendWithDefaultDvnFeeLib.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnSendWithDefaultExecFeeLib.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/ulnSendWithDefaultExecFeeLib.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnSendWithOpDvnFeeLib.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/ulnSendWithOpDvnFeeLib.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnSendWithOpExecFeeLib.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/ulnSendWithOpExecFeeLib.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnSendWorkerFactory.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/workerFeeLibs/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/UlnUtil.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/util.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/WorkerCore.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/core/tests/main.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/WorkerCoreMsgDataSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/msgdata/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/WorkerCoreSerde.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/workers/core/tests/serde.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ZroMinter.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/jettons/zro/minter.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/ZroWallet.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/jettons/zro/wallet.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/badFeeLib1.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/badFeeLib/badFeeLib1.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/badFeeLib10.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/badFeeLib/badFeeLib10.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/badFeeLib11.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/badFeeLib/badFeeLib11.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/badFeeLib12.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/badFeeLib/badFeeLib12.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/badFeeLib2.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/badFeeLib/badFeeLib2.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/badFeeLib3.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/badFeeLib/badFeeLib3.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/badFeeLib4.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/badFeeLib/badFeeLib4.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/badFeeLib5.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/badFeeLib/badFeeLib5.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/badFeeLib6.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/badFeeLib/badFeeLib6.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/badFeeLib7.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/badFeeLib/badFeeLib7.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/badFeeLib8.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/badFeeLib/badFeeLib8.fc'], 6 | } 7 | -------------------------------------------------------------------------------- /packages/layerzero-v2/ton/wrappers/badFeeLib9.test.compile.ts: -------------------------------------------------------------------------------- 1 | import { CompilerConfig } from '@ton/blueprint' 2 | 3 | export const compile: CompilerConfig = { 4 | lang: 'func', 5 | targets: ['src/protocol/msglibs/ultralightnode/uln/tests/badFeeLib/badFeeLib9.fc'], 6 | } 7 | --------------------------------------------------------------------------------