@polymarket/client 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import'@polymarket/bindings/subscriptions';import {PolymarketError}from'@polymarket/types';var n=class e extends PolymarketError{name="TransportError";constructor(r,t={}){super(r,t);}static fromError(r){return new e(r instanceof Error?r.message:"Request failed",{cause:r})}};var o=class extends PolymarketError{name="TimeoutError";constructor(r,t={}){super(r,t);}};var a=class extends PolymarketError{name="TransactionFailedError";constructor(r,t={}){super(r,t);}},i=class e extends PolymarketError{name="CancelledSigningError";constructor(r,t={}){super(r,t);}static fromError(r){return new e(r.message,{cause:r})}};var p=class e extends PolymarketError{name="SigningError";constructor(r,t={}){super(r,t);}static fromError(r,t){let c=t??(r instanceof Error?r.message:"Signing failed");return new e(c,{cause:r})}};export{n as a,o as b,a as c,i as d,p as e};//# sourceMappingURL=chunk-6GBGW5CG.js.map
2
+ //# sourceMappingURL=chunk-6GBGW5CG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/errors.ts"],"names":["TransportError","_TransportError","PolymarketError","message","options","error","TimeoutError","TransactionFailedError","CancelledSigningError","_CancelledSigningError","SigningError","_SigningError","msg"],"mappings":"2FA6EO,IAAMA,CAAAA,CAAN,MAAMC,UAAuBC,eAAgB,CACzC,IAAA,CAAO,gBAAA,CAEhB,YAAYC,CAAAA,CAAiBC,CAAAA,CAAwB,EAAC,CAAG,CACvD,KAAA,CAAMD,CAAAA,CAASC,CAAO,EACxB,CAEA,OAAO,SAAA,CAAUC,CAAAA,CAAgC,CAC/C,OAAO,IAAIJ,CAAAA,CACTI,CAAAA,YAAiB,KAAA,CAAQA,EAAM,OAAA,CAAU,gBAAA,CACzC,CACE,KAAA,CAAOA,CACT,CACF,CACF,CACF,MAwKaC,CAAAA,CAAN,cAA2BJ,eAAgB,CACvC,KAAO,cAAA,CAEhB,WAAA,CAAYC,CAAAA,CAAiBC,CAAAA,CAAwB,EAAC,CAAG,CACvD,KAAA,CAAMD,CAAAA,CAASC,CAAO,EACxB,CACF,EAsBO,IAAMG,EAAN,cAAqCL,eAAgB,CACjD,IAAA,CAAO,yBAEhB,WAAA,CAAYC,CAAAA,CAAiBC,EAAwB,EAAC,CAAG,CACvD,KAAA,CAAMD,CAAAA,CAASC,CAAO,EACxB,CACF,CAAA,CAKaI,CAAAA,CAAN,MAAMC,CAAAA,SAA8BP,eAAgB,CAChD,IAAA,CAAO,uBAAA,CAEhB,WAAA,CAAYC,EAAiBC,CAAAA,CAAwB,EAAC,CAAG,CACvD,MAAMD,CAAAA,CAASC,CAAO,EACxB,CAEA,OAAO,SAAA,CAAUC,CAAAA,CAAqC,CACpD,OAAO,IAAII,CAAAA,CAAsBJ,CAAAA,CAAM,OAAA,CAAS,CAC9C,MAAOA,CACT,CAAC,CACH,CACF,EA0EO,IAAMK,CAAAA,CAAN,MAAMC,CAAAA,SAAqBT,eAAgB,CACvC,IAAA,CAAO,cAAA,CAEhB,WAAA,CAAYC,EAAiBC,CAAAA,CAAwB,EAAC,CAAG,CACvD,MAAMD,CAAAA,CAASC,CAAO,EACxB,CAEA,OAAO,SAAA,CAAUC,CAAAA,CAAgBF,CAAAA,CAAgC,CAC/D,IAAMS,CAAAA,CACJT,CAAAA,GAAYE,CAAAA,YAAiB,KAAA,CAAQA,EAAM,OAAA,CAAU,gBAAA,CAAA,CACvD,OAAO,IAAIM,EAAaC,CAAAA,CAAK,CAAE,MAAOP,CAAM,CAAC,CAC/C,CACF","file":"chunk-6GBGW5CG.js","sourcesContent":["import type { PerpsCancelOrderResult } from '@polymarket/bindings/perps';\n\nexport {\n type RealtimeErrorCode,\n RealtimeKnownErrorCode,\n} from '@polymarket/bindings/subscriptions';\n\nimport { PolymarketError } from '@polymarket/types';\nimport type { ZodError } from 'zod';\nimport type { RateLimitUpdate } from './rate-limit';\nimport {\n formatInputZodError,\n formatResponseZodError,\n type ResponseValidationContext,\n} from './validation';\n\n/**\n * Error thrown when an action input fails SDK validation before a request is\n * sent.\n */\nexport class UserInputError extends PolymarketError {\n override name = 'UserInputError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n\n static fromZodError(error: ZodError): UserInputError {\n return new UserInputError(formatInputZodError(error), {\n cause: error,\n });\n }\n}\n\n/**\n * Error thrown when pagination would pass the deepest page the service serves\n * for a list.\n *\n * Some list endpoints cap how far an offset-paginated read may go and reject\n * requests past the cap. The SDK throws this before sending such a request;\n * the pages already returned stay valid, but whether more items exist past\n * the cap cannot be established. Automatic iteration stops normally on a page\n * with `limitReached: true`; explicitly resuming past the cap still throws.\n */\nexport class PaginationLimitError extends PolymarketError {\n override name = 'PaginationLimitError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n}\n\n/**\n * Error thrown when a service response does not match the action's expected\n * response shape.\n */\nexport class UnexpectedResponseError extends PolymarketError {\n override name = 'UnexpectedResponseError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n\n static fromZodError(\n error: ZodError,\n context: ResponseValidationContext,\n ): UnexpectedResponseError {\n return new UnexpectedResponseError(formatResponseZodError(error, context), {\n cause: error,\n });\n }\n}\n\n/**\n * Error thrown when the SDK cannot complete a request because of a network or\n * runtime transport failure.\n */\nexport class TransportError extends PolymarketError {\n override name = 'TransportError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n\n static fromError(error: unknown): TransportError {\n return new TransportError(\n error instanceof Error ? error.message : 'Request failed',\n {\n cause: error,\n },\n );\n }\n}\n\n/**\n * WebSocket close codes defined by RFC 6455 and the IANA WebSocket Close Code\n * Number registry. Codes 4000-4999 are reserved for application use and are\n * intentionally not modeled here.\n */\nexport enum WebSocketKnownCloseCode {\n NormalClosure = 1000,\n GoingAway = 1001,\n ProtocolError = 1002,\n UnsupportedData = 1003,\n /** Synthesized locally when the peer closed without a status code. */\n NoStatusReceived = 1005,\n /** Synthesized locally when the connection dropped without a close frame. */\n AbnormalClosure = 1006,\n InvalidFramePayload = 1007,\n PolicyViolation = 1008,\n MessageTooBig = 1009,\n InternalError = 1011,\n ServiceRestart = 1012,\n TryAgainLater = 1013,\n}\n\n/**\n * A WebSocket close code. Codes enumerated in\n * {@link WebSocketKnownCloseCode} are defined by RFC 6455; other values, such\n * as application-defined 4000-4999 codes, flow through as plain numbers.\n */\nexport type WebSocketCloseCode = WebSocketKnownCloseCode | (number & {});\n\nexport type ConnectionLostErrorOptions = {\n /** WebSocket close code reported for the lost connection. */\n code: WebSocketCloseCode;\n /** Close reason provided by the peer. Empty when none was sent. */\n reason: string;\n};\n\n/**\n * Error thrown when a live connection ends without the SDK requesting it.\n */\nexport class ConnectionLostError extends PolymarketError {\n override name = 'ConnectionLostError' as const;\n\n readonly code: WebSocketCloseCode;\n readonly reason: string;\n\n constructor(\n message: string,\n options: ErrorOptions & ConnectionLostErrorOptions,\n ) {\n super(message, options);\n this.code = options.code;\n this.reason = options.reason;\n }\n}\n\n/**\n * Trading restriction reported by the venue while orders cannot be placed\n * normally. The SDK does not retry automatically; callers decide how to\n * react, honoring {@link RequestRejectedError.retryAfter} when provided.\n */\nexport enum TradingRestriction {\n /** The matching engine is restarting and rejects order requests until it is back. */\n RESTARTING = 'restarting',\n /** Cancels and post-only orders are accepted; other orders are rejected. */\n POST_ONLY = 'post_only',\n}\n\nexport type RequestRejectedErrorOptions = {\n status: number;\n /**\n * Machine-readable error code from the response body, when the service\n * provided one.\n */\n code?: string;\n /**\n * Server-requested delay in seconds before retrying, when the response\n * provided one.\n */\n retryAfter?: number;\n /**\n * Trading restriction that caused the rejection, when the response\n * identified one.\n */\n restriction?: TradingRestriction;\n};\n\n/**\n * Error thrown when a service responds with a non-success status other than\n * rate limiting.\n */\nexport class RequestRejectedError extends PolymarketError {\n override name = 'RequestRejectedError' as const;\n\n readonly status: number;\n /**\n * Machine-readable error code from the response body, when the service\n * provided one.\n */\n readonly code?: string;\n /**\n * Server-requested delay in seconds before retrying, when the response\n * provided one.\n */\n readonly retryAfter?: number;\n /**\n * Trading restriction that caused the rejection, when the response\n * identified one.\n */\n readonly restriction?: TradingRestriction;\n\n constructor(\n message: string,\n options: ErrorOptions & RequestRejectedErrorOptions,\n ) {\n super(message, options);\n this.status = options.status;\n this.code = options.code;\n this.retryAfter = options.retryAfter;\n this.restriction = options.restriction;\n }\n}\n\nexport type RateLimitErrorOptions = {\n /**\n * Server-requested delay in seconds before retrying, when the response\n * provided one.\n */\n retryAfter?: number;\n /**\n * Rate-limit state reported with the rejection, when the response provided\n * it.\n */\n rateLimit?: RateLimitUpdate;\n};\n\n/**\n * Error thrown when the service rejects a request because the rate limit has\n * been exceeded.\n */\nexport class RateLimitError extends PolymarketError {\n override name = 'RateLimitError' as const;\n\n /**\n * Server-requested delay in seconds before retrying, when the response\n * provided one.\n */\n readonly retryAfter?: number;\n /**\n * Rate-limit state reported with the rejection, when the response provided\n * it.\n */\n readonly rateLimit?: RateLimitUpdate;\n\n constructor(\n message: string,\n options: ErrorOptions & RateLimitErrorOptions = {},\n ) {\n super(message, options);\n this.retryAfter = options.retryAfter;\n this.rateLimit = options.rateLimit;\n }\n}\n\n/**\n * Error thrown when an async wait operation exceeds its allotted polling time.\n */\nexport class TimeoutError extends PolymarketError {\n override name = 'TimeoutError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n}\n\n/**\n * Error thrown when an operation is interrupted through an abort signal.\n */\nexport class OperationAbortedError extends PolymarketError {\n override name = 'OperationAbortedError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n\n static fromReason(reason: unknown): OperationAbortedError {\n return new OperationAbortedError('Operation was aborted.', {\n cause: reason,\n });\n }\n}\n\n/**\n * Error thrown when a submitted transaction reaches a terminal failure state.\n */\nexport class TransactionFailedError extends PolymarketError {\n override name = 'TransactionFailedError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n}\n\n/**\n * Error thrown when the user cancels a required wallet signing action.\n */\nexport class CancelledSigningError extends PolymarketError {\n override name = 'CancelledSigningError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n\n static fromError(error: Error): CancelledSigningError {\n return new CancelledSigningError(error.message, {\n cause: error,\n });\n }\n}\n\n/**\n * Error thrown when there is not enough resting market liquidity to satisfy the\n * requested execution semantics.\n */\nexport class InsufficientLiquidityError extends PolymarketError {\n override name = 'InsufficientLiquidityError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n}\n\n/**\n * Error thrown when arming auto-cancel is rejected because the account has\n * reached its daily auto-cancel trigger limit. Arming is rejected until the\n * daily counter resets at the next UTC midnight; clearing an existing\n * schedule is always allowed.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport class AutoCancelDailyLimitError extends PolymarketError {\n override name = 'AutoCancelDailyLimitError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n}\n\n/**\n * Details retained when a Perps cancellation retry fails.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsCancelRetryErrorOptions = {\n /** Last received per-order outcomes, in the original request order. */\n results: readonly PerpsCancelOrderResult[];\n /** Zero-based original request positions retried in the failed attempt. */\n pendingIndexes: readonly number[];\n};\n\n/**\n * Error thrown when a Perps cancellation retry fails after per-order results\n * have already been received. The original failure is available as `cause`.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport class PerpsCancelRetryError extends PolymarketError {\n override name = 'PerpsCancelRetryError' as const;\n\n /** Last received per-order outcomes, in the original request order. */\n readonly results: readonly PerpsCancelOrderResult[];\n /**\n * Zero-based original request positions retried in the failed attempt.\n * Their retained rejections are historical: a transport failure can conceal\n * completion, so these results do not establish the current order state.\n */\n readonly pendingIndexes: readonly number[];\n\n constructor(\n message: string,\n options: ErrorOptions & PerpsCancelRetryErrorOptions,\n ) {\n super(message, options);\n this.results = [...options.results];\n this.pendingIndexes = [...options.pendingIndexes];\n }\n}\n\n/**\n * Error thrown when the SDK cannot produce a required signature or\n * authentication payload.\n */\nexport class SigningError extends PolymarketError {\n override name = 'SigningError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n\n static fromError(error: unknown, message?: string): SigningError {\n const msg =\n message ?? (error instanceof Error ? error.message : 'Signing failed');\n return new SigningError(msg, { cause: error });\n }\n}\n\nexport function makeErrorGuard<\n // biome-ignore lint/suspicious/noExplicitAny: constructor rest args require any[]\n TClasses extends ReadonlyArray<new (...args: any[]) => unknown>,\n>(\n ...classes: TClasses\n): { isError(error: unknown): error is InstanceType<TClasses[number]> } {\n return {\n isError(error: unknown): error is InstanceType<TClasses[number]> {\n return classes.some((c) => error instanceof c);\n },\n };\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export{RealtimeKnownErrorCode as s}from'@polymarket/bindings/subscriptions';import {PolymarketError}from'@polymarket/types';var Z=/^[$A-Z_a-z][$\w]*$/;function i(t){let r=c(t.issues);return r.length===0?"It was not possible to determine a more specific reason.":["Fix the following issues:",p(r)].join(`
2
+ `)}function u(t,r){let e=c(t.issues);return e.length===0?["Received an incompatible API response.",`Endpoint: ${r.endpoint}`,"This usually means the API response shape changed in a breaking way or the SDK is outdated.","It was not possible to determine a more specific reason."].join(`
3
+ `):["Received an incompatible API response.",`Endpoint: ${r.endpoint}`,"This usually means the API response shape changed in a breaking way or the SDK is outdated.","Fix the following issues:",p(e)].join(`
4
+ `)}function p(t){return t.map(e=>e.path===null?`- ${e.message}`:`- ${e.path}: ${e.message}`).join(`
5
+ `)}function c(t){return d(t).slice(0,99)}function d(t,r=[]){let e=t.flatMap(o=>{let a=[...r,...o.path];return o.code==="invalid_union"?o.errors.flatMap(U=>d(U,a)):[{code:o.code,message:o.message,path:a.length===0?null:j(a)}]});return T(e)}function T(t){let r=new Set,e=[];for(let o of t){let a=`${o.code}:${o.path??""}:${o.message}`;r.has(a)||(r.add(a),e.push(o));}return e.sort(L)}function L(t,r){return t.path===null&&r.path!==null?-1:t.path!==null&&r.path===null?1:(t.path??"").localeCompare(r.path??"")}function j(t){return t.reduce((r,e)=>typeof e=="number"?`${r}[${e.toString()}]`:typeof e!="string"?r:e.includes('"')?`${r}["${e.replaceAll('"','\\"')}"]`:Z.test(e)?r.length===0?e:`${r}.${e}`:`${r}["${e}"]`,"")}var l=class t extends PolymarketError{name="UserInputError";constructor(r,e={}){super(r,e);}static fromZodError(r){return new t(i(r),{cause:r})}},m=class extends PolymarketError{name="PaginationLimitError";constructor(r,e={}){super(r,e);}},f=class t extends PolymarketError{name="UnexpectedResponseError";constructor(r,e={}){super(r,e);}static fromZodError(r,e){return new t(u(r,e),{cause:r})}},y=class t extends PolymarketError{name="TransportError";constructor(r,e={}){super(r,e);}static fromError(r){return new t(r instanceof Error?r.message:"Request failed",{cause:r})}},M=(s=>(s[s.NormalClosure=1e3]="NormalClosure",s[s.GoingAway=1001]="GoingAway",s[s.ProtocolError=1002]="ProtocolError",s[s.UnsupportedData=1003]="UnsupportedData",s[s.NoStatusReceived=1005]="NoStatusReceived",s[s.AbnormalClosure=1006]="AbnormalClosure",s[s.InvalidFramePayload=1007]="InvalidFramePayload",s[s.PolicyViolation=1008]="PolicyViolation",s[s.MessageTooBig=1009]="MessageTooBig",s[s.InternalError=1011]="InternalError",s[s.ServiceRestart=1012]="ServiceRestart",s[s.TryAgainLater=1013]="TryAgainLater",s))(M||{}),g=class extends PolymarketError{name="ConnectionLostError";code;reason;constructor(r,e){super(r,e),this.code=e.code,this.reason=e.reason;}},V=(e=>(e.RESTARTING="restarting",e.POST_ONLY="post_only",e))(V||{}),E=class extends PolymarketError{name="RequestRejectedError";status;code;retryAfter;restriction;constructor(r,e){super(r,e),this.status=e.status,this.code=e.code,this.retryAfter=e.retryAfter,this.restriction=e.restriction;}},x=class extends PolymarketError{name="RateLimitError";retryAfter;rateLimit;constructor(r,e={}){super(r,e),this.retryAfter=e.retryAfter,this.rateLimit=e.rateLimit;}},I=class extends PolymarketError{name="TimeoutError";constructor(r,e={}){super(r,e);}},h=class t extends PolymarketError{name="OperationAbortedError";constructor(r,e={}){super(r,e);}static fromReason(r){return new t("Operation was aborted.",{cause:r})}},R=class extends PolymarketError{name="TransactionFailedError";constructor(r,e={}){super(r,e);}},O=class t extends PolymarketError{name="CancelledSigningError";constructor(r,e={}){super(r,e);}static fromError(r){return new t(r.message,{cause:r})}},v=class extends PolymarketError{name="InsufficientLiquidityError";constructor(r,e={}){super(r,e);}},$=class extends PolymarketError{name="AutoCancelDailyLimitError";constructor(r,e={}){super(r,e);}},A=class extends PolymarketError{name="PerpsCancelRetryError";results;pendingIndexes;constructor(r,e){super(r,e),this.results=[...e.results],this.pendingIndexes=[...e.pendingIndexes];}},P=class t extends PolymarketError{name="SigningError";constructor(r,e={}){super(r,e);}static fromError(r,e){let o=e??(r instanceof Error?r.message:"Signing failed");return new t(o,{cause:r})}};function z(...t){return {isError(r){return t.some(e=>r instanceof e)}}}export{l as a,m as b,f as c,y as d,M as e,g as f,V as g,E as h,x as i,I as j,h as k,R as l,O as m,v as n,$ as o,A as p,P as q,z as r};//# sourceMappingURL=chunk-VLNLVY4C.js.map
6
+ //# sourceMappingURL=chunk-VLNLVY4C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/validation.ts","../src/errors.ts"],"names":["identifierRegex","formatInputZodError","error","issues","flattenIssues","formatIssues","formatResponseZodError","context","issue","flattenIssueBranches","pathPrefix","flattened","path","branch","formatPath","dedupeIssues","seen","deduped","key","compareIssues","left","right","result","segment","UserInputError","_UserInputError","PolymarketError","message","options","PaginationLimitError","UnexpectedResponseError","_UnexpectedResponseError","TransportError","_TransportError","WebSocketKnownCloseCode","ConnectionLostError","TradingRestriction","RequestRejectedError","RateLimitError","TimeoutError","OperationAbortedError","_OperationAbortedError","reason","TransactionFailedError","CancelledSigningError","_CancelledSigningError","InsufficientLiquidityError","AutoCancelDailyLimitError","PerpsCancelRetryError","SigningError","_SigningError","msg","makeErrorGuard","classes","c"],"mappings":"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","file":"chunk-VLNLVY4C.js","sourcesContent":["import type { core, ZodError } from 'zod';\n\nconst maxIssuesInMessage = 99;\nconst identifierRegex = /^[$A-Z_a-z][$\\w]*$/;\n\ntype UserInputIssue = {\n code: string;\n message: string;\n path: string | null;\n};\n\nexport type ResponseValidationContext = {\n endpoint: string;\n};\n\n/**\n * Formats a `ZodError` into an SDK-oriented input validation message.\n */\nexport function formatInputZodError(error: ZodError): string {\n const issues = flattenIssues(error.issues);\n\n if (issues.length === 0) {\n return 'It was not possible to determine a more specific reason.';\n }\n\n return ['Fix the following issues:', formatIssues(issues)].join('\\n');\n}\n\n/**\n * Formats a `ZodError` into an SDK-oriented response validation message.\n */\nexport function formatResponseZodError(\n error: ZodError,\n context: ResponseValidationContext,\n): string {\n const issues = flattenIssues(error.issues);\n\n if (issues.length === 0) {\n return [\n 'Received an incompatible API response.',\n `Endpoint: ${context.endpoint}`,\n 'This usually means the API response shape changed in a breaking way or the SDK is outdated.',\n 'It was not possible to determine a more specific reason.',\n ].join('\\n');\n }\n\n return [\n 'Received an incompatible API response.',\n `Endpoint: ${context.endpoint}`,\n 'This usually means the API response shape changed in a breaking way or the SDK is outdated.',\n 'Fix the following issues:',\n formatIssues(issues),\n ].join('\\n');\n}\n\nfunction formatIssues(issues: readonly UserInputIssue[]): string {\n const lines = issues.map((issue) => {\n if (issue.path === null) {\n return `- ${issue.message}`;\n }\n\n return `- ${issue.path}: ${issue.message}`;\n });\n\n return lines.join('\\n');\n}\n\nfunction flattenIssues(issues: readonly core.$ZodIssue[]): UserInputIssue[] {\n return flattenIssueBranches(issues).slice(0, maxIssuesInMessage);\n}\n\nfunction flattenIssueBranches(\n issues: readonly core.$ZodIssue[],\n pathPrefix: readonly PropertyKey[] = [],\n): UserInputIssue[] {\n const flattened = issues.flatMap((issue) => {\n const path = [...pathPrefix, ...issue.path];\n\n if (issue.code === 'invalid_union') {\n return issue.errors.flatMap((branch) =>\n flattenIssueBranches(branch, path),\n );\n }\n\n return [\n {\n code: issue.code,\n message: issue.message,\n path: path.length === 0 ? null : formatPath(path),\n } satisfies UserInputIssue,\n ];\n });\n\n return dedupeIssues(flattened);\n}\n\nfunction dedupeIssues(issues: readonly UserInputIssue[]): UserInputIssue[] {\n const seen = new Set<string>();\n const deduped: UserInputIssue[] = [];\n\n for (const issue of issues) {\n const key = `${issue.code}:${issue.path ?? ''}:${issue.message}`;\n\n if (seen.has(key)) {\n continue;\n }\n\n seen.add(key);\n deduped.push(issue);\n }\n\n return deduped.sort(compareIssues);\n}\n\nfunction compareIssues(left: UserInputIssue, right: UserInputIssue): number {\n if (left.path === null && right.path !== null) {\n return -1;\n }\n\n if (left.path !== null && right.path === null) {\n return 1;\n }\n\n return (left.path ?? '').localeCompare(right.path ?? '');\n}\n\nfunction formatPath(path: readonly PropertyKey[]): string {\n return path.reduce<string>((result, segment) => {\n if (typeof segment === 'number') {\n return `${result}[${segment.toString()}]`;\n }\n\n if (typeof segment !== 'string') {\n return result;\n }\n\n if (segment.includes('\"')) {\n return `${result}[\"${segment.replaceAll('\"', '\\\\\"')}\"]`;\n }\n\n if (!identifierRegex.test(segment)) {\n return `${result}[\"${segment}\"]`;\n }\n\n if (result.length === 0) {\n return segment;\n }\n\n return `${result}.${segment}`;\n }, '');\n}\n","import type { PerpsCancelOrderResult } from '@polymarket/bindings/perps';\n\nexport {\n type RealtimeErrorCode,\n RealtimeKnownErrorCode,\n} from '@polymarket/bindings/subscriptions';\n\nimport { PolymarketError } from '@polymarket/types';\nimport type { ZodError } from 'zod';\nimport type { RateLimitUpdate } from './rate-limit';\nimport {\n formatInputZodError,\n formatResponseZodError,\n type ResponseValidationContext,\n} from './validation';\n\n/**\n * Error thrown when an action input fails SDK validation before a request is\n * sent.\n */\nexport class UserInputError extends PolymarketError {\n override name = 'UserInputError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n\n static fromZodError(error: ZodError): UserInputError {\n return new UserInputError(formatInputZodError(error), {\n cause: error,\n });\n }\n}\n\n/**\n * Error thrown when pagination would pass the deepest page the service serves\n * for a list.\n *\n * Some list endpoints cap how far an offset-paginated read may go and reject\n * requests past the cap. The SDK throws this before sending such a request;\n * the pages already returned stay valid, but whether more items exist past\n * the cap cannot be established. Automatic iteration stops normally on a page\n * with `limitReached: true`; explicitly resuming past the cap still throws.\n */\nexport class PaginationLimitError extends PolymarketError {\n override name = 'PaginationLimitError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n}\n\n/**\n * Error thrown when a service response does not match the action's expected\n * response shape.\n */\nexport class UnexpectedResponseError extends PolymarketError {\n override name = 'UnexpectedResponseError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n\n static fromZodError(\n error: ZodError,\n context: ResponseValidationContext,\n ): UnexpectedResponseError {\n return new UnexpectedResponseError(formatResponseZodError(error, context), {\n cause: error,\n });\n }\n}\n\n/**\n * Error thrown when the SDK cannot complete a request because of a network or\n * runtime transport failure.\n */\nexport class TransportError extends PolymarketError {\n override name = 'TransportError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n\n static fromError(error: unknown): TransportError {\n return new TransportError(\n error instanceof Error ? error.message : 'Request failed',\n {\n cause: error,\n },\n );\n }\n}\n\n/**\n * WebSocket close codes defined by RFC 6455 and the IANA WebSocket Close Code\n * Number registry. Codes 4000-4999 are reserved for application use and are\n * intentionally not modeled here.\n */\nexport enum WebSocketKnownCloseCode {\n NormalClosure = 1000,\n GoingAway = 1001,\n ProtocolError = 1002,\n UnsupportedData = 1003,\n /** Synthesized locally when the peer closed without a status code. */\n NoStatusReceived = 1005,\n /** Synthesized locally when the connection dropped without a close frame. */\n AbnormalClosure = 1006,\n InvalidFramePayload = 1007,\n PolicyViolation = 1008,\n MessageTooBig = 1009,\n InternalError = 1011,\n ServiceRestart = 1012,\n TryAgainLater = 1013,\n}\n\n/**\n * A WebSocket close code. Codes enumerated in\n * {@link WebSocketKnownCloseCode} are defined by RFC 6455; other values, such\n * as application-defined 4000-4999 codes, flow through as plain numbers.\n */\nexport type WebSocketCloseCode = WebSocketKnownCloseCode | (number & {});\n\nexport type ConnectionLostErrorOptions = {\n /** WebSocket close code reported for the lost connection. */\n code: WebSocketCloseCode;\n /** Close reason provided by the peer. Empty when none was sent. */\n reason: string;\n};\n\n/**\n * Error thrown when a live connection ends without the SDK requesting it.\n */\nexport class ConnectionLostError extends PolymarketError {\n override name = 'ConnectionLostError' as const;\n\n readonly code: WebSocketCloseCode;\n readonly reason: string;\n\n constructor(\n message: string,\n options: ErrorOptions & ConnectionLostErrorOptions,\n ) {\n super(message, options);\n this.code = options.code;\n this.reason = options.reason;\n }\n}\n\n/**\n * Trading restriction reported by the venue while orders cannot be placed\n * normally. The SDK does not retry automatically; callers decide how to\n * react, honoring {@link RequestRejectedError.retryAfter} when provided.\n */\nexport enum TradingRestriction {\n /** The matching engine is restarting and rejects order requests until it is back. */\n RESTARTING = 'restarting',\n /** Cancels and post-only orders are accepted; other orders are rejected. */\n POST_ONLY = 'post_only',\n}\n\nexport type RequestRejectedErrorOptions = {\n status: number;\n /**\n * Machine-readable error code from the response body, when the service\n * provided one.\n */\n code?: string;\n /**\n * Server-requested delay in seconds before retrying, when the response\n * provided one.\n */\n retryAfter?: number;\n /**\n * Trading restriction that caused the rejection, when the response\n * identified one.\n */\n restriction?: TradingRestriction;\n};\n\n/**\n * Error thrown when a service responds with a non-success status other than\n * rate limiting.\n */\nexport class RequestRejectedError extends PolymarketError {\n override name = 'RequestRejectedError' as const;\n\n readonly status: number;\n /**\n * Machine-readable error code from the response body, when the service\n * provided one.\n */\n readonly code?: string;\n /**\n * Server-requested delay in seconds before retrying, when the response\n * provided one.\n */\n readonly retryAfter?: number;\n /**\n * Trading restriction that caused the rejection, when the response\n * identified one.\n */\n readonly restriction?: TradingRestriction;\n\n constructor(\n message: string,\n options: ErrorOptions & RequestRejectedErrorOptions,\n ) {\n super(message, options);\n this.status = options.status;\n this.code = options.code;\n this.retryAfter = options.retryAfter;\n this.restriction = options.restriction;\n }\n}\n\nexport type RateLimitErrorOptions = {\n /**\n * Server-requested delay in seconds before retrying, when the response\n * provided one.\n */\n retryAfter?: number;\n /**\n * Rate-limit state reported with the rejection, when the response provided\n * it.\n */\n rateLimit?: RateLimitUpdate;\n};\n\n/**\n * Error thrown when the service rejects a request because the rate limit has\n * been exceeded.\n */\nexport class RateLimitError extends PolymarketError {\n override name = 'RateLimitError' as const;\n\n /**\n * Server-requested delay in seconds before retrying, when the response\n * provided one.\n */\n readonly retryAfter?: number;\n /**\n * Rate-limit state reported with the rejection, when the response provided\n * it.\n */\n readonly rateLimit?: RateLimitUpdate;\n\n constructor(\n message: string,\n options: ErrorOptions & RateLimitErrorOptions = {},\n ) {\n super(message, options);\n this.retryAfter = options.retryAfter;\n this.rateLimit = options.rateLimit;\n }\n}\n\n/**\n * Error thrown when an async wait operation exceeds its allotted polling time.\n */\nexport class TimeoutError extends PolymarketError {\n override name = 'TimeoutError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n}\n\n/**\n * Error thrown when an operation is interrupted through an abort signal.\n */\nexport class OperationAbortedError extends PolymarketError {\n override name = 'OperationAbortedError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n\n static fromReason(reason: unknown): OperationAbortedError {\n return new OperationAbortedError('Operation was aborted.', {\n cause: reason,\n });\n }\n}\n\n/**\n * Error thrown when a submitted transaction reaches a terminal failure state.\n */\nexport class TransactionFailedError extends PolymarketError {\n override name = 'TransactionFailedError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n}\n\n/**\n * Error thrown when the user cancels a required wallet signing action.\n */\nexport class CancelledSigningError extends PolymarketError {\n override name = 'CancelledSigningError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n\n static fromError(error: Error): CancelledSigningError {\n return new CancelledSigningError(error.message, {\n cause: error,\n });\n }\n}\n\n/**\n * Error thrown when there is not enough resting market liquidity to satisfy the\n * requested execution semantics.\n */\nexport class InsufficientLiquidityError extends PolymarketError {\n override name = 'InsufficientLiquidityError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n}\n\n/**\n * Error thrown when arming auto-cancel is rejected because the account has\n * reached its daily auto-cancel trigger limit. Arming is rejected until the\n * daily counter resets at the next UTC midnight; clearing an existing\n * schedule is always allowed.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport class AutoCancelDailyLimitError extends PolymarketError {\n override name = 'AutoCancelDailyLimitError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n}\n\n/**\n * Details retained when a Perps cancellation retry fails.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport type PerpsCancelRetryErrorOptions = {\n /** Last received per-order outcomes, in the original request order. */\n results: readonly PerpsCancelOrderResult[];\n /** Zero-based original request positions retried in the failed attempt. */\n pendingIndexes: readonly number[];\n};\n\n/**\n * Error thrown when a Perps cancellation retry fails after per-order results\n * have already been received. The original failure is available as `cause`.\n *\n * @experimental This API may change in a breaking way in any release, including patch releases.\n */\nexport class PerpsCancelRetryError extends PolymarketError {\n override name = 'PerpsCancelRetryError' as const;\n\n /** Last received per-order outcomes, in the original request order. */\n readonly results: readonly PerpsCancelOrderResult[];\n /**\n * Zero-based original request positions retried in the failed attempt.\n * Their retained rejections are historical: a transport failure can conceal\n * completion, so these results do not establish the current order state.\n */\n readonly pendingIndexes: readonly number[];\n\n constructor(\n message: string,\n options: ErrorOptions & PerpsCancelRetryErrorOptions,\n ) {\n super(message, options);\n this.results = [...options.results];\n this.pendingIndexes = [...options.pendingIndexes];\n }\n}\n\n/**\n * Error thrown when the SDK cannot produce a required signature or\n * authentication payload.\n */\nexport class SigningError extends PolymarketError {\n override name = 'SigningError' as const;\n\n constructor(message: string, options: ErrorOptions = {}) {\n super(message, options);\n }\n\n static fromError(error: unknown, message?: string): SigningError {\n const msg =\n message ?? (error instanceof Error ? error.message : 'Signing failed');\n return new SigningError(msg, { cause: error });\n }\n}\n\nexport function makeErrorGuard<\n // biome-ignore lint/suspicious/noExplicitAny: constructor rest args require any[]\n TClasses extends ReadonlyArray<new (...args: any[]) => unknown>,\n>(\n ...classes: TClasses\n): { isError(error: unknown): error is InstanceType<TClasses[number]> } {\n return {\n isError(error: unknown): error is InstanceType<TClasses[number]> {\n return classes.some((c) => error instanceof c);\n },\n };\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { ethers } from 'ethers-v5';
2
- import { T as TypedDataPayload, a as TypedData, S as Signer } from './types-BqK8Y3G5.js';
2
+ import { T as TypedDataPayload, a as TypedData, S as Signer } from './types-B9F4CyS-.js';
3
3
  import '@polymarket/bindings';
4
4
  import '@polymarket/types';
5
5
  import '@polymarket/bindings/gamma';
@@ -7,8 +7,8 @@ import '@polymarket/bindings/relayer';
7
7
  import 'zod';
8
8
  import '@polymarket/bindings/clob';
9
9
  import '@polymarket/bindings/data';
10
- import '@polymarket/bindings/combos';
11
10
  import '@polymarket/bindings/perps';
11
+ import '@polymarket/bindings/combos';
12
12
  import '@polymarket/bindings/subscriptions';
13
13
  import 'ox';
14
14
 
package/dist/ethers-v5.js CHANGED
@@ -1,2 +1,2 @@
1
- import {n,k,c as c$1,j}from'./chunk-DLZLJOGO.js';import {expectEvmAddress,expectEvmSignature,expectTxHash}from'@polymarket/types';import {ethers}from'ethers-v5';function A(n){return {getAddress(){return m(n)},signTypedData(r){return w(n,r)},signMessage(r){return T(n,r)},async sendTransaction(r){return new i(await f(n,r))}}}async function m(n$1){try{return expectEvmAddress(await n$1.getAddress())}catch(r){throw n.fromError(r,"Could not resolve signer address")}}async function f(n,r){try{return await n.sendTransaction({chainId:r.chainId,data:r.data,to:r.to,value:r.value?.toString()})}catch(t){c(t);}}async function w(n,r){try{return expectEvmSignature(await n._signTypedData(r.domain,S(r.types),r.message))}catch(t){c(t);}}async function T(n,r){try{return expectEvmSignature(await n.signMessage(ethers.utils.arrayify(r)))}catch(t){c(t);}}function S(n){let r=Object.entries(n).filter(([t])=>t!=="EIP712Domain");return Object.fromEntries(r.map(([t,p])=>[t,p.map(y=>({...y}))]))}function c(n$1){throw s(n$1)?new k("User rejected the signing request",{cause:n$1}):n.fromError(n$1)}function s(n,r=new Set){if(r.has(n)||n===null||typeof n!="object")return false;r.add(n);let t=n;return t.code===4001||t.code==="ACTION_REJECTED"||s(t.error,r)||s(t.cause,r)}function v(n){return g(n,"CALL_EXCEPTION")}function D(n){return g(n,"TRANSACTION_REPLACED")}function g(n,r){return n instanceof Error&&"code"in n&&n.code===r}var i=class{transactionId=null;#r;#n;constructor(r){this.#n=r,this.#r=expectTxHash(r.hash);}get transactionHash(){return this.#r}async wait(){try{let r=await this.#n.wait(),t=expectTxHash(r.transactionHash);return this.#r=t,{transactionHash:t,transactionId:null}}catch(r){if(D(r)){if(r.cancelled)throw c$1.fromError(r);let t=expectTxHash(r.receipt.transactionHash);return this.#r=t,{transactionHash:t,transactionId:null}}throw v(r)?new j(`Transaction ${this.#r} reverted`,{cause:r}):c$1.fromError(r)}}};export{A as signerFrom};//# sourceMappingURL=ethers-v5.js.map
1
+ import {q,m as m$1,d,l}from'./chunk-VLNLVY4C.js';import {expectEvmAddress,expectEvmSignature,expectTxHash}from'@polymarket/types';import {ethers}from'ethers-v5';function A(n){return {getAddress(){return m(n)},signTypedData(r){return w(n,r)},signMessage(r){return T(n,r)},async sendTransaction(r){return new i(await f(n,r))}}}async function m(n){try{return expectEvmAddress(await n.getAddress())}catch(r){throw q.fromError(r,"Could not resolve signer address")}}async function f(n,r){try{return await n.sendTransaction({chainId:r.chainId,data:r.data,to:r.to,value:r.value?.toString()})}catch(t){c(t);}}async function w(n,r){try{return expectEvmSignature(await n._signTypedData(r.domain,S(r.types),r.message))}catch(t){c(t);}}async function T(n,r){try{return expectEvmSignature(await n.signMessage(ethers.utils.arrayify(r)))}catch(t){c(t);}}function S(n){let r=Object.entries(n).filter(([t])=>t!=="EIP712Domain");return Object.fromEntries(r.map(([t,p])=>[t,p.map(y=>({...y}))]))}function c(n){throw s(n)?new m$1("User rejected the signing request",{cause:n}):q.fromError(n)}function s(n,r=new Set){if(r.has(n)||n===null||typeof n!="object")return false;r.add(n);let t=n;return t.code===4001||t.code==="ACTION_REJECTED"||s(t.error,r)||s(t.cause,r)}function v(n){return g(n,"CALL_EXCEPTION")}function D(n){return g(n,"TRANSACTION_REPLACED")}function g(n,r){return n instanceof Error&&"code"in n&&n.code===r}var i=class{transactionId=null;#r;#n;constructor(r){this.#n=r,this.#r=expectTxHash(r.hash);}get transactionHash(){return this.#r}async wait(){try{let r=await this.#n.wait(),t=expectTxHash(r.transactionHash);return this.#r=t,{transactionHash:t,transactionId:null}}catch(r){if(D(r)){if(r.cancelled)throw d.fromError(r);let t=expectTxHash(r.receipt.transactionHash);return this.#r=t,{transactionHash:t,transactionId:null}}throw v(r)?new l(`Transaction ${this.#r} reverted`,{cause:r}):d.fromError(r)}}};export{A as signerFrom};//# sourceMappingURL=ethers-v5.js.map
2
2
  //# sourceMappingURL=ethers-v5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ethers-v5.ts"],"names":["signerFrom","signer","getAddress","payload","signTypedData","message","signMessage","request","DirectTransactionHandle","sendTransaction","expectEvmAddress","error","SigningError","throwSigningWorkflowError","expectEvmSignature","removeEip712Domain","ethers","types","entries","name","fields","field","isUserRejectedError","CancelledSigningError","seen","candidate","isCallExceptionError","hasErrorCode","isTransactionReplacedError","code","#transactionHash","#transaction","transaction","expectTxHash","receipt","transactionHash","TransportError","TransactionFailedError"],"mappings":"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","file":"ethers-v5.js","sourcesContent":["import {\n expectEvmAddress,\n expectEvmSignature,\n expectTxHash,\n type HexString,\n type TxHash,\n} from '@polymarket/types';\nimport { ethers } from 'ethers-v5';\nimport {\n CancelledSigningError,\n SigningError,\n TransactionFailedError,\n TransportError,\n} from './errors';\nimport type {\n Signer,\n TransactionHandle,\n TypedData,\n TypedDataPayload,\n} from './types';\n\ntype EthersV5Signer = ethers.Signer & {\n _signTypedData(\n domain: TypedDataPayload['domain'],\n types: ReturnType<typeof removeEip712Domain>,\n value: TypedDataPayload['message'],\n ): Promise<string>;\n};\n\nexport function signerFrom(signer: EthersV5Signer): Signer {\n return {\n getAddress() {\n return getAddress(signer);\n },\n signTypedData(payload) {\n return signTypedData(signer, payload);\n },\n signMessage(message) {\n return signMessage(signer, message);\n },\n async sendTransaction(request) {\n return new DirectTransactionHandle(\n await sendTransaction(signer, request),\n );\n },\n };\n}\n\nasync function getAddress(signer: EthersV5Signer) {\n try {\n return expectEvmAddress(await signer.getAddress());\n } catch (error) {\n throw SigningError.fromError(error, 'Could not resolve signer address');\n }\n}\n\nasync function sendTransaction(\n signer: EthersV5Signer,\n request: { chainId: number; data?: HexString; to: string; value?: bigint },\n): Promise<ethers.providers.TransactionResponse> {\n try {\n return await signer.sendTransaction({\n chainId: request.chainId,\n data: request.data,\n to: request.to,\n value: request.value?.toString(),\n });\n } catch (error) {\n throwSigningWorkflowError(error);\n }\n}\n\nasync function signTypedData(\n signer: EthersV5Signer,\n payload: TypedDataPayload,\n) {\n try {\n return expectEvmSignature(\n await signer._signTypedData(\n payload.domain,\n removeEip712Domain(payload.types),\n payload.message,\n ),\n );\n } catch (error) {\n throwSigningWorkflowError(error);\n }\n}\n\nasync function signMessage(signer: EthersV5Signer, message: HexString) {\n try {\n return expectEvmSignature(\n await signer.signMessage(ethers.utils.arrayify(message)),\n );\n } catch (error) {\n throwSigningWorkflowError(error);\n }\n}\n\nfunction removeEip712Domain(\n types: TypedData,\n): Record<string, Array<{ name: string; type: string }>> {\n const entries = Object.entries(types).filter(\n ([name]) => name !== 'EIP712Domain',\n );\n\n return Object.fromEntries(\n entries.map(([name, fields]) => [\n name,\n fields.map((field) => ({ ...field })),\n ]),\n );\n}\n\nfunction throwSigningWorkflowError(error: unknown): never {\n if (isUserRejectedError(error)) {\n throw new CancelledSigningError('User rejected the signing request', {\n cause: error,\n });\n }\n\n throw SigningError.fromError(error);\n}\n\nfunction isUserRejectedError(\n error: unknown,\n seen = new Set<unknown>(),\n): boolean {\n if (seen.has(error) || error === null || typeof error !== 'object') {\n return false;\n }\n\n seen.add(error);\n\n const candidate = error as {\n cause?: unknown;\n code?: unknown;\n error?: unknown;\n };\n\n return (\n // ethers v5 normalizes user-rejected wallet actions to ACTION_REJECTED,\n // but some provider-shaped errors can still surface the raw EIP-1193 4001.\n candidate.code === 4001 ||\n candidate.code === 'ACTION_REJECTED' ||\n isUserRejectedError(candidate.error, seen) ||\n isUserRejectedError(candidate.cause, seen)\n );\n}\n\nfunction isCallExceptionError(error: unknown): error is Error {\n return hasErrorCode(error, 'CALL_EXCEPTION');\n}\n\nfunction isTransactionReplacedError(error: unknown): error is Error & {\n cancelled: boolean;\n receipt: { transactionHash: string };\n} {\n return hasErrorCode(error, 'TRANSACTION_REPLACED');\n}\n\nfunction hasErrorCode(error: unknown, code: string): error is Error {\n return (\n error instanceof Error &&\n 'code' in error &&\n (error as { code?: unknown }).code === code\n );\n}\n\nclass DirectTransactionHandle implements TransactionHandle {\n readonly transactionId = null;\n #transactionHash: TxHash;\n readonly #transaction: ethers.providers.TransactionResponse;\n\n constructor(transaction: ethers.providers.TransactionResponse) {\n this.#transaction = transaction;\n this.#transactionHash = expectTxHash(transaction.hash);\n }\n\n get transactionHash() {\n return this.#transactionHash;\n }\n\n async wait() {\n try {\n const receipt = await this.#transaction.wait();\n\n const transactionHash = expectTxHash(receipt.transactionHash);\n this.#transactionHash = transactionHash;\n\n return {\n transactionHash,\n transactionId: null,\n };\n } catch (error) {\n if (isTransactionReplacedError(error)) {\n if (error.cancelled) {\n throw TransportError.fromError(error);\n }\n\n const transactionHash = expectTxHash(error.receipt.transactionHash);\n this.#transactionHash = transactionHash;\n\n return {\n transactionHash,\n transactionId: null,\n };\n }\n\n if (isCallExceptionError(error)) {\n throw new TransactionFailedError(\n `Transaction ${this.#transactionHash} reverted`,\n { cause: error },\n );\n }\n\n throw TransportError.fromError(error);\n }\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/ethers-v5.ts"],"names":["signerFrom","signer","getAddress","payload","signTypedData","message","signMessage","request","DirectTransactionHandle","sendTransaction","expectEvmAddress","error","SigningError","throwSigningWorkflowError","expectEvmSignature","removeEip712Domain","ethers","types","entries","name","fields","field","isUserRejectedError","CancelledSigningError","seen","candidate","isCallExceptionError","hasErrorCode","isTransactionReplacedError","code","#transactionHash","#transaction","transaction","expectTxHash","receipt","transactionHash","TransportError","TransactionFailedError"],"mappings":"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","file":"ethers-v5.js","sourcesContent":["import {\n expectEvmAddress,\n expectEvmSignature,\n expectTxHash,\n type HexString,\n type TxHash,\n} from '@polymarket/types';\nimport { ethers } from 'ethers-v5';\nimport {\n CancelledSigningError,\n SigningError,\n TransactionFailedError,\n TransportError,\n} from './errors';\nimport type {\n Signer,\n TransactionHandle,\n TypedData,\n TypedDataPayload,\n} from './types';\n\ntype EthersV5Signer = ethers.Signer & {\n _signTypedData(\n domain: TypedDataPayload['domain'],\n types: ReturnType<typeof removeEip712Domain>,\n value: TypedDataPayload['message'],\n ): Promise<string>;\n};\n\nexport function signerFrom(signer: EthersV5Signer): Signer {\n return {\n getAddress() {\n return getAddress(signer);\n },\n signTypedData(payload) {\n return signTypedData(signer, payload);\n },\n signMessage(message) {\n return signMessage(signer, message);\n },\n async sendTransaction(request) {\n return new DirectTransactionHandle(\n await sendTransaction(signer, request),\n );\n },\n };\n}\n\nasync function getAddress(signer: EthersV5Signer) {\n try {\n return expectEvmAddress(await signer.getAddress());\n } catch (error) {\n throw SigningError.fromError(error, 'Could not resolve signer address');\n }\n}\n\nasync function sendTransaction(\n signer: EthersV5Signer,\n request: { chainId: number; data?: HexString; to: string; value?: bigint },\n): Promise<ethers.providers.TransactionResponse> {\n try {\n return await signer.sendTransaction({\n chainId: request.chainId,\n data: request.data,\n to: request.to,\n value: request.value?.toString(),\n });\n } catch (error) {\n throwSigningWorkflowError(error);\n }\n}\n\nasync function signTypedData(\n signer: EthersV5Signer,\n payload: TypedDataPayload,\n) {\n try {\n return expectEvmSignature(\n await signer._signTypedData(\n payload.domain,\n removeEip712Domain(payload.types),\n payload.message,\n ),\n );\n } catch (error) {\n throwSigningWorkflowError(error);\n }\n}\n\nasync function signMessage(signer: EthersV5Signer, message: HexString) {\n try {\n return expectEvmSignature(\n await signer.signMessage(ethers.utils.arrayify(message)),\n );\n } catch (error) {\n throwSigningWorkflowError(error);\n }\n}\n\nfunction removeEip712Domain(\n types: TypedData,\n): Record<string, Array<{ name: string; type: string }>> {\n const entries = Object.entries(types).filter(\n ([name]) => name !== 'EIP712Domain',\n );\n\n return Object.fromEntries(\n entries.map(([name, fields]) => [\n name,\n fields.map((field) => ({ ...field })),\n ]),\n );\n}\n\nfunction throwSigningWorkflowError(error: unknown): never {\n if (isUserRejectedError(error)) {\n throw new CancelledSigningError('User rejected the signing request', {\n cause: error,\n });\n }\n\n throw SigningError.fromError(error);\n}\n\nfunction isUserRejectedError(\n error: unknown,\n seen = new Set<unknown>(),\n): boolean {\n if (seen.has(error) || error === null || typeof error !== 'object') {\n return false;\n }\n\n seen.add(error);\n\n const candidate = error as {\n cause?: unknown;\n code?: unknown;\n error?: unknown;\n };\n\n return (\n // ethers v5 normalizes user-rejected wallet actions to ACTION_REJECTED,\n // but some provider-shaped errors can still surface the raw EIP-1193 4001.\n candidate.code === 4001 ||\n candidate.code === 'ACTION_REJECTED' ||\n isUserRejectedError(candidate.error, seen) ||\n isUserRejectedError(candidate.cause, seen)\n );\n}\n\nfunction isCallExceptionError(error: unknown): error is Error {\n return hasErrorCode(error, 'CALL_EXCEPTION');\n}\n\nfunction isTransactionReplacedError(error: unknown): error is Error & {\n cancelled: boolean;\n receipt: { transactionHash: string };\n} {\n return hasErrorCode(error, 'TRANSACTION_REPLACED');\n}\n\nfunction hasErrorCode(error: unknown, code: string): error is Error {\n return (\n error instanceof Error &&\n 'code' in error &&\n (error as { code?: unknown }).code === code\n );\n}\n\nclass DirectTransactionHandle implements TransactionHandle {\n readonly transactionId = null;\n #transactionHash: TxHash;\n readonly #transaction: ethers.providers.TransactionResponse;\n\n constructor(transaction: ethers.providers.TransactionResponse) {\n this.#transaction = transaction;\n this.#transactionHash = expectTxHash(transaction.hash);\n }\n\n get transactionHash() {\n return this.#transactionHash;\n }\n\n async wait() {\n try {\n const receipt = await this.#transaction.wait();\n\n const transactionHash = expectTxHash(receipt.transactionHash);\n this.#transactionHash = transactionHash;\n\n return {\n transactionHash,\n transactionId: null,\n };\n } catch (error) {\n if (isTransactionReplacedError(error)) {\n if (error.cancelled) {\n throw TransportError.fromError(error);\n }\n\n const transactionHash = expectTxHash(error.receipt.transactionHash);\n this.#transactionHash = transactionHash;\n\n return {\n transactionHash,\n transactionId: null,\n };\n }\n\n if (isCallExceptionError(error)) {\n throw new TransactionFailedError(\n `Transaction ${this.#transactionHash} reverted`,\n { cause: error },\n );\n }\n\n throw TransportError.fromError(error);\n }\n }\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,21 +1,21 @@
1
1
  import { ConditionId, ComboConditionId } from '@polymarket/bindings';
2
2
  export * from '@polymarket/bindings';
3
- export { OrderSide, OrderType, SessionSignerKnownScope as SessionKeyKnownScope, SessionSignerScope as SessionKeyScope } from '@polymarket/bindings';
3
+ export { CommentParentEntityType, OrderSide, OrderType, SessionSignerKnownScope as SessionKeyKnownScope, SessionSignerScope as SessionKeyScope } from '@polymarket/bindings';
4
4
  export * from '@polymarket/bindings/clob';
5
- export { NotificationType, OrderResponseErrorCode, SignatureType } from '@polymarket/bindings/clob';
5
+ export { AssetType, NotificationType, OrderPostStatus, OrderResponseErrorCode, SignatureType } from '@polymarket/bindings/clob';
6
6
  export * from '@polymarket/bindings/data';
7
7
  export { ActivityType, BiggestWinnerKind, BuilderVolumeInterval, ComboActivityType, ComboPositionSortBy, ComboPositionStatus, LeaderboardWindow, PositionFilterType, PositionSortBy, PositionStatus, PriceHistoryInterval, ResolutionMarketType, ResolutionReporter, ResolutionSource, ResolutionStatus, SortDirection, TipSide, TradeFilterType, TraderLeaderboardSort, UserPnlFidelity, UserPnlInterval } from '@polymarket/bindings/data';
8
8
  export * from '@polymarket/bindings/gamma';
9
9
  export { ComboKnownStatus, ProtocolVersion, TeamOrdering, WalletType } from '@polymarket/bindings/gamma';
10
10
  export * from '@polymarket/bindings/perps';
11
- export { PerpsAutoCancelStatus, PerpsCancelOrderResult, PerpsDepositStatus, PerpsInstrumentCategory, PerpsInstrumentType, PerpsInternalTransferDirection, PerpsKlineInterval, PerpsKnownWithdrawalStatus, PerpsMarginType, PerpsNotificationOrderType, PerpsNotificationType, PerpsOrderStatus, PerpsPostOrderAck, PerpsSide, PerpsSortDirection, PerpsTimeInForce, PerpsUpdateLeverageResult } from '@polymarket/bindings/perps';
11
+ export { PerpsAutoCancelStatus, PerpsCancelOrderResult, PerpsDepositStatus, PerpsInstrumentCategory, PerpsInstrumentType, PerpsInternalTransferDirection, PerpsKlineInterval, PerpsKnownCancelOrderErrorCode, PerpsKnownInternalTransferType, PerpsKnownWithdrawalStatus, PerpsLiquidityRole, PerpsMarginType, PerpsNotificationOrderType, PerpsNotificationType, PerpsOrderStatus, PerpsPostOrderAck, PerpsSide, PerpsSortDirection, PerpsTimeInForce, PerpsUpdateLeverageResult } from '@polymarket/bindings/perps';
12
12
  export * from '@polymarket/bindings/relayer';
13
13
  import { Tagged, EvmAddress } from '@polymarket/types';
14
- import { U as UserInputError, b as TransactionCall, A as ApiKeyAuthorization } from './types-BqK8Y3G5.js';
15
- export { c as AcceptComboQuoteError, d as AcceptComboQuoteParams, e as AcceptComboQuoteResult, f as AccountIdentity, g as AnalyticsActions, h as ApproveErc1155ForAllError, i as ApproveErc20Error, j as ArmPerpsAutoCancelError, k as ArmPerpsAutoCancelRequest, l as AuthorizeSessionKeyError, m as AuthorizeSessionKeyRequest, n as AuthorizeSessionKeyResult, o as AutoCancelDailyLimitError, B as BaseClient, p as BasePublicClient, q as BaseSecureClient, r as BeginAuthenticationRequest, C as CancelAllError, s as CancelAllPerpsOrdersRequest, t as CancelMarketOrdersError, u as CancelOrderError, v as CancelOrdersError, w as CancelPerpsOrderRequest, x as CancelPerpsOrdersRequest, y as CancelledSigningError, z as Client, D as ClientActions, E as ClientDecorator, F as ClobEndpoints, G as ComboPositionStatusFilter, H as ComboQuote, I as CombosEndpoints, J as ConnectionLostError, K as ConnectionLostErrorOptions, L as CreatePerpsSessionRequest, M as CreateSecureClientError, N as CryptoPricesChainlinkTwapSubscription, O as DataActions, P as DepositToPerpsError, Q as DepositToPerpsRequest, R as DisarmPerpsAutoCancelRequest, V as DiscoveryActions, W as DownloadAccountingSnapshotError, X as DropNotificationsError, Y as EnvironmentConfig, Z as EnvironmentConfigFork, _ as EnvironmentContracts, $ as Erc1155TradingApproval, a0 as Erc20TradingApproval, a1 as EstimateMarketPriceError, a2 as ExecuteCollateralReturnPlanError, a3 as ExecuteCollateralReturnPlanRequest, a4 as FetchBuilderVolumeError, a5 as FetchClosedOnlyModeError, a6 as FetchCommentsByIdError, a7 as FetchEventError, a8 as FetchEventLiveVolumeError, a9 as FetchEventTagsError, aa as FetchLastTradePriceError, ab as FetchLastTradePricesError, ac as FetchMarketError, ad as FetchMarketTagsError, ae as FetchMidpointError, af as FetchMidpointsError, ag as FetchNotificationsError, ah as FetchOpenInterestError, ai as FetchOrderBookError, aj as FetchOrderBooksError, ak as FetchOrderError, al as FetchOrderScoringError, am as FetchOrdersScoringError, an as FetchPerpsAccountConfigRequest, ao as FetchPerpsBookError, ap as FetchPerpsBookRequest, aq as FetchPerpsFeesError, ar as FetchPerpsInstrumentsError, as as FetchPerpsInstrumentsRequest, at as FetchPerpsOpenOrdersRequest, au as FetchPerpsOrdersRequest, av as FetchPerpsTickerError, aw as FetchPerpsTickerRequest, ax as FetchPerpsTickersError, ay as FetchPerpsTickersRequest, az as FetchPortfolioValueError, aA as FetchPriceError, aB as FetchPricesError, aC as FetchPublicProfileError, aD as FetchRelatedTagResourcesError, aE as FetchRelatedTagsError, aF as FetchResolutionsError, aG as FetchRewardPercentagesError, aH as FetchRfqStatusError, aI as FetchRfqStatusParams, aJ as FetchSeriesError, aK as FetchSessionKeysError, aL as FetchSpreadError, aM as FetchSpreadsError, aN as FetchTagError, aO as FetchTotalEarningsForUserForDayError, aP as FetchTraderLeaderboardStandingError, aQ as FetchTradingApprovalsStateError, aR as FetchTradingApprovalsStateRequest, aS as FetchUserPnlError, aT as FetchUserStatsError, aU as FetchUserVolumeError, aV as InsufficientLiquidityError, aW as ListAccountTradesError, aX as ListActivityError, aY as ListBiggestWinnersError, aZ as ListBuilderLeaderboardError, a_ as ListBuilderTradesError, a$ as ListComboActivityError, b0 as ListComboMarketsError, b1 as ListComboPositionsError, b2 as ListCommentsByUserAddressError, b3 as ListCommentsError, b4 as ListCurrentRewardsError, b5 as ListEventsError, b6 as ListMarketHoldersError, b7 as ListMarketRewardsError, b8 as ListMarketsError, b9 as ListOpenOrdersError, ba as ListPerpsCandlesError, bb as ListPerpsCandlesRequest, bc as ListPerpsDepositsRequest, bd as ListPerpsEquityHistoryRequest, be as ListPerpsFillsRequest, bf as ListPerpsFundingHistoryError, bg as ListPerpsFundingHistoryRequest, bh as ListPerpsFundingPaymentsRequest, bi as ListPerpsNotificationsRequest, bj as ListPerpsPnlHistoryRequest, bk as ListPerpsTradesError, bl as ListPerpsTradesRequest, bm as ListPerpsWithdrawalsRequest, bn as ListPositionsError, bo as ListPriceHistoryError, bp as ListSeriesError, bq as ListTagsError, br as ListTeamsError, bs as ListTraderLeaderboardError, bt as ListTradesError, bu as ListUserEarningsAndMarketsConfigError, bv as ListUserEarningsForDayError, bw as MarkPerpsNotificationsReadRequest, bx as MergePositionsError, by as OpenPerpsSessionError, bz as OpenPerpsSessionRequest, bA as OpenRfqSessionError, bB as OrderSignature, bC as Page, bD as PageSizeSchema, bE as Paginated, bF as PerpsActions, bG as PerpsBookDepth, bH as PerpsEndpoints, bI as PerpsOrderRequest, bJ as PerpsPlaceFokOrderRequest, bK as PerpsPlaceGtcOrderRequest, bL as PerpsPlaceIocOrderRequest, bM as PerpsPlacedTpSlOrder, bN as PerpsPlacedTpSlOrders, bO as PerpsPositionTpSlTrigger, bP as PerpsSession, bQ as PerpsSessionAccountError, bR as PerpsSessionLifecycleError, bS as PerpsSessionTradingError, bT as PerpsTpSlTrigger, bU as PlacePerpsOrderRequest, bV as PlacePerpsOrderResult, bW as PlacePerpsOrderWithTpSlRequest, bX as PlacePerpsOrderWithTpSlResult, bY as PlacePerpsPositionTpSlRequest, bZ as PlacePerpsPositionTpSlResult, b_ as PlanCollateralReturnError, b$ as PostOrderError, c0 as PostOrdersError, c1 as PostPerpsOrdersRequest, c2 as PublicAccountActions, c3 as PublicActions, c4 as PublicClient, c5 as PublicClientOptions, c6 as PublicPerpsActions, c7 as PublicRewardsActions, c8 as PublicSubscriptionsActions, c9 as PublicWalletActions, ca as RateLimitBucket, cb as RateLimitError, cc as RateLimitErrorOptions, cd as RateLimitUpdate, ce as RateLimitUpdateListener, cf as RedeemPositionsError, cg as RequestComboQuoteError, ch as RequestComboQuoteParams, ci as RequestComboQuoteResult, cj as RequestRejectedError, ck as RequestRejectedErrorOptions, cl as RestEndpoint, cm as ResumePerpsSessionRequest, cn as RevokePerpsCredentialsError, co as RevokePerpsCredentialsRequest, cp as RevokeSessionKeyError, cq as RevokeSessionKeyRequest, cr as RfqCancelQuoteAck, cs as RfqCancelQuoteError, ct as RfqCancelQuoteRejectedError, cu as RfqCancelQuoteRejectedErrorOptions, cv as RfqConfirmationAck, cw as RfqConfirmationError, cx as RfqConfirmationRejectedError, cy as RfqConfirmationRequestEvent, cz as RfqEvent, cA as RfqQuoteError, cB as RfqQuoteReference, cC as RfqQuoteRejectedError, cD as RfqQuoteRejectedErrorOptions, cE as RfqQuoteRequestEvent, cF as RfqQuoteResponse, cG as RfqQuoteSource, cH as RfqRequestRejectedError, cI as RfqRequestRejectedErrorOptions, cJ as RfqSession, cK as RfqStatusResult, cL as RfqTradeEvent, cM as SearchError, cN as SearchSort, cO as SecureAccountActions, cP as SecureActions, cQ as SecureClient, cR as SecureClientOptions, cS as SecureDownloadAccountingSnapshotRequest, cT as SecureFetchPortfolioValueRequest, cU as SecureFetchTraderLeaderboardStandingRequest, cV as SecureFetchUserPnlRequest, cW as SecureFetchUserStatsRequest, cX as SecureFetchUserVolumeRequest, cY as SecureListActivityRequest, cZ as SecureListComboActivityRequest, c_ as SecureListComboPositionsRequest, c$ as SecureListPositionsRequest, d0 as SecurePerpsActions, d1 as SecureRewardsActions, d2 as SecureRfqActions, d3 as SecureSubscriptionsActions, d4 as SecureTradingActions, d5 as SecureWalletActions, d6 as SessionKey, d7 as SessionKeyActions, d8 as SetupGaslessWalletError, d9 as SetupTradingApprovalsError, da as SignedOrder, S as Signer, db as SignerTransactionRequest, dc as SignerType, dd as SigningError, de as SplitPositionError, df as SubscribeError, dg as TimeoutError, dh as TradingApprovalRequirements, di as TradingApprovalsState, dj as TradingRestriction, dk as TransactionFailedError, dl as TransactionHandle, dm as TransactionOutcome, dn as TransferErc20Error, dp as TransportError, a as TypedData, dq as TypedDataDomain, dr as TypedDataField, T as TypedDataPayload, ds as UnexpectedResponseError, dt as UpdatePerpsLeverageError, du as UpdatePerpsLeverageRequest, dv as UpdatePerpsMarginError, dw as UpdatePerpsMarginRequest, dx as WaitForComboFillError, dy as WaitForComboFillParams, dz as WaitForComboFillResult, dA as WaitForOrderFillSettlementError, dB as WaitForTransactionError, dC as WalletDerivationConfig, dD as WebSocketCloseCode, dE as WebSocketEndpoint, dF as WebSocketKnownCloseCode, dG as WithdrawFromPerpsError, dH as WithdrawFromPerpsRequest, dI as accountActions, dJ as allActions, dK as analyticsActions, dL as createPublicClient, dM as createSecureClient, dN as dataActions, dO as discoveryActions, dP as forkEnvironmentConfig, dQ as makeErrorGuard, dR as perpsActions, dS as production, dT as rewardsActions, dU as rfqActions, dV as sessionKeyActions, dW as subscriptionsActions, dX as tradingActions, dY as walletActions } from './types-BqK8Y3G5.js';
16
- export { C as CreateLimitOrderError, a as CreateMarketOrderError, F as FetchSportsMarketTypesError, L as ListSportsError, P as PlaceLimitOrderError, b as PlaceMarketOrderError } from './sports-D5M6XUZP.js';
14
+ import { U as UserInputError, b as TransactionCall, A as ApiKeyAuthorization } from './types-B9F4CyS-.js';
15
+ export { c as AcceptComboQuoteError, d as AcceptComboQuoteParams, e as AcceptComboQuoteResult, f as AccountIdentity, g as AnalyticsActions, h as ApproveErc1155ForAllError, i as ApproveErc20Error, j as ApprovePerpsBuilderFeeError, k as ApprovePerpsBuilderFeeRequest, l as ArmPerpsAutoCancelError, m as ArmPerpsAutoCancelRequest, n as AuthorizeSessionKeyError, o as AuthorizeSessionKeyRequest, p as AuthorizeSessionKeyResult, q as AutoCancelDailyLimitError, B as BaseClient, r as BasePublicClient, s as BaseSecureClient, t as BeginAuthenticationRequest, C as CancelAllError, u as CancelAllPerpsOrdersRequest, v as CancelMarketOrdersError, w as CancelOrderError, x as CancelOrdersError, y as CancelPerpsOrderRequest, z as CancelPerpsOrdersRequest, D as CancelledSigningError, E as Client, F as ClientActions, G as ClientDecorator, H as ClobEndpoints, I as ComboPositionStatusFilter, J as ComboQuote, K as CombosEndpoints, L as CommentsSubscription, M as ConnectionLostError, N as ConnectionLostErrorOptions, O as CreatePerpsSessionRequest, P as CreateSecureClientError, Q as CryptoPriceSubscription, R as CryptoPricesChainlinkTwapSubscription, V as CryptoPricesSubscription, W as CryptoTwapPriceSubscription, X as DataActions, Y as DepositToPerpsError, Z as DepositToPerpsRequest, _ as DisarmPerpsAutoCancelRequest, $ as DiscoveryActions, a0 as DownloadAccountingSnapshotError, a1 as DropNotificationsError, a2 as EnvironmentConfig, a3 as EnvironmentConfigFork, a4 as EnvironmentContracts, a5 as EquityPriceSubscription, a6 as EquityPricesSubscription, a7 as Erc1155TradingApproval, a8 as Erc20TradingApproval, a9 as EstimateMarketPriceError, aa as ExecuteCollateralReturnPlanError, ab as ExecuteCollateralReturnPlanRequest, ac as FetchBuilderVolumeError, ad as FetchClosedOnlyModeError, ae as FetchCommentsByIdError, af as FetchEventError, ag as FetchEventLiveVolumeError, ah as FetchEventTagsError, ai as FetchLastTradePriceError, aj as FetchLastTradePricesError, ak as FetchMarketError, al as FetchMarketTagsError, am as FetchMidpointError, an as FetchMidpointsError, ao as FetchNotificationsError, ap as FetchOpenInterestError, aq as FetchOrderBookError, ar as FetchOrderBooksError, as as FetchOrderError, at as FetchOrderScoringError, au as FetchOrdersScoringError, av as FetchPerpsAccountConfigRequest, aw as FetchPerpsBookError, ax as FetchPerpsBookRequest, ay as FetchPerpsBuilderApprovalsError, az as FetchPerpsBuilderApprovalsRequest, aA as FetchPerpsBuilderEarningsSummaryError, aB as FetchPerpsBuilderEarningsSummaryRequest, aC as FetchPerpsBuilderStatusError, aD as FetchPerpsBuilderStatusRequest, aE as FetchPerpsFeesError, aF as FetchPerpsInstrumentsError, aG as FetchPerpsInstrumentsRequest, aH as FetchPerpsOpenOrdersRequest, aI as FetchPerpsOrdersRequest, aJ as FetchPerpsTickerError, aK as FetchPerpsTickerRequest, aL as FetchPerpsTickersError, aM as FetchPerpsTickersRequest, aN as FetchPortfolioValueError, aO as FetchPriceError, aP as FetchPricesError, aQ as FetchPublicProfileError, aR as FetchRelatedTagResourcesError, aS as FetchRelatedTagsError, aT as FetchResolutionsError, aU as FetchRewardPercentagesError, aV as FetchRfqStatusError, aW as FetchRfqStatusParams, aX as FetchSeriesError, aY as FetchSessionKeysError, aZ as FetchSpreadError, a_ as FetchSpreadsError, a$ as FetchTagError, b0 as FetchTotalEarningsForUserForDayError, b1 as FetchTraderLeaderboardStandingError, b2 as FetchTradingApprovalsStateError, b3 as FetchTradingApprovalsStateRequest, b4 as FetchUserPnlError, b5 as FetchUserStatsError, b6 as FetchUserVolumeError, b7 as InsufficientLiquidityError, b8 as ListAccountTradesError, b9 as ListActivityError, ba as ListBiggestWinnersError, bb as ListBuilderLeaderboardError, bc as ListBuilderTradesError, bd as ListComboActivityError, be as ListComboMarketsError, bf as ListComboPositionsError, bg as ListCommentsByUserAddressError, bh as ListCommentsError, bi as ListCurrentRewardsError, bj as ListEventsError, bk as ListMarketHoldersError, bl as ListMarketRewardsError, bm as ListMarketsError, bn as ListOpenOrdersError, bo as ListPerpsBuilderEarningsError, bp as ListPerpsBuilderEarningsRequest, bq as ListPerpsCandlesError, br as ListPerpsCandlesRequest, bs as ListPerpsDepositsRequest, bt as ListPerpsEquityHistoryRequest, bu as ListPerpsFillsRequest, bv as ListPerpsFundingHistoryError, bw as ListPerpsFundingHistoryRequest, bx as ListPerpsFundingPaymentsRequest, by as ListPerpsInternalTransfersRequest, bz as ListPerpsNotificationsRequest, bA as ListPerpsPnlHistoryRequest, bB as ListPerpsTradesError, bC as ListPerpsTradesRequest, bD as ListPerpsWithdrawalsRequest, bE as ListPositionsError, bF as ListPriceHistoryError, bG as ListSeriesError, bH as ListTagsError, bI as ListTeamsError, bJ as ListTraderLeaderboardError, bK as ListTradesError, bL as ListUserEarningsAndMarketsConfigError, bM as ListUserEarningsForDayError, bN as MarkPerpsNotificationsReadRequest, bO as MergePositionsError, bP as OpenPerpsSessionError, bQ as OpenPerpsSessionRequest, bR as OpenRfqSessionError, bS as OperationAbortedError, bT as OrderSignature, bU as Page, bV as PageSizeSchema, bW as Paginated, bX as PaginationLimitError, bY as PerpsActions, bZ as PerpsBookDepth, b_ as PerpsBuilderTermsInput, b$ as PerpsCancelOptions, c0 as PerpsCancelRetryError, c1 as PerpsCancelRetryErrorOptions, c2 as PerpsCancelRetryOptions, c3 as PerpsEndpoints, c4 as PerpsOrderRequest, c5 as PerpsPlaceFokOrderRequest, c6 as PerpsPlaceGtcOrderRequest, c7 as PerpsPlaceIocOrderRequest, c8 as PerpsPlacedTpSlOrder, c9 as PerpsPlacedTpSlOrders, ca as PerpsPositionTpSlTrigger, cb as PerpsSession, cc as PerpsSessionAccountError, cd as PerpsSessionLifecycleError, ce as PerpsSessionTradingError, cf as PerpsTpSlTrigger, cg as PlacePerpsOrderRequest, ch as PlacePerpsOrderResult, ci as PlacePerpsOrderWithTpSlRequest, cj as PlacePerpsOrderWithTpSlResult, ck as PlacePerpsPositionTpSlRequest, cl as PlacePerpsPositionTpSlResult, cm as PlanCollateralReturnError, cn as PostOrderError, co as PostOrdersError, cp as PostPerpsOrdersRequest, cq as PriceSubscription, cr as PublicAccountActions, cs as PublicActions, ct as PublicClient, cu as PublicClientOptions, cv as PublicPerpsActions, cw as PublicRewardsActions, cx as PublicSubscriptionsActions, cy as PublicWalletActions, cz as RateLimitBucket, cA as RateLimitError, cB as RateLimitErrorOptions, cC as RateLimitUpdate, cD as RateLimitUpdateListener, cE as RedeemPositionsError, cF as RequestComboQuoteError, cG as RequestComboQuoteParams, cH as RequestComboQuoteResult, cI as RequestRejectedError, cJ as RequestRejectedErrorOptions, cK as RestEndpoint, cL as ResumePerpsSessionRequest, cM as RevokePerpsBuilderFeeError, cN as RevokePerpsCredentialsError, cO as RevokePerpsCredentialsRequest, cP as RevokeSessionKeyError, cQ as RevokeSessionKeyRequest, cR as RfqCancelQuoteAck, cS as RfqCancelQuoteError, cT as RfqCancelQuoteRejectedError, cU as RfqCancelQuoteRejectedErrorOptions, cV as RfqConfirmationAck, cW as RfqConfirmationError, cX as RfqConfirmationRejectedError, cY as RfqConfirmationRequestEvent, cZ as RfqEvent, c_ as RfqQuoteError, c$ as RfqQuoteReference, d0 as RfqQuoteRejectedError, d1 as RfqQuoteRejectedErrorOptions, d2 as RfqQuoteRequestEvent, d3 as RfqQuoteResponse, d4 as RfqQuoteSource, d5 as RfqRequestRejectedError, d6 as RfqRequestRejectedErrorOptions, d7 as RfqSession, d8 as RfqStatusResult, d9 as RfqTradeEvent, da as SearchError, db as SearchSort, dc as SecureAccountActions, dd as SecureActions, de as SecureClient, df as SecureClientOptions, dg as SecureDownloadAccountingSnapshotRequest, dh as SecureFetchPortfolioValueRequest, di as SecureFetchTraderLeaderboardStandingRequest, dj as SecureFetchUserPnlRequest, dk as SecureFetchUserStatsRequest, dl as SecureFetchUserVolumeRequest, dm as SecureListActivityRequest, dn as SecureListComboActivityRequest, dp as SecureListComboPositionsRequest, dq as SecureListPositionsRequest, dr as SecurePerpsActions, ds as SecureRewardsActions, dt as SecureRfqActions, du as SecureSubscriptionsActions, dv as SecureTradingActions, dw as SecureWalletActions, dx as SessionKey, dy as SessionKeyActions, dz as SetupGaslessWalletError, dA as SetupTradingApprovalsError, dB as SignedOrder, S as Signer, dC as SignerTransactionRequest, dD as SignerType, dE as SigningError, dF as SplitPositionError, dG as SubscribeError, dH as SubscriptionHandle, dI as TimeoutError, dJ as TradingApprovalRequirements, dK as TradingApprovalsState, dL as TradingRestriction, dM as TransactionFailedError, dN as TransactionHandle, dO as TransactionOutcome, dP as TransferErc20Error, dQ as TransferPerpsCollateralError, dR as TransferPerpsCollateralRequest, dS as TransportError, a as TypedData, dT as TypedDataDomain, dU as TypedDataField, T as TypedDataPayload, dV as UnexpectedResponseError, dW as UpdatePerpsLeverageError, dX as UpdatePerpsLeverageRequest, dY as UpdatePerpsMarginError, dZ as UpdatePerpsMarginRequest, d_ as WaitForComboFillError, d$ as WaitForComboFillParams, e0 as WaitForComboFillResult, e1 as WaitForOrderFillSettlementError, e2 as WaitForTransactionError, e3 as WalletDerivationConfig, e4 as WebSocketCloseCode, e5 as WebSocketEndpoint, e6 as WebSocketKnownCloseCode, e7 as WithdrawFromPerpsError, e8 as WithdrawFromPerpsRequest, e9 as accountActions, ea as allActions, eb as analyticsActions, ec as createPublicClient, ed as createSecureClient, ee as dataActions, ef as discoveryActions, eg as forkEnvironmentConfig, eh as makeErrorGuard, ei as perpsActions, ej as production, ek as rewardsActions, el as rfqActions, em as sessionKeyActions, en as subscriptionsActions, eo as tradingActions, ep as walletActions } from './types-B9F4CyS-.js';
16
+ export { C as CreateLimitOrderError, a as CreateMarketOrderError, F as FetchSportsMarketTypesError, L as ListSportsError, P as PlaceLimitOrderError, b as PlaceMarketOrderError } from './sports-CERQxAjR.js';
17
17
  export { BuilderRfqError, CollateralReturnKnownOperationKind, CollateralReturnOperation, CollateralReturnOperationKind, CollateralReturnPlanResponse, CollateralReturnPositionAmount, CollateralReturnPositionSummary, CollateralReturnRouterCall, ComboAcceptFailureReason, ComboQuoteUnavailableReason, RfqConfirmationDecision, RfqConfirmationRequest, RfqDirection, RfqErrorCode, RfqExecutionStatus, RfqExecutionUpdate, RfqId, RfqKnownErrorCode, RfqQuoteId, RfqQuoteRequest, RfqRejectionCode, RfqRequestedSize, RfqRequestedSizeUnit, RfqRequestorPublicId, RfqSide, RfqStatus, RfqTrade } from '@polymarket/bindings/combos';
18
- export { CryptoPricesChainlinkTwapEvent, CryptoPricesChainlinkTwapSixtyEvent, CryptoPricesChainlinkTwapThirtyEvent, CryptoPricesChainlinkTwapWindowSeconds, PerpsSessionEvent } from '@polymarket/bindings/subscriptions';
18
+ export { CommentsEvent, CryptoPriceEvent, CryptoPriceSnapshotEvent, CryptoPricesBinanceEvent, CryptoPricesChainlinkEvent, CryptoPricesChainlinkTwapEvent, CryptoPricesChainlinkTwapSixtyEvent, CryptoPricesChainlinkTwapThirtyEvent, CryptoPricesChainlinkTwapWindowSeconds, CryptoPricesEvent, CryptoTwapPriceEvent, CryptoTwapPriceSnapshotEvent, EquityPriceEvent, EquityPricesEvent, PerpsBuilderFillUpdateEvent, PerpsSessionEvent, RealtimeErrorCode, RealtimeKnownErrorCode } from '@polymarket/bindings/subscriptions';
19
19
  import 'zod';
20
20
  import 'ox';
21
21
 
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import {Q as Q$1,_,Y,W as W$1,ua,sa as sa$1,Ue,Se as Se$1,Qe,Oe,Nc,Me,Ke,Ie,Pc,Lc,Jc,Hc,yb,qa,ed,id,sd,gd,ac,_b,Yb,Wb,Ub,Sb,Qb,Ob,Cb,Ab,zc,Bc,rc,pc,nc,If,Lg,zg,xg,kg,Jg,Hg,Fg,Dg,Vc,og,mg,cd,ad,_c,Yc,xc,vc,tc,Ge,De,Ce,Fe,oa as oa$1,ma,ka,ia as ia$1,ga as ga$1,ea,Xf,Vf,Tf,Qf,vg,rg,tg,Bg,U as U$1,S as S$1,qd,od,md,kd,Pd,yd,xd,Xd,Vd,Td,Rd,kc,gc,Gf,xf,lf,Pg,ab,Ya,gb,db,Ba,Ga,N,O,Ja,ue as ue$1,se,qe as qe$1,me as me$1,ke,ie,we,oe,ec,cc,J,Yd,I,Ca,L as L$1,ob,mb,ce as ce$1,ae as ae$1,be as be$1,_d,$d,Zd,qb,ge,Jf,Lf,Nf,M,Bd,Dd,Ed,Cd,zd,Ad}from'./chunk-LGU5PMHE.js';export{Uf as AcceptComboQuoteError,$a as ApproveErc1155ForAllError,Xa as ApproveErc20Error,de as ArmPerpsAutoCancelError,sg as AuthorizeSessionKeyError,Qc as BiggestWinnerKind,Rc as BuilderVolumeInterval,nd as CancelAllError,pd as CancelMarketOrdersError,jd as CancelOrderError,ld as CancelOrdersError,lc as CollateralReturnKnownOperationKind,E as CombinatorialPrepareConditionCallError,_f as ComboAcceptFailureReason,va as ComboActivityType,Ve as ComboPositionSortBy,We as ComboPositionStatus,$f as ComboQuoteUnavailableReason,Ud as CreateLimitOrderError,Qd as CreateMarketOrderError,u as CtfMergePositionsCallError,w as CtfRedeemPositionsCallError,s as CtfSplitPositionCallError,Ae as DepositToPerpsError,Te as DownloadAccountingSnapshotError,Z as DropNotificationsError,b as Erc20ApprovalCallError,m as Erc20TransferCallError,rd as EstimateMarketPriceError,jc as ExecuteCollateralReturnPlanError,Ic as FetchBuilderVolumeError,P as FetchClosedOnlyModeError,oc as FetchCommentsByIdError,uc as FetchEventError,Ac as FetchEventLiveVolumeError,wc as FetchEventTagsError,Zb as FetchLastTradePriceError,$b as FetchLastTradePricesError,$c as FetchMarketError,bd as FetchMarketTagsError,zb as FetchMidpointError,Bb as FetchMidpointsError,X as FetchNotificationsError,hd as FetchOpenInterestError,Rb as FetchOrderBookError,Tb as FetchOrderBooksError,T as FetchOrderError,da as FetchOrderScoringError,fa as FetchOrdersScoringError,ne as FetchPerpsBookError,ve as FetchPerpsFeesError,he as FetchPerpsInstrumentsError,je as FetchPerpsTickerError,le as FetchPerpsTickersError,Le as FetchPortfolioValueError,Nb as FetchPriceError,Pb as FetchPricesError,Hf as FetchPublicProfileError,Ig as FetchRelatedTagResourcesError,Gg as FetchRelatedTagsError,yc as FetchResolutionsError,na as FetchRewardPercentagesError,Yf as FetchRfqStatusError,ng as FetchSeriesError,qg as FetchSessionKeysError,yg as FetchSportsMarketTypesError,Vb as FetchSpreadError,Xb as FetchSpreadsError,Eg as FetchTagError,ja as FetchTotalEarningsForUserForDayError,Mc as FetchTraderLeaderboardStandingError,cb as FetchTradingApprovalsStateError,Pe as FetchUserPnlError,Ne as FetchUserStatsError,Re as FetchUserVolumeError,Sc as LeaderboardWindow,V as ListAccountTradesError,ra as ListActivityError,Oc as ListBiggestWinnersError,Gc as ListBuilderLeaderboardError,xb as ListBuilderTradesError,ta as ListComboActivityError,Zc as ListComboMarketsError,Je as ListComboPositionsError,qc as ListCommentsByUserAddressError,mc as ListCommentsError,bc as ListCurrentRewardsError,sc as ListEventsError,dd as ListMarketHoldersError,dc as ListMarketRewardsError,Xc as ListMarketsError,R as ListOpenOrdersError,pe as ListPerpsCandlesError,re as ListPerpsFundingHistoryError,te as ListPerpsTradesError,He as ListPositionsError,fd as ListPriceHistoryError,lg as ListSeriesError,wg as ListSportsError,Cg as ListTagsError,Kg as ListTeamsError,Kc as ListTraderLeaderboardError,pa as ListTradesError,la as ListUserEarningsAndMarketsConfigError,ha as ListUserEarningsForDayError,a as MAX_UINT256,sf as MergePositionsError,xe as OpenPerpsSessionError,Pf as OpenRfqSessionError,q as PerpsDepositCallError,Wd as PlaceLimitOrderError,Sd as PlaceMarketOrderError,fc as PlanCollateralReturnError,Xe as PositionFilterType,Ye as PositionSortBy,Ze as PositionStatus,vd as PostOrderError,wd as PostOrdersError,Wc as PriceHistoryInterval,Ff as RedeemPositionsError,Sf as RequestComboQuoteError,Cc as ResolutionMarketType,Dc as ResolutionReporter,Ec as ResolutionSource,Fc as ResolutionStatus,ye as RevokePerpsCredentialsError,ug as RevokeSessionKeyError,Mf as RfqCancelQuoteError,Lf as RfqCancelQuoteRejectedError,ag as RfqConfirmationDecision,Of as RfqConfirmationError,Nf as RfqConfirmationRejectedError,bg as RfqDirection,cg as RfqExecutionStatus,dg as RfqKnownErrorCode,Kf as RfqQuoteError,Jf as RfqQuoteRejectedError,eg as RfqRejectionCode,Rf as RfqRequestRejectedError,fg as RfqRequestedSizeUnit,gg as RfqSide,hg as RfqStatus,A as RouterMergeCallError,C as RouterRedeemCallError,y as RouterSplitCallError,jg as SearchError,ig as SearchSort,pg as SessionKeyKnownScope,fb as SetupTradingApprovalsError,K as SignerType,wa as SortDirection,gf as SplitPositionError,Ag as SubscribeError,xa as TipSide,ya as TradeFilterType,Tc as TraderLeaderboardSort,Og as TransferErc20Error,ee as UpdatePerpsLeverageError,fe as UpdatePerpsMarginError,_e as UserPnlFidelity,$e as UserPnlInterval,Wf as WaitForComboFillError,Od as WaitForOrderFillSettlementError,za as WaitForTransactionError,Be as WithdrawFromPerpsError,o as authorizeSessionSignerCall,F as combinatorialPrepareConditionCall,v as ctfMergePositionsCall,x as ctfRedeemPositionsCall,t as ctfSplitPositionCall,l as decodeErc1155BalanceOfBatchResult,j as decodeErc1155BalanceOfResult,h as decodeErc1155IsApprovedForAllResult,e as decodeErc20AllowanceResult,G as encodeProxyCall,H as encodeSafeMultisendCall,f as erc1155ApprovalForAllCall,k as erc1155BalanceOfBatchCall,i as erc1155BalanceOfCall,g as erc1155IsApprovedForAllCall,d as erc20AllowanceCall,c as erc20ApprovalCall,n as erc20TransferCall,Aa as expectTransactionHandle,r as perpsDepositCall,p as revokeSessionSignerCall,B as routerMergeCall,D as routerRedeemCall,z as routerSplitCall}from'./chunk-LGU5PMHE.js';import {a,o,k,h as h$1,g as g$1,n,i,j,c,b as b$1,e}from'./chunk-DLZLJOGO.js';export{m as AutoCancelDailyLimitError,k as CancelledSigningError,e as ConnectionLostError,l as InsufficientLiquidityError,h as RateLimitError,g as RequestRejectedError,n as SigningError,i as TimeoutError,f as TradingRestriction,j as TransactionFailedError,c as TransportError,b as UnexpectedResponseError,a as UserInputError,d as WebSocketKnownCloseCode,o as makeErrorGuard}from'./chunk-DLZLJOGO.js';import {DecimalishSchema,ApiKeySchema,EvmAddressSchema,toBaseUnits,OrderSide}from'@polymarket/bindings';export{OrderSide,OrderType}from'@polymarket/bindings';export{NotificationType,OrderResponseErrorCode,SignatureType}from'@polymarket/bindings/clob';export{ActivityType}from'@polymarket/bindings/data';import {WalletType}from'@polymarket/bindings/gamma';export{ComboKnownStatus,ProtocolVersion,TeamOrdering,WalletType}from'@polymarket/bindings/gamma';export{PerpsDepositStatus,PerpsInstrumentCategory,PerpsInstrumentType,PerpsInternalTransferDirection,PerpsKlineInterval,PerpsKnownWithdrawalStatus,PerpsMarginType,PerpsNotificationOrderType,PerpsNotificationType,PerpsOrderStatus,PerpsSide,PerpsSortDirection,PerpsTimeInForce}from'@polymarket/bindings/perps';import {z}from'zod';import {expectEvmAddress,isSameEvmAddress,expectEvmSignature,invariant,setNonBlockingTimeout}from'@polymarket/types';import {PerpsMarketDataEventSchema,RealtimeEventSchema,SportsResultEventSchema,MarketEventSchema,UserEventSchema}from'@polymarket/bindings/subscriptions';import {pushable}from'it-pushable';import {RfqQuoterInboundMessageSchema,RfqConfirmationDecision,RfqRequestedSizeUnit,RfqDirection}from'@polymarket/bindings/combos';var Po=z.object({POLY_BUILDER_API_KEY:z.string().min(1),POLY_BUILDER_TIMESTAMP:z.string().min(1),POLY_BUILDER_PASSPHRASE:z.string().min(1),POLY_BUILDER_SIGNATURE:z.string().min(1)});function go(t){return new ae(t)}function qo(t){return new ce(t)}var ae=class{#e;constructor(e){this.#e=e;}get isBuilderKey(){return true}get supportGasless(){return true}async authorize(e){try{return await this.#r(e)}catch(r){throw n.fromError(r,"Could not authorize the builder-authenticated request")}}async#s(){let e=this.#e.headers,r=typeof e=="function"?await e():e,s=new Headers(r);return s.set("content-type","application/json"),s}async#r(e){let r=await fetch(this.#e.url,{body:JSON.stringify({body:e.body,method:e.method,path:e.path}),credentials:this.#e.credentials,headers:await this.#s(),method:"POST",mode:"cors"});if(!r.ok)throw new Error(`Remote signer rejected request with status ${r.status}`);return Po.parse(await r.json())}},ce=class{#e;constructor(e){this.#e=e;}get isBuilderKey(){return false}get supportGasless(){return true}authorize(){return Promise.resolve({RELAYER_API_KEY:this.#e.key,RELAYER_API_KEY_ADDRESS:this.#e.address})}};function Hr(t){return {domain:{chainId:t.chainId,name:"ClobAuthDomain",version:"1"},message:{address:t.address,message:"This message attests that I control the given wallet",nonce:t.nonce??0,timestamp:`${t.timestamp}`},primaryType:"ClobAuth",types:{ClobAuth:[{name:"address",type:"address"},{name:"timestamp",type:"string"},{name:"nonce",type:"uint256"},{name:"message",type:"string"}]}}}function Ao(t){return {listPositions:Ie.bind(null,t),listComboPositions:Ke.bind(null,t),fetchPortfolioValue:Me.bind(null,t),fetchTraderLeaderboardStanding:Nc.bind(null,t),fetchUserStats:Oe.bind(null,t),fetchUserPnl:Qe.bind(null,t),fetchUserVolume:Se$1.bind(null,t),downloadAccountingSnapshot:Ue.bind(null,t),listActivity:sa$1.bind(null,t),listComboActivity:ua.bind(null,t)}}function m(t,e={}){return e===null||typeof e!="object"||Array.isArray(e)?e:{...e,user:e.user===void 0?t.account.wallet:e.user}}function ue(t){let e=Ao(t);return t.isPublicClient()?e:{...e,listPositions:r=>Ie(t,m(t,r)),listComboPositions:r=>Ke(t,m(t,r)),fetchPortfolioValue:r=>Me(t,m(t,r)),fetchTraderLeaderboardStanding:r=>Nc(t,m(t,r)),fetchUserStats:r=>Oe(t,m(t,r)),fetchUserPnl:r=>Qe(t,m(t,r)),fetchUserVolume:r=>Se$1(t,m(t,r)),downloadAccountingSnapshot:r=>Ue(t,m(t,r)),listActivity:r=>sa$1(t,m(t,r)),listComboActivity:r=>ua(t,m(t,r)),listAccountTrades:W$1.bind(null,t),fetchNotifications:Y.bind(null,t),dropNotifications:_.bind(null,t),fetchClosedOnlyMode:Q$1.bind(null,t)}}function de(t){return {listBuilderTrades:yb.bind(null,t),listBuilderLeaderboard:Hc.bind(null,t),fetchBuilderVolume:Jc.bind(null,t),listTraderLeaderboard:Lc.bind(null,t),listBiggestWinners:Pc.bind(null,t)}}function pe(t){return {fetchEventLiveVolume:Bc.bind(null,t),fetchResolutions:zc.bind(null,t),fetchMidpoint:Ab.bind(null,t),fetchMidpoints:Cb.bind(null,t),fetchPrice:Ob.bind(null,t),fetchPrices:Qb.bind(null,t),fetchOrderBook:Sb.bind(null,t),fetchOrderBooks:Ub.bind(null,t),fetchSpread:Wb.bind(null,t),fetchSpreads:Yb.bind(null,t),fetchLastTradePrice:_b.bind(null,t),fetchLastTradePrices:ac.bind(null,t),listPriceHistory:gd.bind(null,t),estimateMarketPrice:sd.bind(null,t),fetchOpenInterest:id.bind(null,t),listMarketHolders:ed.bind(null,t),listTrades:qa.bind(null,t)}}function le(t){return {listEvents:tc.bind(null,t),fetchEvent:vc.bind(null,t),fetchEventTags:xc.bind(null,t),listMarkets:Yc.bind(null,t),listComboMarkets:_c.bind(null,t),fetchMarket:ad.bind(null,t),fetchMarketTags:cd.bind(null,t),listSeries:mg.bind(null,t),fetchSeries:og.bind(null,t),listMarketClarifications:Vc.bind(null,t),listTags:Dg.bind(null,t),fetchTag:Fg.bind(null,t),fetchRelatedTags:Hg.bind(null,t),fetchRelatedTagResources:Jg.bind(null,t),search:kg.bind(null,t),listSports:xg.bind(null,t),fetchSportsMarketTypes:zg.bind(null,t),listTeams:Lg.bind(null,t),fetchPublicProfile:If.bind(null,t),listComments:nc.bind(null,t),fetchCommentsById:pc.bind(null,t),listCommentsByUserAddress:rc.bind(null,t)}}function me(t){let e={fetchPerpsBook:r=>oe(t,r),fetchPerpsFees:()=>we(t),fetchPerpsInstruments:r=>ie(t,r),fetchPerpsTicker:r=>ke(t,r),fetchPerpsTickers:r=>me$1(t,r),listPerpsCandles:r=>qe$1(t,r),listPerpsFundingHistory:r=>se(t,r),listPerpsTrades:r=>ue$1(t,r)};return t.isSecureClient()?{...e,depositToPerps:r=>Fe(t,r),openPerpsSession:r=>Ce(t,r),revokePerpsCredentials:r=>De(t,r),withdrawFromPerps:r=>Ge(t,r)}:e}function vo(t){return {listCurrentRewards:cc.bind(null,t),listMarketRewards:ec.bind(null,t)}}function he(t){let e=vo(t);return t.isPublicClient()?e:{...e,fetchOrderScoring:ea.bind(null,t),fetchOrdersScoring:ga$1.bind(null,t),listUserEarningsForDay:ia$1.bind(null,t),fetchTotalEarningsForUserForDay:ka.bind(null,t),listUserEarningsAndMarketsConfig:ma.bind(null,t),fetchRewardPercentages:oa$1.bind(null,t)}}function _r(t){return {openRfqSession(){return Qf(t)},requestComboQuote(e){return Tf(t,e)},acceptComboQuote(e){return Vf(t,e)},waitForComboFill(e){return Xf(t,e)}}}function Vr(t){return {authorizeSessionKey:tg.bind(null,t),fetchSessionKeys:rg.bind(null,t),revokeSessionKey:vg.bind(null,t)}}function ye(t){return t.isSecureClient()?{subscribe(e){return Bg(t,e)}}:{subscribe(e){return Bg(t,e)}}}function zr(t){return {createMarketOrder:Rd.bind(null,t),placeMarketOrder:Td.bind(null,t),createLimitOrder:Vd.bind(null,t),placeLimitOrder:Xd.bind(null,t),postOrder:xd(t),postOrders:yd(t),waitForOrderFillSettlement:Pd.bind(null,t),cancelOrder:kd.bind(null,t),cancelOrders:md.bind(null,t),cancelAll:od.bind(null,t),cancelMarketOrders:qd.bind(null,t),listOpenOrders:S$1.bind(null,t),fetchOrder:U$1.bind(null,t)}}function Co(t){return {fetchTradingApprovalsState:db.bind(null,t)}}function fe(t){let e=Co(t);return t.isPublicClient()?e:{...e,fetchTradingApprovalsState:()=>db(t,{user:t.account.wallet}),setupTradingApprovals:gb.bind(null,t),approveErc20:Ya.bind(null,t),approveErc1155ForAll:ab.bind(null,t),transferErc20:Pg.bind(null,t),splitPosition:lf.bind(null,t),mergePositions:xf.bind(null,t),redeemPositions:Gf.bind(null,t),planCollateralReturn:gc.bind(null,t),executeCollateralReturnPlan:kc.bind(null,t)}}function jr(t){return t.isSecureClient()?{...ue(t),...de(t),...pe(t),...le(t),...me(t),...he(t),..._r(t),...Vr(t),...ye(t),...zr(t),...fe(t)}:{...ue(t),...de(t),...pe(t),...le(t),...me(t),...he(t),...ye(t),...fe(t)}}var Se={name:"production",chainId:137,rpc:"https://polygon.drpc.org",walletDerivation:{depositWalletFactory:expectEvmAddress("0x00000000000Fb5C9ADea0298D729A0CB3823Cc07"),depositWalletBeacon:expectEvmAddress("0x7A18EDfe055488A3128f01F563e5B479D92ffc3a"),depositWalletImplementation:expectEvmAddress("0x58CA52ebe0DadfdF531Cde7062e76746de4Db1eB"),proxyFactory:expectEvmAddress("0xaB45c5A4B0c941a2F231C04C3f49182e1A254052"),proxyImplementation:expectEvmAddress("0x44e999d5c2F66Ef0861317f9A4805AC2e90aEB4f"),safeFactory:expectEvmAddress("0xaacFeEa03eb1561C4e67d661e40682Bd20E3541b"),safeInitCodeHash:"0x2bce2127ff07fb632d16c8347c4ebf501f4841168bed00d9e6ef715ddb6fcecf"},contracts:{collateralToken:expectEvmAddress("0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB"),conditionalTokens:expectEvmAddress("0x4D97DCd97eC945f40cF65F87097ACe5EA0476045"),negRiskAdapter:expectEvmAddress("0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296"),collateralAdapter:expectEvmAddress("0xAdA100Db00Ca00073811820692005400218FcE1f"),negRiskCollateralAdapter:expectEvmAddress("0xadA2005600Dec949baf300f4C6120000bDB6eAab"),standardExchange:expectEvmAddress("0xE111180000d2663C0091e4f400237545B87B996B"),negRiskExchange:expectEvmAddress("0xe2222d279d744050d28e00520010520000310F59"),exchangeV3:expectEvmAddress("0xe3333700cA9d93003F00f0F71f8515005F6c00Aa"),protocolV2Router:expectEvmAddress("0x12121212006e4CD160D18e3f00711DA5c3372600"),binaryModule:expectEvmAddress("0x1000008dD9001B968442c1000017eaE6E0dA00Ba"),negRiskModule:expectEvmAddress("0x200000900045e3B6259600682756002200028933"),combinatorialModule:expectEvmAddress("0x30000034706c7d8e12009dab006be20000c031a8"),positionManager:expectEvmAddress("0x006F54F7f9A22e0000CC2AB60031000000ae9fEF"),autoRedeemOperator:expectEvmAddress("0xa1200000d0002264C9a1698e001292D00E1b00af"),safeMultisend:expectEvmAddress("0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761"),relayHub:expectEvmAddress("0xD216153c06E857cD7f72665E0aF1d7D82172F494"),perpsDepositContract:expectEvmAddress("0xDCa4af75705dbB50f62437045afF9921947917d2")},clob:{rest:"https://clob.polymarket.com",market:{ws:"wss://ws-subscriptions-clob.polymarket.com/ws/market"},user:{ws:"wss://ws-subscriptions-clob.polymarket.com/ws/user"}},relayer:{rest:"https://relayer-v2.polymarket.com"},gamma:{rest:"https://gamma-api.polymarket.com"},data:{rest:"https://data-api.polymarket.com"},combos:{rest:"https://combos-rfq-api.polymarket.com",ws:"wss://combos-rfq-gateway-quoter.polymarket.com/ws/rfq",builderGateway:{rest:"https://combos-rfq-gateway-builder.polymarket.com"},collateralReturn:{rest:"https://combos-rfq-collateral-return.polymarket.com"}},perps:{rest:"https://api.perpetuals.polymarket.com",ws:"wss://ws.perpetuals.polymarket.com/v1/ws"},rtds:{ws:"wss://ws-live-data.polymarket.com"},sports:{ws:"wss://sports-api.polymarket.com/ws"},relayerMaxPolls:100,relayerPollFrequencyMs:2e3};function Eo(t,e=Se){return {...e,...t,walletDerivation:{...e.walletDerivation,...t.walletDerivation},contracts:{...e.contracts,...t.contracts},clob:{...P(e.clob,t.clob),market:L(e.clob.market,t.clob?.market),user:L(e.clob.user,t.clob?.user)},relayer:P(e.relayer,t.relayer),gamma:P(e.gamma,t.gamma),data:P(e.data,t.data),combos:{...$r(e.combos,t.combos),builderGateway:P(e.combos.builderGateway,t.combos?.builderGateway),collateralReturn:P(e.combos.collateralReturn,t.combos?.collateralReturn)},perps:$r(e.perps,t.perps),rtds:L(e.rtds,t.rtds),sports:L(e.sports,t.sports)}}function P(t,e){return {...t,...e,headers:be(t.headers,e?.headers)}}function L(t,e){return {...t,...e,headers:be(t.headers,e?.headers)}}function $r(t,e){return {...t,...e,headers:be(t.headers,e?.headers)}}function be(t,e){if(!(t===void 0&&e===void 0))return {...t,...e}}var Su=Eo({name:"preproduction",clob:{rest:"https://clob-preprod-int-v2.polymarket.com"},data:{rest:"https://data-api-preprod-int.polymarket.com"},gamma:{rest:"https://gamma-api-preprod-int.polymarket.com"},relayer:{rest:"https://relayer-v2-preprod-int.polymarket.com"}});async function Nr(t,e,r,s,n){let i=`${e}${r}${s}`;n!==void 0&&(i+=n);let o=await globalThis.crypto.subtle.importKey("raw",ko(t),{name:"HMAC",hash:"SHA-256"},false,["sign"]),R=await globalThis.crypto.subtle.sign("HMAC",o,new TextEncoder().encode(i));return wo(To(R))}function ko(t){let e=t.replace(/-/g,"+").replace(/_/g,"/").replace(/[^A-Za-z0-9+/=]/g,""),r=atob(e),s=new Uint8Array(r.length);for(let n=0;n<r.length;n+=1)s[n]=r.charCodeAt(n);return s.buffer}function To(t){let e=new Uint8Array(t),r="";for(let s of e)r+=String.fromCharCode(s);return btoa(r)}function wo(t){return t.replace(/\+/g,"-").replace(/\//g,"_")}function h(t,e){let r;return {close:()=>(r===void 0&&(r=Promise.resolve(t.return()).then(()=>e())),r),[Symbol.asyncIterator](){return t[Symbol.asyncIterator]()}}}var p=class{#e=new Set;#s;constructor(e){this.#s=e?.deriveServerState??(()=>{});}add(e,r={}){let s={queue:pushable({objectMode:true})};r.matches!==void 0&&(s.matches=r.matches);let n={subscription:e,subscriber:s};return {change:this.#r(n),entry:n}}#r(e){let r=this.serverState();return this.#e.add(e),{before:r,after:this.serverState()}}remove(e){let r=this.serverState();return this.#e.delete(e),e.subscriber.queue.end(),{before:r,after:this.serverState()}}dispatch(e){for(let{subscriber:r}of this.#e)(r.matches===void 0||r.matches(e))&&r.queue.push(e);}hasActiveSubscriptions(){return this.#e.size>0}endAll(e){for(let{subscriber:r}of this.#e)r.queue.end(e);this.#e.clear();}serverState(){return this.#s(this.#e)}};function Re(t,e,r){let s=B(r.assetsIds,e.assetsIds),n=B(e.assetsIds,r.assetsIds);s.length>0&&t(Gr(s,r.customFeatureEnabled));let i=r.assetsIds[0];s.length===0&&e.customFeatureEnabled!==r.customFeatureEnabled&&i!==void 0&&t(Gr([i],r.customFeatureEnabled)),n.length>0&&t(Fo(n));}function Pe(t,e,r){if(r.includeAllMarkets){!e.includeAllMarkets&&e.markets.length>0&&t(Jr(e.markets));return}if(e.includeAllMarkets){r.markets.length>0&&t(Yr(r.markets));return}let s=B(r.markets,e.markets),n=B(e.markets,r.markets);s.length>0&&t(Yr(s)),n.length>0&&t(Jr(n));}function Zr(t){let e=new Set,r=false;for(let{subscription:s}of t){for(let n of s.assetIds??s.tokenIds)e.add(n);r||=s.customFeatureEnabled===true;}return {assetsIds:Array.from(e),customFeatureEnabled:r}}function Xr(t){let e=false,r=new Set;for(let{subscription:s}of t){if(ns(s)){e=true;continue}for(let n of s.markets??[])r.add(n);}return {includeAllMarkets:e,markets:e?[]:Array.from(r)}}function es(t){return {assets_ids:t.assetsIds,custom_feature_enabled:t.customFeatureEnabled,type:"market"}}function Gr(t,e){return {assets_ids:t,custom_feature_enabled:e,operation:"subscribe"}}function Fo(t){return {assets_ids:t,operation:"unsubscribe"}}function ts(t,e){let r={auth:{apiKey:e.key,passphrase:e.passphrase,secret:e.secret},type:"user"};return t.includeAllMarkets||(r.markets=t.markets),r}function Yr(t){return {markets:t,operation:"subscribe"}}function Jr(t){return {markets:t,operation:"unsubscribe"}}function rs(t){let e=t.assetIds??t.tokenIds;return r=>{switch(r.type){case "price_change":return r.payload.priceChanges.some(s=>e.includes(s.assetId));case "new_market":return t.customFeatureEnabled===true;case "market_resolved":return t.customFeatureEnabled===true&&(r.payload.assetIds??[]).some(s=>e.includes(s));case "best_bid_ask":return t.customFeatureEnabled===true&&e.includes(r.payload.assetId);default:return e.includes(r.payload.assetId)}}}function ss(t){if(ns(t))return ()=>true;let e=new Set((t.markets??[]).map(r=>r.toLowerCase()));return r=>e.has(r.payload.market.toLowerCase())}function ns(t){return (t.markets?.length??0)===0}function B(t,e){let r=new Set(e);return t.filter(s=>!r.has(s))}var S=class{#e;#s;#r;#o=new ce$1({heartbeat:new Zd});#i=new be$1;#t=new p({deriveServerState:Zr});constructor(e){this.#e=e.headers,this.#s=e.url;}async subscribe(e){let{change:r,entry:s}=this.#t.add(e,{matches:rs(e)});return await this.#n(s,r),h(s.subscriber.queue,()=>this.#a(s))}async#n(e,r){let{before:s,after:n}=r;try{(await this.#u()).reusedOpenSocket&&Re(o=>this.#o.send(o),s,n);}catch(i){throw await this.#a(e),i}}async#a(e){let{before:r,after:s}=this.#t.remove(e);if(!this.#t.hasActiveSubscriptions()){await this.close();return}Re(n=>this.#o.send(n),r,s);}async close(){this.#r===void 0&&(this.#r=this.#d().finally(()=>{this.#r=void 0;})),await this.#r;}async#d(){this.#i.stop(),this.#t.endAll(),await this.#o.close();}#u(){return this.#o.connect({onConnectionLost:()=>this.#l(),onError:()=>this.#h(),onMessage:e=>this.#p(e),onOpen:()=>this.#c(),headers:this.#e,url:this.#s})}#c(){this.#i.resetBackoff(),this.#y();}#p(e){let r=Array.isArray(e)?e:[e];for(let s of r){let n=MarketEventSchema.safeParse(s);n.success&&this.#t.dispatch(n.data);}}#l(){this.#t.hasActiveSubscriptions()&&this.#m();}#h(){}#y(){this.#o.send(es(this.#t.serverState()));}#m(){this.#i.schedule({reconnect:()=>this.#u(),shouldReconnect:()=>this.#t.hasActiveSubscriptions()});}};var g=class{#e;#s;#r;#o;#i=new ce$1({heartbeat:new Zd});#t=new be$1;#n=new p({deriveServerState:Xr});constructor(e){this.#e=e.credentials,this.#s=e.headers,this.#r=e.url;}async subscribe(e){let{change:r,entry:s}=this.#n.add(e,{matches:ss(e)});return await this.#a(s,r),h(s.subscriber.queue,()=>this.#d(s))}async#a(e,r){let{before:s,after:n}=r;try{(await this.#c()).reusedOpenSocket&&Pe(o=>this.#i.send(o),s,n);}catch(i){throw await this.#d(e),i}}async#d(e){let{before:r,after:s}=this.#n.remove(e);if(!this.#n.hasActiveSubscriptions()){await this.close();return}Pe(n=>this.#i.send(n),r,s);}async close(){this.#o===void 0&&(this.#o=this.#u().finally(()=>{this.#o=void 0;})),await this.#o;}async#u(){this.#t.stop(),this.#n.endAll(),await this.#i.close();}#c(){return this.#i.connect({onConnectionLost:()=>this.#h(),onError:()=>this.#y(),onMessage:e=>this.#l(e),onOpen:e=>this.#p(e),prepare:()=>this.#e,headers:this.#s,url:this.#r})}#p(e){this.#t.resetBackoff(),this.#m(e);}#l(e){let r=Array.isArray(e)?e:[e];for(let s of r){let n=UserEventSchema.safeParse(s);n.success&&this.#n.dispatch(n.data);}}#h(){this.#n.hasActiveSubscriptions()&&this.#f();}#y(){}#m(e){this.#i.send(ts(this.#n.serverState(),e));}#f(){this.#t.schedule({reconnect:()=>this.#c(),shouldReconnect:()=>this.#n.hasActiveSubscriptions()});}};var q=class{#e;#s;#r;#o;#i=new Set;#t=new Set;#n=new Set;#a=false;constructor(e){this.#e=e.chainId,this.#s=e.headers,this.#r=e.restUrl,this.#o=e.wsUrl;}connect(e){if(this.#a)return Promise.reject(new c("Perps session manager has been shut down."));let r=new ge({chainId:this.#e,credentials:e,headers:this.#s,onClose:n=>this.#d(n),restUrl:this.#r,wsUrl:this.#o});this.#t.add(r);let s;return s=(async()=>{try{if(await r.connect(),this.#a)throw await r.close(),new c("Perps session manager has been shut down.");return this.#i.add(r),r}catch(n){throw await r.close(),n}finally{this.#n.delete(s),this.#t.delete(r);}})(),this.#n.add(s),s}async shutdown(){this.#a=true;let e=Array.from(this.#i),r=Array.from(this.#t),s=Array.from(this.#n);this.#i.clear(),this.#t.clear(),this.#n.clear(),await Promise.allSettled([...e.map(n=>n.close()),...r.map(n=>n.close()),...s.map(n=>n.catch(()=>{}))]).then(()=>{});}#d(e){this.#i.delete(e),this.#t.delete(e);}};var b=class{#e;#s;#r;#o=1;#i=new ce$1({heartbeat:new ae$1});#t=new be$1;#n=new p({deriveServerState:Lo});constructor(e){this.#e=e.headers,this.#s=e.url;}async subscribe(e){let{change:r,entry:s}=this.#n.add(e,{matches:Uo(e)});return await this.#a(s,r),h(s.subscriber.queue,()=>this.#d(s))}async#a(e,r){try{(await this.#c()).reusedOpenSocket&&(this.#m(is(r.before,r.after)),this.#f(os(r.before,r.after)));}catch(s){throw await this.#d(e),s}}async#d(e){let{before:r,after:s}=this.#n.remove(e);this.#m(is(r,s)),this.#f(os(r,s)),this.#n.hasActiveSubscriptions()||await this.close();}async close(){this.#r===void 0&&(this.#r=this.#u().finally(()=>{this.#r=void 0;})),await this.#r;}async#u(){this.#t.stop(),this.#n.endAll(),await this.#i.close();}#c(){return this.#i.connect({onConnectionLost:()=>this.#h(),onError:()=>this.#y(),onMessage:e=>this.#l(e),onOpen:()=>this.#p(),headers:this.#e,url:this.#s})}#p(){this.#t.resetBackoff(),this.#m(Array.from(this.#n.serverState()));}#l(e){let r=PerpsMarketDataEventSchema.safeParse(e);r.success&&this.#n.dispatch(r.data);}#h(){this.#n.hasActiveSubscriptions()&&this.#b();}#y(){}#m(e){e.length!==0&&this.#i.send(this.#S("sub",e));}#f(e){e.length!==0&&this.#i.send(this.#S("unsub",e));}#S(e,r){return {id:this.#o++,req:e,chs:r}}#b(){this.#t.schedule({reconnect:()=>this.#c(),shouldReconnect:()=>this.#n.hasActiveSubscriptions()});}};function Lo(t){let e=new Set,r=new Set,s=new Set,n=false,i=false;for(let{subscription:o}of t)switch(o.topic){case "perps.tickers":o.instrumentId===void 0?n=true:r.add(o.instrumentId);break;case "perps.statistics":o.instrumentId===void 0?i=true:s.add(o.instrumentId);break;default:e.add(Bo(o));}if(n)e.add("tickers::all");else for(let o of r)e.add(`tickers::${o}`);if(i)e.add("statistics::all");else for(let o of s)e.add(`statistics::${o}`);return e}function is(t,e){return Array.from(e).filter(r=>!t.has(r))}function os(t,e){return Array.from(t).filter(r=>!e.has(r))}function Bo(t){switch(t.topic){case "perps.trades":return `trades::${t.instrumentId}`;case "perps.bbo":return `bbo::${t.instrumentId}`;case "perps.book":return `book::${t.instrumentId}`;case "perps.candles":return `klines::${t.instrumentId}::${t.interval}`;case "perps.tickers":return t.instrumentId===void 0?"tickers::all":`tickers::${t.instrumentId}`;case "perps.statistics":return t.instrumentId===void 0?"statistics::all":`statistics::${t.instrumentId}`;default:invariant(false,`Unknown Perps topic: ${String(t)}`);}}function Uo(t){switch(t.topic){case "perps.trades":return e=>e.topic==="perps.trades"&&e.channel===`trades::${t.instrumentId}`;case "perps.bbo":case "perps.book":return e=>e.topic===t.topic&&e.payload.instrumentId===t.instrumentId;case "perps.candles":return e=>e.topic==="perps.candles"&&e.payload.instrumentId===t.instrumentId&&e.payload.interval===t.interval;case "perps.tickers":case "perps.statistics":return e=>e.topic===t.topic&&(t.instrumentId===void 0||e.payload.instrumentId===t.instrumentId);default:invariant(false,`Unknown Perps topic: ${String(t)}`);}}function us(t,e){return {...e,quote:r=>t.quote(e,r)}}function ds(t,e){let r=e.rfqId,s=e.quoteId;return {...e,confirm:()=>t.respondToConfirmation(r,s,RfqConfirmationDecision.Confirm),decline:()=>t.respondToConfirmation(r,s,RfqConfirmationDecision.Decline)}}function ps(t){return {quoteId:t.quoteId,rfqId:t.rfqId}}function ls(t){return {quoteId:t.quoteId,rfqId:t.rfqId}}function ms(t){return {quoteId:t.quoteId,rfqId:t.rfqId}}function hs(t,e){let r=M(t);return {auth:{apiKey:e.key,passphrase:e.passphrase,secret:e.secret},identity:{maker_address:r.maker,signature_type:r.signatureType,signer_address:r.signer},type:"auth"}}function ys(t,e){return {price_e6:e.price.toString(),rfq_id:t.rfqId,signed_order:e.signedOrder,size_e6:e.size.toString(),type:"RFQ_QUOTE"}}function fs(t,e,r){let s=M(t);return {maker_address:s.maker,quote_id:r,rfq_id:e,signer_address:s.signer,type:"RFQ_QUOTE_CANCEL"}}function Ss(t,e,r){return {decision:r,quote_id:e,rfq_id:t,type:"RFQ_CONFIRMATION_RESPONSE"}}var U=class{#e=new Map;#s;constructor(e){this.#s=e;}waitFor(e,r){let s=Wo(),n,i$1=setNonBlockingTimeout(()=>{this.remove(e,n),s.reject(new i(r));},this.#s);n=s.promise.finally(()=>clearTimeout(i$1));let o=this.#e.get(e)??[];return o.push({...s,promise:n}),this.#e.set(e,o),n}resolve(e,r){let s=this.#e.get(e),n=s?.shift();n!==void 0&&(s!==void 0&&s.length===0&&this.#e.delete(e),n.resolve(r));}reject(e,r){let s=this.#e.get(e),n=s?.shift();n!==void 0&&(s!==void 0&&s.length===0&&this.#e.delete(e),n.reject(r));}remove(e,r){let s=this.#e.get(e);if(s===void 0)return;let n=s.filter(i=>i.promise!==r);n.length===0?this.#e.delete(e):this.#e.set(e,n);}rejectAll(e){for(let r of this.#e.values())for(let s of r)s.reject(e);this.#e.clear();}};function Wo(){let t,e;return {promise:new Promise((s,n)=>{t=s,e=n;}),reject:e,resolve:t}}var Rs="0x0000000000000000000000000000000000000000000000000000000000000000";async function Ps(t){let e=M(t.account),r=Bd({chainId:t.chainId,exchange:t.exchange}),s={builder:Rs,maker:e.maker,makerAmount:toBaseUnits(Cd(t.orderSide,t.orderPrice,t.size)),metadata:Rs,salt:Qo().toString(),side:Ed(t.orderSide),signatureType:e.signatureType,signer:e.signer,takerAmount:toBaseUnits(Dd(t.orderSide,t.orderPrice,t.size)),timestamp:Math.floor(Date.now()/1e3).toString(),tokenId:t.tokenId},n$1;try{n$1=await t.signer.signTypedData(zd({domain:r,order:s}));}catch(i){throw n.fromError(i,"Could not sign the RFQ quote order.")}return {...s,signature:Ad({domain:r,order:s,signature:n$1})}}function Qo(){let t=new Uint8Array(8);return globalThis.crypto.getRandomValues(t),BigInt(`0x${Array.from(t,e=>e.toString(16).padStart(2,"0")).join("")}`)}var As=DecimalishSchema.transform(t=>Es(t)).refine(t=>t<=BigInt(Number.MAX_SAFE_INTEGER),{message:"Value exceeds the temporary numeric wire limit."}),_o=z.strictObject({price:As.refine(t=>t<1000000n,{message:"Price must be less than 1."}),size:As.optional(),source:z.enum(["collateral","inventory"]).default("collateral")});function vs(t){return I(t,_o)}async function Cs(t){let e=t.response.price,r=t.response.size===void 0?$o(t.request.requestedSize,e):t.response.size,s=await Ps({account:t.account,chainId:t.chainId,exchange:t.exchange,orderPrice:zo(t.request,t.response.source,e),orderSide:jo(t.response.source),signer:t.signer,size:r,tokenId:Vo(t.request,t.response.source)});return {price:e,signedOrder:s,size:r}}function Vo(t,e){return t.direction===RfqDirection.Buy?e==="collateral"?t.noPositionId:t.yesPositionId:e==="collateral"?t.yesPositionId:t.noPositionId}function zo(t,e,r){return t.direction===RfqDirection.Buy&&e==="collateral"||t.direction===RfqDirection.Sell&&e==="inventory"?1000000n-r:r}function jo(t){return t==="collateral"?OrderSide.BUY:OrderSide.SELL}function $o(t,e){let r=Es(t.value);return t.unit===RfqRequestedSizeUnit.Shares?r:r*1000000n/e}function Es(t){let e=/^(\d+)(?:\.(\d*))?$/.exec(t);if(e===null)throw new a("Value must be a valid decimal.");let[,r="",s=""]=e;if(s.length>6)throw new a("Value must have at most 6 decimal places.");let n=BigInt(r)*1000000n+BigInt(s.padEnd(6,"0"));if(n<=0n)throw new a("Value must be greater than 0.");return n}var Jo=3e4,Zo=3e4,A=class{#e;#s;#r;#o;#i;#t;#n;#a;#d;#u;#c=false;constructor(e){this.#e=e.account,this.#s=e.chainId,this.#r=e.credentials,this.#o=e.exchange,this.#i=e.headers,this.#t=e.signer,this.#n=e.url;}async connect(){if(this.#c)throw new c("RFQ quoter manager has been shut down.");if(this.#a!==void 0){if(!this.#a.closed)return this.#a;this.#a=void 0;}if(this.#u!==void 0)return this.#u;let e=new ve({account:this.#e,chainId:this.#s,credentials:this.#r,exchange:this.#o,headers:this.#i,onClose:()=>this.#p(e),signer:this.#t,url:this.#n});this.#d=e;let r;return r=(async()=>{try{if(await e.connect(),this.#c)throw await e.close(),new c("RFQ quoter manager has been shut down.");return this.#a=e,e}catch(s){throw await e.close(),s}finally{this.#u===r&&(this.#u=void 0),this.#d===e&&(this.#d=void 0);}})(),this.#u=r,r}async shutdown(){this.#c=true;let e=this.#a,r=this.#d,s=this.#u;this.#a=void 0,this.#d=void 0,this.#u=void 0,await Promise.allSettled([e?.close(),r?.close(),s?.catch(()=>{})]).then(()=>{});}#p(e){this.#a===e&&(this.#a=void 0),this.#d===e&&(this.#d=void 0);}},ve=class{#e;#s;#r;#o;#i;#t;#n;#a;#d=new ce$1;#u=pushable({objectMode:true});#c=new U(Zo);#p;#l;constructor(e){this.#e=e.account,this.#s=e.chainId,this.#r=e.credentials,this.#o=e.exchange,this.#i=e.headers,this.#t=e.onClose,this.#n=e.signer,this.#a=e.url;}get closed(){return this.#p!==void 0}async connect(){let e=Xo();this.#l=e;let r=setNonBlockingTimeout(()=>{e.reject(new c("RFQ quoter authentication timed out."));},Jo);try{await this.#d.connect({headers:this.#i,onConnectionLost:s=>this.#g(s),onError:()=>{},onMessage:s=>this.#R(s),onOpen:()=>this.#b(),url:this.#a}),await e.promise;}finally{clearTimeout(r),this.#l=void 0;}}async#h(e){if(!this.#d.send(e))throw new c("RFQ quoter websocket is not open.")}async close(){this.#p===void 0&&(this.#p=this.#y()),await this.#p;}[Symbol.asyncIterator](){return this.#u[Symbol.asyncIterator]()}async#y(){let e=new c("RFQ quoter websocket closed.");this.#S(e),this.#u.end(),await this.#d.close(),this.#t();}async#m(e){this.#p===void 0&&(this.#p=this.#f(e)),await this.#p;}async#f(e){this.#S(e),this.#u.end(e),await this.#d.close(),this.#t();}#S(e){this.#l?.reject(e),this.#c.rejectAll(e);}#b(){this.#d.send(hs(this.#e,this.#r));}#R(e){if(this.#p!==void 0)return;let r=RfqQuoterInboundMessageSchema.safeParse(e);if(!r.success)return;let s=r.data;switch(s.type){case "auth":this.#P(s);return;case "quote_request":this.#u.push(us(this,s));return;case "quote_ack":this.#c.resolve(D(s.rfqId),ps(s));return;case "quote_cancel_ack":this.#c.resolve(qe(s.rfqId,s.quoteId),ls(s));return;case "confirmation_request":this.#u.push(ds(this,s));return;case "confirmation_ack":this.#c.resolve(Ae(s.rfqId,s.quoteId),ms(s));return;case "execution_update":this.#u.push(s);return;case "trade":this.#u.push(s);return;case "rfq_error":this.#q(s);return}}#P(e){if(e.success===true){this.#l?.resolve(void 0);return}this.#l?.reject(new c(`RFQ quoter authentication failed: ${e.error}`));}#g(e$1){this.#m(new e("RFQ quoter connection lost.",e$1));}#q(e){if(e.requestType==="RFQ_QUOTE"){if(e.rfqId===void 0){this.#m(new c("Uncorrelated RFQ quoter error."));return}this.#c.reject(D(e.rfqId),new Jf(e.message,{code:e.code,errorId:e.errorId,rfqId:e.rfqId}));return}if(e.requestType==="RFQ_QUOTE_CANCEL"){if(e.rfqId===void 0||e.quoteId===void 0){this.#m(new c("Uncorrelated RFQ quoter error."));return}this.#c.reject(qe(e.rfqId,e.quoteId),new Lf(e.message,{code:e.code,errorId:e.errorId,quoteId:e.quoteId,rfqId:e.rfqId}));return}if(e.requestType==="RFQ_CONFIRMATION_RESPONSE"){if(e.rfqId===void 0||e.quoteId===void 0){this.#m(new c("Uncorrelated RFQ quoter error."));return}this.#c.reject(Ae(e.rfqId,e.quoteId),new Nf(e.message,{code:e.code,errorId:e.errorId,quoteId:e.quoteId,rfqId:e.rfqId}));}}async quote(e,r){let s=vs(r),n=await Cs({account:this.#e,chainId:this.#s,exchange:this.#o,request:e,response:s,signer:this.#n}),i=this.#c.waitFor(D(e.rfqId),`Timed out waiting for RFQ quote acknowledgement for ${e.rfqId}.`);try{return await this.#h(ys(e,n)),await i}catch(o){throw this.#c.remove(D(e.rfqId),i),o}}async cancelQuote(e){let r=qe(e.rfqId,e.quoteId),s=this.#c.waitFor(r,`Timed out waiting for RFQ quote cancellation acknowledgement for ${e.rfqId}.`);try{return await this.#h(fs(this.#e,e.rfqId,e.quoteId)),await s}catch(n){throw this.#c.remove(r,s),n}}async respondToConfirmation(e,r,s){let n=Ae(e,r),i=this.#c.waitFor(n,`Timed out waiting for RFQ confirmation acknowledgement for ${e}.`);try{return await this.#h(Ss(e,r,s)),await i}catch(o){throw this.#c.remove(n,i),o}}};function D(t){return `ACK_RFQ_QUOTE:${t}`}function qe(t,e){return `ACK_RFQ_QUOTE_CANCEL:${t}:${e}`}function Ae(t,e){return `ACK_RFQ_CONFIRMATION_RESPONSE:${t}:${e}`}function Xo(){let t,e;return {promise:new Promise((s,n)=>{t=s,e=n;}),reject:e,resolve:t}}var v=class{#e;#s;#r;#o=new ce$1({heartbeat:new _d});#i=new be$1;#t=new p({deriveServerState:sa});constructor(e){this.#e=e.headers,this.#s=e.url;}async subscribe(e){let{change:r,entry:s}=this.#t.add(e,{matches:ca(e)});return await this.#n(s,r),h(s.subscriber.queue,()=>this.#a(s))}async#n(e,r){try{if((await this.#u()).reusedOpenSocket){let{before:n,after:i}=r,o=ta(n,i);this.#m(o);}}catch(s){throw await this.#a(e),s}}async#a(e){let{before:r,after:s}=this.#t.remove(e),n=ra(r,s);this.#f(n),this.#t.hasActiveSubscriptions()||await this.close();}async close(){this.#r===void 0&&(this.#r=this.#d().finally(()=>{this.#r=void 0;})),await this.#r;}async#d(){this.#i.stop(),this.#t.endAll(),await this.#o.close();}#u(){return this.#o.connect({onConnectionLost:()=>this.#l(),onError:()=>this.#h(),onMessage:e=>this.#p(e),onOpen:()=>this.#c(),headers:this.#e,url:this.#s})}#c(){this.#i.resetBackoff(),this.#y();}#p(e){let r=RealtimeEventSchema.safeParse(e);r.success&&this.#t.dispatch(r.data);}#l(){this.#t.hasActiveSubscriptions()&&this.#S();}#h(){}#y(){this.#m(Array.from(this.#t.serverState().values()));}#m(e){e.length!==0&&this.#o.send(na(e));}#f(e){e.length!==0&&this.#o.send(ia(e));}#S(){this.#i.schedule({reconnect:()=>this.#u(),shouldReconnect:()=>this.#t.hasActiveSubscriptions()});}};function ta(t,e){return Array.from(e).flatMap(([r,s])=>t.has(r)?[]:[s])}function ra(t,e){return Array.from(t).flatMap(([r,s])=>e.has(r)?[]:[s])}function sa(t){let e=new Map;for(let{subscription:r}of t)for(let s of oa(r))e.has(s.key)||e.set(s.key,s);return e}function na(t){return {action:"subscribe",subscriptions:t.map(({topic:e,type:r})=>({topic:e,type:r}))}}function ia(t){return {action:"unsubscribe",subscriptions:t.map(({topic:e,type:r})=>({topic:e,type:r}))}}function oa(t){switch(t.topic){case "comments":return (t.types??["comment_created"]).map(e=>T("comments",e));case "prices.crypto.binance":return [T("crypto_prices","update")];case "prices.crypto.chainlink":return [T("crypto_prices_chainlink","update")];case "prices.crypto.chainlink.twap":return [T(aa(t.windowSeconds),"update")];case "prices.equity.pyth":return [T("equity_prices","update")];default:invariant(false,`Unknown RTDS topic: ${String(t)}`);}}function aa(t){switch(t){case 30:return "crypto_prices_twap_thirty";case 60:return "crypto_prices_twap_sixty";default:invariant(false,`Unknown TWAP window: ${String(t)}`);}}function T(t,e){return {key:`${t}:${e}`,topic:t,type:e}}function ca(t){switch(t.topic){case "comments":return e=>!(e.topic!=="comments"||t.types!==void 0&&t.types.length>0&&!t.types.includes(e.type)||(t.parentEntityId!==void 0||t.parentEntityType!==void 0)&&(!(e.type==="comment_created"||e.type==="comment_removed")||t.parentEntityId!==void 0&&e.payload.parentEntityID!==t.parentEntityId||t.parentEntityType!==void 0&&e.payload.parentEntityType!==t.parentEntityType));case "prices.crypto.binance":return e=>e.topic==="prices.crypto.binance"&&(t.symbols===void 0||t.symbols.length===0||t.symbols.includes(e.payload.symbol));case "prices.crypto.chainlink":return e=>e.topic==="prices.crypto.chainlink"&&(t.symbols===void 0||t.symbols.length===0||t.symbols.includes(e.payload.symbol));case "prices.crypto.chainlink.twap":return e=>e.topic==="prices.crypto.chainlink.twap"&&e.payload.windowSeconds===t.windowSeconds&&(t.symbols===void 0||t.symbols.length===0||t.symbols.includes(e.payload.symbol));case "prices.equity.pyth":return e=>e.topic==="prices.equity.pyth"&&e.payload.symbol.toLowerCase()===t.symbol.toLowerCase()&&(t.types===void 0||t.types.length===0||t.types.includes(e.type));default:invariant(false,`Unknown RTDS topic: ${String(t)}`);}}var C=class{#e;#s;#r;#o=new ce$1({heartbeat:new $d});#i=new be$1;#t=new p;constructor(e){this.#e=e.headers,this.#s=e.url;}async subscribe(e){let{entry:r}=this.#t.add(e);return await this.#n(r),h(r.subscriber.queue,()=>this.#a(r))}async#n(e){try{await this.#u();}catch(r){throw await this.#a(e),r}}async#a(e){this.#t.remove(e),this.#t.hasActiveSubscriptions()||await this.close();}async close(){this.#r===void 0&&(this.#r=this.#d().finally(()=>{this.#r=void 0;})),await this.#r;}async#d(){this.#i.stop(),this.#t.endAll(),await this.#o.close();}#u(){return this.#o.connect({onConnectionLost:()=>this.#l(),onError:()=>this.#h(),onMessage:e=>this.#p(e),onOpen:()=>this.#c(),headers:this.#e,url:this.#s})}#c(){this.#i.resetBackoff();}#p(e){let r=SportsResultEventSchema.safeParse(e);r.success&&this.#t.dispatch(r.data);}#l(){this.#t.hasActiveSubscriptions()&&this.#y();}#h(){}#y(){this.#i.schedule({reconnect:()=>this.#u(),shouldReconnect:()=>this.#t.hasActiveSubscriptions()});}};var W=class{#e;#s;get context(){return this.#e}get decorators(){return this.#s}get environment(){return this.context.environment}get clob(){return this.context.clob}get relayer(){return this.context.relayer}get rpc(){return this.context.rpc}get gamma(){return this.context.gamma}get data(){return this.context.data}get rfq(){return this.context.rfq}get perps(){return this.context.perps}get webSockets(){return this.context.webSockets}get supportsGasless(){return this.context.apiKey?.supportGasless??false}get hasBuilderApiKey(){return this.context.apiKey?.isBuilderKey??false}constructor(e){this.#e=e,this.#s=[];}async resolveClobHeaders(e){return this.context.apiKey?.isBuilderKey?this.context.apiKey.authorize(e):Promise.resolve({})}async resolveRelayerHeaders(e){return this.context.apiKey?.supportGasless?this.context.apiKey.authorize(e):Promise.resolve({})}rememberDecorator(e){this.#s.push(e);}},ya=z.object({key:ApiKeySchema,passphrase:z.string(),secret:z.string()}),fa=z.object({wallet:EvmAddressSchema,credentials:ya.optional(),nonce:z.number().int().nonnegative().optional()}).superRefine((t,e)=>{t.credentials!==void 0&&t.nonce!==void 0&&e.addIssue({code:"custom",message:"`credentials` and `nonce` are mutually exclusive.",path:["nonce"]});}).transform(t=>t.credentials!==void 0?{wallet:t.wallet,credentials:t.credentials}:t.nonce!==void 0?{wallet:t.wallet,nonce:t.nonce}:{wallet:t.wallet}),Q=class extends W{constructor(e){super({apiKey:e.apiKey,environment:e.environment,onRateLimitUpdate:e.onRateLimitUpdate,data:new Yd({headers:e.environment.data.headers,root:e.environment.data.rest}),gamma:new Yd({headers:e.environment.gamma.headers,root:e.environment.gamma.rest}),clob:new Yd({headers:e.environment.clob.headers,onRateLimitUpdate:e.onRateLimitUpdate,root:e.environment.clob.rest,resolveHeaders:r=>this.resolveClobHeaders(r)}),relayer:new Yd({headers:e.environment.relayer.headers,root:e.environment.relayer.rest,resolveHeaders:r=>this.resolveRelayerHeaders(r)}),rfq:new Yd({headers:e.environment.combos.headers,root:e.environment.combos.rest}),perps:new Yd({headers:e.environment.perps.headers,root:e.environment.perps.rest}),rpc:new J({url:e.environment.rpc}),webSockets:{clobMarket:new S({headers:e.environment.clob.market.headers,url:e.environment.clob.market.ws}),sports:new C({headers:e.environment.sports.headers,url:e.environment.sports.ws}),rtds:new v({headers:e.environment.rtds.headers,url:e.environment.rtds.ws}),perpsSubscriptions:new b({headers:e.environment.perps.headers,url:e.environment.perps.ws})}});}isSecureClient(){return false}isPublicClient(){return true}async closeSubscriptions(){await Promise.all([this.webSockets.clobMarket.close(),this.webSockets.rtds.close(),this.webSockets.sports.close(),this.webSockets.perpsSubscriptions.close()]).then(()=>{});}extend(e){return this.rememberDecorator(e),Object.assign(this,e(this)),this}beginAuthentication(e,r){let s=I(e,fa);return Promise.resolve(async function*(){let n=Math.floor(Date.now()/1e3),i=s?.nonce??0,o=expectEvmAddress(yield Ca()),R=expectEvmAddress(s.wallet),x=L$1(this.environment,o,R);if(s.credentials!==void 0){let we=this.#e(s.credentials,x,r);try{if((await ob(we)).includes(s.credentials.key))return we}catch(F){if(!(F instanceof g$1)||F.status!==401)throw F}}let Ts=yield {kind:"signAuthMessage",payload:Hr({address:o,chainId:this.environment.chainId,nonce:i,timestamp:n})},ws=await mb(this,{address:o,nonce:i,signature:expectEvmSignature(Ts),timestamp:n});return this.#e(ws,x,r)}.call(this))}#e(e,r,s){let n=new Te({account:r,apiKey:this.context.apiKey,credentials:e,environment:this.environment,onRateLimitUpdate:this.context.onRateLimitUpdate,signer:s});for(let i of this.decorators)n.extend(i);return n}},Te=class extends W{#e=false;get context(){return invariant(!this.#e,"This client has ended authentication and can no longer be used."),super.context}endAuthenticationLifecycle(){this.#e=true;}constructor(e){super({account:e.account,credentials:e.credentials,apiKey:e.apiKey,environment:e.environment,onRateLimitUpdate:e.onRateLimitUpdate,signer:e.signer,clob:new Yd({headers:e.environment.clob.headers,onRateLimitUpdate:e.onRateLimitUpdate,root:e.environment.clob.rest,resolveHeaders:r=>this.resolveClobHeaders(r)}),relayer:new Yd({headers:e.environment.relayer.headers,root:e.environment.relayer.rest,resolveHeaders:r=>this.resolveRelayerHeaders(r)}),rpc:new J({url:e.environment.rpc}),gamma:new Yd({headers:e.environment.gamma.headers,root:e.environment.gamma.rest}),data:new Yd({headers:e.environment.data.headers,root:e.environment.data.rest}),rfq:new Yd({headers:e.environment.combos.headers,root:e.environment.combos.rest}),perps:new Yd({headers:e.environment.perps.headers,root:e.environment.perps.rest}),secureClob:new Yd({headers:e.environment.clob.headers,onRateLimitUpdate:e.onRateLimitUpdate,resolveHeaders:async r=>({...await this.resolveClobHeaders(r),...await this.#r(r)}),root:e.environment.clob.rest}),combos:new Yd({headers:e.environment.combos.collateralReturn.headers,resolveHeaders:r=>this.resolveRelayerHeaders(r),root:e.environment.combos.collateralReturn.rest}),builderGateway:new Yd({headers:e.environment.combos.builderGateway.headers,resolveHeaders:async r=>({...await this.#s(r),...await this.#r(r)}),root:e.environment.combos.builderGateway.rest}),webSockets:{clobMarket:new S({headers:e.environment.clob.market.headers,url:e.environment.clob.market.ws}),clobUser:new g({credentials:e.credentials,headers:e.environment.clob.user.headers,url:e.environment.clob.user.ws}),rfqQuoter:new A({account:e.account,chainId:e.environment.chainId,credentials:e.credentials,exchange:e.environment.contracts.exchangeV3,headers:e.environment.combos.headers,signer:e.signer,url:e.environment.combos.ws}),sports:new C({headers:e.environment.sports.headers,url:e.environment.sports.ws}),rtds:new v({headers:e.environment.rtds.headers,url:e.environment.rtds.ws}),perpsSubscriptions:new b({headers:e.environment.perps.headers,url:e.environment.perps.ws}),perpsSession:new q({chainId:e.environment.chainId,headers:e.environment.perps.headers,restUrl:e.environment.perps.rest,wsUrl:e.environment.perps.ws})}});}get credentials(){return this.context.credentials}get account(){return this.context.account}get signer(){return this.context.signer}get secureClob(){return this.context.secureClob}get combos(){return this.context.combos}get builderGateway(){return this.context.builderGateway}get webSockets(){return this.context.webSockets}async closeSubscriptions(){await Promise.allSettled([this.webSockets.clobMarket.close(),this.webSockets.rtds.close(),this.webSockets.sports.close(),this.webSockets.perpsSubscriptions.close(),this.webSockets.clobUser.close()]).then(()=>{});}isSecureClient(){return true}isPublicClient(){return false}extend(e){return this.rememberDecorator(e),Object.assign(this,e(this)),this}async endAuthentication(){let e=this.closeSubscriptions(),r=this.webSockets.perpsSession.shutdown(),s=this.webSockets.rfqQuoter.shutdown(),{apiKey:n,environment:i,onRateLimitUpdate:o}=this.context;try{await qb(this);}finally{this.endAuthenticationLifecycle(),await Promise.allSettled([e,r,s]).then(()=>{});}let R=new Q({apiKey:n,environment:i,onRateLimitUpdate:o});for(let x of this.decorators)R.extend(x);return R}async#s(e){return e.method!=="GET"&&this.context.apiKey?.isBuilderKey?this.context.apiKey.authorize(e):{}}async#r(e){try{let r=Math.floor(Date.now()/1e3);return {POLY_ADDRESS:this.account.signer,POLY_API_KEY:this.credentials.key,POLY_PASSPHRASE:this.credentials.passphrase,POLY_SIGNATURE:await Nr(this.credentials.secret,r,e.method,e.path,e.body),POLY_TIMESTAMP:`${r}`}}catch(r){throw n.fromError(r,"Could not sign the L2-authenticated request")}}};function ks(t={}){return new Q({environment:t.environment??Se,apiKey:t.apiKey,onRateLimitUpdate:t.onRateLimitUpdate}).extend(jr)}var Sa=o(k,h$1,g$1,n,i,j,c,b$1,a),ba=o(a);async function Ra(t){let e=ks({environment:t.environment,apiKey:t.apiKey,onRateLimitUpdate:t.onRateLimitUpdate}),r=await Pa(e,t),s=await e.beginAuthentication({wallet:r,credentials:t.credentials,nonce:t.nonce},t.signer).then(Ba(t.signer));if(s.account.walletType===WalletType.EOA||await Ga(s,{wallet:s.account.wallet,type:s.account.walletType}))return s;if(s.account.walletType===WalletType.DEPOSIT_WALLET)return await ga(s),s;throw new a(`Wallet ${s.account.wallet} does not exist. Provide an existing wallet address, or omit wallet to use the default Deposit Wallet flow.`)}async function Pa(t,e){if(e.wallet!==void 0)return e.wallet;let r=expectEvmAddress(await e.signer.getAddress()),s=N(r,t.environment.walletDerivation);return await Ga(t,{wallet:s,type:WalletType.DEPOSIT_WALLET})?s:O(r,t.environment.walletDerivation)}async function ga(t){let e=O(t.account.signer,t.environment.walletDerivation);if(!isSameEvmAddress(t.account.wallet,e))throw new a(`Wallet ${t.account.wallet} does not match the expected Deposit Wallet ${e} for this signer, nor a deployed wallet address.`);await(await Ja(t)).wait();}
2
- export{Sa as CreateSecureClientError,ba as SetupGaslessWalletError,ue as accountActions,jr as allActions,de as analyticsActions,Nr as buildHmacSignature,ks as createPublicClient,Ra as createSecureClient,pe as dataActions,le as discoveryActions,Eo as forkEnvironmentConfig,me as perpsActions,Su as preproduction,Se as production,qo as relayerApiKey,go as remoteBuilderSigning,he as rewardsActions,_r as rfqActions,Vr as sessionKeyActions,ye as subscriptionsActions,zr as tradingActions,fe as walletActions};//# sourceMappingURL=index.js.map
1
+ import {Q,_,Y as Y$1,W,ua,sa as sa$1,cf,af,_e,Ye,Nc,We,Ue,Se as Se$1,Pc,Lc,Jc,Hc,yb,qa as qa$1,ed,id,sd,gd,ac,_b,Yb,Wb,Ub,Sb,Qb,Ob,Cb,Ab,zc,Bc,rc,pc,nc,Sf,Vg,Jg,Hg,ug,Tg,Rg,Pg,Ng,Vc,yg,wg,cd,ad,_c,Yc,xc,vc,tc,Zd,Pe as Pe$1,Qe as Qe$1,Me,Le as Le$1,Oe,oa,ma,ka as ka$1,ia as ia$1,ga as ga$1,ea,fg,dg,bg,_f,Fg,Bg,Dg,Lg,U as U$1,S,qd,od,md,kd,Pd,yd,xd,Xd,Vd,Td,Rd,kc,gc,Qf,Hf,vf,Zg,ab,Ya as Ya$1,gb,db,Ba as Ba$1,Ga as Ga$1,N as N$1,O,Ja as Ja$1,Ce as Ce$1,Ae as Ae$1,ye,ue,se,qe as qe$1,Ee as Ee$1,we as we$1,ec,cc,J as J$1,$d,I,Ca,L as L$1,ob,mb,ge as ge$1,de,fe,be,ce,ae,qb,oe,Tf,Vf,Xf,ee,M as M$1,Bd,Dd,Ed,Cd,zd,Ad}from'./chunk-5JHFOBBZ.js';export{cg as AcceptComboQuoteError,$a as ApproveErc1155ForAllError,Xa as ApproveErc20Error,_d as ApprovePerpsBuilderFeeError,ke as ArmPerpsAutoCancelError,Cg as AuthorizeSessionKeyError,Qc as BiggestWinnerKind,Rc as BuilderVolumeInterval,nd as CancelAllError,pd as CancelMarketOrdersError,jd as CancelOrderError,ld as CancelOrdersError,lc as CollateralReturnKnownOperationKind,E as CombinatorialPrepareConditionCallError,ig as ComboAcceptFailureReason,va as ComboActivityType,df as ComboPositionSortBy,ef as ComboPositionStatus,jg as ComboQuoteUnavailableReason,Ud as CreateLimitOrderError,Qd as CreateMarketOrderError,u as CtfMergePositionsCallError,w as CtfRedeemPositionsCallError,s as CtfSplitPositionCallError,Ie as DepositToPerpsError,bf as DownloadAccountingSnapshotError,Z as DropNotificationsError,b as Erc20ApprovalCallError,m as Erc20TransferCallError,rd as EstimateMarketPriceError,jc as ExecuteCollateralReturnPlanError,Ic as FetchBuilderVolumeError,P as FetchClosedOnlyModeError,oc as FetchCommentsByIdError,uc as FetchEventError,Ac as FetchEventLiveVolumeError,wc as FetchEventTagsError,Zb as FetchLastTradePriceError,$b as FetchLastTradePricesError,$c as FetchMarketError,bd as FetchMarketTagsError,zb as FetchMidpointError,Bb as FetchMidpointsError,X as FetchNotificationsError,hd as FetchOpenInterestError,Rb as FetchOrderBookError,Tb as FetchOrderBooksError,T as FetchOrderError,da as FetchOrderScoringError,fa as FetchOrdersScoringError,ve as FetchPerpsBookError,he as FetchPerpsBuilderApprovalsError,je as FetchPerpsBuilderEarningsSummaryError,Yd as FetchPerpsBuilderStatusError,De as FetchPerpsFeesError,pe as FetchPerpsInstrumentsError,re as FetchPerpsTickerError,te as FetchPerpsTickersError,Ve as FetchPortfolioValueError,Nb as FetchPriceError,Pb as FetchPricesError,Rf as FetchPublicProfileError,Sg as FetchRelatedTagResourcesError,Qg as FetchRelatedTagsError,yc as FetchResolutionsError,na as FetchRewardPercentagesError,gg as FetchRfqStatusError,xg as FetchSeriesError,Ag as FetchSessionKeysError,Ig as FetchSportsMarketTypesError,Vb as FetchSpreadError,Xb as FetchSpreadsError,Og as FetchTagError,ja as FetchTotalEarningsForUserForDayError,Mc as FetchTraderLeaderboardStandingError,cb as FetchTradingApprovalsStateError,Ze as FetchUserPnlError,Xe as FetchUserStatsError,$e as FetchUserVolumeError,Sc as LeaderboardWindow,V as ListAccountTradesError,ra as ListActivityError,Oc as ListBiggestWinnersError,Gc as ListBuilderLeaderboardError,xb as ListBuilderTradesError,ta as ListComboActivityError,Zc as ListComboMarketsError,Te as ListComboPositionsError,qc as ListCommentsByUserAddressError,mc as ListCommentsError,bc as ListCurrentRewardsError,sc as ListEventsError,dd as ListMarketHoldersError,dc as ListMarketRewardsError,Xc as ListMarketsError,R as ListOpenOrdersError,ie as ListPerpsBuilderEarningsError,xe as ListPerpsCandlesError,ze as ListPerpsFundingHistoryError,Be as ListPerpsTradesError,Re as ListPositionsError,fd as ListPriceHistoryError,vg as ListSeriesError,Gg as ListSportsError,Mg as ListTagsError,Ug as ListTeamsError,Kc as ListTraderLeaderboardError,pa as ListTradesError,la as ListUserEarningsAndMarketsConfigError,ha as ListUserEarningsForDayError,a as MAX_UINT256,Cf as MergePositionsError,Fe as OpenPerpsSessionError,Zf as OpenRfqSessionError,q as PerpsDepositCallError,Wd as PlaceLimitOrderError,Sd as PlaceMarketOrderError,fc as PlanCollateralReturnError,ff as PositionFilterType,gf as PositionSortBy,hf as PositionStatus,vd as PostOrderError,wd as PostOrdersError,Wc as PriceHistoryInterval,Pf as RedeemPositionsError,ag as RequestComboQuoteError,Cc as ResolutionMarketType,Dc as ResolutionReporter,Ec as ResolutionSource,Fc as ResolutionStatus,ne as RevokePerpsBuilderFeeError,Ge as RevokePerpsCredentialsError,Eg as RevokeSessionKeyError,Wf as RfqCancelQuoteError,Vf as RfqCancelQuoteRejectedError,kg as RfqConfirmationDecision,Yf as RfqConfirmationError,Xf as RfqConfirmationRejectedError,lg as RfqDirection,mg as RfqExecutionStatus,ng as RfqKnownErrorCode,Uf as RfqQuoteError,Tf as RfqQuoteRejectedError,og as RfqRejectionCode,$f as RfqRequestRejectedError,pg as RfqRequestedSizeUnit,qg as RfqSide,rg as RfqStatus,A as RouterMergeCallError,C as RouterRedeemCallError,y as RouterSplitCallError,tg as SearchError,sg as SearchSort,zg as SessionKeyKnownScope,fb as SetupTradingApprovalsError,K as SignerType,wa as SortDirection,qf as SplitPositionError,Kg as SubscribeError,xa as TipSide,ya as TradeFilterType,Tc as TraderLeaderboardSort,Yg as TransferErc20Error,Ke as TransferPerpsCollateralError,le as UpdatePerpsLeverageError,me as UpdatePerpsMarginError,if as UserPnlFidelity,jf as UserPnlInterval,eg as WaitForComboFillError,Od as WaitForOrderFillSettlementError,za as WaitForTransactionError,Je as WithdrawFromPerpsError,o as authorizeSessionSignerCall,F as combinatorialPrepareConditionCall,v as ctfMergePositionsCall,x as ctfRedeemPositionsCall,t as ctfSplitPositionCall,l as decodeErc1155BalanceOfBatchResult,j as decodeErc1155BalanceOfResult,h as decodeErc1155IsApprovedForAllResult,e as decodeErc20AllowanceResult,G as encodeProxyCall,H as encodeSafeMultisendCall,f as erc1155ApprovalForAllCall,k as erc1155BalanceOfBatchCall,i as erc1155BalanceOfCall,g as erc1155IsApprovedForAllCall,d as erc20AllowanceCall,c as erc20ApprovalCall,n as erc20TransferCall,Aa as expectTransactionHandle,r as perpsDepositCall,p as revokeSessionSignerCall,B as routerMergeCall,D as routerRedeemCall,z as routerSplitCall}from'./chunk-5JHFOBBZ.js';import {a,r,m,i,h,q,j as j$1,l,d,c,f}from'./chunk-VLNLVY4C.js';export{o as AutoCancelDailyLimitError,m as CancelledSigningError,f as ConnectionLostError,n as InsufficientLiquidityError,k as OperationAbortedError,b as PaginationLimitError,p as PerpsCancelRetryError,i as RateLimitError,s as RealtimeKnownErrorCode,h as RequestRejectedError,q as SigningError,j as TimeoutError,g as TradingRestriction,l as TransactionFailedError,d as TransportError,c as UnexpectedResponseError,a as UserInputError,e as WebSocketKnownCloseCode,r as makeErrorGuard}from'./chunk-VLNLVY4C.js';import {DecimalishSchema,ApiKeySchema,EvmAddressSchema,toBaseUnits,OrderSide}from'@polymarket/bindings';export{CommentParentEntityType,OrderSide,OrderType}from'@polymarket/bindings';export{AssetType,NotificationType,OrderPostStatus,OrderResponseErrorCode,SignatureType}from'@polymarket/bindings/clob';export{ActivityType}from'@polymarket/bindings/data';import {WalletType}from'@polymarket/bindings/gamma';export{ComboKnownStatus,ProtocolVersion,TeamOrdering,WalletType}from'@polymarket/bindings/gamma';export{PerpsDepositStatus,PerpsInstrumentCategory,PerpsInstrumentType,PerpsInternalTransferDirection,PerpsKlineInterval,PerpsKnownCancelOrderErrorCode,PerpsKnownInternalTransferType,PerpsKnownWithdrawalStatus,PerpsLiquidityRole,PerpsMarginType,PerpsNotificationOrderType,PerpsNotificationType,PerpsOrderStatus,PerpsSide,PerpsSortDirection,PerpsTimeInForce}from'@polymarket/bindings/perps';import {z}from'zod';import {expectEvmAddress,isSameEvmAddress,expectEvmSignature,invariant,setNonBlockingTimeout}from'@polymarket/types';import {TypedData}from'ox';import {PerpsMarketDataEventSchema,RealtimeEventSchema,SportsResultEventSchema,MarketEventSchema,UserEventSchema,RealtimeKnownErrorCode,PolyboltAckOp,PolyboltAckSchema,PolyboltEnvelopeSchema,parsePolyboltEvent,PolyboltChannel}from'@polymarket/bindings/subscriptions';import {pushable}from'it-pushable';import {RfqQuoterInboundMessageSchema,RfqConfirmationDecision,RfqRequestedSizeUnit,RfqDirection}from'@polymarket/bindings/combos';var Ko=z.object({POLY_BUILDER_API_KEY:z.string().min(1),POLY_BUILDER_TIMESTAMP:z.string().min(1),POLY_BUILDER_PASSPHRASE:z.string().min(1),POLY_BUILDER_SIGNATURE:z.string().min(1)});function Ho(t){return new Se(t)}function _o(t){return new Pe(t)}var Se=class{#e;constructor(e){this.#e=e;}get isBuilderKey(){return true}get supportGasless(){return true}async authorize(e){try{return await this.#t(e)}catch(r){throw q.fromError(r,"Could not authorize the builder-authenticated request")}}async#s(){let e=this.#e.headers,r=typeof e=="function"?await e():e,s=new Headers(r);return s.set("content-type","application/json"),s}async#t(e){let r=await fetch(this.#e.url,{body:JSON.stringify({body:e.body,method:e.method,path:e.path}),credentials:this.#e.credentials,headers:await this.#s(),method:"POST",mode:"cors"});if(!r.ok)throw new Error(`Remote signer rejected request with status ${r.status}`);return Ko.parse(await r.json())}},Pe=class{#e;constructor(e){this.#e=e;}get isBuilderKey(){return false}get supportGasless(){return true}authorize(){return Promise.resolve({RELAYER_API_KEY:this.#e.key,RELAYER_API_KEY_ADDRESS:this.#e.address})}};function ts(t){let e={chainId:t.chainId,name:"ClobAuthDomain",version:"1"};return {domain:e,message:{address:t.address,message:"This message attests that I control the given wallet",nonce:t.nonce??0,timestamp:`${t.timestamp}`},primaryType:"ClobAuth",types:{EIP712Domain:TypedData.extractEip712DomainTypes(e),ClobAuth:[{name:"address",type:"address"},{name:"timestamp",type:"string"},{name:"nonce",type:"uint256"},{name:"message",type:"string"}]}}}function zo(t){return {listPositions:Se$1.bind(null,t),listComboPositions:Ue.bind(null,t),fetchPortfolioValue:We.bind(null,t),fetchTraderLeaderboardStanding:Nc.bind(null,t),fetchUserStats:Ye.bind(null,t),fetchUserPnl:_e.bind(null,t),fetchUserVolume:af.bind(null,t),downloadAccountingSnapshot:cf.bind(null,t),listActivity:sa$1.bind(null,t),listComboActivity:ua.bind(null,t)}}function P(t,e={}){return e===null||typeof e!="object"||Array.isArray(e)?e:{...e,user:e.user===void 0?t.account.wallet:e.user}}function Re(t){let e=zo(t);return t.isPublicClient()?e:{...e,listPositions:r=>Se$1(t,P(t,r)),listComboPositions:r=>Ue(t,P(t,r)),fetchPortfolioValue:r=>We(t,P(t,r)),fetchTraderLeaderboardStanding:r=>Nc(t,P(t,r)),fetchUserStats:r=>Ye(t,P(t,r)),fetchUserPnl:r=>_e(t,P(t,r)),fetchUserVolume:r=>af(t,P(t,r)),downloadAccountingSnapshot:r=>cf(t,P(t,r)),listActivity:r=>sa$1(t,P(t,r)),listComboActivity:r=>ua(t,P(t,r)),listAccountTrades:W.bind(null,t),fetchNotifications:Y$1.bind(null,t),dropNotifications:_.bind(null,t),fetchClosedOnlyMode:Q.bind(null,t)}}function ge(t){return {listBuilderTrades:yb.bind(null,t),listBuilderLeaderboard:Hc.bind(null,t),fetchBuilderVolume:Jc.bind(null,t),listTraderLeaderboard:Lc.bind(null,t),listBiggestWinners:Pc.bind(null,t)}}function ve(t){return {fetchEventLiveVolume:Bc.bind(null,t),fetchResolutions:zc.bind(null,t),fetchMidpoint:Ab.bind(null,t),fetchMidpoints:Cb.bind(null,t),fetchPrice:Ob.bind(null,t),fetchPrices:Qb.bind(null,t),fetchOrderBook:Sb.bind(null,t),fetchOrderBooks:Ub.bind(null,t),fetchSpread:Wb.bind(null,t),fetchSpreads:Yb.bind(null,t),fetchLastTradePrice:_b.bind(null,t),fetchLastTradePrices:ac.bind(null,t),listPriceHistory:gd.bind(null,t),estimateMarketPrice:sd.bind(null,t),fetchOpenInterest:id.bind(null,t),listMarketHolders:ed.bind(null,t),listTrades:qa$1.bind(null,t)}}function qe(t){return {listEvents:tc.bind(null,t),fetchEvent:vc.bind(null,t),fetchEventTags:xc.bind(null,t),listMarkets:Yc.bind(null,t),listComboMarkets:_c.bind(null,t),fetchMarket:ad.bind(null,t),fetchMarketTags:cd.bind(null,t),listSeries:wg.bind(null,t),fetchSeries:yg.bind(null,t),listMarketClarifications:Vc.bind(null,t),listTags:Ng.bind(null,t),fetchTag:Pg.bind(null,t),fetchRelatedTags:Rg.bind(null,t),fetchRelatedTagResources:Tg.bind(null,t),search:ug.bind(null,t),listSports:Hg.bind(null,t),fetchSportsMarketTypes:Jg.bind(null,t),listTeams:Vg.bind(null,t),fetchPublicProfile:Sf.bind(null,t),listComments:nc.bind(null,t),fetchCommentsById:pc.bind(null,t),listCommentsByUserAddress:rc.bind(null,t)}}function Ae(t){let e={fetchPerpsBuilderStatus:Zd.bind(null,t),fetchPerpsBook:r=>we$1(t,r),fetchPerpsFees:()=>Ee$1(t),fetchPerpsInstruments:r=>qe$1(t,r),fetchPerpsTicker:r=>se(t,r),fetchPerpsTickers:r=>ue(t,r),listPerpsCandles:r=>ye(t,r),listPerpsFundingHistory:r=>Ae$1(t,r),listPerpsTrades:r=>Ce$1(t,r)};return t.isSecureClient()?{...e,depositToPerps:r=>Oe(t,r),openPerpsSession:r=>Le$1(t,r),revokePerpsCredentials:r=>Me(t,r),transferPerpsCollateral:Qe$1.bind(null,t),withdrawFromPerps:r=>Pe$1(t,r)}:e}function Vo(t){return {listCurrentRewards:cc.bind(null,t),listMarketRewards:ec.bind(null,t)}}function Ce(t){let e=Vo(t);return t.isPublicClient()?e:{...e,fetchOrderScoring:ea.bind(null,t),fetchOrdersScoring:ga$1.bind(null,t),listUserEarningsForDay:ia$1.bind(null,t),fetchTotalEarningsForUserForDay:ka$1.bind(null,t),listUserEarningsAndMarketsConfig:ma.bind(null,t),fetchRewardPercentages:oa.bind(null,t)}}function rs(t){return {openRfqSession(){return _f(t)},requestComboQuote(e){return bg(t,e)},acceptComboQuote(e){return dg(t,e)},waitForComboFill(e){return fg(t,e)}}}function ss(t){return {authorizeSessionKey:Dg.bind(null,t),fetchSessionKeys:Bg.bind(null,t),revokeSessionKey:Fg.bind(null,t)}}function Ee(t){return t.isSecureClient()?{subscribe(e){return Lg(t,e)}}:{subscribe(e){return Lg(t,e)}}}function is(t){return {createMarketOrder:Rd.bind(null,t),placeMarketOrder:Td.bind(null,t),createLimitOrder:Vd.bind(null,t),placeLimitOrder:Xd.bind(null,t),postOrder:xd(t),postOrders:yd(t),waitForOrderFillSettlement:Pd.bind(null,t),cancelOrder:kd.bind(null,t),cancelOrders:md.bind(null,t),cancelAll:od.bind(null,t),cancelMarketOrders:qd.bind(null,t),listOpenOrders:S.bind(null,t),fetchOrder:U$1.bind(null,t)}}function No(t){return {fetchTradingApprovalsState:db.bind(null,t)}}function ke(t){let e=No(t);return t.isPublicClient()?e:{...e,fetchTradingApprovalsState:()=>db(t,{user:t.account.wallet}),setupTradingApprovals:gb.bind(null,t),approveErc20:Ya$1.bind(null,t),approveErc1155ForAll:ab.bind(null,t),transferErc20:Zg.bind(null,t),splitPosition:vf.bind(null,t),mergePositions:Hf.bind(null,t),redeemPositions:Qf.bind(null,t),planCollateralReturn:gc.bind(null,t),executeCollateralReturnPlan:kc.bind(null,t)}}function ns(t){return t.isSecureClient()?{...Re(t),...ge(t),...ve(t),...qe(t),...Ae(t),...Ce(t),...rs(t),...ss(t),...Ee(t),...is(t),...ke(t)}:{...Re(t),...ge(t),...ve(t),...qe(t),...Ae(t),...Ce(t),...Ee(t),...ke(t)}}var we={name:"production",chainId:137,rpc:"https://polygon.drpc.org",walletDerivation:{depositWalletFactory:expectEvmAddress("0x00000000000Fb5C9ADea0298D729A0CB3823Cc07"),depositWalletBeacon:expectEvmAddress("0x7A18EDfe055488A3128f01F563e5B479D92ffc3a"),depositWalletImplementation:expectEvmAddress("0x58CA52ebe0DadfdF531Cde7062e76746de4Db1eB"),proxyFactory:expectEvmAddress("0xaB45c5A4B0c941a2F231C04C3f49182e1A254052"),proxyImplementation:expectEvmAddress("0x44e999d5c2F66Ef0861317f9A4805AC2e90aEB4f"),safeFactory:expectEvmAddress("0xaacFeEa03eb1561C4e67d661e40682Bd20E3541b"),safeInitCodeHash:"0x2bce2127ff07fb632d16c8347c4ebf501f4841168bed00d9e6ef715ddb6fcecf"},contracts:{collateralToken:expectEvmAddress("0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB"),conditionalTokens:expectEvmAddress("0x4D97DCd97eC945f40cF65F87097ACe5EA0476045"),negRiskAdapter:expectEvmAddress("0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296"),collateralAdapter:expectEvmAddress("0xAdA100Db00Ca00073811820692005400218FcE1f"),negRiskCollateralAdapter:expectEvmAddress("0xadA2005600Dec949baf300f4C6120000bDB6eAab"),standardExchange:expectEvmAddress("0xE111180000d2663C0091e4f400237545B87B996B"),negRiskExchange:expectEvmAddress("0xe2222d279d744050d28e00520010520000310F59"),exchangeV3:expectEvmAddress("0xe3333700cA9d93003F00f0F71f8515005F6c00Aa"),protocolV2Router:expectEvmAddress("0x12121212006e4CD160D18e3f00711DA5c3372600"),binaryModule:expectEvmAddress("0x1000008dD9001B968442c1000017eaE6E0dA00Ba"),negRiskModule:expectEvmAddress("0x200000900045e3B6259600682756002200028933"),combinatorialModule:expectEvmAddress("0x30000034706c7d8e12009dab006be20000c031a8"),positionManager:expectEvmAddress("0x006F54F7f9A22e0000CC2AB60031000000ae9fEF"),autoRedeemOperator:expectEvmAddress("0xa1200000d0002264C9a1698e001292D00E1b00af"),safeMultisend:expectEvmAddress("0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761"),relayHub:expectEvmAddress("0xD216153c06E857cD7f72665E0aF1d7D82172F494"),perpsDepositContract:expectEvmAddress("0xDCa4af75705dbB50f62437045afF9921947917d2")},clob:{rest:"https://clob.polymarket.com",market:{ws:"wss://ws-subscriptions-clob.polymarket.com/ws/market"},user:{ws:"wss://ws-subscriptions-clob.polymarket.com/ws/user"}},relayer:{rest:"https://relayer-v2.polymarket.com"},gamma:{rest:"https://gamma-api.polymarket.com"},data:{rest:"https://data-api.polymarket.com"},combos:{rest:"https://combos-rfq-api.polymarket.com",ws:"wss://combos-rfq-gateway-quoter.polymarket.com/ws/rfq",builderGateway:{rest:"https://combos-rfq-gateway-builder.polymarket.com"},collateralReturn:{rest:"https://combos-rfq-collateral-return.polymarket.com"}},perps:{rest:"https://api.perpetuals.polymarket.com",ws:"wss://ws.perpetuals.polymarket.com/v1/ws"},realtime:{ws:"wss://ws-live-v2.polymarket.com/ws"},rtds:{ws:"wss://ws-live-data.polymarket.com"},sports:{ws:"wss://sports-api.polymarket.com/ws"},relayerMaxPolls:100,relayerPollFrequencyMs:2e3};function $o(t,e=we){return {...e,...t,walletDerivation:{...e.walletDerivation,...t.walletDerivation},contracts:{...e.contracts,...t.contracts},clob:{...k(e.clob,t.clob),market:L(e.clob.market,t.clob?.market),user:L(e.clob.user,t.clob?.user)},relayer:k(e.relayer,t.relayer),gamma:k(e.gamma,t.gamma),data:k(e.data,t.data),combos:{...os(e.combos,t.combos),builderGateway:k(e.combos.builderGateway,t.combos?.builderGateway),collateralReturn:k(e.combos.collateralReturn,t.combos?.collateralReturn)},perps:os(e.perps,t.perps),realtime:L(e.realtime,t.realtime),rtds:L(e.rtds,t.rtds),sports:L(e.sports,t.sports)}}function k(t,e){return {...t,...e,headers:Te(t.headers,e?.headers)}}function L(t,e){return {...t,...e,headers:Te(t.headers,e?.headers)}}function os(t,e){return {...t,...e,headers:Te(t.headers,e?.headers)}}function Te(t,e){if(!(t===void 0&&e===void 0))return {...t,...e}}var td=$o({name:"preproduction",clob:{rest:"https://clob-preprod-int-v2.polymarket.com"},data:{rest:"https://data-api-preprod-int.polymarket.com"},gamma:{rest:"https://gamma-api-preprod-int.polymarket.com"},relayer:{rest:"https://relayer-v2-preprod-int.polymarket.com"}});async function as(t,e,r,s,i){let n=`${e}${r}${s}`;i!==void 0&&(n+=i);let o=await globalThis.crypto.subtle.importKey("raw",Go(t),{name:"HMAC",hash:"SHA-256"},false,["sign"]),a=await globalThis.crypto.subtle.sign("HMAC",o,new TextEncoder().encode(n));return Jo(Yo(a))}function Go(t){let e=t.replace(/-/g,"+").replace(/_/g,"/").replace(/[^A-Za-z0-9+/=]/g,""),r=atob(e),s=new Uint8Array(r.length);for(let i=0;i<r.length;i+=1)s[i]=r.charCodeAt(i);return s.buffer}function Yo(t){let e=new Uint8Array(t),r="";for(let s of e)r+=String.fromCharCode(s);return btoa(r)}function Jo(t){return t.replace(/\+/g,"-").replace(/\//g,"_")}function R(t,e){let r;return {close:()=>(r===void 0&&(r=Promise.resolve(t.return()).then(()=>e())),r),[Symbol.asyncIterator](){return t[Symbol.asyncIterator]()}}}var b=class{#e=new Set;#s;constructor(e){this.#s=e?.deriveServerState??(()=>{});}add(e,r={}){let s={queue:pushable({objectMode:true})};r.matches!==void 0&&(s.matches=r.matches);let i={subscription:e,subscriber:s};return {change:this.#t(i),entry:i}}#t(e){let r=this.serverState();return this.#e.add(e),{before:r,after:this.serverState()}}remove(e){let r=this.serverState();return this.#e.delete(e),e.subscriber.queue.end(),{before:r,after:this.serverState()}}dispatch(e){for(let{subscriber:r}of this.#e)(r.matches===void 0||r.matches(e))&&r.queue.push(e);}hasActiveSubscriptions(){return this.#e.size>0}endAll(e){for(let{subscriber:r}of this.#e)r.queue.end(e);this.#e.clear();}serverState(){return this.#s(this.#e)}};function xe(t,e,r){let s=H(r.assetsIds,e.assetsIds),i=H(e.assetsIds,r.assetsIds);s.length>0&&t(cs(s,r.customFeatureEnabled));let n=r.assetsIds[0];s.length===0&&e.customFeatureEnabled!==r.customFeatureEnabled&&n!==void 0&&t(cs([n],r.customFeatureEnabled)),i.length>0&&t(Xo(i));}function Fe(t,e,r){if(r.includeAllMarkets){!e.includeAllMarkets&&e.markets.length>0&&t(ds(e.markets));return}if(e.includeAllMarkets){r.markets.length>0&&t(us(r.markets));return}let s=H(r.markets,e.markets),i=H(e.markets,r.markets);s.length>0&&t(us(s)),i.length>0&&t(ds(i));}function ps(t){let e=new Set,r=false;for(let{subscription:s}of t){for(let i of s.assetIds??s.tokenIds)e.add(i);r||=s.customFeatureEnabled===true;}return {assetsIds:Array.from(e),customFeatureEnabled:r}}function ls(t){let e=false,r=new Set;for(let{subscription:s}of t){if(bs(s)){e=true;continue}for(let i of s.markets??[])r.add(i);}return {includeAllMarkets:e,markets:e?[]:Array.from(r)}}function ms(t){return {assets_ids:t.assetsIds,custom_feature_enabled:t.customFeatureEnabled,type:"market"}}function cs(t,e){return {assets_ids:t,custom_feature_enabled:e,operation:"subscribe"}}function Xo(t){return {assets_ids:t,operation:"unsubscribe"}}function hs(t,e){let r={auth:{apiKey:e.key,passphrase:e.passphrase,secret:e.secret},type:"user"};return t.includeAllMarkets||(r.markets=t.markets),r}function us(t){return {markets:t,operation:"subscribe"}}function ds(t){return {markets:t,operation:"unsubscribe"}}function ys(t){let e=t.assetIds??t.tokenIds;return r=>{switch(r.type){case "price_change":return r.payload.priceChanges.some(s=>e.includes(s.assetId));case "new_market":return t.customFeatureEnabled===true;case "market_resolved":return t.customFeatureEnabled===true&&(r.payload.assetIds??[]).some(s=>e.includes(s));case "best_bid_ask":return t.customFeatureEnabled===true&&e.includes(r.payload.assetId);default:return e.includes(r.payload.assetId)}}}function fs(t){if(bs(t))return ()=>true;let e=new Set((t.markets??[]).map(r=>r.toLowerCase()));return r=>e.has(r.payload.market.toLowerCase())}function bs(t){return (t.markets?.length??0)===0}function H(t,e){let r=new Set(e);return t.filter(s=>!r.has(s))}var A=class{#e;#s;#t;#a=new ge$1({heartbeat:new ae});#o=new fe;#r=new b({deriveServerState:ps});constructor(e){this.#e=e.headers,this.#s=e.url;}async subscribe(e){let{change:r,entry:s}=this.#r.add(e,{matches:ys(e)});return await this.#i(s,r),R(s.subscriber.queue,()=>this.#n(s))}async#i(e,r){let{before:s,after:i}=r;try{(await this.#c()).reusedOpenSocket&&xe(o=>this.#a.send(o),s,i);}catch(n){throw await this.#n(e),n}}async#n(e){let{before:r,after:s}=this.#r.remove(e);if(!this.#r.hasActiveSubscriptions()){await this.close();return}xe(i=>this.#a.send(i),r,s);}async close(){this.#t===void 0&&(this.#t=this.#d().finally(()=>{this.#t=void 0;})),await this.#t;}async#d(){this.#o.stop(),this.#r.endAll(),await this.#a.close();}#c(){return this.#a.connect({onConnectionLost:()=>this.#l(),onError:()=>this.#m(),onMessage:e=>this.#p(e),onOpen:()=>this.#u(),headers:this.#e,url:this.#s})}#u(){this.#o.resetBackoff(),this.#y();}#p(e){let r=Array.isArray(e)?e:[e];for(let s of r){let i=MarketEventSchema.safeParse(s);i.success&&this.#r.dispatch(i.data);}}#l(){this.#r.hasActiveSubscriptions()&&this.#h();}#m(){}#y(){this.#a.send(ms(this.#r.serverState()));}#h(){this.#o.schedule({reconnect:()=>this.#c(),shouldReconnect:()=>this.#r.hasActiveSubscriptions()});}};var w=class{#e;#s;#t;#a;#o=new ge$1({heartbeat:new ae});#r=new fe;#i=new b({deriveServerState:ls});constructor(e){this.#e=e.credentials,this.#s=e.headers,this.#t=e.url;}async subscribe(e){let{change:r,entry:s}=this.#i.add(e,{matches:fs(e)});return await this.#n(s,r),R(s.subscriber.queue,()=>this.#d(s))}async#n(e,r){let{before:s,after:i}=r;try{(await this.#u()).reusedOpenSocket&&Fe(o=>this.#o.send(o),s,i);}catch(n){throw await this.#d(e),n}}async#d(e){let{before:r,after:s}=this.#i.remove(e);if(!this.#i.hasActiveSubscriptions()){await this.close();return}Fe(i=>this.#o.send(i),r,s);}async close(){this.#a===void 0&&(this.#a=this.#c().finally(()=>{this.#a=void 0;})),await this.#a;}async#c(){this.#r.stop(),this.#i.endAll(),await this.#o.close();}#u(){return this.#o.connect({onConnectionLost:()=>this.#m(),onError:()=>this.#y(),onMessage:e=>this.#l(e),onOpen:e=>this.#p(e),prepare:()=>this.#e,headers:this.#s,url:this.#t})}#p(e){this.#r.resetBackoff(),this.#h(e);}#l(e){let r=Array.isArray(e)?e:[e];for(let s of r){let i=UserEventSchema.safeParse(s);i.success&&this.#i.dispatch(i.data);}}#m(){this.#i.hasActiveSubscriptions()&&this.#f();}#y(){}#h(e){this.#o.send(hs(this.#i.serverState(),e));}#f(){this.#r.schedule({reconnect:()=>this.#u(),shouldReconnect:()=>this.#i.hasActiveSubscriptions()});}};var T=class{#e;#s;#t;#a;#o=new Set;#r=new Set;#i=new Set;#n=false;constructor(e){this.#e=e.chainId,this.#s=e.headers,this.#t=e.restUrl,this.#a=e.wsUrl;}connect(e,r,s,i){if(this.#n)return Promise.reject(new d("Perps session manager has been shut down."));let n=new oe({builderAttribution:r,approveBuilderFee:s,includeBuilderFills:i,chainId:this.#e,credentials:e,headers:this.#s,onClose:a=>this.#d(a),restUrl:this.#t,wsUrl:this.#a});this.#r.add(n);let o;return o=(async()=>{try{if(await n.connect(),this.#n)throw await n.close(),new d("Perps session manager has been shut down.");return this.#o.add(n),n}catch(a){throw await n.close(),a}finally{this.#i.delete(o),this.#r.delete(n);}})(),this.#i.add(o),o}async shutdown(){this.#n=true;let e=Array.from(this.#o),r=Array.from(this.#r),s=Array.from(this.#i);this.#o.clear(),this.#r.clear(),this.#i.clear(),await Promise.allSettled([...e.map(i=>i.close()),...r.map(i=>i.close()),...s.map(i=>i.catch(()=>{}))]).then(()=>{});}#d(e){this.#o.delete(e),this.#r.delete(e);}};var C=class{#e;#s;#t;#a=1;#o=new ge$1({heartbeat:new de});#r=new fe;#i=new b({deriveServerState:sa});constructor(e){this.#e=e.headers,this.#s=e.url;}async subscribe(e){let{change:r,entry:s}=this.#i.add(e,{matches:na(e)});return await this.#n(s,r),R(s.subscriber.queue,()=>this.#d(s))}async#n(e,r){try{(await this.#u()).reusedOpenSocket&&(this.#h(Ss(r.before,r.after)),this.#f(Ps(r.before,r.after)));}catch(s){throw await this.#d(e),s}}async#d(e){let{before:r,after:s}=this.#i.remove(e);this.#h(Ss(r,s)),this.#f(Ps(r,s)),this.#i.hasActiveSubscriptions()||await this.close();}async close(){this.#t===void 0&&(this.#t=this.#c().finally(()=>{this.#t=void 0;})),await this.#t;}async#c(){this.#r.stop(),this.#i.endAll(),await this.#o.close();}#u(){return this.#o.connect({onConnectionLost:()=>this.#m(),onError:()=>this.#y(),onMessage:e=>this.#l(e),onOpen:()=>this.#p(),headers:this.#e,url:this.#s})}#p(){this.#r.resetBackoff(),this.#h(Array.from(this.#i.serverState()));}#l(e){let r=PerpsMarketDataEventSchema.safeParse(e);r.success&&this.#i.dispatch(r.data);}#m(){this.#i.hasActiveSubscriptions()&&this.#S();}#y(){}#h(e){e.length!==0&&this.#o.send(this.#b("sub",e));}#f(e){e.length!==0&&this.#o.send(this.#b("unsub",e));}#b(e,r){return {id:this.#a++,req:e,chs:r}}#S(){this.#r.schedule({reconnect:()=>this.#u(),shouldReconnect:()=>this.#i.hasActiveSubscriptions()});}};function sa(t){let e=new Set,r=new Set,s=new Set,i=false,n=false;for(let{subscription:o}of t)switch(o.topic){case "perps.tickers":o.instrumentId===void 0?i=true:r.add(o.instrumentId);break;case "perps.statistics":o.instrumentId===void 0?n=true:s.add(o.instrumentId);break;default:e.add(ia(o));}if(i)e.add("tickers::all");else for(let o of r)e.add(`tickers::${o}`);if(n)e.add("statistics::all");else for(let o of s)e.add(`statistics::${o}`);return e}function Ss(t,e){return Array.from(e).filter(r=>!t.has(r))}function Ps(t,e){return Array.from(t).filter(r=>!e.has(r))}function ia(t){switch(t.topic){case "perps.trades":return `trades::${t.instrumentId}`;case "perps.bbo":return `bbo::${t.instrumentId}`;case "perps.book":return `book::${t.instrumentId}`;case "perps.candles":return `klines::${t.instrumentId}::${t.interval}`;case "perps.tickers":return t.instrumentId===void 0?"tickers::all":`tickers::${t.instrumentId}`;case "perps.statistics":return t.instrumentId===void 0?"statistics::all":`statistics::${t.instrumentId}`;default:invariant(false,`Unknown Perps topic: ${String(t)}`);}}function na(t){switch(t.topic){case "perps.trades":return e=>e.topic==="perps.trades"&&e.channel===`trades::${t.instrumentId}`;case "perps.bbo":case "perps.book":return e=>e.topic===t.topic&&e.payload.instrumentId===t.instrumentId;case "perps.candles":return e=>e.topic==="perps.candles"&&e.payload.instrumentId===t.instrumentId&&e.payload.interval===t.interval;case "perps.tickers":case "perps.statistics":return e=>e.topic===t.topic&&(t.instrumentId===void 0||e.payload.instrumentId===t.instrumentId);default:invariant(false,`Unknown Perps topic: ${String(t)}`);}}function gs(t){if(t.topic==="prices.equity"){let e=t.symbol.toLowerCase();return [{key:JSON.stringify([t.topic,e]),topic:t.topic,symbol:e}]}return t.symbols.map(e=>t.topic==="prices.crypto.twap"?{key:JSON.stringify([t.topic,e,60]),topic:t.topic,symbol:e,windowSeconds:60}:{key:JSON.stringify([t.topic,e]),topic:t.topic,symbol:e})}function vs(t,e){return Math.random()*(t===4003?1e4:Math.min(1e3*2**e,3e4))}var j=class{#e;#s=new fe;#t=new Map;#a=[];#o;#r;#i=false;#n=false;#d=false;#c=false;#u;#p=0;#l=64;#m=Number.NEGATIVE_INFINITY;constructor(e){this.#e=e;}get size(){return this.#t.size}has(e){return this.#t.has(e)}get closed(){return this.#n}get keyTarget(){return Date.now()-this.#m>=6e4?64:this.#l}add(e,r){clearTimeout(this.#r);let s=this.#t.get(e.key);if(s===void 0){let{promise:i,resolve:n,reject:o}=Promise.withResolvers();i.catch(()=>{}),s={subscription:e,listeners:new Set,ready:i,resolve:n,reject:o,subscribed:false,accepted:false},this.#t.set(e.key,s),this.#i&&this.#f("subscribe",[s]);}return s.listeners.add(r),s.snapshot!==void 0&&r.event(s.snapshot),!this.#i&&!this.#c&&this.#u===void 0&&!this.#s.isScheduled&&this.#y(),aa(s.ready)}remove(e,r){let s=this.#t.get(e);s!==void 0&&(s.listeners.delete(r),!(s.listeners.size>0)&&(this.#t.delete(e),s.reject(new d("Realtime subscription closed.")),this.#i&&this.#f("unsubscribe",[s]),this.#t.size===0&&(this.#r=setNonBlockingTimeout(()=>{this.close();},1e3))));}#y(){if(this.#n||this.#c)return Promise.resolve();if(this.#u!==void 0)return this.#u;let e=this.#h().catch(r=>{this.#A([...this.#t.values()].filter(s=>!s.accepted),d.fromError(r));}).finally(()=>{this.#u===e&&(this.#u=void 0),this.#i||this.#q(1006);});return this.#u=e,e}async#h(){let e=this.#p;if(await this.#e.open({event:r=>this.#R(r),dropped:()=>this.#g(),disconnected:r=>this.#v(r)}),!(this.#n||e!==this.#p))try{if(await this.#e.authorize(),this.#n||e!==this.#p)return;this.#i=!0,this.#f("subscribe",[...this.#t.values()]);}catch(r){if(this.#n||e!==this.#p)return;r instanceof h&&r.code!==RealtimeKnownErrorCode.AuthUnavailable?this.#E(r):await this.#C(1006);}}#f(e,r){if(r.length===0)return;let s=this.#a.at(-1);s?.op===e?s.keys.push(...r):this.#a.push({op:e,keys:r}),this.#b();}#b(){this.#o!==void 0||this.#d||!this.#i||this.#n||(this.#o=setNonBlockingTimeout(()=>{this.#o=void 0,this.#S();},10));}async#S(){if(!this.#i||this.#n)return;let e=this.#a.shift();if(e===void 0)return;let r=[...new Set(e.keys)].filter(i=>e.op==="unsubscribe"||this.#t.get(i.subscription.key)===i);if(r.length===0){this.#b();return}let s=this.#p;this.#d=true;try{let i=await this.#e.change(e.op,r.map(({subscription:n})=>n));if(s!==this.#p||this.#n)return;if(e.op==="unsubscribe"&&i.length>0){let n=i[0];if(n!==void 0)throw n.error}if(e.op==="subscribe"){this.#s.resetBackoff();let n=new Set(i.map(o=>o.key));for(let o of r)n.has(o.subscription.key)||(o.subscribed=!0,o.accepted=!0,o.resolve());for(let{key:o,error:a}of i){let c=r.find(u=>u.subscription.key===o);c!==void 0&&this.#A([c],a,!1);}}}catch(i){if(s!==this.#p||this.#n)return;i instanceof h&&e.op==="subscribe"?this.#A(r,i):await this.#C(1006);}finally{this.#d=false,this.#b();}}#R(e){for(let r of this.#t.values()){let s=r.subscription;if(s.topic!==e.topic)continue;let i=e.payload;if(i.symbol.toLowerCase()===s.symbol&&!(s.topic==="prices.crypto.twap"&&(!("windowSeconds"in i)||i.windowSeconds!==s.windowSeconds))){r.snapshot=ca(r.snapshot,e);for(let n of r.listeners)n.event(e);}}}#g(){let e=Date.now();e-this.#m<5e3||(this.#l=Math.max(1,Math.floor(this.keyTarget/2)),this.#m=e);}#P(){this.#p++,this.#i=false,this.#a=[],clearTimeout(this.#o),this.#o=void 0;for(let e of this.#t.values()){if(e.snapshot=void 0,!e.subscribed)continue;let{promise:r,resolve:s,reject:i}=Promise.withResolvers();r.catch(()=>{}),e.ready=r,e.resolve=s,e.reject=i,e.subscribed=false;}}#v(e){let r=new f("Realtime connection closed.",e);this.#P(),e.code===4001||e.code===4008?this.#E(r):this.#q(e.code);}async#C(e){this.#c=true,this.#P();try{await this.#e.close();}finally{this.#c=false,this.#q(e);}}#q(e){this.#s.schedule({delayPolicy:r=>vs(e,r),shouldReconnect:()=>!this.#n&&this.#t.size>0,reconnect:()=>this.#y()});}#E(e){let r=[...this.#t.values()],s=new Set(r.flatMap(i=>[...i.listeners]));for(let i of r)i.reject(e);for(let i of s)i.end(e);this.close();}#A(e,r,s=true){let i=e.filter(o=>this.#t.get(o.subscription.key)===o),n=new Set(i.flatMap(o=>[...o.listeners]));for(let o of i)this.#t.delete(o.subscription.key),o.reject(r);s&&this.#i&&this.#f("unsubscribe",i);for(let o of n)o.end(r);this.#t.size===0&&(this.#r=setNonBlockingTimeout(()=>{this.close();},1e3));}async close(){if(this.#n)return;this.#n=true,this.#s.stop(),clearTimeout(this.#r);let e=new d("Realtime connection closed.");this.#P();for(let r of this.#t.values())r.reject(e);this.#t.clear(),await this.#e.close();}};function aa(t){return new Promise((e,r)=>{let s=setNonBlockingTimeout(()=>{r(new d("Realtime subscription was not accepted within 30 seconds."));},3e4);t.then(()=>{clearTimeout(s),e();},i=>{clearTimeout(s),r(i);});})}function ca(t,e){if(e.type==="subscribe")return e;let r=t?.type==="subscribe"?t.payload.data:[],{symbol:s,timestamp:i,value:n}=e.payload;if((r.at(-1)?.timestamp??0)>i)return t;let o=[...r.filter(a=>a.timestamp>i-12e4&&a.timestamp<i),{timestamp:i,value:n}];return e.topic==="prices.crypto.twap"?{...e,type:"subscribe",payload:{symbol:s,data:o,windowSeconds:e.payload.windowSeconds}}:{...e,type:"subscribe",payload:{symbol:s,data:o}}}var V=class{#e;#s=new ge$1({heartbeat:new ee,connectTimeoutMs:1e4,closeTimeoutMs:1e3});#t=new Map;#a;#o=0;#r=0;#i=0;constructor(e){this.#e=e;}async open(e){this.#a=e;let r=this.#i;await this.#s.connect({url:this.#e.url,headers:this.#e.headers,onOpen:()=>{},onError:()=>{},onConnectionLost:s=>{r===this.#i&&(this.#c(new f("Realtime connection closed.",s)),e.disconnected(s));},onMessage:s=>{r===this.#i&&this.#d(s);}});}async authorize(){let{key:e,secret:r,passphrase:s}=this.#e.credentials;await this.#n({op:"auth",auth:{apiKey:e,secret:r,passphrase:s}},PolyboltAckOp.Authed,[]);}async change(e,r){let s=[],i=0;for(;i<r.length;){let n=[];for(;i+n.length<r.length;){let a=r[i+n.length];if(a===void 0)break;let c=la(a),u={op:e,subscriptions:[...n,c],rid:String(this.#o+1)};if(n.length>0&&new TextEncoder().encode(JSON.stringify(u)).length>6e4)break;n.push(c);}let o=await this.#n({op:e,subscriptions:n},e==="subscribe"?PolyboltAckOp.Subscribed:PolyboltAckOp.Unsubscribed,n.map(({channel:a})=>a));for(let{index:a,error:c}of o){let u=r[i+a];u!==void 0&&s.push({key:u.key,error:c});}i+=n.length;}return s}#n(e,r,s){let i=String(++this.#o);return new Promise((n,o)=>{let a={op:r,channels:[...s],rejections:[],resolve:n,reject:o};this.#t.set(i,a),a.sendTimer=setNonBlockingTimeout(()=>{a.timer=setNonBlockingTimeout(()=>{this.#t.delete(i),o(new d("Realtime acknowledgement timed out after 10 seconds."));},1e4),this.#r=Date.now();try{if(!this.#s.send({...e,rid:i}))throw new d("Realtime connection is not open.")}catch(c){clearTimeout(a.timer),this.#t.delete(i),o(d.fromError(c));}},Math.max(0,110-(Date.now()-this.#r)));})}#d(e){let r=PolyboltAckSchema.safeParse(e);if(r.success){let{op:n,rid:o,code:a,channel:c}=r.data,u=o===void 0?void 0:this.#t.get(o);if(u===void 0)return;if(n===PolyboltAckOp.Error&&a!==void 0){let S=new h(`Realtime subscription rejected: ${a}`,{status:200,code:a}),l=u.channels.flatMap((y,Z)=>y===c?[Z]:[]);if(c===void 0||l.length!==1)u.reject(S);else {let y=l[0];if(y===void 0||(u.channels[y]=void 0,u.rejections.push({index:y,error:S}),u.channels.some(Z=>Z!==void 0)))return;u.resolve(u.rejections);}}else if(n===u.op){if(u.channels.length>0){let S=u.channels.indexOf(c??"");if(S<0||(u.channels[S]=void 0,u.channels.some(l=>l!==void 0)))return}u.resolve(u.rejections);}else return;clearTimeout(u.timer),o!==void 0&&this.#t.delete(o);return}let s=PolyboltEnvelopeSchema.safeParse(e);if(!s.success)return;let i=parsePolyboltEvent(s.data);i!==void 0&&this.#a?.event(i),(s.data.dropped??0)>0&&this.#a?.dropped();}#c(e){for(let r of this.#t.values())clearTimeout(r.sendTimer),clearTimeout(r.timer),r.reject(e);this.#t.clear();}async close(){this.#i++,this.#a=void 0,this.#c(new d("Realtime connection closed.")),await this.#s.close();}};function la(t){switch(t.topic){case "prices.crypto":return {channel:PolyboltChannel.Crypto,filter:{symbol:t.symbol}};case "prices.crypto.twap":return {channel:PolyboltChannel.Twap,filter:{symbol:t.symbol,window_seconds:t.windowSeconds}};case "prices.equity":return {channel:PolyboltChannel.Equity,filter:{symbol:t.symbol}}}}var N=class{#e;#s=new Set;#t=new Set;constructor(e){this.#e=e;}async subscribe(e){let r=[...new Map(gs(e).map(c=>[c.key,c])).values()],s=pushable({objectMode:true}),i=[],n=false,o,a=async()=>{if(!n){n=true;for(let c of i)c();o===void 0?await s.return():s.end(o),this.#t.delete(a);}};this.#t.add(a);try{await Promise.all(r.map(c=>{let u=this.#a(c.key),S={event(l){if(n||"types"in e&&e.types!==void 0&&e.types.length>0&&!e.types.includes(l.type))return;let y="symbol"in l.payload?{...l.payload,symbol:"symbol"in c?c.symbol:l.payload.symbol}:l.payload;s.push({...l,payload:y});},end(l){o=l,s.end(l),a();}};return i.push(()=>u.remove(c.key,S)),u.add(c,S)}));}catch(c){throw await a(),c}return {close:a,async*[Symbol.asyncIterator](){try{yield*s;}finally{await a();}}}}#a(e){for(let s of this.#s)if(s.closed)this.#s.delete(s);else if(s.has(e))return s;for(let s of this.#s)if(s.size<s.keyTarget)return s;let r=new j(new V(this.#e));return this.#s.add(r),r}async close(){await Promise.all([...this.#t].map(r=>r()));let e=[...this.#s];this.#s.clear(),await Promise.all(e.map(r=>r.close()));}};var B=class{#e;constructor(e){this.#e=new N(e);}async subscribe(e){return this.#e.subscribe(e)}async close(){await this.#e.close();}};function Cs(t,e){return {...e,quote:r=>t.quote(e,r)}}function Es(t,e){let r=e.rfqId,s=e.quoteId;return {...e,confirm:()=>t.respondToConfirmation(r,s,RfqConfirmationDecision.Confirm),decline:()=>t.respondToConfirmation(r,s,RfqConfirmationDecision.Decline)}}function ks(t){return {quoteId:t.quoteId,rfqId:t.rfqId}}function ws(t){return {quoteId:t.quoteId,rfqId:t.rfqId}}function Ts(t){return {quoteId:t.quoteId,rfqId:t.rfqId}}function xs(t,e){let r=M$1(t);return {auth:{apiKey:e.key,passphrase:e.passphrase,secret:e.secret},identity:{maker_address:r.maker,signature_type:r.signatureType,signer_address:r.signer},type:"auth"}}function Fs(t,e){return {price_e6:e.price.toString(),rfq_id:t.rfqId,signed_order:e.signedOrder,size_e6:e.size.toString(),type:"RFQ_QUOTE"}}function Ms(t,e,r){let s=M$1(t);return {maker_address:s.maker,quote_id:r,rfq_id:e,signer_address:s.signer,type:"RFQ_QUOTE_CANCEL"}}function Os(t,e,r){return {decision:r,quote_id:e,rfq_id:t,type:"RFQ_CONFIRMATION_RESPONSE"}}var $=class{#e=new Map;#s;constructor(e){this.#s=e;}waitFor(e,r){let s=ya(),i,n=setNonBlockingTimeout(()=>{this.remove(e,i),s.reject(new j$1(r));},this.#s);i=s.promise.finally(()=>clearTimeout(n));let o=this.#e.get(e)??[];return o.push({...s,promise:i}),this.#e.set(e,o),i}resolve(e,r){let s=this.#e.get(e),i=s?.shift();i!==void 0&&(s!==void 0&&s.length===0&&this.#e.delete(e),i.resolve(r));}reject(e,r){let s=this.#e.get(e),i=s?.shift();i!==void 0&&(s!==void 0&&s.length===0&&this.#e.delete(e),i.reject(r));}remove(e,r){let s=this.#e.get(e);if(s===void 0)return;let i=s.filter(n=>n.promise!==r);i.length===0?this.#e.delete(e):this.#e.set(e,i);}rejectAll(e){for(let r of this.#e.values())for(let s of r)s.reject(e);this.#e.clear();}};function ya(){let t,e;return {promise:new Promise((s,i)=>{t=s,e=i;}),reject:e,resolve:t}}var Ls="0x0000000000000000000000000000000000000000000000000000000000000000";async function Bs(t){let e=M$1(t.account),r=Bd({chainId:t.chainId,exchange:t.exchange}),s={builder:Ls,maker:e.maker,makerAmount:toBaseUnits(Cd(t.orderSide,t.orderPrice,t.size)),metadata:Ls,salt:fa().toString(),side:Ed(t.orderSide),signatureType:e.signatureType,signer:e.signer,takerAmount:toBaseUnits(Dd(t.orderSide,t.orderPrice,t.size)),timestamp:Math.floor(Date.now()/1e3).toString(),tokenId:t.tokenId},i;try{i=await t.signer.signTypedData(zd({domain:r,order:s}));}catch(n){throw q.fromError(n,"Could not sign the RFQ quote order.")}return {...s,signature:Ad({domain:r,order:s,signature:i})}}function fa(){let t=new Uint8Array(8);return globalThis.crypto.getRandomValues(t),BigInt(`0x${Array.from(t,e=>e.toString(16).padStart(2,"0")).join("")}`)}var Ws=DecimalishSchema.transform(t=>Hs(t)).refine(t=>t<=BigInt(Number.MAX_SAFE_INTEGER),{message:"Value exceeds the temporary numeric wire limit."}),Pa=z.strictObject({price:Ws.refine(t=>t<1000000n,{message:"Price must be less than 1."}),size:Ws.optional(),source:z.enum(["collateral","inventory"]).default("collateral")});function Qs(t){return I(t,Pa)}async function Ks(t){let e=t.response.price,r=t.response.size===void 0?qa(t.request.requestedSize,e):t.response.size,s=await Bs({account:t.account,chainId:t.chainId,exchange:t.exchange,orderPrice:ga(t.request,t.response.source,e),orderSide:va(t.response.source),signer:t.signer,size:r,tokenId:Ra(t.request,t.response.source)});return {price:e,signedOrder:s,size:r}}function Ra(t,e){return t.direction===RfqDirection.Buy?e==="collateral"?t.noPositionId:t.yesPositionId:e==="collateral"?t.yesPositionId:t.noPositionId}function ga(t,e,r){return t.direction===RfqDirection.Buy&&e==="collateral"||t.direction===RfqDirection.Sell&&e==="inventory"?1000000n-r:r}function va(t){return t==="collateral"?OrderSide.BUY:OrderSide.SELL}function qa(t,e){let r=Hs(t.value);return t.unit===RfqRequestedSizeUnit.Shares?r:r*1000000n/e}function Hs(t){let e=/^(\d+)(?:\.(\d*))?$/.exec(t);if(e===null)throw new a("Value must be a valid decimal.");let[,r="",s=""]=e;if(s.length>6)throw new a("Value must have at most 6 decimal places.");let i=BigInt(r)*1000000n+BigInt(s.padEnd(6,"0"));if(i<=0n)throw new a("Value must be greater than 0.");return i}var ka=3e4,wa=3e4,x=class{#e;#s;#t;#a;#o;#r;#i;#n;#d;#c;#u=false;constructor(e){this.#e=e.account,this.#s=e.chainId,this.#t=e.credentials,this.#a=e.exchange,this.#o=e.headers,this.#r=e.signer,this.#i=e.url;}async connect(){if(this.#u)throw new d("RFQ quoter manager has been shut down.");if(this.#n!==void 0){if(!this.#n.closed)return this.#n;this.#n=void 0;}if(this.#c!==void 0)return this.#c;let e=new Be({account:this.#e,chainId:this.#s,credentials:this.#t,exchange:this.#a,headers:this.#o,onClose:()=>this.#p(e),signer:this.#r,url:this.#i});this.#d=e;let r;return r=(async()=>{try{if(await e.connect(),this.#u)throw await e.close(),new d("RFQ quoter manager has been shut down.");return this.#n=e,e}catch(s){throw await e.close(),s}finally{this.#c===r&&(this.#c=void 0),this.#d===e&&(this.#d=void 0);}})(),this.#c=r,r}async shutdown(){this.#u=true;let e=this.#n,r=this.#d,s=this.#c;this.#n=void 0,this.#d=void 0,this.#c=void 0,await Promise.allSettled([e?.close(),r?.close(),s?.catch(()=>{})]).then(()=>{});}#p(e){this.#n===e&&(this.#n=void 0),this.#d===e&&(this.#d=void 0);}},Be=class{#e;#s;#t;#a;#o;#r;#i;#n;#d=new ge$1;#c=pushable({objectMode:true});#u=new $(wa);#p;#l;constructor(e){this.#e=e.account,this.#s=e.chainId,this.#t=e.credentials,this.#a=e.exchange,this.#o=e.headers,this.#r=e.onClose,this.#i=e.signer,this.#n=e.url;}get closed(){return this.#p!==void 0}async connect(){let e=Ta();this.#l=e;let r=setNonBlockingTimeout(()=>{e.reject(new d("RFQ quoter authentication timed out."));},ka);try{await this.#d.connect({headers:this.#o,onConnectionLost:s=>this.#P(s),onError:()=>{},onMessage:s=>this.#R(s),onOpen:()=>this.#S(),url:this.#n}),await e.promise;}finally{clearTimeout(r),this.#l=void 0;}}async#m(e){if(!this.#d.send(e))throw new d("RFQ quoter websocket is not open.")}async close(){this.#p===void 0&&(this.#p=this.#y()),await this.#p;}[Symbol.asyncIterator](){return this.#c[Symbol.asyncIterator]()}async#y(){let e=new d("RFQ quoter websocket closed.");this.#b(e),this.#c.end(),await this.#d.close(),this.#r();}async#h(e){this.#p===void 0&&(this.#p=this.#f(e)),await this.#p;}async#f(e){this.#b(e),this.#c.end(e),await this.#d.close(),this.#r();}#b(e){this.#l?.reject(e),this.#u.rejectAll(e);}#S(){this.#d.send(xs(this.#e,this.#t));}#R(e){if(this.#p!==void 0)return;let r=RfqQuoterInboundMessageSchema.safeParse(e);if(!r.success)return;let s=r.data;switch(s.type){case "auth":this.#g(s);return;case "quote_request":this.#c.push(Cs(this,s));return;case "quote_ack":this.#u.resolve(G(s.rfqId),ks(s));return;case "quote_cancel_ack":this.#u.resolve(Ie(s.rfqId,s.quoteId),ws(s));return;case "confirmation_request":this.#c.push(Es(this,s));return;case "confirmation_ack":this.#u.resolve(Le(s.rfqId,s.quoteId),Ts(s));return;case "execution_update":this.#c.push(s);return;case "trade":this.#c.push(s);return;case "rfq_error":this.#v(s);return}}#g(e){if(e.success===true){this.#l?.resolve(void 0);return}this.#l?.reject(new d(`RFQ quoter authentication failed: ${e.error}`));}#P(e){this.#h(new f("RFQ quoter connection lost.",e));}#v(e){if(e.requestType==="RFQ_QUOTE"){if(e.rfqId===void 0){this.#h(new d("Uncorrelated RFQ quoter error."));return}this.#u.reject(G(e.rfqId),new Tf(e.message,{code:e.code,errorId:e.errorId,rfqId:e.rfqId}));return}if(e.requestType==="RFQ_QUOTE_CANCEL"){if(e.rfqId===void 0||e.quoteId===void 0){this.#h(new d("Uncorrelated RFQ quoter error."));return}this.#u.reject(Ie(e.rfqId,e.quoteId),new Vf(e.message,{code:e.code,errorId:e.errorId,quoteId:e.quoteId,rfqId:e.rfqId}));return}if(e.requestType==="RFQ_CONFIRMATION_RESPONSE"){if(e.rfqId===void 0||e.quoteId===void 0){this.#h(new d("Uncorrelated RFQ quoter error."));return}this.#u.reject(Le(e.rfqId,e.quoteId),new Xf(e.message,{code:e.code,errorId:e.errorId,quoteId:e.quoteId,rfqId:e.rfqId}));}}async quote(e,r){let s=Qs(r),i=await Ks({account:this.#e,chainId:this.#s,exchange:this.#a,request:e,response:s,signer:this.#i}),n=this.#u.waitFor(G(e.rfqId),`Timed out waiting for RFQ quote acknowledgement for ${e.rfqId}.`);try{return await this.#m(Fs(e,i)),await n}catch(o){throw this.#u.remove(G(e.rfqId),n),o}}async cancelQuote(e){let r=Ie(e.rfqId,e.quoteId),s=this.#u.waitFor(r,`Timed out waiting for RFQ quote cancellation acknowledgement for ${e.rfqId}.`);try{return await this.#m(Ms(this.#e,e.rfqId,e.quoteId)),await s}catch(i){throw this.#u.remove(r,s),i}}async respondToConfirmation(e,r,s){let i=Le(e,r),n=this.#u.waitFor(i,`Timed out waiting for RFQ confirmation acknowledgement for ${e}.`);try{return await this.#m(Os(e,r,s)),await n}catch(o){throw this.#u.remove(i,n),o}}};function G(t){return `ACK_RFQ_QUOTE:${t}`}function Ie(t,e){return `ACK_RFQ_QUOTE_CANCEL:${t}:${e}`}function Le(t,e){return `ACK_RFQ_CONFIRMATION_RESPONSE:${t}:${e}`}function Ta(){let t,e;return {promise:new Promise((s,i)=>{t=s,e=i;}),reject:e,resolve:t}}var F=class{#e;#s;#t;#a=new ge$1({heartbeat:new be});#o=new fe;#r=new b({deriveServerState:Oa});constructor(e){this.#e=e.headers,this.#s=e.url;}async subscribe(e){let{change:r,entry:s}=this.#r.add(e,{matches:Da(e)});return await this.#i(s,r),R(s.subscriber.queue,()=>this.#n(s))}async#i(e,r){try{if((await this.#c()).reusedOpenSocket){let{before:i,after:n}=r,o=Fa(i,n);this.#h(o);}}catch(s){throw await this.#n(e),s}}async#n(e){let{before:r,after:s}=this.#r.remove(e),i=Ma(r,s);this.#f(i),this.#r.hasActiveSubscriptions()||await this.close();}async close(){this.#t===void 0&&(this.#t=this.#d().finally(()=>{this.#t=void 0;})),await this.#t;}async#d(){this.#o.stop(),this.#r.endAll(),await this.#a.close();}#c(){return this.#a.connect({onConnectionLost:()=>this.#l(),onError:()=>this.#m(),onMessage:e=>this.#p(e),onOpen:()=>this.#u(),headers:this.#e,url:this.#s})}#u(){this.#o.resetBackoff(),this.#y();}#p(e){let r=RealtimeEventSchema.safeParse(e);r.success&&this.#r.dispatch(r.data);}#l(){this.#r.hasActiveSubscriptions()&&this.#b();}#m(){}#y(){this.#h(Array.from(this.#r.serverState().values()));}#h(e){e.length!==0&&this.#a.send(Ia(e));}#f(e){e.length!==0&&this.#a.send(La(e));}#b(){this.#o.schedule({reconnect:()=>this.#c(),shouldReconnect:()=>this.#r.hasActiveSubscriptions()});}};function Fa(t,e){return Array.from(e).flatMap(([r,s])=>t.has(r)?[]:[s])}function Ma(t,e){return Array.from(t).flatMap(([r,s])=>e.has(r)?[]:[s])}function Oa(t){let e=new Map;for(let{subscription:r}of t)for(let s of Ba(r))e.has(s.key)||e.set(s.key,s);return e}function Ia(t){return {action:"subscribe",subscriptions:t.map(({topic:e,type:r})=>({topic:e,type:r}))}}function La(t){return {action:"unsubscribe",subscriptions:t.map(({topic:e,type:r})=>({topic:e,type:r}))}}function Ba(t){switch(t.topic){case "comments":return (t.types??["comment_created"]).map(e=>U("comments",e));case "prices.crypto.binance":return [U("crypto_prices","update")];case "prices.crypto.chainlink":return [U("crypto_prices_chainlink","update")];case "prices.crypto.chainlink.twap":return [U(Ua(t.windowSeconds),"update")];case "prices.equity.pyth":return [U("equity_prices","update")];default:invariant(false,`Unknown RTDS topic: ${String(t)}`);}}function Ua(t){switch(t){case 30:return "crypto_prices_twap_thirty";case 60:return "crypto_prices_twap_sixty";default:invariant(false,`Unknown TWAP window: ${String(t)}`);}}function U(t,e){return {key:`${t}:${e}`,topic:t,type:e}}function Da(t){switch(t.topic){case "comments":return e=>!(e.topic!=="comments"||t.types!==void 0&&t.types.length>0&&!t.types.includes(e.type)||(t.parentEntityId!==void 0||t.parentEntityType!==void 0)&&(!(e.type==="comment_created"||e.type==="comment_removed")||t.parentEntityId!==void 0&&e.payload.parentEntityID!==t.parentEntityId||t.parentEntityType!==void 0&&e.payload.parentEntityType!==t.parentEntityType));case "prices.crypto.binance":return e=>e.topic==="prices.crypto.binance"&&(t.symbols===void 0||t.symbols.length===0||t.symbols.includes(e.payload.symbol));case "prices.crypto.chainlink":return e=>e.topic==="prices.crypto.chainlink"&&(t.symbols===void 0||t.symbols.length===0||t.symbols.includes(e.payload.symbol));case "prices.crypto.chainlink.twap":return e=>e.topic==="prices.crypto.chainlink.twap"&&e.payload.windowSeconds===t.windowSeconds&&(t.symbols===void 0||t.symbols.length===0||t.symbols.includes(e.payload.symbol));case "prices.equity.pyth":return e=>e.topic==="prices.equity.pyth"&&e.payload.symbol.toLowerCase()===t.symbol.toLowerCase()&&(t.types===void 0||t.types.length===0||t.types.includes(e.type));default:invariant(false,`Unknown RTDS topic: ${String(t)}`);}}var M=class{#e;#s;#t;#a=new ge$1({heartbeat:new ce});#o=new fe;#r=new b;constructor(e){this.#e=e.headers,this.#s=e.url;}async subscribe(e){let{entry:r}=this.#r.add(e);return await this.#i(r),R(r.subscriber.queue,()=>this.#n(r))}async#i(e){try{await this.#c();}catch(r){throw await this.#n(e),r}}async#n(e){this.#r.remove(e),this.#r.hasActiveSubscriptions()||await this.close();}async close(){this.#t===void 0&&(this.#t=this.#d().finally(()=>{this.#t=void 0;})),await this.#t;}async#d(){this.#o.stop(),this.#r.endAll(),await this.#a.close();}#c(){return this.#a.connect({onConnectionLost:()=>this.#l(),onError:()=>this.#m(),onMessage:e=>this.#p(e),onOpen:()=>this.#u(),headers:this.#e,url:this.#s})}#u(){this.#o.resetBackoff();}#p(e){let r=SportsResultEventSchema.safeParse(e);r.success&&this.#r.dispatch(r.data);}#l(){this.#r.hasActiveSubscriptions()&&this.#y();}#m(){}#y(){this.#o.schedule({reconnect:()=>this.#c(),shouldReconnect:()=>this.#r.hasActiveSubscriptions()});}};var Y=class{#e;#s;get context(){return this.#e}get decorators(){return this.#s}get environment(){return this.context.environment}get clob(){return this.context.clob}get relayer(){return this.context.relayer}get rpc(){return this.context.rpc}get gamma(){return this.context.gamma}get data(){return this.context.data}get rfq(){return this.context.rfq}get perps(){return this.context.perps}get webSockets(){return this.context.webSockets}get supportsGasless(){return this.context.apiKey?.supportGasless??false}get hasBuilderApiKey(){return this.context.apiKey?.isBuilderKey??false}constructor(e){this.#e=e,this.#s=[];}async resolveClobHeaders(e){return this.context.apiKey?.isBuilderKey?this.context.apiKey.authorize(e):Promise.resolve({})}async resolveRelayerHeaders(e){return this.context.apiKey?.supportGasless?this.context.apiKey.authorize(e):Promise.resolve({})}rememberDecorator(e){this.#s.push(e);}},za=z.object({key:ApiKeySchema,passphrase:z.string(),secret:z.string()}),Va=z.object({wallet:EvmAddressSchema,credentials:za.optional(),nonce:z.number().int().nonnegative().optional()}).superRefine((t,e)=>{t.credentials!==void 0&&t.nonce!==void 0&&e.addIssue({code:"custom",message:"`credentials` and `nonce` are mutually exclusive.",path:["nonce"]});}).transform(t=>t.credentials!==void 0?{wallet:t.wallet,credentials:t.credentials}:t.nonce!==void 0?{wallet:t.wallet,nonce:t.nonce}:{wallet:t.wallet}),J=class extends Y{constructor(e){super({apiKey:e.apiKey,environment:e.environment,onRateLimitUpdate:e.onRateLimitUpdate,data:new $d({headers:e.environment.data.headers,root:e.environment.data.rest}),gamma:new $d({headers:e.environment.gamma.headers,root:e.environment.gamma.rest}),clob:new $d({headers:e.environment.clob.headers,onRateLimitUpdate:e.onRateLimitUpdate,root:e.environment.clob.rest,resolveHeaders:r=>this.resolveClobHeaders(r)}),relayer:new $d({headers:e.environment.relayer.headers,root:e.environment.relayer.rest,resolveHeaders:r=>this.resolveRelayerHeaders(r)}),rfq:new $d({headers:e.environment.combos.headers,root:e.environment.combos.rest}),perps:new $d({headers:e.environment.perps.headers,root:e.environment.perps.rest}),rpc:new J$1({url:e.environment.rpc}),webSockets:{clobMarket:new A({headers:e.environment.clob.market.headers,url:e.environment.clob.market.ws}),sports:new M({headers:e.environment.sports.headers,url:e.environment.sports.ws}),rtds:new F({headers:e.environment.rtds.headers,url:e.environment.rtds.ws}),perpsSubscriptions:new C({headers:e.environment.perps.headers,url:e.environment.perps.ws})}});}isSecureClient(){return false}isPublicClient(){return true}async closeSubscriptions(){await Promise.all([this.webSockets.clobMarket.close(),this.webSockets.rtds.close(),this.webSockets.sports.close(),this.webSockets.perpsSubscriptions.close()]).then(()=>{});}extend(e){return this.rememberDecorator(e),Object.assign(this,e(this)),this}beginAuthentication(e,r){let s=I(e,Va);return Promise.resolve(async function*(){let i=Math.floor(Date.now()/1e3),n=s?.nonce??0,o=expectEvmAddress(yield Ca()),a=expectEvmAddress(s.wallet),c=L$1(this.environment,o,a);if(s.credentials!==void 0){let l=this.#e(s.credentials,c,r);try{if((await ob(l)).includes(s.credentials.key))return l}catch(y){if(!(y instanceof h)||y.status!==401)throw y}}let u=yield {kind:"signAuthMessage",payload:ts({address:o,chainId:this.environment.chainId,nonce:n,timestamp:i})},S=await mb(this,{address:o,nonce:n,signature:expectEvmSignature(u),timestamp:i});return this.#e(S,c,r)}.call(this))}#e(e,r,s){let i=new Qe({account:r,apiKey:this.context.apiKey,credentials:e,environment:this.environment,onRateLimitUpdate:this.context.onRateLimitUpdate,signer:s});for(let n of this.decorators)i.extend(n);return i}},Qe=class extends Y{#e=false;get context(){return invariant(!this.#e,"This client has ended authentication and can no longer be used."),super.context}endAuthenticationLifecycle(){this.#e=true;}constructor(e){let r=new B({url:e.environment.realtime.ws,headers:e.environment.realtime.headers,credentials:e.credentials});super({account:e.account,credentials:e.credentials,apiKey:e.apiKey,environment:e.environment,onRateLimitUpdate:e.onRateLimitUpdate,signer:e.signer,clob:new $d({headers:e.environment.clob.headers,onRateLimitUpdate:e.onRateLimitUpdate,root:e.environment.clob.rest,resolveHeaders:s=>this.resolveClobHeaders(s)}),relayer:new $d({headers:e.environment.relayer.headers,root:e.environment.relayer.rest,resolveHeaders:s=>this.resolveRelayerHeaders(s)}),rpc:new J$1({url:e.environment.rpc}),gamma:new $d({headers:e.environment.gamma.headers,root:e.environment.gamma.rest}),data:new $d({headers:e.environment.data.headers,root:e.environment.data.rest}),rfq:new $d({headers:e.environment.combos.headers,root:e.environment.combos.rest}),perps:new $d({headers:e.environment.perps.headers,root:e.environment.perps.rest}),secureClob:new $d({headers:e.environment.clob.headers,onRateLimitUpdate:e.onRateLimitUpdate,resolveHeaders:async s=>({...await this.resolveClobHeaders(s),...await this.#t(s)}),root:e.environment.clob.rest}),combos:new $d({headers:e.environment.combos.collateralReturn.headers,resolveHeaders:s=>this.resolveRelayerHeaders(s),root:e.environment.combos.collateralReturn.rest}),builderGateway:new $d({headers:e.environment.combos.builderGateway.headers,resolveHeaders:async s=>({...await this.#s(s),...await this.#t(s)}),root:e.environment.combos.builderGateway.rest}),webSockets:{clobMarket:new A({headers:e.environment.clob.market.headers,url:e.environment.clob.market.ws}),clobUser:new w({credentials:e.credentials,headers:e.environment.clob.user.headers,url:e.environment.clob.user.ws}),rfqQuoter:new x({account:e.account,chainId:e.environment.chainId,credentials:e.credentials,exchange:e.environment.contracts.exchangeV3,headers:e.environment.combos.headers,signer:e.signer,url:e.environment.combos.ws}),sports:new M({headers:e.environment.sports.headers,url:e.environment.sports.ws}),realtime:r,rtds:new F({headers:e.environment.rtds.headers,url:e.environment.rtds.ws}),perpsSubscriptions:new C({headers:e.environment.perps.headers,url:e.environment.perps.ws}),perpsSession:new T({chainId:e.environment.chainId,headers:e.environment.perps.headers,restUrl:e.environment.perps.rest,wsUrl:e.environment.perps.ws})}});}get credentials(){return this.context.credentials}get account(){return this.context.account}get signer(){return this.context.signer}get secureClob(){return this.context.secureClob}get combos(){return this.context.combos}get builderGateway(){return this.context.builderGateway}get webSockets(){return this.context.webSockets}async closeSubscriptions(){await Promise.allSettled([this.webSockets.clobMarket.close(),this.webSockets.realtime.close(),this.webSockets.rtds.close(),this.webSockets.sports.close(),this.webSockets.perpsSubscriptions.close(),this.webSockets.clobUser.close()]).then(()=>{});}isSecureClient(){return true}isPublicClient(){return false}extend(e){return this.rememberDecorator(e),Object.assign(this,e(this)),this}async endAuthentication(){let e=this.closeSubscriptions(),r=this.webSockets.perpsSession.shutdown(),s=this.webSockets.rfqQuoter.shutdown(),{apiKey:i,environment:n,onRateLimitUpdate:o}=this.context;try{await qb(this);}finally{this.endAuthenticationLifecycle(),await Promise.allSettled([e,r,s]).then(()=>{});}let a=new J({apiKey:i,environment:n,onRateLimitUpdate:o});for(let c of this.decorators)a.extend(c);return a}async#s(e){return e.method!=="GET"&&this.context.apiKey?.isBuilderKey?this.context.apiKey.authorize(e):{}}async#t(e){try{let r=Math.floor(Date.now()/1e3);return {POLY_ADDRESS:this.account.signer,POLY_API_KEY:this.credentials.key,POLY_PASSPHRASE:this.credentials.passphrase,POLY_SIGNATURE:await as(this.credentials.secret,r,e.method,e.path,e.body),POLY_TIMESTAMP:`${r}`}}catch(r){throw q.fromError(r,"Could not sign the L2-authenticated request")}}};function _s(t={}){return new J({environment:t.environment??we,apiKey:t.apiKey,onRateLimitUpdate:t.onRateLimitUpdate}).extend(ns)}var Na=r(m,i,h,q,j$1,l,d,c,a),$a=r(a);async function Ga(t){let e=_s({environment:t.environment,apiKey:t.apiKey,onRateLimitUpdate:t.onRateLimitUpdate}),r=await Ya(e,t),s=await e.beginAuthentication({wallet:r,credentials:t.credentials,nonce:t.nonce},t.signer).then(Ba$1(t.signer));if(s.account.walletType===WalletType.EOA||await Ga$1(s,{wallet:s.account.wallet,type:s.account.walletType}))return s;if(s.account.walletType===WalletType.DEPOSIT_WALLET)return await Ja(s),s;throw new a(`Wallet ${s.account.wallet} does not exist. Provide an existing wallet address, or omit wallet to use the default Deposit Wallet flow.`)}async function Ya(t,e){if(e.wallet!==void 0)return e.wallet;let r=expectEvmAddress(await e.signer.getAddress()),s=N$1(r,t.environment.walletDerivation);return await Ga$1(t,{wallet:s,type:WalletType.DEPOSIT_WALLET})?s:O(r,t.environment.walletDerivation)}async function Ja(t){let e=O(t.account.signer,t.environment.walletDerivation);if(!isSameEvmAddress(t.account.wallet,e))throw new a(`Wallet ${t.account.wallet} does not match the expected Deposit Wallet ${e} for this signer, nor a deployed wallet address.`);await(await Ja$1(t)).wait();}
2
+ export{Na as CreateSecureClientError,$a as SetupGaslessWalletError,Re as accountActions,ns as allActions,ge as analyticsActions,as as buildHmacSignature,_s as createPublicClient,Ga as createSecureClient,ve as dataActions,qe as discoveryActions,$o as forkEnvironmentConfig,Ae as perpsActions,td as preproduction,we as production,_o as relayerApiKey,Ho as remoteBuilderSigning,Ce as rewardsActions,rs as rfqActions,ss as sessionKeyActions,Ee as subscriptionsActions,is as tradingActions,ke as walletActions};//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map