From d72811975d14666e83a5f96ca2035489689cb90e Mon Sep 17 00:00:00 2001 From: Cesare Naldi <3353250+cesarenaldi@users.noreply.github.com> Date: Fri, 5 Jun 2026 19:48:37 +0200 Subject: [PATCH 1/2] fix listEvents default closed filter --- .changeset/dev-169-listevents-open-default.md | 5 ++ packages/client/src/actions/events.test.ts | 61 +++++++++++++++++++ packages/client/src/actions/events.ts | 4 +- packages/client/src/decorators/discovery.ts | 2 + 4 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 .changeset/dev-169-listevents-open-default.md create mode 100644 packages/client/src/actions/events.test.ts diff --git a/.changeset/dev-169-listevents-open-default.md b/.changeset/dev-169-listevents-open-default.md new file mode 100644 index 0000000..d6df4e8 --- /dev/null +++ b/.changeset/dev-169-listevents-open-default.md @@ -0,0 +1,5 @@ +--- +"@polymarket/client": patch +--- + +Default `listEvents` to open events when `closed` is omitted. diff --git a/packages/client/src/actions/events.test.ts b/packages/client/src/actions/events.test.ts new file mode 100644 index 0000000..a76fee6 --- /dev/null +++ b/packages/client/src/actions/events.test.ts @@ -0,0 +1,61 @@ +import { HttpResponse, http } from 'msw'; +import { setupServer } from 'msw/node'; +import { afterAll, afterEach, beforeAll, describe, expect, it } from 'vitest'; +import { createPublicClient } from '../clients'; +import { production } from '../environments'; + +const gammaRoot = 'http://localhost:4024'; +const server = setupServer(); + +const environment = { + ...production, + gamma: gammaRoot, +}; + +describe('listEvents', () => { + beforeAll(() => { + server.listen({ onUnhandledRequest: 'bypass' }); + }); + + afterEach(() => { + server.resetHandlers(); + }); + + afterAll(() => { + server.close(); + }); + + it('defaults to open events', async () => { + const requestUrl = mockEventsResponse(); + const client = createPublicClient({ environment }); + + await client.listEvents({ pageSize: 10 }).firstPage(); + + expect(requestUrl.current?.searchParams.get('closed')).toBe('false'); + }); + + it('allows settled events to be requested explicitly', async () => { + const requestUrl = mockEventsResponse(); + const client = createPublicClient({ environment }); + + await client.listEvents({ closed: true, pageSize: 10 }).firstPage(); + + expect(requestUrl.current?.searchParams.get('closed')).toBe('true'); + }); +}); + +function mockEventsResponse() { + const requestUrl: { current: URL | undefined } = { current: undefined }; + + server.use( + http.get(`${gammaRoot}/events/keyset`, ({ request }) => { + requestUrl.current = new URL(request.url); + + return HttpResponse.json({ + events: [{ id: '1' }], + }); + }), + ); + + return requestUrl; +} diff --git a/packages/client/src/actions/events.ts b/packages/client/src/actions/events.ts index c406642..7b1b04d 100644 --- a/packages/client/src/actions/events.ts +++ b/packages/client/src/actions/events.ts @@ -33,7 +33,7 @@ import { snakeCase, toDataSearchParams, toSearchParams } from './params'; const ListEventsRequestSchema = z.object({ ascending: z.boolean().optional(), - closed: z.boolean().optional(), + closed: z.boolean().default(false), cursor: PaginationCursorSchema.optional(), pageSize: PageSizeSchema.optional(), cyom: z.boolean().optional(), @@ -135,6 +135,8 @@ export const ListEventsError = makeErrorGuard( /** * Lists events. * + * Defaults to open events. Pass `closed: true` to list settled events. + * * @remarks * This is a low-level function. Most SDK consumers should prefer the client instance API. * diff --git a/packages/client/src/decorators/discovery.ts b/packages/client/src/decorators/discovery.ts index c737c37..0dac117 100644 --- a/packages/client/src/decorators/discovery.ts +++ b/packages/client/src/decorators/discovery.ts @@ -63,6 +63,8 @@ export type DiscoveryActions = { /** * Lists events. * + * Defaults to open events. Pass `closed: true` to list settled events. + * * @throws {@link ListEventsError} * Thrown on failure. * From ca675ff93050b0b140e6531363bf63d1ee70182d Mon Sep 17 00:00:00 2001 From: Cesare Naldi <3353250+cesarenaldi@users.noreply.github.com> Date: Fri, 5 Jun 2026 20:15:40 +0200 Subject: [PATCH 2/2] remove listEvents default test --- packages/client/src/actions/events.test.ts | 61 ---------------------- 1 file changed, 61 deletions(-) delete mode 100644 packages/client/src/actions/events.test.ts diff --git a/packages/client/src/actions/events.test.ts b/packages/client/src/actions/events.test.ts deleted file mode 100644 index a76fee6..0000000 --- a/packages/client/src/actions/events.test.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { HttpResponse, http } from 'msw'; -import { setupServer } from 'msw/node'; -import { afterAll, afterEach, beforeAll, describe, expect, it } from 'vitest'; -import { createPublicClient } from '../clients'; -import { production } from '../environments'; - -const gammaRoot = 'http://localhost:4024'; -const server = setupServer(); - -const environment = { - ...production, - gamma: gammaRoot, -}; - -describe('listEvents', () => { - beforeAll(() => { - server.listen({ onUnhandledRequest: 'bypass' }); - }); - - afterEach(() => { - server.resetHandlers(); - }); - - afterAll(() => { - server.close(); - }); - - it('defaults to open events', async () => { - const requestUrl = mockEventsResponse(); - const client = createPublicClient({ environment }); - - await client.listEvents({ pageSize: 10 }).firstPage(); - - expect(requestUrl.current?.searchParams.get('closed')).toBe('false'); - }); - - it('allows settled events to be requested explicitly', async () => { - const requestUrl = mockEventsResponse(); - const client = createPublicClient({ environment }); - - await client.listEvents({ closed: true, pageSize: 10 }).firstPage(); - - expect(requestUrl.current?.searchParams.get('closed')).toBe('true'); - }); -}); - -function mockEventsResponse() { - const requestUrl: { current: URL | undefined } = { current: undefined }; - - server.use( - http.get(`${gammaRoot}/events/keyset`, ({ request }) => { - requestUrl.current = new URL(request.url); - - return HttpResponse.json({ - events: [{ id: '1' }], - }); - }), - ); - - return requestUrl; -}