@polymarket/client 0.12.0 → 0.13.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.
package/dist/viem.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { PrivateKey } from '@polymarket/types';
2
2
  import { Chain, Transport, WalletClient } from 'viem';
3
- import { S as Signer } from './types-B9F4CyS-.js';
3
+ import { S as Signer } from './types-BGxCI8uu.js';
4
4
  import '@polymarket/bindings';
5
5
  import '@polymarket/bindings/gamma';
6
6
  import '@polymarket/bindings/relayer';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polymarket/client",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "The Polymarket TypeScript client",
5
5
  "repository": {
6
6
  "type": "git",
@@ -93,7 +93,7 @@
93
93
  "ky": "^1.14.3",
94
94
  "ox": "^0.14.16",
95
95
  "zod": "^4.3.6",
96
- "@polymarket/bindings": "0.12.0",
96
+ "@polymarket/bindings": "0.13.0",
97
97
  "@polymarket/types": "0.2.0"
98
98
  },
99
99
  "publishConfig": {
@@ -1,3 +0,0 @@
1
- import {r,i,h,q,d,c,a,j,l as l$1,m,b,n,o,f,p,k}from'./chunk-VLNLVY4C.js';import {EventIdSchema,PaginationCursorSchema,OrderSideSchema,ConditionIdSchema,EvmAddressSchema,ComboConditionIdSchema,TransactionIdSchema,BuilderCodeSchema,CommentParentEntityTypeSchema,CommentIdSchema,IsoDateTimeStringSchema,IsoCalendarDateStringSchema,QuestionIdSchema,PositionIdSchema,ClobAssetIdSchema,OrderType,PositiveDecimalNumberSchema,OrderSide,TxHashSchema,MarketIdSchema,toPositionId,toBaseUnits,toRfqId,toRfqQuoteId,toBuilderCode,SessionSignerKnownScope,SessionSignerScopeSchema,TradeStatus,toPaginationCursor,toDecimalString,toComboConditionId,toConditionId}from'@polymarket/bindings';export{SessionSignerKnownScope as zg}from'@polymarket/bindings';import {AssetTypeSchema,SignatureType,AssetType,ClosedOnlyModeSchema,OpenOrdersPageSchema,END_CURSOR,OpenOrderSchema,ClobTradesPageSchema,NotificationsResponseSchema,BalanceAllowanceResponseSchema,OrderScoringResponseSchema,OrdersScoringResponseSchema,UserEarningsPageSchema,TotalUserEarningsResponseSchema,UserRewardsEarningsPageSchema,RewardsPercentagesSchema,ApiKeyCredsSchema,ApiKeysResponseSchema,BuilderApiKeyCredsSchema,BuilderApiKeysResponseSchema,PaginatedBuilderTradesSchema,MidpointSchema,MidpointsSchema,FetchTickSizeResponseSchema,FetchNegRiskResponseSchema,ResolveConditionByTokenResponseSchema,FetchMarketInfoResponseSchema,FetchBuilderFeeRatesResponseSchema,PriceSchema,PricesSchema,FetchOrderBookResponseSchema,OrderBooksSchema,SpreadSchema,SpreadsSchema,LastTradePriceSchema,LastTradePricesSchema,PaginatedCurrentRewardsSchema,PaginatedMarketRewardsSchema,CancelOrdersResponseSchema,OrderResponseSchema,OrderResponsesSchema,ActiveSessionSignersResponseSchema}from'@polymarket/bindings/clob';import {isHexString,expectNonEmptyArray,isPrivateKey,expectEvmAddress,isSameEvmAddress,ZERO_ADDRESS,PolymarketError,expectHexString,unwrap,invariant,delay,expectEvmSignature,expectErc1271Signature,ResultAsync,setNonBlockingInterval,setNonBlockingTimeout,expectPrivateKey,ok,err,expectPresent,isPresent,expectSessionSignerSignature,errAsync}from'@polymarket/types';import {z as z$1}from'zod';import {WalletType,SeriesIdSchema,MarketClarificationState,ProtocolVersion,ListCommentsResponseSchema,ListCommentsKeysetResponseSchema,ListEventsKeysetResponseSchema,EventSchema,FetchEventTagsResponseSchema,ListMarketClarificationsResponseSchema,ListMarketsKeysetResponseSchema,FetchMarketTagsResponseSchema,MarketSchema,PublicProfileSchema,PublicSearchResponseSchema,ListSeriesResponseSchema,SeriesSchema,ListSportsMetadataResponseSchema,SportsMarketTypesResponseSchema,ListTagsResponseSchema,TagSchema,ListRelatedTagsResponseSchema,ListRelatedTagResourcesResponseSchema,ListTeamsResponseSchema}from'@polymarket/bindings/gamma';import {AbiFunction,Hash,Bytes,AbiParameters,ContractAddress,TypedData,Secp256k1,Address,Signature}from'ox';import ds from'ky';import {TradeFilterTypeSchema,SortDirectionSchema,ActivityTypeSchema,CanonicalMarketConditionIdSchema,LeaderboardWindowSchema,BuilderVolumeIntervalSchema,TraderLeaderboardSortSchema,PriceHistoryIntervalSchema,PriceHistoryInterval,PositionSortBySchema,PositionFilterTypeSchema,PositionStatusSchema,PositionStatus,ComboPositionStatusSchema,ComboPositionStatus,ComboPositionSortBySchema,UserPnlFidelitySchema,UserPnlIntervalSchema,ListTradesResponseSchema,ListActivityResponseSchema,ListComboActivityResponseSchema,FetchResolutionsResponseSchema,FetchEventLiveVolumeResponseSchema,ListBuilderLeaderboardResponseSchema,FetchBuilderVolumeResponseSchema,ListTraderLeaderboardResponseSchema,FetchTraderLeaderboardStandingResponseSchema,ListBiggestWinnersResponseSchema,ListMarketHoldersResponseSchema,ListPriceHistoryResponseSchema,FetchOpenInterestResponseSchema,ListPositionsResponseSchema,ListComboPositionsResponseSchema,FetchPortfolioValueResponseSchema,FetchUserStatsResponseSchema,FetchUserPnlResponseSchema,FetchUserVolumeResponseSchema}from'@polymarket/bindings/data';export{ResolutionMarketType as Cc,ResolutionReporter as Dc,ResolutionSource as Ec,ResolutionStatus as Fc,BiggestWinnerKind as Qc,BuilderVolumeInterval as Rc,LeaderboardWindow as Sc,TraderLeaderboardSort as Tc,PriceHistoryInterval as Wc,ComboPositionSortBy as df,ComboPositionStatus as ef,PositionFilterType as ff,PositionSortBy as gf,PositionStatus as hf,UserPnlFidelity as if,UserPnlInterval as jf,ComboActivityType as va,SortDirection as wa,TipSide as xa,TradeFilterType as ya}from'@polymarket/bindings/data';import {RelayerTransactionType,RelayerExecuteRequestSchema,RelayerTransactionState,RelayerAuthorizeSessionSignerStatus,RelayerRevokeSessionSignerStatus,RelayerExecuteParamsSchema,RelayerDeployedResponseSchema,GaslessTransactionSchema,RelayerExecuteResponseSchema,RelayerAuthorizeSessionSignerResponseSchema,RelayerRevokeSessionSignerResponseSchema}from'@polymarket/bindings/relayer';import {CollateralReturnPlanSchema,RfqRejectionCode,RfqSide,RfqRequestedSizeUnit,RfqDirection,RfqKnownErrorCode,ComboQuoteUnavailableReason,RfqStatus,ComboAcceptFailureReason,RfqExecutionStatus,CollateralReturnPlanResponseSchema,ListComboMarketsResponseSchema,BuilderRfqCreateResponseSchema,BuilderRfqStatusResponseSchema}from'@polymarket/bindings/combos';export{ComboAcceptFailureReason as ig,ComboQuoteUnavailableReason as jg,RfqConfirmationDecision as kg,CollateralReturnKnownOperationKind as lc,RfqDirection as lg,RfqExecutionStatus as mg,RfqKnownErrorCode as ng,RfqRejectionCode as og,RfqRequestedSizeUnit as pg,RfqSide as qg,RfqStatus as rg}from'@polymarket/bindings/combos';import {PerpsPnlIntervalSchema,PerpsWithdrawalStatusSchema,PerpsDepositStatusSchema,PerpsInstrumentIdSchema,PerpsClientOrderIdSchema,PerpsOrderIdSchema,PerpsSortDirectionSchema,PerpsDecimalInputSchema,PerpsTimeInForce,PerpsPostOrderAckSchema,PerpsCommandAckSchema,PerpsInstrumentCategorySchema,PerpsKlineIntervalSchema,PerpsTradeIdSchema,PerpsTpSlKind,PerpsTpSlScope,PerpsCancelAllOrdersResponseSchema,PerpsUpdateLeverageResultSchema,PerpsKnownCancelOrderErrorCode,PerpsBuilderStatusSchema,PerpsBuilderApprovalSchema,FetchPerpsBalancesResponseSchema,FetchPerpsPortfolioResponseSchema,FetchPerpsAccountStatsResponseSchema,FetchPerpsAutoCancelStatusResponseSchema,FetchPerpsAccountConfigResponseSchema,FetchPerpsOpenOrdersResponseSchema,FetchPerpsOrdersResponseSchema,ListPerpsFillsResponseSchema,ListPerpsFundingPaymentsResponseSchema,ListPerpsDepositsResponseSchema,ListPerpsWithdrawalsResponseSchema,ListPerpsInternalTransfersResponseSchema,ListPerpsEquityHistoryResponseSchema,ListPerpsPnlHistoryResponseSchema,ListPerpsNotificationsResponseSchema,FetchPerpsUnreadNotificationsCountResponseSchema,MarkPerpsNotificationsReadResponseSchema,FetchPerpsBuilderApprovalsResponseSchema,ListPerpsBuilderEarningsResponseSchema,PerpsBuilderEarningsSummarySchema,PerpsCancelOrderResultSchema,PerpsAutoCancelResponseSchema,FetchPerpsInstrumentsResponseSchema,FetchPerpsTickersResponseSchema,FetchPerpsStatisticsResponseSchema,PerpsBookSchema,FetchPerpsCandlesResponseSchema,FetchPerpsFundingHistoryResponseSchema,FetchPerpsTradesResponseSchema,FetchPerpsFeesResponseSchema,PerpsDeleteProxyResponseSchema,PerpsWithdrawResponseSchema,PerpsInternalTransferResponseSchema,PerpsCreateProxyResponseSchema,PerpsCredentialsResponseSchema}from'@polymarket/bindings/perps';import {encode}from'@msgpack/msgpack';import {PerpsNotificationsResyncFrameSchema,PerpsSessionUpdateEventSchema}from'@polymarket/bindings/subscriptions';import {pushable}from'it-pushable';import AT from'it-merge';function l(e,r){let t=r.safeParse(e);if(t.success)return t.data;throw a.fromZodError(t.error)}var O=z$1.number().int().positive();function I(e,r,t=[]){function n(){return {async firstPage(){return {items:t,hasMore:false}},from(){return n()},async*[Symbol.asyncIterator](){}}}function o(s=r){return {async firstPage(){return unwrap(e(s))},from(a){return a===void 0?n():o(a)},async*[Symbol.asyncIterator](){let a=s;for(;;){let m=await unwrap(e(a));if(yield m,!m.hasMore||m.limitReached)return;a=m.nextCursor;}}}}return o()}function me(e){return toPaginationCursor(Tc(JSON.stringify(e)))}function oe(e,r,t="Invalid pagination cursor"){try{return r.parse(JSON.parse(os(e)))}catch(n){throw new a(t,{cause:n})}}function Vr(e){try{return JSON.parse(os(e))}catch{return}}function Tc(e){return btoa(String.fromCharCode(...new TextEncoder().encode(e)))}function os(e){return new TextDecoder().decode(Uint8Array.from(atob(e),r=>r.charCodeAt(0)))}var ss=z$1.strictObject({offset:z$1.number().int().min(0),pageSize:O});function X(e){return me(ss.parse(e))}function pe(e,r,t={}){return e===void 0?{offset:0,pageSize:r}:Xt(oe(e,z$1.unknown()),t)}function Xt(e,r={}){let t=ss.safeParse(e);if(!t.success)throw new a("Invalid pagination cursor",{cause:t.error});let n=t.data;if(r.maxPageSize!==void 0&&n.pageSize>r.maxPageSize)throw new a(`Pagination cursor page size must be at most ${r.maxPageSize}`);if(r.maxOffset!==void 0&&n.offset>r.maxOffset)throw new b(`Pagination reached this listing's supported depth limit (${r.maxOffset}); whether more items exist cannot be established.`);return n}var xc=z$1.object({kind:z$1.literal("keyset"),fingerprint:z$1.string(),cursor:z$1.string().min(1)});function Yr(e,r){return me({kind:"keyset",fingerprint:as(r),cursor:e})}function Zr(e,r){if(!Cc(e))return;let t=xc.safeParse(e);if(!t.success)throw new a("Invalid pagination cursor",{cause:t.error});if(r===void 0||t.data.fingerprint!==as(r))throw new a("Pagination cursor was created for a different query");return toPaginationCursor(t.data.cursor)}function Cc(e){return typeof e=="object"&&e!==null&&"kind"in e&&e.kind==="keyset"}function as(e){return JSON.stringify(Jt(e))}function Jt(e){return Array.isArray(e)?e.map(Jt):typeof e=="object"&&e!==null?Object.fromEntries(Object.entries(e).filter(([,r])=>r!==void 0).sort(([r],[t])=>r<t?-1:r>t?1:0).map(([r,t])=>[r,Jt(t)])):e}function y(e){return function(t){return ResultAsync.fromPromise(t.json(),()=>new c(`Received non-JSON response from ${t.url}`)).andThen(n=>vc(t.url,e,n))}}function ps(e){return ResultAsync.fromPromise(e.blob(),()=>new c(`Received unreadable binary response from ${e.url}`))}function vc(e,r,t){let n=r.safeParse(t);return n.success?ok(n.data):err(c.fromZodError(n.error,{endpoint:e}))}var cs=class{#r;constructor({url:r}){this.#r=r;}async ethCall(r){let t=await this.#s({jsonrpc:"2.0",id:1,method:"eth_call",params:[{to:r.to,data:r.data},"latest"]});if("error"in t)throw new h(`JSON-RPC eth_call failed: ${t.error.message}`,{cause:t.error,status:200});if(typeof t.result!="string")throw new c("Expected JSON-RPC eth_call result to be a hex string");if(!gs(t.result))throw new c("Expected JSON-RPC eth_call result to be a hex string");return t.result}async ethCallBatch(r){return r.length===0?[]:this.#e(r)}async ethEstimateGas(r){let t={to:r.to};r.data!==void 0&&(t.data=r.data),r.from!==void 0&&(t.from=r.from),r.gasPrice!==void 0&&(t.gasPrice=ms(r.gasPrice)),r.value!==void 0&&(t.value=ms(r.value));let n=await this.#s({jsonrpc:"2.0",id:1,method:"eth_estimateGas",params:[t]});if("error"in n)throw new h(`JSON-RPC eth_estimateGas failed: ${n.error.message}`,{cause:n.error,status:200});return BigInt(ls(n.result,"eth_estimateGas"))}async#e(r){if(r.length===1)return [await this.ethCall(r[0])];try{return await this.#o(r)}catch(t){if(!(t instanceof h)||t.status<500)throw t;let n=Math.ceil(r.length/2),[o,s]=await Promise.all([this.#e(r.slice(0,n)),this.#e(r.slice(n))]);return [...o,...s]}}async#o(r){let t=await this.#t(r.map((o,s)=>({jsonrpc:"2.0",id:s+1,method:"eth_call",params:[{to:o.to,data:o.data},"latest"]}))),n=new Map;for(let o of t){if("error"in o&&o.id===null)throw new h(`JSON-RPC eth_call failed: ${o.error.message}`,{cause:o.error,status:200});o.id!==null&&n.set(o.id,o);}return r.map((o,s)=>{let a=s+1,m=n.get(a);if(m===void 0)throw new c("Expected JSON-RPC batch response for every request");if("error"in m)throw new h(`JSON-RPC eth_call failed: ${m.error.message}`,{cause:m.error,status:200});return ls(m.result)})}async#s(r){let t;try{t=await ds.post(this.#r,{json:r,throwHttpErrors:!1});}catch(o){throw d.fromError(o)}if(!t.ok)throw new h(`JSON-RPC request to ${this.#r} failed with status ${t.status}`,{status:t.status});let n;try{n=await t.json();}catch(o){throw new c("Expected JSON-RPC response body to be JSON",{cause:o})}if(!us(n))throw new c("Unexpected JSON-RPC response shape");return n}async#t(r){let t;try{t=await ds.post(this.#r,{json:r,throwHttpErrors:!1});}catch(o){throw d.fromError(o)}if(!t.ok)throw new h(`JSON-RPC request to ${this.#r} failed with status ${t.status}`,{status:t.status});let n;try{n=await t.json();}catch(o){throw new c("Expected JSON-RPC response body to be JSON",{cause:o})}if(!Array.isArray(n)||!n.every(o=>us(o)))throw new c("Unexpected JSON-RPC response shape");return n}};function fs(e){if(!(e instanceof h)||!ys(e.cause))return false;let r=[e.cause.message,qc(e.cause.data)].join(" ").toLowerCase();return (e.cause.code===3||e.cause.code===-32e3||e.cause.code===-32003||e.cause.code===-32015||e.cause.code===-32603)&&(r.includes("execution reverted")||r.includes("revert")||r.includes("invalid opcode"))}function us(e){return !Ps(e)||e.jsonrpc!=="2.0"?false:"error"in e?ys(e.error):"result"in e}function ys(e){return Ps(e)&&typeof e.code=="number"&&typeof e.message=="string"}function Ps(e){return typeof e=="object"&&e!==null}function gs(e){return /^0x[a-fA-F0-9]*$/.test(e)}function ls(e,r="eth_call"){if(typeof e!="string"||!gs(e))throw new c(`Expected JSON-RPC ${r} result to be a hex string`);return e}function ms(e){return `0x${e.toString(16)}`}function qc(e){if(e===void 0)return "";if(typeof e=="string")return e;try{return JSON.stringify(e)}catch{return ""}}var Rs=(t=>(t.OWNER="OWNER",t.SESSION_KEY="SESSION_KEY",t))(Rs||{}),kc="0x0000000000000000000000000000000000000000000000000000000000000000",Oc="0x6492649264926492649264926492649264926492649264926492649264926492";function fx(e,r,t){let n=Zc(e,r,t);return {signer:r,wallet:t,...n}}function Te(e){switch(e){case WalletType.EOA:return SignatureType.EOA;case WalletType.POLY_PROXY:return SignatureType.POLY_PROXY;case WalletType.GNOSIS_SAFE:return SignatureType.POLY_GNOSIS_SAFE;case WalletType.DEPOSIT_WALLET:return SignatureType.POLY_1271}}function vr(e){let r=Te(e.walletType);return {maker:e.wallet,signatureType:r,signer:r===SignatureType.POLY_1271?e.wallet:e.signer}}function ur(e,r){return e.signerType==="OWNER"?r:wc(e.signer,r)}function wc(e,r){let t=expectHexString(`0x${e.slice(2).padStart(64,"0")}`),n=AbiParameters.encode([{type:"bytes32"},{type:"bytes32"},{type:"bytes"}],[t,kc,r]);return expectSessionSignerSignature(`${n}${Oc.slice(2)}`)}var Lc="3d3d606380380380913d393d73%s5af4602a57600080fd5b602d8060366000396000f3363d3d373d3d3d363d73%s5af43d82803e903d91602b57fd5bf352e831dd00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000";function Bc(e){let r=Lc.replace("%s",e.proxyFactory.slice(2).toLowerCase()).replace("%s",e.proxyImplementation.slice(2).toLowerCase());return expectHexString(Hash.keccak256(`0x${r}`))}function Fc(e,r){return expectEvmAddress(ContractAddress.fromCreate2({bytecodeHash:Bc(r),from:r.proxyFactory,salt:Hash.keccak256(AbiParameters.encodePacked(["address"],[e]))}))}function Mc(e,r){return expectEvmAddress(ContractAddress.fromCreate2({bytecodeHash:r.safeInitCodeHash,from:r.safeFactory,salt:Hash.keccak256(AbiParameters.encode([{name:"address",type:"address"}],[e]))}))}var Uc="0xcc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3",Dc="0x5155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076",_c=0x61003d3d8160233d3973n;function Es(e,r){let t=expectHexString(`0x${e.slice(2).padStart(64,"0")}`),n=AbiParameters.encode([{type:"address"},{type:"bytes32"}],[r.depositWalletFactory,t]);return expectEvmAddress(ContractAddress.fromCreate2({bytecodeHash:Kc(r.depositWalletImplementation,n),from:r.depositWalletFactory,salt:Hash.keccak256(n)}))}var zc="0xb3582b35133d50545afa5036515af43d6000803e604d573d6000fd5b3d6000f3",jc="0x1b60e01b36527fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6c",Wc="0x60195155f3363d3d373d3d363d602036600436635c60da",Hc=0x6100523d8160233d3973n,Nc="0x49493a4d";function Ss(e,r){let t=expectHexString(`0x${e.slice(2).padStart(64,"0")}`),n=AbiParameters.encode([{type:"address"},{type:"bytes32"}],[r.depositWalletFactory,t]);return expectEvmAddress(ContractAddress.fromCreate2({bytecodeHash:Gc(r.depositWalletBeacon,n),from:r.depositWalletFactory,salt:Hash.keccak256(n)}))}function Kc(e,r){let t=BigInt((r.length-2)/2),n=_c+(t<<56n);return expectHexString(Hash.keccak256(Bytes.concat(Bytes.fromNumber(n,{size:10}),Bytes.fromHex(e),Bytes.fromHex("0x6009"),Bytes.fromHex(Dc),Bytes.fromHex(Uc),Bytes.fromHex(r)),{as:"Hex"}))}function Gc(e,r){let t=BigInt((r.length-2)/2),n=Hc+(t<<56n);return expectHexString(Hash.keccak256(Bytes.concat(Bytes.fromNumber(n,{size:10}),Bytes.fromHex(e),Bytes.fromHex(Wc),Bytes.fromHex(jc),Bytes.fromHex(zc),Bytes.fromHex(r)),{as:"Hex"}))}async function $c(e,r){try{let t=await e.ethCall({to:r,data:Nc});return Yc(t)}catch(t){if(fs(t))return ZERO_ADDRESS;throw t}}async function Vc(e,r){let t=await $c(e,r);return !isSameEvmAddress(t,ZERO_ADDRESS)}async function hs(e,r,t){return await Vc(e,t.depositWalletFactory)?Ss(r,t):Es(r,t)}function Yc(e){return e.length<66?ZERO_ADDRESS:expectEvmAddress(`0x${e.slice(-40)}`)}function Zc(e,r,t){if(isSameEvmAddress(t,r))return {signerType:"OWNER",walletType:WalletType.EOA};let n=e.walletDerivation;return isSameEvmAddress(t,Ss(r,n))?{signerType:"OWNER",walletType:WalletType.DEPOSIT_WALLET}:isSameEvmAddress(t,Es(r,n))?{signerType:"OWNER",walletType:WalletType.DEPOSIT_WALLET}:isSameEvmAddress(t,Mc(r,n))?{signerType:"OWNER",walletType:WalletType.GNOSIS_SAFE}:isSameEvmAddress(t,Fc(r,n))?{signerType:"OWNER",walletType:WalletType.POLY_PROXY}:{signerType:"SESSION_KEY",walletType:WalletType.DEPOSIT_WALLET}}var Ts=z$1.string().transform(e=>e);function re(e){return z$1.union([z$1.object({...e,assetId:Ts,tokenId:z$1.never().optional()}),z$1.object({...e,assetId:z$1.never().optional(),tokenId:z$1.string()})])}function Ae(e){return z$1.union([z$1.object({...e,assetId:Ts.optional(),tokenId:z$1.never().optional()}),z$1.object({...e,assetId:z$1.never().optional(),tokenId:z$1.string().optional()})])}function S(e,r){if(Jc(r))return Xc(e,r.exceptions);let t=new URLSearchParams;for(let[n,o]of Object.entries(r)){let s=e[n];if(s!==void 0){if(tn(s)){for(let a of s)t.append(o,Fe(a));continue}t.append(o,Fe(s));}}return t}function x(e={}){return {format:"snake_case",exceptions:e}}function xs(e){let r=new URLSearchParams;for(let[t,n]of Object.entries(e))if(n!==void 0){if(Array.isArray(n)){r.append(t,n.map(Fe).join(","));continue}r.append(t,Fe(n));}return r}var Ye=z$1.union([z$1.number().int().min(0),z$1.date()]).transform(e=>e instanceof Date?Math.floor(e.getTime()/1e3):e),lr=z$1.union([z$1.literal("full"),z$1.object({start:Ye.optional(),end:Ye.optional()}).refine(e=>!e.end||e.end>=(e.start??0),"end must not precede start")]).transform(e=>e==="full"?{start:1}:e),rn=EventIdSchema.refine(e=>/^[1-9]\d*$/.test(e)&&BigInt(e)<=2147483647n,"Expected a positive 32-bit event ID");function fe(e,r){return z$1.array(e).min(1).transform(t=>[...new Map(t.map(n=>[n.toLowerCase(),n])).values()]).refine(t=>t.length<=r,`At most ${r} distinct ids`)}function D(e){let r=new URLSearchParams;for(let[t,n]of Object.entries(e)){if(n===void 0)continue;let o=Cs(t);if(tn(n)){r.append(o,n.map(Fe).join(","));continue}r.append(o,Fe(n));}return r}function Jc(e){return "format"in e}function Xc(e,r){let t=new URLSearchParams;for(let[n,o]of Object.entries(e)){if(o===void 0)continue;let s=r[n]??Cs(n);if(tn(o)){for(let a of o)t.append(s,Fe(a));continue}t.append(s,Fe(o));}return t}function tn(e){return Array.isArray(e)}function Cs(e){return e.replace(/[A-Z]/g,r=>`_${r.toLowerCase()}`)}function Fe(e){return String(e)}var wx=r(i,h,q,d,c);async function Lx(e){return (await unwrap(e.secureClob.get("/auth/ban-status/closed-only").andThen(y(ClosedOnlyModeSchema)))).closedOnly}var mu=z$1.object({cursor:PaginationCursorSchema.optional(),id:z$1.string().optional(),market:z$1.string().optional()}),fu=Ae(mu.shape).default({}),Bx=r(i,h,q,d,c,a);function Fx(e,r){let t=l(r,fu),{cursor:n}=t;return I(o=>e.secureClob.get("/data/orders",{params:S({assetId:t.assetId??t.tokenId,id:t.id,market:t.market,nextCursor:o},x({assetId:"asset_id"}))}).andThen(y(OpenOrdersPageSchema)).map(s=>({items:s.data,hasMore:s.nextCursor!==END_CURSOR,nextCursor:s.nextCursor===END_CURSOR?void 0:toPaginationCursor(s.nextCursor)})),n)}var yu=z$1.object({orderId:z$1.string()}),Mx=r(i,h,q,d,c,a);async function Ux(e,r){let t=l(r,yu);return unwrap(e.secureClob.get(`/data/order/${t.orderId}`).andThen(y(OpenOrderSchema)))}var Pu={after:z$1.string().optional(),before:z$1.string().optional(),cursor:PaginationCursorSchema.optional(),id:z$1.string().optional(),makerAddress:z$1.string().optional(),market:z$1.string().optional()},gu=Ae(Pu).default({}),Dx=r(i,h,q,d,c,a);function Is(e,r){let t=l(r,gu),{cursor:n}=t;return I(o=>e.secureClob.get("/data/trades",{params:S({after:t.after,assetId:t.assetId??t.tokenId,before:t.before,id:t.id,makerAddress:t.makerAddress,market:t.market,nextCursor:o},x({assetId:"asset_id"}))}).andThen(y(ClobTradesPageSchema)).map(s=>({items:s.data,hasMore:s.nextCursor!==END_CURSOR,nextCursor:s.nextCursor===END_CURSOR?void 0:toPaginationCursor(s.nextCursor)})),n)}var _x=r(i,h,q,d,c),Ru=z$1.object({ids:z$1.array(z$1.string()).min(1)});async function zx(e){let r=Te(e.account.walletType);return unwrap(e.secureClob.get("/notifications",{params:S({signatureType:r},x())}).andThen(y(NotificationsResponseSchema)))}var jx=r(i,h,q,d,c,a);async function Wx(e,r){let t=l(r,Ru),n=Te(e.account.walletType),o=S({ids:t.ids.join(","),signatureType:n},x());await unwrap(e.secureClob.del("/notifications",{params:o}));}var bs=z$1.object({assetType:AssetTypeSchema}),Eu=Ae(bs.shape),Hx=r(i,h,q,d,c,a);async function nn(e,r){let t=l(r,Eu),n=Te(e.account.walletType);return unwrap(e.secureClob.get("/balance-allowance",{params:S({assetType:t.assetType,tokenId:t.assetId??t.tokenId,signatureType:n},x())}).andThen(y(BalanceAllowanceResponseSchema)))}var Su=Ae(bs.shape),Nx=r(i,h,q,d,c,a);async function vs(e,r){let t=l(r,Su),n=Te(e.account.walletType),o=S({assetType:t.assetType,tokenId:t.assetId??t.tokenId,signatureType:n},x());return await unwrap(e.secureClob.get("/balance-allowance/update",{params:o})),nn(e,t)}var hu=z$1.object({orderId:z$1.string()}),Kx=r(i,h,q,d,c,a);async function Gx(e,r){let t=l(r,hu);return (await unwrap(e.secureClob.get("/order-scoring",{params:S(t,x())}).andThen(y(OrderScoringResponseSchema)))).scoring}var Tu=z$1.object({orderIds:z$1.array(z$1.string())}),$x=r(i,h,q,d,c,a);async function Vx(e,r){let n=l(r,Tu).orderIds;return unwrap(e.secureClob.post("/orders-scoring",{json:n}).andThen(y(OrdersScoringResponseSchema)))}var qs=z$1.object({cursor:PaginationCursorSchema.optional(),date:z$1.string()}),Yx=r(i,h,q,d,c,a);function Zx(e,r){let{cursor:t,...n}=l(r,qs),o=Te(e.account.walletType);return I(s=>e.secureClob.get("/rewards/user",{params:S({...n,nextCursor:s,signatureType:o},x())}).andThen(y(UserEarningsPageSchema)).map(a=>({items:a.data,hasMore:a.nextCursor!==END_CURSOR,nextCursor:a.nextCursor===END_CURSOR?void 0:toPaginationCursor(a.nextCursor)})),t)}var Qx=r(i,h,q,d,c,a);async function Jx(e,r){let t=l(r,qs),n=Te(e.account.walletType);return unwrap(e.secureClob.get("/rewards/user/total",{params:S({...t,signatureType:n},x())}).andThen(y(TotalUserEarningsResponseSchema)))}var xu=z$1.object({cursor:PaginationCursorSchema.optional(),date:z$1.string(),noCompetition:z$1.boolean().optional(),orderBy:z$1.string().optional(),pageSize:O.max(500).default(100),position:z$1.string().optional()}),Xx=r(i,h,q,d,c,a);function eC(e,r){let{cursor:t,...n}=l(r,xu),o=Te(e.account.walletType);return I(s=>e.secureClob.get("/rewards/user/markets",{params:S({...n,nextCursor:s,signatureType:o},x())}).andThen(y(UserRewardsEarningsPageSchema)).map(a=>({items:a.data,hasMore:a.nextCursor!==END_CURSOR,nextCursor:a.nextCursor===END_CURSOR?void 0:toPaginationCursor(a.nextCursor)})),t)}var rC=r(i,h,q,d,c);async function tC(e){let r=Te(e.account.walletType);return unwrap(e.secureClob.get("/rewards/user/percentages",{params:S({signatureType:r},x())}).andThen(y(RewardsPercentagesSchema)))}function _(e,r={}){let{retries:t=2,maxDelaySeconds:n=5,sleep:o=delay}=r;function s(a){return e().orElse(m=>{if(!(m instanceof i)||a<=0)return errAsync(m);let P=m.retryAfter??1;return P>n?errAsync(m):ResultAsync.fromSafePromise(o(P*1e3).catch(()=>{})).andThen(()=>s(a-1))})}return s(t)}var wu=z$1.object({cursor:PaginationCursorSchema.optional(),pageSize:O.max(1e3).default(100),user:EvmAddressSchema.optional(),takerOnly:z$1.boolean().optional(),filterType:TradeFilterTypeSchema.optional(),filterAmount:z$1.number().min(0).optional(),conditionId:z$1.union([ConditionIdSchema,fe(ConditionIdSchema,20)]).optional(),eventId:z$1.array(EventIdSchema).min(1).optional(),side:OrderSideSchema.optional(),window:lr.optional()}).refine(e=>!(e.conditionId&&e.eventId),{message:"Provide conditionId or eventId, not both",path:["eventId"]}),PC=r(i,h,d,c,a);function gC(e,r={}){let{cursor:t,pageSize:n,window:o,...s}=l(r,wu);return I(a=>_(()=>e.data.get("/v2/trades",{params:D({...s,...o,limit:n,cursor:a})})).andThen(y(ListTradesResponseSchema)),t)}var Lu=z$1.object({cursor:PaginationCursorSchema.optional(),pageSize:O.max(1e3).default(100),user:EvmAddressSchema,conditionId:z$1.union([ConditionIdSchema,fe(ConditionIdSchema,20)]).optional(),eventId:z$1.array(EventIdSchema).min(1).optional(),type:z$1.array(ActivityTypeSchema).min(1).optional(),side:OrderSideSchema.optional(),sortDirection:SortDirectionSchema.optional(),window:lr.optional()}).refine(e=>!(e.conditionId&&e.eventId),{message:"Provide conditionId or eventId, not both",path:["eventId"]}),RC=r(i,h,d,c,a);function EC(e,r){let{cursor:t,pageSize:n,window:o,...s}=l(r,Lu);return I(a=>_(()=>e.data.get("/v2/activity",{params:D({...s,...o,excludeDepositsWithdrawals:false,limit:n,cursor:a})})).andThen(y(ListActivityResponseSchema)),t)}var Bu=z$1.object({cursor:PaginationCursorSchema.optional(),pageSize:O.max(1e3).default(100),user:EvmAddressSchema,conditionId:z$1.union([ComboConditionIdSchema,fe(ComboConditionIdSchema,20)]).optional()}),SC=r(i,h,d,c,a);function hC(e,r){let{cursor:t,pageSize:n,...o}=l(r,Bu);return I(s=>_(()=>e.data.get("/v2/activity/combos",{params:D({...o,limit:n,cursor:s})})).andThen(y(ListComboActivityResponseSchema)),t)}var Mu=64,Uu=/^0x[0-9a-fA-F]{62}$/,Du=/^0x[0-9a-fA-F]{64}$/,an="0x0000000000000000000000000000000000000000000000000000000000000000",_u=AbiFunction.from("function approve(address spender, uint256 amount)"),Bs=AbiFunction.from("function allowance(address owner, address spender) view returns (uint256)"),zu=AbiFunction.from("function transfer(address recipient, uint256 amount)"),ju=AbiFunction.from("function authorizeSessionSigner(address sessionSigner, uint256 validUntil)"),Wu=AbiFunction.from("function revokeSessionSigner(address sessionSigner)"),Hu=AbiFunction.from("function deposit(address token, uint256 amount, address to)"),Nu=AbiFunction.from("function setApprovalForAll(address operator, bool approved)"),Fs=AbiFunction.from("function isApprovedForAll(address account, address operator) view returns (bool)"),Ms=AbiFunction.from("function balanceOf(address account, uint256 id) view returns (uint256)"),Us=AbiFunction.from("function balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])"),Ku=AbiFunction.from("function splitPosition(address collateralToken, bytes32 parentCollectionId, bytes32 conditionId, uint256[] partition, uint256 amount)"),Gu=AbiFunction.from("function mergePositions(address collateralToken, bytes32 parentCollectionId, bytes32 conditionId, uint256[] partition, uint256 amount)"),$u=AbiFunction.from("function redeemPositions(address collateralToken, bytes32 parentCollectionId, bytes32 conditionId, uint256[] indexSets)"),Vu=AbiFunction.from("function split(bytes31 conditionId, uint256 amount)"),Yu=AbiFunction.from("function merge(bytes31 conditionId, uint256 amount)"),Zu=AbiFunction.from("function redeem(bytes31 conditionId, uint256 outcomeIndex, uint256 amount)"),Qu=AbiFunction.from("function prepareCondition(uint256[] legs) returns (bytes31)"),Ju=AbiFunction.from("function multiSend(bytes)"),Xu=AbiFunction.from("function proxy((uint8 typeCode, address to, uint256 value, bytes data)[] calls) returns (bytes[])"),Ds=[1n,2n],el=[1n,2n],te=(1n<<256n)-1n,OC=r(a);function rt(e,r,t){if(t<0n)throw new a("Approval amount must be non-negative");if(t>te)throw new a("Approval amount exceeds uint256 range");return {data:rl(r,t),to:e}}function _s(e,r,t){return {data:AbiFunction.encodeData(Bs,[r,t]),to:e}}function zs(e){return AbiFunction.decodeResult(Bs,e)}function tt(e,r,t){return {data:tl(r,t),to:e}}function js(e,r,t){return {data:AbiFunction.encodeData(Fs,[r,t]),to:e}}function Ws(e){return AbiFunction.decodeResult(Fs,e)}function Hs(e,r,t){return {data:AbiFunction.encodeData(Ms,[r,Ce(BigInt(t),"Position ID")]),to:e}}function Ns(e){return AbiFunction.decodeResult(Ms,e)}function nt(e,r,t){return {data:AbiFunction.encodeData(Us,[t.map(()=>r),t.map(n=>Ce(BigInt(n),"id"))]),to:e}}function ot(e){return AbiFunction.decodeResult(Us,e)}var wC=r(a);function pn(e,r,t){if(t<0n)throw new a("Transfer amount must be non-negative");if(t>te)throw new a("Transfer amount exceeds uint256 range");return {data:nl(r,t),to:e}}function Ks(e,r,t){return {data:AbiFunction.encodeData(ju,[r,Ce(t,"Session key expiry")]),to:e}}function Gs(e,r){return {data:AbiFunction.encodeData(Wu,[r]),to:e}}var LC=r(a);function $s(e,r,t,n){if(t<=0n)throw new a("Perps deposit amount must be positive");return {data:AbiFunction.encodeData(Hu,[r,Ce(t,"Perps deposit amount"),n]),to:e}}var BC=r(a);function Vs(e,r,t,n){return {data:ol(r,t,n),to:e}}var FC=r(a);function Ys(e,r,t,n){return {data:sl(r,t,n),to:e}}var MC=r(a);function Zs(e,r,t){return {data:al(r,t),to:e}}var UC=r(a);function dn(e,r,t){return {data:AbiFunction.encodeData(Vu,[ln(r),Ce(t,"Split amount")]),to:e}}var DC=r(a);function cn(e,r,t){return {data:AbiFunction.encodeData(Yu,[ln(r),Ce(t,"Merge amount")]),to:e}}var _C=r(a);function st(e,r,t,n){return {data:AbiFunction.encodeData(Zu,[ln(r),BigInt(il(t)),Ce(n,"Redeem amount")]),to:e}}var zC=r(a);function un(e,r){return {data:AbiFunction.encodeData(Qu,[r.map(t=>Ce(t,"Leg position ID"))]),to:e}}function rl(e,r){return invariant(r>=0n,"Approval amount must be non-negative"),AbiFunction.encodeData(_u,[e,r])}function tl(e,r){return AbiFunction.encodeData(Nu,[e,r])}function nl(e,r){return AbiFunction.encodeData(zu,[e,r])}function ol(e,r,t){return AbiFunction.encodeData(Ku,[e,an,r,Ds,Ce(t,"Split amount")])}function sl(e,r,t){return AbiFunction.encodeData(Gu,[e,an,r,Ds,Ce(t,"Merge amount")])}function al(e,r){return AbiFunction.encodeData($u,[e,an,r,el])}function Ce(e,r){if(e<0n)throw new a(`${r} must be non-negative`);if(e>te)throw new a(`${r} exceeds uint256 range`);return e}function ln(e){if(Uu.test(e))return e.toLowerCase();if(Du.test(e)){let r=e.toLowerCase();if(r.endsWith("00")||r.endsWith("01"))return r.slice(0,Mu)}throw new a("Protocol v2 condition ID must be bytes31, or bytes32 with a binary outcome byte")}function il(e){if(e!==0&&e!==1)throw new a("Protocol v2 outcome index must be 0 or 1");return e}function Qs(e){return AbiFunction.encodeData(Xu,[e.map(r=>({typeCode:1,to:r.to,value:r.value??0n,data:r.data}))])}function Js(e){let r=e.map(t=>pl(t));return AbiFunction.encodeData(Ju,[r.length===0?"0x":AbiParameters.encodePacked(Array.from({length:r.length},()=>"bytes"),r)])}function pl(e){let r=e.value??0n;return AbiParameters.encodePacked(["uint8","address","uint256","uint256","bytes"],[0,e.to,r,BigInt((e.data.length-2)/2),e.data])}var NC=r(i,h,j,l$1,d,c,a);function N(e,r="Expected a TransactionHandle"){return invariant(typeof e=="object"&&e!==null&&"transactionHash"in e&&"transactionId"in e&&"wait"in e&&typeof e.wait=="function",r),e}r(m,q);r(m,q);function YC(e){return async function(t){let n=await t.next();for(;!n.done;)try{switch(n.value.kind){case "requestAddress":n=await t.next(await e.getAddress());break;case "signAuthMessage":n=await t.next(await e.signTypedData(n.value.payload));break}}catch(o){n=await t.throw(o);}return n.value}}function z(e){return async function(t){let n=await t.next();for(;!n.done;)try{switch(n.value.kind){case "requestAddress":n=await t.next(await e.getAddress());break;case "signGaslessTypedData":case "signOrder":n=await t.next(await e.signTypedData(n.value.payload));break;case "signGaslessMessage":n=await t.next(await e.signMessage(n.value.payload));break;case "sendErc20ApprovalTransaction":case "sendErc1155ApprovalForAllTransaction":case "sendErc20TransferTransaction":case "sendPerpsDepositTransaction":case "sendMergePositionsTransaction":case "sendRedeemPositionsTransaction":case "sendSplitPositionTransaction":n=await t.next(await e.sendTransaction(n.value.request));break}}catch(o){n=await t.throw(o);}return n.value}}function Xs(){return {kind:"requestAddress"}}function K(e,r){return {chainId:e,...r}}var Sl=[{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],hl=[{name:"to",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"},{name:"operation",type:"uint8"},{name:"safeTxGas",type:"uint256"},{name:"baseGas",type:"uint256"},{name:"gasPrice",type:"uint256"},{name:"gasToken",type:"address"},{name:"refundReceiver",type:"address"},{name:"nonce",type:"uint256"}],Tl="DepositWallet",xl="1",Cl=600,Il=[{name:"target",type:"address"},{name:"value",type:"uint256"},{name:"data",type:"bytes"}],bl=[{name:"wallet",type:"address"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"},{name:"calls",type:"Call[]"}],vl=z$1.object({address:z$1.string(),type:z$1.enum(RelayerTransactionType)}),cI=r(i,h,d,c,a);async function yn(e,r){let t=l(r,vl);return unwrap(e.relayer.get("/v1/account/transactions/params",{params:S(t,{address:"address",type:"type"})}).andThen(y(RelayerExecuteParamsSchema)))}var ql=z$1.object({transactionId:TransactionIdSchema}),Al=z$1.object({wallet:EvmAddressSchema,type:z$1.enum(WalletType)}),uI=r(i,h,d,c,a);async function lI(e,r){let t=await kl(e,r);return t.type===WalletType.EOA?false:unwrap(e.relayer.get("/deployed",{params:S({address:t.wallet,type:t.type===WalletType.DEPOSIT_WALLET?RelayerTransactionType.WALLET:void 0},{address:"address",type:"type"})}).andThen(y(RelayerDeployedResponseSchema)).map(({deployed:n})=>n))}async function kl(e,r){if(r!==void 0)return l(r,Al);if(!e.isSecureClient())throw new a("Gasless readiness inference requires a secure client. Pass a wallet and type when using a public client.");return e.account.walletType!==WalletType.EOA?{wallet:e.account.wallet,type:e.account.walletType}:{wallet:await hs(e.rpc,e.account.signer,e.environment.walletDerivation),type:WalletType.DEPOSIT_WALLET}}var V=z$1.string().max(500),ea=10,mI=r(i,h,d,c,a);async function fI(e){return invariant(e.supportsGasless,"Deposit Wallet deployment requires a Relayer API Key or Builder API Key in the client configuration."),qr(e,{from:e.account.signer,metadata:"Deploy Deposit Wallet",to:e.environment.walletDerivation.depositWalletFactory,type:RelayerTransactionType.WALLET_CREATE})}async function Ol(e,r){let t=l(r,ql);return unwrap(e.relayer.get(`/v1/account/transactions/${t.transactionId}`).andThen(y(GaslessTransactionSchema)))}var wl=z$1.object({data:z$1.custom(isHexString),to:EvmAddressSchema,value:z$1.bigint().optional()}),Ll=z$1.object({calls:z$1.array(wl).min(1).transform(e=>expectNonEmptyArray(e)),metadata:V}),yI=r(i,h,d,c,a);async function Y(e,r){let t=l(r,Ll);return invariant(e.supportsGasless,"Gasless transactions require a Relayer API Key or Builder API Key in the client configuration."),invariant(e.account.walletType===WalletType.GNOSIS_SAFE||e.account.walletType===WalletType.POLY_PROXY||e.account.walletType===WalletType.DEPOSIT_WALLET,"Gasless transaction preparation supports Deposit Wallet, Safe-backed, and proxy-backed accounts"),async function*(){let n=expectEvmAddress(yield Xs());invariant(n===e.account.signer,"Wallet client address does not match the authenticated signer");for(let o=0;o<=ea;o+=1)try{switch(e.account.walletType){case WalletType.POLY_PROXY:return yield*Bl(e,t);case WalletType.DEPOSIT_WALLET:return yield*Fl(e,t);case WalletType.GNOSIS_SAFE:return yield*Ml(e,t)}invariant(!1,"Unsupported wallet type for gasless transaction");}catch(s){if(!Sn(s)||o===ea)throw s;await delay(e.environment.relayerPollFrequencyMs);}invariant(false,"Expected gasless transaction retry loop to return");}.call(null)}async function*Bl(e,r){let t=yield*Pn(e,r.calls,r.metadata);return qr(e,t)}async function*Pn(e,r,t){let n=await yn(e,{address:e.account.signer,type:RelayerTransactionType.PROXY}),o=e.environment.walletDerivation.proxyFactory,s=Qs(r),a="0",m="0",P=(await e.rpc.ethEstimateGas({data:s,from:e.account.signer,to:o})).toString(),h=e.environment.contracts.relayHub,C=n.address,A=zl(e.account.signer,o,s,a,m,P,n.nonce,h,C),k=expectEvmSignature(yield aa(A));return {data:s,from:e.account.signer,...t!==void 0&&{metadata:t},nonce:n.nonce,proxyWallet:e.account.wallet,signature:k,signatureParams:{gasLimit:P,gasPrice:m,relay:C,relayHub:h,relayerFee:a},to:o,type:RelayerTransactionType.PROXY}}function gn(e){return !(e instanceof h)||e.status!==400?void 0:/batch nonce\s+\d+\s+does not match on-chain nonce\s+(\d+)/i.exec(e.message)?.[1]}async function*Fl(e,r){let t=yield*fr(e,r.calls,r.metadata);try{return await qr(e,t)}catch(n){let o=gn(n);if(o===void 0)throw n;let s=yield*Rn(e,t,r.calls,o);return qr(e,s)}}async function*fr(e,r,t){let n=await yn(e,{address:e.account.signer,type:RelayerTransactionType.WALLET}),o=r.map(oa),s=`${Math.floor(Date.now()/1e3)+Cl}`,a=ur(e.account,expectEvmSignature(yield ia(sa({calls:o,chainId:e.environment.chainId,deadline:s,nonce:n.nonce,wallet:e.account.wallet}))));return {depositWalletParams:{calls:o,deadline:s,depositWallet:e.account.wallet},from:e.account.signer,...t!==void 0&&{metadata:t},nonce:n.nonce,signature:a,to:e.environment.walletDerivation.depositWalletFactory,type:RelayerTransactionType.WALLET}}async function*Rn(e,r,t,n){let o=ur(e.account,expectEvmSignature(yield ia(sa({calls:t.map(oa),chainId:e.environment.chainId,deadline:r.depositWalletParams.deadline,nonce:n,wallet:e.account.wallet}))));return {...r,nonce:n,signature:o}}async function*Ml(e,r){let t=yield*En(e,r.calls,r.metadata);return qr(e,t)}async function*En(e,r,t){let n=await yn(e,{address:e.account.signer,type:RelayerTransactionType.SAFE}),o=Ul(r,e.environment.contracts.safeMultisend),s=_l({chainId:e.environment.chainId,data:o.data,nonce:n.nonce,operation:o.operation,safeAddress:e.account.wallet,to:o.to,value:o.value}),a=expectEvmSignature(yield aa(expectHexString(TypedData.getSignPayload(s))));return {data:o.data,from:e.account.signer,...t!==void 0&&{metadata:t},nonce:n.nonce,proxyWallet:e.account.wallet,signature:jl(a),signatureParams:Dl(o.operation),to:o.to,type:RelayerTransactionType.SAFE,value:o.value>0n?`${o.value}`:void 0}}async function qr(e,r){let t=l(r,RelayerExecuteRequestSchema),n=await unwrap(e.relayer.post("/submit",{json:t}).andThen(y(RelayerExecuteResponseSchema)));return new Ze(e,n)}function Sn(e){if(e instanceof i)return true;if(!(e instanceof h)||e.status!==400)return false;if(/wallet busy/i.test(e.message)&&/active action/i.test(e.message)||/wallet has in-flight action/i.test(e.message))return true;let r=/batch nonce\s+(\d+)\s+does not match on-chain nonce\s+(\d+)/i.exec(e.message);if(r===null)return false;let t=r[1],n=r[2];return t===void 0||n===void 0?false:BigInt(t)<BigInt(n)}function oa(e){return {data:e.data,target:e.to,value:`${e.value??0n}`}}function sa(e){let r={chainId:e.chainId,name:Tl,verifyingContract:e.wallet,version:xl};return {domain:r,message:{calls:e.calls.map(t=>({data:t.data,target:t.target,value:BigInt(t.value)})),deadline:BigInt(e.deadline),nonce:BigInt(e.nonce),wallet:e.wallet},primaryType:"Batch",types:{Batch:bl,Call:Il,EIP712Domain:TypedData.extractEip712DomainTypes(r)}}}function Ul(e,r){if(e.length===1){let[t]=e;return {data:t.data,operation:0,to:t.to,value:t.value??0n}}return {data:Js(e),operation:1,to:r,value:0n}}function Dl(e){return {baseGas:"0",gasPrice:"0",gasToken:ZERO_ADDRESS,operation:`${e}`,refundReceiver:ZERO_ADDRESS,safeTxnGas:"0"}}function _l(e){return {domain:{chainId:e.chainId,verifyingContract:e.safeAddress},message:{baseGas:0n,data:e.data,gasPrice:0n,gasToken:ZERO_ADDRESS,nonce:BigInt(e.nonce),operation:e.operation,refundReceiver:ZERO_ADDRESS,safeTxGas:0n,to:e.to,value:e.value},primaryType:"SafeTx",types:{EIP712Domain:Sl,SafeTx:hl}}}function aa(e){return {kind:"signGaslessMessage",payload:e}}function ia(e){return {kind:"signGaslessTypedData",payload:e}}function zl(e,r,t,n,o,s,a,m,P){return expectHexString(Hash.keccak256(Bytes.concat(Bytes.fromString("rlx:"),Bytes.fromHex(e),Bytes.fromHex(r),Bytes.fromHex(t),Bytes.fromNumber(BigInt(n),{size:32}),Bytes.fromNumber(BigInt(o),{size:32}),Bytes.fromNumber(BigInt(s),{size:32}),Bytes.fromNumber(BigInt(a),{size:32}),Bytes.fromHex(m),Bytes.fromHex(P)),{as:"Hex"}))}function jl(e){let r=e.slice(2),t=Number.parseInt(r.slice(128,130),16),n=t===0||t===1?t+31:t===27||t===28?t+4:t;return expectHexString(`0x${r.slice(0,128)}${n.toString(16).padStart(2,"0")}`)}var PI=r(i,h,d,c,a,j,l$1),Ze=class{#r;transactionHash;transactionId;constructor(r,t){this.#r=r,this.transactionHash=t.transactionHash,this.transactionId=t.transactionId;}async wait(){let r=0;for(;r<this.#r.environment.relayerMaxPolls;){let t=await Ol(this.#r,{transactionId:this.transactionId});if(t.state===RelayerTransactionState.STATE_CONFIRMED){let n=t.transactionHash??this.transactionHash;if(n===null)throw new c("Expected submitted transaction to have a transaction hash once settled");return {transactionHash:n,transactionId:t.transactionId}}if(t.state===RelayerTransactionState.STATE_FAILED||t.state===RelayerTransactionState.STATE_INVALID)throw new l$1(t.errorMsg??`Transaction ${t.transactionId} reached terminal state ${t.state}`);r+=1,await delay(this.#r.environment.relayerPollFrequencyMs);}throw new j(`Timed out waiting for transaction ${this.transactionId} to settle`)}};var Wl=z$1.object({amount:z$1.union([z$1.bigint(),z$1.literal("max")]),metadata:V.optional(),spenderAddress:EvmAddressSchema,tokenAddress:EvmAddressSchema}),vI=r(a);async function Hl(e,r){let t=l(r,Wl),n=t.amount==="max"?te:t.amount;return async function*(){return e.account.walletType===WalletType.EOA?N(yield ua(K(e.environment.chainId,rt(t.tokenAddress,t.spenderAddress,n)))):yield*await Y(e,{calls:[rt(t.tokenAddress,t.spenderAddress,n)],metadata:t.metadata??`Approve ${t.amount} of ${t.tokenAddress} to ${t.spenderAddress}`})}.call(null)}var qI=r(m,i,h,q,d,c,a);function pa(e,r){return Hl(e,r).then(z(e.signer))}var Nl=z$1.object({approved:z$1.boolean().default(true),metadata:V.optional(),operatorAddress:EvmAddressSchema,tokenAddress:EvmAddressSchema}),AI=r(a);async function Kl(e,r){let t=l(r,Nl);return async function*(){return e.account.walletType===WalletType.EOA?N(yield la(K(e.environment.chainId,tt(t.tokenAddress,t.operatorAddress,t.approved)))):yield*await Y(e,{calls:[tt(t.tokenAddress,t.operatorAddress,t.approved)],metadata:t.metadata??`${t.approved?"Approve":"Revoke"} ${t.operatorAddress} on ${t.tokenAddress}`})}.call(null)}var kI=r(m,i,h,q,d,c,a);function da(e,r){return Kl(e,r).then(z(e.signer))}var OI=r(h,d,c,a),Gl=z$1.object({user:EvmAddressSchema}),wI=r(h,d,c,a);async function LI(e,r){let{user:t}=l(r,Gl),n=await ca(e,t);return {isFullyApproved:n.erc20.length===0&&n.erc1155.length===0,missing:n}}async function $l(e){let r=await ca(e,e.account.wallet),t=r.erc20.map(o=>rt(o.tokenAddress,o.spenderAddress,o.amount)),n=r.erc1155.map(o=>tt(o.tokenAddress,o.operatorAddress,true));return async function*(){if(t.length===0&&n.length===0)return;if(e.account.walletType===WalletType.EOA){for(let s of t)await N(yield ua(K(e.environment.chainId,s))).wait();for(let s of n)await N(yield la(K(e.environment.chainId,s))).wait();return}await(yield*await Y(e,{calls:[...t,...n],metadata:"Trading setup approvals"})).wait();}.call(null)}var BI=r(m,i,h,q,j,l$1,d,c,a);function FI(e){return $l(e).then(z(e.signer)).then(()=>{})}async function ca(e,r){let t=Vl(e),n=[...t.erc20.map(m=>_s(m.tokenAddress,r,m.spenderAddress)),...t.erc1155.map(m=>js(m.tokenAddress,r,m.operatorAddress))],o=await e.rpc.ethCallBatch(n),s=o.slice(0,t.erc20.length),a=o.slice(t.erc20.length);try{return {erc20:t.erc20.filter((m,P)=>zs(s[P])<m.amount),erc1155:t.erc1155.filter((m,P)=>!Ws(a[P]))}}catch(m){throw new c("Expected JSON-RPC approval checks to return ABI-encoded values",{cause:m})}}function Vl(e){let{contracts:r}=e.environment;return {erc20:[{amount:te,spenderAddress:r.standardExchange,tokenAddress:r.collateralToken},{amount:te,spenderAddress:r.negRiskExchange,tokenAddress:r.collateralToken},{amount:te,spenderAddress:r.collateralAdapter,tokenAddress:r.collateralToken},{amount:te,spenderAddress:r.negRiskCollateralAdapter,tokenAddress:r.collateralToken},{amount:te,spenderAddress:r.protocolV2Router,tokenAddress:r.collateralToken},{amount:te,spenderAddress:r.exchangeV3,tokenAddress:r.collateralToken},{amount:te,spenderAddress:r.perpsDepositContract,tokenAddress:r.collateralToken}],erc1155:[{operatorAddress:r.standardExchange,tokenAddress:r.conditionalTokens},{operatorAddress:r.negRiskExchange,tokenAddress:r.conditionalTokens},{operatorAddress:r.collateralAdapter,tokenAddress:r.conditionalTokens},{operatorAddress:r.negRiskCollateralAdapter,tokenAddress:r.conditionalTokens},{operatorAddress:r.autoRedeemOperator,tokenAddress:r.conditionalTokens},{operatorAddress:r.binaryModule,tokenAddress:r.conditionalTokens},{operatorAddress:r.negRiskModule,tokenAddress:r.conditionalTokens},{operatorAddress:r.protocolV2Router,tokenAddress:r.positionManager},{operatorAddress:r.exchangeV3,tokenAddress:r.positionManager},{operatorAddress:r.autoRedeemOperator,tokenAddress:r.positionManager}]}}function ua(e){return {kind:"sendErc20ApprovalTransaction",request:e}}function la(e){return {kind:"sendErc1155ApprovalForAllTransaction",request:e}}var WI=r(i,h,d,c);async function Jl(e,r){return unwrap(e.clob.post("/auth/api-key",{headers:ya(r)}).andThen(y(ApiKeyCredsSchema)))}var HI=r(i,h,d,c);async function Xl(e,r){return unwrap(e.clob.get("/auth/derive-api-key",{headers:ya(r)}).andThen(y(ApiKeyCredsSchema)))}var NI=r(i,h,d,c);async function KI(e,r){try{return await Jl(e,r)}catch(t){if(!(t instanceof h)||t.status!==400)throw t}return Xl(e,r)}var GI=r(i,h,q,d,c);async function $I(e){return (await unwrap(e.secureClob.get("/auth/api-keys").andThen(y(ApiKeysResponseSchema)))).apiKeys}var VI=r(i,h,q,d,c);async function YI(e){await unwrap(e.secureClob.del("/auth/api-key").andThen(y(z$1.literal("OK"))));}var ZI=r(i,h,q,d,c);async function QI(e){return unwrap(e.secureClob.post("/auth/builder-api-key").andThen(y(BuilderApiKeyCredsSchema)))}var JI=r(i,h,q,d,c);async function XI(e){return unwrap(e.secureClob.get("/auth/builder-api-key").andThen(y(BuilderApiKeysResponseSchema)))}var eb=r(i,h,q,d,c);async function rb(e){await unwrap(e.clob.del("/auth/builder-api-key").andThen(y(z$1.literal("OK"))));}function ya(e){return {POLY_ADDRESS:e.address,POLY_NONCE:`${e.nonce}`,POLY_SIGNATURE:e.signature,POLY_TIMESTAMP:`${e.timestamp}`}}var om=z$1.object({after:z$1.string().optional(),before:z$1.string().optional(),builderCode:BuilderCodeSchema,cursor:PaginationCursorSchema.optional(),id:z$1.string().optional(),market:z$1.string().optional()}),sm=Ae(om.shape),lb=r(i,h,d,c,a);function mb(e,r){let t=l(r,sm),{cursor:n}=t;return I(o=>e.clob.get("/builder/trades",{params:S({after:t.after,assetId:t.assetId??t.tokenId,before:t.before,builderCode:t.builderCode,id:t.id,market:t.market,nextCursor:o},x({assetId:"asset_id",builderCode:"builder_code"}))}).andThen(y(PaginatedBuilderTradesSchema)).map(s=>({items:s.data,hasMore:s.nextCursor!==END_CURSOR,nextCursor:s.nextCursor===END_CURSOR?void 0:toPaginationCursor(s.nextCursor)})),n)}var Cm=re({}),Ib=r(i,h,d,c,a);async function bb(e,r){let t=l(r,Cm);return (await unwrap(e.clob.get("/midpoint",{params:Xe(t)}).andThen(y(MidpointSchema)))).mid}var Im=z$1.array(re({})).min(1),vb=r(i,h,d,c,a);async function qb(e,r){let t=l(r,Im);return unwrap(e.clob.post("midpoints",{json:ut(t)}).andThen(y(MidpointsSchema)))}var bm=re({}),Ab=r(i,h,d,c,a);async function kb(e,r){let t=l(r,bm);return (await unwrap(e.clob.get("/tick-size",{params:Xe(t)}).andThen(y(FetchTickSizeResponseSchema)))).minimumTickSize}var vm=re({}),Ob=r(i,h,d,c,a);async function wb(e,r){let t=l(r,vm);return (await unwrap(e.clob.get("/neg-risk",{params:Xe(t)}).andThen(y(FetchNegRiskResponseSchema)))).negRisk}var qm=re({}),Lb=r(i,h,d,c,a);async function ha(e,r){let t=l(r,qm);return unwrap(e.clob.get(`/markets-by-token/${t.assetId??t.tokenId}`).andThen(y(ResolveConditionByTokenResponseSchema)))}var Am=z$1.object({conditionId:ConditionIdSchema}),Bb=r(i,h,d,c,a);async function Ta(e,r){let t=l(r,Am);return unwrap(e.clob.get(`/clob-markets/${t.conditionId}`).andThen(y(FetchMarketInfoResponseSchema)))}var km=z$1.object({builderCode:BuilderCodeSchema}),Fb=r(i,h,d,c,a);async function xa(e,r){let t=l(r,km);return unwrap(e.clob.get(`/fees/builder-fees/${t.builderCode}`).andThen(y(FetchBuilderFeeRatesResponseSchema)).mapErr(n=>n instanceof h&&n.status===404?new a(`Unknown builder code: ${t.builderCode}`,{cause:n}):n))}var Om=re({side:OrderSideSchema}),Mb=r(i,h,d,c,a);async function Ub(e,r){let t=l(r,Om);return (await unwrap(e.clob.get("/price",{params:Xe(t)}).andThen(y(PriceSchema)))).price}var wm=z$1.array(re({side:OrderSideSchema})).min(1),Db=r(i,h,d,c,a);async function _b(e,r){let t=l(r,wm);return unwrap(e.clob.post("prices",{json:jm(t)}).andThen(y(PricesSchema)))}var Lm=re({}),zb=r(i,h,d,c,a);async function ct(e,r){let t=l(r,Lm);return unwrap(e.clob.get("/book",{params:Xe(t)}).andThen(y(FetchOrderBookResponseSchema)))}var Bm=z$1.array(re({})).min(1),jb=r(i,h,d,c,a);async function Wb(e,r){let t=l(r,Bm);return unwrap(e.clob.post("books",{json:ut(t)}).andThen(y(OrderBooksSchema)))}var Fm=re({}),Hb=r(i,h,d,c,a);async function Nb(e,r){let t=l(r,Fm);return (await unwrap(e.clob.get("/spread",{params:Xe(t)}).andThen(y(SpreadSchema)))).spread}var Mm=z$1.array(re({})).min(1),Kb=r(i,h,d,c,a);async function Gb(e,r){let t=l(r,Mm);return unwrap(e.clob.post("spreads",{json:ut(t)}).andThen(y(SpreadsSchema)))}var Um=re({}),$b=r(i,h,d,c,a);async function Vb(e,r){let t=l(r,Um);return unwrap(e.clob.get("/last-trade-price",{params:Xe(t)}).andThen(y(LastTradePriceSchema)))}var Dm=z$1.array(re({})).min(1),Yb=r(i,h,d,c,a);async function Zb(e,r){let t=l(r,Dm);return unwrap(e.clob.post("last-trades-prices",{json:ut(t)}).andThen(y(LastTradePricesSchema)))}var _m=z$1.object({cursor:PaginationCursorSchema.optional(),sponsored:z$1.boolean().optional()}).default({}),Qb=r(i,h,d,c,a);function Jb(e,r={}){let{cursor:t,...n}=l(r,_m);return I(o=>e.clob.get("/rewards/markets/current",{params:S({...n,nextCursor:o},x())}).andThen(y(PaginatedCurrentRewardsSchema)).map(s=>({items:s.data,hasMore:s.nextCursor!==END_CURSOR,nextCursor:s.nextCursor===END_CURSOR?void 0:toPaginationCursor(s.nextCursor)})),t)}var zm=z$1.object({conditionId:ConditionIdSchema,cursor:PaginationCursorSchema.optional(),sponsored:z$1.boolean().optional()}),Xb=r(i,h,d,c,a);function ev(e,r){let{cursor:t,...n}=l(r,zm);return I(o=>e.clob.get(`rewards/markets/${n.conditionId}`,{params:S({nextCursor:o,sponsored:n.sponsored},x())}).andThen(y(PaginatedMarketRewardsSchema)).map(s=>({items:s.data,hasMore:s.nextCursor!==END_CURSOR,nextCursor:s.nextCursor===END_CURSOR?void 0:toPaginationCursor(s.nextCursor)})),t)}function ut(e){return e.map(r=>({token_id:r.assetId??r.tokenId}))}function jm(e){return e.map(r=>({token_id:r.assetId??r.tokenId,side:r.side}))}function Xe(e){let{assetId:r,tokenId:t,...n}=e;return S({...n,tokenId:e.assetId??e.tokenId},x())}var va=2*6e4,lv=r(i,h,d,c);async function mv(e){return qa(e),unwrap(e.combos.post("/v1/collateral-return/plan",{json:{wallet:e.account.wallet},timeout:va}).andThen(y(CollateralReturnPlanResponseSchema)))}var Ym=z$1.object({plan:CollateralReturnPlanSchema}),Ca=10,Tn="Collateral return",fv=r(h,d,c,a);async function Zm(e,r){let{plan:t}=l(r,Ym);if(invariant(e.supportsGasless,"Collateral return execution requires a Relayer API Key or Builder API Key in the client configuration."),qa(e),!isSameEvmAddress(t.wallet,e.account.wallet))throw new a("The collateral return plan was created for a different wallet than the authenticated account.");if(t.chainId!==e.environment.chainId)throw new a(`The collateral return plan was created for chain ${t.chainId}, but the client is configured for chain ${e.environment.chainId}.`);return async function*(){let n=[{data:t.routerCall.data,to:t.routerCall.to,value:0n}];for(let o=0;o<=Ca;o+=1)try{let s=yield*Qm(e,n);try{return await Ia(e,t.planHash,s)}catch(a){let m=gn(a);if(m===void 0||s.type!==RelayerTransactionType.WALLET)throw a;let P=yield*Rn(e,s,n,m);return await Ia(e,t.planHash,P)}}catch(s){if(!Sn(s)||o===Ca)throw s;await delay(e.environment.relayerPollFrequencyMs);}invariant(false,"Expected collateral return submit retry loop to return");}.call(null)}var yv=r(m,i,h,q,d,c,a);function Pv(e,r){return Zm(e,r).then(z(e.signer))}function qa(e){invariant(e.account.walletType===WalletType.DEPOSIT_WALLET||e.account.walletType===WalletType.GNOSIS_SAFE||e.account.walletType===WalletType.POLY_PROXY,"Collateral return supports Deposit Wallet, Safe Wallet, and Proxy Wallet accounts");}function Qm(e,r){switch(e.account.walletType){case WalletType.GNOSIS_SAFE:return En(e,r,Tn);case WalletType.POLY_PROXY:return Pn(e,r,Tn);default:return fr(e,r,Tn)}}async function Ia(e,r,t){let n=await unwrap(e.combos.post("/v1/collateral-return/submit",{json:{envelope:t,plan_hash:r},timeout:va}).andThen(y(RelayerExecuteResponseSchema)));return new Ze(e,n)}var In=100,bn=200,wa={maxOffset:bn,maxPageSize:In},of=z$1.object({ascending:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),pageSize:O.max(In).default(20),getPositions:z$1.boolean().optional(),holdersOnly:z$1.boolean().optional(),order:z$1.string().optional(),parentEntityId:z$1.union([EventIdSchema,SeriesIdSchema]),parentEntityType:CommentParentEntityTypeSchema}),sf=z$1.object({getPositions:z$1.boolean().optional(),id:CommentIdSchema}),af=z$1.object({address:z$1.string(),ascending:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),order:z$1.string().optional(),pageSize:O.max(In).default(20)}),Av=r(b,i,h,d,c,a),pf=z$1.enum(["id","createdAt"]);function df(e){if(e.holdersOnly===true||e.getPositions===true)return;if(e.order===void 0)return {ascending:false,order:"createdAt",parentEntityId:e.parentEntityId,parentEntityType:e.parentEntityType};let r=pf.safeParse(e.order);if(r.success)return {ascending:e.ascending??true,order:r.data,parentEntityId:e.parentEntityId,parentEntityType:e.parentEntityType}}function kv(e,r){let{cursor:t,pageSize:n,...o}=l(r,of),s=df(o);return I(a$1=>{if(a$1===void 0)return s===void 0?Aa(e,o,{offset:0,pageSize:n}):ka(e,s,n);let m=Vr(a$1);if(m===void 0)throw new a("Invalid pagination cursor");let P=Zr(m,s);return P===void 0||s===void 0?Aa(e,o,Xt(m,wa)):ka(e,s,n,P)},t)}function Aa(e,r,t){return e.gamma.get("/comments",{params:S({ascending:r.ascending,getPositions:r.getPositions,holdersOnly:r.holdersOnly,limit:t.pageSize,offset:t.offset,order:r.order,parentEntityId:r.parentEntityId,parentEntityType:r.parentEntityType},x())}).andThen(y(ListCommentsResponseSchema)).map(n=>{let s=n.filter(a=>a.parentCommentID==null).length>=t.pageSize;return {items:n,hasMore:s,limitReached:s&&t.offset+t.pageSize>bn,nextCursor:s?X({offset:t.offset+t.pageSize,pageSize:t.pageSize}):void 0}})}function ka(e,r,t,n){return e.gamma.get("/comments/keyset",{params:S({afterCursor:n,ascending:r.ascending,limit:t,order:r.order,parentEntityId:r.parentEntityId,parentEntityType:r.parentEntityType},x())}).andThen(y(ListCommentsKeysetResponseSchema)).map(o=>({items:o.items,hasMore:o.nextCursor!==void 0,nextCursor:o.nextCursor===void 0?void 0:Yr(o.nextCursor,r)}))}var Ov=r(i,h,d,c,a);async function wv(e,r){let t=l(r,sf);return unwrap(e.gamma.get(`comments/${t.id}`,{params:S({getPositions:t.getPositions},x())}).andThen(y(ListCommentsResponseSchema)))}var Lv=r(b,i,h,d,c,a);function Bv(e,r){let{address:t,cursor:n,pageSize:o,...s}=l(r,af);return I(a=>{let m=pe(a,o,wa);return e.gamma.get(`comments/user_address/${t}`,{params:S({ascending:s.ascending,limit:m.pageSize,offset:m.offset,order:s.order},x())}).andThen(y(ListCommentsResponseSchema)).map(P=>{let h=P.length>=m.pageSize;return {items:P,hasMore:h,limitReached:h&&m.offset+m.pageSize>bn,nextCursor:h?X({offset:m.offset+m.pageSize,pageSize:m.pageSize}):void 0}})},n)}function lt(e,r){let t;try{t=new URL(e);}catch(m){throw new a("Expected a valid Polymarket URL.",{cause:m})}if(t.protocol!=="https:"||t.hostname!=="polymarket.com"&&t.hostname!=="www.polymarket.com")throw new a("Expected a valid Polymarket URL.");let[n,o,...s]=t.pathname.split("/").filter(Boolean),a$1=s[0];if(r==="market"&&n==="event"&&o!==void 0&&s.length<=1)return a$1??o;if(n!==r||o===void 0||s.length>0)throw new a(`Expected a Polymarket ${r} URL.`);return o}var Rf=z$1.object({ascending:z$1.boolean().optional(),closed:z$1.boolean().default(false),cursor:PaginationCursorSchema.optional(),pageSize:O.optional(),cyom:z$1.boolean().optional(),endDateMax:IsoDateTimeStringSchema.optional(),endDateMin:IsoDateTimeStringSchema.optional(),ended:z$1.boolean().optional(),eventDate:IsoCalendarDateStringSchema.optional(),eventWeek:z$1.number().int().optional(),excludeTagIds:z$1.array(z$1.number().int()).optional(),featured:z$1.boolean().optional(),featuredOrder:z$1.boolean().optional(),gameIds:z$1.array(z$1.number().int()).optional(),ids:z$1.array(z$1.number().int()).optional(),includeBestLines:z$1.boolean().optional(),includeChat:z$1.boolean().optional(),includeChildren:z$1.boolean().optional(),includeTemplate:z$1.boolean().optional(),liquidityMax:z$1.number().optional(),liquidityMin:z$1.number().optional(),live:z$1.boolean().optional(),locale:z$1.string().optional(),order:z$1.string().optional(),parentEventId:z$1.number().int().optional(),partnerSlug:z$1.string().optional(),recurrence:z$1.enum(["daily","weekly","monthly"]).optional(),relatedTags:z$1.boolean().optional(),seriesIds:z$1.array(z$1.number().int()).optional(),slug:z$1.array(z$1.string()).optional(),startDateMax:IsoDateTimeStringSchema.optional(),startDateMin:IsoDateTimeStringSchema.optional(),startTimeMax:IsoDateTimeStringSchema.optional(),startTimeMin:IsoDateTimeStringSchema.optional(),tagIds:z$1.array(z$1.number().int()).optional(),tagMatch:z$1.enum(["any","all"]).optional(),tagSlug:z$1.string().optional(),titleSearch:z$1.string().optional(),volumeMax:z$1.number().optional(),volumeMin:z$1.number().optional()}),Ef=z$1.union([z$1.object({id:z$1.string(),includeBestLines:z$1.boolean().optional(),includeChat:z$1.boolean().optional(),includeTemplate:z$1.boolean().optional(),locale:z$1.string().optional()}),z$1.object({slug:z$1.string(),includeBestLines:z$1.boolean().optional(),includeChat:z$1.boolean().optional(),includeTemplate:z$1.boolean().optional(),locale:z$1.string().optional()}),z$1.object({url:z$1.string(),includeBestLines:z$1.boolean().optional(),includeChat:z$1.boolean().optional(),includeTemplate:z$1.boolean().optional(),locale:z$1.string().optional()})]),Sf=z$1.object({id:z$1.string()}),Zv=r(i,h,d,c,a);function Qv(e,r={}){let{cursor:t,pageSize:n,...o}=l(r,Rf);return I(s=>e.gamma.get("/events/keyset",{params:bf({...o,pageSize:n,cursor:s===void 0?void 0:hf(s,o)})}).andThen(y(ListEventsKeysetResponseSchema)).map(a=>({items:a.items,hasMore:a.nextCursor!==void 0,nextCursor:a.nextCursor===void 0?void 0:Yr(a.nextCursor,o)})),t)}function hf(e,r){let t=Vr(e);return t===void 0?e:Zr(t,r)??e}var Jv=r(i,h,d,c,a);async function Xv(e,r){let t=l(r,Ef);if("id"in t)return unwrap(e.gamma.get(`events/${t.id}`,{params:vf(t)}).andThen(y(EventSchema)));let n="url"in t?lt(t.url,"event"):t.slug;return unwrap(e.gamma.get(`events/slug/${n}`,{params:qf(t)}).andThen(y(EventSchema)))}var eq=r(i,h,d,c,a);async function rq(e,r){let t=l(r,Sf);return unwrap(e.gamma.get(`events/${t.id}/tags`).andThen(y(FetchEventTagsResponseSchema)))}var Tf=z$1.array(CanonicalMarketConditionIdSchema).min(1).transform(e=>[...new Set(e)]).refine(e=>e.length<=20,"At most 20 distinct condition ids"),xf=z$1.array(rn).min(1).transform(e=>[...new Set(e)]).refine(e=>e.length<=20,"At most 20 distinct event ids"),Cf=z$1.union([z$1.object({questionId:QuestionIdSchema,conditionIds:z$1.never().optional(),eventIds:z$1.never().optional()}),z$1.object({questionId:z$1.never().optional(),conditionIds:Tf,eventIds:z$1.never().optional()}),z$1.object({questionId:z$1.never().optional(),conditionIds:z$1.never().optional(),eventIds:xf})]),tq=r(i,h,d,c,a);async function nq(e,r){let{conditionIds:t,eventIds:n,questionId:o}=l(r,Cf);return unwrap(_(()=>e.data.get("/v2/resolutions",{params:D({questionId:o,condition:t,eventId:n})})).andThen(y(FetchResolutionsResponseSchema)))}var If=z$1.object({eventIds:z$1.array(rn).min(1).transform(e=>[...new Set(e)])}),oq=r(i,h,d,c,a);async function sq(e,r){let{eventIds:t}=l(r,If);return unwrap(_(()=>e.data.get("/v2/live-volume",{params:D({eventId:t})})).andThen(y(FetchEventLiveVolumeResponseSchema)))}function bf(e){return S(e,x({cursor:"after_cursor",excludeTagIds:"exclude_tag_id",gameIds:"game_id",ids:"id",pageSize:"limit",seriesIds:"series_id",tagIds:"tag_id"}))}function vf(e){return S({includeBestLines:e.includeBestLines,includeChat:e.includeChat,includeTemplate:e.includeTemplate,locale:e.locale},x())}function qf(e){return S({includeBestLines:e.includeBestLines,includeChat:e.includeChat,includeTemplate:e.includeTemplate,locale:e.locale},x())}var Uf=z$1.object({cursor:PaginationCursorSchema.optional(),pageSize:O.max(1e3).default(100),window:LeaderboardWindowSchema.optional()}),Tq=r(i,h,d,c,a);function xq(e,r={}){let{cursor:t,pageSize:n,window:o}=l(r,Uf);return I(s=>_(()=>e.data.get("/v2/builders/leaderboard",{params:D({timePeriod:o,limit:n,cursor:s})})).andThen(y(ListBuilderLeaderboardResponseSchema)),t)}var Df=z$1.object({interval:BuilderVolumeIntervalSchema.optional(),bucketLimit:z$1.number().int().positive().max(90).optional()}),Cq=r(i,h,d,c,a);async function Iq(e,r={}){let{interval:t,bucketLimit:n}=l(r,Df);return unwrap(_(()=>e.data.get("/v2/builders/volume",{params:D({interval:t,limit:n})})).andThen(y(FetchBuilderVolumeResponseSchema)))}var qn=z$1.string().min(1),_f=z$1.object({category:qn.optional(),cursor:PaginationCursorSchema.optional(),pageSize:O.max(1e3).default(100),sortBy:TraderLeaderboardSortSchema.optional(),window:LeaderboardWindowSchema.optional()}),bq=r(i,h,d,c,a);function vq(e,r={}){let{category:t,cursor:n,pageSize:o,sortBy:s,window:a}=l(r,_f);return I(m=>_(()=>e.data.get("/v2/leaderboard",{params:D({category:t,cursor:m,limit:o,sortBy:s,timePeriod:a})})).andThen(y(ListTraderLeaderboardResponseSchema)),n)}var zf=z$1.object({category:qn.optional(),user:EvmAddressSchema,window:LeaderboardWindowSchema.optional()}),qq=r(i,h,d,c,a);async function Aq(e,r){let{category:t,user:n,window:o}=l(r,zf);return unwrap(_(()=>e.data.get("/v2/leaderboard",{params:D({category:t,timePeriod:o,user:n})})).andThen(y(FetchTraderLeaderboardStandingResponseSchema)))}var jf=z$1.object({category:qn.optional(),cursor:PaginationCursorSchema.optional(),pageSize:O.max(1e3).default(100),window:LeaderboardWindowSchema.optional()}),kq=r(i,h,d,c,a);function Oq(e,r={}){let{category:t,cursor:n,pageSize:o,window:s}=l(r,jf);return I(a=>_(()=>e.data.get("/v2/biggest-winners",{params:D({category:t,cursor:a,limit:o,timePeriod:s})})).andThen(y(ListBiggestWinnersResponseSchema)),n)}var Nf=z$1.object({marketId:z$1.union([z$1.string(),z$1.array(z$1.string())]).optional(),eventId:z$1.union([z$1.string(),z$1.array(z$1.string())]).optional(),questionId:z$1.union([z$1.string(),z$1.array(z$1.string())]).optional(),state:z$1.union([z$1.enum(MarketClarificationState),z$1.array(z$1.enum(MarketClarificationState))]).optional(),showInFrontend:z$1.boolean().optional(),txHash:z$1.string().optional(),order:z$1.string().optional(),ascending:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),pageSize:O.max(100).default(20)}),Gq=r(i,h,d,c,a);function $q(e,r={}){let{cursor:t,pageSize:n,...o}=l(r,Nf);return I(s=>{let a=pe(s,n);return e.gamma.get("/market-clarifications",{params:S({...o,limit:a.pageSize,offset:a.offset},x())}).andThen(y(ListMarketClarificationsResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?X({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var ey=z$1.object({ascending:z$1.boolean().optional(),closed:z$1.boolean().optional(),clobTokenIds:z$1.array(z$1.string()).optional(),cursor:PaginationCursorSchema.optional(),pageSize:O.optional(),conditionIds:z$1.array(ConditionIdSchema).optional(),cyom:z$1.boolean().optional(),decimalized:z$1.boolean().optional(),endDateMax:IsoDateTimeStringSchema.optional(),endDateMin:IsoDateTimeStringSchema.optional(),gameId:z$1.string().optional(),ids:z$1.array(z$1.number().int()).optional(),includeTag:z$1.boolean().optional(),liquidityNumMax:z$1.number().optional(),liquidityNumMin:z$1.number().optional(),locale:z$1.string().optional(),order:z$1.string().optional(),positionIds:z$1.array(PositionIdSchema).optional(),questionIds:z$1.array(z$1.string()).optional(),relatedTags:z$1.boolean().optional(),rfqEnabled:z$1.boolean().optional(),rewardsMinSize:z$1.number().optional(),slug:z$1.array(z$1.string()).optional(),sportsMarketTypes:z$1.array(z$1.string()).optional(),startDateMax:IsoDateTimeStringSchema.optional(),startDateMin:IsoDateTimeStringSchema.optional(),tagId:z$1.number().int().optional(),tagMatch:z$1.enum(["any","all"]).optional(),umaResolutionStatus:z$1.string().optional(),volumeNumMax:z$1.number().optional(),volumeNumMin:z$1.number().optional()}),ry=z$1.object({id:z$1.string(),includeTag:z$1.boolean().optional(),locale:z$1.string().optional()}),ty=z$1.object({slug:z$1.string(),includeTag:z$1.boolean().optional(),locale:z$1.string().optional()}),ny=z$1.object({url:z$1.string(),includeTag:z$1.boolean().optional(),locale:z$1.string().optional()}),oy=z$1.union([ry,ty,ny]),sy=z$1.object({id:z$1.string()}),pA=r(i,h,d,c,a);function za(e,r={}){let t=l(r,ey);return I(n=>e.gamma.get("/markets/keyset",{params:yy({...t,cursor:n??t.cursor})}).andThen(y(ListMarketsKeysetResponseSchema)).map(o=>({items:o.items,hasMore:o.nextCursor!==void 0,nextCursor:o.nextCursor})),t.cursor)}var ay=z$1.object({cursor:PaginationCursorSchema.optional(),pageSize:O.max(100).optional(),exclude:z$1.array(ConditionIdSchema).optional()}),dA=r(i,h,d,c,a);function cA(e,r={}){let t=l(r,ay);return I(n=>e.rfq.get("/v1/rfq/combo-markets",{params:Py({...t,cursor:n??t.cursor})}).andThen(y(ListComboMarketsResponseSchema)).map(o=>({items:o.markets,hasMore:o.nextCursor!==void 0,nextCursor:o.nextCursor})),t.cursor)}var uA=r(i,h,d,c,a);async function lA(e,r){let t=l(r,oy);return "id"in t?gy(e,t):"url"in t?Ma(e,{includeTag:t.includeTag,locale:t.locale,slug:lt(t.url,"market")}):Ma(e,t)}var mA=r(i,h,d,c,a);async function fA(e,r){let t=l(r,sy);return unwrap(e.gamma.get(`markets/${t.id}/tags`).andThen(y(FetchMarketTagsResponseSchema)))}var iy=z$1.object({conditionIds:fe(CanonicalMarketConditionIdSchema,20),cursor:PaginationCursorSchema.optional(),includePnl:z$1.boolean().optional(),minBalance:z$1.number().nonnegative().optional(),pageSize:O.max(1e3).default(100)}).superRefine(({conditionIds:e,includePnl:r,pageSize:t},n)=>{r&&(e.length!==1&&n.addIssue({code:"custom",message:"includePnl requires exactly one conditionId",path:["conditionIds"]}),t>100&&n.addIssue({code:"custom",message:"includePnl supports pageSize at most 100",path:["pageSize"]}));}),yA=r(i,h,d,c,a);function PA(e,r){let{conditionIds:t,cursor:n,includePnl:o,minBalance:s,pageSize:a}=l(r,iy);return I(m=>_(()=>e.data.get("/v2/holders",{params:D({condition:t,limit:a,cursor:m,includePnl:o,minBalance:s})})).andThen(y(ListMarketHoldersResponseSchema)),n)}var py=360*60*60,dy=253402300799,kn=Ye.pipe(z$1.number().int().positive().max(dy)),ja=z$1.string().min(1).pipe(ClobAssetIdSchema),Wa={assetId:ja,bucketSeconds:z$1.number().int().min(60).max(86400).optional(),cursor:PaginationCursorSchema.optional(),pageSize:O.max(1e4).default(1e4)},cy=z$1.object({...Wa,interval:PriceHistoryIntervalSchema,start:z$1.never().optional(),end:z$1.never().optional(),asOf:z$1.never().optional()}).superRefine(({bucketSeconds:e,interval:r},t)=>{let n=r===PriceHistoryInterval.Max||r===PriceHistoryInterval.OneMonth?600:r===PriceHistoryInterval.OneWeek?300:60;e!==void 0&&e<n&&t.addIssue({code:"custom",message:`bucketSeconds must be at least ${n} for this interval`,path:["bucketSeconds"]});}),uy=z$1.object({...Wa,start:kn,end:kn.optional(),interval:z$1.never().optional(),asOf:z$1.never().optional()}).superRefine(({end:e,start:r},t)=>{if(e!==void 0&&e<r){t.addIssue({code:"custom",message:"end must not precede start",path:["end"]});return}(e??Math.floor(Date.now()/1e3))-r>py&&t.addIssue({code:"custom",message:"start to end must span at most 15 days",path:["end"]});}),ly=z$1.object({assetId:ja,asOf:kn,interval:z$1.never().optional(),start:z$1.never().optional(),end:z$1.never().optional(),bucketSeconds:z$1.never().optional(),cursor:z$1.never().optional(),pageSize:z$1.never().optional()}),my=z$1.union([cy,uy,ly]),gA=r(i,h,d,c,a);function RA(e,r){let{assetId:t,cursor:n,pageSize:o,...s}=l(r,my);return I(a=>_(()=>e.data.get("/v2/prices-history",{params:D({...s,tokenId:t,limit:o,cursor:a})})).andThen(y(ListPriceHistoryResponseSchema)),n)}var fy=z$1.object({conditionIds:fe(CanonicalMarketConditionIdSchema,20).optional()}),EA=r(i,h,d,c,a);async function SA(e,r={}){let{conditionIds:t}=l(r,fy);return unwrap(_(()=>e.data.get("/v2/oi",{params:D({condition:t})})).andThen(y(FetchOpenInterestResponseSchema)))}function yy(e){return S(e,x({cursor:"after_cursor",ids:"id",pageSize:"limit"}))}function Py(e){return S({cursor:e.cursor,exclude:e.exclude?.join(","),pageSize:e.pageSize},{cursor:"cursor",exclude:"exclude",pageSize:"limit"})}async function Ma(e,r){return unwrap(e.gamma.get(`markets/slug/${r.slug}`,{params:S({includeTag:r.includeTag,locale:r.locale},x())}).andThen(y(MarketSchema)))}async function gy(e,r){return unwrap(e.gamma.get(`markets/${r.id}`,{params:S({includeTag:r.includeTag,locale:r.locale},x())}).andThen(y(MarketSchema)))}function Lr(e){if(!(e instanceof h))return e;let r=Ry(e);return r===void 0?e:new h(e.message,{cause:e,...e.code!==void 0?{code:e.code}:{},restriction:r,...e.retryAfter!==void 0?{retryAfter:e.retryAfter}:{},status:e.status})}function Ry(e){if(e.status===425)return "restarting";if(e.status===503&&e.code==="post_only_mode")return "post_only"}var hy=z$1.object({orderId:z$1.string()}),Ty=z$1.object({orderIds:z$1.array(z$1.string()).min(1).max(3e3)}),xy=z$1.object({market:z$1.string().optional()}),Cy=Ae(xy.shape).refine(e=>e.market!==void 0||e.assetId!==void 0||e.tokenId!==void 0,{message:"At least one of market or assetId is required.",path:["market"]}),LA=r(h,i,q,d,c,a);async function BA(e,r){let t=l(r,hy);return gt(e,"/order",{orderID:t.orderId})}var FA=r(h,i,q,d,c,a);async function MA(e,r){let t=l(r,Ty);return gt(e,"/orders",t.orderIds)}var UA=r(h,i,q,d,c);async function DA(e){return gt(e,"/cancel-all")}var _A=r(h,i,q,d,c,a);async function zA(e,r){let t=l(r,Cy);return gt(e,"/cancel-market-orders",{asset_id:t.assetId??t.tokenId,market:t.market})}async function gt(e,r,t){return unwrap(e.secureClob.del(r,{json:t,rateLimitBucket:"cancel"}).mapErr(Lr).andThen(y(CancelOrdersResponseSchema)))}var Ue=z$1.object({assetId:ClobAssetIdSchema,tokenId:z$1.never().optional()}),De=z$1.object({assetId:z$1.never().optional(),tokenId:ClobAssetIdSchema});var $a=z$1.object({orderType:z$1.union([z$1.literal(OrderType.FAK),z$1.literal(OrderType.FOK)]).default(OrderType.FOK)}),Na=$a.extend({side:z$1.literal(OrderSide.BUY),amount:PositiveDecimalNumberSchema}),Ka=$a.extend({side:z$1.literal(OrderSide.SELL),shares:PositiveDecimalNumberSchema}),by=z$1.union([Na.extend(Ue.shape),Na.extend(De.shape),Ka.extend(Ue.shape),Ka.extend(De.shape)]).transform(({assetId:e,tokenId:r,...t})=>({...t,assetId:e??r})),JA=r(n,i,h,d,c,a);async function XA(e,r){let t=l(r,by),n=t.side===OrderSide.BUY?t.amount:t.shares;return vy(e,{amount:n,assetId:t.assetId,orderType:t.orderType,side:t.side})}async function vy(e,r){let t=await ct(e,{assetId:r.assetId});return On({amount:r.amount,orderBook:t,orderType:r.orderType,side:r.side})}function On(e){let{orderBook:r}=e,t=e.side===OrderSide.BUY?Ay(r.asks,e.amount,e.orderType):ky(r.bids,e.amount,e.orderType);return invariant(qy(t,r.tickSize),`Resolved market price fell outside the valid range for tick size ${r.tickSize}.`),t}function qy(e,r){return e>=r&&e<=1-r}function Ay(e,r,t){if(e.length===0)throw new n("No resting liquidity.");let n$1=0;for(let s=e.length-1;s>=0;s-=1){let a=e[s];if(a!==void 0&&(n$1+=Number.parseFloat(a.size)*Number.parseFloat(a.price),n$1>=r))return Number.parseFloat(a.price)}if(t===OrderType.FOK)throw new n("Insufficient liquidity for full fill.");let o=e[0];return Number.parseFloat(o.price)}function ky(e,r,t){if(e.length===0)throw new n("No resting liquidity.");let n$1=0;for(let s=e.length-1;s>=0;s-=1){let a=e[s];if(a!==void 0&&(n$1+=Number.parseFloat(a.size),n$1>=r))return Number.parseFloat(a.price)}if(t===OrderType.FOK)throw new n("Insufficient liquidity for full fill.");let o=e[0];return Number.parseFloat(o.price)}var By=BigInt(Number.MAX_SAFE_INTEGER),Fy=z$1.string().refine(Uy,{message:"Order salt must be a non-negative JavaScript-safe integer."}),Za=z$1.looseObject({salt:Fy}),My=z$1.array(Za).min(1).max(15),dk=r(i,h,q,d,c,a),ck=r(i,h,q,d,c,a);function St(e){return async function(t){l(t,Za);let n=Qa(e,t);return unwrap(e.secureClob.post("/order",{json:n,rateLimitBucket:"order"}).mapErr(Lr).andThen(y(OrderResponseSchema)))}}function uk(e){return async function(t){l(t,My);let n=t.map(o=>Qa(e,o));return unwrap(e.secureClob.post("/orders",{json:n,rateLimitBucket:"order"}).mapErr(Lr).andThen(y(OrderResponsesSchema)))}}function Qa(e,r){return invariant(r.postOnly!==true||r.orderType===OrderType.GTC||r.orderType===OrderType.GTD,"Post-only orders are only supported for GTC and GTD order types."),{deferExec:false,order:{builder:r.builder,expiration:`${r.expiration}`,maker:r.maker,makerAmount:r.makerAmount,metadata:r.metadata,salt:Number(BigInt(r.salt)),side:r.side,signature:r.signature,signatureType:r.signatureType,signer:r.signer,takerAmount:r.takerAmount,timestamp:r.timestamp,tokenId:r.tokenId},orderType:r.orderType,owner:e.credentials.key,...r.postOnly===true?{postOnly:true}:{}}}function Uy(e){try{let r=BigInt(e);return r>=0n&&r<=By}catch{return false}}var ri=32,jy=1n,Wy=2n,ti=3n,ei=50,Hy=(1n<<256n)-1n,Ny=(1n<<64n)-1n<<40n;function Ln(e){let r=AbiParameters.encode([{name:"legs",type:"uint256[]"}],[e]),t=Hash.keccak256(AbiParameters.encode([{name:"moduleId",type:"uint256"},{name:"data",type:"bytes"}],[ti,r])),n=toComboConditionId(`0x03${t.slice(34)}0000000000000000000000000000`);return {conditionId:n,positionIds:[toPositionId(BigInt(`${n}00`).toString()),toPositionId(BigInt(`${n}01`).toString())]}}function Bn(e){if(e.length===0||e.length>ei)throw new a(`Combo legs must include 1 to ${ei} position IDs`);let r=e.map(t=>{let n=Fn(t),o=n.toString(16).padStart(ri*2,"0"),s=Number.parseInt(o.slice(0,2),16),a$1=Number.parseInt(o.slice(-2),16);if(s!==1&&s!==2||a$1>1)throw new a("Combo legs must be binary or neg-risk YES/NO position IDs");return {value:n,conditionId:o.slice(0,-2)}});r.sort((t,n)=>t.value<n.value?-1:t.value>n.value?1:0);for(let t=1;t<r.length;t+=1){let n=r[t-1],o=r[t];if(n===void 0||o===void 0)throw new a("Invalid combo leg set");if(n.value===o.value)throw new a("Combo legs must not contain duplicate position IDs");if(n.conditionId===o.conditionId)throw new a("Combo legs must not contain both outcomes for the same condition")}return r.map(t=>t.value)}function _e(e){try{return (Fn(e)&Ny)===0n}catch{return false}}function ni(e){let t=Fn(e).toString(16).padStart(ri*2,"0"),n=BigInt(`0x${t.slice(0,2)}`),o=Number.parseInt(t.slice(-2),16);if(n!==jy&&n!==Wy&&n!==ti)throw new a("Position ID must use a supported protocol v2 module");if(o!==0&&o!==1)throw new a("Protocol v2 position ID must be a YES/NO position ID");return {conditionId:toConditionId(`0x${t.slice(0,-2)}`),outcomeIndex:o}}function Fn(e){let r=e.trim(),t;if(r.length===0)throw new a("Position ID must be a uint256 value");try{t=BigInt(r);}catch{throw new a("Position ID must be a uint256 value")}if(t<0n||t>Hy)throw new a("Position ID must be a uint256 value");return t}var Oe=1000000n,Ky=8*Number.EPSILON,Mn=6,Gy=8*Number.EPSILON;function Un(e){let r=e*Number(Oe),t=Math.round(r),n=Gy*Math.max(1,Math.abs(r)),o=Math.abs(r-t)<=n?t:Math.trunc(r);return BigInt(o)}function Fr(e){let r=Math.round(e*Number(Oe)),t=r/Number(Oe);if(!Number.isSafeInteger(r)||Math.abs(e-t)>Ky)throw new a("has unsupported precision.");return BigInt(r)}function Dn(e){return Number(e)/Number(Oe)}function Tt(e){return invariant(Number.isInteger(e)&&e>=0&&e<=Mn,`Decimal places must be an integer between 0 and ${Mn}.`),10n**BigInt(Mn-e)}function xt(e,r,t,n){invariant(e>=0n,"Value must be non-negative."),invariant(r>=0n,"Multiplier must be non-negative."),invariant(t>0n,"Denominator must be positive.");let o=e*r,s=o/t;return n==="up"&&o%t!==0n?s+1n:s}function _n(e,r,t){let n=Tt(r);return xt(e,1n,n,t)*n}function zn(e){switch(e){case .1:return {amount:3,size:2};case .01:return {amount:4,size:2};case .005:return {amount:5,size:2};case .0025:return {amount:6,size:2};case .001:return {amount:5,size:2};case 1e-4:return {amount:6,size:2}}invariant(false,`Unsupported tick size: ${e}`);}function Ct(e,r){let t=Fr(e),n=Fr(r);if(t<n||t>Oe-n)throw new a(`must be between ${r} and ${1-r} for tick size ${r}.`);if(t%n!==0n)throw new a(`${e} must be a multiple of tick size ${r}.`);return t}function Vy(e,r){return r?e.environment.contracts.negRiskExchange:e.environment.contracts.standardExchange}function ze(e,r,t){return _e(r)?e.environment.contracts.exchangeV3:Vy(e,t)}function jn(e,r,t,n){let o=Tt(t);return xt(e,r,Oe*o,n)*o}function Yy(e,r,t,n){let o=Tt(t);return xt(e,Oe,r*o,n)*o}function si(e){let r=zn(e.tickSize),t=_n(Un(e.size),r.size,"down");return e.side===OrderSide.BUY?{offeredAmount:jn(t,e.price,r.amount,"down"),requestedAmount:t}:{offeredAmount:t,requestedAmount:jn(t,e.price,r.amount,"down")}}function ai(e){let r=zn(e.tickSize),t=_n(Un(e.amount),r.size,"down"),n=e.protectPrice?"up":"down";return e.side===OrderSide.BUY?{offeredAmount:t,requestedAmount:Yy(t,e.price,r.amount,n)}:{offeredAmount:t,requestedAmount:jn(t,e.price,r.amount,n)}}var Wn=600*1e3,Hn=Number.POSITIVE_INFINITY,Nn=class{#r;#e=new Map;#o=new Map;#s=new Map;constructor(r){this.#r=r;}async resolveMarket(r){let t=await this.#t(r);return {feeInfo:t.feeInfo,negRisk:t.negRisk,tickSize:t.tickSize}}async resolveBuilderTakerFeeRate(r){return r===void 0?0:It(this.#e,r,Wn,()=>this.#r.fetchBuilderTakerFeeRate(r))}async fetchCurrentMarket(r){let t=await It(this.#o,r,Hn,()=>this.#r.resolveCondition(r)),n=await this.#i(t);return this.#n(r,t,n),this.#s.set(t,ii(n,Wn)),{feeInfo:n.feeInfo,negRisk:n.negRisk,tickSize:n.tickSize}}async#t(r){let t=await It(this.#o,r,Hn,()=>this.#r.resolveCondition(r)),n=await It(this.#s,t,Wn,()=>this.#i(t));return this.#n(r,t,n),n}#n(r,t,n){if(!n.assetIds.has(r))throw this.#o.delete(r),this.#s.delete(t),new c(`Market ${t} does not include asset ${r}.`)}async#i(r){let t=await this.#r.fetchMarket(r),n=new Set(t.tokens.map(({assetId:o})=>o));for(let o of n)this.#o.set(o,ii(r));return {feeInfo:t.feeInfo,negRisk:t.negRisk,tickSize:t.tickSize,assetIds:n}}};function It(e,r,t,n){let o=e.get(r);if(o!==void 0&&(o.expiresAt===void 0||o.expiresAt>Date.now()))return o.promise;let s={promise:n()};return s.promise.then(()=>{s.expiresAt=Date.now()+t;},()=>{e.get(r)===s&&e.delete(r);}),e.set(r,s),s.promise}function ii(e,r=Hn){return {expiresAt:Date.now()+r,promise:Promise.resolve(e)}}var pi=new WeakMap;function nr(e,r){return Kn(e).resolveMarket(r)}function Mr(e,r){return Kn(e).fetchCurrentMarket(r)}function di(e,r){return Kn(e).resolveBuilderTakerFeeRate(r)}function Kn(e){let r=pi.get(e);if(r!==void 0)return r;let t=new Nn({fetchBuilderTakerFeeRate:async n=>(await xa(e,{builderCode:n})).taker,fetchMarket:n=>Ta(e,{conditionId:n}),resolveCondition:n=>ha(e,{assetId:n})});return pi.set(e,t),t}var Jy=180,li=z$1.strictObject({price:PositiveDecimalNumberSchema,size:PositiveDecimalNumberSchema,side:OrderSideSchema,builderCode:BuilderCodeSchema.optional(),postOnly:z$1.boolean().default(false),expiration:z$1.number().int().nonnegative().optional()}),fi=z$1.union([li.extend(Ue.shape),li.extend(De.shape)]).superRefine((e,r)=>{if(e.expiration!==void 0){let t=Math.floor(Date.now()/1e3)+Jy;e.expiration<t&&r.addIssue({code:"custom",message:"Expiration must be at least 3 minutes in the future.",path:["expiration"]});}}).transform(({assetId:e,tokenId:r,...t})=>({...t,assetId:e??r}));async function yi(e,r){let t=await Xy(e,{assetId:r.assetId,price:r.price}),n=si({price:t.price,side:r.side,size:r.size,tickSize:t.tickSize});return {assetId:r.assetId,builderCode:r.builderCode,chainId:e.environment.chainId,exchangeAddress:t.exchangeAddress,expiration:r.expiration??0,funderAddress:t.funderAddress,offeredAmount:n.offeredAmount,orderType:r.expiration===void 0?OrderType.GTC:OrderType.GTD,side:r.side,signer:t.signerAddress,requestedAmount:n.requestedAmount}}async function Xy(e,r){let t=await nr(e,r.assetId);try{return mi(e,r,t)}catch(n){if(!(n instanceof a))throw n;let o=await Mr(e,r.assetId);return mi(e,r,o)}}function mi(e,r,t){let n=eP(r.price,t.tickSize);return {exchangeAddress:ze(e,r.assetId,t.negRisk),funderAddress:e.account.wallet,price:n,signerAddress:e.account.signer,tickSize:t.tickSize}}function eP(e,r){try{return Ct(e,r)}catch(t){throw t instanceof a?new a(`Price ${t.message}`,{cause:t}):t}}var Ti=z$1.object({builderCode:BuilderCodeSchema.optional(),orderType:z$1.union([z$1.literal(OrderType.FAK),z$1.literal(OrderType.FOK)]).default(OrderType.FAK)}),gi=Ti.extend({side:z$1.literal(OrderSide.BUY),amount:PositiveDecimalNumberSchema,maxSpend:PositiveDecimalNumberSchema.optional(),maxPrice:PositiveDecimalNumberSchema.optional()}),Ri=Ti.extend({side:z$1.literal(OrderSide.SELL),shares:PositiveDecimalNumberSchema,minPrice:PositiveDecimalNumberSchema.optional()}),xi=z$1.union([gi.extend(Ue.shape),gi.extend(De.shape),Ri.extend(Ue.shape),Ri.extend(De.shape)]).transform(({assetId:e,tokenId:r,...t})=>({...t,assetId:e??r}));async function Ci(e,r){let t=await tP(e,r,r.assetId),n=ai({amount:t.resolvedAmount,price:t.price,protectPrice:bi(r),side:r.side,tickSize:t.tickSize});return {assetId:r.assetId,builderCode:r.builderCode,chainId:e.environment.chainId,exchangeAddress:t.exchangeAddress,expiration:0,funderAddress:t.funderAddress,offeredAmount:n.offeredAmount,orderType:r.orderType,side:r.side,signer:t.signerAddress,requestedAmount:n.requestedAmount}}async function tP(e,r,t){return bi(r)?nP(e,r,t):oP(e,r,t)}async function nP(e,r,t){let n=r.side===OrderSide.BUY?r.amount:r.shares;if(r.side===OrderSide.BUY&&r.maxSpend!==void 0){let{builderTakerFeeRate:s,market:a$1}=await vi(e,t,r.builderCode);try{return Ei(e,r,t,n,s,r.maxSpend,a$1)}catch(m){if(!(m instanceof a))throw m;let P=await Mr(e,t);return Ei(e,r,t,n,s,r.maxSpend,P)}}let o=await nr(e,t);try{return Si(e,r,t,n,o)}catch(s){if(!(s instanceof a))throw s;let a$1=await Mr(e,t);return Si(e,r,t,n,a$1)}}function Ei(e,r,t,n,o,s,a){let m=Ii(r,a.tickSize),P=Dn(m);return {exchangeAddress:ze(e,t,a.negRisk),funderAddress:e.account.wallet,price:m,resolvedAmount:qi({amount:n,builderTakerFeeRate:o,maxSpend:s,platformFeeExponent:a.feeInfo.exponent,platformFeeRate:a.feeInfo.rate,price:P}),signerAddress:e.account.signer,tickSize:a.tickSize}}function Si(e,r,t,n,o){let s=Ii(r,o.tickSize);return {exchangeAddress:ze(e,t,o.negRisk),funderAddress:e.account.wallet,price:s,resolvedAmount:n,signerAddress:e.account.signer,tickSize:o.tickSize}}async function oP(e,r,t){let n=r.side===OrderSide.BUY?r.amount:r.shares,o=r.side===OrderSide.BUY&&r.maxSpend!==void 0?vi(e,t,r.builderCode):void 0,[s,a]=await Promise.all([ct(e,{assetId:t}),o]);if(s.assetId!==t)throw new c(`Order book returned asset ${s.assetId} for requested asset ${t}.`);let m=Fr(On({amount:n,orderBook:s,orderType:r.orderType,side:r.side}));return {exchangeAddress:ze(e,t,s.negRisk),funderAddress:e.account.wallet,price:m,resolvedAmount:sP(r,n,Dn(m),a),signerAddress:e.account.signer,tickSize:s.tickSize}}function sP(e,r,t,n){return e.side!==OrderSide.BUY||e.maxSpend===void 0||n===void 0?r:qi({amount:r,builderTakerFeeRate:n.builderTakerFeeRate,maxSpend:e.maxSpend,platformFeeExponent:n.market.feeInfo.exponent,platformFeeRate:n.market.feeInfo.rate,price:t})}function Ii(e,r){return e.side===OrderSide.BUY?(invariant(e.maxPrice!==void 0,"Protected BUY market order requires maxPrice."),hi("maxPrice",e.maxPrice,r)):(invariant(e.minPrice!==void 0,"Protected SELL market order requires minPrice."),hi("minPrice",e.minPrice,r))}function hi(e,r,t){try{return Ct(r,t)}catch(n){throw n instanceof a?new a(`${e} ${n.message}`,{cause:n}):n}}function bi(e){return e.side===OrderSide.BUY&&e.maxPrice!==void 0||e.side===OrderSide.SELL&&e.minPrice!==void 0}async function vi(e,r,t){let[n,o]=await Promise.all([nr(e,r),di(e,t)]);return {builderTakerFeeRate:o,market:n}}function qi(e){let r=e.platformFeeRate*(e.price*(1-e.price))**e.platformFeeExponent,t=e.amount/e.price*r,n=e.amount+t+e.amount*e.builderTakerFeeRate;return e.maxSpend<=n?e.maxSpend/(1+r/e.price+e.builderTakerFeeRate):e.amount}var Oi="Polymarket CTF Exchange",iP="DepositWallet",pP="1",$n="0x0000000000000000000000000000000000000000000000000000000000000000",Vn="Order(uint256 salt,address maker,address signer,uint256 tokenId,uint256 makerAmount,uint256 takerAmount,uint8 side,uint8 signatureType,uint256 timestamp,bytes32 metadata,bytes32 builder)",dP=Hash.keccak256(Bytes.fromString(Vn),{as:"Hex"}),cP=Hash.keccak256(Bytes.fromString("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"),{as:"Hex"}),uP=Hash.keccak256(Bytes.fromString(Oi),{as:"Hex"}),wi=[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Li=[{name:"salt",type:"uint256"},{name:"maker",type:"address"},{name:"signer",type:"address"},{name:"tokenId",type:"uint256"},{name:"makerAmount",type:"uint256"},{name:"takerAmount",type:"uint256"},{name:"side",type:"uint8"},{name:"signatureType",type:"uint8"},{name:"timestamp",type:"uint256"},{name:"metadata",type:"bytes32"},{name:"builder",type:"bytes32"}],lP=[{name:"contents",type:"Order"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"}];function vt(e){let r=mP(e.domain,e.order);return e.order.signatureType!==SignatureType.POLY_1271?r:{domain:Mi(e.domain),message:{chainId:e.domain.chainId,contents:r.message,name:iP,salt:$n,verifyingContract:e.order.signer,version:pP},primaryType:"TypedDataSign",types:{EIP712Domain:wi,Order:Li,TypedDataSign:lP}}}function qt(e){if(e.order.signatureType!==SignatureType.POLY_1271)return e.signature;let r=Bytes.toHex(Bytes.fromString(Vn)),t=Vn.length.toString(16).padStart(4,"0");return expectErc1271Signature(`0x${e.signature.slice(2)}${fP(e.domain).slice(2)}${yP(e.order).slice(2)}${r.slice(2)}${t}`)}function Bi(e){return {chainId:e.chainId,exchange:e.exchange,protocolVersion:"3"}}function nO(e,r,t){return e===OrderSide.SELL?t.toString():((r*t+999999n)/1000000n).toString()}function oO(e,r,t){return e===OrderSide.SELL?(r*t/1000000n).toString():t.toString()}function Fi(e){return {builder:e.builder??$n,maker:e.maker,makerAmount:BigInt(e.makerAmount),metadata:e.metadata??$n,salt:BigInt(e.salt),side:Qn(e.side),signatureType:e.signatureType,signer:e.signer,takerAmount:BigInt(e.takerAmount),timestamp:BigInt(e.timestamp),tokenId:BigInt(e.tokenId)}}function mP(e,r){return {domain:Mi(e),message:Fi(r),primaryType:"Order",types:{EIP712Domain:wi,Order:Li}}}function Mi(e){return {chainId:e.chainId,name:Oi,verifyingContract:e.exchange,version:e.protocolVersion}}function fP(e){return expectHexString(Hash.keccak256(AbiParameters.encode([{type:"bytes32"},{type:"bytes32"},{type:"bytes32"},{type:"uint256"},{type:"address"}],[cP,uP,PP(e.protocolVersion),BigInt(e.chainId),e.exchange]),{as:"Hex"}))}function yP(e){let r=Fi(e);return expectHexString(Hash.keccak256(AbiParameters.encode([{type:"bytes32"},{type:"uint256"},{type:"address"},{type:"address"},{type:"uint256"},{type:"uint256"},{type:"uint256"},{type:"uint8"},{type:"uint8"},{type:"uint256"},{type:"bytes32"},{type:"bytes32"}],[dP,r.salt,r.maker,r.signer,r.tokenId,r.makerAmount,r.takerAmount,r.side,r.signatureType,r.timestamp,r.metadata,r.builder]),{as:"Hex"}))}function PP(e){return expectHexString(Hash.keccak256(Bytes.fromString(e),{as:"Hex"}))}function Qn(e){return e===0||e===1?e:e===OrderSide.BUY?0:1}var Ui="0x0000000000000000000000000000000000000000000000000000000000000000";function Jn(e,r){let t=vr(r);return {builder:e.builderCode??Ui,chainId:e.chainId,exchangeAddress:e.exchangeAddress,expiration:e.expiration,maker:t.maker,makerAmount:e.offeredAmount.toString(),metadata:Ui,orderType:e.orderType,protocolVersion:_e(e.assetId)?"3":"2",salt:gP().toString(),side:e.side,signatureType:t.signatureType,signer:t.signer,takerAmount:e.requestedAmount.toString(),timestamp:Date.now().toString(),tokenId:e.assetId}}function Xn(e,r){let{chainId:t,exchangeAddress:n,protocolVersion:o,...s}=e;return {...s,signature:r}}function gP(){let e=new Uint8Array(8);return globalThis.crypto.getRandomValues(e),BigInt(`0x${Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}`)&(1n<<53n)-1n}function eo(e){return vt({domain:Di(e),order:e})}function ro(e,r){return qt({domain:Di(e),order:e,signature:r})}function Di(e){return {chainId:e.chainId,exchange:e.exchangeAddress,protocolVersion:e.protocolVersion}}function to(e){return {kind:"signOrder",payload:e}}var RP=r(n,i,h,q,d,c,a);async function no(e,r){let t=l(r,xi);return async function*(){let n=await Ci(e,t),o=Jn(n,e.account),s=expectEvmSignature(yield to(eo(o)));return Xn(o,ur(e.account,ro(o,s)))}.call(null)}var EP=r(i,h,q,d,c,a);async function oo(e,r){let t=l(r,fi);return async function*(){let n=await yi(e,t),o=Jn(n,e.account),s=expectEvmSignature(yield to(eo(o))),a=Xn(o,ur(e.account,ro(o,s)));return t.postOnly===true?{...a,postOnly:true}:a}.call(null)}var TO=RP;async function xO(e,r){return zi(e,no(e,r))}var CO=EP;async function IO(e,r){return zi(e,oo(e,r))}async function zi(e,r){let t=await r;return async function*(){let n=yield*t;return St(e)(n)}.call(null)}var TP=250,xP=3e4,CP={timeoutMs:z$1.number().int().positive().optional()},IP=z$1.object(CP).default({}),LO=r(i,h,q,j,l$1,d,c,a);function bP(e){return e.status===TradeStatus.Confirmed||e.status===TradeStatus.Failed}function ji(e){return e.status===TradeStatus.Failed}async function BO(e,r,t){let{timeoutMs:n=xP}=l(t,IP),o=[...new Set(r.tradeIds)];if(o.length===0)return [...r.transactionsHashes];let s=new Map,a=Date.now()+n;for(;s.size<o.length;){let P=o.filter(C=>!s.has(C)),h=await Promise.all(P.map(C=>Is(e,{id:C}).firstPage()));for(let C of h)for(let A of C.items)o.includes(A.id)&&bP(A)&&s.set(A.id,A);if(s.size===o.length)break;if(Date.now()>=a){let C=o.filter(A=>!s.has(A));throw new j(`Timed out waiting for trades to settle: ${C.join(", ")}`)}await delay(TP);}let m=[...s.values()];if(m.every(ji))throw new l$1(`Every fill of order ${r.orderId} failed execution: ${o.join(", ")}`);return [...new Set(m.filter(P=>!ji(P)).map(P=>P.transactionHash))].map(P=>TxHashSchema.parse(P))}function io(e,r){return e===OrderSide.BUY?AssetType.COLLATERAL:_e(r)?AssetType.CONDITIONAL_V2:AssetType.CONDITIONAL}async function Ni(e,r){let t=io(r.side,r.assetId),{allowances:n}=await nn(e,r.side===OrderSide.BUY?{assetType:t}:{assetType:t,assetId:r.assetId});return qP(n,r.spenderAddress)}function qP(e,r){return Object.entries(e).find(([n])=>isSameEvmAddress(n,r))?.[1]??0n}var XO=r(m,n,i,h,q,d,c,a);function AP(e,r){return no(e,r).then(z(e.signer))}var ew=r(m,n,i,h,q,j,l$1,d,c,a);function rw(e,r){return AP(e,r).then(t=>Gi(e,t))}var tw=r(m,i,h,q,d,c,a);function kP(e,r){return oo(e,r).then(z(e.signer))}var nw=r(m,i,h,q,j,l$1,d,c,a);function ow(e,r){return kP(e,r).then(t=>Gi(e,t))}async function Gi(e,r){let t=St(e);try{return await t(r)}catch(n){if(!wP(n))throw n;let o=await OP(e,r,t);if(o===void 0)throw n;return o}}async function OP(e,r,t){return await LP(e,r)?t(r):void 0}function wP(e){return e instanceof h&&e.status===400&&e.message.includes("allowance is not enough")}async function LP(e,r){let t=r.tokenId,n=await nr(e,t),o=ze(e,t,n.negRisk),s=BigInt(r.makerAmount);return await Ni(e,{assetId:t,spenderAddress:o,side:r.side})>=s?false:(await(r.side===OrderSide.BUY?await pa(e,{amount:"max",spenderAddress:o,tokenAddress:e.environment.contracts.collateralToken}):await da(e,{operatorAddress:o,tokenAddress:_e(t)?e.environment.contracts.positionManager:e.environment.contracts.conditionalTokens})).wait(),await vs(e,{assetType:io(r.side,t),tokenId:r.side===OrderSide.SELL?t:void 0}),true)}function Vi(e){let r=TypedData.getSignPayload(Dr(e));return expectEvmSignature(Signature.toHex(Secp256k1.sign({payload:r,privateKey:e.privateKey})))}function Dr(e){let r={chainId:e.chainId,name:"Polymarket",version:"1"};return {domain:r,message:{data:Hash.keccak256(encode(Yi(e.op)),{as:"Hex"}),salt:BigInt(e.salt),ts:BigInt(e.timestamp)},primaryType:"Op",types:{EIP712Domain:TypedData.extractEip712DomainTypes(r),Op:[{name:"data",type:"bytes32"},{name:"salt",type:"uint64"},{name:"ts",type:"uint64"}]}}}function Yi(e){return Array.isArray(e)?e.filter(r=>r!==void 0).map(Yi):e}function sr(){let[e]=crypto.getRandomValues(new Uint32Array(1));return invariant(e!==void 0,"Expected crypto.getRandomValues to return a salt."),e}var At=z$1.string().regex(/^\d+(?:\.\d{1,28})?$/,"Expected a non-negative fixed-point fee rate with at most 28 fractional digits."),Qi=z$1.object({builderAddress:EvmAddressSchema,feeRate:At});function po(e,r){let[t,n=""]=e.split("."),[o,s=""]=r.split("."),a=Math.max(n.length,s.length),m=BigInt(`${t}${n.padEnd(a,"0")}`),P=BigInt(`${o}${s.padEnd(a,"0")}`);return m<P?e:r}var HP=z$1.object({address:EvmAddressSchema}),NP=r(i,h,d,c,a);async function KP(e,r){let t=l(r,HP);return unwrap(e.perps.get("/v1/info/builder",{params:S(t,x())}).andThen(y(PerpsBuilderStatusSchema)))}var GP=z$1.strictObject({builder:EvmAddressSchema,maxFeeRate:At,approvalVersion:z$1.number().int().positive().max(Number.MAX_SAFE_INTEGER)}),uo=z$1.strictObject({builderAddress:EvmAddressSchema.optional(),maxFeeRate:At}),$P=r(i,h,q,d,c,a);async function Xi(e,r,t){let n=l(t,uo);if(n.builderAddress===void 0)throw new a("A builder address is required when the session has no builder attribution.");let o=VP(await r.fetchBuilderApprovals({builder:n.builderAddress}),n.builderAddress),a$1={...l({builder:n.builderAddress,maxFeeRate:n.maxFeeRate,approvalVersion:o},GP),chainId:e.environment.chainId,salt:sr(),timestamp:Date.now()},m;try{m=await e.signer.signTypedData(YP(a$1));}catch(P){throw q.fromError(P,"Could not sign builder consent")}return unwrap(e.perps.post("/v1/account/builder-approvals",{json:ZP(a$1,m)}).andThen(y(PerpsBuilderApprovalSchema)))}function VP(e,r){return (e.find(n=>n.builder.toLowerCase()===r.toLowerCase())?.approvalVersion??0)+1}function YP(e){return Dr({chainId:e.chainId,op:["approveBuilder",[e.builder,e.maxFeeRate,e.approvalVersion]],salt:e.salt,timestamp:e.timestamp})}function ZP(e,r){return {op:{type:"approveBuilder",args:{builder:e.builder,max_fee_rate:e.maxFeeRate,approval_version:e.approvalVersion}},salt:e.salt,sig:r,ts:e.timestamp}}function rp(e,r){let t=ep(e.get("Poly-RateLimit-Remaining"),/^-?\d+$/),n=ep(e.get("Poly-RateLimit-Reset"),/^\d+$/),o=QP(e.get("Poly-RateLimit-Tier")),s=e.get("Poly-RateLimit-Warning")?.trim().toLowerCase()==="true";if(!(t===void 0&&n===void 0&&o===void 0&&!s))return {...r===void 0?{}:{bucket:r},remaining:t,reset:n,tier:o,warning:s}}function ep(e,r){let t=e?.trim();if(t===void 0||!r.test(t))return;let n=Number(t);return Number.isSafeInteger(n)?n:void 0}function QP(e){if(!(e===null||e.trim()===""))return e}var Ot=class{#r;#e;#o;#s;constructor({root:r,headers:t,resolveHeaders:n,onRateLimitUpdate:o}){this.#r=ds.create({prefixUrl:r,throwHttpErrors:false}),this.#e=t,this.#o=n,this.#s=o;}get(r,t={}){return this.#n("GET",r,t)}post(r,t={}){return this.#n("POST",r,t)}patch(r,t={}){return this.#n("PATCH",r,t)}del(r,t={}){return this.#n("DELETE",r,t)}#t(r){return r.startsWith("/")?r.slice(1):r}#n(r,t,n){return this.#l(this.#i(r,t,n),n.rateLimitBucket)}async#i(r,t,n){let o=this.#d(r,t,n),s=await this.#o?.(o),a=this.#u(this.#e,o.headers,s);return o.body!==void 0&&!a.has("content-type")&&a.set("content-type","application/json"),this.#r(this.#t(t),{body:o.body,headers:a,method:r,searchParams:o.params,...n.timeout!==void 0&&{timeout:n.timeout}})}#d(r,t,n){return {body:"json"in n?this.#c(n.json):void 0,headers:n.headers,json:"json"in n?n.json:void 0,method:r,params:"params"in n?n.params:void 0,path:t}}#c(r){if(r!==void 0)return JSON.stringify(r)}#u(...r){let t=new Headers;for(let n of r)if(n!==void 0)for(let[o,s]of new Headers(n).entries())t.set(o,s);return t}#l(r,t){return ResultAsync.fromPromise(r.then(async n=>{let o=rp(n.headers,t);if(o!==void 0&&this.#m(o),n.ok)return n;let s=this.#a(n);if(n.status===429)throw new i(`Request to ${n.url} was rate limited`,{rateLimit:o,retryAfter:s});let{code:a,message:m,retryAfter:P}=await this.#p(n);throw new h(m,{code:a,retryAfter:s??P,status:n.status})}),n=>n instanceof i||n instanceof h?n:d.fromError(n))}#m(r){try{Promise.resolve(this.#s?.(r)).catch(()=>{});}catch{}}#a(r){let t=r.headers.get("retry-after");if(!(t===null||!/^\d+$/.test(t)))return Number(t)}async#p(r){let t=r.headers.get("content-type")?.toLowerCase();if(t?.includes("application/json")){let{error:o,code:s,retry_after_seconds:a}=await r.clone().json().catch(()=>({}));if(o){let m=typeof s=="string"&&s!==""?s:void 0,P=m===void 0&&r.status!==400&&typeof o=="string"&&/^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$/.test(o)?o:void 0,h=m??P;return {message:`${String(o)} (${r.url})`,...h!==void 0?{code:h}:{},...typeof a=="number"&&Number.isFinite(a)&&a>=0?{retryAfter:a}:{}}}}if(t?.includes("text/plain")){let o=await r.clone().text().then(s=>s.trim(),()=>"");if(o)return {message:`${o} (${r.url})`}}return r.headers.get("server")?.toLowerCase()?.includes("cloudflare")?{message:`Request to ${r.url} was blocked by Cloudflare with status ${r.status}`}:t?.includes("text/html")||t?.includes("application/xhtml+xml")?{message:`Request to ${r.url} failed with status ${r.status} and an unexpected HTML response body`}:{message:`Request to ${r.url} failed with status ${r.status} and unreadable response body`}}};var eg=1e4,rg=3e4,tg=5e3,ng=10*6e4,og=3e4,sg=25e3,ag=65e3,tp=class{#r=0;#e;start(r){this.stop(),this.#r=Date.now(),this.#e=setNonBlockingInterval(()=>{r("PING");},eg);}handleMessage(r){return r!=="PONG"?false:(this.#r=Date.now(),true)}isStale(r){return r-this.#r>rg}stop(){this.#e!==void 0&&(clearInterval(this.#e),this.#e=void 0);}},np=class{#r=0;#e;start(r){this.stop(),this.#r=Date.now(),this.#e=setNonBlockingInterval(()=>{r("PING");},tg);}handleMessage(){return this.#r=Date.now(),false}isStale(r){return r-this.#r>ng}stop(){this.#e!==void 0&&(clearInterval(this.#e),this.#e=void 0);}},op=class{#r=0;#e;start(r){this.#r=Date.now(),this.#e=r;}stop(){this.#e=void 0;}handleMessage(r){return r!=="ping"?false:(this.#r=Date.now(),this.#e?.("pong"),true)}isStale(r){return r-this.#r>og}},wt=class{#r=0;#e;start(r){this.stop(),this.#r=Date.now(),this.#e=setNonBlockingInterval(()=>{r(JSON.stringify({id:0,req:"post",op:{type:"ping"}}));},sg);}handleMessage(){return this.#r=Date.now(),false}isStale(r){return r-this.#r>ag}stop(){this.#e!==void 0&&(clearInterval(this.#e),this.#e=void 0);}},sp=class{#r=0;#e;start(r){this.stop(),this.#r=Date.now(),this.#e=setNonBlockingInterval(()=>r('{"op":"ping"}'),3e4);}handleMessage(r){return this.#r=Date.now(),false}isStale(r){return r-this.#r>=9e4}stop(){clearInterval(this.#e),this.#e=void 0;}};var pg=5e3,dg=250,cg=3e4,Bt=class{#r;#e=0;get isScheduled(){return this.#r!==void 0}schedule(r){if(this.#r!==void 0||!r.shouldReconnect())return;let t=r.delayPolicy?.(this.#e)??lg(this.#e,{baseMs:dg,maxMs:cg});this.#e+=1,this.#r=setNonBlockingTimeout(()=>{this.#r=void 0,this.#o(r);},t);}stop(){this.#r!==void 0&&(clearTimeout(this.#r),this.#r=void 0);}resetBackoff(){this.#e=0,this.stop();}async#o(r){if(r.shouldReconnect())try{await r.reconnect();}catch{this.schedule(r);}}},Ft=class{#r;#e;#o;#s;#t;#n;#i;constructor(r={}){this.#r=r.heartbeat,this.#e=r.connectTimeoutMs,this.#o=r.closeTimeoutMs;}connect(r){if(this.#t?.readyState===WebSocket.OPEN)return Promise.resolve({reusedOpenSocket:true});if(this.#l(),this.#n!==void 0)return this.#n;let n=this.#c(r).then(()=>({reusedOpenSocket:false})).catch(o=>{throw this.#n===n&&(this.#n=void 0),o});return this.#n=n,n}send(r){return this.#d(JSON.stringify(r))}#d(r){return this.#t?.readyState!==WebSocket.OPEN?false:(this.#t.send(r),true)}async close(){this.#s?.();let r=await this.#p();this.#a(),!(r===void 0||r.readyState===WebSocket.CLOSED)&&await new Promise(t=>{let n=this.#o===void 0?void 0:setNonBlockingTimeout(t,this.#o);r.addEventListener("close",()=>{clearTimeout(n),t();},{once:true}),r.readyState!==WebSocket.CLOSING&&r.close();});}async#c(r){let t=await r.prepare?.();return new Promise((n,o)=>{let s=ug(r.url,r.headers),a,m=()=>{s.removeEventListener("open",P),clearTimeout(a),this.#s=void 0,o(new d("WebSocket connection did not open.")),s.close();},P=()=>{clearTimeout(a),this.#s=void 0,s.removeEventListener("error",h),this.#u(s),this.#m(),r.onOpen(t),n(s);},h=C=>{clearTimeout(a),this.#s=void 0,s.removeEventListener("open",P),o(new d(`WebSocket connection failed: ${r.url}`,{cause:C}));};s.addEventListener("open",P,{once:true}),this.#e!==void 0&&(this.#s=m,a=setNonBlockingTimeout(m,this.#e)),s.addEventListener("error",h,{once:true}),s.addEventListener("message",C=>{if(this.#t!==s)return;let A=String(C.data);if(this.#r?.handleMessage(A))return;let k;try{k=JSON.parse(A);}catch{return}r.onMessage(k);}),s.addEventListener("close",C=>{this.#t===s&&(this.#l(),r.onConnectionLost({code:C.code||1005,reason:C.reason??""}));}),s.addEventListener("error",()=>r.onError());})}#u(r){this.#t=r,this.#n=void 0;}#l(){this.#a(),this.#t=void 0;}#m(){this.#a();let r=this.#r;r!==void 0&&(r.start(t=>this.#d(t)),this.#i=setNonBlockingInterval(()=>{if(!r.isStale(Date.now()))return;let t=this.#t;t?.readyState===WebSocket.OPEN&&t.close();},pg));}#a(){this.#i!==void 0&&(clearInterval(this.#i),this.#i=void 0),this.#r?.stop();}async#p(){let r=this.#t,t=this.#n;return this.#t=void 0,this.#n=void 0,r!==void 0?r:t?.then(()=>this.#t,()=>{})}};function ug(e,r){if(r===void 0)return new WebSocket(e);try{let t=Reflect.construct(WebSocket,[e,{headers:r}]);if(t instanceof WebSocket)return t}catch(t){throw new d("WebSocket headers require a header-capable WebSocket implementation.",{cause:t})}throw new d("WebSocket headers require a header-capable WebSocket implementation.")}function lg(e,r){let t=Math.min(r.baseMs*2**e,r.maxMs);return Math.random()*t}function ap(e,r,t){let n=new Set(t.seenKeys),o=e.filter(P=>!n.has(String(P.transferId)));if(!r)return {items:o,hasMore:false};let s=e.at(-1);if(s===void 0)throw new c("Perps internal-transfer history reported more records without a continuation timestamp.");let a=Math.min(t.endTimestamp,s.createdTimestamp+1);if(a===t.endTimestamp&&o.length===0)throw new c("Perps internal-transfer history cannot continue within a full millisecond without skipping records.");let m=new Set(a===t.endTimestamp?t.seenKeys:[]);for(let P of e)P.createdTimestamp>=a-1&&m.add(String(P.transferId));return {items:o,hasMore:true,nextCursor:toPaginationCursor(btoa(JSON.stringify({...t,endTimestamp:a,seenKeys:Array.from(m)})))}}var Mt=1440*60*1e3,fo=90*Mt,ne=z$1.number().int().nonnegative(),Ut=z$1.object({start:ne.optional(),end:ne.optional()}),cp=z$1.object({interval:PerpsPnlIntervalSchema,start:ne,end:ne.optional()}),Fg=z$1.enum(["perpsFundingPayments","perpsDeposits","perpsWithdrawals"]),Mg=z$1.enum(["perpsEquityHistory","perpsPnlHistory"]),yo=z$1.object({kind:Fg,startTimestamp:ne,endTimestamp:ne,instrumentId:PerpsInstrumentIdSchema.optional(),depositStatus:PerpsDepositStatusSchema.optional(),withdrawalStatus:PerpsWithdrawalStatusSchema.optional(),hash:TxHashSchema.optional(),seenKeys:z$1.array(z$1.string())}),up=z$1.object({kind:Mg,startTimestamp:ne,endTimestamp:ne,interval:PerpsPnlIntervalSchema});async function lp(e){return await unwrap(e.get("/v1/account/balances").andThen(y(FetchPerpsBalancesResponseSchema)))}async function mp(e){return await unwrap(e.get("/v1/account/portfolio").andThen(y(FetchPerpsPortfolioResponseSchema)))}async function fp(e){return await unwrap(e.get("/v1/account/stats").andThen(y(FetchPerpsAccountStatsResponseSchema)))}async function yp(e){return await unwrap(e.get("/v1/account/auto-cancel").andThen(y(FetchPerpsAutoCancelStatusResponseSchema)))}var Ug=z$1.object({instrumentId:PerpsInstrumentIdSchema.optional()}).default({});async function Pp(e,r){let t=l(r,Ug);return await unwrap(e.get("/v1/account/config",{params:ce(t)}).andThen(y(FetchPerpsAccountConfigResponseSchema)))}var Dg=z$1.object({instrumentId:PerpsInstrumentIdSchema.optional()}).default({});async function gp(e,r){let t=l(r,Dg);return await unwrap(e.get("/v1/account/open-orders",{params:ce(t)}).andThen(y(FetchPerpsOpenOrdersResponseSchema)))}var _g=z$1.object({orderId:PerpsOrderIdSchema.optional(),clientOrderId:PerpsClientOrderIdSchema.optional(),instrumentId:PerpsInstrumentIdSchema.optional(),start:ne.optional(),end:ne.optional()}).default({}),zg=_g.transform(({end:e,start:r,...t})=>({...t,endTimestamp:e,startTimestamp:r}));async function Rp(e,r){let t=l(r,zg);return await unwrap(e.get("/v1/account/orders",{params:ce(t)}).andThen(y(FetchPerpsOrdersResponseSchema)))}var jg=z$1.object({start:ne.optional(),end:ne.optional(),sort:PerpsSortDirectionSchema.optional(),cursor:PaginationCursorSchema.optional()});function Ep(e,r={}){let t=l(r,jg);return I(n=>e.get("/v1/account/fills",{params:ce({startTimestamp:t.start,endTimestamp:t.end,sort:t.sort,cursor:n??t.cursor})}).andThen(y(ListPerpsFillsResponseSchema)).map(o=>{let s=o.data.at(-1);return !o.more||s===void 0?{items:o.data,hasMore:false}:{items:o.data,hasMore:true,nextCursor:toPaginationCursor(String(s.tradeId))}}),t.cursor)}var Wg=Ut.extend({cursor:PaginationCursorSchema.optional(),instrumentId:PerpsInstrumentIdSchema.optional()}),Hg=z$1.object({cursor:PaginationCursorSchema}),Ng=z$1.union([Wg.transform(({cursor:e,...r})=>({cursor:e,params:Dt(r,Mt)})),Hg.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function Sp(e,r={}){let{cursor:t,params:n}=l(r,Ng);return I(o=>{let s;o===void 0?(invariant(n!==void 0,"Expected initial Perps funding payment params."),s={kind:"perpsFundingPayments",seenKeys:[],...n}):s=oe(o,yo,"Invalid Perps account pagination cursor");let{kind:a,seenKeys:m,...P}=s,h=new Set(s.seenKeys);return e.get("/v1/account/funding",{params:ce(P)}).andThen(y(ListPerpsFundingPaymentsResponseSchema)).map(C=>{let A=C.data.filter(k=>!h.has(`${k.instrumentId}:${k.timestamp}:${k.funding}`));return Po({getKey:k=>`${k.instrumentId}:${k.timestamp}:${k.funding}`,getTimestamp:k=>k.timestamp,items:A,responseData:C.data,responseMore:C.more,state:s})})},t)}var Kg=Ut.extend({cursor:PaginationCursorSchema.optional(),depositStatus:PerpsDepositStatusSchema.optional(),hash:TxHashSchema.optional()}),Gg=z$1.object({cursor:PaginationCursorSchema}),$g=z$1.union([Kg.transform(({cursor:e,...r})=>({cursor:e,params:Dt(r,fo)})),Gg.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function hp(e,r={}){let{cursor:t,params:n}=l(r,$g);return I(o=>{let s;o===void 0?(invariant(n!==void 0,"Expected initial Perps deposit params."),s={kind:"perpsDeposits",seenKeys:[],...n}):s=oe(o,yo,"Invalid Perps account pagination cursor");let{kind:a,seenKeys:m,...P}=s,h=new Set(s.seenKeys);return e.get("/v1/account/deposits",{params:ce(P)}).andThen(y(ListPerpsDepositsResponseSchema)).map(C=>{let A=C.data.filter(k=>!h.has(k.hash));return Po({getKey:k=>k.hash,getTimestamp:yR,items:A,responseData:C.data,responseMore:C.more,state:s})})},t)}var Vg=Ut.extend({cursor:PaginationCursorSchema.optional(),withdrawalStatus:PerpsWithdrawalStatusSchema.optional(),hash:TxHashSchema.optional()}),Yg=z$1.object({cursor:PaginationCursorSchema}),Zg=z$1.union([Vg.transform(({cursor:e,...r})=>({cursor:e,params:Dt(r,fo)})),Yg.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function Tp(e,r={}){let{cursor:t,params:n}=l(r,Zg);return I(o=>{let s;o===void 0?(invariant(n!==void 0,"Expected initial Perps withdrawal params."),s={kind:"perpsWithdrawals",seenKeys:[],...n}):s=oe(o,yo,"Invalid Perps account pagination cursor");let{kind:a,seenKeys:m,...P}=s,h=new Set(s.seenKeys);return e.get("/v1/account/withdrawals",{params:ce(P)}).andThen(y(ListPerpsWithdrawalsResponseSchema)).map(C=>{let A=C.data.filter(k=>!h.has(String(k.withdrawalId)));return Po({getKey:k=>String(k.withdrawalId),getTimestamp:PR,items:A,responseData:C.data,responseMore:C.more,state:s})})},t)}var Qg=Ut.extend({cursor:PaginationCursorSchema.optional()}),Jg=z$1.object({kind:z$1.literal("perpsInternalTransfers"),startTimestamp:ne,endTimestamp:ne,seenKeys:z$1.array(z$1.string())}),Xg=z$1.object({cursor:PaginationCursorSchema}),eR=z$1.union([Qg.transform(({cursor:e,...r})=>({cursor:e,params:Dt(r,fo)})),Xg.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function xp(e,r={}){let{cursor:t,params:n}=l(r,eR);return I(o=>{let s;o===void 0?(invariant(n!==void 0,"Expected initial Perps internal-transfer params."),s={kind:"perpsInternalTransfers",seenKeys:[],...n}):s=oe(o,Jg,"Invalid Perps account pagination cursor");let{kind:a,seenKeys:m,...P}=s;return e.get("/v1/account/internal-transfers",{params:ce(P)}).andThen(y(ListPerpsInternalTransfersResponseSchema)).map(h=>ap(h.data,h.more,s))},t)}var rR=cp.extend({cursor:PaginationCursorSchema.optional()}),tR=z$1.object({cursor:PaginationCursorSchema}),nR=z$1.union([rR.transform(({cursor:e,...r})=>({cursor:e,params:Ap(r)})),tR.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function Cp(e,r){let{cursor:t,params:n}=l(r,nR);return I(o=>{let s;o===void 0?(invariant(n!==void 0,"Expected initial Perps equity history params."),s={kind:"perpsEquityHistory",...n}):s=oe(o,up,"Invalid Perps account pagination cursor");let{kind:a,...m}=s;return e.get("/v1/account/equity",{params:ce(m)}).andThen(y(ListPerpsEquityHistoryResponseSchema)).map(P=>{let h=P.data.at(-1),C=P.more&&h!==void 0&&h.timestamp<s.endTimestamp;return {items:P.data,hasMore:C,nextCursor:C?me({...s,startTimestamp:h.timestamp+kp(s.interval)}):void 0}})},t)}var oR=cp.extend({cursor:PaginationCursorSchema.optional()}),sR=z$1.object({cursor:PaginationCursorSchema}),aR=z$1.union([oR.transform(({cursor:e,...r})=>({cursor:e,params:Ap(r)})),sR.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function Ip(e,r){let{cursor:t,params:n}=l(r,aR);return I(o=>{let s;o===void 0?(invariant(n!==void 0,"Expected initial Perps PnL history params."),s={kind:"perpsPnlHistory",...n}):s=oe(o,up,"Invalid Perps account pagination cursor");let{kind:a,...m}=s;return e.get("/v1/account/pnl",{params:ce(m)}).andThen(y(ListPerpsPnlHistoryResponseSchema)).map(P=>{let h=P.data.at(-1),C=P.more&&h!==void 0&&h.timestamp<s.endTimestamp;return {items:P.data,hasMore:C,nextCursor:C?me({...s,startTimestamp:h.timestamp+kp(s.interval)}):void 0}})},t)}var iR=z$1.object({kind:z$1.literal("perpsNotifications"),cursor:z$1.string().min(1),sinceSeq:z$1.number().int().nonnegative().optional(),limit:z$1.number().int().positive().optional()}),pR=z$1.object({sinceSeq:z$1.number().int().nonnegative().optional(),limit:z$1.number().int().positive().optional(),cursor:PaginationCursorSchema.optional()}),dR=z$1.object({cursor:PaginationCursorSchema}),cR=z$1.union([pR.transform(({cursor:e,...r})=>({cursor:e,params:r})),dR.transform(({cursor:e})=>({cursor:e,params:void 0}))]);function bp(e,r={}){let{cursor:t,params:n}=l(r,cR);return I(o=>{let s;o===void 0?invariant(n!==void 0,"Expected initial Perps notifications params."):s=oe(o,iR,"Invalid Perps account pagination cursor");let a=s===void 0?n?.sinceSeq:s.sinceSeq,m=s===void 0?n?.limit:s.limit;return e.get("/v1/account/notifications",{params:ce({cursor:s?.cursor,limit:m,sinceSeq:a})}).andThen(y(ListPerpsNotificationsResponseSchema)).map(P=>{let h=P.has_more&&P.next_cursor!==null;return {items:P.items,hasMore:h,nextCursor:h&&P.next_cursor!==null?me({kind:"perpsNotifications",cursor:P.next_cursor,limit:m,sinceSeq:a}):void 0}})},t)}async function vp(e){return (await unwrap(e.get("/v1/account/notifications",{params:ce({limit:1})}).andThen(y(FetchPerpsUnreadNotificationsCountResponseSchema)))).unread}var uR=z$1.object({ids:z$1.array(z$1.string().min(1)).min(1)}),lR=z$1.object({upTo:z$1.object({id:z$1.string().min(1),timestamp:z$1.number().int().nonnegative()})}),mR=z$1.union([uR.transform(({ids:e})=>({ids:e})),lR.transform(({upTo:e})=>({before:fR(e)}))]);async function qp(e,r){let t=l(r,mR),n=await unwrap(e.post("/v1/account/notifications/read",{json:t}).andThen(y(MarkPerpsNotificationsReadResponseSchema)));if(n.status==="err")throw new h(n.error??"Perps notifications read request was rejected.",{status:200})}function fR(e){return btoa(JSON.stringify({ts:e.timestamp,id:e.id})).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Dt(e,r){let t=Date.now(),{end:n,start:o,...s}=e;return {...s,endTimestamp:n??t,startTimestamp:o??t-r}}function Ap(e){return {endTimestamp:e.end??Date.now(),interval:e.interval,startTimestamp:e.start}}function ce(e){return S(e,x())}function yR(e){return e.confirmedTimestamp??e.createdTimestamp}function PR(e){return e.confirmedTimestamp??e.createdTimestamp}function Po(e){let r=e.responseData.at(-1),t=e.items.at(-1),n=(t===void 0?void 0:e.getTimestamp(t))??(r===void 0?void 0:e.getTimestamp(r)),o=e.responseMore&&n!==void 0&&n>e.state.startTimestamp;if(!o)return {items:e.items,hasMore:o};let s=t===void 0?n-1:n,a=new Set(e.state.endTimestamp===s?e.state.seenKeys:[]);for(let m of e.items)e.getTimestamp(m)===s&&a.add(e.getKey(m));return {items:e.items,hasMore:o,nextCursor:me({...e.state,endTimestamp:s,seenKeys:Array.from(a)})}}function kp(e){switch(e){case "1h":return 3600*1e3;case "4h":return 14400*1e3;case "1d":return Mt;case "1w":return 7*Mt}invariant(false,`Unsupported Perps account history interval: ${String(e)}`);}var TR=z$1.object({builder:EvmAddressSchema.optional()}).default({}),wp=r(i,h,d,c,a);async function Lp(e,r){let t=l(r,TR);return (await unwrap(e.get("/v1/account/builder-approvals",{params:S(t,x())}).andThen(y(FetchPerpsBuilderApprovalsResponseSchema)))).data}var xR=2160*60*60*1e3,go=z$1.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER),Bp=z$1.object({start:go.optional(),end:go.optional(),asOfSequence:go.optional()}).refine(({start:e,end:r})=>e===void 0||r===void 0||e<=r,{message:"end must not precede start",path:["end"]}).refine(({start:e,end:r})=>e===void 0||r===void 0||r-e<=xR,{message:"The reporting window must not exceed 90 days",path:["end"]}).default({}),Fp=r(i,h,d,c,a);function Mp(e,r){let t=l(r,Bp);return I(n=>e.get("/v1/account/builder-earnings",{params:n===void 0?S(t,{start:"start_timestamp",end:"end_timestamp",asOfSequence:"as_of_sequence"}):new URLSearchParams({cursor:n})}).andThen(y(ListPerpsBuilderEarningsResponseSchema)).map(o=>{if(!o.more)return {items:o.data,hasMore:false};if(o.cursor===void 0||o.cursor===n)throw new c("Builder earnings pagination did not return a new cursor");return {items:o.data,hasMore:true,nextCursor:toPaginationCursor(o.cursor)}}))}var Up=r(i,h,d,c,a);async function Dp(e,r){let t=l(r,Bp);return unwrap(e.get("/v1/account/builder-earnings-summary",{params:S(t,{start:"start_timestamp",end:"end_timestamp",asOfSequence:"as_of_sequence"})}).andThen(y(PerpsBuilderEarningsSummarySchema)))}var xo=z$1.object({instrumentId:PerpsInstrumentIdSchema,side:OrderSideSchema,quantity:PerpsDecimalInputSchema,reduceOnly:z$1.boolean().default(false),clientOrderId:PerpsClientOrderIdSchema.optional()}),kR=xo.extend({price:PerpsDecimalInputSchema,timeInForce:z$1.literal(PerpsTimeInForce.GTC),postOnly:z$1.boolean().default(false)}),OR=xo.extend({price:PerpsDecimalInputSchema.optional(),timeInForce:z$1.literal(PerpsTimeInForce.IOC),postOnly:z$1.never().optional()}),wR=xo.extend({price:PerpsDecimalInputSchema.optional(),timeInForce:z$1.literal(PerpsTimeInForce.FOK),postOnly:z$1.never().optional()}),Co=z$1.discriminatedUnion("timeInForce",[kR,OR,wR]),_t=z$1.object({triggerPrice:PerpsDecimalInputSchema,limitPrice:PerpsDecimalInputSchema.optional()}),zt=z$1.object({triggerPrice:PerpsDecimalInputSchema}),LR=z$1.union([z$1.object({takeProfit:_t,stopLoss:_t.optional()}),z$1.object({takeProfit:_t.optional(),stopLoss:_t})]),BR=z$1.object({orders:z$1.array(Co).min(1),expiresAt:z$1.number().int().positive().optional()});async function $p(e,r){let t=l(r,BR),n=e.builderAttribution;return await e.executeCommand({op:["createOrders",t.orders.map(o=>Io(o,n))],expiresAt:t.expiresAt},z$1.array(PerpsPostOrderAckSchema))}var FR=z$1.intersection(Co,z$1.intersection(LR,z$1.object({clientOrderId:PerpsClientOrderIdSchema.default(ad),expiresAt:z$1.number().int().positive().optional()}))),MR=z$1.intersection(Co,z$1.object({clientOrderId:PerpsClientOrderIdSchema.default(ad),expiresAt:z$1.number().int().positive().optional(),takeProfit:z$1.never().optional(),stopLoss:z$1.never().optional()})),Vp=z$1.array(PerpsPostOrderAckSchema).min(1).refine(e=>e.every(r=>r.status==="ok"),"Expected successful Perps order acknowledgements.");function UR(e){return e.takeProfit!==void 0||e.stopLoss!==void 0}async function Yp(e,r){if(UR(r))return await DR(e,r);let t=l(r,MR),n=e.builderAttribution,[,o]=await e.executeCommandWithEvent({op:["createOrders",[Io(t,n)]],expiresAt:t.expiresAt},Vp,id(t.clientOrderId));return {order:o.payload}}async function DR(e,r){let t=l(r,FR),n=e.builderAttribution,o=[Io(t,n)],s=t.side===OrderSide.SELL;t.takeProfit!==void 0&&o.push(Kt({buy:s,instrumentId:t.instrumentId,kind:PerpsTpSlKind.TakeProfit,quantity:toDecimalString(t.quantity),builderAttribution:n,trigger:t.takeProfit})),t.stopLoss!==void 0&&o.push(Kt({buy:s,instrumentId:t.instrumentId,kind:PerpsTpSlKind.StopLoss,quantity:toDecimalString(t.quantity),builderAttribution:n,trigger:t.stopLoss}));let[a,m]=await e.executeCommandWithEvent({op:["createOrders",o,PerpsTpSlScope.Order],expiresAt:t.expiresAt},Vp,id(t.clientOrderId)),P=1,h={};return t.takeProfit!==void 0&&(h.takeProfit=Nt(expectPresent(a[P++],"Expected Perps take-profit acknowledgement."))),t.stopLoss!==void 0&&(h.stopLoss=Nt(expectPresent(a[P],"Expected Perps stop-loss acknowledgement."))),{order:m.payload,tpSl:h}}var _R=z$1.union([z$1.object({takeProfit:zt,stopLoss:zt.optional()}),z$1.object({takeProfit:zt.optional(),stopLoss:zt})]),zR=z$1.intersection(_R,z$1.object({instrumentId:PerpsInstrumentIdSchema,expiresAt:z$1.number().int().positive().optional()}));async function Zp(e,r){let t=l(r,zR),n=e.builderAttribution,o=nE(await e.fetchPortfolio(),t.instrumentId),s=[];t.takeProfit!==void 0&&s.push(Kt({buy:o,instrumentId:t.instrumentId,kind:PerpsTpSlKind.TakeProfit,quantity:"0",builderAttribution:n,trigger:t.takeProfit})),t.stopLoss!==void 0&&s.push(Kt({buy:o,instrumentId:t.instrumentId,kind:PerpsTpSlKind.StopLoss,quantity:"0",builderAttribution:n,trigger:t.stopLoss}));let a=await e.executeCommand({op:["createOrders",s,PerpsTpSlScope.Position],expiresAt:t.expiresAt},z$1.array(PerpsPostOrderAckSchema));for(let h$1 of a)if(h$1.status==="err")throw new h(h$1.error,{status:200});let m=0,P={};return t.takeProfit!==void 0&&(P.takeProfit=Nt(expectPresent(a[m++],"Expected Perps take-profit acknowledgement."))),t.stopLoss!==void 0&&(P.stopLoss=Nt(expectPresent(a[m],"Expected Perps stop-loss acknowledgement."))),{tpSl:P}}var Eo=4,So=2e3,jR=100,WR=1e3,HR=z$1.object({maxAttempts:z$1.number().int().positive().default(Eo),maxElapsedMs:z$1.number().int().positive().default(So)}).default({maxAttempts:Eo,maxElapsedMs:So}),Wt=z$1.object({expiresAt:z$1.number().int().positive().optional(),retry:z$1.union([z$1.literal(false),HR]).default({maxAttempts:Eo,maxElapsedMs:So}),signal:z$1.custom(e=>e instanceof AbortSignal,"Expected an AbortSignal.").optional()}),NR=z$1.union([Wt.extend({orderId:PerpsOrderIdSchema,clientOrderId:z$1.undefined().optional()}),Wt.extend({clientOrderId:PerpsClientOrderIdSchema,orderId:z$1.undefined().optional()})]);async function Qp(e,r){let t=l(r,NR),[n]=t.orderId!==void 0?await Ht(e,{orderIds:[t.orderId],expiresAt:t.expiresAt,retry:t.retry,signal:t.signal}):await Ht(e,{clientOrderIds:[t.clientOrderId],expiresAt:t.expiresAt,retry:t.retry,signal:t.signal});return expectPresent(n,"Expected Perps cancel order result.")}var KR=z$1.union([Wt.extend({orderIds:z$1.array(PerpsOrderIdSchema).min(1),clientOrderIds:z$1.undefined().optional()}),Wt.extend({clientOrderIds:z$1.array(PerpsClientOrderIdSchema).min(1),orderIds:z$1.undefined().optional()})]);async function Ht(e,r){let t=l(r,KR);return t.orderIds!==void 0?await jp(t.orderIds,t,async n=>await e.executeCommand({op:["cancelOrders",n],expiresAt:t.expiresAt},z$1.array(PerpsCancelOrderResultSchema))):await jp(t.clientOrderIds,t,async n=>await e.executeCommand({op:["cancelOrdersCOID",n],expiresAt:t.expiresAt},z$1.array(PerpsCancelOrderResultSchema)))}async function jp(e,r,t){let n=r.retry===false?1:r.retry.maxAttempts,o=r.retry===false?Number.POSITIVE_INFINITY:Math.min(Date.now()+r.retry.maxElapsedMs,r.expiresAt??Number.POSITIVE_INFINITY),s=new Array(e.length),a=e.map((P,h)=>({identifier:P,resultIndex:h})),m=0;for(YR(r.signal);a.length>0;){if(m>0){let C=o-Date.now(),A=$R(m);if(C<=0||A>=C||!await VR(A,r.signal)||r.signal?.aborted||Date.now()>=o)break}let P;try{P=await t(a.map(({identifier:A})=>A));let C=GR(P);if(C!==void 0)throw new h(C,{status:200});if(P.length!==a.length)throw new c("Perps cancel response did not include one result per requested order.")}catch(C){throw m===0?C:new p("Perps cancellation retry failed.",{cause:C,results:s.map(A=>expectPresent(A,"Expected a previous Perps cancel result.")),pendingIndexes:a.map(({resultIndex:A})=>A)})}m+=1;let h$1=[];for(let[C,A]of P.entries()){let k=expectPresent(a[C],"Expected a pending Perps cancellation.");s[k.resultIndex]=A,m<n&&A.status==="err"&&A.error===PerpsKnownCancelOrderErrorCode.OrderInFlight&&h$1.push(k);}a=h$1;}return s.map(P=>expectPresent(P,"Expected a final Perps cancel result."))}function GR(e){let[r]=e;if(!(e.length!==1||r?.status!=="err"||r.orderId!==void 0||r.clientOrderId!==void 0))return r.error}function $R(e){let r=Math.min(jR*2**(e-1),WR);return Math.random()*r}function VR(e,r){if(r?.aborted)return Promise.resolve(false);if(e<=0)return Promise.resolve(true);if(r===void 0)return new Promise(n=>setNonBlockingTimeout(()=>n(true),e));let t=r;return new Promise(n=>{let o=setNonBlockingTimeout(()=>{t.removeEventListener("abort",s),n(true);},e);function s(){clearTimeout(o),n(false);}t.addEventListener("abort",s,{once:true});})}function YR(e){if(e?.aborted)throw k.fromReason(e.reason)}var ZR=z$1.object({instrumentId:PerpsInstrumentIdSchema.optional(),expiresAt:z$1.number().int().positive().optional()}).default({});async function Jp(e,r){let t=l(r,ZR),n=["cancelAll",t.instrumentId===void 0?[]:[t.instrumentId]];await e.executeDeleteCommand({path:"/v1/trade/orders/all",op:n,responseSchema:PerpsCancelAllOrdersResponseSchema,expiresAt:t.expiresAt});}var QR=5e3,JR=z$1.object({cancelAt:z$1.number().int().positive(),expiresAt:z$1.number().int().positive().optional()}).superRefine((e,r)=>{let t=Date.now()+QR;e.cancelAt<t&&r.addIssue({code:"custom",message:"cancelAt must be at least 5 seconds in the future.",path:["cancelAt"]});}),Xp=r(o,i,h,q,d,c,a),XR="auto_cancel_daily_limit_reached";async function ed(e,r,t){let n=l(t,JR),o$1=["autoCancel",[n.cancelAt]],s=r(o$1,n.expiresAt);await unwrap(e.patch("/v1/trade/auto-cancel",{json:{...s,op:jr(o$1)}}).andThen(y(PerpsAutoCancelResponseSchema)).mapErr(a=>a instanceof h&&a.message.startsWith(`${XR} (`)?new o("Auto-cancel daily trigger limit reached.",{cause:a}):a));}var eE=z$1.object({expiresAt:z$1.number().int().positive().optional()}).default({});async function rd(e,r,t){let n=l(t,eE),o=["autoCancel",[0]],s=r(o,n.expiresAt);await unwrap(e.patch("/v1/trade/auto-cancel",{json:{...s,op:jr(o)}}).andThen(y(PerpsAutoCancelResponseSchema)));}var rE=z$1.object({instrumentId:PerpsInstrumentIdSchema,leverage:z$1.number().int().positive(),crossMargin:z$1.boolean()}),td=r(h,q,d,a);async function nd(e,r){let t=l(r,rE);return await e.executeCommand({op:["updateLeverage",[t.instrumentId,t.leverage,t.crossMargin]]},PerpsUpdateLeverageResultSchema)}var tE=z$1.object({instrumentId:PerpsInstrumentIdSchema,amount:PerpsDecimalInputSchema}),od=r(h,q,d,a);async function sd(e,r){let t=l(r,tE),n=toDecimalString(t.amount),o=await e.executeCommand({op:["updateMargin",[t.instrumentId,n]]},PerpsCommandAckSchema);if(o.status==="err")throw new h(o.error,{status:200})}function ad(){let e=globalThis.crypto.getRandomValues(new Uint8Array(16));return PerpsClientOrderIdSchema.parse(Array.from(e,r=>r.toString(16).padStart(2,"0")).join(""))}function id(e){return r=>r.type==="order"&&r.payload.clientOrderId===e}function Nt(e){if(e.status==="err")throw new h(e.error,{status:200});return {orderId:e.orderId}}function nE(e,r){let t=e.positions.find(o=>o.instrumentId===r),n=t===void 0?0:oE(t.size);if(n===0)throw new a(`No open Perps position for instrument ${r}.`);return n<0}function oE(e){let r=e.trim(),t=r.replace(/^[+-]/,"").replace(".","");return /^0*$/.test(t)?0:r.startsWith("-")?-1:1}function Io(e,r){return [e.instrumentId,e.side===OrderSide.BUY,e.price===void 0?void 0:toDecimalString(e.price),toDecimalString(e.quantity),e.timeInForce,e.postOnly??false,e.reduceOnly===true?true:void 0,e.clientOrderId,void 0,void 0,r===void 0?void 0:[r.builderAddress,r.feeRate]]}function Kt(e){return [e.instrumentId,e.buy,e.trigger.limitPrice===void 0?void 0:toDecimalString(e.trigger.limitPrice),e.quantity,void 0,false,true,void 0,[e.trigger.limitPrice===void 0?true:void 0,toDecimalString(e.trigger.triggerPrice),e.kind],void 0,e.builderAttribution==null?void 0:[e.builderAttribution.builderAddress,e.builderAttribution.feeRate]]}function jr(e){let[r,t,n]=e;switch(r){case "createOrders":return iE({args:t.map(sE),type:r},n);case "cancelOrders":case "cancelOrdersCOID":return {type:r,args:t};case "autoCancel":{let[o]=t;return {type:r,args:{time:o}}}case "cancelAll":{let[o]=t;return {type:r,args:o===void 0?{}:{iid:o}}}case "updateLeverage":{let[o,s,a]=t;return {type:r,args:{cross:a,iid:o,lev:s}}}case "updateMargin":{let[o,s]=t;return {type:r,args:{amt:s,iid:o}}}default:invariant(false,`Unsupported Perps command: ${String(r)}`);}}function sE(e){let r={iid:e[0],buy:e[1],po:e[5],qty:e[3]};return e[4]!==void 0&&(r.tif=e[4]),e[6]&&(r.ro=e[6]),e[2]!==void 0&&(r.p=e[2]),e[7]!==void 0&&(r.c=e[7]),e[8]!==void 0&&(r.tr=aE(e[8])),e[10]!==void 0&&(r.builder={address:e[10][0],fee_rate:e[10][1]}),r}function aE(e){let r={tpsl:e[2],trp:e[1]};return e[0]!==void 0&&(r.market=e[0]),r}function iE(e,r){return r!==void 0&&(e.grp=r),e}var mE=3e4,vo=3e4,fE=2e3,yE=["balances","portfolio","orders","fills","funding","deposits","withdrawals","notifications","tpsl"],PE=new Set(["notifications","builderFills"]),gE=z$1.object({id:z$1.number().int().positive().optional(),data:z$1.unknown().optional()}).passthrough(),qo=z$1.union([PerpsCommandAckSchema,z$1.array(PerpsCommandAckSchema)]).transform(e=>Array.isArray(e)?e.find(r=>r.status==="err")??e[0]:e),RE=r(i,h,q,d,c,a),ud=class{credentials;#r;#e;#o;#s;#t;#n;#i=new Ft({heartbeat:new wt});#d=pushable({objectMode:true});#c=new Map;#u=new Set;#l=new Bt;#m=new Map;#a;#p;#E=Promise.resolve();#S;#y=1;#f;constructor(r){this.#r=r.approveBuilderFee,this.#S=r.includeBuilderFills??false,this.#p=r.builderAttribution===void 0||typeof r.builderAttribution=="string"?void 0:Object.freeze(l(r.builderAttribution,Qi)),this.#a=typeof r.builderAttribution=="string"?l(r.builderAttribution,EvmAddressSchema):this.#p?.builderAddress,this.#e=new Ot({headers:r.headers,resolveHeaders:async()=>this.#q(),root:r.restUrl}),this.#o=r.chainId,this.credentials=r.credentials,this.#s=r.headers,this.#t=r.onClose,this.#n=r.wsUrl;}get builderAttribution(){return this.#p}get closed(){return this.#f!==void 0}async connect(){if(this.#a!==void 0&&this.#p===void 0){let r=await unwrap(this.#e.get("/v1/info/builder",{params:new URLSearchParams({address:this.#a})}).andThen(y(PerpsBuilderStatusSchema)));if(!r.registered||!r.enabled||!r.admissionEnabled)throw new a("Builder attribution is not active for this builder address.");let n=(await this.fetchBuilderApprovals({builder:this.#a})).find(s=>s.builder.toLowerCase()===this.#a?.toLowerCase()),o=po(r.maxFeeRate,n?.maxFeeRate??"0");this.#p=/[1-9]/.test(o)?Object.freeze({builderAddress:this.#a,feeRate:o}):void 0;}await this.#T(false);}async close(){this.#f===void 0&&(this.#f=this.#A()),await this.#f;}[Symbol.asyncIterator](){return this.#d[Symbol.asyncIterator]()}async approveBuilderFee(r){let t=l(r,uo);return this.#h(()=>({...t,builderAddress:t.builderAddress===void 0?this.#a:t.builderAddress}))}async revokeBuilderFee(r){return this.#h(()=>{let t=r??this.#a;if(t===void 0)throw new a("A builder address is required when the session has no active builder attribution.");return {builderAddress:t,maxFeeRate:"0"}})}#h(r){let t=this.#E.catch(()=>{}).then(async()=>{if(this.closed)throw new d("Perps session closed.");if(this.#r===void 0)throw new a("Builder approval requires a session opened with a secure client.");let n=await this.#r(this,r());if(/^0+(?:\.0+)?$/.test(n.maxFeeRate))this.#a?.toLowerCase()===n.builder.toLowerCase()&&(this.#p=void 0,this.#a=void 0);else {let o=await unwrap(this.#e.get("/v1/info/builder",{params:new URLSearchParams({address:n.builder})}).andThen(y(PerpsBuilderStatusSchema)));this.#a=n.builder;let s=po(o.maxFeeRate,n.maxFeeRate);this.#p=/[1-9]/.test(s)?Object.freeze({builderAddress:n.builder,feeRate:s}):void 0;}return n});return this.#E=t,t}async fetchBuilderApprovals(r){return await Lp(this.#e,r)}listBuilderEarnings(r){return Mp(this.#e,r)}async fetchBuilderEarningsSummary(r){return await Dp(this.#e,r)}async fetchBalances(){return await lp(this.#e)}async fetchPortfolio(){return await mp(this.#e)}async fetchStats(){return await fp(this.#e)}async fetchAccountConfig(r){return await Pp(this.#e,r)}async fetchAutoCancelStatus(){return await yp(this.#e)}async fetchOpenOrders(r){return await gp(this.#e,r)}async fetchOrders(r){return await Rp(this.#e,r)}listFills(r={}){return Ep(this.#e,r)}listFundingPayments(r={}){return Sp(this.#e,r)}listDeposits(r={}){return hp(this.#e,r)}listInternalTransfers(r={}){return xp(this.#e,r)}listWithdrawals(r={}){return Tp(this.#e,r)}listEquityHistory(r){return Cp(this.#e,r)}listPnlHistory(r){return Ip(this.#e,r)}listNotifications(r={}){return bp(this.#e,r)}async fetchUnreadNotificationsCount(){return await vp(this.#e)}async markNotificationsRead(r){await qp(this.#e,r);}async placeOrder(r){return await Yp(this,r)}async postOrders(r){return await $p(this,r)}async placePositionTpSl(r){return await Zp(this,r)}async cancelOrder(r){return await Qp(this,r)}async cancelOrders(r){return await Ht(this,r)}async cancelAllOrders(r){await Jp(this,r);}async armAutoCancel(r){await ed(this.#e,(t,n)=>this.#P(t,n),r);}async disarmAutoCancel(r){await rd(this.#e,(t,n)=>this.#P(t,n),r);}async updateLeverage(r){return await nd(this,r)}async updateMargin(r){await sd(this,r);}async#T(r){await this.#i.connect({onConnectionLost:()=>this.#w(),onError:()=>{},onMessage:t=>this.#k(t),onOpen:()=>{},headers:this.#s,url:this.#n}),await this.#b(),await this.#v(),this.#l.resetBackoff(),r&&(this.#m.clear(),this.#d.push({reason:"reconnect",type:"resync"}));}async#b(){await this.#g({id:this.#y++,op:{args:{proxy:this.credentials.proxy,secret:this.credentials.secret},type:"auth"},req:"post"},qo,mE,"Perps session authentication timed out.");}async#v(){await this.#g({id:this.#y++,req:"sub",chs:yE},qo,vo,"Perps session subscription timed out."),this.#S&&this.#g({id:this.#y++,req:"sub",chs:["builderFills"]},qo,vo,"Perps builder fills subscription timed out.").catch(()=>{});}#q(){return {"POLYMARKET-PROXY":this.credentials.proxy,"POLYMARKET-SECRET":this.credentials.secret}}async executeCommand(r,t){let n=jr(r.op),o=this.#P(r.op,r.expiresAt);return await this.#g({...o,id:this.#y++,op:n,req:"post"},t,vo,"Perps command response timed out.")}async executeCommandWithEvent(r,t,n){let o=this.#B(n),s=this.executeCommand(r,t);s.then(()=>this.#F(o,fE),()=>{});try{let[a,m]=await Promise.all([s,o.promise]);return [a,m]}finally{this.#R(o);}}async executeDeleteCommand(r){let t=this.#P(r.op,r.expiresAt);return await unwrap(this.#e.del(r.path,{json:{...t,op:jr(r.op)}}).andThen(y(r.responseSchema)))}#P(r,t){let n=hE(),o=Date.now(),s;try{s=Vi({chainId:this.#o,op:r,privateKey:this.credentials.privateKey,salt:n,timestamp:o});}catch(m){throw q.fromError(m,"Could not sign the Perps session command")}let a={salt:n,sig:s,ts:o};return t!==void 0&&(a.exp=t),a}async#g(r,t,n,o){let s=EE(t);this.#c.set(r.id,s);let a=setNonBlockingTimeout(()=>{s.reject(new d(o));},n);try{if(!this.#i.send(r))throw new d("Perps session transport is not open.");return await s.promise}finally{clearTimeout(a),this.#c.delete(r.id);}}async#A(){this.#l.stop(),this.#x(new d("Perps session closed.")),this.#I(new d("Perps session closed.")),this.#d.end(),await this.#i.close(),this.#t(this);}#k(r){if(this.#O(r)||PerpsNotificationsResyncFrameSchema.safeParse(r).success)return;let t=PerpsSessionUpdateEventSchema.safeParse(r);if(!t.success)return;let n=t.data;this.#L(n),this.#C(n);}#O(r){let t=gE.safeParse(r);if(!t.success||t.data.id===void 0)return false;let n=this.#c.get(t.data.id);if(n===void 0)return true;let o=n.schema.safeParse(t.data.data);if(!o.success){let s=Ao(t.data.data??t.data);return s!==void 0?n.reject(new h(s.error,{status:200})):n.reject(new d("Perps session unexpected response.")),true}return SE(o.data)?n.reject(new h(o.data.error,{status:200})):n.resolve(o.data),true}#w(){this.#x(new d("Perps session connection closed.")),this.#I(new d("Perps session connection closed.")),this.#f===void 0&&this.#l.schedule({reconnect:()=>this.#T(true),shouldReconnect:()=>this.#f===void 0});}#x(r){for(let t of this.#c.values())t.reject(r);this.#c.clear();}#L(r){if(PE.has(r.channel))return;let t=this.#m.get(r.channel);this.#m.set(r.channel,r.sequence),!(t===void 0||r.sequence===t+1)&&this.#C({channel:r.channel,previousSequence:t,reason:"sequence_gap",sequence:r.sequence,type:"resync"});}#C(r){this.#M(r),this.#d.push(r);}#B(r){let t,n,s={promise:new Promise((a,m)=>{t=a,n=m;}),predicate:r,reject:n,resolve:t};return this.#u.add(s),s}#F(r,t){this.#u.has(r)&&(r.timeout=setNonBlockingTimeout(()=>{this.#R(r),r.reject(new j("Perps event wait timed out."));},t));}#M(r){for(let t of Array.from(this.#u))t.predicate(r)&&(this.#R(t),t.resolve(r));}#R(r){this.#u.delete(r)&&r.timeout!==void 0&&clearTimeout(r.timeout);}#I(r){for(let t of Array.from(this.#u))this.#R(t),t.reject(r);}};function EE(e){let r,t;return {promise:new Promise((o,s)=>{r=o,t=s;}),reject:t,resolve:r,schema:e}}function SE(e){return Array.isArray(e)?false:Ao(e)!==void 0}function Ao(e){if(Array.isArray(e)){for(let t of e){let n=Ao(t);if(n!==void 0)return n}return}if(typeof e!="object"||e===null)return;let r=e;if(r.status==="err")return {error:typeof r.error=="string"?r.error:"Perps command failed."}}function hE(){let[e]=globalThis.crypto.getRandomValues(new Uint32Array(1));return invariant(e!==void 0,"Expected crypto.getRandomValues to return a salt."),e}async function ld(e,r){let{label:t,...n}=r,o=await e.signTransfer(n);return e.submitTransfer({...n,signature:o,...t===void 0?{}:{label:t}})}var ir=r(i,h,d,c,a),ve=z$1.number().int().nonnegative(),Pd=1440*60*1e3,WE=z$1.object({instrumentId:PerpsInstrumentIdSchema.optional(),category:PerpsInstrumentCategorySchema.optional()}).default({}),eL=ir;async function rL(e,r){let t=l(r,WE);return unwrap(e.perps.get("/v1/info/instruments",{params:S(t,x())}).andThen(y(FetchPerpsInstrumentsResponseSchema)))}var HE=z$1.object({instrumentId:PerpsInstrumentIdSchema}),tL=ir;async function nL(e,r){let t=l(r,HE),[n]=await KE(e,t);if(n===void 0)throw new c(`Perps ticker ${t.instrumentId} was not returned by the API`);return n}var NE=z$1.object({instrumentId:PerpsInstrumentIdSchema.optional()}).default({}),oL=ir;async function KE(e,r){let t=l(r,NE),n=S(t,x()),[o,s]=await Promise.all([unwrap(e.perps.get("/v1/info/tickers",{params:n}).andThen(y(FetchPerpsTickersResponseSchema))),unwrap(e.perps.get("/v1/info/statistics",{params:n}).andThen(y(FetchPerpsStatisticsResponseSchema)))]),a=new Map(s.map(m=>[m.instrumentId,m]));return o.map(m=>{let P=a.get(m.instrumentId);return {...m,openPrice:P?.openPrice,volume24h:P?.volume}})}var GE=z$1.union([z$1.literal(10),z$1.literal(100),z$1.literal(500),z$1.literal(1e3)]),$E=z$1.object({instrumentId:PerpsInstrumentIdSchema,depth:GE.default(100)}),sL=ir;async function aL(e,r){let t=l(r,$E);return unwrap(e.perps.get("/v1/info/book",{params:S(t,x())}).andThen(y(PerpsBookSchema)))}var VE=z$1.object({instrumentId:PerpsInstrumentIdSchema,interval:PerpsKlineIntervalSchema,start:ve.optional(),end:ve.optional(),cursor:PaginationCursorSchema.optional()}),YE=z$1.object({cursor:PaginationCursorSchema}),ZE=z$1.union([VE.transform(({cursor:e,...r})=>({cursor:e,params:aS(r)})),YE.transform(({cursor:e})=>({cursor:e,params:void 0}))]),iL=ir;function pL(e,r){let{cursor:t,params:n}=l(r,ZE);return I(o=>{let s=o===void 0?iS(n):cS(o);return e.perps.get("/v1/info/klines",{params:S({endTimestamp:s.endTimestamp,instrumentId:s.instrumentId,interval:s.interval,startTimestamp:s.startTimestamp},x())}).andThen(y(FetchPerpsCandlesResponseSchema)).map(a=>{let m=a.data.at(-1),P=a.more&&m!==void 0;return {items:a.data,hasMore:P,nextCursor:P?me({...s,startTimestamp:m.timestamp+mS(s.interval)}):void 0}})},t)}var gd=z$1.object({instrumentId:PerpsInstrumentIdSchema,start:ve.optional(),end:ve.optional()}),QE=gd.extend({cursor:PaginationCursorSchema.optional()}),JE=z$1.object({cursor:PaginationCursorSchema}),XE=z$1.union([QE.transform(({cursor:e,...r})=>({cursor:e,params:Rd(r)})),JE.transform(({cursor:e})=>({cursor:e,params:void 0}))]),eS=gd.extend({cursor:PaginationCursorSchema.optional()}),rS=z$1.object({cursor:PaginationCursorSchema}),dL=ir;function cL(e,r){let{cursor:t,params:n}=l(r,XE);return I(o=>{let s=o===void 0?pS(n):uS(o);return e.perps.get("/v1/info/funding",{params:S({endTimestamp:s.endTimestamp,instrumentId:s.instrumentId,startTimestamp:s.startTimestamp},x())}).andThen(y(FetchPerpsFundingHistoryResponseSchema)).map(a=>{let m=a.data.at(-1),P=a.more&&m!==void 0&&m.timestamp>s.startTimestamp;return {items:a.data,hasMore:P,nextCursor:P?me({...s,endTimestamp:m.timestamp-1}):void 0}})},t)}var tS=z$1.union([eS.transform(({cursor:e,...r})=>({cursor:e,params:Rd(r)})),rS.transform(({cursor:e})=>({cursor:e,params:void 0}))]),uL=ir;function lL(e,r){let{cursor:t,params:n}=l(r,tS);return I(o=>{let s=o===void 0?dS(n):lS(o),a=new Set(s.seenTradeIds);return e.perps.get("/v1/info/trades",{params:S({endTimestamp:s.endTimestamp,instrumentId:s.instrumentId,startTimestamp:s.startTimestamp},x())}).andThen(y(FetchPerpsTradesResponseSchema)).map(m=>{let P=m.data.filter(hc=>!a.has(hc.tradeId)),h=m.data.at(-1),C=P.at(-1),A=C?.timestamp??h?.timestamp,k=m.more&&A!==void 0&&A>s.startTimestamp;return {items:P,hasMore:k,nextCursor:k?me({...s,endTimestamp:C===void 0?A-1:A,seenTradeIds:C===void 0?[]:fS(s,P,C)}):void 0}})},t)}var mL=r(i,h,d,c);async function fL(e){return (await unwrap(e.perps.get("/v1/info/fees").andThen(y(FetchPerpsFeesResponseSchema)))).feeSchedule}var nS=z$1.object({kind:z$1.literal("perpsCandles"),instrumentId:PerpsInstrumentIdSchema,interval:PerpsKlineIntervalSchema,startTimestamp:ve,endTimestamp:ve}),oS=z$1.object({kind:z$1.literal("perpsFundingHistory"),instrumentId:PerpsInstrumentIdSchema,startTimestamp:ve,endTimestamp:ve}),sS=z$1.object({kind:z$1.literal("perpsTrades"),instrumentId:PerpsInstrumentIdSchema,startTimestamp:ve,endTimestamp:ve,seenTradeIds:z$1.array(PerpsTradeIdSchema)});function aS(e){let r=Date.now();return {endTimestamp:e.end??r,instrumentId:e.instrumentId,interval:e.interval,startTimestamp:e.start??r-Pd}}function Rd(e){let r=Date.now();return {endTimestamp:e.end??r,instrumentId:e.instrumentId,startTimestamp:e.start??r-Pd}}function iS(e){return invariant(e!==void 0,"Expected initial Perps candles params."),{kind:"perpsCandles",...e}}function pS(e){return invariant(e!==void 0,"Expected initial Perps funding params."),{kind:"perpsFundingHistory",...e}}function dS(e){return invariant(e!==void 0,"Expected initial Perps trades params."),{kind:"perpsTrades",seenTradeIds:[],...e}}function cS(e){return oe(e,nS,"Invalid Perps pagination cursor")}function uS(e){return oe(e,oS,"Invalid Perps pagination cursor")}function lS(e){return oe(e,sS,"Invalid Perps pagination cursor")}function mS(e){switch(e){case "1s":return 1e3;case "1m":return 60*1e3;case "5m":return 300*1e3;case "15m":return 900*1e3;case "1h":return 3600*1e3;case "4h":return 14400*1e3;case "1d":return 1440*60*1e3;case "1w":return 10080*60*1e3}invariant(false,`Unsupported Perps kline interval: ${String(e)}`);}function fS(e,r,t){let n=new Set(e.endTimestamp===t.timestamp?e.seenTradeIds:[]);for(let o of r)o.timestamp===t.timestamp&&n.add(o.tradeId);return Array.from(n)}var yS=z$1.custom(e=>isPrivateKey(e),"Expected a hex-encoded 32-byte private key."),PS=z$1.object({proxy:z$1.string().transform(e=>expectEvmAddress(e)),privateKey:yS,secret:z$1.string().min(1),expiresAt:z$1.number().int().positive()}),gS=10080*60*1e3,RS=z$1.strictObject({builderAttribution:EvmAddressSchema.optional(),includeBuilderFills:z$1.boolean().optional(),expiresIn:z$1.number().int().positive().default(gS),label:z$1.string().min(1).optional()}),ES=z$1.strictObject({builderAttribution:EvmAddressSchema.optional(),includeBuilderFills:z$1.boolean().optional(),credentials:PS}),SS=z$1.union([RS,ES]),hS=z$1.object({proxy:z$1.string()}),TS=hS.transform(e=>({proxy:expectEvmAddress(e.proxy)})),Ed=z$1.bigint().positive().max(te),xS=z$1.object({amount:Ed,metadata:V.optional()}),CS=z$1.object({amount:Ed}),IS=PerpsDecimalInputSchema.refine(e=>/^\d+(?:\.\d+)?$/.test(e)&&/[1-9]/.test(e),"Expected a positive fixed-point decimal amount."),bS=z$1.string().min(1).refine(e=>new TextEncoder().encode(e).byteLength<=64,"Expected a label no longer than 64 UTF-8 bytes."),vS=z$1.object({recipient:EvmAddressSchema,amount:IS,label:bS.optional()}),yL=r(i,h,q,d,c,a),PL=r(i,h,q,d,c,a),gL=r(a),RL=r(m,i,h,q,d,c,a),EL=r(i,h,q,d,c,a),SL=r(i,h,q,d,c,a);async function hL(e,r={}){let t=l(r,SS),n="credentials"in t?await kS(e,t.credentials):await AS(e,t);return e.webSockets.perpsSession.connect(n,t.builderAttribution,Xi.bind(null,e),t.includeBuilderFills)}async function TL(e,r){let t=l(r,TS),n={type:"deleteProxy",args:{proxy:t.proxy}},o=["deleteProxy",[t.proxy]],s=sr(),a=Date.now(),m=await hd(e,{salt:s,signedOp:o,timestamp:a}),P=await unwrap(e.perps.del("/v1/account/proxy",{json:{op:n,salt:s,sig:m,ts:a}}).andThen(y(PerpsDeleteProxyResponseSchema)));if(P.status==="err")throw new h(P.error??"Perps credentials revocation was rejected.",{status:200})}async function qS(e,r){let t=l(r,xS),{contracts:n}=e.environment,o=$s(n.perpsDepositContract,n.collateralToken,t.amount,e.account.signer);return async function*(){return e.account.walletType===WalletType.EOA?N(yield _S(K(e.environment.chainId,o))):yield*await Y(e,{calls:[o],metadata:t.metadata??`Deposit ${t.amount} of ${n.collateralToken} to Perps`})}.call(null)}function xL(e,r){return qS(e,r).then(z(e.signer))}async function CL(e,r){let t=l(r,CS),n=Math.floor(Date.now()/1e3),o=sr(),s={type:"withdraw",args:{account:e.account.signer,token:e.environment.contracts.collateralToken,amount:t.amount.toString(),to:e.account.wallet}},a=await wS(e,{amount:t.amount,salt:o,timestamp:n}),m=await unwrap(e.perps.post("/v1/account/withdraw",{json:{op:s,salt:o,sig:a,ts:n}}).andThen(y(PerpsWithdrawResponseSchema)));if(m.status==="err")throw new h(m.error??"Perps withdrawal was rejected.",{status:200});if(m.withdrawalId===void 0)throw new c("Perps withdrawal response did not include a withdrawal ID.");return m.withdrawalId}async function IL(e,r){US(e);let t=l(r,vS);if(isSameEvmAddress(t.recipient,e.account.signer))throw new a("Perps collateral cannot be transferred to the authenticated account.");return ld({signTransfer({account:n,token:o,amount:s,recipient:a,salt:m,timestamp:P}){return hd(e,{salt:m,signedOp:["internalTransfer",[n,o,s,a]],timestamp:P})},async submitTransfer(n){let o={op:{type:"internalTransfer",args:{account:n.account,token:n.token,amount:n.amount,to:n.recipient}},salt:n.salt,sig:n.signature,ts:n.timestamp};return n.label!==void 0&&(o.label=n.label),(await unwrap(e.perps.post("/v1/account/internal-transfer",{json:o}).andThen(y(PerpsInternalTransferResponseSchema)))).transferId}},{account:e.account.signer,token:e.environment.contracts.collateralToken,amount:t.amount,recipient:t.recipient,label:t.label,salt:sr(),timestamp:Date.now()})}async function AS(e,r){let t=FS(),n=Td(t),o=e.account.signer,s=Date.now()+r.expiresIn,a=Date.now(),m=sr(),P={args:{expiry:s,owner:o,proxy:n},type:"createProxy"},h=await OS(e,{expiresAt:s,proxy:n,salt:m,timestamp:a}),C={op:P,salt:m,sig:h,ts:a};r.label!==void 0&&(C.label=r.label);let A=await unwrap(e.perps.post("/v1/account/proxy",{json:C}).andThen(y(PerpsCreateProxyResponseSchema))),k={expiresAt:s,privateKey:t,proxy:n,secret:A.secret};return Sd(e,k)}async function kS(e,r){return MS(r),Sd(e,r)}async function Sd(e,r){let t=await unwrap(e.perps.get("/v1/account/credentials",{headers:DS(r)}).andThen(y(PerpsCredentialsResponseSchema)));if(!isSameEvmAddress(t.address,e.account.signer))throw new c("Perps credentials belong to a different signer account.");let n=t.keys.find(o=>isSameEvmAddress(o.proxy,r.proxy));if(n===void 0)throw new c("Perps credentials were not returned by the API.");if(n.expiresAt<=Date.now())throw new c("Perps credentials are expired.");return {...r,expiresAt:n.expiresAt}}async function OS(e,r){try{return await e.signer.signTypedData(BS({chainId:e.environment.chainId,...r}))}catch(t){throw q.fromError(t,"Could not sign the Perps proxy credentials request")}}async function hd(e,r){try{return await e.signer.signTypedData(Dr({chainId:e.environment.chainId,op:r.signedOp,salt:r.salt,timestamp:r.timestamp}))}catch(t){throw q.fromError(t,"Could not sign the Perps operation request")}}async function wS(e,r){try{return await e.signer.signTypedData(LS({account:e.account.signer,chainId:e.environment.chainId,contract:e.environment.contracts.perpsDepositContract,token:e.environment.contracts.collateralToken,to:e.account.wallet,...r}))}catch(t){throw q.fromError(t,"Could not sign the Perps withdrawal request")}}function LS(e){let r={chainId:e.chainId,name:"Polymarket",verifyingContract:e.contract,version:"1"};return {domain:r,message:{account:e.account,amount:e.amount,fee:0n,salt:e.salt,token:e.token,to:e.to,ts:e.timestamp},primaryType:"Withdraw",types:{EIP712Domain:TypedData.extractEip712DomainTypes(r),Withdraw:[{name:"account",type:"address"},{name:"token",type:"address"},{name:"amount",type:"uint256"},{name:"fee",type:"uint256"},{name:"to",type:"address"},{name:"salt",type:"uint64"},{name:"ts",type:"uint64"}]}}}function BS(e){let r={chainId:e.chainId,name:"Polymarket",version:"1"};return {domain:r,message:{addr:e.proxy,exp:e.expiresAt,salt:e.salt,ts:e.timestamp},primaryType:"CreateProxy",types:{CreateProxy:[{name:"addr",type:"address"},{name:"exp",type:"uint64"},{name:"salt",type:"uint64"},{name:"ts",type:"uint64"}],EIP712Domain:TypedData.extractEip712DomainTypes(r)}}}function FS(){return expectPrivateKey(Secp256k1.randomPrivateKey(),"Generated invalid Perps proxy key.")}function Td(e){return expectEvmAddress(Address.fromPublicKey(Secp256k1.getPublicKey({privateKey:e})))}function MS(e){let r=Td(e.privateKey);if(!isSameEvmAddress(r,e.proxy))throw new a("Perps credentials private key does not match the proxy address.")}function US(e){if(e.account.signerType!=="OWNER")throw new a("Perps collateral transfers must be signed by the account owner.")}function DS(e){return {"POLYMARKET-PROXY":e.proxy,"POLYMARKET-SECRET":e.secret}}function _S(e){return {kind:"sendPerpsDepositTransaction",request:e}}var rh=z$1.object({cursor:PaginationCursorSchema.optional(),pageSize:O.max(1e3).default(100),user:EvmAddressSchema.optional(),conditionId:z$1.union([CanonicalMarketConditionIdSchema,fe(CanonicalMarketConditionIdSchema,20)]).optional(),status:PositionStatusSchema.optional(),eventId:z$1.array(EventIdSchema).min(1).optional(),filterType:PositionFilterTypeSchema.optional(),filterAmount:z$1.number().min(0).optional(),includeArchived:z$1.boolean().optional(),sortBy:PositionSortBySchema.optional(),sortDirection:SortDirectionSchema.optional(),window:lr.optional()}).refine(e=>e.user!==void 0||e.conditionId,{message:"Provide user or conditionId",path:["user"]}).refine(e=>e.user!==void 0||!Array.isArray(e.conditionId)||e.conditionId.length===1,{message:"Without user, provide exactly one conditionId",path:["conditionId"]}).refine(e=>!(e.conditionId&&e.eventId),{message:"Provide conditionId or eventId, not both",path:["eventId"]}).refine(e=>e.user!==void 0||e.eventId===void 0,{message:"eventId requires user",path:["eventId"]}).refine(e=>!(e.includeArchived&&e.status==="CLOSED"),{message:"includeArchived does not apply to CLOSED positions",path:["includeArchived"]}).refine(e=>e.status!==PositionStatus.RedeemableLost||e.user!==void 0,{message:"REDEEMABLE_LOST requires user",path:["user"]}),DL=r(i,h,d,c,a);function _L(e,r){let{cursor:t,pageSize:n,window:o,...s}=l(r,rh);return I(a=>_(()=>e.data.get("/v2/positions",{params:D({...s,...o,limit:n,cursor:a})})).andThen(y(ListPositionsResponseSchema)),t)}var th=z$1.union([ComboPositionStatusSchema,z$1.tuple([ComboPositionStatusSchema],ComboPositionStatusSchema).refine(e=>e.length===1||!e.includes(ComboPositionStatus.Redeemable),{message:"REDEEMABLE must be the sole status value"})]),nh=z$1.object({cursor:PaginationCursorSchema.optional(),pageSize:O.max(1e3).default(100),user:EvmAddressSchema,conditionId:z$1.union([ComboConditionIdSchema,fe(ComboConditionIdSchema,20)]).optional(),status:th.optional(),sortBy:ComboPositionSortBySchema.optional(),sortDirection:SortDirectionSchema.optional(),updatedAfter:Ye.optional(),updatedBefore:Ye.optional()}),oh=nh.refine(e=>e.updatedBefore===void 0||e.updatedAfter===void 0||e.updatedBefore>=e.updatedAfter,{message:"updatedBefore must not precede updatedAfter",path:["updatedBefore"]}),zL=r(i,h,d,c,a);function jL(e,r){let{cursor:t,pageSize:n,...o}=l(r,oh);return I(s=>_(()=>e.data.get("/v2/positions/combos",{params:D({...o,limit:n,cursor:s})})).andThen(y(ListComboPositionsResponseSchema)),t)}var sh=z$1.object({user:EvmAddressSchema,conditionIds:fe(CanonicalMarketConditionIdSchema,20).optional()}),WL=r(i,h,d,c,a);async function HL(e,r){let{conditionIds:t,...n}=l(r,sh);return unwrap(_(()=>e.data.get("/v2/value",{params:D({...n,condition:t})})).andThen(y(FetchPortfolioValueResponseSchema)))}var ah=z$1.object({user:EvmAddressSchema}),NL=r(i,h,d,c,a);async function KL(e,r){let t=l(r,ah);return unwrap(_(()=>e.data.get("/v2/user-stats",{params:D(t)})).andThen(y(FetchUserStatsResponseSchema)))}var ih=z$1.object({user:EvmAddressSchema,interval:UserPnlIntervalSchema.optional(),fidelity:UserPnlFidelitySchema.optional()}),GL=r(i,h,d,c,a);async function $L(e,r){let t=l(r,ih);return unwrap(_(()=>e.data.get("/v2/user-pnl",{params:D(t)})).andThen(y(FetchUserPnlResponseSchema)))}var ph=z$1.object({user:EvmAddressSchema,window:lr.optional()}),VL=r(i,h,d,c,a);async function YL(e,r){let{window:t,...n}=l(r,ph);return unwrap(_(()=>e.data.get("/v2/user-volume",{params:D({...n,...t})})).andThen(y(FetchUserVolumeResponseSchema)))}var dh=z$1.object({user:z$1.string()}),ZL=r(i,h,d,c,a);async function QL(e,r){let t=l(r,dh);return unwrap(e.data.get("/v1/accounting/snapshot",{params:xs(t)}).andThen(ps))}function bd(e,r){if(!isPresent(e.conditionId))throw new c(`Missing condition ID for ${r}`);if(!isPresent(e.version))throw new c(`Missing market version for ${r}`);let t=e.outcomes.yes.tokenId,n=e.outcomes.no.tokenId,o=e.outcomes.yes.positionId,s=e.outcomes.no.positionId;if(e.version===ProtocolVersion.V2){if(isPresent(o)!==isPresent(s))throw new c(`Incomplete market position IDs for ${r}`);if(!isPresent(o)||!isPresent(s))throw new c(`Missing market position IDs for ${r}`);return {marketId:e.id,conditionId:e.conditionId,protocol:"v2",outcomeIds:[o,s]}}if(isPresent(t)!==isPresent(n))throw new c(`Incomplete market token IDs for ${r}`);if(isPresent(t)&&isPresent(n)){if(!isPresent(e.state.negRisk))throw new c(`Missing negative-risk flag for ${r}`);return {marketId:e.id,conditionId:e.conditionId,protocol:"ctf",negRisk:e.state.negRisk,outcomeIds:[t,n]}}throw new c(`Missing market token IDs for ${r}`)}var vd=r(i,h,d,c,a),qd=z$1.object({amount:z$1.bigint().min(0n),conditionId:ConditionIdSchema,metadata:V.optional()}),IB=vd;async function Ad(e,r){let t=l(r,qd),n=await _o(e,{conditionId:t.conditionId}),o=n.protocol==="ctf"?Vs(n.adapterAddress,e.environment.contracts.collateralToken,n.conditionId,t.amount):dn(e.environment.contracts.protocolV2Router,n.conditionId,t.amount);return async function*(){return e.account.walletType===WalletType.EOA?N(yield Bo(K(e.environment.chainId,o))):yield*await Y(e,{calls:[o],metadata:t.metadata??`Split ${t.amount} positions for market ${n.marketId} (condition ${n.conditionId})`})}.call(null)}var kd=z$1.object({amount:z$1.bigint().positive(),legs:z$1.array(PositionIdSchema).min(1).max(50),metadata:V.optional()}),bB=vd;async function Od(e,r){let t=l(r,kd),n=Bn(t.legs),o=un(e.environment.contracts.combinatorialModule,n),s=Ln(n),a=dn(e.environment.contracts.protocolV2Router,s.conditionId,t.amount);return async function*(){return e.account.walletType===WalletType.EOA?(await N(yield Bo(K(e.environment.chainId,o))).wait(),N(yield Bo(K(e.environment.chainId,a)))):yield*await Y(e,{calls:[o,a],metadata:t.metadata??`Split ${t.amount} combo positions for condition ${s.conditionId}`})}.call(null)}var lh=z$1.union([qd.extend({legs:z$1.never().optional()}),kd.extend({conditionId:z$1.never().optional()})]);async function mh(e,r){let t=l(r,lh);return t.legs!==void 0?Od(e,t):Ad(e,t)}var wd=r(m,i,h,q,j,l$1,d,c,a),vB=wd;function qB(e,r){return Ad(e,r).then(z(e.signer))}var AB=wd;function kB(e,r){return Od(e,r).then(z(e.signer))}function OB(e,r){return mh(e,r).then(z(e.signer))}var Ld=r(i,h,d,c,a),Bd=z$1.object({amount:z$1.union([z$1.bigint().positive(),z$1.literal("max")]),conditionId:ConditionIdSchema,metadata:V.optional()}),wB=Ld;async function Fd(e,r){let t=l(r,Bd),n=await _o(e,{conditionId:t.conditionId}),o=ot(await e.rpc.ethCall(nt(n.positionErc1155Address,e.account.wallet,n.outcomeIds))),s=Nd(n.conditionId,o,t.amount),a=n.protocol==="ctf"?Ys(n.adapterAddress,e.environment.contracts.collateralToken,n.conditionId,s):cn(e.environment.contracts.protocolV2Router,n.conditionId,s);return async function*(){return e.account.walletType===WalletType.EOA?N(yield Fo(K(e.environment.chainId,a))):yield*await Y(e,{calls:[a],metadata:t.metadata??`Merge ${s} positions for market ${n.marketId} (condition ${n.conditionId})`})}.call(null)}var Md=z$1.object({amount:z$1.union([z$1.bigint().positive(),z$1.literal("max")]),legs:z$1.array(PositionIdSchema).min(1).max(50),metadata:V.optional()}),LB=Ld;async function Ud(e,r){let t=l(r,Md),n=Bn(t.legs),o=un(e.environment.contracts.combinatorialModule,n),s=Ln(n),a=ot(await e.rpc.ethCall(nt(e.environment.contracts.positionManager,e.account.wallet,s.positionIds))),m=Nd(s.conditionId,a,t.amount),P=cn(e.environment.contracts.protocolV2Router,s.conditionId,m);return async function*(){return e.account.walletType===WalletType.EOA?(await N(yield Fo(K(e.environment.chainId,o))).wait(),N(yield Fo(K(e.environment.chainId,P)))):yield*await Y(e,{calls:[o,P],metadata:t.metadata??`Merge ${m} combo positions for condition ${s.conditionId}`})}.call(null)}var fh=z$1.union([Bd.extend({legs:z$1.never().optional()}),Md.extend({conditionId:z$1.never().optional()})]);async function yh(e,r){let t=l(r,fh);return t.legs!==void 0?Ud(e,t):Fd(e,t)}var Dd=r(m,i,h,q,j,l$1,d,c,a),BB=Dd;function FB(e,r){return Fd(e,r).then(z(e.signer))}var MB=Dd;function UB(e,r){return Ud(e,r).then(z(e.signer))}function DB(e,r){return yh(e,r).then(z(e.signer))}var _d=r(i,h,d,c,a),zd=z$1.object({conditionId:ConditionIdSchema,marketId:z$1.never().optional(),amount:z$1.never().optional(),positionId:z$1.never().optional(),metadata:V.optional()}),jd=z$1.object({conditionId:z$1.never().optional(),marketId:MarketIdSchema,amount:z$1.never().optional(),positionId:z$1.never().optional(),metadata:V.optional()}),Ph=z$1.union([zd,jd]),_B=_d;async function gh(e,r){let t=l(r,Ph),n=await _o(e,t.conditionId!==void 0?{conditionId:t.conditionId,closed:true}:{marketId:t.marketId,closed:true}),o=await Th(e,n);return async function*(){return e.account.walletType===WalletType.EOA?yield*Sh(e,o):yield*await Y(e,{calls:o,metadata:t.metadata??`Redeem positions for market ${n.marketId} (condition ${n.conditionId})`})}.call(null)}var Wd=z$1.object({positionId:PositionIdSchema,conditionId:z$1.never().optional(),marketId:z$1.never().optional(),metadata:V.optional()});async function Hd(e,r){let t=l(r,Wd),n=ni(t.positionId),o=Ns(await e.rpc.ethCall(Hs(e.environment.contracts.positionManager,e.account.wallet,t.positionId)));if(o===0n)throw new a("Position has no balance to redeem");let s=st(e.environment.contracts.protocolV2Router,n.conditionId,n.outcomeIndex,o);return async function*(){return e.account.walletType===WalletType.EOA?N(yield Mo(K(e.environment.chainId,s))):yield*await Y(e,{calls:[s],metadata:t.metadata??`Redeem position ${t.positionId}`})}.call(null)}var zB=_d;function jB(e,r){return Hd(e,r)}var Rh=z$1.union([zd,jd,Wd]);async function Eh(e,r){let t=l(r,Rh);return t.positionId!==void 0?Hd(e,t):gh(e,t)}var WB=r(m,i,h,q,j,l$1,d,c,a);function HB(e,r){return Eh(e,r).then(z(e.signer))}function Bo(e){return {kind:"sendSplitPositionTransaction",request:e}}function Fo(e){return {kind:"sendMergePositionsTransaction",request:e}}function Mo(e){return {kind:"sendRedeemPositionsTransaction",request:e}}async function*Sh(e,r){let[t,...n]=r;invariant(t!==void 0,"Expected at least one redemption call");let o=t;for(let s of n)await N(yield Mo(K(e.environment.chainId,o))).wait(),o=s;return N(yield Mo(K(e.environment.chainId,o)))}async function _o(e,r){let t=r.conditionId!==void 0?`condition ${r.conditionId}`:`market ${r.marketId}`,n=await za(e,r.conditionId!==void 0?{conditionIds:[r.conditionId],closed:r.closed,pageSize:1}:{ids:[hh(r.marketId)],closed:r.closed,pageSize:1}).firstPage(),[o]=n.items;if(o===void 0)throw new a(`No market found for ${t}`);let s=bd(o,t);return s.protocol==="v2"?{...s,positionErc1155Address:e.environment.contracts.positionManager}:{...s,adapterAddress:s.negRisk?e.environment.contracts.negRiskCollateralAdapter:e.environment.contracts.collateralAdapter,positionErc1155Address:s.negRisk?e.environment.contracts.negRiskAdapter:e.environment.contracts.conditionalTokens}}function hh(e){let r=Number(e);if(!Number.isInteger(r))throw new a(`Market ID must be an integer, received ${e}`);return r}async function Th(e,r){if(r.protocol==="ctf")return [Zs(r.adapterAddress,e.environment.contracts.collateralToken,r.conditionId)];let t=ot(await e.rpc.ethCall(nt(r.positionErc1155Address,e.account.wallet,r.outcomeIds)));if(t.length!==2)throw new c("Expected two position balances");let[n,o]=t;invariant(n!==void 0,"Expected YES position balance"),invariant(o!==void 0,"Expected NO position balance");let s=[];if(n>0n&&s.push(st(e.environment.contracts.protocolV2Router,r.conditionId,0,n)),o>0n&&s.push(st(e.environment.contracts.protocolV2Router,r.conditionId,1,o)),s.length===0)throw new a(`Market positions have no balance to redeem for condition ${r.conditionId}`);return s}function Nd(e,r,t){let n=xh(r);if(n===0n)throw new a(`You have no complementary positions to merge for condition ${e}`);if(t==="max")return n;if(t>n)throw new a(`Requested merge amount ${t} exceeds the maximum mergeable amount ${n} for condition ${e}`);return t}function xh(e){if(e.length!==2)throw new c("Expected two position balances");let[r,t]=e;return invariant(r!==void 0,"Expected YES position balance"),invariant(t!==void 0,"Expected NO position balance"),r<t?r:t}var qh=z$1.object({address:z$1.string()}),JB=r(i,h,d,c,a);async function XB(e,r){let t=l(r,qh);return unwrap(e.gamma.get("/public-profile",{params:S(t,x())}).andThen(y(PublicProfileSchema)).orElse(n=>n instanceof h&&n.status===404?ok(null):err(n)))}var Wo=class extends PolymarketError{name="RfqQuoteRejectedError";code;errorId;rfqId;constructor(r,t){super(r,t),this.code=t.code,this.errorId=t.errorId,this.rfqId=t.rfqId;}},cF=r(f,Wo,q,j,d,a),Ho=class extends PolymarketError{name="RfqCancelQuoteRejectedError";code;errorId;rfqId;quoteId;constructor(r,t){super(r,t),this.code=t.code,this.errorId=t.errorId,this.rfqId=t.rfqId,this.quoteId=t.quoteId;}},uF=r(f,Ho,j,d),No=class extends PolymarketError{name="RfqConfirmationRejectedError";code;errorId;rfqId;quoteId;constructor(r,t){super(r,t),this.code=t.code,this.errorId=t.errorId,this.rfqId=t.rfqId,this.quoteId=t.quoteId;}},lF=r(f,No,j,d),mF=r(f,d,a);async function fF(e){return Kr(e),e.webSockets.rfqQuoter.connect()}var Go="/v1/builder/rfq/requests",Bh=3e4,Fh=3e4,Mh=3e4,Uh=500,Dh=3e4,_h=1e3,zh="0x0000000000000000000000000000000000000000000000000000000000000000",Ne=class extends PolymarketError{name="RfqRequestRejectedError";status;code;constructor(r,t){super(r,t),this.status=t.status,this.code=t.code;}};function $o(e){return e instanceof h?new Ne(e.message,{cause:e,code:rc(e.code),status:e.status}):e}var jh=new Set(Object.values(RfqRejectionCode));function rc(e){return e!==void 0&&jh.has(e)?e:RfqRejectionCode.RequestFailed}function tc(e){if(!e.hasBuilderApiKey)throw new a("Combo RFQ requests require a Builder API Key in the client configuration, via builderApiKey(...) or remoteBuilderSigning(...).")}var Yd=z$1.array(z$1.string().regex(/^\d+$/,"Leg position IDs must be numeric strings.").transform(e=>toPositionId(BigInt(e).toString()))).min(2,"Combo requests require at least 2 legs.").max(50,"Combo requests allow at most 50 legs.").refine(e=>new Set(e).size===e.length,"Leg position IDs must not contain duplicates.").transform(e=>[...e].sort((r,t)=>{let n=BigInt(r),o=BigInt(t);return n<o?-1:n>o?1:0})),Yt=z$1.union([z$1.number(),z$1.string()]).transform((e,r)=>{let t=/^(\d+)(?:\.(\d*))?$/.exec(String(e));if(t===null)return r.addIssue({code:"custom",message:"Value must be a valid decimal."}),z$1.NEVER;let[,n="",o=""]=t;if(o.length>6)return r.addIssue({code:"custom",message:"Value must have at most 6 decimal places."}),z$1.NEVER;let s=Wh(n,o);return s<=0n?(r.addIssue({code:"custom",message:"Value must be greater than 0."}),z$1.NEVER):s.toString()});function Wh(e,r){return BigInt(e)*1000000n+BigInt(r.padEnd(6,"0"))}var Hh=z$1.discriminatedUnion("direction",[z$1.object({amount:Yt,direction:z$1.literal(OrderSide.BUY),legPositionIds:Yd,side:z$1.literal(RfqSide.Yes).optional()}),z$1.object({direction:z$1.literal(OrderSide.SELL),legPositionIds:Yd,side:z$1.literal(RfqSide.Yes).optional(),size:Yt})]),yF=r(i,Ne,d,c,a);async function PF(e,r){Kr(e);let t=l(r,Hh);tc(e);let n=vr(e.account),o={direction:t.direction===OrderSide.BUY?RfqDirection.Buy:RfqDirection.Sell,leg_position_ids:t.legPositionIds,maker_address:n.maker,requested_size:t.direction===OrderSide.BUY?{unit:RfqRequestedSizeUnit.Notional,value_e6:t.amount}:{unit:RfqRequestedSizeUnit.Shares,value_e6:t.size},side:RfqSide.Yes,signature_type:n.signatureType,signer_address:n.signer},s=await unwrap(e.builderGateway.post(Go,{json:o,timeout:Bh}).andThen(y(BuilderRfqCreateResponseSchema)).mapErr($o));if("quote"in s){Nh(s,o);let a=s.request.direction===RfqDirection.Buy?OrderSide.BUY:OrderSide.SELL,m={blendedPrice:s.quote.blendedPrice,builderCode:s.builderCode,expiresAt:s.expiresAt,makerAmount:s.quote.makerAmount,positionId:s.request.yesPositionId,quoteId:s.quote.quoteId,rfqId:s.rfqId,takerAmount:s.quote.takerAmount,totalRequired:s.quote.totalRequired};if(a===OrderSide.SELL){if(s.quote.netReceive===void 0)throw new c(`SELL quote for RFQ ${s.rfqId} omitted net sell proceeds.`);return {quote:{...m,direction:a,netReceive:s.quote.netReceive},rfqId:s.rfqId}}return {quote:{...m,direction:a},rfqId:s.rfqId}}return Kh(s)}function Nh(e,r){let t=e.request,n=[];if(t.rfqId!==e.rfqId&&n.push("rfq_id"),t.direction!==r.direction&&n.push("direction"),t.side!==r.side&&n.push("side"),(t.legPositionIds.length!==r.leg_position_ids.length||t.legPositionIds.some((o,s)=>o!==r.leg_position_ids[s]))&&n.push("leg_position_ids"),(t.requestedSize.unit!==r.requested_size.unit||t.requestedSize.valueE6!==r.requested_size.value_e6)&&n.push("requested_size"),n.length>0)throw new c(`Builder RFQ response did not echo the submitted ${n.join(", ")}.`)}function Kh(e){switch(e.error?.code){case RfqKnownErrorCode.NoQuotes:return {quote:null,reason:ComboQuoteUnavailableReason.NoQuotes,rfqId:e.rfqId};case RfqKnownErrorCode.SizeTooLarge:return {quote:null,reason:ComboQuoteUnavailableReason.SizeTooLarge,rfqId:e.rfqId};default:throw new Ne(e.error?.message??"The combo quote request failed.",{code:rc(e.error?.code),status:200,...e.error===void 0?{}:{cause:e.error}})}}var Gh=OrderSideSchema,$h=z$1.object({blendedPrice:z$1.string(),builderCode:z$1.string().regex(/^0x[0-9a-fA-F]{64}$/,"builderCode must be a 32-byte hex string.").transform(toBuilderCode),direction:Gh,expiresAt:z$1.number().int().nonnegative(),makerAmount:Yt.transform(toBaseUnits),netReceive:z$1.string().optional(),positionId:z$1.string().regex(/^\d+$/,"positionId must be a numeric string.").transform(toPositionId),quoteId:z$1.string().min(1).transform(toRfqQuoteId),rfqId:z$1.string().min(1).transform(toRfqId),takerAmount:Yt.transform(toBaseUnits),totalRequired:z$1.string()}),gF=r(m,i,Ne,q,j,d,c,a);async function RF(e,r){Kr(e);let t=l(r,$h);tc(e);let n=Bi({chainId:e.environment.chainId,exchange:e.environment.contracts.exchangeV3}),o=Zh(e,t),s=await Jh(e,n,o),a={quote_id:t.quoteId,signed_order:s};function m(){return e.builderGateway.post(`${Go}/${encodeURIComponent(t.rfqId)}/accept`,{json:a,timeout:Fh}).andThen(y(BuilderRfqStatusResponseSchema))}let P=await m();if(P.isErr()&&(P.error instanceof d||P.error instanceof c)&&(P=await m()),P.isErr()){let k=Vh(t.rfqId,P.error);if(k!==void 0)return k;throw $o(P.error)}let h=P.value,C=P.value.takerOrderHash,A=Date.now()+Mh;for(;h.status===RfqStatus.AwaitingMakerConfirmation;){if(Date.now()>=A)throw new j(`Timed out waiting for the acceptance outcome of RFQ ${t.rfqId}.`);await delay(Uh),h=await nc(e,{rfqId:t.rfqId});}return h.status===RfqStatus.Failed||h.status===RfqStatus.Expired||h.status===RfqStatus.Canceled?{reason:Yh(h.status,h.error?.code),rfqId:h.rfqId,status:"failed",...h.error===void 0?{}:{error:h.error}}:{rfqId:h.rfqId,status:"executing",...C===void 0?{}:{takerOrderHash:C}}}function Vh(e,r){if(r instanceof h&&r.code===RfqKnownErrorCode.ExpiredRfq)return {error:{code:RfqKnownErrorCode.ExpiredRfq,message:r.message},reason:ComboAcceptFailureReason.AcceptanceWindowExpired,rfqId:e,status:"failed"}}function Yh(e,r){return e===RfqStatus.Expired||r===RfqKnownErrorCode.ExpiredRfq?ComboAcceptFailureReason.AcceptanceWindowExpired:r===RfqKnownErrorCode.MakerDeclined?ComboAcceptFailureReason.MakerDeclined:ComboAcceptFailureReason.ExecutionFailed}function Zh(e,r){let t=vr(e.account);return {builder:r.builderCode,maker:t.maker,makerAmount:r.makerAmount,metadata:zh,salt:Qh().toString(),side:Qn(r.direction),signatureType:t.signatureType,signer:t.signer,takerAmount:r.takerAmount,timestamp:Math.floor(Date.now()/1e3).toString(),tokenId:r.positionId}}function Qh(){let e=new Uint8Array(8);return globalThis.crypto.getRandomValues(e),BigInt(`0x${Array.from(e,r=>r.toString(16).padStart(2,"0")).join("")}`)}async function Jh(e,r,t){let n;try{n=await e.signer.signTypedData(vt({domain:r,order:t}));}catch(o){throw o instanceof m?o:q.fromError(o,"Could not sign the combo quote acceptance order.")}return {...t,signature:qt({domain:r,order:t,signature:n})}}var Xh=z$1.object({pollingIntervalMs:z$1.number().int().positive().optional(),rfqId:z$1.string().min(1).transform(toRfqId),timeoutMs:z$1.number().int().positive().optional()}),EF=r(i,Ne,j,d,c,a);async function SF(e,r){Kr(e);let t=l(r,Xh),n=t.timeoutMs??Dh,o=t.pollingIntervalMs??_h,s=Date.now()+n;for(;;){let a=await nc(e,{rfqId:t.rfqId});if(a.status===RfqStatus.Filled||a.status===RfqExecutionStatus.Confirmed){if(a.txHash===void 0)throw new c(`RFQ ${a.rfqId} reached ${a.status} without a transaction hash.`);return {rfqId:a.rfqId,status:RfqStatus.Filled,txHash:a.txHash}}if(a.status===RfqStatus.Failed||a.status===RfqStatus.Expired||a.status===RfqStatus.Canceled)return {rfqId:a.rfqId,status:a.status,...a.error===void 0?{}:{error:a.error}};if(Date.now()>=s)throw new j(`Timed out after ${n}ms waiting for RFQ ${t.rfqId} to reach a terminal state.`);await delay(o);}}var eT=z$1.object({rfqId:z$1.string().min(1).transform(toRfqId)}),hF=r(i,Ne,d,c,a);function nc(e,r){Kr(e);let t=l(r,eT);return unwrap(e.builderGateway.get(`${Go}/${encodeURIComponent(t.rfqId)}`).andThen(y(BuilderRfqStatusResponseSchema)).mapErr($o))}function Kr(e){if(e.account.signerType==="SESSION_KEY")throw new a("Combos is not supported with Session Keys")}var sc=(m=>(m.Volume="volume",m.Volume24Hr="volume_24hr",m.Liquidity="liquidity",m.Competitive="competitive",m.ClosedTime="closed_time",m.StartDate="start_date",m.EndDate="end_date",m))(sc||{}),oc=100,nT=z$1.object({q:z$1.string().trim().min(1),ascending:z$1.boolean().optional(),cache:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),eventsStatus:z$1.string().min(1).optional(),eventsTag:z$1.array(z$1.string()).optional(),excludeTagIds:z$1.array(z$1.number().int()).optional(),keepClosedMarkets:z$1.number().int().optional(),optimized:z$1.boolean().optional(),pageSize:O.default(10),presets:z$1.array(z$1.string()).optional(),recurrence:z$1.enum(["daily","weekly","monthly"]).optional(),searchProfiles:z$1.boolean().optional(),searchTags:z$1.boolean().optional(),sort:z$1.enum(sc).optional()}),WF=r(b,i,h,d,c,a);function HF(e,r){let{cursor:t,pageSize:n,...o}=l(r,nT);return I(s=>{let a=pe(s,n,{maxOffset:oc});return e.gamma.get("/public-search",{params:S({...o,limitPerType:a.pageSize,page:a.offset},x({excludeTagIds:"exclude_tag_id"}))}).andThen(y(PublicSearchResponseSchema)).map(m=>({items:oT(m),hasMore:m.pagination?.hasMore??false,limitReached:(m.pagination?.hasMore??false)&&a.offset+1>oc,totalCount:m.pagination?.totalResults??void 0,nextCursor:m.pagination?.hasMore?X({offset:a.offset+1,pageSize:a.pageSize}):void 0}))},t??X({offset:1,pageSize:n}),{events:[],profiles:[],tags:[]})}function oT(e){return {events:e.events??[],profiles:e.profiles??[],tags:e.tags??[]}}var dT=z$1.object({ascending:z$1.boolean().optional(),closed:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),excludeEvents:z$1.boolean().optional(),locale:z$1.string().optional(),order:z$1.string().optional(),pageSize:O.max(50).default(20),recurrence:z$1.enum(["daily","weekly","monthly"]).optional(),slug:z$1.array(z$1.string()).optional()}),cT=z$1.object({id:z$1.string(),locale:z$1.string().optional()}),eM=r(i,h,d,c,a);function rM(e,r={}){let{cursor:t,pageSize:n,...o}=l(r,dT);return I(s=>{let a=pe(s,n);return e.gamma.get("/series",{params:S({...o,limit:a.pageSize,offset:a.offset},x())}).andThen(y(ListSeriesResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?X({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var tM=r(i,h,d,c,a);async function nM(e,r){let t=l(r,cT);return unwrap(e.gamma.get(`series/${t.id}`,{params:S({locale:t.locale},x())}).andThen(y(SeriesSchema)))}function Yo(e){if(e.kind==="authorization"?e.status===RelayerAuthorizeSessionSignerStatus.FAILED||e.status===RelayerAuthorizeSessionSignerStatus.SUPERSEDED||e.status===RelayerAuthorizeSessionSignerStatus.REPAIR_REQUIRED:e.status===RelayerRevokeSessionSignerStatus.FAILED)throw new l$1(`Session-key ${e.kind} reached terminal status ${e.status}`)}var hM=r(i,h,q,d,c,a);async function dc(e){Xo(e);let r=await unwrap(e.secureClob.get("/v1/user/session-signers").andThen(y(ActiveSessionSignersResponseSchema)));if(!isSameEvmAddress(r.wallet,e.account.wallet))throw new c(`Session-key response wallet ${r.wallet} does not match authenticated wallet ${e.account.wallet}`);return r.signers.map(t=>({address:expectEvmAddress(t.address.toLowerCase()),scopes:t.scopes,validUntil:t.validUntil}))}var gT=[SessionSignerKnownScope.ALL],RT=4315*60*60,cc=300*1e3,ET=z$1.object({address:EvmAddressSchema,idempotencyKey:z$1.string().trim().min(1).optional(),scopes:z$1.array(SessionSignerScopeSchema).min(1).default(gT)}).superRefine((e,r)=>{isSameEvmAddress(e.address,ZERO_ADDRESS)&&r.addIssue({code:"custom",message:"Session key address must not be the zero address.",path:["address"]}),e.scopes.includes(SessionSignerKnownScope.ALL)&&e.scopes.some(t=>t!==SessionSignerKnownScope.ALL)&&r.addIssue({code:"custom",message:"Session key scope ALL cannot be combined with another scope.",path:["scopes"]});}).transform(e=>({...e,address:expectEvmAddress(e.address.toLowerCase())})),TM=r(m,i,h,q,j,l$1,d,c,a);async function xM(e,r){if(Xo(e),!e.hasBuilderApiKey)throw new a("Session-key authorization requires builder API-key authentication.");let t=l(r,ET),n=Math.floor(Date.now()/1e3)+RT,o=await z(e.signer)(fr(e,[Ks(e.account.wallet,t.address,BigInt(n))])),s={deadline:o.depositWalletParams.deadline,nonce:o.nonce,scopes:t.scopes,sessionSignerAddress:t.address,signature:o.signature,validUntil:`${n}`,walletAddress:e.account.wallet},a$1=await unwrap(e.relayer.post("/v1/session-signers/authorizations",{headers:{"Idempotency-Key":t.idempotencyKey??globalThis.crypto.randomUUID()},json:s,timeout:cc}).andThen(y(RelayerAuthorizeSessionSignerResponseSchema)));Yo({kind:"authorization",status:a$1.status});let m=await new Ze(e,a$1).wait();return {sessionKey:await TT(e,{address:t.address,scopes:t.scopes,validUntil:n}),transaction:m}}var ST=z$1.object({address:EvmAddressSchema,idempotencyKey:z$1.string().trim().min(1).optional()}).superRefine((e,r)=>{isSameEvmAddress(e.address,ZERO_ADDRESS)&&r.addIssue({code:"custom",message:"Session key address must not be the zero address.",path:["address"]});}).transform(e=>({...e,address:expectEvmAddress(e.address.toLowerCase())})),CM=r(m,i,h,q,j,l$1,d,c,a);async function IM(e,r){if(Xo(e),!e.supportsGasless)throw new a("Session-key revocation requires API-key authentication that supports gasless transactions.");let t=l(r,ST),n=await z(e.signer)(fr(e,[Gs(e.account.wallet,t.address)])),o={deadline:n.depositWalletParams.deadline,nonce:n.nonce,sessionSignerAddress:t.address,signature:n.signature,walletAddress:e.account.wallet},s=await unwrap(e.relayer.post("/v1/session-signers/revocations",{headers:{"Idempotency-Key":t.idempotencyKey??globalThis.crypto.randomUUID()},json:o,timeout:cc}).andThen(y(RelayerRevokeSessionSignerResponseSchema)));Yo({kind:"revocation",status:s.status}),await hT(e,t.address);}async function hT(e,r){for(let t=0;t<e.environment.relayerMaxPolls;t+=1){if(!(await dc(e)).some(o=>isSameEvmAddress(o.address,r)))return;await delay(e.environment.relayerPollFrequencyMs);}throw new j(`Timed out waiting for session key ${r} to be revoked`)}async function TT(e,r){for(let t=0;t<e.environment.relayerMaxPolls;t+=1){let n=(await dc(e)).find(o=>isSameEvmAddress(o.address,r.address)&&o.validUntil===r.validUntil&&xT(o.scopes,r.scopes));if(n!==void 0)return n;await delay(e.environment.relayerPollFrequencyMs);}throw new j(`Timed out waiting for session key ${r.address} to become active`)}function xT(e,r){let t=new Set(r);return new Set(e).size===t.size&&e.every(n=>t.has(n))}function Xo(e){if(e.account.walletType!==WalletType.DEPOSIT_WALLET)throw new a("Session keys can only be managed for a Deposit Wallet.");if(e.account.signerType!=="OWNER")throw new a("Session keys can only be managed by the Deposit Wallet owner.")}var OM=r(i,h,d,c);async function wM(e){return unwrap(e.gamma.get("/sports").andThen(y(ListSportsMetadataResponseSchema)))}var LM=r(i,h,d,c);async function BM(e){return unwrap(e.gamma.get("/sports/market-types").andThen(y(SportsMarketTypesResponseSchema)))}var bT=z$1.string().trim().min(1).max(64).regex(/^[a-zA-Z0-9._:/-]+$/),lc=z$1.string().max(64).regex(/^[a-z0-9]+usd$/,{error:"Use a canonical lowercase USD pair such as btcusd. Slash-separated symbols and USDT pairs are not supported."}),mc=(t=>(t.Update="update",t.Subscribe="subscribe",t))(mc||{}),vT=z$1.discriminatedUnion("topic",[z$1.strictObject({topic:z$1.literal("prices.crypto"),symbols:z$1.array(lc).min(1)}),z$1.strictObject({topic:z$1.literal("prices.crypto.twap"),symbols:z$1.array(lc).min(1)}),z$1.strictObject({topic:z$1.literal("prices.equity"),symbol:bT,types:z$1.array(z$1.enum(mc)).optional()})]);function fc(e){return l(e,vT)}var KM=r(d,a,h,f),yc=(G=>(G.Market="market",G.User="user",G.Sports="sports",G.Crypto="prices.crypto",G.Twap="prices.crypto.twap",G.Equity="prices.equity",G.Comments="comments",G.LegacyBinance="prices.crypto.binance",G.LegacyChainlink="prices.crypto.chainlink",G.LegacyTwap="prices.crypto.chainlink.twap",G.LegacyEquity="prices.equity.pyth",G.PerpsTrades="perps.trades",G.PerpsBbo="perps.bbo",G.PerpsBook="perps.book",G.PerpsCandles="perps.candles",G.PerpsTickers="perps.tickers",G.PerpsStatistics="perps.statistics",G))(yc||{}),kT=z$1.object({topic:z$1.enum(yc)}),OT=z$1.object({topic:z$1.literal("prices.crypto.chainlink.twap"),windowSeconds:z$1.union([z$1.literal(30),z$1.literal(60)]),symbols:z$1.array(z$1.string()).optional()}),wT=z$1.union([z$1.object({topic:z$1.literal("market"),assetIds:z$1.array(z$1.string()),tokenIds:z$1.never().optional(),customFeatureEnabled:z$1.boolean().optional()}),z$1.object({topic:z$1.literal("market"),assetIds:z$1.never().optional(),tokenIds:z$1.array(z$1.string()),customFeatureEnabled:z$1.boolean().optional()})]);async function GM(e,r){let t=r.map(a$1=>{switch(l(a$1,kT),a$1.topic){case "prices.crypto":case "prices.crypto.twap":case "prices.equity":if(!e.isSecureClient())throw new a("This subscription requires a secure client.");return fc(a$1);case "prices.crypto.chainlink.twap":l(a$1,OT);break;case "market":l(a$1,wT);break}return a$1}),n=await Promise.allSettled(t.map(async a=>LT(e,a))),o=n.flatMap(a=>a.status==="fulfilled"?[a.value]:[]),s=n.find(a=>a.status==="rejected");if(s?.status==="rejected")throw await Promise.allSettled(o.map(a=>a.close())),s.reason;return BT(o)}function LT(e,r){switch(r.topic){case "market":return e.webSockets.clobMarket.subscribe(r);case "sports":return e.webSockets.sports.subscribe(r);case "prices.crypto":case "prices.crypto.twap":case "prices.equity":if(!e.isSecureClient())throw new a("This subscription requires a secure client.");return e.webSockets.realtime.subscribe(r);case "comments":case "prices.crypto.binance":case "prices.crypto.chainlink":case "prices.crypto.chainlink.twap":case "prices.equity.pyth":return e.webSockets.rtds.subscribe(r);case "perps.trades":case "perps.bbo":case "perps.book":case "perps.candles":case "perps.tickers":case "perps.statistics":return e.webSockets.perpsSubscriptions.subscribe(r);case "user":return invariant(e.isSecureClient(),"A 'user' subscription requires a secure client instance."),e.webSockets.clobUser.subscribe(r)}}function BT(e){let r;async function t(){r===void 0&&(r=Promise.all(e.map(o=>o.close())).then(()=>{})),await r;}let n=AT(...e);return {close:t,[Symbol.asyncIterator](){return n[Symbol.asyncIterator]()}}}var UT=z$1.object({ascending:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),includeTemplate:z$1.boolean().optional(),isCarousel:z$1.boolean().optional(),locale:z$1.string().optional(),order:z$1.string().optional(),pageSize:O.max(100).default(20)}),DT=z$1.union([z$1.object({id:z$1.string(),includeTemplate:z$1.boolean().optional(),locale:z$1.string().optional()}),z$1.object({slug:z$1.string(),locale:z$1.string().optional()})]),_T=z$1.object({id:z$1.string(),omitEmpty:z$1.boolean().optional(),status:z$1.enum(["active","closed","all"]).optional()}),zT=z$1.object({slug:z$1.string()}),jT=z$1.object({id:z$1.string(),locale:z$1.string().optional(),omitEmpty:z$1.boolean().optional(),status:z$1.enum(["active","closed","all"]).optional()}),WT=z$1.object({locale:z$1.string().optional(),slug:z$1.string(),omitEmpty:z$1.boolean().optional(),status:z$1.enum(["active","closed","all"]).optional()}),nU=r(i,h,d,c,a);function oU(e,r={}){let{cursor:t,pageSize:n,...o}=l(r,UT);return I(s=>{let a=pe(s,n);return e.gamma.get("/tags",{params:S({...o,limit:a.pageSize,offset:a.offset},x())}).andThen(y(ListTagsResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?X({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var sU=r(i,h,d,c,a);async function aU(e,r){let t=l(r,DT);return "id"in t?unwrap(e.gamma.get(`tags/${t.id}`,{params:S({includeTemplate:t.includeTemplate,locale:t.locale},x())}).andThen(y(TagSchema))):unwrap(e.gamma.get(`tags/slug/${t.slug}`,{params:S({locale:t.locale},x())}).andThen(y(TagSchema)))}var iU=r(i,h,d,c,a);async function pU(e,r){if("id"in r){let n=l(r,_T);return unwrap(e.gamma.get(`tags/${n.id}/related-tags`,{params:S({omitEmpty:n.omitEmpty,status:n.status},x())}).andThen(y(ListRelatedTagsResponseSchema)))}let t=l(r,zT);return unwrap(e.gamma.get(`tags/slug/${t.slug}/related-tags`).andThen(y(ListRelatedTagsResponseSchema)))}var dU=r(i,h,d,c,a);async function cU(e,r){if("id"in r){let n=l(r,jT);return unwrap(e.gamma.get(`tags/${n.id}/related-tags/tags`,{params:S({locale:n.locale,omitEmpty:n.omitEmpty,status:n.status},x())}).andThen(y(ListRelatedTagResourcesResponseSchema)))}let t=l(r,WT);return unwrap(e.gamma.get(`tags/slug/${t.slug}/related-tags/tags`,{params:S({locale:t.locale,omitEmpty:t.omitEmpty,status:t.status},x())}).andThen(y(ListRelatedTagResourcesResponseSchema)))}var KT=z$1.object({abbreviation:z$1.array(z$1.string()).optional(),ascending:z$1.boolean().optional(),cursor:PaginationCursorSchema.optional(),league:z$1.array(z$1.string()).optional(),name:z$1.array(z$1.string()).optional(),order:z$1.string().optional(),pageSize:O.max(100).default(20),providerId:z$1.array(z$1.number().int()).optional()}),SU=r(i,h,d,c,a);function hU(e,r={}){let{cursor:t,pageSize:n,...o}=l(r,KT);return I(s=>{let a=pe(s,n);return e.gamma.get("/teams",{params:S({...o,limit:a.pageSize,offset:a.offset},x({providerId:"provider_id"}))}).andThen(y(ListTeamsResponseSchema)).map(m=>{let P=m.length>=a.pageSize;return {items:m,hasMore:P,nextCursor:P?X({offset:a.offset+a.pageSize,pageSize:a.pageSize}):void 0}})},t)}var $T=z$1.object({amount:z$1.bigint(),metadata:V.optional(),recipientAddress:EvmAddressSchema,tokenAddress:EvmAddressSchema}),wU=r(a);async function VT(e,r){let t=l(r,$T);return async function*(){return e.account.walletType===WalletType.EOA?N(yield YT(K(e.environment.chainId,pn(t.tokenAddress,t.recipientAddress,t.amount)))):yield*await Y(e,{calls:[pn(t.tokenAddress,t.recipientAddress,t.amount)],metadata:t.metadata??`Transfer ${t.amount} of ${t.tokenAddress} to ${t.recipientAddress}`})}.call(null)}var LU=r(m,i,h,q,d,c,a);function BU(e,r){return VT(e,r).then(z(e.signer))}function YT(e){return {kind:"sendErc20TransferTransaction",request:e}}
2
- export{Hx as $,kI as $a,Yb as $b,uA as $c,Ot as $d,VL as $e,Ne as $f,DC as A,N as Aa,bb as Ab,oq as Ac,qt as Ad,cL as Ae,Ud as Af,hM as Ag,cn as B,YC as Ba,vb as Bb,sq as Bc,Bi as Bd,uL as Be,yh as Bf,dc as Bg,_C as C,Xs as Ca,qb as Cb,nO as Cd,lL as Ce,Dd as Cf,TM as Cg,st as D,cI as Da,Ab as Db,oO as Dd,mL as De,BB as Df,xM as Dg,zC as E,yn as Ea,kb as Eb,Qn as Ed,fL as Ee,FB as Ef,CM as Eg,un as F,uI as Fa,Ob as Fb,to as Fd,yL as Fe,MB as Ff,IM as Fg,Qs as G,lI as Ga,wb as Gb,Tq as Gc,RP as Gd,PL as Ge,UB as Gf,OM as Gg,Js as H,V as Ha,Lb as Hb,xq as Hc,no as Hd,gL as He,DB as Hf,wM as Hg,l as I,mI as Ia,ha as Ib,Cq as Ic,EP as Id,RL as Ie,_d as If,LM as Ig,cs as J,fI as Ja,Bb as Jb,Iq as Jc,oo as Jd,EL as Je,_B as Jf,BM as Jg,Rs as K,Ol as Ka,Ta as Kb,bq as Kc,TO as Kd,SL as Ke,gh as Kf,KM as Kg,fx as L,yI as La,Fb as Lb,vq as Lc,xO as Ld,hL as Le,Hd as Lf,GM as Lg,vr as M,Y as Ma,xa as Mb,qq as Mc,CO as Md,TL as Me,zB as Mf,nU as Mg,Es as N,Pn as Na,Mb as Nb,Aq as Nc,IO as Nd,qS as Ne,jB as Nf,oU as Ng,Ss as O,gn as Oa,Ub as Ob,kq as Oc,LO as Od,xL as Oe,Eh as Of,sU as Og,wx as P,fr as Pa,Db as Pb,Oq as Pc,BO as Pd,CL as Pe,WB as Pf,aU as Pg,Lx as Q,Rn as Qa,_b as Qb,XO as Qd,IL as Qe,HB as Qf,iU as Qg,Bx as R,En as Ra,zb as Rb,AP as Rd,DL as Re,JB as Rf,pU as Rg,Fx as S,Sn as Sa,ct as Sb,ew as Sd,_L as Se,XB as Sf,dU as Sg,Mx as T,PI as Ta,jb as Tb,rw as Td,zL as Te,Wo as Tf,cU as Tg,Ux as U,Ze as Ua,Wb as Ub,Gq as Uc,tw as Ud,jL as Ue,cF as Uf,SU as Ug,Dx as V,vI as Va,Hb as Vb,$q as Vc,kP as Vd,WL as Ve,Ho as Vf,hU as Vg,Is as W,Hl as Wa,Nb as Wb,nw as Wd,HL as We,uF as Wf,wU as Wg,_x as X,qI as Xa,Kb as Xb,pA as Xc,ow as Xd,NL as Xe,No as Xf,VT as Xg,zx as Y,pa as Ya,Gb as Yb,za as Yc,NP as Yd,KL as Ye,lF as Yf,LU as Yg,jx as Z,AI as Za,$b as Zb,dA as Zc,KP as Zd,GL as Ze,mF as Zf,BU as Zg,Wx as _,Kl as _a,Vb as _b,cA as _c,$P as _d,$L as _e,fF as _f,te as a,nn as aa,da as ab,Zb as ac,lA as ad,tp as ae,YL as af,yF as ag,OC as b,Nx as ba,OI as bb,Qb as bc,mA as bd,np as be,ZL as bf,PF as bg,rt as c,vs as ca,wI as cb,Jb as cc,fA as cd,op as ce,QL as cf,gF as cg,_s as d,Kx as da,LI as db,Xb as dc,yA as dd,wt as de,RF as dg,zs as e,Gx as ea,$l as eb,ev as ec,PA as ed,sp as ee,EF as eg,tt as f,$x as fa,BI as fb,lv as fc,gA as fd,Bt as fe,SF as fg,js as g,Vx as ga,FI as gb,mv as gc,RA as gd,Ft as ge,hF as gg,Ws as h,Yx as ha,WI as hb,fv as hc,EA as hd,wp as he,nc as hg,Hs as i,Zx as ia,Jl as ib,Zm as ic,SA as id,Fp as ie,Ns as j,Qx as ja,HI as jb,yv as jc,LA as jd,Up as je,nt as k,Jx as ka,Xl as kb,Pv as kc,BA as kd,Xp as ke,vd as kf,ot as l,Xx as la,NI as lb,FA as ld,td as le,IB as lf,wC as m,eC as ma,KI as mb,Av as mc,MA as md,od as me,Ad as mf,pn as n,rC as na,GI as nb,kv as nc,UA as nd,RE as ne,bB as nf,Ks as o,tC as oa,$I as ob,Ov as oc,DA as od,ud as oe,Od as of,Gs as p,PC as pa,VI as pb,wv as pc,_A as pd,eL as pe,mh as pf,LC as q,gC as qa,YI as qb,Lv as qc,zA as qd,rL as qe,wd as qf,$s as r,RC as ra,ZI as rb,Bv as rc,JA as rd,tL as re,vB as rf,BC as s,EC as sa,QI as sb,Zv as sc,XA as sd,nL as se,qB as sf,sc as sg,Vs as t,SC as ta,JI as tb,Qv as tc,vy as td,oL as te,AB as tf,WF as tg,FC as u,hC as ua,XI as ub,Jv as uc,On as ud,KE as ue,kB as uf,HF as ug,Ys as v,eb as vb,Xv as vc,dk as vd,sL as ve,OB as vf,eM as vg,MC as w,rb as wb,eq as wc,ck as wd,aL as we,Ld as wf,rM as wg,Zs as x,lb as xb,rq as xc,St as xd,iL as xe,wB as xf,tM as xg,UC as y,mb as yb,tq as yc,uk as yd,pL as ye,Fd as yf,nM as yg,dn as z,NC as za,Ib as zb,nq as zc,vt as zd,dL as ze,LB as zf};//# sourceMappingURL=chunk-5JHFOBBZ.js.map
3
- //# sourceMappingURL=chunk-5JHFOBBZ.js.map