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