From 2f750b737471a94e92a6354512b99305c895de86 Mon Sep 17 00:00:00 2001
From: Quazia <alf40k@gmail.com>
Date: Wed, 15 Jan 2025 11:20:18 -0500
Subject: [PATCH 1/3] feat(sdk): add terminators to field indexes automatically

---
 packages/sdk/src/Actions/EventAction.ts | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/packages/sdk/src/Actions/EventAction.ts b/packages/sdk/src/Actions/EventAction.ts
index e535dcce..7f4fea45 100644
--- a/packages/sdk/src/Actions/EventAction.ts
+++ b/packages/sdk/src/Actions/EventAction.ts
@@ -1611,6 +1611,9 @@ export function packFieldIndexes(indexes: number[]): number {
     }
     packed |= (index & MAX_FIELD_INDEX) << (i * 6); // Each index occupies 6 bits
   });
+  if (indexes.length < 5) {
+    packed |= MAX_FIELD_INDEX << (indexes.length * 6); // Terminator
+  }
 
   return packed;
 }

From 2b8c50c14febe8f8a85f6f9c986220327aba3b3d Mon Sep 17 00:00:00 2001
From: Quazia <alf40k@gmail.com>
Date: Wed, 15 Jan 2025 11:20:52 -0500
Subject: [PATCH 2/3] test(sdk): test automatic termination for arrays smaller
 than 5

---
 packages/sdk/src/Actions/EventAction.test.ts | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/packages/sdk/src/Actions/EventAction.test.ts b/packages/sdk/src/Actions/EventAction.test.ts
index fbf082ef..9c0aecb0 100644
--- a/packages/sdk/src/Actions/EventAction.test.ts
+++ b/packages/sdk/src/Actions/EventAction.test.ts
@@ -1241,6 +1241,15 @@ describe("Tuple & bitpacked fieldIndex support", () => {
       expect(result).toEqual(resultIndexes);
     });
 
+    test("packs 3 indexes with the automatic addition of a terminator and unpacks them correctly", () => {
+      const indexes = [0, 3, 5]; // sample indexes
+      const packed = packFieldIndexes(indexes);
+      const result = unpackFieldIndexes(packed);
+      const resultIndexes = [0, 3, 5]; // should terminate on it's own even if a terminator isn't passed in
+
+      expect(result).toEqual(resultIndexes);
+    });
+
     test("throws if more than five indexes are provided", () => {
       expect(() => packFieldIndexes([1, 2, 3, 4, 5, 6])).toThrowError(
         "Can only pack up to 5 indexes.",

From 73b3897ddf53df00f1ee1eb9e1f1b5b6826bb3cc Mon Sep 17 00:00:00 2001
From: Quazia <alf40k@gmail.com>
Date: Wed, 15 Jan 2025 14:21:54 -0500
Subject: [PATCH 3/3] Create breezy-jokes-judge.md

---
 .changeset/breezy-jokes-judge.md | 5 +++++
 1 file changed, 5 insertions(+)
 create mode 100644 .changeset/breezy-jokes-judge.md

diff --git a/.changeset/breezy-jokes-judge.md b/.changeset/breezy-jokes-judge.md
new file mode 100644
index 00000000..18dee955
--- /dev/null
+++ b/.changeset/breezy-jokes-judge.md
@@ -0,0 +1,5 @@
+---
+"@boostxyz/sdk": patch
+---
+
+[BOOST-5221] feat(sdk): update tuple support helpers to add terminators