Skip to content

Commit

Permalink
fix standart_hook_metadata::format_metadata-Bytes size (#128)
Browse files Browse the repository at this point in the history
* fix standart_hook_metadata::format_metadata-Bytes size

* remove comment

* MockMailbox: hook_metadata + message_body size check
  • Loading branch information
EgeCaner authored Feb 11, 2025
1 parent 7243309 commit 7ce5de2
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ pub mod standard_hook_metadata {
const GAS_LIMIT_OFFSET: u8 = 34;
const REFUND_ADDRESS_OFFSET: u8 = 66;
const MIN_METADATA_LENGTH: u256 = 98;

const U128_NUMBER_OF_BYTES: usize = 16;
pub const VARIANT: u8 = 1;

#[generate_trait]
Expand Down Expand Up @@ -140,7 +140,7 @@ pub mod standard_hook_metadata {
refund_address_u256.high
];

let mut formatted_metadata = BytesTrait::new(data.len(), data);
let mut formatted_metadata = BytesTrait::new(data.len() * U128_NUMBER_OF_BYTES, data);
formatted_metadata.concat(@custom_metadata);
formatted_metadata
}
Expand Down
3 changes: 1 addition & 2 deletions cairo/crates/contracts/src/mailbox.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ pub mod mailbox {
Option::Some(hook_metadata) => {
let mut sanitized_bytes_metadata = BytesTrait::new_empty();
sanitized_bytes_metadata.concat(@hook_metadata);
assert( // what does this exactly checks
assert(
sanitized_bytes_metadata == hook_metadata,
Errors::SIZE_DOES_NOT_MATCH_METADATA
);
Expand Down Expand Up @@ -516,4 +516,3 @@ pub mod mailbox {
)
}
}

26 changes: 20 additions & 6 deletions cairo/crates/mocks/src/mock_mailbox.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,24 @@ pub mod MockMailbox {
Option::Some(hook) => { hook },
Option::None(()) => { self.default_hook.read() }
};
let hook_metadata = match metadata {
Option::Some(hook_metadata) => {
let mut sanitized_bytes_metadata = BytesTrait::new_empty();
sanitized_bytes_metadata.concat(@hook_metadata);
assert(
sanitized_bytes_metadata == hook_metadata,
Errors::SIZE_DOES_NOT_MATCH_METADATA
);
hook_metadata
},
Option::None(()) => BytesTrait::new_empty()
};
let mut sanitized_bytes_message_body = BytesTrait::new_empty();
sanitized_bytes_message_body.concat(@message_body);
assert(
sanitized_bytes_message_body == message_body,
Errors::SIZE_DOES_NOT_MATCH_MESSAGE_BODY
);
let (id, message) = build_message(
@self, destination_domain, recipient_address, message_body.clone()
);
Expand All @@ -247,16 +265,12 @@ pub mod MockMailbox {
);
self.emit(DispatchId { id });

let metadata = match metadata {
Option::Some(metadata) => metadata,
Option::None(()) => BytesTrait::new_empty()
};
let required_hook = ITestPostDispatchHookDispatcher {
contract_address: self.required_hook.read()
};
required_hook.post_dispatch(metadata.clone(), message.clone());
required_hook.post_dispatch(hook_metadata.clone(), message.clone());
let hook = ITestPostDispatchHookDispatcher { contract_address: hook };
hook.post_dispatch(metadata, message.clone());
hook.post_dispatch(hook_metadata, message.clone());
let remote_mailbox = self.remote_mailboxes.read(destination_domain);
assert!(remote_mailbox != contract_address_const::<0>());
IMockMailboxDispatcher { contract_address: remote_mailbox }
Expand Down

0 comments on commit 7ce5de2

Please sign in to comment.