From 5ba72417cd6c353a97aea93dae293a249795995e Mon Sep 17 00:00:00 2001 From: JohnChangUK Date: Tue, 17 Feb 2026 13:41:17 -0500 Subject: [PATCH 1/2] fix build update --- .../ccip/ccip_dummy_receiver/sources/ptt_dummy_receiver.move | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/ccip/ccip_dummy_receiver/sources/ptt_dummy_receiver.move b/contracts/ccip/ccip_dummy_receiver/sources/ptt_dummy_receiver.move index 87022892..13f19dcc 100644 --- a/contracts/ccip/ccip_dummy_receiver/sources/ptt_dummy_receiver.move +++ b/contracts/ccip/ccip_dummy_receiver/sources/ptt_dummy_receiver.move @@ -41,7 +41,7 @@ module ccip_dummy_receiver::ptt_dummy_receiver { #[view] public fun type_and_version(): String { - string::utf8(b"PTTDummyReceiver 1.6.0") + string::utf8(b"PTTDummyReceiver 1.6.01") } fun init_module(publisher: &signer) { From fcfd0246d920eb351f53ef768764a8ed1e1defd6 Mon Sep 17 00:00:00 2001 From: JohnChangUK Date: Tue, 17 Feb 2026 14:29:54 -0500 Subject: [PATCH 2/2] Remove unneeded event handles in PTT receiver --- .../ptt_dummy_receiver/ptt_dummy_receiver.go | 8 --- .../sources/ptt_dummy_receiver.move | 58 +++---------------- 2 files changed, 9 insertions(+), 57 deletions(-) diff --git a/bindings/ccip_dummy_receiver/ptt_dummy_receiver/ptt_dummy_receiver.go b/bindings/ccip_dummy_receiver/ptt_dummy_receiver/ptt_dummy_receiver.go index be352bee..f2f390ff 100644 --- a/bindings/ccip_dummy_receiver/ptt_dummy_receiver/ptt_dummy_receiver.go +++ b/bindings/ccip_dummy_receiver/ptt_dummy_receiver/ptt_dummy_receiver.go @@ -61,14 +61,6 @@ type ReceivedMessage struct { Data []byte `move:"vector"` } -type ForwardedTokens struct { - FinalRecipient aptos.AccountAddress `move:"address"` -} - -type ReceivedTokensOnly struct { - TokenCount uint64 `move:"u64"` -} - type CCIPReceiverState struct { } diff --git a/contracts/ccip/ccip_dummy_receiver/sources/ptt_dummy_receiver.move b/contracts/ccip/ccip_dummy_receiver/sources/ptt_dummy_receiver.move index 13f19dcc..5dcd9019 100644 --- a/contracts/ccip/ccip_dummy_receiver/sources/ptt_dummy_receiver.move +++ b/contracts/ccip/ccip_dummy_receiver/sources/ptt_dummy_receiver.move @@ -17,21 +17,9 @@ module ccip_dummy_receiver::ptt_dummy_receiver { data: vector } - #[event] - struct ForwardedTokens has store, drop { - final_recipient: address - } - - #[event] - struct ReceivedTokensOnly has store, drop { - token_count: u64 - } - struct CCIPReceiverState has key { signer_cap: account::SignerCapability, - received_message_handle: event::EventHandle, - forwarded_tokens_handle: event::EventHandle, - received_tokens_only_handle: event::EventHandle + received_message_events: event::EventHandle } const E_RESOURCE_NOT_FOUND_ON_ACCOUNT: u64 = 1; @@ -41,29 +29,17 @@ module ccip_dummy_receiver::ptt_dummy_receiver { #[view] public fun type_and_version(): String { - string::utf8(b"PTTDummyReceiver 1.6.01") + string::utf8(b"PTTDummyReceiver 1.6.0") } fun init_module(publisher: &signer) { let signer_cap = resource_account::retrieve_resource_account_cap(publisher, @deployer); - let received_message_handle = + let received_message_events = account::new_event_handle(publisher); - let forwarded_tokens_handle = - account::new_event_handle(publisher); - let received_tokens_only_handle = - account::new_event_handle(publisher); - - move_to( - publisher, - CCIPReceiverState { - signer_cap, - received_message_handle, - forwarded_tokens_handle, - received_tokens_only_handle - } - ); + + move_to(publisher, CCIPReceiverState { signer_cap, received_message_events }); // Default to V2 registration receiver_registry::register_receiver_v2( @@ -78,12 +54,12 @@ module ccip_dummy_receiver::ptt_dummy_receiver { signer::address_of(&state_signer) } + #[persistent] /// This function MUST remain private (not `public fun`). The `#[persistent]` /// attribute allows it to be stored as a closure without exposing it to external callers. /// Only the authorized offramp can invoke this via the closure registered with /// `receiver_registry::register_receiver_v2()`. Making this public would allow anyone to /// construct an `Any2AptosMessage` and execute arbitrary token transfers. - #[persistent] fun ccip_receive_v2(message: client::Any2AptosMessage) acquires CCIPReceiverState { /* load state and rebuild a signer for the resource account */ let state = borrow_global_mut(@ccip_dummy_receiver); @@ -113,27 +89,11 @@ module ccip_dummy_receiver::ptt_dummy_receiver { amount ); }; - - event::emit(ForwardedTokens { final_recipient }); - event::emit_event( - &mut state.forwarded_tokens_handle, - ForwardedTokens { final_recipient } - ); - } else if (data.length() != 0) { - event::emit(ReceivedMessage { data }); - event::emit_event(&mut state.received_message_handle, ReceivedMessage { data }); - - } else if (dest_token_amounts.length() != 0) { - // Tokens only (no forwarding data) - keep them at receiver - // Emit event to prove receiver was called - let token_count = dest_token_amounts.length(); - event::emit(ReceivedTokensOnly { token_count }); - event::emit_event( - &mut state.received_tokens_only_handle, - ReceivedTokensOnly { token_count } - ); }; + event::emit(ReceivedMessage { data }); + event::emit_event(&mut state.received_message_events, ReceivedMessage { data }); + // Simple abort condition for testing if (data == b"abort") { abort E_TEST_ABORT