From 0ff1663c2c2ec39200643a0b887081d5100d95af Mon Sep 17 00:00:00 2001
From: Patrice Tisserand
Date: Fri, 31 Jan 2025 14:45:58 +0100
Subject: [PATCH 01/18] feat(snforge_std): add "dynamic" return value for
mock_call
---
snforge_std/src/cheatcodes.cairo | 58 +++++++++++++++++++++++++++-----
snforge_std/src/lib.cairo | 1 +
2 files changed, 51 insertions(+), 8 deletions(-)
diff --git a/snforge_std/src/cheatcodes.cairo b/snforge_std/src/cheatcodes.cairo
index 1b3665bc9d..277df84b46 100644
--- a/snforge_std/src/cheatcodes.cairo
+++ b/snforge_std/src/cheatcodes.cairo
@@ -20,6 +20,36 @@ pub enum CheatSpan {
TargetCalls: usize,
}
+/// Enum used to specify the call data that should be matched when mocking a contract call.
+#[derive(Copy, Drop, PartialEq, Clone, Debug)]
+pub enum MockCallData {
+ /// Matches any call data.
+ Any,
+ /// Matches the specified serialized call data.
+ Values: Span,
+}
+
+impl MockCallDataSerde of Serde {
+ fn deserialize(ref serialized: Span) -> Option {
+ let value: Option