From d9b3731dd8b598bd5c214f3a751051e3a72f93d8 Mon Sep 17 00:00:00 2001
From: keyvan <keyvankhademi@gmail.com>
Date: Tue, 16 Apr 2024 11:06:28 -0700
Subject: [PATCH 1/5] fix: fix weekday calculation bug

---
 src/agent/market_schedule.rs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/agent/market_schedule.rs b/src/agent/market_schedule.rs
index e55c799..01705aa 100644
--- a/src/agent/market_schedule.rs
+++ b/src/agent/market_schedule.rs
@@ -96,7 +96,7 @@ impl MarketSchedule {
         let month = when_local.date_naive().month0() + 1;
         let day = when_local.date_naive().day0() + 1;
         let time = when_local.time();
-        let weekday = when_local.weekday().number_from_monday().to_usize();
+        let weekday0 = when_local.weekday().number_from_monday().to_usize() - 1;
 
         for holiday in &self.holidays {
             // Check if the day matches
@@ -105,7 +105,7 @@ impl MarketSchedule {
             }
         }
 
-        self.weekly_schedule[weekday].can_publish_at(time)
+        self.weekly_schedule[weekday0].can_publish_at(time)
     }
 }
 

From 8cec9dc3cf5247ce70b585902f5f63149b12b49f Mon Sep 17 00:00:00 2001
From: keyvan <keyvankhademi@gmail.com>
Date: Tue, 16 Apr 2024 11:07:56 -0700
Subject: [PATCH 2/5] chore: increase pyth agent version

---
 Cargo.lock | 2 +-
 Cargo.toml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index cd1f188..16421fd 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3270,7 +3270,7 @@ dependencies = [
 
 [[package]]
 name = "pyth-agent"
-version = "2.6.0"
+version = "2.6.1"
 dependencies = [
  "anyhow",
  "async-trait",
diff --git a/Cargo.toml b/Cargo.toml
index 8c28965..fc99bf4 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "pyth-agent"
-version = "2.6.0"
+version = "2.6.1"
 edition = "2021"
 
 [[bin]]

From 042495a5eb4dd86140f973cd833bdfa52ea8bba5 Mon Sep 17 00:00:00 2001
From: keyvan <keyvankhademi@gmail.com>
Date: Tue, 16 Apr 2024 11:12:23 -0700
Subject: [PATCH 3/5] feat: add test to check sunday

---
 src/agent/market_schedule.rs | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/agent/market_schedule.rs b/src/agent/market_schedule.rs
index 01705aa..75285b3 100644
--- a/src/agent/market_schedule.rs
+++ b/src/agent/market_schedule.rs
@@ -462,6 +462,10 @@ mod tests {
         // Date 2400 range
         assert!(market_schedule
             .can_publish_at(&NaiveDateTime::parse_from_str("2023-12-31 23:59", format)?.and_utc()));
+
+        // Sunday
+        assert!(market_schedule
+            .can_publish_at(&NaiveDateTime::parse_from_str("2024-04-14 12:00", format)?.and_utc()));
         Ok(())
     }
 }

From fd50b0d2606cc7b537752ffd3400c725b980d512 Mon Sep 17 00:00:00 2001
From: keyvan <keyvankhademi@gmail.com>
Date: Tue, 16 Apr 2024 11:20:38 -0700
Subject: [PATCH 4/5] feat: silently ignore weekly_schedule out of bound error

---
 src/agent/market_schedule.rs | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/agent/market_schedule.rs b/src/agent/market_schedule.rs
index 75285b3..b1be58d 100644
--- a/src/agent/market_schedule.rs
+++ b/src/agent/market_schedule.rs
@@ -105,7 +105,12 @@ impl MarketSchedule {
             }
         }
 
-        self.weekly_schedule[weekday0].can_publish_at(time)
+        let day_schedule = self.weekly_schedule.get(weekday0);
+
+        match day_schedule {
+            Some(day_schedule) => day_schedule.can_publish_at(time),
+            None => false,
+        }
     }
 }
 

From e837739e6727ab3cbf3bac6f1ce791ad893cffa7 Mon Sep 17 00:00:00 2001
From: keyvan <keyvankhademi@gmail.com>
Date: Tue, 16 Apr 2024 11:22:23 -0700
Subject: [PATCH 5/5] feat: add test for monday

---
 src/agent/market_schedule.rs | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/agent/market_schedule.rs b/src/agent/market_schedule.rs
index b1be58d..f786e1b 100644
--- a/src/agent/market_schedule.rs
+++ b/src/agent/market_schedule.rs
@@ -471,6 +471,11 @@ mod tests {
         // Sunday
         assert!(market_schedule
             .can_publish_at(&NaiveDateTime::parse_from_str("2024-04-14 12:00", format)?.and_utc()));
+
+        // Monday
+        assert!(market_schedule
+            .can_publish_at(&NaiveDateTime::parse_from_str("2024-04-15 12:00", format)?.and_utc()));
+
         Ok(())
     }
 }