Skip to content

Commit b199bb6

Browse files
authored
feat: added decode_log_validate method (#957)
* feat: added `decode_log_validate` method * chore: added test
1 parent e0727c2 commit b199bb6

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

crates/sol-macro/doctests/events.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,10 @@ fn event_rlp_roundtrip() {
8181
assert_eq!(rlp_decoded, rlpable_log.reserialize());
8282

8383
let decoded_log = MyEvent::decode_log(&rlp_decoded).unwrap();
84+
let validated_decoded_log = MyEvent::decode_log_validate(&rlp_decoded).unwrap();
8485

85-
assert_eq!(decoded_log, rlpable_log)
86+
assert_eq!(decoded_log, rlpable_log);
87+
assert_eq!(validated_decoded_log, rlpable_log);
8688
}
8789

8890
fn assert_event_signature<T: SolEvent>(expected: &str) {

crates/sol-types/src/types/event/mod.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,18 @@ pub trait SolEvent: Sized {
216216
Self::decode_raw_log(log.topics(), &log.data)
217217
}
218218

219+
/// Decode the event from the given log object with validation.
220+
fn decode_log_data_validate(log: &LogData) -> Result<Self> {
221+
Self::decode_raw_log_validate(log.topics(), &log.data)
222+
}
223+
219224
/// Decode the event from the given log object.
220225
fn decode_log(log: &Log) -> Result<Log<Self>> {
221226
Self::decode_log_data(&log.data).map(|data| Log { address: log.address, data })
222227
}
228+
229+
/// Decode the event from the given log object with validation.
230+
fn decode_log_validate(log: &Log) -> Result<Log<Self>> {
231+
Self::decode_log_data_validate(&log.data).map(|data| Log { address: log.address, data })
232+
}
223233
}

0 commit comments

Comments
 (0)